Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop

This commit is contained in:
syuilo 2022-06-11 16:46:23 +09:00
commit 99eb971c3d
22 changed files with 621 additions and 25 deletions

View file

@ -1007,7 +1007,6 @@ _sfx:
antenna: "الهوائيات"
channel: "إشعارات القنات"
_ago:
unknown: "مجهول"
future: "المستقبَل"
justNow: "اللحظة"
secondsAgo: "منذ {n} ثوانٍ"

View file

@ -831,11 +831,18 @@ themeColor: "থিমের রং"
size: "আকার"
numberOfColumn: "কলামের সংখ্যা"
searchByGoogle: "গুগল"
instanceDefaultLightTheme: "ইন্সট্যান্সের ডিফল্ট লাইট থিম"
instanceDefaultDarkTheme: "ইন্সট্যান্সের ডিফল্ট ডার্ক থিম"
instanceDefaultThemeDescription: "অবজেক্ট ফরম্যাটে থিম কোড লিখুন"
mutePeriod: "মিউটের সময়কাল"
indefinitely: "অনির্দিষ্ট"
tenMinutes: "১০ মিনিট"
oneHour: "১ ঘণ্টা"
oneDay: "একদিন"
oneWeek: "এক সপ্তাহ"
reflectMayTakeTime: "এটির কাজ দেখা যেতে কিছুটা সময় লাগতে পারে।"
failedToFetchAccountInformation: "অ্যাকাউন্টের তথ্য উদ্ধার করা যায়নি"
rateLimitExceeded: "রেট লিমিট ছাড়িয়ে গেছে "
_emailUnavailable:
used: "এই ইমেইল ঠিকানাটি ইতোমধ্যে ব্যবহৃত হয়েছে"
format: "এই ইমেল ঠিকানাটি সঠিকভাবে লিখা হয়নি"
@ -1081,7 +1088,6 @@ _sfx:
antenna: "অ্যান্টেনাগুলি"
channel: "চ্যানেলের বিজ্ঞপ্তি"
_ago:
unknown: "অজানা"
future: "ভবিষ্যৎ"
justNow: "এইমাত্র"
secondsAgo: "{n} সেকেন্ড আগে"
@ -1125,6 +1131,7 @@ _2fa:
registerKey: "সিকিউরিটি কী নিবন্ধন করুন"
step1: "প্রথমে, আপনার ডিভাইসে {a} বা {b} এর মতো একটি অথেনটিকেশন অ্যাপ ইনস্টল করুন৷"
step2: "এরপরে, অ্যাপের সাহায্যে প্রদর্শিত QR কোডটি স্ক্যান করুন।"
step2Url: "ডেস্কটপ অ্যাপে, নিম্নলিখিত URL লিখুন:"
step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।"
step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।"
securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷"
@ -1608,6 +1615,8 @@ _notification:
youReceivedFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে"
yourFollowRequestAccepted: "আপনার অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
youWereInvitedToGroup: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
pollEnded: "পোলের ফলাফল দেখা যাবে"
emptyPushNotificationMessage: "আপডেট করা পুশ বিজ্ঞপ্তি"
_types:
all: "সকল"
follow: "অনুসরণ করা হচ্ছে"
@ -1617,11 +1626,13 @@ _notification:
quote: "উদ্ধৃতি"
reaction: "প্রতিক্রিয়া"
pollVote: "পোলে ভোট আছে"
pollEnded: "পোল শেষ"
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
groupInvited: "গ্রুপের আমন্ত্রনসমূহ"
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
_actions:
followBack: "ফলো ব্যাক করেছে"
reply: "জবাব"
renote: "রিনোট"
_deck:

View file

@ -134,6 +134,8 @@ _theme:
_sfx:
note: "Notes"
notification: "Notificacions"
_2fa:
step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:"
_widgets:
notifications: "Notificacions"
timeline: "Línia de temps"

View file

@ -842,6 +842,7 @@ oneDay: "Einen Tag"
oneWeek: "Eine Woche"
reflectMayTakeTime: "Es kann etwas dauern, bis sich dies widerspiegelt."
failedToFetchAccountInformation: "Benutzerkontoinformationen konnten nicht abgefragt werden"
rateLimitExceeded: "Versuchsanzahl überschritten"
_emailUnavailable:
used: "Diese Email-Adresse wird bereits verwendet"
format: "Das Format dieser Email-Adresse ist ungültig"
@ -1087,7 +1088,6 @@ _sfx:
antenna: "Antennen"
channel: "Kanalbenachrichtigung"
_ago:
unknown: "Unbekannt"
future: "Zukunft"
justNow: "Gerade eben"
secondsAgo: "vor {n} Sekunde(n)"
@ -1131,6 +1131,7 @@ _2fa:
registerKey: "Neuen Sicherheitsschlüssel registrieren"
step1: "Installiere zuerst eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät."
step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerät."
step2Url: "Nutzt du ein Desktopprogramm kannst du alternativ diese URL eingeben:"
step3: "Gib zum Abschluss den Token ein, der von deiner App angezeigt wird."
step4: "Alle folgenden Anmeldungsversuche werden ab sofort die Eingabe eines solchen Tokens benötigen."
securityKeyInfo: "Du kannst neben Fingerabdruck- oder PIN-Authentifizierung auf deinem Gerät auch Anmeldung mit Hilfe eines FIDO2-kompatiblen Hardware-Sicherheitsschlüssels einrichten."

View file

