diff --git a/src/webpage/markdown.ts b/src/webpage/markdown.ts index e3dfb0f..fd5aa15 100644 --- a/src/webpage/markdown.ts +++ b/src/webpage/markdown.ts @@ -1005,8 +1005,8 @@ class MarkDown { } } static unspoil(e: any): void { - e.target.classList.remove("spoiler"); - e.target.classList.add("unspoiled"); + e.currentTarget.classList.remove("spoiler"); + e.currentTarget.classList.add("unspoiled"); } onUpdate: (upto: string, pre: boolean) => unknown = () => {}; box = new WeakRef(document.createElement("div")); diff --git a/src/webpage/style.css b/src/webpage/style.css index 12e56ee..385c79f 100644 --- a/src/webpage/style.css +++ b/src/webpage/style.css @@ -2857,19 +2857,28 @@ input[type="search"]:read-only { background: var(--spoiler-bg); color: var(--spoiler-bg); cursor: pointer; - a { + samp, a { + background: transparent; + color: inherit; + } + pre, .quote { + background: var(--spoiler-bg); color: var(--spoiler-bg); } } .spoiler:hover { background: var(--spoiler-hover); color: var(--spoiler-hover); + pre, .quote { + background: var(--spoiler-hover); + color: var(--spoiler-hover); + } } .unspoiled { - color: var(--spoiler-text); -} -a.unspoiled { - color: var(--link) !important; + background: var(--spoiler-unspoiled); + .quote { + background: var(--spoiler-unspoiled); + } } .quote { display: inline-block; diff --git a/src/webpage/themes.css b/src/webpage/themes.css index 54c5ff3..2b72991 100644 --- a/src/webpage/themes.css +++ b/src/webpage/themes.css @@ -108,14 +108,13 @@ --button-bg: #babdd2; --button-hover: #9c9fbf; - --spoiler-bg: #34333a; + --spoiler-bg: #c7c6e5; --link: #283c8b; --black: #434392; --red: #ca304d; --secondary-text-soft: #211f2e; --blank-bg: #494985; - --spoiler-text: #e4e6ed; } .Dark-Accent-theme { @@ -174,8 +173,8 @@ body { --message-jump-bg: color-mix(in srgb, var(--accent-color) 20%, transparent); --code-bg: var(--secondary-bg); --code-text: var(--secondary-text); - --spoiler-text: var(--primary-text); --spoiler-hover: color-mix(in srgb, var(--spoiler-bg), var(--primary-text-soft) 10%); + --spoiler-unspoiled: color-mix(in srgb, var(--primary-text-soft) 15%, var(--primary-bg)); --quote-line: color-mix(in srgb, var(--primary-text-soft), transparent); --reply-line: color-mix(in srgb, var(--primary-text-soft) 20%, transparent); --reply-text: var(--primary-text-soft); diff --git a/translations/ga.json b/translations/ga.json index 3c61598..a64e656 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -319,6 +319,8 @@ "banner:": "Meirge:", "bans": "Toirmisc", "boostMessage?": "Seol teachtaireacht nuair a chuireann duine borradh faoi do ghrúpa!", + "banId": "Toirmeasc de réir aitheantais", + "idSel": "Aitheantas:", "community": "Pobal", "confirmDelete": "An bhfuil tú cinnte gur mian leat $1 a scriosadh?", "confirmLeave": "An bhfuil tú cinnte gur mian leat imeacht?", @@ -772,7 +774,8 @@ "mut": "Gildeanna frithpháirteacha", "mutFriends": "Cairde frithpháirteacha", "permInfo": "Ceadanna", - "userInfo": "Eolas úsáideora" + "userInfo": "Eolas úsáideora", + "notes": "Nótaí úsáideora" }, "profileColor": "Dath próifíle", "pronouns": "Forainmneacha:", @@ -786,7 +789,9 @@ "passwordError:": "Pasfhocal: $1", "register": "Cláraigh", "tos": "Ní mór duit aontú leis na Téarmaí Seirbhíse", - "usernameError": "Ainm úsáideora: $1" + "usernameError": "Ainm úsáideora: $1", + "other": "Sampla eile", + "instURL": "URL:" }, "remove": "Bain", "renderJoinAvatars": "Taispeáin abhatár do bhaill nua:", @@ -824,7 +829,14 @@ "nofind": "Is cosúil nach bhfuil aon teachtaireachtaí ann a mheaitseálann do chuardach, b'fhéidir go bhfuil tú ag iarraidh do chuardach a leathnú chun iarracht a dhéanamh an rud atá uait a aimsiú.", "old": "Sean", "page": "Leathanach $1", - "search": "Cuardaigh" + "search": "Cuardaigh", + "settings": "Socruithe Cuardaigh", + "before": "Roimhe seo:", + "after": "Tar éis:", + "includensfw": "Cuir NSFW san áireamh:", + "authors": "Údair:", + "mentions": "Luaitear:", + "channels": "Cainéil:" }, "searchGifs": "Cuardaigh i $1", "settings": { diff --git a/translations/it.json b/translations/it.json index 690b266..fd0d2da 100644 --- a/translations/it.json +++ b/translations/it.json @@ -297,6 +297,7 @@ "banner:": "Banner:", "bans": "Ban", "boostMessage?": "Invia un messaggio quando qualcuno potenzia la tua gilda!", + "idSel": "ID:", "community": "Comunità", "confirmDelete": "Sei sicuro di voler cancellare $1?", "confirmLeave": "Sei sicuro di voler abbandonare?", @@ -603,7 +604,8 @@ } }, "profile": { - "userInfo": "Informazioni utente" + "userInfo": "Informazioni utente", + "notes": "Note utente" }, "profileColor": "Colore del profilo", "pronouns": "Pronomi:", @@ -611,7 +613,8 @@ "register": { "DOBError": "Data di nascita: $1", "register": "Registrati", - "usernameError": "Nome utente: $1" + "usernameError": "Nome utente: $1", + "instURL": "URL:" }, "remove": "Rimuovi", "reply": "Rispondi", diff --git a/translations/ko.json b/translations/ko.json index b1e7fc6..41f8ca5 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -14,26 +14,48 @@ "404": { "404": "오류:404 - 페이지를 찾을 수 없음", "app": "앱으로", - "blog": "Fermi 블로그", + "blog": "페르미 블로그", "home": "홈페이지", - "login": "로그인" + "listtitle": "어쩌면 이 장소들 중 한 곳에 가려고 했던 걸지도 몰라요", + "login": "로그인", + "report": "클라이언트에서 이 페이지를 발견하셨다면 신고해 주세요:", + "reset": "비밀번호 재설정 페이지", + "title": "길을 잃으신 것 같습니다", + "whatelse": "어떻게 되어야 한다고 생각시나요?", + "whereever": "이곳이 무엇이든" }, "onboarding": { + "name": "온보딩", + "disable": "온보딩 비활성화", "addChannel": "채널 추가", "channel": "채널:", "desc": "설명:", + "deleteChannel": "온보딩에서 채널 삭제", + "enable": "온보딩 활성화", "title": "$1에 오신 것을 환영합니다!" }, "DMs": { + "add": "이 메시지에 누군가를 추가", "close": "DM 닫기", "copyId": "DM ID 복사", "markRead": "읽은 것으로 표시", "name": "직신" }, "ok": "확인", + "dismiss": "닫기", "UrlGen": "봇 초대 생성기", "Voice": { + "userVol": "사용자 음량:", "status": { + "badWS": "WS로부터 나쁜 응답", + "conectionFailed": "연결 실패", + "done": "연결됨", + "left": "음성 채팅 떠남", + "makingOffer": "제안하기", + "noSDP": "SDP 없음", + "notconnected": "연결 안됨", + "sendingStreams": "오디오 스트림 전송 중", + "startingRTC": "RTC 연결 시작", "waitingMainWS": "주요 WS를 기다리는 중", "waitingURL": "음성 URL을 기다리는 중", "wsAuth": "WS의 승인을 기다리는 중", @@ -41,10 +63,33 @@ } }, "accessibility": { - "name": "접근성" + "gifSettings": { + "always": "항상", + "hover": "커서를 올릴 시", + "never": "안 함" + }, + "name": "접근성", + "playGif": "GIF 재생:", + "playIcon": "애니메이션 아이콘 재생:", + "roleColors": "역할 색상 비활성화:", + "gradientColors": "그라데이션 색상 비활성화:", + "decorations": "아바타 장식 활성화:" + }, + "accountNotStart": "계정을 시작할 수 없습니다", + "add": "추가", + "applications": { + "delete": "애플리케이션 삭제", + "sure": "$1를 삭제하시겠습니까?" }, "badge": { + "active_developer": "활동 개발자", + "application_guild_subscription": "프리미엄 보유", + "automod": "AutoMod 사용", + "bot_commands": "명령어를 지원", + "bug_hunter_level_1": "버그 사냥꾼 레벨 1", + "bug_hunter_level_2": "버그 사냥꾼 레벨 2", "certified_moderator": "중재자", + "early_supporter": "초기 후원자", "guild_booster_lvl1": "부스트된 길드", "guild_booster_lvl2": "부스트된 길드", "guild_booster_lvl3": "부스트된 길드", @@ -54,19 +99,35 @@ "guild_booster_lvl7": "부스트된 길드", "guild_booster_lvl8": "부스트된 길드", "guild_booster_lvl9": "잠시동안 부스트된 길드", - "hypesquad": "Vibesquad [자리 표시자]" + "hypesquad": "Vibesquad [자리 표시자]", + "hypesquad_house_1": "대담함", + "hypesquad_house_2": "우수함", + "hypesquad_house_3": "균형", + "legacy_username": "기존 사용자이 이름 있음", + "partner": "인스턴스 파트너", + "premium": "프리미엄", + "quest_completed": "퀘스트를 완료함", + "staff": "인스턴스 직원", + "verified_developer": "인증된 개발자" }, + "bio": "자기 소개:", "blankMessage": "빈 메시지", "blog": { "blog": "블로그", "blogUpdates": "블로그 업데이트:", + "desc": "페르미에 대한 최신 소식을 받아보시려면 블로그를 읽거나 구독하세요!", "fermi": "페르미 블로그", - "gotoPost": "게시글로 이동" + "gotoPost": "게시물로 이동", + "wantUpdates": "페르미 프로젝트 진행 상황에 대한 주간 블로그 업데이트를 받아보시겠습니까?" }, "bot": "봇", + "botGuilds": "봇이 속한 길드:", "botSettings": "봇 설정", "cancel": "취소", "channel": { + "SlowmodeCool": "저속 모드 쿨다운: $1", + "TimeOutCool": "다음 시간까지 타임아웃: $1", + "allowIcons": "사용자 지정 채널 아이콘 허용", "announcement": "알림", "copyId": "채널 ID 복사", "copyIdCat": "분류 ID 복사", @@ -92,6 +153,7 @@ "text": "텍스트", "timedOutUntil": "다음 시간까지 타임아웃: $1", "topic:": "주제:", + "typebox": "$1에서의 메시지", "unmute": "채널 알림 표시", "voice": "음성", "deleteThread": "스레드 삭제", @@ -105,67 +167,148 @@ "editTags": "태그 편집" }, "forum": { - "creorsear": "게시글을 작성 또는 검색", + "creorsear": "게시물을 작성 또는 검색", "next": "다음", "back": "뒤로", "newPost": "새 글 작성하기", "post": "게시", "sortOptions": { "sortby": { - "title": "정렬 기준" + "title": "정렬 기준", + "recent": "최근 활동함", + "posted": "게시일" }, "sortOrder": { "title": "정렬 순서", "recent": "최신 순", "old": "과거 순" - } + }, + "tagMatch": { + "title": "태그 일치 여부", + "some": "일부 태그 일치", + "all": "모든 태그 일치" + }, + "name": "정렬 옵션" + }, + "errors": { + "tagsReq": "태그는 필수입니다.", + "requireText": "메시지는 비워둘 수 없습니다" }, "allTags": "모든 태그", "settings": { "editTags": "태그 편집:", "editTag": "태그 편집", "tagName": "태그 이름:", + "moderated": "스레드 관리자만 태그를 적용할 수 있도록 허용:", "addTag": "태그 추가", "delTag": "태그 삭제" } }, "channelLink": "# $1", + "clientDesc": "클라이언트 버전: $1 \n\n[공식 Fermi 길드에 가입하세요](https://redir.fermi.chat/invite)\n\n[Fermi 번역에 참여하세요](https://redir.fermi.chat/translate) \n\n[Fermi 개발에 참여하세요](https://github.com/MathMan05/Fermi)\n\n[Fermi 서버 유지 관리에 참여하세요](https://redir.fermi.chat/server)\n\n[블로그를 읽어보세요](https://blog.fermi.chat/)\n\n계산된 권한: $3", + "commands": { + "errorNotValid": "$1은(는) $2에 대한 유효한 선택지가 아닙니다", + "required": "$1은(는) 이 명령의 필수 요소입니다" + }, "confirmGuildLeave": "$1 장소를 떠나시겠습니까", + "copyLink": "메시지 링크 복사", "copyRegLink": "링크 복사", "copymessageid": "메시지 ID 복사", + "copyrawtext": "원본 텍스트 복사", + "createAccount": "계정 만들기", "delete": "삭제", "deleteConfirm": "이것을 삭제하시겠습니까?", - "deviceManage": { - "logout": "로그아웃" + "devSettings": { + "badUser": "과도한 정보를 전송하는 불량 사용자 객체에 대한 로깅을 활성화:", + "cache": "서비스 워커 캐싱 맵 파일 활성화:", + "cacheDesc": "지도 파일은 어떤 방식이든 로드되지만, 이렇게 하면 새 업데이트가 배포될 때 캐시에 저장되도록 할 수 있습니다.", + "captureTrace": "이 설정은 페르미에게 서버에서 _trace 속성을 캡처하도록 지시합니다. 이 기능을 활성화하면 점진적 JSON 디코딩이 작동하지 않을 수 있습니다(새로 고침이 필요할 수 있음).", + "clearWellKnowns": ".well-known 레코드를 다시 가져옴:", + "description": "이 설정은 Harmony/페르미 개발자를 위한 것입니다. 사용법을 잘 모르시는 분은 이 설정을 건드리지 마세요.", + "gatewayComp": "게이트웨이 압축을 비활성화:", + "reportSystem": "실험 신고 시스템을 활성화:", + "logGateway": "수신된 게이트웨이 이벤트 로그(로그 레벨 정보):", + "name": "개발자 설정", + "traces": "흔적 드러내기:" }, + "deviceManage": { + "city": "도시: $1", + "continent": "대륙: $1", + "country": "국가: $1", + "curSes": "현재 세션입니다. 로그아웃하려면 다른 메뉴를 이용해야 합니다", + "estimateWarn": "경고: 이 모든 정보는 추측일 뿐이며, 틀릴 수도 있습니다.", + "ip": "마지막으로 확인된 IP 주소: $1", + "last": "마지막으로 사용 됨: 약 $1", + "latitude": "위도: $1", + "logout": "로그아웃", + "longitude": "경도: $1", + "manageDev": "기기 관리", + "postal": "우편번호: $1", + "region": "지역: $1", + "title": "세션 관리" + }, + "discovery": "발견", + "dms": "개인 메시지", "edit": "편집", "emoji": { "confirmDel": "이 이모티콘을 삭제하시겠습니까?", + "found": { + "not": "이 이모티콘은 당신의 길드에서 제공하는 것이 아닙니다. 이 이모티콘을 사용하려면 해당 이모티콘을 제공하는 길드에 가입하세요.", + "other": "이 이모티콘은 다른 길드에서 온 것입니다.", + "private": "이 이모티콘에 해당하는 길드를 찾을 수 없습니다.", + "this": "이 이모티콘은 이 길드에서 가져온 것입니다." + }, + "from": "이 이모티콘은 다음에서 가져온 것입니다:", "image:": "이미지:", + "join": "길드 가입", "name:": "이름:", + "privateGuild": "이 길드는 비공개 길드입니다", "title": "이모티콘", "upload": "이모티콘 업로드" }, + "emojiSelect": "이모티콘:", + "errorReconnect": "서버에 연결할 수 없습니다. **$1**초 후에 다시 시도합니다...", + "favoriteGifs": "즐겨찾는 GIF", "folder": { + "color": "폴더 색상:", + "create": "새 폴더 만들기", + "edit": "폴더 편집", "name": "폴더 이름:" }, + "form": { + "captcha": "잠시만요, 사람이신가요?" + }, "friends": { "addfriend": "친구 추가", "addfriendpromt": "사용자 이름으로 친구 추가:", + "requestsent": "요청이 전송되었습니다!", "all": "모두", "all:": "모든 친구:", "blocked": "차단됨", "blockedusers": "차단된 사용자:", + "bu": "차단된 사용자", + "discnotfound": "판별자를 찾을 수 없습니다", "friendlist": "친구 목록", "friends": "친구", "notfound": "사용자를 찾을 수 없습니다", "online": "온라인", "online:": "온라인 친구:", - "pending": "보류 중", + "pending": "대기 중", "pending:": "대기 중인 친구 요청:", "removeFriend": "친구 제거" }, + "goThere": "네, 이동합니다", + "goThereTrust": "네, 이제부터 이 도메인을 신뢰합니다", + "goingToURL": "이 링크를 클릭하면 $1(으)로 이동합니다. 정말로 이동합니까?", + "group": { + "createdm": "개인 메세지를 만드세요!", + "edit": "그룹 채팅 편집", + "select": "친구 선택" + }, "guild": { + "COMMUNITY": "가입 신청하기", + "disableInvites": "초대 비활성화:", + "DISCOVERABLE": "발견", "INVITES_DISABLED": "초대 전용", "adminMenu": { "changePerms": "찾기 위해 권한 변경", @@ -174,70 +317,155 @@ "owner": "소유자 찾기", "permission": "권한:" }, + "report": "길드 신고", "admins": "관리자 찾기", "all": "모두", - "banner:": "배너:", + "banReason": "차단 이유: $1", + "bannedBy": "차단한 사용자:", + "banner:": "차단:", + "bans": "차단", + "boostMessage?": "누군가 당신의 길드를 부스트해 줄 때 메시지를 보냅니다!", + "banId": "ID로 차단", + "idSel": "ID:", + "community": "커뮤니티", + "confirmDelete": "$1 항목을 삭제하시겠습니까?", "confirmLeave": "떠나시겠습니까?", + "copyId": "길드 ID 복사", + "create": "길드를 처음부터 만들기", "createFromTemplate": "틀에서 길드 만들기", "createNewTemplate": "새 틀 만들기", + "creating": "길드 만드는 중", "default": "기본값 ($1)", + "defaultNoti": "길드의 기본 알림 설정을 지정하세요!", + "delete": "길드 삭제", "description:": "설명:", + "disoveryTitle": "길드 발견 ($1개 {{PLURAL:$1|항목}})", + "editingTemplate": "$1 편집 중", + "emptytext": "이상하네요, 이 길드에는 채널이 없네요!?", + "emptytitle": "이상한 점", + "guilds": "길드", + "helpTips?": "길드에 도움이 될 만한 팁을 보내주세요!", + "howJoin": "길드에 가입하려면 어떻게 해야 하나요?", "icon:": "아이콘:", + "invites": "초대", + "joinConfirm": "$1에 가입합니까?", + "leave": "길드 탈퇴", "loadingDiscovery": "불러오는 중...", "makeInvite": "초대하기", "markRead": "읽은 것으로 표시", "memberCount": "$1명의 {{PLURAL:$1|회원}}", + "mute": "길드 음소거", "name:": "이름:", + "nameNoMatch": "이름이 일치하지 않습니다", + "noDelete": "괜찮습니다", + "noLeave": "괜찮습니다", "none": "없음", "notifications": "알림", + "onlyMentions": "@mentions 만", "overview": "개요", "region:": "지역:", "roles": "역할", + "ruleId": "규칙 채널:", + "selectnoti": "알림 유형을 선택:", + "sendrandomwelcome?": "누군가 이 길드에 가입할 때 무작위 메시지를 보냅니다:", "serverName": "길드 이름:", "settings": "설정", "settingsFor": "$1 설정", + "splash": "발견 환영:", + "stickWelcomeReact?": "길드에 새로운 멤버가 가입했을 때, 길드원들이 스티커로 반응을 보이도록 설정합니다!", "systemSelect:": "시스템 메시지 채널:", "tempCreatedBy": "틀 만든이:", + "tempUseCount": "이 틀은 $1회{{PLURAL:$1|}} 사용되었습니다", + "template": "길드를 구축하기 위한 틀 링크/코드:", + "templateDesc": "틀 설명:", "templateName": "틀 이름:", + "templateNameShort": "틀 이름은 최소 2자 이상이어야 합니다", "templateURL": "틀 링크: $1", "templates": "틀", + "templcateMetaDesc": "틀을 사용하면 다른 사람들이 이 길드를 기반으로 자신만의 길드를 만들 수 있습니다. 이 길드의 채널, 역할 및 설정은 복사되지만 길드 내 메시지, 봇 및 길드 아이콘은 복사되지 않습니다.", "topic:": "주제:", + "unknownRole": "@unknown-role", "viewTemplate": "틀 보기", "yesDelete": "네, 확실합니다", "yesLeave": "네, 확실합니다" }, "hideBlockedMessages": "이 사용자를 차단하였습니다. 이 메시지를 숨기려면 클릭하세요", + "home": { + "icon": "$1의 인스턴스 아이콘", + "uptimeStats": "가동 시간: \n 전체 기간: $1%\n이번 주: $2%\n오늘: $3%", + "warnOffiline": "인스턴스가 오프라인 상태이므로 연결할 수 없습니다" + }, "htmlPages": { "addBot": "길드에 추가", "alreadyHave": "계정이 이미 있습니까?", + "box3description": "버그 보고서, 코드 제공, 심지어 오타 지적까지, 어떤 형태의 도움이라도 언제나 감사히 받겠습니다.", + "box3title": "페르미에 기여하세요", + "compatableInstances": "Harmony 호환 인스턴스:", "createAccount": "계정 만들기", "dobField": "출생일:", "emailField": "이메일:", "idpermissions": "이를 통해 봇은 다음 작업을 수행할 수 있습니다.", "instanceField": "인스턴스:", "loaddesc": "오래 걸리지 않습니다", + "loadingText": "페르미가 로딩되는 중입니다", "loginButton": "로그인", "noAccount": "계정이 없나요?", + "pw2Field": "비밀번호를 다시 입력하세요:", "pwField": "비밀번호:", "switchaccounts": "계정 전환", "trans": "번역", - "userField": "사용자 이름:" + "transDesc": "페르미 프로그래밍 언어를 여러분의 언어로 번역하는 데 도움을 주세요!", + "transTitle": "페르미를 번역", + "userField": "사용자 이름:", + "welcomeJank": "페르미에 오신 것을 환영합니다" + }, + "incorrectURLS": "## 이 인스턴스에서 잘못된 링크가 전송되었을 가능성이 있습니다.\n### 인스턴스 소유자이신 경우, 문제를 해결하려면 [여기](https://docs.spacebar.chat/setup/server/)의 *원격 머신에서 연결하기* 부분을 참조하세요.\n 페르미가 자동으로 이 오류를 수정하여 인스턴스에 연결할 수 있도록 시도하시겠습니까?", + "instInfo": "인스턴스 정보", + "instanceInfo": { + "contact": "이메일 인스턴스 관리자", + "frontPage": "[첫 페이지]($1)", + "name": "인스턴스 정보", + "publicUrl": "[공개 링크]($1)", + "tosPage": "[이용약관 페이지]($1)" }, "instanceStats": { + "members": "멤버: $1", "messages": "메시지: $1", "name": "인스턴스 통계: $1", "servers": "길드: $1", "users": "등록된 사용자: $1" }, + "interactions": { + "ephemeralDismiss": "메시지 닫기", + "failed": "상호 작용 실패", + "nonsence": "서버에서 존재하지 않는 유형인 $1의 구성 요소를 전송했습니다", + "notImpl": "페르미는 아직 구성 요소 $1을(를) 구현하지 않았습니다", + "onlyYou": "이 메시지는 당신만 볼 수 있습니다", + "replyline": "상호 작용 시작됨", + "started": "상호 작용 처리 중...", + "worked": "상호 작용 성공" + }, "invite": { "accept": "수락", "alreadyJoined": "이미 참여했습니다", "channel:": "채널:", "createInvite": "초대장 만들기", + "createdAt": "만든 날짜: $1", + "expireAfter": "다음 이후 만료:", + "expires": "만료일: $1", + "forChannel": "채널: $1", "inviteLinkCode": "초대 링크/코드", + "inviteMaker": "초대 제작기", "invitedBy": "$1님이 당신을 초대했습니다", + "joinUsing": "초대를 사용하여 길드에 가입하세요", + "loginOrCreateAccount": "로그인하거나 계정 만들기 ⇌", "longInvitedBy": "$1님이 당신을 $2에 초대했습니다", - "notFound": "초대장을 찾을 수 없습니다" + "maxUses": "최대 사용 횟수: $1", + "never": "없음", + "noAccount": "초대를 수락하려면 계정을 만드세요", + "notFound": "초대장을 찾을 수 없습니다", + "subtext": "$2의 $1(으)로", + "used": "$1번 사용됨{{PLURAL:$1||s}}:" }, "inviteOptions": { "12h": "12시간", @@ -247,76 +475,115 @@ "30m": "30분", "6h": "6시간", "7d": "7일", + "limit": "$1번 사용{{PLURAL:$1||s}}", "never": "없음", "noLimit": "제한 없음", "title": "인원 초대" }, + "jankInfo": "클라이언트 정보", + "leaveGuild": "길드 탈퇴", + "leaving": "Harmony를 떠나는 중입니다", + "loaded": "불러옴", "localuser": { "2faCode:": "코드:", + "2faCodeGive": "TOTP 비밀 키는 $1 입니다. 이 키를 누르면 30초 동안 유효한 6자리 2단계 인증 토큰이 생성됩니다.", "2faDisable": "2FA 비활성화", "2faEnable": "2FA 활성화", "CheckUpdate": "업데이트 확인", "PasswordsNoMatch": "비밀번호가 일치하지 않습니다", "TOSURL": "이용 약관 URL:", "VoiceWarning": "이 기능을 활성화하시겠습니까? 이 기능은 매우 실험적이며 문제가 발생할 가능성이 높습니다. (이 기능은 개발자를 위한 것이므로 무엇을 하는지 모르는 경우 활성화하지 마십시오)", + "accentColor": "테마 악센트 색상:", "accountSettings": "계정 설정", "addBot": "봇 추가", "addStatus": "상태 추가", "advancedBot": "고급 봇 설정", "appName": "애플리케이션 이름:", + "areYouSureDelete": "계정을 삭제하시겠습니까? 그렇다면 다음 문구를 입력해 주세요: $1", "badCode": "유효하지 않은 코드입니다", "badPassword": "비밀번호가 잘못되었습니다", "botAvatar": "봇 아바타:", + "botInviteCreate": "봇 초대 생성기", "botUsername": "봇 사용자 이름:", + "changeDiscriminator": "판별자 변경", "changeEmail": "이메일 주소 바꾸기", "changePassword": "비밀번호 바꾸기", "changeUsername": "사용자 이름 변경", "clearCache": "캐시 지우기", + "confirmAddBot": "이 애플리케이션에 봇을 추가하시겠습니까? 추가 후에는 되돌릴 수 없습니다.", + "confirmReset": "봇 토큰을 재설정하시겠습니까? 토큰을 업데이트하기 전까지는 봇이 작동하지 않습니다.", + "confuseNoBot": "무슨 이유인지 모르겠지만, 이 애플리케이션에는 (아직) 봇 기능이 없습니다.", "connections": "연결", "createApp": "애플리케이션 만들기", "customSound": "사용자 지정 소리", + "customStatusWarn": "Harmony는 현재 사용자 지정 상태 표시를 지원하지 않습니다. 그렇기에 상태는 받아들이지만 아무런 작업도 수행하지 않습니다.", "deleteAccount": "계정 삭제", "deleteAccountButton": "계정 삭제", "description": "설명:", "devPortal": "개발자 포털", + "disableConnection": "이 연결은 서버 측에서 비활성화되었습니다.", + "editingBot": "봇 $1 편집 중", "install": "설치", + "installDesc": "페르미를 설치하면 별도의 창에서 실행하여 독립형 앱처럼 사용할 수 있습니다! 기존처럼 웹 브라우저에서 페르미를 계속 사용하셔도 동일하게 작동합니다.", + "installJank": "페르미 설치", "language": "언어:", "manageBot": "봇 관리", "manageInstance": "인스턴스 관리", + "mustTypePhrase": "계정을 삭제하려면 다음 문구를 입력해야 합니다", + "newDiscriminator": "새 판별자:", "newEmail:": "새 이메일", "newPassword:": "새 비밀번호:", "newUsername": "새 사용자 이름:", + "noToken": "토큰을 모르기 때문에 localStorage에 저장할 수 없습니다. 죄송합니다", + "noUpdates": "업데이트를 찾을 수 없습니다", "notisound": "알림음:", "oldPassword:": "이전 비밀번호:", "password:": "비밀번호", "privacyPolcyURL": "개인정보처리방침 링크:", - "secret": "비밀번호", + "appID": "애플리케이션 ID: $1", + "showSecret": "클라이언트 비밀 키 표시", + "clientSecret": "클라이언트 비밀 키: $1", + "secret": "비밀 키", "publicAvaliable": "봇을 공개적으로 초대할 수 있게 할까요?", + "refreshPage": "새로 고침하여 적용", + "requireCode": "봇을 초대하려면 코드 권한이 필요한가요?", "resetToken": "토큰 초기화", + "saveToken": "토큰을 로컬 저장소에 저장", "setUp2fa": "2FA 구성", + "setUp2faInstruction": "이 비밀 키를 TOTP(시간 기반 일회용 비밀번호) 앱에 복사하여 2단계 인증 로그인 코드를 생성하세요", "settings": "설정", + "sillyDeleteConfirmPhrase": "햇빛이 선명하게 나뭇잎을 핥고 있었다", + "soundTooLarge": "업로드하려는 소리의 음량이 너무 큽니다. 다시 시도해 주세요", "status": "상태", "team:": "팀:", "theme:": "테마", "themesAndSounds": "테마 및 사운드", "tokenDisplay": "토큰: $1", + "trace": "흔적", + "trusted": "신뢰할 수 있는 도메인", + "trustedDesc": "이러한 도메인으로 연결되는 링크를 클릭할 경우, 다른 링크처럼 열기 권한을 요청하는 메시지가 표시되지 ***않습니다***. 'https://fermi.chat'과 같이 신뢰하는 도메인에만 권한을 부여해 주세요", "updateSettings": "설정 업데이트", "updatesYay": "업데이트가 있습니다!", "userSettings": "사용자 공개 프로필" }, "login": { + "allGood": "문제 없습니다", "checking": "인스턴스 확인 중", "enterPAgain": "새 비밀번호를 다시 입력하세요:", "invalid": "유효하지 않은 인스턴스입니다. 다시 시도하세요", "login": "로그인", "newPassword": "새 비밀번호:", + "pasteInfo": "여기에 복구 링크를 붙여넣기:", "recover": "비밀번호를 잊으셨나요?", - "recovery": "비밀번호를 잊으셨나요?" + "recovery": "비밀번호를 잊으셨나요?", + "waiting": "인스턴스 확인을 기다리는 중" }, "logout": { "error": { "cancel": "취소", - "cont": "그래도 계속하기" + "cont": "그래도 계속하기", + "desc": "페르미가 당신을 로그아웃시키지 못했습니다!\n 그래도 계정을 삭제하시겠습니까?", + "title": "로그아웃하는 과정에서 오류가 발생했습니다" }, "logout": "로그아웃" }, @@ -329,32 +596,52 @@ }, "clientURL": "클라이언트 링크:", "copy": "복사", + "count": "개수:", "create": "만들기", + "createTokens": "등록 토큰 만들기", "format": "포맷:", + "genericType": "제네릭", "length": "길이:", "regType": "토큰 링크 유형 등록", "stop": "인스턴스 중지" }, "media": { + "artist": "아티스트: $1", + "composer": "작곡가: $1", "download": "미디어 다운로드", + "length": "길이: $1분 $2초", "loading": "불러오는 중", "moreInfo": "자세한 정보", "notFound": "미디어를 찾을 수 없습니다" }, "member": { + "ban": "$2에서 $1을(를) 차단", + "kick": "$2에서 $1님을 추방", "nick:": "별명:", - "reason:": "이유:" + "persist": "다음 사용자만 삭제:", + "reason:": "이유:", + "timeout": "$1님을 타임아웃", + "timeoutTime": "타임아웃 시간:" }, "message": { + "messages": "$1개 메시지{{PLURAL:$1|}} >", + "andMore": "$1, 그리고 더!", + "attached": "첨부를 보냈습니다", "delete": "메시지 삭제", + "report": "메시지 신고", "deleted": "삭제된 메시지", "edit": "메시지 편집", "edited": "(편집됨)", + "fullMessage": "전체 메시지:", + "pin": "$1님이 메시지를 고정했습니다", + "thread": "$1님이 스레드를 만들었습니다: $2", + "reactedWith": "$1(으)로 반응함", "reactionAdd": "반응 추가", "createThread": "스레드 만들기", "threadOptions": "스레드 옵션", "reactions": "반응 보기", "reactionsTitle": "반응", + "retry": "오류가 발생한 메시지 재전송", "viewrest": "나머지 보기" }, "report": { @@ -363,146 +650,309 @@ "cancel": "취소", "submit": "제출", "blockUser": "사용자 차단", - "timeout": "멤버를 타임아웃", - "summary": "보고서 요약:" + "timeout": "멤버 타임아웃", + "summary": "신고 요약:" }, + "messageLink": "#$1에서의 메시지", + "muteDuration": "다음 시간 뒤 음소거 해제:", "nevermind": "괜찮습니다", "no": "아니요", "noEmojiFont": "시스템 이모티콘 사용", "noMessages": "아직 메시지가 없습니다. 첫 번째 메시지를 남겨주세요!", + "noPins": "여기엔 당신을 위한 게 아무것도 없습니다... 아직은요", + "noStickers": "아쉽네요, 사용하실 수 있는 스티커가 없습니다!", + "notiClump": "$2에서 $1개 알림을 받았습니다", + "notiVolume": "알림 음량:", + "otherAt": "$2에 $1", "permissions": { "descriptions": { - "VIEW_AUDIT_LOG": "역할 회원이 감사 로그를 볼 수 있도록 허용합니다.", - "MENTION_EVERYONE": "역할 회원이 모든 사람을 언급할 수 있도록 허용합니다.", - "MANAGE_NICKNAMES": "역할 회원이 다른 회원의 닉네임을 변경할 수 있도록 허용합니다.", - "MANAGE_MESSAGES": "역할 회원이 자신의 메시지가 아닌 것을 삭제할 수 있도록 허용합니다.", - "MANAGE_THREADS": "역할 회원이 스레드를 삭제 및 보관하고 모든 개인 스레드를 볼 수 있도록 허용합니다.", - "MANAGE_CHANNELS": "역할 회원이 채널을 관리하고 편집할 수 있도록 허용합니다.", - "MANAGE_ROLES": "역할 회원이 역할을 편집하고 관리할 수 있도록 허용합니다.", - "MANAGE_EVENTS": "역할 회원이 이벤트를 편집하고 관리할 수 있도록 허용합니다.", - "KICK_MEMBERS": "역할 회원이 길드에서 회원을 내보낼 수 있도록 허용합니다.", - "BAN_MEMBERS": "역할 회원이 길드에서 회원을 금지할 수 있도록 허용합니다.", - "MOVE_MEMBERS": "역할 회원이 음성 채널 간에 회원을 이동할 수 있도록 허용합니다.", - "MUTE_MEMBERS": "역할 회원이 다른 회원을 조용히 하게 할 수 있도록 허용합니다.", - "DEAFEN_MEMBERS": "역할 회원이 다른 회원의 소리를 듣지 못하게 할 수 있도록 허용합니다. (회원의 소리를 듣지 못하게 하면 자동으로 음소거됩니다.)", - "CHANGE_NICKNAME": "역할 회원이 자신의 닉네임을 변경할 수 있도록 허용합니다.", - "VIEW_CHANNEL": "역할 회원이 채널을 볼 수 있도록 허용합니다.", - "READ_MESSAGE_HISTORY": "역할 회원이 메시지 기록을 읽을 수 있도록 허용합니다.", - "ADD_REACTIONS": "역할 회원이 메시지에 반응을 추가할 수 있도록 허용합니다.", - "SEND_MESSAGES": "역할 회원이 메시지를 보낼 수 있도록 허용합니다.", - "SEND_MESSAGES_IN_THREADS": "역할 회원이 스레드에서 메시지를 보낼 수 있도록 허용합니다.", - "USE_EXTERNAL_EMOJIS": "역할 회원이 외부 이모티콘을 사용할 수 있도록 허용합니다.", - "USE_EXTERNAL_STICKERS": "역할 회원이 외부 스티커를 사용할 수 있도록 허용합니다.", - "ATTACH_FILES": "역할 회원이 파일을 첨부할 수 있도록 허용합니다.", - "CREATE_INSTANT_INVITE": "역할 회원이 길드 초대장을 만들 수 있도록 허용합니다.", - "CREATE_PUBLIC_THREADS": "역할 회원이 공개 스레드를 만들 수 있도록 허용합니다.", - "CREATE_PRIVATE_THREADS": "역할 회원이 개인 스레드를 만들 수 있도록 허용합니다.", - "CONNECT": "역할 회원이 음성 채널에 연결할 수 있도록 허용합니다.", - "SPEAK": "역할 회원이 음성 채널에서 말할 수 있도록 허용합니다.", - "USE_VAD": "역할 회원이 간단히 말하는 것만으로 음성 채널에서 대화할 수 있도록 허용합니다. (비활성된 경우, Push-To-Talk 키를 눌러야 말할 수 있습니다.)", - "STREAM": "역할 회원이 음성 채널에 스트리밍할 수 있도록 허용합니다.", - "REQUEST_TO_SPEAK": "역할 회원이 스테이지 채널에서 말할 수 있도록 허용합니다.", - "USE_EMBEDDED_ACTIVITIES": "역할 회원이 임베디드 활동을 사용할 수 있도록 허용합니다.", - "USE_APPLICATION_COMMANDS": "역할 회원이 애플리케이션 명령을 사용할 수 있도록 허용합니다." + "ADMINISTRATOR": "이 권한은 모든 역할 멤버에게 아래의 모든 권한을 부여하며, 모든 권한 덮어쓰기를 무시합니다. 오직 본인과 절대적으로 신뢰하는 멤버/봇에게만 이 위험한 권한을 부여해야 합니다!", + "MANAGE_GUILD": "역할 멤버가 길드를 관리하고 편집할 수 있도록 허용합니다.", + "VIEW_AUDIT_LOG": "역할 멤버가 감사 로그를 볼 수 있도록 허용합니다.", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "역할 멤버가 역할 구독 분석 통계를 볼 수 있도록 허용합니다.", + "VIEW_GUILD_INSIGHTS": "역할 멤버가 길드 분석 통계를 볼 수 있도록 허용합니다.", + "BYPASS_SLOWMODE": "저속 모드는 이제 더이상 역할 멤버에게 영향을 미치지 않습니다.", + "MENTION_EVERYONE": "역할 멤버가 모든 사람을 언급할 수 있도록 허용합니다.", + "MANAGE_NICKNAMES": "역할 멤버가 다른 멤버의 닉네임을 변경할 수 있도록 허용합니다.", + "PIN_MESSAGES": "역할 멤버가 메시지를 고정할 수 있도록 허용합니다.", + "SEND_POLLS": "역할 멤버가 설문 조사를 보낼 수 있도록 허용합니다.", + "MANAGE_MESSAGES": "역할 멤버가 자신의 메시지가 아닌 것을 삭제할 수 있도록 허용합니다.", + "MANAGE_THREADS": "역할 멤버가 스레드를 삭제 및 보관하고 모든 개인 스레드를 볼 수 있도록 허용합니다.", + "MANAGE_CHANNELS": "역할 멤버가 채널을 관리하고 편집할 수 있도록 허용합니다.", + "MANAGE_ROLES": "역할 멤버가 역할을 편집하고 관리할 수 있도록 허용합니다.", + "MANAGE_WEBHOOKS": "역할 멤버가 웹훅을 편집/삭제할 수 있도록 허용합니다.", + "CREATE_EVENTS": "역할 멤버가 예약된 이벤트를 생성할 수 있도록 허용합니다.", + "MANAGE_EVENTS": "역할 멤버가 이벤트를 편집하고 관리할 수 있도록 허용합니다.", + "CREATE_GUILD_EXPRESSIONS": "역할 멤버가 표현(이모티콘, 스티커 및 사운드보드 소리)을 만들 수 있도록 허용합니다.", + "MANAGE_GUILD_EXPRESSIONS": "역할 구성원이 표현(이모티콘, 스티커 및 사운드보드 소리)을 편집/삭제할 수 있도록 허용합니다.", + "MODERATE_MEMBERS": "역할 멤버가 길드 구성원의 채팅/스레드에서 메시지 전송 및 응답을 차단하고 음성/스테이지 채널에서 발언을 제한할 수 있도록 허용합니다.", + "KICK_MEMBERS": "역할 멤버가 길드에서 멤버를 내보낼 수 있도록 허용합니다.", + "BAN_MEMBERS": "역할 멤버가 길드에서 멤버를 차단할 수 있도록 허용합니다.", + "MOVE_MEMBERS": "역할 멤버가 음성 채널 간에 멤버를 이동할 수 있도록 허용합니다.", + "MUTE_MEMBERS": "역할 멤버가 다른 멤버를 음소거 하게 할 수 있도록 허용합니다.", + "DEAFEN_MEMBERS": "역할 멤버가 다른 멤버의 음성을 차단할 수 있도록 허용합니다. (멤버의 소리를 듣지 못하게 하면 자동으로 음소거됩니다.)", + "CHANGE_NICKNAME": "역할 멤버가 자신의 닉네임을 변경할 수 있도록 허용합니다.", + "VIEW_CHANNEL": "역할 멤버가 채널을 볼 수 있도록 허용합니다.", + "READ_MESSAGE_HISTORY": "역할 멤버가 메시지 기록을 읽을 수 있도록 허용합니다.", + "ADD_REACTIONS": "역할 멤버가 메시지에 반응을 추가할 수 있도록 허용합니다.", + "SEND_MESSAGES": "역할 멤버가 메시지를 보낼 수 있도록 허용합니다.", + "SEND_MESSAGES_IN_THREADS": "역할 멤버가 스레드에서 메시지를 보낼 수 있도록 허용합니다.", + "SEND_TTS_MESSAGES": "역할 멤버가 텍스트 채널에서 텍스트 음성 변환 메시지를 보낼 수 있도록 허용합니다.", + "USE_EXTERNAL_EMOJIS": "역할 멤버가 외부 이모티콘을 사용할 수 있도록 허용합니다.", + "USE_EXTERNAL_STICKERS": "역할 멤버가 외부 스티커를 사용할 수 있도록 허용합니다.", + "EMBED_LINKS": "역할 멤버가 보낸 링크가 텍스트 채널에 자동으로 삽입되도록 허용합니다.", + "ATTACH_FILES": "역할 멤버가 파일을 첨부할 수 있도록 허용합니다.", + "SEND_VOICE_MESSAGES": "역할 멤버가 음성 메시지를 텍스트 채널로 전송할 수 있도록 허용합니다.", + "CREATE_INSTANT_INVITE": "역할 멤버가 길드 초대장을 만들 수 있도록 허용합니다.", + "CREATE_PUBLIC_THREADS": "역할 멤버가 공개 스레드를 만들 수 있도록 허용합니다.", + "CREATE_PRIVATE_THREADS": "역할 멤버가 개인 스레드를 만들 수 있도록 허용합니다.", + "CONNECT": "역할 멤버가 음성 채널에 연결할 수 있도록 허용합니다.", + "SPEAK": "역할 멤버가 음성 채널에서 말할 수 있도록 허용합니다.", + "USE_VAD": "역할 멤버가 간단히 말하는 것만으로 음성 채널에서 대화할 수 있도록 허용합니다. (비활성된 경우, Push-To-Talk 키를 눌러야 말할 수 있습니다.)", + "STREAM": "역할 멤버가 음성 채널에 스트리밍할 수 있도록 허용합니다.", + "USE_SOUNDBOARD": "역할 멤버가 음성 채널에서 사운드보드를 사용할 수 있도록 허용합니다.", + "USE_EXTERNAL_SOUNDS": "역할 멤버가 음성 채널에서 다른 길드의 사운드보드 소리를 사용할 수 있도록 허용합니다.", + "PRIORITY_SPEAKER": "역할 멤버가 음성 채널에서 우선 발언권을 얻을 수 있도록 허용합니다.", + "REQUEST_TO_SPEAK": "역할 멤버가 스테이지 채널에서 말할 수 있도록 허용합니다.", + "USE_EMBEDDED_ACTIVITIES": "역할 멤버가 임베디드 활동을 사용할 수 있도록 허용합니다.", + "USE_APPLICATION_COMMANDS": "역할 멤버가 애플리케이션 명령을 사용할 수 있도록 허용합니다.", + "USE_EXTERNAL_APPS": "역할 멤버가 애플리케이션 응답을 채널에 공개적으로 표시할 수 있도록 허용합니다. (비활성화하더라도 사용자는 앱을 계속 사용할 수 있지만 응답은 본인에게만 표시됩니다. 이 기능은 길드에 설치되지 않은 앱에만 적용됩니다.)" }, "readableNames": { "ADD_REACTIONS": "반응 추가", "ADMINISTRATOR": "관리자", "ATTACH_FILES": "파일 첨부", + "BAN_MEMBERS": "멤버 차단", + "BYPASS_SLOWMODE": "저속 모드 우회", "CHANGE_NICKNAME": "별명 바꾸기", "CONNECT": "연결", "CREATE_EVENTS": "이벤트 만들기", + "CREATE_GUILD_EXPRESSIONS": "표현 만들기", "CREATE_INSTANT_INVITE": "초대장 만들기", "CREATE_PRIVATE_THREADS": "비공개 스레드 만들기", "CREATE_PUBLIC_THREADS": "공개 스레드 만들기", + "DEAFEN_MEMBERS": "멤버 음성 차단", "EMBED_LINKS": "링크 삽입", + "KICK_MEMBERS": "멤버 추방", "MANAGE_CHANNELS": "채널 관리", "MANAGE_EVENTS": "이벤트 관리", + "MANAGE_GUILD": "길드 관리", + "MANAGE_GUILD_EXPRESSIONS": "표현 관리", "MANAGE_MESSAGES": "메시지 관리", "MANAGE_NICKNAMES": "별명 관리", "MANAGE_ROLES": "역할 관리", "MANAGE_THREADS": "스레드 관리", "MANAGE_WEBHOOKS": "웹훅 관리", - "MUTE_MEMBERS": "회원 알림을 받지 않음", + "MENTION_EVERYONE": "@everyone, @here 및 모든 역할을 언급 가능", + "MODERATE_MEMBERS": "멤버 타임아웃", + "MOVE_MEMBERS": "멤버 이동", + "MUTE_MEMBERS": "멤버 알림을 받지 않음", + "PIN_MESSAGES": "메시지 고정", + "PRIORITY_SPEAKER": "우선 발언권", "READ_MESSAGE_HISTORY": "메시지 역사 읽기", + "REQUEST_TO_SPEAK": "발언 요청", "SEND_MESSAGES": "메시지 보내기", + "SEND_MESSAGES_IN_THREADS": "스레드에 메시지 보내기", + "SEND_POLLS": "설문 조사 만들기", + "SEND_TTS_MESSAGES": "텍스트 음성 변환 메시지 보내기", "SEND_VOICE_MESSAGES": "음성 메시지 보내기", + "SPEAK": "말하기", "STREAM": "비디오", + "USE_APPLICATION_COMMANDS": "애플리케이션 명령어 사용", + "USE_EMBEDDED_ACTIVITIES": "활동 사용", "USE_EXTERNAL_APPS": "외부 앱 사용", "USE_EXTERNAL_EMOJIS": "외부 이모티콘 사용", "USE_EXTERNAL_SOUNDS": "외부 사운드 사용", "USE_EXTERNAL_STICKERS": "외부 스티커 사용", "USE_SOUNDBOARD": "사운드보드 사용", + "USE_VAD": "음성 활동 감지 사용", "VIEW_AUDIT_LOG": "감사 로그 보기", - "VIEW_CHANNEL": "채널 보기" + "VIEW_CHANNEL": "채널 보기", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "크리에이터 수익 창출 분석 보기", + "VIEW_GUILD_INSIGHTS": "길드 분석 정보 보기" } }, + "pinMessage": "메시지 고정", "profile": { - "userInfo": "사용자 정보" + "bio": "내 정보:", + "joined": "계정 생성일: $1", + "joinedMember": "가입일 $1: $2", + "mut": "상호 길드", + "mutFriends": "상호 친구", + "permInfo": "권한", + "userInfo": "사용자 정보", + "notes": "사용자 메모" }, + "profileColor": "프로필 색상", + "pronouns": "대명사:", "readableName": "한국어", + "recentEmoji": "최근 이모티콘", "register": { "DOBError": "출생일: $1", + "agreeTOS": "[서비스 약관]($1)에 동의합니다:", "emailError": "이메일: $1", + "noTOS": "이 인스턴스에는 서비스 약관이 없지만, 그래도 약관에 동의합니다:", "passwordError:": "비밀번호: $1", + "register": "등록", "tos": "TOS에 동의해야 합니다", - "usernameError": "사용자 이름: $1" + "usernameError": "사용자 이름: $1", + "other": "다른 인스턴스", + "instURL": "URL:" }, + "remove": "제거", + "renderJoinAvatars": "신규 멤버를 위한 표시 아바타:", "reply": "답변", + "replyingTo": "$1님에게 답변 중", "retrying": "다시 시도하는 중...", "role": { "color": "첫 번째 색", "colors": { - "name": "컬러 스킴:" + "name": "컬러 스킴:", + "one": "단색", + "two": "두 개 색상", + "three": "세 개 색상", + "secondColor": "두 번째 색상:", + "thirdColor": "세 번째 색상:" }, "confirmDelete": "'$1' 항목을 삭제하시겠습니까?", + "copyId": "역할 ID 복사", "delete": "역할 삭제", + "deleting": "역할 삭제 중...", "displaySettings": "표시 설정", + "hoisted": "역할 멤버와 온라인 멤버를 별도로 표시합니다(온라인 멤버는 속한 가장 높은 역할 그룹을 기준으로 표시됩니다):", + "mentionable": "누구나 이 역할에 핑을 보낼 수 있도록 허용:", "name": "역할 이름:", + "perms": "권한", "remove": "역할 제거", - "roleFileIcon": "역할 아이콘:" + "roleEmoji": "역할 이모티콘:", + "roleFileIcon": "역할 아이콘:", + "roles": "역할" }, + "search": { + "back": "뒤로", + "new": "새", + "next": "다음", + "nofind": "원하는 내용과 일치하는 메시지가 없는 것 같습니다. 검색 범위를 넓혀서 검색해 보세요.", + "old": "오래됨", + "page": "페이지 $1", + "search": "검색", + "settings": "검색 설정", + "before": "이전:", + "after": "이후:", + "includensfw": "NSFW 포함:", + "authors": "작성자:", + "mentions": "언급:", + "channels": "채널:" + }, + "searchGifs": "$1 검색", "settings": { "clear": "지우기", "img": "이미지 업로드", "save": "변경사항 저장", + "unsaved": "주의하세요, 저장되지 않은 변경 사항이 있습니다", "updates": { "serviceWorkerMode": { + "disabled": "꺼짐", + "enabled": "켜짐", "offlineOnly": "오프라인 전용", - "title": "서비스 워커 설정" + "title": "서비스 워커 설정", + "unregistered": "꺼짐 (미디어 캐시 포함)" } } }, + "showBlockedMessages": "이 사용자를 차단했습니다. $1개 차단된 {{PLURAL:$1|메시지}}를 보려면 클릭하세요.", + "spoiler": "스포일러", "sticker": { + "confirmDel": "이 스티커를 삭제하겠습니까?", + "del": "스티커 삭제", + "desc": "설명", + "errEmjMust": "스티커에 이모티콘을 짝지어야 합니다", + "errFileMust": "스티커에 이미지를 포함해야 합니다", + "image": "이미지:", "name": "이름:", + "tags": "관련 이모티콘:", + "title": "스티커", "upload": "스티커 업로드" }, "submit": "제출", "switchAccounts": "계정 전환 ⇌", "todayAt": "오늘 $1", + "trace": { + "totalTime": "$2 : $1ms", + "traces": "$1 ($2ms) $3" + }, "typing": "$2님이 타이핑 중{{PLURAL:$1|입니다}}", + "unableToConnect": "Harmony 서버에 연결할 수 없습니다. 로그아웃 후 다시 로그인해 주세요.", + "unableToPin": "메시지를 고정할 수 없습니다", + "sbWarns": { + "regi": "페르미에서는 더 이상 스페이스바를 사용한 입력이 공식적으로 지원되지 않습니다. 작동은 될 가능성이 높지만, Harmony 사용을 권장합니다. 계속하시겠습니까?", + "in": "페르미에서는 스페이스바를 이용한 자동 입력이 더 이상 공식적으로 지원되지 않습니다. 작동은 될 수 있지만, Harmony 사용을 권장합니다. 이 메시지는 한 번만 표시되어야 합니다." + }, "connections": { "since": "가입일: $1", + "display": "프로필에 표시:", "delete": "연결 삭제", - "sure": "확실합니까?" + "sure": "확실합니까?", + "sureDesc": "이 연결을 제거하면 되돌릴 수 없습니다" }, + "unpinMessage": "메시지 고정 해제", "updateAv": "업데이트가 있습니다", + "uploadBanner": "배너 업로드:", "uploadFilesText": "여기에 파일을 올리세요!", + "uploadPfp": "아바타 업로드:", + "useTemplate": "$1을(를) 틀로써 사용", + "useTemplateButton": "틀 사용", + "usedFermi": "페르미를 통해 보내짐", "user": { + "report": "사용자 신고", + "deleted": "삭제된 사용자", + "reportApp": "신고 애플리케이션", "addRole": "역할 추가", + "ban": "멤버 차단", "block": "사용자 차단", + "confirmInstBan": "$1을(를) 인스턴스 차단하시겠습니까?", "copyId": "사용자 ID 복사", + "dnd": "방해 금지", + "editNick": "별명 수정", "editServerProfile": "길드 프로필 편집", "friendReq": "친구 요청", + "idle": "비활성", + "instanceBan": "인스턴스 차단", + "invisible": "보이지 않음", + "kick": "멤버 추방", "message": "사용자에게 메시지 보내기", + "nick": { + "foe": "적의 별명 설정", + "friend": "친구의 별명 설정", + "stalker": "요청자의 닉네임 설정", + "stalking": "요청된 닉네임 설정" + }, "offline": "오프라인", "online": "온라인", + "remove": "사용자 제거", "removeRole": "역할 제거", + "sendMessage": "메시지 @$1", + "timeout": "멤버 타임아웃", + "unTimeout": "멤버의 타임아웃 제거", + "unban": "$1 차단 해제", "unblock": "사용자 차단 해제", "viewProfile": "프로필 보기" }, + "userping": { + "resolving": "사용자 해결 중", + "unknown": "@unknown-user" + }, + "vc": { + "joinForStream": "음성 채널에 참여해 시청", + "joiningStream": "스트리밍에 참여 중...", + "joinstream": "스트리밍 시청하기", + "leavestream": "스트리밍 나가기", + "stopstream": "스트리밍 중단" + }, "webauth": { - "keyname": "키 이름:" + "addKey": "키 추가", + "keyname": "키 이름:", + "manage": "보안 키 관리" }, "webhook": "웹훅", "webhooks": { @@ -510,16 +960,25 @@ "areYouSureDelete": "$1 항목을 삭제하시겠습니까?", "avatar": "아바타", "base": "웹훅", - "channel": "Webhook을 채널로 출력:", + "channel": "웹훅을 채널로 출력:", "copyURL": "웹훅 링크 복사", "createdAt": "만든 날짜: $1", "createdBy": "만든이:", - "name": "Webhook 이름:", + "deleteWebhook": "웹훅 삭제", + "name": "웹훅 이름:", "newWebHook": "새 웹훅", + "notFound": "사용자가 더 이상 길드에 속해있지 않습니다", + "sillyDefaults": "후크 선장\n잽 어퍼컷 훅\n스파이더 봇", "token": "웹혹 토큰: `$1`", - "type2": "채널 팔로워" + "type": "유형: $1", + "type1": "들어오는", + "type2": "채널 팔로워", + "type3": "애플리케이션", + "url": "웹훅 링크: `$1`" }, + "welcomeMessages": "환영합니다 $1님! 어서 오세요!\n만나서 반가워요 $1님!\n어서 오세요 $1님! 피자를 가져오셨길 바래요!", "widget": "길드 위젯", + "widgetEnabled": "위젯 활성화됨", "yes": "예", "yesterdayAt": "어제 $1" } diff --git a/translations/lb.json b/translations/lb.json index edf795f..7422542 100644 --- a/translations/lb.json +++ b/translations/lb.json @@ -142,6 +142,7 @@ }, "admins": "Administrateure fannen", "all": "All", + "idSel": "ID:", "community": "Communautéit", "createNewTemplate": "Nei Schabloun uleeën", "default": "Standard ($1)", @@ -316,7 +317,9 @@ "DOBError": "Gebuertsdatum: $1", "emailError": "E-Mail-Adress: $1", "passwordError:": "Passwuert: $1", - "usernameError": "Benotzernumm: $1" + "usernameError": "Benotzernumm: $1", + "other": "Aner Instanz", + "instURL": "URL:" }, "remove": "Ewechhuelen", "reply": "Äntweren", @@ -342,7 +345,9 @@ "next": "Nächst", "old": "Al", "page": "Säit $1", - "search": "Sichen" + "search": "Sichen", + "before": "Virdrun:", + "after": "Duerno:" }, "settings": { "img": "Bild eroplueden", diff --git a/translations/nl.json b/translations/nl.json index 1705618..287ce07 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -15,7 +15,7 @@ "home": "Startpagina", "listtitle": "Misschien wilde u naar een van deze plekken gaan", "login": "Aanmelden", - "report": "Als u deze pagina binnen de cliënt hebt gevonden, meld dit dan:", + "report": "Als u deze pagina binnen de client aantreft, meld dit dan:", "reset": "Wachtwoord opnieuw instellen", "title": "Bent u verdwaald?", "whatelse": "Wat denkt u dat er nog meer moet gebeuren?", @@ -32,15 +32,15 @@ "title": "Welkom bij $1!" }, "DMs": { - "add": "Iemand aan directe bericht toevoegen", + "add": "Iemand aan dit directe bericht toevoegen", "close": "Directe bericht sluiten", "copyId": "Directe bericht-ID kopiëren", "markRead": "Markeren als gelezen", "name": "Directe berichten" }, - "ok": "Ok", + "ok": "OK", "dismiss": "Sluiten", - "UrlGen": "Bot-uitnodigingsgenerator", + "UrlGen": "Robotuitnodigingsgenerator", "Voice": { "userVol": "Gebruikersvolume:", "status": { @@ -53,8 +53,8 @@ "notconnected": "Niet verbonden", "sendingStreams": "Audiostreams verzenden", "startingRTC": "RTC-verbinding wordt gemaakt", - "waitingMainWS": "Wachten het hoofd-WS", - "waitingURL": "Wachten op spraak-URL", + "waitingMainWS": "Wachten op hoofd-WS", + "waitingURL": "Wachten op spraak-url", "wsAuth": "wachten op autorisatie van WS", "wsOpen": "Wachten tot WS opengaat" } @@ -86,7 +86,7 @@ "bug_hunter_level_1": "Foutenjager niveau 1", "bug_hunter_level_2": "Foutenjager niveau 2", "certified_moderator": "Moderator", - "early_supporter": "Eerste ondersteuner", + "early_supporter": "Vroege supporter", "guild_booster_lvl1": "Versterkt gilde", "guild_booster_lvl2": "Versterkt gilde", "guild_booster_lvl3": "Versterkt gilde", @@ -101,10 +101,10 @@ "hypesquad_house_2": "Uitmuntendheid", "hypesquad_house_3": "Evenwicht", "legacy_username": "heeft oude gebruikersnaam", - "partner": "Instantiepartner", + "partner": "Serverpartner", "premium": "Premium", "quest_completed": "heeft een missie voltooid", - "staff": "Serverpersoneel", + "staff": "Servermedewerker", "verified_developer": "Geverifieerde ontwikkelaar" }, "bio": "Bio:", @@ -114,7 +114,7 @@ "blogUpdates": "Actualiteiten:", "desc": "Lees de blog of abonneer u erop voor nieuwtjes over Fermi!", "fermi": "Blog van Fermi", - "gotoPost": "Naar het artikel", + "gotoPost": "Naar het bericht", "wantUpdates": "Wilt u wekelijks actualiteiten ontvangen over de ontwikkeling van Fermi?" }, "bot": "ROBOT", @@ -140,9 +140,9 @@ "name": "Kanaal", "name:": "Kanaalnaam:", "nsfw:": "Waarschuwing: inhoud niet geschikt voor minderjarigen:", - "permissions": "Machtigingen", - "selectCatName": "Naam van de categorie", - "selectName": "Naam van het kanaal", + "permissions": "Rechten", + "selectCatName": "Categorienaam", + "selectName": "Kanaalnaam", "selectType": "Selecteer kanaaltype", "settings": "Instellingen", "settingsFor": "Instellingen voor $1", @@ -219,7 +219,7 @@ "badUser": "Logging voor slechte gebruikersobjecten inschakelen die te veel gegevens verzenden:", "cache": "Cachefunctie voor kaartbestanden van de Service Worker inschakelen:", "cacheDesc": "kaartbestanden worden hoe dan ook geladen; dit zorgt er alleen voor dat ze in de cache staan wanneer er een nieuwe update wordt uitgebracht.", - "captureTrace": "Deze instelling geeft Fermi de opdracht om _trace-eigenschappen van de server vast te leggen. Het inschakelen hiervan kan ertoe leiden dat progressieve JSON-decodering niet werkt; mogelijk is een herladen nodig.", + "captureTrace": "Deze instelling geeft Fermi de opdracht om _trace-eigenschappen van de server vast te leggen. Het inschakelen hiervan kan ertoe leiden dat progressieve JSON-decodering niet werkt; mogelijk is opnieuw laden nodig.", "clearWellKnowns": ".well-known-records opnieuw ophalen:", "description": "Deze instellingen zijn bedoeld voor ontwikkelaars van Harmony/Fermi. Als u niet weet wat u doet, kunt u deze instellingen beter niet wijzigen.", "gatewayComp": "Gateway-compressie uitschakelen:", @@ -244,7 +244,7 @@ "region": "Regio: $1", "title": "Sessies beheren" }, - "discovery": "Ontdekking", + "discovery": "Ontdekken", "dms": "Directe berichten", "edit": "Bewerken", "emoji": { @@ -284,7 +284,7 @@ "blocked": "Geblokkeerd", "blockedusers": "Geblokkeerde gebruikers:", "bu": "Geblokkeerde gebruiker", - "discnotfound": "Discriminator niet gevonden", + "discnotfound": "Onderscheid niet gevonden", "friendlist": "Vriendenlijst", "friends": "Vrienden", "notfound": "Gebruiker niet gevonden", @@ -298,33 +298,35 @@ "goThereTrust": "Ja, en vertrouw dit domein vanaf nu", "goingToURL": "Deze hyperlink brengt u naar $1. Weet u zeker dat u daarheen wilt gaan?", "group": { - "createdm": "Maak directe bericht!", + "createdm": "DM maken!", "edit": "Groepschat bewerken", "select": "Vrienden kiezen" }, "guild": { "COMMUNITY": "Lidmaatschap aanvragen", "disableInvites": "Uitnodigingen uitschakelen:", - "DISCOVERABLE": "Ontdekking", + "DISCOVERABLE": "Ontdekken", "INVITES_DISABLED": "Alleen op uitnodiging", "adminMenu": { - "changePerms": "Machtigingen wijzigen om te zoeken", + "changePerms": "Recenten wijzigen om te zoeken", "finding": "Beheerders zoeken", "ownName": "Eigenaar", - "owner": "Zoek de eigenaar op", - "permission": "Machtigingen:" + "owner": "Eigenaar opzoeken", + "permission": "Rechten:" }, - "report": "Gilde rapporteren", + "report": "Gilde melden", "admins": "Beheerders zoeken", "all": "Alle", "banReason": "Reden voor ban: $1", "bannedBy": "Verbannen door:", - "banner:": "Banner:", - "bans": "Bannen", - "boostMessage?": "Stuur een bericht wanneer iemand uw gilde versterkt!", + "banner:": "Verbanner:", + "bans": "Verbanningen", + "boostMessage?": "Een bericht verzenden wanneer iemand uw gilde versterkt!", + "banId": "Blokkeren op basis van ID", + "idSel": "ID:", "community": "Gemeenschap", "confirmDelete": "Weet u zeker dat u $1 wilt verwijderen?", - "confirmLeave": "Weet u zeker dat u weg wilt?", + "confirmLeave": "Weet u zeker dat u het gilde wilt verlaten?", "copyId": "Gilde-ID kopiëren", "create": "Volledig nieuw gilde maken", "createFromTemplate": "Gilde maken op basis van sjabloon", @@ -334,8 +336,8 @@ "defaultNoti": "Stel de standaardmeldingsinstellingen van uw gilde in!", "delete": "Gilde verwijderen", "description:": "Beschrijving:", - "disoveryTitle": "Gilden ontdekken ($1 vermelding{{PLURAL:$1||en}})", - "editingTemplate": "Bewerken van $1", + "disoveryTitle": "Gilden verkennen ($1 {{PLURAL:$1|vermelding|vermeldingen}})", + "editingTemplate": "$1 bewerken", "emptytext": "Wat vreemd, dit gilde heeft geen kanalen!?", "emptytitle": "Vreemde plek", "guilds": "Gilden", @@ -391,7 +393,7 @@ "warnOffiline": "Server is offline, kan geen verbinding maken" }, "htmlPages": { - "addBot": "Toevoegen aan gilde", + "addBot": "Aan gilde toevoegen", "alreadyHave": "Heeft u al een account?", "box3description": "We stellen hulp altijd op prijs, of het nu gaat om het melden van bugs, het bijdragen van code of het verbeteren van typefouten.", "box3title": "Aan Fermi bijdragen", @@ -414,13 +416,13 @@ "userField": "Gebruikersnaam:", "welcomeJank": "Welkom bij Fermi" }, - "incorrectURLS": "## Deze instantie heeft waarschijnlijk de verkeerde koppelingen verzonden.\n### Als u de eigenaar van de instantie bent, raadpleeg dan [hier](https://docs.spacebar.chat/setup/server/) onder *Verbinding maken vanaf externe machines* om het probleem op te lossen.\n Wilt u dat Fermi automatisch probeert deze fout te herstellen, zodat u verbinding kunt maken met de instantie?", + "incorrectURLS": "## Deze server heeft waarschijnlijk de verkeerde koppelingen verzonden.\n### Als u de eigenaar van de server bent, raadpleeg dan [hier](https://docs.spacebar.chat/setup/server/) onder *Verbinding maken vanaf externe machines* om het probleem op te lossen.\n Wilt u dat Fermi automatisch probeert deze fout te herstellen, zodat u verbinding kunt maken met de server?", "instInfo": "Serverinformatie", "instanceInfo": { - "contact": "Instantiebeheerders mailen", + "contact": "Serverbeheerders mailen", "frontPage": "[Voorpagina]($1)", - "name": "Instantie-gegevens", - "publicUrl": "[Openbare koppeing]($1)", + "name": "Servergegevens", + "publicUrl": "[Openbare koppeling]($1)", "tosPage": "[Gebruiksvoorwaardenpagina]($1)" }, "instanceStats": { @@ -435,7 +437,7 @@ "failed": "Interactie mislukt", "nonsence": "De server heeft een component van het type $1 verzonden dat niet bestaat", "notImpl": "Fermi ondersteunt componenttype $1 nog niet", - "onlyYou": "Alleen jij kunt dit bericht zien", + "onlyYou": "Alleen u kunt dit bericht zien", "replyline": "Interactie gestart", "started": "Interactie verwerken...", "worked": "Interactie geslaagd" @@ -475,7 +477,7 @@ "noLimit": "Geen limiet", "title": "Mensen uitnodigen" }, - "jankInfo": "Cliëntinformatie", + "jankInfo": "Clientgegevens", "leaveGuild": "Gilde verlaten", "leaving": "U verlaat Harmony", "loaded": "Geladen", @@ -517,13 +519,13 @@ "description": "Beschrijving:", "devPortal": "Ontwikkelaarsportaal", "disableConnection": "Deze verbinding is bij de server uitgeschakeld", - "editingBot": "Bewerken van de robot $1", + "editingBot": "Robot $1 bewerken", "install": "Installeren", "installDesc": "Na installeren kunt u Fermi in een eigen venster openen en als aparte app gebruiken! U kunt Fermi ook gewoon in de webbrowser blijven gebruiken en dan werkt het precies hetzelfde.", "installJank": "Fermi installeren", "language": "Taal:", "manageBot": "Robot beheren", - "manageInstance": "Instantie beheren", + "manageInstance": "Server beheren", "mustTypePhrase": "Om uw account te verwijderen moet u de zin typen", "newDiscriminator": "Nieuwe discriminator:", "newEmail:": "Nieuw e-mailadres", @@ -534,18 +536,18 @@ "notisound": "Meldingsgeluid:", "oldPassword:": "Oud wachtwoord:", "password:": "Wachtwoord", - "privacyPolcyURL": "Link privacybeleid:", - "appID": "Toepassing ID: $1", + "privacyPolcyURL": "Koppeling naar privacybeleid:", + "appID": "Toepassings-ID: $1", "showSecret": "Clientgeheim weergeven", "clientSecret": "Cliëntgeheim: $1", - "secret": "Geheim .", - "publicAvaliable": "De robot publiekelijk uitnodigbaar maken?", + "secret": "Geheim", + "publicAvaliable": "De robot openbaar uitnodigbaar maken?", "refreshPage": "Vernieuw de pagina om toe te passen", "requireCode": "Codetoekenning vereisen om de robot uit te nodigen?", "resetToken": "Token opnieuw instellen", "saveToken": "Token lokaal opslaan", "setUp2fa": "Tweetrapsauthenticatie instellen", - "setUp2faInstruction": "Kopieer dit geheim naar uw TOTP-app (Time-based One-Time Password) om uw 2FA aanmeldcode te genereren.", + "setUp2faInstruction": "Kopieer dit geheim naar uw TOTP-app (Time-based One-Time Password) om uw aanmeldcode voor tweetrapsauthenticatie te genereren.", "settings": "Instellingen", "sillyDeleteConfirmPhrase": "Shrek is liefde, Shrek is leven", "soundTooLarge": "Het geluid dat u probeerde te uploaden was te groot. Probeer het nog eens.", @@ -562,16 +564,16 @@ "userSettings": "Uw publieke profiel" }, "login": { - "allGood": "Alles goed", + "allGood": "Alles is in orde", "checking": "Server wordt gecontroleerd", "enterPAgain": "Voer het nieuwe wachtwoord nogmaals in:", - "invalid": "Onjuiste instantie, probeer het nog eens", + "invalid": "Onjuiste server, probeer het nog eens", "login": "Aanmelden", "newPassword": "Nieuw wachtwoord:", - "pasteInfo": "Plak hier de herstel-link:", + "pasteInfo": "Plak hier de herstelkoppeling:", "recover": "Wachtwoord vergeten?", "recovery": "Wachtwoord vergeten", - "waiting": "Wacht totdat de instantie gecontroleerd is" + "waiting": "Wacht totdat de server gecontroleerd is" }, "logout": { "error": { @@ -586,10 +588,10 @@ "AreYouSureStop": "Weet u zeker dat u deze server wilt stoppen?", "TokenFormats": { "JSON": "In JSON-indeling", - "URLs": "Links om uit te nodigen", + "URLs": "Koppelingen om uit te nodigen", "plain": "Eenvoudig" }, - "clientURL": "Cliënt-link:", + "clientURL": "Clientkoppeling:", "copy": "Kopiëren", "count": "Aantal:", "create": "Aanmaken", @@ -597,7 +599,7 @@ "format": "Formaat:", "genericType": "Generiek", "length": "Lengte:", - "regType": "link-type registratie-token", + "regType": "Koppelingstype voot registratie-token", "stop": "Server stoppen" }, "media": { @@ -623,7 +625,7 @@ "andMore": "$1 en meer!", "attached": "bijlage verzonden", "delete": "Bericht verwijderen", - "report": "Bericht rapporteren", + "report": "Bericht melden", "deleted": "Verwijderd bericht", "edit": "Bericht bewerken", "edited": "(bewerkt)", @@ -653,7 +655,7 @@ "nevermind": "Laat maar", "no": "Nee", "noEmojiFont": "Emoji van het systeem gebruiken", - "noMessages": "Er zijn nog geen berichten, wees de eerste die iets zegt!", + "noMessages": "Er zijn nog geen berichten. Zeg als eerste iets!", "noPins": "Hier is voor u nog niets te zien", "noStickers": "Dat is jammer, er zijn geen stickers die u kunt gebruiken!", "notiClump": "U heeft $1 meldingen van $2 gekregen", @@ -661,7 +663,7 @@ "otherAt": "$1 om $2", "permissions": { "descriptions": { - "ADMINISTRATOR": "Geeft alle onderstaande machtigingen aan rolleden en omzeilt alle overschrijvingen van machtigingen. Alleen U en leden/bots die u volledig vertrouwt, zouden deze UITGEBREIDE machtiging mogen hebben!", + "ADMINISTRATOR": "Geeft alle onderstaande rechten aan rolleden en omzeilt alle overschrijvingen van rechten. Alleen U en leden/bots die u volledig vertrouwt, zouden deze UITGEBREIDE rechten mogen hebben!", "MANAGE_GUILD": "Maakt het beheren en bewerken van het gilde mogelijk.", "VIEW_AUDIT_LOG": "Hiermee kunnen rol-leden het inspectielogboek bekijken", "VIEW_CREATOR_MONETIZATION_ANALYTICS": "Laat rolleden inzichten over rolabonnementen bekijken.", @@ -695,7 +697,7 @@ "SEND_TTS_MESSAGES": "Hiermee kunnen rol-leden tekst-naar-spraakberichten in tekstkanalen sturen", "USE_EXTERNAL_EMOJIS": "Hiermee kunnen rol-leden externe emoji’s in tekstkanalen gebruiken.", "USE_EXTERNAL_STICKERS": "Hiermee kunnen rolleden externe stickers gebruiken in tekstkanalen.", - "EMBED_LINKS": "Sta toe dat koppelingen die door rolleden worden verzonden, automatisch worden ingesloten in tekstkanalen.", + "EMBED_LINKS": "Toestaan dat koppelingen die door rolleden worden verzonden, automatisch worden ingesloten in tekstkanalen.", "ATTACH_FILES": "Hiermee kunnen rolleden bestanden bijvoegen in tekstkanalen.", "SEND_VOICE_MESSAGES": "Maakt het mogelijk om spraakberichten te verzenden in tekstkanalen.", "CREATE_INSTANT_INVITE": "Hiermee kunnen rolleden uitnodigingen voor het gilde aanmaken.", @@ -772,10 +774,11 @@ "bio": "Over mij:", "joined": "Account aangemaakt: $1", "joinedMember": "Toegetreden tot $1: $2", - "mut": "Onderlinge gilden", + "mut": "Gedeelde gilden", "mutFriends": "Wederzijdse vrienden", - "permInfo": "Machtigingen", - "userInfo": "Gebruikersinfo" + "permInfo": "Rechten", + "userInfo": "Gebruikersinfo", + "notes": "Gebruikersopmerkingen" }, "profileColor": "Profielkleur", "pronouns": "Voornaamwoorden:", @@ -788,8 +791,10 @@ "noTOS": "Voor deze server zijn er geen servicevoorwaarden, accepteer ze toch maar:", "passwordError:": "Wachtwoord: $1", "register": "Inschrijven", - "tos": "U moet instemmen met de voorwaarden", - "usernameError": "Gebruikersnaam: $1" + "tos": "U moet instemmen met de gebruiksvoorwaarden", + "usernameError": "Gebruikersnaam: $1", + "other": "Andere server", + "instURL": "Url:" }, "remove": "Verwijderen", "renderJoinAvatars": "Profielafbeeldingen weergeven voor nieuwe leden:", @@ -877,8 +882,8 @@ "unableToConnect": "Kan geen verbinding maken met de Harmony-server. Probeer u af en weer aan te melden.", "unableToPin": "Bericht kan niet worden vastgezet", "sbWarns": { - "regi": "Spacebar-instanties worden officieel niet meer ondersteund door Fermi, hoewel het waarschijnlijk nog wel werkt. Harmony wordt echter aanbevolen. Doorgaan?", - "in": "Spacebar-instanties worden officieel niet meer ondersteund door Fermi. Hoewel het waarschijnlijk nog wel werkt, wordt Harmony aanbevolen. Dit bericht zou slechts één keer moeten verschijnen." + "regi": "Spacebar-server worden officieel niet meer ondersteund door Fermi, hoewel het waarschijnlijk nog wel werkt. Harmony wordt echter aanbevolen. Doorgaan?", + "in": "Spacebar-server worden officieel niet meer ondersteund door Fermi. Hoewel het waarschijnlijk nog wel werkt, wordt Harmony aanbevolen. Dit bericht zou slechts één keer moeten verschijnen." }, "connections": { "since": "Lid sinds: $1", @@ -896,13 +901,13 @@ "useTemplateButton": "Sjabloon gebruiken", "usedFermi": "verzonden via Fermi", "user": { - "report": "Gebruiker rapporteren", + "report": "Gebruiker melden", "deleted": "Gebruiker verwijderd", - "reportApp": "Toepassing rapporteren", + "reportApp": "Toepassing melden", "addRole": "Rollen toevoegen", "ban": "Lid verbannen", "block": "Gebruiker blokkeren", - "confirmInstBan": "Weet u zeker dat u de server $1 wilt verbannen?", + "confirmInstBan": "Weet u zeker dat u $1 van de server wilt verbannen?", "copyId": "Gebruikers-ID kopiëren", "dnd": "Niet storen", "editNick": "Bijnaam bewerken", @@ -939,7 +944,7 @@ "joiningStream": "Verbinden met uitzending…", "joinstream": "Uitzending bekijken", "leavestream": "Uitzending verlaten", - "stopstream": "Uitzending stoppen" + "stopstream": "Stream beëindigen" }, "webauth": { "addKey": "Sleutel toevoegen", @@ -968,7 +973,7 @@ "type3": "Toepassing", "url": "Webhook-koppeling: `$1`" }, - "welcomeMessages": "Welkom $1! Leuk dat je er bent!\nHoi $1, leuk je te ontmoeten!\nDag $1, schuif ook gezellig aan!\nKom erbij $1, heb je pizza bij je?", + "welcomeMessages": "Welkom $1! Leuk dat u er bent!\nHoi $1, leuk u te ontmoeten!\nDag $1, schuif ook gezellig aan!\nKom erbij $1, hebt u pizza bij u?", "widget": "Gilde-widget", "widgetEnabled": "Widget ingeschakeld", "yes": "Ja", diff --git a/translations/qqq.json b/translations/qqq.json index 898aaf8..1ac7ca8 100644 --- a/translations/qqq.json +++ b/translations/qqq.json @@ -7,51 +7,979 @@ "Angelsn", "MathMan05", "McDutchie", + "Siebrand", "Vl1" ] }, + "2faCode": "Label for the 2FA (Two-Factor Authentication) code input field on the login page.", "404": { - "whatelse": "what's the context of this message?" + "404": "Error page title shown when a page is not found (HTTP 404 error).", + "app": "Link text on the 404 page pointing to the main application.", + "blog": "Link text on the 404 page pointing to the Fermi blog.", + "home": "Link text on the 404 page pointing to the homepage.", + "listtitle": "Heading on the 404 page above a list of suggested navigation links.", + "login": "Link text on the 404 page pointing to the login page.", + "report": "Text on the 404 page asking users to report if they found the page within the client.", + "reset": "Link text on the 404 page pointing to the password reset page.", + "title": "Main heading shown on the 404 error page.", + "whatelse": "Easter egg alert message shown randomly when clicking the 'Wherever this is' link on the 404 page. It's meant to be humorous/silly.", + "whereever": "Link text on the 404 page that triggers random easter egg events when clicked." + }, + "onboarding": { + "name": "Settings section title for the guild onboarding feature.", + "disable": "Button label to disable the onboarding feature for a guild.", + "addChannel": "Button label to add a channel to the onboarding flow.", + "channel": "Label for the channel selector in the onboarding settings.", + "desc": "Label for the description text input in onboarding settings.", + "deleteChannel": "Button label to remove a channel from the onboarding flow.", + "enable": "Button label to enable the onboarding feature for a guild.", + "title": "Dialog title shown to new members joining a guild. $1 is the guild name." }, "DMs": { - "add": "I was thinking of using \"Mensaje Directo (MD)\" to refer to DM, but \"chat\" is shorter but if you want me to use the first one you can tell me" + "add": "Context menu item and button label for adding a person to a Direct Message conversation. DM = Direct Message (a private conversation between users).", + "close": "Context menu item to close/leave a Direct Message conversation.", + "copyId": "Context menu item to copy the DM channel's ID to the clipboard.", + "markRead": "Context menu item to mark a DM conversation as read.", + "name": "Title for the Direct Messages section in the sidebar." }, - "ok": "Assuming that it's an Ok button", + "ok": "Generic OK button label used to confirm/dismiss dialogs.", + "dismiss": "Button label to dismiss a notification or popup message.", + "UrlGen": "Title for the bot invite URL generator settings section.", "Voice": { + "userVol": "Label for the slider that controls another user's volume in a voice channel.", "status": { - "badWS": "what WS mean?" + "badWS": "Voice connection status message indicating a bad response from the WebSocket. WS = WebSocket, a network protocol used for real-time communication with the server.", + "conectionFailed": "Voice connection status message shown when the WebRTC connection fails.", + "done": "Voice connection status message shown when successfully connected.", + "left": "Voice connection status message shown after leaving a voice chat.", + "makingOffer": "Voice connection status message shown while creating a WebRTC offer.", + "noSDP": "Voice connection status message when no SDP (Session Description Protocol) is available. SDP is a format for describing multimedia communication sessions.", + "notconnected": "Voice connection status message shown when not connected to any voice channel.", + "sendingStreams": "Voice connection status message shown while sending audio streams to other users.", + "startingRTC": "Voice connection status message shown while starting the RTC (Real-Time Communication) connection. RTC = WebRTC, a technology for real-time audio/video communication.", + "waitingMainWS": "Voice connection status message shown while waiting for the main WebSocket connection. WS = WebSocket.", + "waitingURL": "Voice connection status message shown while waiting for the voice server URL.", + "wsAuth": "Voice connection status message shown while waiting for the WebSocket to authorize. WS = WebSocket.", + "wsOpen": "Voice connection status message shown while waiting for the WebSocket to open. WS = WebSocket." } }, - "botGuilds": "This means \"the guilds that the bot is in\" (i.e., is a member of).", - "errorReconnect": "Uses MarkDown", + "accessibility": { + "gifSettings": { + "always": "Option for GIF/animated icon playback: always animate.", + "hover": "Option for GIF/animated icon playback: only animate on mouse hover.", + "never": "Option for GIF/animated icon playback: never animate." + }, + "name": "Settings section title for accessibility options.", + "playGif": "Label for the setting that controls when GIF images are animated.", + "playIcon": "Label for the setting that controls when animated icons are played.", + "roleColors": "Label for the setting to disable role-based username colors.", + "gradientColors": "Label for the setting to disable gradient coloring on roles.", + "decorations": "Label for the setting to enable avatar decorations." + }, + "accountNotStart": "Error message shown on the loading screen when the user account fails to initialize.", + "add": "Generic 'Add' button label.", + "applications": { + "delete": "Button label to delete an application in the developer portal.", + "sure": "Confirmation message when deleting an application. $1 is the application name." + }, + "badge": { + "active_developer": "Badge name for an active developer.", + "application_guild_subscription": "Badge text indicating an application has premium features.", + "automod": "Badge text indicating an application uses AutoMod (automatic moderation).", + "bot_commands": "Badge text indicating an application supports slash commands.", + "bug_hunter_level_1": "Badge name for a level 1 bug hunter.", + "bug_hunter_level_2": "Badge name for a level 2 bug hunter.", + "certified_moderator": "Badge name for a certified moderator.", + "early_supporter": "Badge name for an early supporter of the platform.", + "guild_booster_lvl1": "Badge name for a user who has boosted a guild (level 1).", + "guild_booster_lvl2": "Badge name for a user who has boosted a guild (level 2).", + "guild_booster_lvl3": "Badge name for a user who has boosted a guild (level 3).", + "guild_booster_lvl4": "Badge name for a user who has boosted a guild (level 4).", + "guild_booster_lvl5": "Badge name for a user who has boosted a guild (level 5).", + "guild_booster_lvl6": "Badge name for a user who has boosted a guild (level 6).", + "guild_booster_lvl7": "Badge name for a user who has boosted a guild (level 7).", + "guild_booster_lvl8": "Badge name for a user who has boosted a guild (level 8).", + "guild_booster_lvl9": "Badge name for a user who has boosted a guild for a long time (level 9).", + "hypesquad": "Badge name for a member of Vibesquad (placeholder name for a community group).", + "hypesquad_house_1": "Badge name for Vibesquad house 1: Boldness.", + "hypesquad_house_2": "Badge name for Vibesquad house 2: Excellence.", + "hypesquad_house_3": "Badge name for Vibesquad house 3: Equilibrium.", + "legacy_username": "Badge text indicating the user has a legacy (old-style) username.", + "partner": "Badge name for an instance partner.", + "premium": "Badge name indicating a premium user.", + "quest_completed": "Badge text indicating the user finished a quest.", + "staff": "Badge name for instance staff members.", + "verified_developer": "Badge name for a verified developer." + }, + "bio": "Label for the bio/about-me text field in user settings.", + "blankMessage": "Placeholder text shown when a message has no content.", + "blog": { + "blog": "Settings section title for the blog feature.", + "blogUpdates": "Label for the toggle to enable/disable blog update notifications.", + "desc": "Description text for the blog settings section.", + "fermi": "Title text for the Fermi blog page.", + "gotoPost": "Button label to navigate to a blog post.", + "wantUpdates": "Prompt asking the user if they want weekly blog update notifications." + }, + "bot": "Label displayed next to a bot user's name to indicate it is a bot.", + "botGuilds": "Label for a list showing which guilds (servers) the bot is a member of.", + "botSettings": "Title for the bot settings page in the developer portal.", + "cancel": "Generic cancel button label used in dialogs and forms.", + "channel": { + "SlowmodeCool": "Status message showing the slowmode cooldown remaining. $1 is the formatted time remaining.", + "TimeOutCool": "Status message showing when a timeout expires. $1 is the formatted date/time.", + "allowIcons": "Label for the setting that allows custom channel icons.", + "announcement": "Channel type name for announcement channels.", + "copyId": "Context menu item to copy a channel's ID.", + "copyIdCat": "Context menu item to copy a category's ID.", + "createCatagory": "Context menu item to create a new channel category.", + "createChannel": "Context menu item to create a new channel.", + "creating": "Status text shown while a channel is being created.", + "delete": "Context menu item to delete a channel.", + "deleteCat": "Context menu item to delete a category.", + "icon": "Label for the channel icon image input field.", + "makeInvite": "Context menu item to create an invite for the channel.", + "markRead": "Context menu item to mark a channel as read.", + "mute": "Context menu item and dialog title to mute a channel.", + "name": "Channel type name displayed in settings for channel type selection.", + "name:": "Label for the channel name input field in channel settings.", + "nsfw:": "Label for the NSFW (Not Safe For Work) / mature content warning toggle. NSFW = Not Safe For Work.", + "permissions": "Settings section title for channel permissions.", + "selectCatName": "Placeholder/label for the category name input when creating a category.", + "selectName": "Placeholder/label for the channel name input when creating a channel.", + "selectType": "Label for the channel type selector when creating a channel.", + "settings": "Settings section title for channel settings.", + "settingsFor": "Settings dialog title. $1 is the channel name.", + "slowmode": "Label for the slowmode duration setting in channel settings.", + "text": "Channel type name for text channels.", + "timedOutUntil": "Tooltip shown on the timeout icon next to messages. $1 is the formatted date/time string.", + "topic:": "Label for the channel topic input field.", + "typebox": "Placeholder text in the message input box. $1 is the channel name.", + "unmute": "Context menu item to unmute a channel.", + "voice": "Channel type name for voice channels.", + "deleteThread": "Context menu item to delete a thread.", + "hideThreads": "Label for the setting controlling when threads are hidden after inactivity.", + "forum": "Channel type name for forum channels." + }, + "threads": { + "leave": "Context menu item to leave a thread.", + "join": "Context menu item to join a thread.", + "name": "Label for the thread name input when creating a thread.", + "editTags": "Context menu item and dialog title for editing forum tags on a thread." + }, + "forum": { + "creorsear": "Placeholder text for the forum search/create input field.", + "next": "Button label to go to the next page of forum posts.", + "back": "Button label to go to the previous page of forum posts.", + "newPost": "Button label to create a new forum post.", + "post": "Button label to submit a new forum post.", + "sortOptions": { + "sortby": { + "title": "Label for the sort-by dropdown in forum sorting options.", + "recent": "Sort option: sort forum posts by recent activity.", + "posted": "Sort option: sort forum posts by date posted." + }, + "sortOrder": { + "title": "Label for the sort order dropdown in forum sorting options.", + "recent": "Sort order option: show recent posts first.", + "old": "Sort order option: show old posts first." + }, + "tagMatch": { + "title": "Label for the tag matching dropdown in forum sorting options.", + "some": "Tag matching option: show posts matching any of the selected tags.", + "all": "Tag matching option: show posts matching all selected tags." + }, + "name": "Title for the forum sorting options panel." + }, + "errors": { + "tagsReq": "Error message shown when trying to create a forum post without selecting required tags.", + "requireText": "Error message shown when trying to create a forum post without message content." + }, + "allTags": "Button label to show/select all tags in the forum view.", + "settings": { + "editTags": "Label for the tag editing section in forum channel settings.", + "editTag": "Dialog title when editing a single forum tag.", + "tagName": "Label for the tag name input field.", + "moderated": "Label for the checkbox that restricts tag application to thread moderators only.", + "addTag": "Button label to add a new tag to the forum.", + "delTag": "Button label to delete a forum tag." + } + }, + "channelLink": "Display text for a channel link in messages. $1 is the channel name. Uses Markdown heading syntax.", + "clientDesc": "About/information text for the client shown in settings. $1 is the version string, $3 is the calculated rights bitmask. Uses Markdown for links.", + "commands": { + "errorNotValid": "Error message for slash commands when an invalid choice is provided. $1 is the value entered, $2 is the option name.", + "required": "Error message for slash commands when a required option is missing. $1 is the option name." + }, + "confirmGuildLeave": "Confirmation dialog text when leaving a guild. $1 is the guild name.", + "copyLink": "Context menu item to copy a message's link/URL.", + "copyRegLink": "Context menu item to copy a regular link (e.g. invite link).", + "copymessageid": "Context menu item to copy a message's ID.", + "copyrawtext": "Context menu item to copy the raw text content of a message.", + "createAccount": "Button label to create a new account.", + "delete": "Generic delete button label.", + "deleteConfirm": "Generic confirmation message shown when deleting something.", + "devSettings": { + "badUser": "Label for the developer setting to enable logging of bad user objects.", + "cache": "Label for the developer setting to enable Service Worker caching of map files.", + "cacheDesc": "Description text explaining the cache setting behavior.", + "captureTrace": "Description text for the setting that captures _trace properties from the server.", + "clearWellKnowns": "Label for the button to re-fetch .well-known records from the server.", + "description": "Warning text at the top of the developer settings section advising non-developers not to change these settings.", + "gatewayComp": "Label for the developer setting to disable gateway compression.", + "reportSystem": "Label for the developer setting to enable the experimental reporting system.", + "logGateway": "Label for the developer setting to log received gateway events.", + "name": "Settings section title for developer settings.", + "traces": "Label for the developer setting to expose server traces." + }, + "deviceManage": { + "city": "Session info field showing the city. $1 is the city name.", + "continent": "Session info field showing the continent. $1 is the continent name.", + "country": "Session info field showing the country. $1 is the country name.", + "curSes": "Text shown for the current session indicating it cannot be logged out from this menu.", + "estimateWarn": "Warning text that the geolocation information shown is approximate and may be incorrect.", + "ip": "Session info field showing the last known IP address. $1 is the IP address.", + "last": "Session info field showing approximate last usage time. $1 is a date/time string.", + "latitude": "Session info field showing latitude. $1 is the latitude value.", + "logout": "Button label to log out a specific session/device.", + "longitude": "Session info field showing longitude. $1 is the longitude value.", + "manageDev": "Title for the expandable section to manage a specific device/session.", + "postal": "Session info field showing the postal code. $1 is the postal code.", + "region": "Session info field showing the region. $1 is the region name.", + "title": "Settings section title for managing active sessions." + }, + "discovery": "Label for the guild discovery feature.", + "dms": "Sidebar label for the Direct Messages section, shown above the DM channel list.", + "edit": "Generic edit button label.", + "emoji": { + "confirmDel": "Confirmation message when deleting an emoji.", + "found": { + "not": "Info text shown when an emoji belongs to a guild the user has not joined.", + "other": "Info text shown when an emoji is from one of the user's other guilds.", + "private": "Info text shown when the guild hosting an emoji cannot be found.", + "this": "Info text shown when an emoji is from the current guild." + }, + "from": "Label prefix text indicating which guild an emoji is from.", + "image:": "Label for the image file input when uploading an emoji.", + "join": "Button label to join the guild that hosts a particular emoji.", + "name:": "Label for the emoji name input field.", + "privateGuild": "Text indicating the emoji's source guild is private.", + "title": "Settings section title for the emoji management page.", + "upload": "Button label and dialog title for uploading emojis." + }, + "emojiSelect": "Label for the emoji picker input field.", + "errorReconnect": "Error message shown when the client cannot connect to the server. Uses Markdown (bold). $1 is the number of seconds until the next reconnection retry.", + "favoriteGifs": "Title for the favorited GIFs section in the GIF picker.", + "folder": { + "color": "Label for the folder color picker input.", + "create": "Button/dialog title for creating a new guild folder.", + "edit": "Button/dialog title for editing a guild folder.", + "name": "Label for the folder name input field." + }, + "form": { + "captcha": "Title/heading shown when a CAPTCHA challenge is required during form submission." + }, + "friends": { + "addfriend": "Tab button label to open the add-friend form.", + "addfriendpromt": "Label for the text input to add friends by their username.", + "requestsent": "Placeholder text shown in the input after a friend request is successfully sent.", + "all": "Tab button label to show all friends.", + "all:": "Heading text above the list of all friends.", + "blocked": "Tab button label to show blocked users.", + "blockedusers": "Heading text above the list of blocked users.", + "bu": "Short label for a blocked user entry.", + "discnotfound": "Error message when the discriminator part of a username is not provided or invalid.", + "friendlist": "Page title shown in the browser tab when viewing the friend list.", + "friends": "Label for the Friends button in the DM sidebar.", + "notfound": "Error message when a user is not found when trying to add a friend.", + "online": "Tab button label to show online friends.", + "online:": "Heading text above the list of online friends.", + "pending": "Tab button label to show pending friend requests.", + "pending:": "Heading text above the list of pending friend requests.", + "removeFriend": "Context menu item to remove a friend." + }, + "goThere": "Button label in the external link confirmation dialog to proceed to the URL.", + "goThereTrust": "Button label in the external link confirmation dialog to proceed and trust the domain permanently.", + "goingToURL": "Text in the external link confirmation dialog. $1 is the domain/hostname the link points to.", + "group": { + "createdm": "Button label to confirm creating a group DM.", + "edit": "Context menu item and dialog title for editing a group chat.", + "select": "Dialog title when selecting friends to add to a group DM." + }, "guild": { - "disoveryTitle": "$1 is the number of guilds discovered" + "COMMUNITY": "Guild join method option: users must apply to join.", + "disableInvites": "Label for the setting to disable invites for a guild.", + "DISCOVERABLE": "Guild join method option: guild appears in discovery.", + "INVITES_DISABLED": "Guild join method option: invite-only access.", + "adminMenu": { + "changePerms": "Label for the permission selector when searching for admins.", + "finding": "Status text shown while searching for guild admins.", + "ownName": "Label for the guild owner entry in the admin list.", + "owner": "Button label to find the guild owner.", + "permission": "Label for the permissions field in the admin finder." + }, + "report": "Context menu item to report a guild.", + "admins": "Button label to open the Find Admins feature.", + "all": "Notification setting: receive all notifications.", + "banReason": "Text showing the ban reason. $1 is the reason text.", + "bannedBy": "Label preceding the name of the user who issued a ban.", + "banner:": "Label for the guild banner image input.", + "bans": "Settings section title for the guild bans list.", + "boostMessage?": "Label for the setting to send a message when someone boosts the guild.", + "banId": "Button label to ban a user by their ID.", + "idSel": "Label for the ID input field when banning by ID.", + "community": "Settings section title for community guild settings.", + "confirmDelete": "Confirmation message when deleting a guild. $1 is the guild name.", + "confirmLeave": "Confirmation message when leaving a guild.", + "copyId": "Context menu item to copy the guild's ID.", + "create": "Button label to create a guild from scratch.", + "createFromTemplate": "Button label to create a guild from an existing template.", + "createNewTemplate": "Button label to create a new template from the current guild.", + "creating": "Status text shown while a guild is being created.", + "default": "Notification setting: use the guild default. $1 is the default setting name.", + "defaultNoti": "Description for the default notification settings option.", + "delete": "Button label to delete a guild.", + "description:": "Label for the guild description input field.", + "disoveryTitle": "Title of the guild discovery page. $1 is the number of guilds found. Uses {{PLURAL}} for entry/entries.", + "editingTemplate": "Dialog title when editing a template. $1 is the template name.", + "emptytext": "Message body shown when a guild has no channels.", + "emptytitle": "Message title shown when a guild has no channels.", + "guilds": "Title for the guilds list/section.", + "helpTips?": "Label for the setting to send helpful tips in the guild.", + "howJoin": "Heading text asking how people can join the guild.", + "icon:": "Label for the guild icon image input.", + "invites": "Settings section title for the guild invites list.", + "joinConfirm": "Confirmation dialog text when joining a guild. $1 is the guild name.", + "leave": "Context menu item to leave a guild.", + "loadingDiscovery": "Loading text shown while discovery results are being fetched.", + "makeInvite": "Button label to create a guild invite.", + "markRead": "Context menu item to mark a guild as read.", + "memberCount": "Text showing the guild member count. $1 is the number of members. Uses {{PLURAL}} for singular/plural.", + "mute": "Context menu item to mute a guild.", + "name:": "Label for the guild name input field.", + "nameNoMatch": "Error message when the typed guild name doesn't match for deletion confirmation.", + "noDelete": "Button label to cancel guild deletion.", + "noLeave": "Button label to cancel leaving a guild.", + "none": "Notification setting: no notifications.", + "notifications": "Settings section title for guild notification settings.", + "onlyMentions": "Notification setting: only receive notifications for @mentions.", + "overview": "Settings section title for guild overview.", + "region:": "Label for the guild region selector.", + "roles": "Settings section title for guild roles.", + "ruleId": "Label for the rules channel selector in guild settings.", + "selectnoti": "Label for the notification type selector.", + "sendrandomwelcome?": "Label for the setting to send random welcome messages when someone joins.", + "serverName": "Label for the guild name input when creating a guild.", + "settings": "Context menu item to open guild settings.", + "settingsFor": "Settings page title. $1 is the guild name.", + "splash": "Label for the discovery splash image input.", + "stickWelcomeReact?": "Label for the setting to prompt members to react with a sticker when someone joins.", + "systemSelect:": "Label for the system messages channel selector.", + "tempCreatedBy": "Label showing who created a template.", + "tempUseCount": "Text showing how many times a template has been used. $1 is the use count. Uses {{PLURAL}} for singular/plural.", + "template": "Label for the template link/code input when creating a guild from a template.", + "templateDesc": "Label for the template description input field.", + "templateName": "Label for the template name input field.", + "templateNameShort": "Error message when a template name is too short.", + "templateURL": "Text showing the template link. $1 is the URL.", + "templates": "Settings section title for guild templates.", + "templcateMetaDesc": "Description text explaining what a guild template includes and excludes.", + "topic:": "Label for the guild topic input field.", + "unknownRole": "Placeholder text for an unresolved/unknown role mention.", + "viewTemplate": "Button label to view a template's details.", + "yesDelete": "Button label to confirm guild deletion.", + "yesLeave": "Button label to confirm leaving a guild." }, + "hideBlockedMessages": "Text shown when messages from a blocked user are visible, click to hide them.", + "home": { + "icon": "Alt text for an instance's icon image on the home/login page. $1 is the instance name.", + "uptimeStats": "Multiline text showing instance uptime statistics. $1 is all-time uptime %, $2 is weekly uptime %, $3 is daily uptime %.", + "warnOffiline": "Warning message shown when the selected instance is offline." + }, + "htmlPages": { + "addBot": "Button label to add a bot to a guild on the OAuth2 authorization page.", + "alreadyHave": "Link text on the registration page for users who already have an account.", + "box3description": "Description text on the home page for the 'Contribute' section.", + "box3title": "Title on the home page for the 'Contribute' section.", + "compatableInstances": "Label above the list of Harmony-compatible instances on the login/register page.", + "createAccount": "Button label and title for the account creation form.", + "dobField": "Label for the date of birth input field on the registration form.", + "emailField": "Label for the email input field on login and registration forms.", + "idpermissions": "Text shown on the bot authorization page above the list of permissions the bot will have.", + "instanceField": "Label for the instance URL selector on the login/register page.", + "loaddesc": "Subtitle text shown below the loading indicator.", + "loadingText": "Main text shown during application loading.", + "loginButton": "Button label for the login form submit button.", + "noAccount": "Link text on the login page for users who don't have an account, and text shown on invite/template pages when not logged in.", + "pw2Field": "Label for the password confirmation input on the registration form.", + "pwField": "Label for the password input field on login and registration forms.", + "switchaccounts": "Button label to switch between multiple accounts.", + "trans": "Button label linking to the translation page.", + "transDesc": "Description text for the translation contribution section.", + "transTitle": "Title for the translation contribution section.", + "userField": "Label for the username input field on the registration form.", + "welcomeJank": "Welcome heading shown on the home/landing page." + }, + "incorrectURLS": "Error message shown when an instance returns incorrect API URLs. Uses Markdown for headings and links. Asks the user if Fermi should try to fix the error automatically.", + "instInfo": "Button label to open the instance information dialog.", + "instanceInfo": { + "contact": "Link text to email the instance administrators.", + "frontPage": "Markdown link to the instance's front page. $1 is the URL. Uses Markdown.", + "name": "Settings section title for instance information.", + "publicUrl": "Markdown link to the instance's public URL. $1 is the URL. Uses Markdown.", + "tosPage": "Markdown link to the instance's Terms of Service page. $1 is the URL. TOS = Terms of Service. Uses Markdown." + }, + "instanceStats": { + "members": "Instance statistics line showing total members. $1 is the member count.", + "messages": "Instance statistics line showing total messages. $1 is the message count.", + "name": "Title for the instance statistics dialog. $1 is the instance name.", + "servers": "Instance statistics line showing total guilds. $1 is the guild count.", + "users": "Instance statistics line showing total registered users. $1 is the user count." + }, + "interactions": { + "ephemeralDismiss": "Button label to dismiss an ephemeral (only-you) interaction message.", + "failed": "Status text shown when a bot interaction fails.", + "nonsence": "Error message when the server sends an unknown component type. $1 is the unknown type number.", + "notImpl": "Error message when a component type is not yet implemented. $1 is the component type number.", + "onlyYou": "Text shown above ephemeral messages indicating only the current user can see it.", + "replyline": "Text shown in the reply line for interaction responses.", + "started": "Status text shown while an interaction is being processed.", + "worked": "Status text shown when an interaction succeeds." + }, + "invite": { + "accept": "Button label to accept an invite.", + "alreadyJoined": "Text shown when the user has already joined the invited guild.", + "channel:": "Label showing which channel an invite is for.", + "createInvite": "Button label to create/generate an invite link.", + "createdAt": "Text showing when an invite was created. $1 is the formatted date.", + "expireAfter": "Label for the invite expiration time selector.", + "expires": "Text showing when an invite expires. $1 is the expiration date/time or 'Never'.", + "forChannel": "Text showing which channel an invite leads to. $1 is the channel name.", + "inviteLinkCode": "Label for the invite link/code text input.", + "inviteMaker": "Settings section title for the invite creation tool.", + "invitedBy": "Text on the invite page. $1 is the username of the person who invited.", + "joinUsing": "Button/tab label to join a guild using an invite code.", + "loginOrCreateAccount": "Link text on the invite page to login or create an account.", + "longInvitedBy": "Full invite text. $1 is the inviter's username, $2 is the guild name.", + "maxUses": "Text showing the maximum number of times an invite can be used. $1 is the max uses count.", + "never": "Option text for invites that never expire.", + "noAccount": "Text on invite page telling user to create an account to accept.", + "notFound": "Error message when an invite code is invalid or expired.", + "subtext": "Subtitle text below an invite showing the destination. $1 is the channel name, $2 is the guild name.", + "used": "Text showing how many times an invite has been used. $1 is the use count. Uses {{PLURAL}} for singular/plural." + }, + "inviteOptions": { + "12h": "Invite expiration option: 12 hours.", + "1d": "Invite expiration option: 1 day.", + "1h": "Invite expiration option: 1 hour.", + "30d": "Invite expiration option: 30 days.", + "30m": "Invite expiration option: 30 minutes.", + "6h": "Invite expiration option: 6 hours.", + "7d": "Invite expiration option: 7 days.", + "limit": "Invite max-uses option showing the number of allowed uses. $1 is the number. Uses {{PLURAL}} for singular/plural.", + "never": "Invite expiration option: never expires.", + "noLimit": "Invite max-uses option: no usage limit.", + "title": "Dialog title for the invite creation dialog." + }, + "jankInfo": "Button label to open the client information dialog in settings.", + "leaveGuild": "Context menu item to leave a guild.", + "leaving": "Dialog title shown when clicking an external link that will navigate away from Harmony.", + "loaded": "Status text shown on the loading screen when the client has finished loading.", "localuser": { - "description": "This object contains strings related to the logged in user, which is mostly the settings for the user", - "sillyDeleteConfirmPhrase": "This is a silly phrase, do not translate this directly, make a joke that is easy to type in your language", - "updateSettings": "Title of a page that allows you to adjust the update settings" + "2faCode:": "Label for the 2FA code input field in security settings. 2FA = Two-Factor Authentication.", + "2faCodeGive": "Text showing the user's TOTP secret for 2FA setup. $1 is the secret key. TOTP = Time-based One-Time Password.", + "2faDisable": "Button label to disable Two-Factor Authentication.", + "2faEnable": "Button label to enable Two-Factor Authentication.", + "CheckUpdate": "Button label to check for application updates.", + "PasswordsNoMatch": "Error message when password and confirmation password don't match.", + "TOSURL": "Label for the Terms of Service URL field in instance management.", + "VoiceWarning": "Warning message shown when enabling the experimental voice feature.", + "accentColor": "Label for the theme accent color picker in appearance settings.", + "accountSettings": "Settings section title for account settings.", + "addBot": "Button label to add a bot to an application.", + "addStatus": "Button label to set a custom status.", + "advancedBot": "Button label to open advanced bot settings.", + "appName": "Label for the application name input field in the developer portal.", + "areYouSureDelete": "Confirmation text for account deletion. $1 is the confirmation phrase the user must type.", + "badCode": "Error message when an invalid 2FA code is entered.", + "badPassword": "Error message when an incorrect password is entered.", + "botAvatar": "Label for the bot avatar image input.", + "botInviteCreate": "Title for the bot invite creator section.", + "botUsername": "Label for the bot username input field.", + "changeDiscriminator": "Button label to change the user's discriminator (the number after the username).", + "changeEmail": "Button label to change the user's email address.", + "changePassword": "Button label to change the user's password.", + "changeUsername": "Button label to change the user's username.", + "clearCache": "Button label to clear the application cache.", + "confirmAddBot": "Confirmation message when adding a bot to an application (irreversible action).", + "confirmReset": "Confirmation message when resetting a bot token.", + "confuseNoBot": "Error message shown when an application doesn't have a bot associated with it.", + "connections": "Settings section title for managing external connections/linked accounts.", + "createApp": "Button label to create a new application in the developer portal.", + "customSound": "Option name for a custom notification sound.", + "customStatusWarn": "Warning text that Harmony does not currently display custom statuses.", + "deleteAccount": "Settings section title for account deletion.", + "deleteAccountButton": "Button label to initiate account deletion.", + "description": "Label for the application description text field in the developer portal.", + "devPortal": "Settings section title for the developer portal.", + "disableConnection": "Text shown when a connection type has been disabled by the server.", + "editingBot": "Dialog title when editing a bot. $1 is the bot's username.", + "install": "Settings section title for the PWA install option.", + "installDesc": "Description text explaining what installing Fermi as a PWA does.", + "installJank": "Button label to install Fermi as a Progressive Web App.", + "language": "Label for the language selector in settings.", + "manageBot": "Button label to open the bot management interface.", + "manageInstance": "Settings section title for instance management (admin only).", + "mustTypePhrase": "Instruction text telling the user they must type a specific phrase to delete their account.", + "newDiscriminator": "Label for the new discriminator input field.", + "newEmail:": "Label for the new email input field.", + "newPassword:": "Label for the new password input field.", + "newUsername": "Label for the new username input field.", + "noToken": "Error message when the bot token cannot be saved because it's unknown.", + "noUpdates": "Message shown when no application updates are available.", + "notisound": "Label for the notification sound selector.", + "oldPassword:": "Label for the current/old password input field.", + "password:": "Label for the password input field in account change dialogs.", + "privacyPolcyURL": "Label for the privacy policy URL field in instance management.", + "appID": "Text showing the application ID. $1 is the ID.", + "showSecret": "Button label to reveal the client secret.", + "clientSecret": "Text showing the client secret. $1 is the secret value.", + "secret": "Label for the secret field.", + "publicAvaliable": "Label for the checkbox to make a bot publicly inviteable.", + "refreshPage": "Text telling the user to refresh the page to apply changes.", + "requireCode": "Label for the checkbox requiring OAuth2 code grant to invite a bot.", + "resetToken": "Button label to reset a bot's token.", + "saveToken": "Label for the checkbox to save the bot token to local storage.", + "setUp2fa": "Dialog title for 2FA setup. 2FA = Two-Factor Authentication.", + "setUp2faInstruction": "Instruction text explaining how to set up 2FA with a TOTP app. TOTP = Time-based One-Time Password.", + "settings": "Main settings page title.", + "sillyDeleteConfirmPhrase": "{{doc-important|This is a silly phrase the user must type to confirm account deletion. Do not translate this directly; make a joke that is easy to type in your language.}}", + "soundTooLarge": "Error message when an uploaded notification sound file is too large.", + "status": "Settings section title for user status settings.", + "team:": "Label for the team field in application settings.", + "theme:": "Label for the theme selector.", + "themesAndSounds": "Settings section title for themes and sounds.", + "tokenDisplay": "Text showing a bot token. $1 is the token value.", + "trace": "Settings section title for viewing server traces.", + "trusted": "Settings section title for managing trusted domains.", + "trustedDesc": "Description text explaining what trusted domains are and how they work. Uses Markdown (bold/italic).", + "updateSettings": "Settings section title for update/service worker settings.", + "updatesYay": "Message shown when application updates are found.", + "userSettings": "Settings section title for the user's public profile." }, + "login": { + "allGood": "Status text shown when an instance URL has been validated successfully.", + "checking": "Status text shown while verifying an instance URL.", + "enterPAgain": "Label for the password confirmation input on the password reset form.", + "invalid": "Error message when an instance URL is invalid.", + "login": "Login form title and submit button label.", + "newPassword": "Label for the new password input on the password reset form.", + "pasteInfo": "Label for the recovery link input on the password reset form.", + "recover": "Link text to navigate to the forgotten password page.", + "recovery": "Title for the forgotten/reset password page.", + "waiting": "Status text shown before instance URL validation begins." + }, + "logout": { + "error": { + "cancel": "Button label to cancel logout after an error.", + "cont": "Button label to force remove the account after a logout error.", + "desc": "Text shown when logout fails, asking if the user wants to remove the account locally.", + "title": "Dialog title when a logout error occurs." + }, + "logout": "Button label to log out." + }, + "manageInstance": { + "AreYouSureStop": "Confirmation message when stopping an instance.", + "TokenFormats": { + "JSON": "Token output format option: JSON formatted.", + "URLs": "Token output format option: as invite links.", + "plain": "Token output format option: plain text." + }, + "clientURL": "Label for the client URL input when generating registration tokens.", + "copy": "Button label to copy generated tokens to clipboard.", + "count": "Label for the token count input (how many tokens to generate).", + "create": "Button label to generate the registration tokens.", + "createTokens": "Button label and section title for the registration token creation tool.", + "format": "Label for the token output format selector.", + "genericType": "Registration token type option: generic type.", + "length": "Label for the token length input.", + "regType": "Label for the registration token link type selector.", + "stop": "Button label to stop the instance." + }, + "media": { + "artist": "Media info field showing the artist. $1 is the artist name.", + "composer": "Media info field showing the composer. $1 is the composer name.", + "download": "Button label to download a media file.", + "length": "Media info showing duration. $1 is the number of minutes, $2 is the number of seconds.", + "loading": "Text shown while media is loading.", + "moreInfo": "Button label to show more information about a media file.", + "notFound": "Error message when a media file cannot be found." + }, + "member": { + "ban": "Dialog title when banning a member. $1 is the username, $2 is the guild name.", + "kick": "Dialog title and context menu item when kicking a member. $1 is the username, $2 is the guild name.", + "nick:": "Label for the nickname input field.", + "persist": "Label for the option to only delete the user (not their messages) when banning.", + "reason:": "Label for the reason input field when banning/kicking.", + "timeout": "Dialog title when timing out a member. $1 is the username.", + "timeoutTime": "Label for the timeout duration selector." + }, + "message": { + "messages": "Link text showing the number of messages in a thread. $1 is the message count. Uses {{PLURAL}} for singular/plural.", + "andMore": "Text appended to a list of reaction users indicating there are more. $1 is the truncated list.", + "attached": "Short text indicating a message contains an attachment (shown in notifications/previews).", + "delete": "Context menu item to delete a message.", + "report": "Context menu item to report a message.", + "deleted": "Username placeholder text for a deleted message.", + "edit": "Context menu item to edit a message.", + "edited": "Text appended to edited messages showing they were modified.", + "fullMessage": "Label shown above the full message content in a detail view.", + "pin": "System message shown when a user pins a message. $1 is used as a split marker for the username.", + "thread": "System message shown when a user creates a thread. $1 is used as a split marker for the username, $2 for the thread name.", + "reactedWith": "Tooltip text showing what emoji was used to react. $1 is the emoji name.", + "reactionAdd": "Context menu item to add a reaction to a message.", + "createThread": "Context menu item to create a thread from a message.", + "threadOptions": "Dialog title for thread creation options.", + "reactions": "Context menu item to view all reactions on a message.", + "reactionsTitle": "Dialog title for the reactions viewer.", + "retry": "Context menu item to retry sending a failed message.", + "viewrest": "CSS-injected text for a button to view the rest of a long message." + }, + "report": { + "back": "Button label to go back to the previous step in the report flow.", + "next": "Button label to proceed to the next step in the report flow.", + "cancel": "Button label to cancel the report.", + "submit": "Button label to submit the report.", + "blockUser": "Button label to block the reported user.", + "timeout": "Button label to timeout the reported member.", + "summary": "Label for the report summary section." + }, + "messageLink": "Display text for a message link embed showing which channel it's from. $1 is the channel name.", + "muteDuration": "Label for the mute duration selector when muting a channel.", + "nevermind": "Generic button label to cancel an action.", + "no": "Generic 'No' button label.", + "noEmojiFont": "Option label to use the system's built-in emoji font instead of a custom one.", + "noMessages": "Placeholder text shown in an empty channel with no messages.", + "noPins": "Placeholder text shown when a channel has no pinned messages.", + "noStickers": "Placeholder text shown when no stickers are available to use.", + "notiClump": "Notification body text when multiple notifications are grouped. $1 is the notification count, $2 is the channel name.", + "notiVolume": "Label for the notification volume slider.", + "otherAt": "Date/time format for messages older than yesterday. $1 is the formatted date, $2 is the formatted time.", "permissions": { "descriptions": { - "CREATE_GUILD_EXPRESSIONS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "MANAGE_GUILD_EXPRESSIONS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "DEAFEN_MEMBERS": "To deafen means to temporarily disable your ability to hear any audio from a voice channel, while also muting your own microphone so others cannot hear you. Unlike muting, which only stops others from hearing you, deafening affects both incoming and outgoing audio, completely disabling your participation in the voice channel's audio.", - "USE_SOUNDBOARD": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear.", - "USE_EXTERNAL_SOUNDS": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear." + "ADMINISTRATOR": "Permission description for the Administrator permission. Warns about its danger.", + "MANAGE_GUILD": "Permission description for managing guild settings.", + "VIEW_AUDIT_LOG": "Permission description for viewing the audit log.", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "Permission description for viewing monetization analytics.", + "VIEW_GUILD_INSIGHTS": "Permission description for viewing guild insights/statistics.", + "BYPASS_SLOWMODE": "Permission description for bypassing channel slowmode.", + "MENTION_EVERYONE": "Permission description for mentioning @everyone.", + "MANAGE_NICKNAMES": "Permission description for managing other members' nicknames.", + "PIN_MESSAGES": "Permission description for pinning messages.", + "SEND_POLLS": "Permission description for sending polls.", + "MANAGE_MESSAGES": "Permission description for managing (deleting) other users' messages.", + "MANAGE_THREADS": "Permission description for managing threads.", + "MANAGE_CHANNELS": "Permission description for managing channels.", + "MANAGE_ROLES": "Permission description for managing roles.", + "MANAGE_WEBHOOKS": "Permission description for managing webhooks.", + "CREATE_EVENTS": "Permission description for creating scheduled events.", + "MANAGE_EVENTS": "Permission description for managing events.", + "CREATE_GUILD_EXPRESSIONS": "Permission description for creating expressions. The soundboard is a feature that lets you play short audio clips in voice channels.", + "MANAGE_GUILD_EXPRESSIONS": "Permission description for managing expressions. The soundboard is a feature that lets you play short audio clips in voice channels.", + "MODERATE_MEMBERS": "Permission description for timing out guild members.", + "KICK_MEMBERS": "Permission description for kicking members.", + "BAN_MEMBERS": "Permission description for banning members.", + "MOVE_MEMBERS": "Permission description for moving members between voice channels.", + "MUTE_MEMBERS": "Permission description for muting members in voice channels.", + "DEAFEN_MEMBERS": "Permission description for deafening members. To deafen means to disable both incoming and outgoing audio in a voice channel.", + "CHANGE_NICKNAME": "Permission description for changing own nickname.", + "VIEW_CHANNEL": "Permission description for viewing text channels.", + "READ_MESSAGE_HISTORY": "Permission description for reading message history.", + "ADD_REACTIONS": "Permission description for adding reactions.", + "SEND_MESSAGES": "Permission description for sending messages.", + "SEND_MESSAGES_IN_THREADS": "Permission description for sending messages in threads.", + "SEND_TTS_MESSAGES": "Permission description for sending text-to-speech messages. TTS = Text-To-Speech.", + "USE_EXTERNAL_EMOJIS": "Permission description for using emojis from other guilds.", + "USE_EXTERNAL_STICKERS": "Permission description for using stickers from other guilds.", + "EMBED_LINKS": "Permission description for auto-embedding links.", + "ATTACH_FILES": "Permission description for attaching files.", + "SEND_VOICE_MESSAGES": "Permission description for sending voice messages.", + "CREATE_INSTANT_INVITE": "Permission description for creating invites.", + "CREATE_PUBLIC_THREADS": "Permission description for creating public threads.", + "CREATE_PRIVATE_THREADS": "Permission description for creating private threads.", + "CONNECT": "Permission description for connecting to voice channels.", + "SPEAK": "Permission description for speaking in voice channels.", + "USE_VAD": "Permission description for Voice Activity Detection. VAD = Voice Activity Detection, which allows speaking without pressing a Push-To-Talk key.", + "STREAM": "Permission description for streaming in voice channels.", + "USE_SOUNDBOARD": "Permission description for using the soundboard. The soundboard lets you play short audio clips in voice channels.", + "USE_EXTERNAL_SOUNDS": "Permission description for using soundboard sounds from other guilds. The soundboard lets you play short audio clips in voice channels.", + "PRIORITY_SPEAKER": "Permission description for being a priority speaker in voice channels.", + "REQUEST_TO_SPEAK": "Permission description for requesting to speak in stage channels.", + "USE_EMBEDDED_ACTIVITIES": "Permission description for using embedded activities.", + "USE_APPLICATION_COMMANDS": "Permission description for using application/slash commands.", + "USE_EXTERNAL_APPS": "Permission description for using external applications publicly." }, "readableNames": { - "DEAFEN_MEMBERS": "To deafen means to temporarily disable your ability to hear any audio from a voice channel, while also muting your own microphone so others cannot hear you. Unlike muting, which only stops others from hearing you, deafening affects both incoming and outgoing audio, completely disabling your participation in the voice channel's audio.", - "USE_SOUNDBOARD": "The soundboard is a feature that lets you play short audio clips, like sound effects or voice lines, in voice channels for everyone to hear." + "ADD_REACTIONS": "Permission name for adding reactions to messages.", + "ADMINISTRATOR": "Permission name for the administrator permission.", + "ATTACH_FILES": "Permission name for attaching files.", + "BAN_MEMBERS": "Permission name for banning members.", + "BYPASS_SLOWMODE": "Permission name for bypassing slowmode.", + "CHANGE_NICKNAME": "Permission name for changing own nickname.", + "CONNECT": "Permission name for connecting to voice channels.", + "CREATE_EVENTS": "Permission name for creating events.", + "CREATE_GUILD_EXPRESSIONS": "Permission name for creating expressions (emojis, stickers, soundboard sounds).", + "CREATE_INSTANT_INVITE": "Permission name for creating invites.", + "CREATE_PRIVATE_THREADS": "Permission name for creating private threads.", + "CREATE_PUBLIC_THREADS": "Permission name for creating public threads.", + "DEAFEN_MEMBERS": "Permission name for deafening members. To deafen means to disable both incoming and outgoing audio in a voice channel.", + "EMBED_LINKS": "Permission name for embedding links.", + "KICK_MEMBERS": "Permission name for kicking members.", + "MANAGE_CHANNELS": "Permission name for managing channels.", + "MANAGE_EVENTS": "Permission name for managing events.", + "MANAGE_GUILD": "Permission name for managing the guild.", + "MANAGE_GUILD_EXPRESSIONS": "Permission name for managing expressions (emojis, stickers, soundboard sounds).", + "MANAGE_MESSAGES": "Permission name for managing messages.", + "MANAGE_NICKNAMES": "Permission name for managing nicknames.", + "MANAGE_ROLES": "Permission name for managing roles.", + "MANAGE_THREADS": "Permission name for managing threads.", + "MANAGE_WEBHOOKS": "Permission name for managing webhooks.", + "MENTION_EVERYONE": "Permission name for mentioning everyone.", + "MODERATE_MEMBERS": "Permission name for timing out members.", + "MOVE_MEMBERS": "Permission name for moving members between voice channels.", + "MUTE_MEMBERS": "Permission name for muting members in voice channels.", + "PIN_MESSAGES": "Permission name for pinning messages.", + "PRIORITY_SPEAKER": "Permission name for priority speaker in voice channels.", + "READ_MESSAGE_HISTORY": "Permission name for reading message history.", + "REQUEST_TO_SPEAK": "Permission name for requesting to speak in stage channels.", + "SEND_MESSAGES": "Permission name for sending messages.", + "SEND_MESSAGES_IN_THREADS": "Permission name for sending messages in threads.", + "SEND_POLLS": "Permission name for creating polls.", + "SEND_TTS_MESSAGES": "Permission name for sending Text-To-Speech messages. TTS = Text-To-Speech.", + "SEND_VOICE_MESSAGES": "Permission name for sending voice messages.", + "SPEAK": "Permission name for speaking in voice channels.", + "STREAM": "Permission name for streaming video in voice channels.", + "USE_APPLICATION_COMMANDS": "Permission name for using application/slash commands.", + "USE_EMBEDDED_ACTIVITIES": "Permission name for using embedded activities.", + "USE_EXTERNAL_APPS": "Permission name for using external applications.", + "USE_EXTERNAL_EMOJIS": "Permission name for using emojis from other guilds.", + "USE_EXTERNAL_SOUNDS": "Permission name for using soundboard sounds from other guilds. The soundboard lets you play short audio clips in voice channels.", + "USE_EXTERNAL_STICKERS": "Permission name for using stickers from other guilds.", + "USE_SOUNDBOARD": "Permission name for using the soundboard. The soundboard lets you play short audio clips in voice channels.", + "USE_VAD": "Permission name for Voice Activity Detection. VAD = Voice Activity Detection, allowing speaking without Push-To-Talk.", + "VIEW_AUDIT_LOG": "Permission name for viewing the audit log.", + "VIEW_CHANNEL": "Permission name for viewing channels.", + "VIEW_CREATOR_MONETIZATION_ANALYTICS": "Permission name for viewing creator monetization analytics.", + "VIEW_GUILD_INSIGHTS": "Permission name for viewing guild insights." } }, - "readableName": "{{doc-important|This should be the name of the language you are translating into, in that language. Please DO NOT translate this into your language’s word for “English”!}}", + "pinMessage": "Context menu item to pin a message.", + "profile": { + "bio": "Label for the about-me section on a user's profile.", + "joined": "Profile info showing when the account was created. $1 is the formatted date.", + "joinedMember": "Profile info showing when the user joined a specific guild. $1 is the guild name, $2 is the formatted date.", + "mut": "Tab label for the mutual guilds section on a user's profile.", + "mutFriends": "Tab label for the mutual friends section on a user's profile.", + "permInfo": "Tab label for the permissions section on a user's profile.", + "userInfo": "Tab label for the user info section on a user's profile.", + "notes": "Tab label for the user notes section on a user's profile." + }, + "profileColor": "Label for the profile accent color picker.", + "pronouns": "Label for the pronouns input field in profile settings.", + "readableName": "{{doc-important|This should be the name of the language you are translating into, in that language. Please DO NOT translate this into your language's word for \"English\"!}}", + "recentEmoji": "Title for the recent/frequently used emojis section in the emoji picker.", "register": { - "agreeTOS": "uses MarkDown" + "DOBError": "Registration form field label with error. $1 is the error message for date of birth.", + "agreeTOS": "Checkbox label for agreeing to the Terms of Service. $1 is the TOS URL. Uses Markdown for the link. TOS = Terms of Service.", + "emailError": "Registration form field label with error. $1 is the error message for email.", + "noTOS": "Checkbox label shown when the instance has no Terms of Service.", + "passwordError:": "Registration form field label with error. $1 is the error message for password.", + "register": "Button label and page title for the registration form.", + "tos": "Error message when the user hasn't agreed to the Terms of Service. TOS = Terms of Service.", + "usernameError": "Registration form field label with error. $1 is the error message for username.", + "other": "Option label to connect to a different (non-listed) instance.", + "instURL": "Label for the custom instance URL input field." }, - "typing": "$1 is the number of people typing and $2 is the names of the people typing separated by commas", + "remove": "Generic remove button label.", + "renderJoinAvatars": "Label for the setting to display avatars for new member join messages.", + "reply": "Context menu item to reply to a message.", + "replyingTo": "Text shown above the message input indicating who is being replied to. $1 is the username.", + "retrying": "Status text shown while retrying a failed connection.", + "role": { + "color": "Label for the primary role color picker.", + "colors": { + "name": "Label for the role color scheme selector.", + "one": "Color scheme option: single color (monochrome).", + "two": "Color scheme option: two colors (bicolor/gradient).", + "three": "Color scheme option: three colors (tricolor/gradient).", + "secondColor": "Label for the second color picker in a multi-color role.", + "thirdColor": "Label for the third color picker in a multi-color role." + }, + "confirmDelete": "Confirmation message when deleting a role. $1 is the role name.", + "copyId": "Context menu item to copy a role's ID.", + "delete": "Button label and context menu item to delete a role.", + "deleting": "Status text shown while a role is being deleted.", + "displaySettings": "Button label to open role display settings (hoisting, color, icon).", + "hoisted": "Label for the setting to display role members separately in the member list.", + "mentionable": "Label for the setting to allow anyone to mention/ping the role.", + "name": "Label for the role name input field.", + "perms": "Section title for role permissions (shown when editing channel overrides).", + "remove": "Context menu item to remove a role from a user.", + "roleEmoji": "Label for the role emoji input field.", + "roleFileIcon": "Label for the role icon image input field.", + "roles": "Section title for roles list (shown in guild settings)." + }, + "search": { + "back": "Button label to go to the previous page of search results.", + "new": "Button label to sort search results by newest first.", + "next": "Button label to go to the next page of search results.", + "nofind": "Message shown when no search results are found.", + "old": "Button label to sort search results by oldest first.", + "page": "Text showing the current search results page number. $1 is the page number.", + "search": "Placeholder text for the search input field.", + "settings": "Button label and dialog title for search filter settings.", + "before": "Label for the 'before date' filter in search settings.", + "after": "Label for the 'after date' filter in search settings.", + "includensfw": "Label for the checkbox to include NSFW channels in search. NSFW = Not Safe For Work.", + "authors": "Label for the authors filter in search settings.", + "mentions": "Label for the mentions filter in search settings.", + "channels": "Label for the channels filter in search settings." + }, + "searchGifs": "Placeholder text for the GIF search input. $1 is the GIF provider name (e.g. 'Tenor').", + "settings": { + "clear": "Button label to clear/remove an uploaded image.", + "img": "Button label to upload an image.", + "save": "Button label to save changes in settings.", + "unsaved": "Warning text shown when the user has unsaved changes.", + "updates": { + "serviceWorkerMode": { + "disabled": "Service Worker mode option: disabled/off.", + "enabled": "Service Worker mode option: enabled/on.", + "offlineOnly": "Service Worker mode option: only cache for offline use.", + "title": "Label for the Service Worker mode selector.", + "unregistered": "Service Worker mode option: fully disabled including media cache." + } + } + }, + "showBlockedMessages": "Text shown to reveal hidden messages from a blocked user. $1 is the number of blocked messages. Uses {{PLURAL}} for singular/plural.", + "spoiler": "Label for the spoiler button/overlay on spoiler-tagged content.", + "sticker": { + "confirmDel": "Confirmation message when deleting a sticker.", + "del": "Button label to delete a sticker.", + "desc": "Label for the sticker description input field.", + "errEmjMust": "Error message when no emoji is paired with a sticker upload.", + "errFileMust": "Error message when no image is included for a sticker upload.", + "image": "Label for the sticker image file input.", + "name": "Label for the sticker name input field.", + "tags": "Label for the associated emoji input for a sticker.", + "title": "Settings section title for sticker management.", + "upload": "Button label and dialog title for uploading stickers." + }, + "submit": "Generic submit button label used in forms.", + "switchAccounts": "Button label to switch between multiple logged-in accounts.", + "todayAt": "Date format for messages sent today. $1 is the formatted time.", + "trace": { + "totalTime": "Trace timing display. $1 is the time in milliseconds, $2 is the trace name.", + "traces": "Trace entry display. $1 is the trace name, $2 is the time in milliseconds, $3 is additional info." + }, + "typing": "Typing indicator text. $1 is the number of people typing, $2 is the names of the people typing separated by commas. Uses {{PLURAL}} for is/are.", + "unableToConnect": "Error message shown when the client cannot connect to the Harmony server.", + "unableToPin": "Error message shown when pinning/unpinning a message fails.", + "sbWarns": { + "regi": "Warning shown when registering on a Spacebar instance, recommending Harmony instead. Asks for confirmation to continue.", + "in": "Warning shown once when logging into a Spacebar instance, recommending Harmony instead." + }, + "connections": { + "since": "Text showing when the user became a member of a connected service. $1 is the formatted date.", + "display": "Label for the toggle to display a connection on the user's profile.", + "delete": "Button label to delete/remove a connection.", + "sure": "Confirmation dialog title when deleting a connection.", + "sureDesc": "Confirmation dialog description text warning that removing a connection is irreversible." + }, + "unpinMessage": "Context menu item to unpin a message.", + "updateAv": "Notification text indicating application updates are available.", + "uploadBanner": "Label for the banner image upload input.", + "uploadFilesText": "Placeholder text in the file upload area.", + "uploadPfp": "Label for the avatar/profile picture upload input.", + "useTemplate": "Text on the template page indicating which template will be used. $1 is the template name.", + "useTemplateButton": "Button label to use a template to create a guild.", + "usedFermi": "Context menu item text indicating a message was sent via the Fermi client.", + "user": { + "report": "Context menu item to report a user.", + "deleted": "Placeholder name shown for a deleted user.", + "reportApp": "Context menu item to report an application/bot.", + "addRole": "Context menu item to add roles to a member.", + "ban": "Context menu item to ban a member.", + "block": "Context menu item to block a user.", + "confirmInstBan": "Confirmation message when instance-banning a user. $1 is the username.", + "copyId": "Context menu item to copy a user's ID.", + "dnd": "User status option: Do Not Disturb.", + "editNick": "Context menu item to edit a member's nickname.", + "editServerProfile": "Context menu item and settings title to edit the guild-specific profile.", + "friendReq": "Context menu item to send a friend request.", + "idle": "User status: Idle.", + "instanceBan": "Context menu item to instance-ban a user (admin action).", + "invisible": "User status option: Invisible (appear offline).", + "kick": "Context menu item to kick a member.", + "message": "Context menu item to send a direct message to a user.", + "nick": { + "foe": "Context menu item to set a nickname for a blocked user.", + "friend": "Context menu item to set a nickname for a friend.", + "stalker": "Context menu item to set a nickname for someone who sent a friend request.", + "stalking": "Context menu item to set a nickname for someone you sent a friend request to." + }, + "offline": "User status: Offline.", + "online": "User status: Online.", + "remove": "Context menu item to remove a user (from a role list).", + "removeRole": "Context menu item to remove roles from a member.", + "sendMessage": "Placeholder text for the message input on a user's profile popup. $1 is the username.", + "timeout": "Context menu item to timeout a member.", + "unTimeout": "Context menu item to remove a timeout from a member.", + "unban": "Button label to unban a user. $1 is the username.", + "unblock": "Context menu item to unblock a user.", + "viewProfile": "Context menu item to view a user's full profile." + }, + "userping": { + "resolving": "Placeholder text shown while resolving a user mention.", + "unknown": "Placeholder text for an unresolved/unknown user mention." + }, + "vc": { + "joinForStream": "Text telling users to join the voice channel to watch a stream.", + "joiningStream": "Status text shown while connecting to watch a stream.", + "joinstream": "Button label to start watching a user's stream.", + "leavestream": "Button label to stop watching a stream.", + "stopstream": "Button label to stop your own stream." + }, + "webauth": { + "addKey": "Button label to add a new security key for WebAuthn authentication.", + "keyname": "Label for the security key name input field.", + "manage": "Button label to open the security key management interface." + }, + "webhook": "Label displayed next to a webhook message author to indicate it is a webhook.", "webhooks": { - "sillyDefaults": "{{doc-important|This is just a list of silly default names for webhooks, do not feel the need to translate dirrectly, and no need for the same count}}" + "EnterWebhookName": "Dialog title prompting the user to name a new webhook.", + "areYouSureDelete": "Confirmation message when deleting a webhook. $1 is the webhook name.", + "avatar": "Label for the webhook avatar section.", + "base": "Settings section title for webhooks.", + "channel": "Label for the webhook output channel selector.", + "copyURL": "Button label to copy the webhook's URL.", + "createdAt": "Text showing when a webhook was created. $1 is the formatted date.", + "createdBy": "Label showing who created the webhook.", + "deleteWebhook": "Button label to delete a webhook.", + "name": "Label for the webhook name input field.", + "newWebHook": "Button label to create a new webhook.", + "notFound": "Text shown when the webhook creator is no longer in the guild.", + "sillyDefaults": "{{doc-important|This is just a list of silly default names for webhooks, do not feel the need to translate directly, and no need for the same count.}}", + "token": "Text showing the webhook token. $1 is the token value. Uses Markdown (backticks for code).", + "type": "Text showing the webhook type. $1 is the type name.", + "type1": "Webhook type name: Incoming (receives data from external sources).", + "type2": "Webhook type name: Channel follower (cross-posts from another channel).", + "type3": "Webhook type name: Application (managed by a bot/app).", + "url": "Text showing the full webhook URL. $1 is the URL. Uses Markdown (backticks for code)." }, - "welcomeMessages": "These are welcome messages, they are meant to be silly, you do not need to directly translated them, there may even be a different count of messages, but only have the username once per message." + "welcomeMessages": "{{doc-important|These are welcome messages sent when someone joins a guild. They are meant to be silly. You do not need to translate them directly; there may be a different count of messages, but only include the username ($1) once per message.}}", + "widget": "Settings section title for the guild widget.", + "widgetEnabled": "Label for the checkbox to enable/disable the guild widget.", + "yes": "Generic 'Yes' button label.", + "yesterdayAt": "Date format for messages sent yesterday. $1 is the formatted time." } diff --git a/translations/zh-hans.json b/translations/zh-hans.json index daf55f3..8f29213 100644 --- a/translations/zh-hans.json +++ b/translations/zh-hans.json @@ -8,8 +8,10 @@ "GuoPC", "Key0121", "Pawsdt", + "Peterxy", "Peterxy12", "Plana", + "TFX202X", "Wilf233" ] }, @@ -208,7 +210,7 @@ } }, "channelLink": "# $1", - "clientDesc": "客户端版本:$1 \n\n[加入 Fermi 官方公会]($2/invite\n/USgYJo?instance=https%3A%2F%2Fspacebar.chat)\n\n[帮助翻译 Fermi](https://translatewiki.net/wiki/Translating:JankClient#sortable:3=desc)\n\n[帮助开发 Fermi](https://github.com/MathMan05/Fermi)\n\n[帮助维护 Fermi 所依赖的服务器](https://github.com/spacebarchat/server)\n\n[阅读博客](https://blog.fermi.chat/)\n\n计算权限:$3", + "clientDesc": "客户端版本:$1 \n\n[加入官方Fermi公会](https://redir.fermi.chat/invite)\n\n[帮助翻译Fermi](https://redir.fermi.chat/translate) \n\n[帮助创建Fermi](https://github.com/MathMan05/Fermi)\n\n[帮助维护Fermi所依赖的服务器](https://redir.fermi.chat/server)\n\n[阅读博客](https://blog.fermi.chat/)\n\n计算权限:$3", "commands": { "errorNotValid": "$1不是$2的有效选择", "required": "$1是此命令的必要组成部分" @@ -227,7 +229,7 @@ "cacheDesc": "无论哪种方式,map 文件仍然会加载,这是确保在新的更新推出时它们已在缓存中。", "captureTrace": "此设置会指示 Fermi 从服务器捕获 _trace 属性,启用此设置可能会导致渐进式 JSON 解码无法运作(可能需要重新加载)。", "clearWellKnowns": "重新获取.well-known记录:", - "description": "这些设置是给 Spacebar/Fermi 的开发者用的,如果你不知道自己在做什么,请不要更改这些设置。", + "description": "这些设置是给Harmony/Fermi的开发者用的,如果你不知道自己在做什么,请不要随意更改这些设置。", "gatewayComp": "禁用网关压缩:", "reportSystem": "启用实验性报告系统:", "logGateway": "记录接收到的网关事件(日志级别信息):", @@ -328,6 +330,8 @@ "banner:": "横幅:", "bans": "禁止", "boostMessage?": "当有人提升您的公会时发送讯息!", + "banId": "根据ID封禁", + "idSel": "ID:", "community": "社群", "confirmDelete": "您确定要删除$1吗?", "confirmLeave": "您确定您要离开吗?", @@ -401,7 +405,7 @@ "alreadyHave": "已经拥有账号?", "box3description": "我们始终感谢大家的帮助,无论是提交错误报告、代码,还是指出拼写错误。", "box3title": "为 Fermi 做出贡献", - "compatableInstances": "Spacebar 相容实例:", + "compatableInstances": "兼容Harmony的实例:", "createAccount": "创建账号", "dobField": "出生日期:", "emailField": "电子邮件:", @@ -483,7 +487,7 @@ }, "jankInfo": "客户端信息", "leaveGuild": "离开公会", - "leaving": "您正在离开 Spacebar", + "leaving": "你即将离开Harmony", "loaded": "已加载", "localuser": { "2faCode:": "代码:", @@ -517,7 +521,7 @@ "connections": "连接", "createApp": "创建应用程序", "customSound": "自定义音效", - "customStatusWarn": "Spacebar 目前不支持显示自定义状态,因此它虽然会接受状态但不会对其做出任何行为", + "customStatusWarn": "Harmony目前不支持显示自定义状态,因此虽然它会接受该状态,但不会对其进行任何处理。", "deleteAccount": "删除账号", "deleteAccountButton": "删除账号", "description": "描述:", @@ -781,7 +785,8 @@ "mut": "互助公会", "mutFriends": "共同好友", "permInfo": "权限", - "userInfo": "用户信息" + "userInfo": "用户信息", + "notes": "用户笔记" }, "profileColor": "个人档案色", "pronouns": "称谓:", @@ -795,7 +800,9 @@ "passwordError:": "密码:$1", "register": "注册", "tos": "您必须同意服务条款", - "usernameError": "用户名:$1" + "usernameError": "用户名:$1", + "other": "其他实例", + "instURL": "URL:" }, "remove": "移除", "renderJoinAvatars": "显示新成员的头像:", @@ -833,7 +840,14 @@ "nofind": "似乎没有符合您搜索条件的讯息,请尝试扩大搜索条件,以找出您想要的内容", "old": "旧", "page": "第 $1 页", - "search": "搜索" + "search": "搜索", + "settings": "搜索设置", + "before": "前:", + "after": "后:", + "includensfw": "包含NSFW内容:", + "authors": "作者:", + "mentions": "提及:", + "channels": "频道:" }, "searchGifs": "搜索$1", "settings": { @@ -873,8 +887,19 @@ "traces": "$1($2 毫秒)$3" }, "typing": "$2{{PLURAL:$1|正在}}输入", - "unableToConnect": "无法连接到 Spacebar 服务器。请尝试登出并重新登录。", + "unableToConnect": "无法连接到Harmony服务器。请尝试注销并重新登录。", "unableToPin": "无法固定消息", + "sbWarns": { + "regi": "Fermi已不再正式支持Spacebar实例,虽然它可能仍然可以工作,但建议使用Harmony。是否继续?", + "in": "Fermi已不再正式支持Spacebar实例,虽然它可能仍然可以工作,但建议使用Harmony。此消息只会显示一次。" + }, + "connections": { + "since": "会员注册时间: $1", + "display": "个人资料页面显示:", + "delete": "删除连接", + "sure": "您确定吗?", + "sureDesc": "如果断开此连接,则无法撤销。" + }, "unpinMessage": "取消置顶消息", "updateAv": "可用更新", "uploadBanner": "上传横幅:", @@ -915,7 +940,8 @@ "timeout": "超时的成员", "unTimeout": "移除成员超时", "unban": "解封$1", - "unblock": "解封用户" + "unblock": "解封用户", + "viewProfile": "查看个人资料" }, "userping": { "resolving": "正在解析用户", diff --git a/translations/zh-hant.json b/translations/zh-hant.json index 24a3a8f..24e79ca 100644 --- a/translations/zh-hant.json +++ b/translations/zh-hant.json @@ -42,6 +42,7 @@ "dismiss": "去除", "UrlGen": "機器人邀請生成器", "Voice": { + "userVol": "使用者數量:", "status": { "badWS": "WebSocket回應錯誤", "conectionFailed": "連接失敗", @@ -201,7 +202,7 @@ } }, "channelLink": "# $1", - "clientDesc": "客戶端版本:$1 \n\n[加入 Fermi 官方公會]($2/invite\n/USgYJo?instance=https%3A%2F%2Fspacebar.chat)\n\n[協助翻譯 Fermi](https://translatewiki.net/wiki/Translating:JankClient#sortable:3=desc)\n\n[協助開發 Fermi](https://github.com/MathMan05/Fermi)\n\n[協助維護 Fermi 所依賴的伺服器](https://github.com/spacebarchat/server)\n\n[閱讀部落格](https://blog.fermi.chat/)\n\n計算權限:$3", + "clientDesc": "客戶端版本:$1 \n\n[加入 Fermi 官方公會](https://redir.fermi.chat/invite)\n\n[協助翻譯 Fermi](https://redir.fermi.chat/translate)\n\n[協助開發 Fermi](https://github.com/MathMan05/Fermi)\n\n[協助維護 Fermi 所依賴的伺服器](https://redir.fermi.chat/server)\n\n[閱讀部落格](https://blog.fermi.chat/)\n\n估計權限:$3", "commands": { "errorNotValid": "$1不是$2的有效選擇", "required": "$1是此指令的必需部分" @@ -220,7 +221,7 @@ "cacheDesc": "映射檔案在任何情況都會載入,這樣是為了確保在新版本發佈時能已快取。", "captureTrace": "此設定會指示 Fermi 從伺服器擷取 _trace 屬性,啟用此可能會導致漸進式 JSON 解碼無法運作(可能需要重新載入)。", "clearWellKnowns": "重新取得 .well-known 紀錄:", - "description": "這些是給 Spacebar/Fermi 的開發人員使用,若您不清楚用途,請不要變動這些設定。", + "description": "這些是給 Harmony/Fermi 的開發人員使用,若您不清楚用途,請不要變動這些設定。", "gatewayComp": "停用閘道器壓縮:", "reportSystem": "啟用實驗性回報系統:", "logGateway": "記錄接收到的閘道器事件(日誌等級資訊):", @@ -277,6 +278,7 @@ "friends": { "addfriend": "新增好友", "addfriendpromt": "透過使用者名稱新增好友:", + "requestsent": "請求已發送!", "all": "全部", "all:": "全部好友:", "blocked": "已封鎖", @@ -320,6 +322,8 @@ "banner:": "橫幅:", "bans": "禁止", "boostMessage?": "當有人促進您的公會時發送訊息!", + "banId": "透過 ID 禁止", + "idSel": "ID:", "community": "社群", "confirmDelete": "您確定要刪除$1嗎?", "confirmLeave": "您確定您要離開嗎?", @@ -393,7 +397,7 @@ "alreadyHave": "已經有帳號了嗎?", "box3description": "我們一向感謝任何協助,無論是錯誤報告、程式碼,或是指出一些拼字錯誤。", "box3title": "為 Fermi 做出貢獻", - "compatableInstances": "Spacebar 相容實例:", + "compatableInstances": "Harmony 相容實例:", "createAccount": "建立帳號", "dobField": "出生日期:", "emailField": "電子郵件:", @@ -475,7 +479,7 @@ }, "jankInfo": "客戶端資訊", "leaveGuild": "離開公會", - "leaving": "您正在離開 Spacebar", + "leaving": "您正在離開 Harmony", "loaded": "已載入", "localuser": { "2faCode:": "代碼:", @@ -509,7 +513,7 @@ "connections": "連接", "createApp": "建立應用程式", "customSound": "自訂音效", - "customStatusWarn": "Spacebar 目前不支援顯示自訂狀態,因此雖然會接受狀態但不會對此做出任何行為", + "customStatusWarn": "Harmony 目前不支援顯示自訂狀態,因此雖然會接受狀態但不會對此做出任何行為", "deleteAccount": "帳號刪除", "deleteAccountButton": "刪除帳號", "description": "描述:", @@ -557,7 +561,7 @@ "trustedDesc": "當您點擊導向這些網域的連結時,系統將『不會』像其他連結那樣要求您授權開啟。請僅將此權限授予您信任的網域,例如:'https://fermi.chat'", "updateSettings": "更新設定", "updatesYay": "已找到更新!", - "userSettings": "使用者設定" + "userSettings": "您的公開個人資料" }, "login": { "allGood": "一切都好", @@ -773,7 +777,8 @@ "mut": "共同公會", "mutFriends": "共同好友", "permInfo": "權限", - "userInfo": "使用者資訊" + "userInfo": "使用者資訊", + "notes": "使用者備註" }, "profileColor": "個人檔案色彩", "pronouns": "稱謂:", @@ -787,7 +792,9 @@ "passwordError:": "密碼:$1", "register": "註冊", "tos": "您必須同意服務條款", - "usernameError": "使用者名稱:$1" + "usernameError": "使用者名稱:$1", + "other": "其他實例", + "instURL": "URL:" }, "remove": "移除", "renderJoinAvatars": "顯示新成員的頭像:", @@ -825,7 +832,14 @@ "nofind": "似乎沒有符合您搜尋條件的訊息,請嘗試擴大搜尋條件,以找出您想要的內容", "old": "舊", "page": "第 $1 頁", - "search": "搜尋" + "search": "搜尋", + "settings": "搜尋設定", + "before": "早於:", + "after": "晚於:", + "includensfw": "包含 NSFW 內容:", + "authors": "作者:", + "mentions": "提及:", + "channels": "頻道:" }, "searchGifs": "搜尋$1", "settings": { @@ -865,8 +879,19 @@ "traces": "$1($2 毫秒)$3" }, "typing": "$2{{PLURAL:$1|正在}}輸入", - "unableToConnect": "無法連接到 Spacebar 伺服器。請嘗試登出並重新登入。", + "unableToConnect": "無法連接到 Harmony 伺服器。請嘗試登出並重新登入。", "unableToPin": "無法置頂訊息", + "sbWarns": { + "regi": "Fermi 已不再正式支援 Spacebar 實例,雖然這仍可以運作,但建議您改用 Harmony。您是否要繼續?", + "in": "Fermi 已不再正式支援 Spacebar 實例,雖然這仍可以運作,但建議您改用 Harmony。此訊息只會顯示一次。" + }, + "connections": { + "since": "會員加入時間:$1", + "display": "顯示在個人資料:", + "delete": "刪除連接", + "sure": "您確定嗎?", + "sureDesc": "如果您移除此連接,則無法還原。" + }, "unpinMessage": "取消置頂訊息", "updateAv": "有更新可用", "uploadBanner": "上傳橫幅:", @@ -907,7 +932,8 @@ "timeout": "逾時成員", "unTimeout": "移除成員上的逾時", "unban": "解禁$1", - "unblock": "解除封鎖使用者" + "unblock": "解除封鎖使用者", + "viewProfile": "查看個人檔案" }, "userping": { "resolving": "解析使用者",