From 8e5d31eb5cc4fa474ae89e75dc4acba4da95246e Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 31 May 2023 09:06:29 +0900 Subject: [PATCH 1/9] New Crowdin updates (#10918) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Japanese, Kansai) * New translations ja-JP.yml (Japanese, Kansai) * New translations ja-JP.yml (Norwegian) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Norwegian) * New translations ja-JP.yml (Norwegian) * New translations ja-JP.yml (Norwegian) --- locales/ja-KS.yml | 10 +++- locales/ko-KR.yml | 28 ++++++++-- locales/no-NO.yml | 134 ++++++++++++++++++++++++++++++++-------------- locales/zh-TW.yml | 6 +++ 4 files changed, 132 insertions(+), 46 deletions(-) diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 69ea0d172a..652814ca98 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -47,11 +47,13 @@ copyContent: "内容をコピー" copyLink: "リンクをコピー" delete: "ほかす" deleteAndEdit: "ほかして直す" -deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Renote、返信も全部消えるんやけどそれでもええん?" +deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのツッコミ、Renote、返信も全部消えるんやけどそれでもええん?" addToList: "リストに入れたる" sendMessage: "メッセージを送る" copyRSS: "RSSをコピー" copyUsername: "ユーザー名をコピー" +copyUserId: "ユーザーIDをコピー" +copyNoteId: "ノートIDをコピー" searchUser: "ユーザーを検索" reply: "返事" loadMore: "まだまだあるで!" @@ -1043,6 +1045,10 @@ preventAiLearning: "生成AIの学習に使わんといて" preventAiLearningDescription: "他の文章生成AIとか画像生成AIに、投稿したノートとか画像なんかを勝手に使わんように頼むで。具体的にはnoaiフラグをHTMLレスポンスに含めるんやけど、これ聞いてくれるんはAIの気分次第やから、使われる可能性もちょっとはあるな。" options: "オプション" specifyUser: "ユーザー指定" +rolesThatCanBeUsedThisEmojiAsReaction: "ツッコミとして使えるロール" +rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "ロールが一個も指定されてへんかったら、誰でもツッコミとして使えるで。" +cancelReactionConfirm: "ツッコむんをやっぱやめるか?" +changeReactionConfirm: "ツッコミを別のに変えるか?" _initialAccountSetting: accountCreated: "アカウント作り終わったで。" letsStartAccountSetup: "アカウントの初期設定をしよか。" @@ -1614,7 +1620,7 @@ _timelineTutorial: step2_2: "最初のノートは、自己紹介とか「{name}始めてみたんや」とかがええと思うで。" step3_1: "投稿できた?" step3_2: "あんたのノートがタイムラインに出てきたら成功や。" - step4_1: "ノートには、「リアクション」を付けれるで。" + step4_1: "ノートには、「ツッコミ」を付けれるで。" step4_2: "ツッコむんやったら、ノートの「+」マークを押して、好きな絵文字を選ぶで。" _2fa: alreadyRegistered: "もう設定終わっとるわ。" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 11ab762aa4..1f0e7294fd 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -52,6 +52,8 @@ addToList: "리스트에 추가" sendMessage: "메시지 보내기" copyRSS: "RSS 복사" copyUsername: "유저명 복사" +copyUserId: "유저 ID 복사" +copyNoteId: "노트 ID 복사" searchUser: "사용자 검색" reply: "답글" loadMore: "더 보기" @@ -505,7 +507,7 @@ objectStoragePrefixDesc: "이 Prefix 의 디렉토리 아래에 파일이 저장 objectStorageEndpoint: "Endpoint" objectStorageEndpointDesc: "AWS S3의 경우 공란, 다른 서비스의 경우 각 서비스의 가이드에 맞게 endpoint를 설정해주세요. '' 혹은 ':' 와 같이 지정합니다." objectStorageRegion: "Region" -objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해주세요. 사용하는 서비스에 region 개념이 없는 경우 'us-east-1'으로 설정해 주세요. AWS 설정 파일 또는 환경 변수를 참조할 경우에는 비워주세요." +objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해 주세요. 사용하는 서비스에 region 개념이 없는 경우 'us-east-1'으로 설정해 주세요. AWS 설정 파일 또는 환경 변수를 참조할 경우에는 비워주세요." objectStorageUseSSL: "SSL 사용" objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요" objectStorageUseProxy: "연결에 프록시를 사용" @@ -790,6 +792,7 @@ noMaintainerInformationWarning: "관리자 정보가 설정되어 있지 않습 noBotProtectionWarning: "Bot 방어가 설정되어 있지 않습니다." configure: "설정하기" postToGallery: "갤러리에 업로드" +postToHashtag: "이 해시태그에 게시" gallery: "갤러리" recentPosts: "최근 포스트" popularPosts: "인기 포스트" @@ -823,6 +826,7 @@ translatedFrom: "{x}에서 번역" accountDeletionInProgress: "계정 삭제 작업을 진행하고 있습니다" usernameInfo: "서버상에서 계정을 식별하기 위한 이름. 알파벳(a~z, A~Z), 숫자(0~9) 및 언더바(_)를 사용할 수 있습니다. 사용자명은 나중에 변경할 수 없습니다." aiChanMode: "아이 모드" +devMode: "개발자 모드" keepCw: "CW 유지하기" pubSub: "Pub/Sub 계정" lastCommunication: "마지막 통신" @@ -830,8 +834,10 @@ resolved: "해결됨" unresolved: "해결되지 않음" breakFollow: "팔로워 해제" breakFollowConfirm: "팔로우를 해제하시겠습니까?" -itsOn: "켜짐" -itsOff: "꺼짐" +itsOn: "켜져 있습니다" +itsOff: "꺼져 있습니다" +on: "켜짐" +off: "꺼짐" emailRequiredForSignup: "가입할 때 이메일 주소 입력을 필수로 하기" unread: "읽지 않음" filter: "필터" @@ -986,6 +992,8 @@ cannotBeChangedLater: "나중에 변경할 수 없습니다." reactionAcceptance: "리액션 수신" likeOnly: "좋아요만 받기" likeOnlyForRemote: "리모트에서는 좋아요만 받기" +nonSensitiveOnly: "열람 주의로 설정되지 않았을 때만 받기" +nonSensitiveOnlyForLocalLikeOnlyForRemote: "열람 주의로 설정되지 않았을 때만 받기 (리모트에서는 좋아요만 받기)" rolesAssignedToMe: "나에게 할당된 역할" resetPasswordConfirm: "비밀번호를 재설정하시겠습니까?" sensitiveWords: "민감한 단어" @@ -1043,20 +1051,30 @@ preventAiLearning: "기계학습(생성형 AI)으로의 사용을 거부" preventAiLearningDescription: "외부의 문장 생성 AI나 이미지 생성 AI에 대해 제출한 노트나 이미지 등의 콘텐츠를 학습의 대상으로 사용하지 않도록 요구합니다. 다만, 이 요구사항을 지킬 의무는 없기 때문에 학습을 완전히 방지하는 것은 아닙니다." options: "옵션" specifyUser: "사용자 지정" +failedToPreviewUrl: "미리 볼 수 없음" +update: "업데이트" +rolesThatCanBeUsedThisEmojiAsReaction: "이 이모지를 리액션으로 사용할 수 있는 역할" +rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "역할을 지정하지 않으면, 누구나 이 이모지를 리액션으로 사용할 수 있습니다." +rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "역할은 공개로 설정되어 있어야 합니다." +cancelReactionConfirm: "리액션을 취소하시겠습니까?" +changeReactionConfirm: "리액션을 변경하시겠습니까?" +later: "나중에" +goToMisskey: "Misskey로" _initialAccountSetting: accountCreated: "계정 생성이 완료되었습니다!" letsStartAccountSetup: "계정의 초기 설정을 진행합니다." letsFillYourProfile: "우선 나의 프로필을 설정해 보아요." profileSetting: "프로필 설정" - privacySetting: "\n프라이버시설정" + privacySetting: "\n프라이버시 설정" theseSettingsCanEditLater: "이 설정들은 나중에도 변경할 수 있습니다." - youCanEditMoreSettingsInSettingsPageLater: "이 외에도 '설정' 페이지에서 다양한 설정을 나의 입맛에 맛게 조절할 수 있습니다. 꼭 확인해 보세요!" + youCanEditMoreSettingsInSettingsPageLater: "이 외에도 '설정' 페이지에서 다양한 설정을 나의 입맛에 맞게 조절할 수 있습니다. 꼭 확인해 보세요!" followUsers: "관심사가 맞는 유저를 팔로우하여 타임라인을 가꾸어 봅시다." pushNotificationDescription: "푸시 알림을 활성화하면 {name}의 알림을 나의 기기에서 받아볼 수 있게 됩니다." initialAccountSettingCompleted: "초기 설정을 모두 마쳤습니다!" haveFun: "{name}와 함께 즐거운 시간 보내세요!" ifYouNeedLearnMore: "{name}(Misskey)의 사용 방법에 대해 자세히 알아보려면 {link}를 참고해 주세요." skipAreYouSure: "초기 설정을 넘기시겠습니까?" + laterAreYouSure: "초기 설정을 나중에 다시 진행하시겠습니까?" _serverRules: description: "회원 가입 이전에 간단하게 표시할 서버 규칙입니다. 이용 약관의 요약으로 구성하는 것을 추천합니다." _accountMigration: diff --git a/locales/no-NO.yml b/locales/no-NO.yml index 585fb95b3d..7bc647fc1d 100644 --- a/locales/no-NO.yml +++ b/locales/no-NO.yml @@ -1,5 +1,7 @@ --- _lang_: "Norsk Bokmål" +headlineMisskey: "Et nettverk forbundet med notes" +introMisskey: "Velkommen! Misskey er en desentralisert mikrobloggtjeneste med åpen kildekode.\nOpprett \"notes\" for å dele tankene dine med alle rundt deg. 📡\nMed \"reaksjoner\" kan du også raskt gi uttrykk for hva du synes om alles notes. 👍\nLa oss utforske en ny verden! 🚀" monthAndDay: "{day}-{month}" search: "Søk" notifications: "Varsler" @@ -10,8 +12,10 @@ fetchingAsApObject: "Henter fra Fediverse..." ok: "OK" gotIt: "Skjønner" cancel: "Avbryt" -noThankYou: "Avbryt" +noThankYou: "Ikke nå" enterUsername: "Skriv inn brukernavn" +renotedBy: "Renotes av {user}" +noNotes: "Ingen notes" noNotifications: "Ingen varsler" instance: "Server" settings: "Innstillinger" @@ -30,20 +34,21 @@ uploading: "Laster opp" save: "Lagre" users: "Brukere" addUser: "Legg til bruker" -favorite: "Favoritt" +favorite: "Legg til i favoritter" favorites: "Favoritter" -unfavorite: "Fjern favoritt" +unfavorite: "Fjern fra favoritter" favorited: "Lagt til i favoritter." alreadyFavorited: "Allerede lagt til i favoritter." cantFavorite: "Kunne ikke legge til i favoritter." -pin: "Fest" -unpin: "Opphev festing" +pin: "Fest til profil" +unpin: "Fjern fra profil" copyContent: "Kopier innhold" copyLink: "Kopier lenke" delete: "Slett" deleteAndEdit: "Slett og rediger" +deleteAndEditConfirm: "Er du sikker på at du vil slette denne noten og redigere den? Du vil miste alle reaksjoner, renotes og svar på den." addToList: "Legg til i liste" -sendMessage: "Send melding" +sendMessage: "Send en melding" copyRSS: "Kopier RSS" copyUsername: "Kopier brukernavn" searchUser: "Søk brukere" @@ -63,7 +68,9 @@ unfollowConfirm: "Er du sikker på at du vil slutte å følge {name}?" importRequested: "Du har bedt om import. Dette kan ta en stund." lists: "Lister" noLists: "Ingen lister" -following: "Følg" +note: "Note" +notes: "Notes" +following: "Følger" followers: "Følgere" followsYou: "Følger deg" createList: "Opprett liste" @@ -80,8 +87,13 @@ followRequests: "Følgeforespørsel" unfollow: "Avfølg" followRequestPending: "Venter på godkjenning" enterEmoji: "Skriv inn en emoji" +renote: "Renote" +renoted: "Renotet." +cantRenote: "Dette innlegget kan ikke renotes." +cantReRenote: "En renote kan ikke renotes." quote: "Sitat" -pinned: "Fest" +pinnedNote: "Festet note" +pinned: "Fest til profil" you: "Du" clickToShow: "Klikk for å vise" add: "Legg til" @@ -89,18 +101,21 @@ reaction: "Reaksjon" reactions: "Reaksjoner" reactionSetting: "Reaksjoner som vises i reaksjonsvelgeren" reactionSettingDescription2: "Dra for å endre rekkefølgen, klikk for å slette, trykk \"+\" for å legge til." +rememberNoteVisibility: "Husk innstillingene for synlighet av notes" attachCancel: "Fjern vedlegg" enterFileName: "Skriv inn filnavn" mute: "Skjul" unmute: "Vis" +renoteMute: "Skjul renotes" +renoteUnmute: "Vis renotes" block: "Blokker" unblock: "Opphev blokkering" suspend: "Suspender" -blockConfirm: "Blokker?" +blockConfirm: "Er du sikker på at du vil blokke denne kontoen?" unblockConfirm: "Er du sikker på at du vil oppheve blokkeringen av denne kontoen?" suspendConfirm: "Er du sikker på at du vil suspendere denne kontoen?" -selectList: "Velg liste" -selectChannel: "Velg kanal" +selectList: "Velg en liste" +selectChannel: "Velg en kanal" selectAntenna: "Velg en antenne" selectWidget: "Velg en widget" editWidgets: "Rediger widgeter" @@ -113,6 +128,7 @@ flagAsBot: "Merk denne kontoen som en bot" flagAsBotDescription: "Aktiver dette alternativet hvis denne kontoen styres av et program. Hvis det er aktivert, vil det fungere som et flagg for andre utviklere for å forhindre endeløse interaksjonskjeder med andre roboter og justere Misskeys interne systemer til å behandle denne kontoen som en bot." flagAsCat: "Merk denne kontoen som en katt" flagAsCatDescription: "Aktiver dette alternativet for å merke denne kontoen som en katt." +flagShowTimelineReplies: "Vis svar i tidslinje" addAccount: "Legg til konto" reloadAccountsList: "Last inn kontoliste på nytt" loginFailed: "Kunne ikke logge inn" @@ -120,12 +136,15 @@ general: "Generelt" searchWith: "Søk: {q}" youHaveNoLists: "Du har ingen lister" followConfirm: "Er du sikker på at du vil følge {name}?" -selectUser: "Velg bruker" +host: "Vert" +selectUser: "Velg en bruker" recipient: "Mottaker" annotation: "Kommentarer" federation: "Føderasjon" -instances: "Server" +instances: "Servere" registeredAt: "Registrerte seg" +latestRequestReceivedAt: "Siste forespørsel mottatt" +latestStatus: "Siste status" perHour: "Per time" perDay: "Per dag" stopActivityDelivery: "Slutt å sende aktiviteter" @@ -136,7 +155,7 @@ withNFiles: "{n} fil(er)" network: "Nettverk" statistics: "Statistikk" clearQueue: "Tøm kø" -clearQueueConfirmTitle: "Vil du tømme kø?" +clearQueueConfirmTitle: "Er du sikker på at du vil tømme køen?" blockedInstances: "Blokkerte severe" blockedInstancesDescription: "Skriv opp vertsnavnene til serverne du vil blokkere, atskilt med linjeskift. Serverne i listen vil ikke lenger kunne kommunisere med denne serveren." muteAndBlock: "Skjul og blokker" @@ -144,9 +163,11 @@ mutedUsers: "Skjulte brukere" blockedUsers: "Blokkerte brukere" noUsers: "Det er ingen brukere" editProfile: "Rediger profil" +noteDeleteConfirm: "Er du sikker på at du vil slette denne noten?" pinLimitExceeded: "Du kan ikke feste flere." +intro: "Installasjonen av Misskey er ferdig! Vennligst opprett en administratorkonto." done: "Ferdig" -noCustomEmojis: "Ingen emoji" +noCustomEmojis: "Det er ingen emoji" noJobs: "Det er ingen jobber" blocked: "Blokkert" suspended: "Suspendert" @@ -160,11 +181,13 @@ attachFile: "Legg ved filer" more: "Mer!" announcements: "Kunngjøringer" remove: "Slett" -removed: "Slettet" +removed: "Vellykket slettet" removeAreYouSure: "Er du sikker på at du vil fjerne \"{x}\"?" deleteAreYouSure: "Er du sikker på at du vil slette \"{x}\"?" saved: "Lagret" upload: "Laste opp" +keepOriginalUploading: "Behold originalbildet" +fromUrl: "Fra URL" explore: "Utforsk" messageRead: "Lest" agree: "Jeg godtar" @@ -178,16 +201,16 @@ yearsOld: "{age} år gammel" light: "Lys" dark: "Mørk" fileName: "Filnavn" -selectFile: "Velg fil" -selectFiles: "Velg fil" -selectFolder: "Velg mappe" -selectFolders: "Velg mappe" +selectFile: "Velg en fil" +selectFiles: "Velg filer" +selectFolder: "Velg en mappe" +selectFolders: "Velg mapper" renameFile: "Endre filnavn" folderName: "Mappenavn" -createFolder: "Opprett mappe" +createFolder: "Opprett en mappe" renameFolder: "Endre mappenavn" -deleteFolder: "Slett mappe" -addFile: "Legg til fil" +deleteFolder: "Slett denne mappen" +addFile: "Legg til en fil" emptyFolder: "Denne mappen er tom" unableToDelete: "Kan ikke slette" circularReferenceFolder: "Målmappen er en undermappe til mappen du ønsker å flytte." @@ -196,14 +219,14 @@ copyUrl: "Kopier URL" rename: "Endre navn" avatar: "Avatar" banner: "Banner" -doNothing: "Gjør ingenting" +doNothing: "Ignorer" accept: "Tillatt" reject: "Avslå" instanceName: "Servernavn" instanceDescription: "Serverbeskrivelse" -thisYear: "I år" +thisYear: "År" thisMonth: "Måned" -today: "I dag" +today: "Dag" dayX: "{day}" monthX: "{month}" yearX: "{year}" @@ -216,9 +239,10 @@ registration: "Registrer" enableRegistration: "Aktiver registrering av nye brukere" invite: "Inviter" basicInfo: "Grunnleggende informasjon" -pinnedUsers: "Festete brukrere" +pinnedUsers: "Festede brukrere" pinnedUsersDescription: "Liste over brukernavn atskilt med linjeskift som skal festes i \"Utforsk\" fanen." -pinnedPages: "Festete sider" +pinnedPages: "Festede sider" +pinnedNotes: "Festet note" hcaptcha: "hCaptcha" enableHcaptcha: "Aktiver hCaptcha" recaptcha: "reCAPTCHA" @@ -245,25 +269,37 @@ available: "Tilgjengelig" unavailable: "Utilgjengelig" tooShort: "For kort" tooLong: "For langt" +weakPassword: "Svakt passord" +normalPassword: "Gjennomsnittlig passord" +strongPassword: "Sterkt passord" +signinWith: "Logg inn med {x}" +signinFailed: "Kunne ikke logge inn. Det oppgitte brukernavnet eller passordet er feil." or: "eller" language: "Språk" aboutX: "Om {x}" -category: "Kategorier" +category: "Kategori" createAccount: "Opprett konto" +openImageInNewTab: "Åpne bilder i ny fane" +clientSettings: "Klientinnstillinger" +accountSettings: "Kontoinnstillinger" objectStorageRegion: "Region" objectStorageUseSSL: "Bruk SSL" objectStorageUseProxy: "Bruk Proxy" deleteAll: "Slett alt" +newNoteRecived: "Det er nye notes" listen: "Lytt" none: "Ingen" +volume: "Volum" chooseEmoji: "Velg emoji" recentUsed: "Sist brukte" install: "Installer" +uninstall: "Avinstaller" nothing: "Ingenting" deleteAllFiles: "Slett alle filer" -deleteAllFilesConfirm: "Vil du slette alle filer?" +deleteAllFilesConfirm: "Er du sikker på at du vil slette alle filer?" +userSuspended: "Denne brukeren har blitt suspendert." accountDeleted: "Kontoen blir slettet" -accountDeletedDescription: "Denne kontoen blir slettet" +accountDeletedDescription: "Denne kontoen har blitt slettet." menu: "Meny" poll: "Avstemning" description: "Beskrivelse" @@ -274,6 +310,7 @@ small: "Liten" notificationType: "Varseltype" edit: "Rediger" email: "E-post" +smtpHost: "Vert" smtpUser: "Brukernavn" smtpPass: "Passord" userSaysSomething: "{name} sa noe" @@ -289,16 +326,24 @@ reportAbuse: "Rappoter" send: "Send" openInNewTab: "Åpne i ny fane" waitingFor: "Venter på {x}" +random: "Tilfeldig" system: "System" +desktop: "Skrivebord" +i18nInfo: "Misskey oversettes til flere språk av frivillige. Du kan hjelpe til på {link}." followingCount: "Følger" followersCount: "Følgere" yes: "Ja" no: "Nei" +contact: "Kontakt" +developer: "Utvikler" +makeExplorable: "Gjør konto synlig i \"Utforsk\"" +makeExplorableDescription: "Hvis du slår av dette, vises ikke kontoen din i \"Utforsk\" delen." left: "Venstre" saveAs: "Lagre som" value: "Verdi" deleteConfirm: "Vil du slette?" invalidValue: "Verdien er ugyldig." +closeAccount: "Avslutt konto" emailNotification: "E-postvarsler" inChannelSearch: "Søk i kanal" clear: "Tøm" @@ -312,17 +357,23 @@ accounts: "Kontoer" switch: "Bytt" gallery: "Galleri" ads: "Annonser" +memo: "Notat" high: "Høy" low: "Lav" -sent: "Send" +sent: "Sendt" +received: "Mottatt" learnMore: "Les mer" +misskeyUpdated: "Misskey har blitt oppdatert!" translate: "Oversett" +translatedFrom: "Oversatt fra {x}" unread: "Ulest" manageAccounts: "Administrer konto" classic: "Klassisk" muteThread: "Skjul denne tråden" unmuteThread: "Vis denne tråden" +continueThread: "Vis fortsettelse av tråden" hide: "Skjul" +smartphone: "Smarttelefon" tablet: "Nettbrett" auto: "Automatisk" size: "Størrelse" @@ -338,10 +389,10 @@ check: "Sjekk" deleteAccount: "Slett konto" document: "Dokumenter" logoutConfirm: "Vil du logge ut?" -pleaseSelect: "Vennligst velg" +pleaseSelect: "Velg et alternativ" type: "Type" beta: "Beta" -account: "Kontoer" +account: "Konto" move: "Flytt" pushNotification: "Push-varsler" tools: "Verktøy" @@ -357,6 +408,7 @@ role: "Rolle" color: "Farge" youCannotCreateAnymore: "Du kan ikke opprette flere." cannotPerformTemporary: "Midlertidig utilgjengelig" +achievements: "Prestasjoner" thisPostMayBeAnnoyingCancel: "Avbryt" exploreOtherServers: "Utforsk andre severe" letsLookAtTimeline: "La oss se på tidslinje" @@ -400,7 +452,7 @@ _achievements: _justPlainLucky: title: "Rett og slett heldig" _setNameToSyuilo: - description: "Du har satt navnet ditt til \"syuilo\"" + description: "Du satte navnet ditt til \"syuilo\"" _passedSinceAccountCreated1: title: "Ett års jubileum" description: "Det har gått ett år siden kontoen din ble opprettet" @@ -468,15 +520,17 @@ _theme: key: "Nøkkel" keys: link: "Lenke" + renote: "Renote" _sfx: + note: "Notes" notification: "Varsler" _ago: future: "Fremitid" justNow: "Akkurat nå" - secondsAgo: "{n} sekunder siden" - minutesAgo: "{n} minutter siden" - hoursAgo: "{n} timer siden" - daysAgo: "{n} dager siden" + secondsAgo: "{n}s siden" + minutesAgo: "{n}m siden" + hoursAgo: "{n}t siden" + daysAgo: "{n}d siden" weeksAgo: "{n} uker siden" monthsAgo: "{n} måneder siden" yearsAgo: "{n} år siden" @@ -579,10 +633,12 @@ _notification: _types: follow: "Følg" reply: "Svar" + renote: "Renote" quote: "Sitat" reaction: "Reaksjon" _actions: reply: "Svar" + renote: "Renote" _deck: swapLeft: "Flytt til venstre" swapRight: "Flytt til høyre" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 6044a6532f..04c14b2c65 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -1055,6 +1055,11 @@ failedToPreviewUrl: "無法預覽" update: "更新" rolesThatCanBeUsedThisEmojiAsReaction: "可以當成反應使用的角色" rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "如果是未指定角色的情況,則任何人都可以被當成反應來使用。" +rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "角色必須是公開的角色。" +cancelReactionConfirm: "要取消做出的反應嗎?" +changeReactionConfirm: "要變更做出的反應嗎?" +later: "稍後再說" +goToMisskey: "往Misskey" _initialAccountSetting: accountCreated: "帳戶已建立完成!" letsStartAccountSetup: "來進行帳戶的初始設定吧。" @@ -1069,6 +1074,7 @@ _initialAccountSetting: haveFun: "盡情享受{name}吧!" ifYouNeedLearnMore: "關於如何使用{name}(Misskey)的詳細資訊,請見{link}。" skipAreYouSure: "要略過初始設定嗎?" + laterAreYouSure: "稍後再重新進行初始設定嗎?" _serverRules: description: "設定伺服器的簡要規則,在新的註冊之前顯示。建議的內容是使用條款的摘要。" _accountMigration: From 14da0a65f70b21eb2e9dec10dab9683e271358d5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 31 May 2023 12:24:00 +0900 Subject: [PATCH 2/9] tweak ui --- packages/frontend/src/ui/_common_/navbar.vue | 1 + packages/frontend/src/ui/deck.vue | 1 + packages/frontend/src/ui/deck/column.vue | 3 +-- packages/frontend/src/ui/universal.vue | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/ui/_common_/navbar.vue b/packages/frontend/src/ui/_common_/navbar.vue index 2daff868a9..b9bce4d74d 100644 --- a/packages/frontend/src/ui/_common_/navbar.vue +++ b/packages/frontend/src/ui/_common_/navbar.vue @@ -118,6 +118,7 @@ function more(ev: MouseEvent) { box-sizing: border-box; overflow: auto; overflow-x: clip; + overscroll-behavior: contain; background: var(--navBg); contain: strict; display: flex; diff --git a/packages/frontend/src/ui/deck.vue b/packages/frontend/src/ui/deck.vue index 51cb803397..c828731773 100644 --- a/packages/frontend/src/ui/deck.vue +++ b/packages/frontend/src/ui/deck.vue @@ -306,6 +306,7 @@ async function deleteProfile() { display: flex; overflow-x: auto; overflow-y: clip; + overscroll-behavior: contain; background: var(--deckBg); &.center { diff --git a/packages/frontend/src/ui/deck/column.vue b/packages/frontend/src/ui/deck/column.vue index 2c75577ba4..d95f826f20 100644 --- a/packages/frontend/src/ui/deck/column.vue +++ b/packages/frontend/src/ui/deck/column.vue @@ -387,9 +387,8 @@ function onDrop(ev) { .body { height: calc(100% - var(--deckColumnHeaderHeight)); overflow-y: auto; - overflow-x: hidden; // Safari does not supports clip overflow-x: clip; - -webkit-overflow-scrolling: touch; + overscroll-behavior-y: contain; box-sizing: border-box; container-type: size; background-color: var(--bg); diff --git a/packages/frontend/src/ui/universal.vue b/packages/frontend/src/ui/universal.vue index 0f7b5ad90a..3e06522b69 100644 --- a/packages/frontend/src/ui/universal.vue +++ b/packages/frontend/src/ui/universal.vue @@ -278,6 +278,7 @@ $widgets-hide-threshold: 1090px; min-width: 0; overflow: auto; overflow-y: scroll; + overscroll-behavior: contain; background: var(--bg); } From 821bb1c4767bee84fd9e1196cfee0dabf92c431a Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 31 May 2023 12:42:24 +0900 Subject: [PATCH 3/9] =?UTF-8?q?perf(frontend):=20=E3=82=B5=E3=83=BC?= =?UTF-8?q?=E3=83=90=E3=83=BC=E3=81=AB=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0?= =?UTF-8?q?=E7=B5=B5=E6=96=87=E5=AD=97=E3=81=AE=E7=A8=AE=E9=A1=9E=E3=81=8C?= =?UTF-8?q?=E5=A4=9A=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AE=E3=83=91=E3=83=95?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=9E=E3=83=B3=E3=82=B9=E3=81=AE=E6=94=B9?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve #10925 --- CHANGELOG.md | 1 + packages/frontend/src/components/MkEmojiPicker.vue | 4 ++-- .../frontend/src/components/global/MkCustomEmoji.vue | 4 ++-- packages/frontend/src/custom-emojis.ts | 10 +++++++++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a61051e32b..0e61e7f35c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ - ハッシュタグのノート一覧ページから、そのハッシュタグで投稿するボタンを追加 - アカウント初期設定ウィザードに戻るボタンを追加 - アカウントの初期設定ウィザードにあとでボタンを追加 +- サーバーにカスタム絵文字の種類が多い場合のパフォーマンスの改善 - Fix: URLプレビューで情報が取得できなかった際の挙動を修正 - Fix: Safari、Firefoxでの新規登録時、パスワードマネージャーにメールアドレスが登録されていた挙動を修正 - Fix: ロールタイムラインが無効でも投稿が流れてしまう問題の修正 diff --git a/packages/frontend/src/components/MkEmojiPicker.vue b/packages/frontend/src/components/MkEmojiPicker.vue index d489b3e9b9..b632baaa2b 100644 --- a/packages/frontend/src/components/MkEmojiPicker.vue +++ b/packages/frontend/src/components/MkEmojiPicker.vue @@ -101,7 +101,7 @@ import { isTouchUsing } from '@/scripts/touch'; import { deviceKind } from '@/scripts/device-kind'; import { i18n } from '@/i18n'; import { defaultStore } from '@/store'; -import { customEmojiCategories, customEmojis } from '@/custom-emojis'; +import { customEmojiCategories, customEmojis, customEmojisMap } from '@/custom-emojis'; import { $i } from '@/account'; const props = withDefaults(defineProps<{ @@ -337,7 +337,7 @@ function done(query?: string): boolean | void { if (query == null || typeof query !== 'string') return; const q2 = query.replace(/:/g, ''); - const exactMatchCustom = customEmojis.value.find(emoji => emoji.name === q2); + const exactMatchCustom = customEmojisMap.get(q2); if (exactMatchCustom) { chosen(exactMatchCustom); return true; diff --git a/packages/frontend/src/components/global/MkCustomEmoji.vue b/packages/frontend/src/components/global/MkCustomEmoji.vue index 0cb31ffcba..e8a7f17cc6 100644 --- a/packages/frontend/src/components/global/MkCustomEmoji.vue +++ b/packages/frontend/src/components/global/MkCustomEmoji.vue @@ -7,7 +7,7 @@ import { computed } from 'vue'; import { getProxiedImageUrl, getStaticImageUrl } from '@/scripts/media-proxy'; import { defaultStore } from '@/store'; -import { customEmojis } from '@/custom-emojis'; +import { customEmojisMap } from '@/custom-emojis'; const props = defineProps<{ name: string; @@ -26,7 +26,7 @@ const rawUrl = computed(() => { return props.url; } if (isLocal.value) { - return customEmojis.value.find(x => x.name === customEmojiName.value)?.url ?? null; + return customEmojisMap.get(customEmojiName.value)?.url ?? null; } return props.host ? `/emoji/${customEmojiName.value}@${props.host}.webp` : `/emoji/${customEmojiName.value}.webp`; }); diff --git a/packages/frontend/src/custom-emojis.ts b/packages/frontend/src/custom-emojis.ts index de1b5b8a63..9b738b2fd4 100644 --- a/packages/frontend/src/custom-emojis.ts +++ b/packages/frontend/src/custom-emojis.ts @@ -1,4 +1,4 @@ -import { shallowRef, computed, markRaw } from 'vue'; +import { shallowRef, computed, markRaw, watch } from 'vue'; import * as Misskey from 'misskey-js'; import { api, apiGet } from './os'; import { useStream } from '@/stream'; @@ -16,6 +16,14 @@ export const customEmojiCategories = computed<[ ...string[], null ]>(() => { return markRaw([...Array.from(categories), null]); }); +export const customEmojisMap = new Map(); +watch(customEmojis, emojis => { + customEmojisMap.clear(); + for (const emoji of emojis) { + customEmojisMap.set(emoji.name, emoji); + } +}, { immediate: true }); + // TODO: ここら辺副作用なのでいい感じにする const stream = useStream(); From aba0755880d6797f49d34c8b7fe2c602d153e367 Mon Sep 17 00:00:00 2001 From: kabo2468 <28654659+kabo2468@users.noreply.github.com> Date: Wed, 31 May 2023 12:57:40 +0900 Subject: [PATCH 4/9] =?UTF-8?q?enhance(client):=20MFM=E3=81=AEx2,=20scale,?= =?UTF-8?q?=20position=E3=81=8C=E5=90=AB=E3=81=BE=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=9F=E3=82=89=E3=83=8E=E3=83=BC=E3=83=88=E3=82=92?= =?UTF-8?q?=E3=81=9F=E3=81=9F=E3=82=80=E3=82=88=E3=81=86=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F=20(#10165)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(client): MFMのx2, scale, positionが含まれていたらノートをたたむようにした * Update CHANGELOG.md --------- Co-authored-by: tamaina --- CHANGELOG.md | 1 + packages/frontend/src/components/MkNote.vue | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e61e7f35c..dd7882c344 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -367,6 +367,7 @@ Meilisearchの設定に`index`が必要になりました。値はMisskeyサー - アンテナでCWも検索対象にするように - ノートの操作部をホバー時のみ表示するオプションを追加 - サウンドを追加 +- enhance(client): MFMのx2, scale, positionが含まれていたらノートをたたむように - サーバーのパフォーマンスを改善 ### Bugfixes diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index e0f2ab61c5..30ec9123bb 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -205,8 +205,11 @@ const isMyRenote = $i && ($i.id === note.userId); const showContent = ref(false); const urls = appearNote.text ? extractUrlFromMfm(mfm.parse(appearNote.text)) : null; const isLong = (appearNote.cw == null && appearNote.text != null && ( + (appearNote.text.includes('$[x2')) || (appearNote.text.includes('$[x3')) || (appearNote.text.includes('$[x4')) || + (appearNote.text.includes('$[scale')) || + (appearNote.text.includes('$[position')) || (appearNote.text.split('\n').length > 9) || (appearNote.text.length > 500) || (appearNote.files.length >= 5) || @@ -274,7 +277,7 @@ function renote(viaKeyboard = false) { const y = rect.top + (el.offsetHeight / 2); os.popup(MkRippleEffect, { x, y }, {}, 'end'); } - + os.api('notes/create', { renoteId: appearNote.id, channelId: appearNote.channelId, @@ -305,7 +308,7 @@ function renote(viaKeyboard = false) { const y = rect.top + (el.offsetHeight / 2); os.popup(MkRippleEffect, { x, y }, {}, 'end'); } - + os.api('notes/create', { renoteId: appearNote.id, }).then(() => { From e11f82c300e17049c03f1de510ebc59bb51d0b00 Mon Sep 17 00:00:00 2001 From: syuilo Date: Wed, 31 May 2023 13:27:59 +0900 Subject: [PATCH 5/9] refactor --- packages/frontend/src/ui/_common_/navbar.vue | 740 +++++++++---------- 1 file changed, 370 insertions(+), 370 deletions(-) diff --git a/packages/frontend/src/ui/_common_/navbar.vue b/packages/frontend/src/ui/_common_/navbar.vue index b9bce4d74d..e9f0624a2e 100644 --- a/packages/frontend/src/ui/_common_/navbar.vue +++ b/packages/frontend/src/ui/_common_/navbar.vue @@ -1,51 +1,50 @@