@ -842,6 +842,7 @@ oneDay: "One day"
oneWeek: "One week"
reflectMayTakeTime: "It may take some time for this to be reflected."
failedToFetchAccountInformation: "Could not fetch account information"
rateLimitExceeded: "Rate limit exceeded"
_emailUnavailable:
used: "This email address is already being used"
format: "The format of this email address is invalid"
@ -1087,7 +1088,6 @@ _sfx:
antenna: "Antennas"
channel: "Channel notifications"
_ago:
unknown: "Unknown"
future: "Future"
justNow: "Just now"
secondsAgo: "{n} second(s) ago"
@ -1131,6 +1131,7 @@ _2fa:
registerKey: "Register a security key"
step1: "First, install an authentication app (such as {a} or {b}) on your device."
step2: "Then, scan the QR code displayed on this screen."
step2Url: "You can also enter this URL if you're using a desktop program:"
step3: "Enter the token provided by your app to finish setup."
step4: "From now on, any future login attempts will ask for such a login token."
securityKeyInfo: "Besides fingerprint or PIN authentication, you can also setup authentication via hardware security keys that support FIDO2 to further secure your account."

View file

@ -989,7 +989,6 @@ _sfx:
antenna: "Antena receptora"
channel: "Notificaciones del canal"
_ago:
unknown: "Desconocido"
future: "Futuro"
justNow: "Recién ahora"
secondsAgo: "Hace {n} segundos"

View file

@ -804,7 +804,7 @@ manageAccounts: "Gérer les comptes"
makeReactionsPublic: "Rendre les réactions publiques"
makeReactionsPublicDescription: "Ceci rendra la liste de toutes vos réactions données publique."
classic: "Classique"
muteThread: "Mettre ce thread en sourdine"
muteThread: "Masquer cette discussion"
unmuteThread: "Ne plus masquer le fil"
ffVisibility: "Visibilité des abonnés/abonnements"
ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu suis et les personnes qui te suivent."
@ -1075,7 +1075,6 @@ _sfx:
antenna: "Réception de lantenne"
channel: "Notifications de canal"
_ago:
unknown: "Inconnu"
future: "Futur"
justNow: "à linstant"
secondsAgo: "Il y a {n}s"

View file

@ -842,6 +842,7 @@ oneDay: "1 Hari"
oneWeek: "1 Bulan"
reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan."
failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun"
rateLimitExceeded: "Batas sudah terlampaui"
_emailUnavailable:
used: "Alamat surel ini telah digunakan"
format: "Format tidak valid."
@ -1087,7 +1088,6 @@ _sfx:
antenna: "Penerimaan Antenna"
channel: "Pemberitahuan saluran"
_ago:
unknown: "Tidak diketahui"
future: "Masa depan"
justNow: "Baru saja"
secondsAgo: "{n} detik lalu"
@ -1131,6 +1131,7 @@ _2fa:
registerKey: "Daftarkan kunci keamanan baru"
step1: "Pertama, pasang aplikasi otentikasi (seperti {a} atau {b}) di perangkat kamu."
step2: "Lalu, pindai kode QR yang ada di layar."
step2Url: "Di aplikasi desktop, masukkan URL berikut:"
step3: "Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan."
step4: "Mulai sekarang, upaya login apapun akan meminta token login dari aplikasi otentikasi kamu."
securityKeyInfo: "Kamu dapat memasang otentikasi WebAuthN untuk mengamankan proses login lebih lanjut dengan tidak hanya perangkat keras kunci keamanan yang mendukung FIDO2, namun juga sidik jari atau otentikasi PIN pada perangkatmu."

View file

@ -10,7 +10,7 @@ password: "Password"
forgotPassword: "Hai dimenticato la tua password?"
fetchingAsApObject: "Recuperando dal Fediverso..."
ok: "OK"
gotIt: "Capito!"
gotIt: "Ho capito"
cancel: "Annulla"
enterUsername: "Inserisci un nome utente"
renotedBy: "Rinotato da {user}"
@ -767,6 +767,7 @@ customCss: "CSS personalizzato"
global: "Federata"
squareAvatars: "Mostra l'immagine del profilo come quadrato"
sent: "Inviare"
received: "Ricevuto"
searchResult: "Risultati della Ricerca"
hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi"
@ -804,6 +805,10 @@ welcomeBackWithName: "Bentornato/a, {name}"
clickToFinishEmailVerification: "Fai click su [{ok}] per completare la verifica dell'indirizzo email."
searchByGoogle: "Cerca"
indefinitely: "Non scade"
tenMinutes: "10 minuti"
oneHour: "1 ora"
oneDay: "1 giorno"
oneWeek: "1 settimana"
_emailUnavailable:
used: "Email già in uso"
format: "Formato email non valido"
@ -999,7 +1004,6 @@ _sfx:
antenna: "Ricezione dell'antenna"
channel: "Notifiche di canale"
_ago:
unknown: "Sconosciuto"
future: "Futuro"
justNow: "Ora"
secondsAgo: "{n}s fa"

View file

@ -799,7 +799,6 @@ _sfx:
notification: "通知"
chat: "チャット"
_ago:
unknown: "わからん"
future: "未来"
justNow: "たった今"
secondsAgo: "{n}秒前"

View file

@ -1087,7 +1087,6 @@ _sfx:
antenna: "안테나 수신"
channel: "채널 알림"
_ago:
unknown: "알 수 없음"
future: "미래"
justNow: "방금 전"
secondsAgo: "{n}초 전"
@ -1131,6 +1130,7 @@ _2fa:
registerKey: "키를 등록"
step1: "먼저, {a}나 {b}등의 인증 앱을 사용 중인 디바이스에 설치합니다."
step2: "그 후, 표시되어 있는 QR코드를 앱으로 스캔합니다."
step2Url: "데스크톱 앱에서는 다음 URL을 입력하세요:"
step3: "앱에 표시된 토큰을 입력하시면 완료됩니다."
step4: "다음 로그인부터는 토큰을 입력해야 합니다."
securityKeyInfo: "FIDO2를 지원하는 하드웨어 보안 키 혹은 디바이스의 지문인식이나 화면잠금 PIN을 이용해서 로그인하도록 설정할 수 있습니다."

View file

@ -946,7 +946,6 @@ _sfx:
chatBg: "Rozmowy (tło)"
channel: "Powiadomienia kanału"
_ago:
unknown: "Nieznane"
future: "W przyszłości"
justNow: "Przed chwilą"
secondsAgo: "{n} sek. temu"

View file

@ -81,18 +81,67 @@ somethingHappened: "Ocorreu um erro"
retry: "Tentar novamente"
pageLoadError: "Ocorreu um erro ao carregar a página."
pageLoadErrorDescription: "Isto é normalmente causado por erros de rede ou pela cache do browser. Experimenta limpar a cache e tenta novamente após algum tempo."
serverIsDead: "O servidor não está respondendo. Por favor espere um pouco e tente novamente."
youShouldUpgradeClient: "Para visualizar essa página, por favor recarregue-a para atualizar seu cliente."
enterListName: "Insira um nome para a lista"
privacy: "Privacidade"
makeFollowManuallyApprove: "Pedidos de seguimento precisam ser aprovados"
defaultNoteVisibility: "Visibilidade padrão"
follow: "Seguindo"
followRequest: "Mandar pedido de seguimento"
followRequests: "Pedidos de seguimento"
unfollow: "Deixar de seguir"
followRequestPending: "Pedido de seguimento pendente"
enterEmoji: "Inserir emoji"
renote: "Repostar"
renoted: "Repostado"
cantRenote: "Não pode repostar"
cantReRenote: "Não pode repostar este repost"
quote: "Citar"
pinnedNote: "Post fixado"
pinned: "Afixar no perfil"
you: "Você"
clickToShow: "Clique para ver"
sensitive: "Conteúdo sensível"
add: "Adicionar"
reaction: "Reações"
reactionSetting: "Quais reações a mostrar no selecionador de reações"
rememberNoteVisibility: "Lembrar das configurações de visibilidade de notas"
attachCancel: "Remover anexo"
markAsSensitive: "Marcar como sensível"
unmarkAsSensitive: "Desmarcar como sensível"
enterFileName: "Digite o nome do ficheiro"
mute: "Silenciar"
unmute: "Dessilenciar"
block: "Bloquear"
unblock: "Desbloquear"
suspend: "Suspender"
unsuspend: "Cancelar suspensão"
blockConfirm: "Tem certeza que gostaria de bloquear essa conta?"
unblockConfirm: "Tem certeza que gostaria de desbloquear essa conta?"
suspendConfirm: "Tem certeza que gostaria de suspender essa conta?"
unsuspendConfirm: "Tem certeza que gostaria de cancelar a suspensão dessa conta?"
selectList: "Escolhe uma lista"
selectAntenna: "Escolhe uma antena"
selectWidget: "Escolhe um widget"
editWidgets: "Editar widgets"
editWidgetsExit: "Pronto"
customEmojis: "Emoji personalizado"
emoji: "Emoji"
emojis: "Emojis"
emojiName: "Nome do Emoji"
emojiUrl: "URL do Emoji"
addEmoji: "Adicionar um Emoji"
settingGuide: "Guia de configuração"
flagAsBot: "Marcar conta como robô"
flagAsCat: "Marcar conta como gato"
flagAsCatDescription: "Ative essa opção para marcar essa conta como gato."
flagShowTimelineReplies: "Mostrar respostas na linha de tempo"
general: "Geral"
wallpaper: "Papel de parede"
searchWith: "Buscar: {q}"
youHaveNoLists: "Não tem nenhuma lista"
followConfirm: "Tem certeza que quer deixar de seguir {name}?"
instances: "Instância"
registeredAt: "Registrado em"
perHour: "por hora"
@ -107,6 +156,8 @@ nsfw: "Conteúdo sensível"
monthX: "mês de {month}"
pinnedNotes: "Post fixado"
userList: "Listas"
none: "Nenhum"
output: "Resultado"
smtpUser: "Nome de usuário"
smtpPass: "Senha"
user: "Usuários"
@ -116,6 +167,8 @@ _email:
title: "Você tem um novo seguidor"
_mfm:
mention: "Menção"
quote: "Citar"
emoji: "Emoji personalizado"
search: "Pesquisar"
_theme:
keys:
@ -136,38 +189,229 @@ _profile:
_exportOrImport:
followingList: "Seguindo"
muteList: "Silenciar"
blockingList: "Bloquear"
userLists: "Listas"
_pages:
blocks:
_button:
_action:
_pushEvent:
event: "Nome do evento"
message: "Mostrar mensagem quando ativado"
variable: "Variável a mandar"
no-variable: "Nenhum"
callAiScript: "Invocar AiScript"
_callAiScript:
functionName: "Nome da função"
radioButton: "Escolha"
_radioButton:
values: "Lista de escolhas separadas por quebras de texto"
script:
categories:
logical: "Operação lógica"
operation: "Cálculos"
comparison: "Comparação"
list: "Listas"
blocks:
_strReplace:
arg2: "Texto que irá ser substituído"
arg3: "Substituir com"
strReverse: "Virar texto"
join: "Sequência de texto"
_join:
arg1: "Listas"
arg2: "Separador"
add: "Somar"
_add:
arg1: "A"
arg2: "B"
subtract: "Subtrair"
_subtract:
arg1: "A"
arg2: "B"
multiply: "Multiplicar"
_multiply:
arg1: "A"
arg2: "B"
divide: "Dividir"
_divide:
arg1: "A"
arg2: "B"
mod: "O resto de"
_mod:
arg1: "A"
arg2: "B"
round: "Arredondar decimal"
_round:
arg1: "Numérico"
eq: "A e B são iguais"
_eq:
arg1: "A"
arg2: "B"
notEq: "A e B são diferentes"
_notEq:
arg1: "A"
arg2: "B"
and: "A e B"
_and:
arg1: "A"
arg2: "B"
or: "A OU B"
_or:
arg1: "A"
arg2: "B"
lt: "< A é menor do que B"
_lt:
arg1: "A"
arg2: "B"
gt: "> A é maior do que B"
_gt:
arg1: "A"
arg2: "B"
ltEq: "<= A é maior ou igual a B"
_ltEq:
arg1: "A"
arg2: "B"
gtEq: ">= A é maior ou igual a B"
_gtEq:
arg1: "A"
arg2: "B"
if: "Galho"
_if:
arg1: "Se"
arg2: "Então"
arg3: "Se não"
not: "NÃO"
_not:
arg1: "NÃO"
random: "Aleatório"
_random:
arg1: "Probabilidade"
rannum: "Numeral aleatório"
_rannum:
arg1: "Valor mínimo"
arg2: "Valor máximo"
randomPick: "Escolher aleatoriamente de uma lista"
_randomPick:
arg1: "Listas"
dailyRandom: "Aleatório (Muda uma vez por dia para cada usuário)"
_dailyRandom:
arg1: "Probabilidade"
dailyRannum: "Numeral aleatório (Muda uma vez por dia para cada usuário)"
_dailyRannum:
arg1: "Valor mínimo"
arg2: "Valor máximo"
dailyRandomPick: "Escolher aleatoriamente de uma lista (Muda uma vez por dia para cada usuário)"
_dailyRandomPick:
arg1: "Listas"
seedRandom: "Aleatório (com semente)"
_seedRandom:
arg1: "Semente"
arg2: "Probabilidade"
seedRannum: "Número aleatório (com semente)"
_seedRannum:
arg1: "Semente"
arg2: "Valor mínimo"
arg3: "Valor máximo"
seedRandomPick: "Escolher aleatoriamente de uma lista (com uma semente)"
_seedRandomPick:
arg1: "Semente"
arg2: "Listas"
DRPWPM: "Escolher aleatoriamente de uma lista ponderada (Muda uma vez por dia para cada usuário)"
_DRPWPM:
arg1: "Lista de texto"
pick: "Escolhe a partir da lista"
_pick:
arg1: "Listas"
arg2: "Posição"
listLen: "Pegar comprimento da lista"
_listLen:
arg1: "Listas"
number: "Numérico"
stringToNumber: "Texto para numérico"
_stringToNumber:
arg1: "Texto"
numberToString: "Numérico para texto"
_numberToString:
arg1: "Numérico"
splitStrByLine: "Dividir texto por quebras"
_splitStrByLine:
arg1: "Texto"
ref: "Variável"
aiScriptVar: "Variável AiScript"
fn: "Função"
_fn:
slots: "Espaços"
slots-info: "Separar cada espaço com uma quebra de texto"
arg1: "Resultado"
for: "Repetição 'for'"
_for:
arg1: "Número de repetições"
arg2: "Ação"
typeError: "Espaço {slot} aceita valores de tipo \"{expect}\", mas o valor dado é do tipo \"{actual}\"!"
thereIsEmptySlot: "O espaço {slot} está vazio!"
types:
string: "Texto"
number: "Numérico"
array: "Listas"
stringArray: "Lista de texto"
emptySlot: "Espaço vazio"
enviromentVariables: "Variáveis de ambiente"
pageVariables: "Variáveis de página"
_relayStatus:
requesting: "Pendente"
accepted: "Aprovado"
rejected: "Recusado"
_notification:
fileUploaded: "Carregamento de arquivo efetuado com sucesso"
youGotMention: "{name} te mencionou"
youGotReply: "{name} te respondeu"
youGotQuote: "{name} te citou"
youGotPoll: "{name} votou em sua enquete"
youGotMessagingMessageFromUser: "{name} te mandou uma mensagem de bate-papo"
youGotMessagingMessageFromGroup: "Uma mensagem foi mandada para o grupo {name}"
youWereFollowed: "Você tem um novo seguidor"
youReceivedFollowRequest: "Você recebeu um pedido de seguimento"
yourFollowRequestAccepted: "Seu pedido de seguimento foi aceito"
youWereInvitedToGroup: "{userName} te convidou para um grupo"
pollEnded: "Os resultados da enquete agora estão disponíveis"
emptyPushNotificationMessage: "As notificações de alerta foram atualizadas"
_types:
all: "Todos"
follow: "Seguindo"
mention: "Menção"
reply: "Respostas"
renote: "Repostar"
quote: "Citar"
reaction: "Reações"
pollVote: "Votações em enquetes"
pollEnded: "Enquetes terminando"
receiveFollowRequest: "Recebeu pedidos de seguimento"
followRequestAccepted: "Aceitou pedidos de seguimento"
groupInvited: "Convites de grupo"
app: "Notificações de aplicativos conectados"
_actions:
followBack: "te seguiu de volta"
reply: "Responder"
renote: "Repostar"
_deck:
alwaysShowMainColumn: "Sempre mostrar a coluna principal"
columnAlign: "Alinhar colunas"
columnMargin: "Margem entre colunas"
columnHeaderHeight: "Altura do cabeçalho de coluna"
addColumn: "Adicionar coluna"
swapLeft: "Trocar de posição com a coluna à esquerda"
swapRight: "Trocar de posição com a coluna à direita"
swapUp: "Trocar de posição com a coluna acima"
swapDown: "Trocar de posição com a coluna abaixo"
popRight: "Acoplar coluna à direita"
profile: "Perfil"
_columns:
main: "Principal"
widgets: "Widgets"
notifications: "Notificações"
tl: "Timeline"
antenna: "Antenas"
list: "Listas"
mentions: "Menções"
direct: "Notas diretas"

View file

@ -141,6 +141,8 @@ flagAsBot: "Аккаунт бота"
flagAsBotDescription: "Включите, если этот аккаунт управляется программой. Это позволит системе Misskey учитывать это, а также поможет разработчикам других ботов предотвратить бесконечные циклы взаимодействия."
flagAsCat: "Аккаунт кота"
flagAsCatDescription: "Включите, и этот аккаунт будет помечен как кошачий."
flagShowTimelineReplies: "Показывать ответы на заметки в ленте"
flagShowTimelineRepliesDescription: "Если этот параметр включен, то в ленте, в дополнение к заметкам пользователя, отображаются ответы на другие заметки пользователя."
autoAcceptFollowed: "Принимать подписчиков автоматически"
addAccount: "Добавить учётную запись"
loginFailed: "Неудачная попытка входа"
@ -236,6 +238,7 @@ saved: "Сохранено"
messaging: "Сообщения"
upload: "Загрузить"
keepOriginalUploading: "Сохранить исходное изображение"
keepOriginalUploadingDescription: "Сохраняет исходную версию при загрузке изображений. Если выключить, то при загрузке браузер генерирует изображение для публикации."
fromDrive: "С «диска»"
fromUrl: "По ссылке"
uploadFromUrl: "Загрузить по ссылке"
@ -589,6 +592,7 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
smtpSecureInfo: "Выключите при использовании STARTTLS."
testEmail: "Проверка доставки электронной почты"
wordMute: "Скрытие слов"
regexpError: "Ошибка в регулярном выражении"
instanceMute: "Глушение инстансов"
userSaysSomething: "{name} что-то сообщает"
makeActive: "Активировать"
@ -619,6 +623,8 @@ fillAbuseReportDescription: "Опишите, пожалуйста, причин
abuseReported: "Жалоба отправлена. Большое спасибо за информацию."
reporteeOrigin: "О ком сообщено"
reporterOrigin: "Кто сообщил"
forwardReport: "Перенаправление отчета на инстант."
forwardReportIsAnonymous: "Удаленный инстант не сможет увидеть вашу информацию и будет отображаться как анонимная системная учетная запись."
send: "Отправить"
abuseMarkAsResolved: "Отметить жалобу как решённую"
openInNewTab: "Открыть в новой вкладке"
@ -815,7 +821,16 @@ leaveGroupConfirm: "Покинуть группу «{name}»?"
useDrawerReactionPickerForMobile: "Выдвижная палитра на мобильном устройстве"
welcomeBackWithName: "С возвращением, {name}!"
clickToFinishEmailVerification: "Пожалуйста, нажмите [{ok}], чтобы завершить подтверждение адреса электронной почты."
overridedDeviceKind: "Тип устройства"
smartphone: "Смартфон"
tablet: "Планшет"
auto: "Автоматически"
themeColor: "Цвет темы"
size: "Размер"
numberOfColumn: "Количество столбцов"
searchByGoogle: "Поиск"
instanceDefaultLightTheme: "Светлая тема по умолчанию"
instanceDefaultDarkTheme: "Темная тема по умолчанию"
indefinitely: "вечно"
_emailUnavailable:
used: "Уже используется"
@ -1059,7 +1074,6 @@ _sfx:
antenna: "Антенна"
channel: "Канал"
_ago:
unknown: "Когда-то"
future: "Из будущего"
justNow: "Только что"
secondsAgo: "{n} с назад"

View file

@ -841,6 +841,7 @@ oneDay: "1 deň"
oneWeek: "1 týždeň"
reflectMayTakeTime: "Zmeny môžu chvíľu trvať kým sa prejavia."
failedToFetchAccountInformation: "Nepodarilo sa načítať informácie o účte."
rateLimitExceeded: "Prekročený limit rýchlosti"
_emailUnavailable:
used: "Táto emailová adresa sa už používa"
format: "Formát emailovej adresy je nesprávny"
@ -1086,7 +1087,6 @@ _sfx:
antenna: "Antény"
channel: "Upozornenia kanála"
_ago:
unknown: "Neznáme"
future: "Budúcnosť"
justNow: "Teraz"
secondsAgo: "pred {n} sekundami"
@ -1130,6 +1130,7 @@ _2fa:
registerKey: "Registrovať bezpečnostný kľúč"
step1: "Najprv si nainštalujte autentifikačnú aplikáciu (napríklad {a} alebo {b}) na svoje zariadenie."
step2: "Potom, naskenujte QR kód zobrazený na obrazovke."
step2Url: "Do aplikácie zadajte nasledujúcu URL adresu:"
step3: "Nastavenie dokončíte zadaním tokenu z vašej aplikácie."
step4: "Od teraz, všetky ďalšie prihlásenia budú vyžadovať prihlasovací token."
securityKeyInfo: "Okrem odtlačku prsta alebo PIN autentifikácie si môžete nastaviť autentifikáciu cez hardvérový bezpečnostný kľúč podporujúci FIDO2 a tak ešte viac zabezpečiť svoj účet."

319
locales/sv-SE.yml Normal file
View file

@ -0,0 +1,319 @@
---
_lang_: "Svenska"
headlineMisskey: "Ett nätverk kopplat av noter"
introMisskey: "Välkommen! Misskey är en öppen och decentraliserad mikrobloggningstjänst.\nSkapa en \"not\" och dela dina tankar med alla runtomkring dig. 📡\nMed \"reaktioner\" kan du snabbt uttrycka dina känslor kring andras noter.👍\nLåt oss utforska en nya värld!🚀"
monthAndDay: "{day}/{month}"
search: "Sök"
notifications: "Notifikationer"
username: "Användarnamn"
password: "Lösenord"
forgotPassword: "Glömt lösenord"
fetchingAsApObject: "Hämtar från Fediversum..."
ok: "OK"
gotIt: "Uppfattat!"
cancel: "Avbryt"
enterUsername: "Ange användarnamn"
renotedBy: "Omnoterad av {user}"
noNotes: "Inga noteringar"
noNotifications: "Inga aviseringar"
instance: "Instanser"
settings: "Inställningar"
basicSettings: "Basinställningar"
otherSettings: "Andra inställningar"
openInWindow: "Öppna i ett fönster"
profile: "Profil"
timeline: "Tidslinje"
noAccountDescription: "Användaren har inte skrivit en biografi än."
login: "Logga in"
loggingIn: "Loggar in"
logout: "Logga ut"
signup: "Registrera"
uploading: "Uppladdning sker..."
save: "Spara"
users: "Användare"
addUser: "Lägg till användare"
favorite: "Lägg till i favoriter"
favorites: "Favoriter"
unfavorite: "Avfavorisera"
favorited: "Tillagd i favoriter."
alreadyFavorited: "Redan tillagd i favoriter."
cantFavorite: "Gick inte att lägga till i favoriter."
pin: "Fäst till profil"
unpin: "Lossa från profil"
copyContent: "Kopiera innehåll"
copyLink: "Kopiera länk"
delete: "Radera"
deleteAndEdit: "Radera och ändra"
deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den? Du kommer förlora alla reaktioner, omnoteringar och svar till den."
addToList: "Lägg till i lista"
sendMessage: "Skicka ett meddelande"
copyUsername: "Kopiera användarnamn"
searchUser: "Sök användare"
reply: "Svara"
loadMore: "Ladda mer"
showMore: "Visa mer"
youGotNewFollower: "följde dig"
receiveFollowRequest: "Följarförfrågan mottagen"
followRequestAccepted: "Följarförfrågan accepterad"
mention: "Nämn"
mentions: "Omnämningar"
directNotes: "Direktnoter"
importAndExport: "Importera / Exportera"
import: "Importera"
export: "Exportera"
files: "Filer"
download: "Nedladdning"
driveFileDeleteConfirm: "Är du säker att du vill radera filen \"{name}\"? Noter med denna fil bifogad kommer också raderas."
unfollowConfirm: "Är du säker att du vill avfölja {name}?"
exportRequested: "Du har begärt en export. Detta kan ta lite tid. Den kommer läggas till i din Drive när den blir klar."
importRequested: "Du har begärt en import. Detta kan ta lite tid."
lists: "Listor"
noLists: "Du har inga listor"
note: "Not"
notes: "Noter"
following: "Följer"
followers: "Följare"
followsYou: "Följer dig"
createList: "Skapa lista"
manageLists: "Hantera lista"
error: "Fel!"
somethingHappened: "Ett fel har uppstått"
retry: "Försök igen"
pageLoadError: "Det gick inte att ladda sidan."
pageLoadErrorDescription: "Detta händer oftast p.g.a. nätverksfel eller din webbläsarcache. Försök tömma din cache och testa sedan igen efter en liten stund."
serverIsDead: "Servern svarar inte. Vänta ett litet tag och försök igen."
youShouldUpgradeClient: "För att kunna se denna sida, vänligen ladda om sidan för att uppdatera din klient."
enterListName: "Skriv ett namn till listan"
privacy: "Integritet"
makeFollowManuallyApprove: "Följarförfrågningar kräver manuellt godkännande"
defaultNoteVisibility: "Standardsynlighet"
follow: "Följ"
followRequest: "Skicka följarförfrågan"
followRequests: "Följarförfrågningar"
unfollow: "Avfölj"
followRequestPending: "Följarförfrågning avvaktar för svar"
enterEmoji: "Skriv en emoji"
renote: "Omnotera"
unrenote: "Ta tillbaka omnotering"
renoted: "Omnoterad."
cantRenote: "Inlägget kunde inte bli omnoterat."
cantReRenote: "En omnotering kan inte bli omnoterad."
quote: "Citat"
pinnedNote: "Fästad not"
pinned: "Fäst till profil"
you: "Du"
clickToShow: "Klicka för att visa"
sensitive: "Känsligt innehåll"
add: "Lägg till"
reaction: "Reaktioner"
reactionSetting: "Reaktioner som ska visas i reaktionsväljaren"
reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"+\" för att lägga till."
rememberNoteVisibility: "Komihåg notvisningsinställningar"
attachCancel: "Ta bort bilaga"
markAsSensitive: "Markera som känsligt innehåll"
unmarkAsSensitive: "Avmarkera som känsligt innehåll"
enterFileName: "Ange filnamn"
mute: "Tysta"
unmute: "Avtysta"
block: "Blockera"
unblock: "Avblockera"
suspend: "Suspendera"
unsuspend: "Ta bort suspenderingen"
blockConfirm: "Är du säker att du vill blockera kontot?"
unblockConfirm: "Är du säkert att du vill avblockera kontot?"
suspendConfirm: "Är du säker att du vill suspendera detta konto?"
unsuspendConfirm: "Är du säker att du vill avsuspendera detta konto?"
selectList: "Välj lista"
selectAntenna: "Välj en antenn"
selectWidget: "Välj en widget"
editWidgets: "Redigera widgets"
editWidgetsExit: "Avsluta redigering"
customEmojis: "Anpassa emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Emoji namn"
emojiUrl: "Emoji länk"
addEmoji: "Lägg till emoji"
settingGuide: "Rekommenderade inställningar"
cacheRemoteFiles: "Spara externa filer till cachen"
cacheRemoteFilesDescription: "När denna inställning är avstängd kommer externa filer laddas direkt från den externa instansen. Genom att stänga av detta kommer lagringsutrymme minska i användning men kommer öka datatrafiken eftersom miniatyrer inte kommer genereras."
flagAsBot: "Markera konto som bot"
flagAsBotDescription: "Aktivera det här alternativet om kontot är kontrollerat av ett program. Om aktiverat kommer den fungera som en flagga för andra utvecklare för att hindra ändlösa kedjor med andra bottar. Det kommer också få Misskeys interna system att hantera kontot som en bot."
flagAsCat: "Markera konto som katt"
flagAsCatDescription: "Aktivera denna inställning för att markera kontot som en katt."
flagShowTimelineReplies: "Visa svar i tidslinje"
flagShowTimelineRepliesDescription: "Visar användarsvar till andra användares noter i tidslinjen om påslagen."
autoAcceptFollowed: "Godkänn följarförfrågningar från användare du följer automatiskt"
addAccount: "Lägg till konto"
loginFailed: "Inloggningen misslyckades"
showOnRemote: "Se på extern instans"
general: "Allmänt"
wallpaper: "Bakgrundsbild"
setWallpaper: "Välj bakgrund"
removeWallpaper: "Ta bort bakgrund"
searchWith: "Sök: {q}"
youHaveNoLists: "Du har inga listor"
followConfirm: "Är du säker att du vill följa {name}?"
proxyAccount: "Proxykonto"
proxyAccountDescription: "Ett proxykonto är ett konto som agerar som en extern följare för användare under vissa villkor. Till exempel, när en användare lägger till en extern användare till en lista så kommer den externa användarens aktivitet inte levireras till instansen om ingen lokal användare följer det kontot, så proxykontot används istället."
host: "Värd"
selectUser: "Välj användare"
recipient: "Mottagare"
annotation: "Kommentarer"
federation: "Federation"
instances: "Instanser"
registeredAt: "Registrerad på"
latestRequestSentAt: "Senaste förfrågan skickad"
latestRequestReceivedAt: "Senaste begäran mottagen"
latestStatus: "Senaste status"
storageUsage: "Använt lagringsutrymme"
charts: "Diagram"
perHour: "Per timme"
perDay: "Per dag"
stopActivityDelivery: "Sluta skicka aktiviteter"
blockThisInstance: "Blockera instans"
operations: "Operationer"
software: "Mjukvara"
version: "Version"
metadata: "Metadata"
withNFiles: "{n} fil(er)"
monitor: "Övervakning"
jobQueue: "Jobbkö"
cpuAndMemory: "CPU och minne"
network: "Nätverk"
disk: "Disk"
instanceInfo: "Instansinformation"
statistics: "Statistik"
clearQueue: "Rensa kö"
clearQueueConfirmTitle: "Är du säker att du vill rensa kön?"
clearQueueConfirmText: "Om någon not är olevererad i kön kommer den inte federeras. Vanligtvis behövs inte denna handling."
clearCachedFiles: "Rensa cache"
clearCachedFilesConfirm: "Är du säker att du vill radera alla cachade externa filer?"
blockedInstances: "Blockerade instanser"
blockedInstancesDescription: "Lista adressnamn av instanser som du vill blockera. Listade instanser kommer inte längre kommunicera med denna instans."
muteAndBlock: "Tystningar och blockeringar"
mutedUsers: "Tystade användare"
blockedUsers: "Blockerade användare"
noUsers: "Det finns inga användare"
editProfile: "Redigera profil"
noteDeleteConfirm: "Är du säker på att du vill ta bort denna not?"
pinLimitExceeded: "Du kan inte fästa fler noter"
intro: "Misskey har installerats! Vänligen skapa en adminanvändare."
done: "Klar"
processing: "Bearbetar..."
preview: "Förhandsvisning"
default: "Standard"
noCustomEmojis: "Det finns ingen emoji"
noJobs: "Det finns inga jobb"
federating: "Federerar"
blocked: "Blockerad"
suspended: "Suspenderad"
all: "Allt"
subscribing: "Prenumererar"
publishing: "Publiceras"
notResponding: "Svarar inte"
instanceFollowing: "Följer på instans"
instanceFollowers: "Följare av instans"
instanceUsers: "Användare av denna instans"
changePassword: "Ändra lösenord"
security: "Säkerhet"
retypedNotMatch: "Inmatningen matchar inte"
currentPassword: "Nuvarande lösenord"
newPassword: "Nytt lösenord"
newPasswordRetype: "Bekräfta lösenord"
attachFile: "Bifoga filer"
more: "Mer!"
featured: "Utvalda"
usernameOrUserId: "Användarnamn eller användar-id"
noSuchUser: "Kan inte hitta användaren"
lookup: "Sökning"
announcements: "Nyheter"
imageUrl: "Bild-URL"
remove: "Radera"
removed: "Borttaget"
removeAreYouSure: "Är du säker att du vill radera \"{x}\"?"
deleteAreYouSure: "Är du säker att du vill radera \"{x}\"?"
resetAreYouSure: "Vill du återställa?"
saved: "Sparad"
messaging: "Chatt"
upload: "Ladda upp"
keepOriginalUploading: "Behåll originalbild"
nsfw: "Känsligt innehåll"
pinnedNotes: "Fästad not"
userList: "Listor"
smtpHost: "Värd"
smtpUser: "Användarnamn"
smtpPass: "Lösenord"
clearCache: "Rensa cache"
user: "Användare"
searchByGoogle: "Sök"
_email:
_follow:
title: "följde dig"
_mfm:
mention: "Nämn"
quote: "Citat"
emoji: "Anpassa emoji"
search: "Sök"
_theme:
keys:
mention: "Nämn"
renote: "Omnotera"
_sfx:
note: "Noter"
notification: "Notifikationer"
chat: "Chatt"
_widgets:
notifications: "Notifikationer"
timeline: "Tidslinje"
federation: "Federation"
jobQueue: "Jobbkö"
_cw:
show: "Ladda mer"
_visibility:
followers: "Följare"
_profile:
username: "Användarnamn"
_exportOrImport:
followingList: "Följer"
muteList: "Tysta"
blockingList: "Blockera"
userLists: "Listor"
_charts:
federation: "Federation"
_pages:
script:
categories:
list: "Listor"
blocks:
_join:
arg1: "Listor"
_randomPick:
arg1: "Listor"
_dailyRandomPick:
arg1: "Listor"
_seedRandomPick:
arg2: "Listor"
_pick:
arg1: "Listor"
_listLen:
arg1: "Listor"
types:
array: "Listor"
_notification:
youWereFollowed: "följde dig"
_types:
follow: "Följer"
mention: "Nämn"
renote: "Omnotera"
quote: "Citat"
reaction: "Reaktioner"
_actions:
reply: "Svara"
renote: "Omnotera"
_deck:
_columns:
notifications: "Notifikationer"
tl: "Tidslinje"
list: "Listor"
mentions: "Omnämningar"

View file

@ -919,7 +919,6 @@ _sfx:
antenna: "Прийом антени"
channel: "Повідомлення каналу"
_ago:
unknown: "Невідомо"
future: "Майбутнє"
justNow: "Щойно"
secondsAgo: "{n}с тому"

View file

@ -842,6 +842,7 @@ oneDay: "1 ngày"
oneWeek: "1 tuần"
reflectMayTakeTime: "Có thể mất một thời gian để điều này được áp dụng."
failedToFetchAccountInformation: "Không thể lấy thông tin tài khoản"
rateLimitExceeded: "Giới hạn quá mức"
_emailUnavailable:
used: "Địa chỉ email đã được sử dụng"
format: "Địa chỉ email không hợp lệ"
@ -1087,7 +1088,6 @@ _sfx:
antenna: "Trạm phát sóng"
channel: "Kênh"
_ago:
unknown: "Không rõ"
future: "Tương lai"
justNow: "Vừa xong"
secondsAgo: "{n}s trước"
@ -1131,6 +1131,7 @@ _2fa:
registerKey: "Đăng ký một mã bảo vệ"
step1: "Trước tiên, hãy cài đặt một ứng dụng xác minh (chẳng hạn như {a} hoặc {b}) trên thiết bị của bạn."
step2: "Sau đó, quét mã QR hiển thị trên màn hình này."
step2Url: "Bạn cũng có thể nhập URL này nếu sử dụng một chương trình máy tính:"
step3: "Nhập mã token do ứng dụng của bạn cung cấp để hoàn tất thiết lập."
step4: "Kể từ bây giờ, những lần đăng nhập trong tương lai sẽ yêu cầu mã token đăng nhập đó."
securityKeyInfo: "Bên cạnh xác minh bằng vân tay hoặc mã PIN, bạn cũng có thể thiết lập xác minh thông qua khóa bảo mật phần cứng hỗ trợ FIDO2 để bảo mật hơn nữa cho tài khoản của mình."

View file

@ -1087,7 +1087,6 @@ _sfx:
antenna: "天线接收"
channel: "频道通知"
_ago:
unknown: "未知"
future: "未来"
justNow: "最近"
secondsAgo: "{n}秒前"
@ -1131,6 +1130,7 @@ _2fa:
registerKey: "注册密钥"
step1: "首先,在您的设备上安装验证应用,例如{a}或{b}。"
step2: "然后,扫描屏幕上显示的二维码。"
step2Url: "在桌面应用程序中输入以下URL"
step3: "输入您的应用提供的动态口令以完成设置。"
step4: "从现在开始,任何登录操作都将要求您提供动态口令。"
securityKeyInfo: "您可以设置使用支持FIDO2的硬件安全密钥、设备上的指纹或PIN来保护您的登录过程。"

View file

@ -1087,7 +1087,6 @@ _sfx:
antenna: "天線接收"
channel: "頻道通知"
_ago:
unknown: "未知"
future: "未來"
justNow: "剛剛"
secondsAgo: "{n}秒前"
@ -1131,6 +1130,7 @@ _2fa:
registerKey: "註冊鍵"
step1: "首先,在您的設備上安裝二步驗證程式,例如{a}或{b}。"
step2: "然後掃描螢幕上的QR code。"
step2Url: "在桌面版應用中請輸入以下的URL"
step3: "輸入您的App提供的權杖以完成設定。"
step4: "從現在開始,任何登入操作都將要求您提供權杖。"
securityKeyInfo: "您可以設定使用支援FIDO2的硬體安全鎖、終端設備的指纹認證或者PIN碼來登入。"

View file

@ -136,6 +136,7 @@ async function populateMyReaction(note: Note, meId: User['id'], _hint_?: {
export const NoteRepository = db.getRepository(Note).extend({
async isVisibleForMe(note: Note, meId: User['id'] | null): Promise<boolean> {
// This code must always be synchronized with the checks in generateVisibilityQuery.
// visibility が specified かつ自分が指定されていなかったら非表示
if (note.visibility === 'specified') {
if (meId == null) {

View file

@ -3,6 +3,7 @@ import { Followings } from '@/models/index.js';
import { Brackets, SelectQueryBuilder } from 'typeorm';
export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) {
// This code must always be synchronized with the checks in Notes.isVisibleForMe.
if (me == null) {
q.andWhere(new Brackets(qb => { qb
.where(`note.visibility = 'public'`)
@ -11,7 +12,7 @@ export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: U
} else {
const followingQuery = Followings.createQueryBuilder('following')
.select('following.followeeId')
.where('following.followerId = :followerId', { followerId: me.id });
.where('following.followerId = :meId');
q.andWhere(new Brackets(qb => { qb
// 公開投稿である
@ -20,21 +21,22 @@ export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: U
.orWhere(`note.visibility = 'home'`);
}))
// または 自分自身
.orWhere('note.userId = :userId1', { userId1: me.id })
.orWhere('note.userId = :meId')
// または 自分宛て
.orWhere(`'{"${me.id}"}' <@ note.visibleUserIds`)
.orWhere(':meId = ANY(note.visibleUserIds)')
.orWhere(':meId = ANY(note.mentions)')
.orWhere(new Brackets(qb => { qb
// または フォロワー宛ての投稿であり、
.where('note.visibility = \'followers\'')
.where(`note.visibility = 'followers'`)
.andWhere(new Brackets(qb => { qb
// 自分がフォロワーである
.where(`note.userId IN (${ followingQuery.getQuery() })`)
// または 自分の投稿へのリプライ
.orWhere('note.replyUserId = :userId3', { userId3: me.id });
.orWhere('note.replyUserId = :meId');
}));
}));
}));
q.setParameters(followingQuery.getParameters());
q.setParameters({ meId: me.id });
}
}