diff --git a/CHANGELOG.md b/CHANGELOG.md index 95ae8ee156f6..0c36175f224d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## Unreleased + +### General +- + +### Client +- + +### Server +- + + ## 2025.1.0 ### Note @@ -49,6 +61,8 @@ - Fix: 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656) - Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正 +- Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限 +- Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正 ### Server - Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 0ef4af7b6f55..1f885c66a2da 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -1584,9 +1584,6 @@ _reversi: _offlineScreen: title: "غير متصل - يتعذر الاتصال بالخادم" header: "يتعذر الاتصال بالخادم" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "خطأ" _remoteLookupErrors: _noSuchObject: title: "غير موجود" diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml index 32ba28bb3dac..9c8566c5b735 100644 --- a/locales/bn-BD.yml +++ b/locales/bn-BD.yml @@ -1348,9 +1348,6 @@ _moderationLogTypes: resetPassword: "পাসওয়ার্ড রিসেট করুন" _reversi: total: "মোট" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "সমস্যা" _remoteLookupErrors: _noSuchObject: title: "পাওয়া যায়নি" diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml index 12b7ab82e933..9954b2a747f1 100644 --- a/locales/ca-ES.yml +++ b/locales/ca-ES.yml @@ -2745,16 +2745,17 @@ _customEmojisManager: deleteSelectionRanges: "Esborrar files de la selecció " searchSettings: "Configuració del cercador" searchSettingCaption: "Defineix criteris de cerca detallats." + searchLimit: "Nombre de pantalles" sortOrder: "Ordenar" registrationLogs: "Registres d'inscripcions " registrationLogsCaption: "Quan s'actualitzin o s'esborrin emojis es mostrarà un registre. Desapareixeran quan s'actualitzin, s'esborrin, visitis una nova pàgina o la recarreguis." - alertEmojisRegisterFailedTitle: "Error" alertEmojisRegisterFailedDescription: "No s'ha pogut actualitzar o esborrar l'emoji. Si us plau, dona una ullada al registre per més detalls." _logs: showSuccessLogSwitch: "Mostrar el registre d'èxit " failureLogNothing: "No hi ha registres de fallades." logNothing: "No hi ha registres." _remote: + selectionRowDetail: "Detall de la línia seleccionada" importSelectionRows: "Importar les files seleccionades" importSelectionRangesRows: "Importar les files de la selecció " importEmojisButton: "Importar els Emojis marcats" @@ -2769,10 +2770,12 @@ _customEmojisManager: markAsDeleteTargetRanges: "Selecció de files per la seva eliminació " alertUpdateEmojisNothingDescription: "No hi ha Emojis actualitzats." alertDeleteEmojisNothingDescription: "No hi ha Emoji per esborrar." - confirmUpdateEmojisTitle: "Confirmar" + confirmMovePage: "Vols canviar de pàgina?" + confirmChangeView: "Vols canviar la pantalla?" confirmUpdateEmojisDescription: "Actualitzar {count} Emojis. Vols executar-ho?" - confirmDeleteEmojisTitle: "Confirmar" confirmDeleteEmojisDescription: "Esborrar {count} Emojis marcats. Vols continuar?" + confirmResetDescription: "Es restabliran tots els canvis fets fins ara." + confirmMovePageDesciption: "S'han fet canvis als Emojis d'aquesta pàgina. Si continues navegant sense guardar els canvis, es perdran tots els canvis fets en aquesta pàgina." dialogSelectRoleTitle: "Buscar Emojis per rol" _register: uploadSettingTitle: "Actualitza la configuració " @@ -2783,11 +2786,8 @@ _customEmojisManager: emojiInputAreaList1: "Arrossega i deixar anar fitxers o directoris dintre del quadrat." emojiInputAreaList2: "Clica l'enllaç per seleccionar un fitxer des del teu ordinador." emojiInputAreaList3: "Clica aquest enllaç per seleccionar del Disc" - confirmRegisterEmojisTitle: "Confirmar" confirmRegisterEmojisDescription: "Registrar els Emojis de la llista com a nous Emojis personalitzats. Vols continuar? (Per evitar una sobrecàrrega només {count} Emojis es poden registrar d'una sola vegada)" - confirmClearEmojisTitle: "Confirmar" confirmClearEmojisDescription: "Descartar els canvis i esborrar els Emojis de la llista. Vols continuar?" - confirmUploadEmojisTitle: "Confirmar" confirmUploadEmojisDescription: "Pujar els {count} fitxers que has arrossegat al disc. Vols continuar?" _embedCodeGen: title: "Personalitza el codi per incrustar" diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index 42d09a2d6001..20bea96b7fb8 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -2024,9 +2024,6 @@ _moderationLogTypes: createInvitation: "Vygenerovat pozvánku" _reversi: total: "Celkem" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Chyba" _remoteLookupErrors: _noSuchObject: title: "Nenalezeno" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 43b63c2423ae..fc62a1a92f62 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -2541,9 +2541,6 @@ _contextMenu: _gridComponent: _error: requiredValue: "Dieser Wert ist ein Pflichtfeld" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Fehler" _embedCodeGen: title: "Einbettungscode anpassen" header: "Kopfzeile anzeigen" diff --git a/locales/el-GR.yml b/locales/el-GR.yml index f3b63687f3aa..4657842ca5bf 100644 --- a/locales/el-GR.yml +++ b/locales/el-GR.yml @@ -397,6 +397,3 @@ _moderationLogTypes: suspend: "Αποβολή" _reversi: total: "Σύνολο" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Σφάλμα" diff --git a/locales/en-US.yml b/locales/en-US.yml index f004f69d852f..8ed5aca39e39 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -2749,13 +2749,13 @@ _customEmojisManager: sortOrder: "Sort order" registrationLogs: "Registration log" registrationLogsCaption: "Logs will be displayed when updating or deleting Emojis. They will disappear after updating or deleting them, moving to a new page, or reloading." - alertEmojisRegisterFailedTitle: "Error" alertEmojisRegisterFailedDescription: "Failed to update or delete Emojis. Please check the registration log for details." _logs: showSuccessLogSwitch: "Show success log" failureLogNothing: "There is no failure log." logNothing: "There is no log." _remote: + selectionRowDetail: "Selected row's detail" importSelectionRows: "Import selected rows" importSelectionRangesRows: "Import rows in the selection" importEmojisButton: "Import checked Emojis" @@ -2770,9 +2770,7 @@ _customEmojisManager: markAsDeleteTargetRanges: "Mark rows in the selection as a target to delete" alertUpdateEmojisNothingDescription: "There are no updated Emojis." alertDeleteEmojisNothingDescription: "There are no Emojis to be deleted." - confirmUpdateEmojisTitle: "Confirm" confirmUpdateEmojisDescription: "Update {count} Emoji(s). Are you sure to continue?" - confirmDeleteEmojisTitle: "Confirm" confirmDeleteEmojisDescription: "Delete checked {count} Emoji(s). Are you sure to continue?" dialogSelectRoleTitle: "Search by roll set in Emojis" _register: @@ -2784,11 +2782,8 @@ _customEmojisManager: emojiInputAreaList1: "Drag and drop image files or a directory into this frame" emojiInputAreaList2: "Click this link to select from your computer" emojiInputAreaList3: "Click this link to select from the drive" - confirmRegisterEmojisTitle: "Confirm" confirmRegisterEmojisDescription: "Register the Emojis from the list as new custom Emojis. Are you sure to continue? (To avoid overload, only {count} Emoji(s) can be registered in a single operation)" - confirmClearEmojisTitle: "Confirm" confirmClearEmojisDescription: "Discard the edits and clear the Emojis from the list. Are you sure to continue?" - confirmUploadEmojisTitle: "Confirm" confirmUploadEmojisDescription: "Upload the dragged and dropped {count} file(s) to the drive. Are you sure to continue?" _embedCodeGen: title: "Customize embed code" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 20fd87fe2e5a..58331e9664b1 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -2557,9 +2557,6 @@ _mediaControls: pip: "Picture in Picture" playbackRate: "Velocidad de reproducción" loop: "Reproducción en bucle" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Error" _remoteLookupErrors: _noSuchObject: title: "No se encuentra" diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 4f372bca9894..473774114e2f 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -2361,9 +2361,6 @@ _reversi: lookingForPlayer: "Recherche d'adversaire" _mediaControls: playbackRate: "Vitesse de lecture" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Erreur" _embedCodeGen: title: "Personnaliser le code d'intégration" generateCode: "Générer le code d'intégration" diff --git a/locales/id-ID.yml b/locales/id-ID.yml index 32596f02eea2..9a28cee275ef 100644 --- a/locales/id-ID.yml +++ b/locales/id-ID.yml @@ -2610,9 +2610,6 @@ _mediaControls: pip: "Gambar dalam Gambar" playbackRate: "Kecepatan Pemutaran" loop: "Ulangi Pemutaran" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Galat" _remoteLookupErrors: _noSuchObject: title: "Tidak dapat ditemukan" diff --git a/locales/index.d.ts b/locales/index.d.ts index 83c33b3ebbbe..acadaf0f9710 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -10592,7 +10592,7 @@ export interface Locale extends ILocale { */ "deleteSelectionRows": string; /** - * 選択範囲の行を削除 + * 選択範囲の値をクリア */ "deleteSelectionRanges": string; /** @@ -10603,6 +10603,10 @@ export interface Locale extends ILocale { * 検索条件を詳細に設定します。 */ "searchSettingCaption": string; + /** + * 表示件数 + */ + "searchLimit": string; /** * 並び順 */ @@ -10615,10 +10619,6 @@ export interface Locale extends ILocale { * 絵文字更新・削除時のログが表示されます。更新・削除操作を行ったり、ページを遷移・リロードすると消えます。 */ "registrationLogsCaption": string; - /** - * エラー - */ - "alertEmojisRegisterFailedTitle": string; /** * 絵文字の更新・削除に失敗しました。詳細は登録ログをご確認ください。 */ @@ -10695,21 +10695,30 @@ export interface Locale extends ILocale { */ "alertDeleteEmojisNothingDescription": string; /** - * 確認 + * ページを移動しますか? */ - "confirmUpdateEmojisTitle": string; + "confirmMovePage": string; /** - * {count}個の絵文字を更新します。実行しますか? + * 表示を変更しますか? */ - "confirmUpdateEmojisDescription": ParameterizedString<"count">; + "confirmChangeView": string; /** - * 確認 + * {count}個の絵文字を更新します。実行しますか? */ - "confirmDeleteEmojisTitle": string; + "confirmUpdateEmojisDescription": ParameterizedString<"count">; /** * チェックがつけられた{count}個の絵文字を削除します。実行しますか? */ "confirmDeleteEmojisDescription": ParameterizedString<"count">; + /** + * 今までに加えた変更がすべてリセットされます。 + */ + "confirmResetDescription": string; + /** + * このページの絵文字に変更が加えられています。 + * 保存せずにこのままページを移動すると、このページで加えた変更はすべて破棄されます。 + */ + "confirmMovePageDesciption": string; /** * 絵文字に設定されたロールで検索 */ @@ -10748,26 +10757,14 @@ export interface Locale extends ILocale { * このリンクをクリックしてドライブから選択する */ "emojiInputAreaList3": string; - /** - * 確認 - */ - "confirmRegisterEmojisTitle": string; /** * リストに表示されている絵文字を新たなカスタム絵文字として登録します。よろしいですか?(負荷を避けるため、一度の操作で登録可能な絵文字は{count}件までです) */ "confirmRegisterEmojisDescription": ParameterizedString<"count">; - /** - * 確認 - */ - "confirmClearEmojisTitle": string; /** * 編集内容を破棄し、リストに表示されている絵文字をクリアします。よろしいですか? */ "confirmClearEmojisDescription": string; - /** - * 確認 - */ - "confirmUploadEmojisTitle": string; /** * ドラッグ&ドロップされた{count}個のファイルをドライブにアップロードします。実行しますか? */ diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 461fae0ca62d..370967643671 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -2745,16 +2745,17 @@ _customEmojisManager: deleteSelectionRanges: "Elimina le righe nell'intervallo selezionato" searchSettings: "Impostazioni di ricerca" searchSettingCaption: "Imposta condizioni di ricerca dettagliate." + searchLimit: "Risultati visualizzati" sortOrder: "Ordine" registrationLogs: "Storico della registrazione" registrationLogsCaption: "Lo storico verrà visualizzato in base alla attività sulle emoji. Scompare quando si esegue un'operazione di aggiornamento/eliminazione o si modifica/ricarica la pagina." - alertEmojisRegisterFailedTitle: "Errore" alertEmojisRegisterFailedDescription: "Attenzione, è impossibile modificare la emoji. Si prega di controllare lo storico per ulteriori dettagli." _logs: showSuccessLogSwitch: "Mostra le azioni a buon fine" failureLogNothing: "Non ci sono errori nello storico delle emoji" logNothing: "Lo storico è vuoto." _remote: + selectionRowDetail: "Dettagli della riga selezionata" importSelectionRows: "Importa le righe selezionate" importSelectionRangesRows: "Importa le righe nell'intervallo selezionato" importEmojisButton: "Importa le emoji selezionate" @@ -2769,10 +2770,12 @@ _customEmojisManager: markAsDeleteTargetRanges: "Selezionare le righe nell'intervallo come eliminabili" alertUpdateEmojisNothingDescription: "Non ci sono emoji aggiornate." alertDeleteEmojisNothingDescription: "Non ci sono emoji da eliminare." - confirmUpdateEmojisTitle: "Conferma" + confirmMovePage: "Vuoi davvero spostare la pagina?" + confirmChangeView: "Vuoi davvero cambiare la vista?" confirmUpdateEmojisDescription: "Aggiornamento di {count} emoji. Vuoi davvero continuare?" - confirmDeleteEmojisTitle: "Conferma" confirmDeleteEmojisDescription: "Eliminazione delle {count} emoji selezionate. Vuoi davvero continuare?" + confirmResetDescription: "Verranno ripristinate tutte le modifiche apportate finora." + confirmMovePageDesciption: "Sono state modificate le emoji in questa pagina.\nUscendo senza salvare, tutte le modifiche verranno ignorate." dialogSelectRoleTitle: "Cerca emoji per ruolo" _register: uploadSettingTitle: "Caricamento impostazioni" @@ -2783,11 +2786,8 @@ _customEmojisManager: emojiInputAreaList1: "Trascina una immagine o una cartella in quest'area" emojiInputAreaList2: "Clicca per scegliere file dal tuo dispositivo" emojiInputAreaList3: "Clicca per selezionare dal Drive" - confirmRegisterEmojisTitle: "Conferma" confirmRegisterEmojisDescription: "Registrazione delle emoji elencate come nuove emoji personalizzate. Vuoi davvero procedere? (Per evitare sovraccarichi, puoi registrare al massimo {count} emoji per volta)" - confirmClearEmojisTitle: "Conferma" confirmClearEmojisDescription: "Annullare le modifiche e cancella le emoji nell'elenco. Confermi?" - confirmUploadEmojisTitle: "Conferma" confirmUploadEmojisDescription: "Caricamento sul Drive di {count} file locali. Vuoi davvero procedere?" _embedCodeGen: title: "Personalizza il codice di incorporamento" diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 3caca8eee5da..0519a3560fea 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -2825,13 +2825,13 @@ _customEmojisManager: copySelectionRows: "選択行をコピー" copySelectionRanges: "選択範囲をコピー" deleteSelectionRows: "選択行を削除" - deleteSelectionRanges: "選択範囲の行を削除" + deleteSelectionRanges: "選択範囲の値をクリア" searchSettings: "検索設定" searchSettingCaption: "検索条件を詳細に設定します。" + searchLimit: "表示件数" sortOrder: "並び順" registrationLogs: "登録ログ" registrationLogsCaption: "絵文字更新・削除時のログが表示されます。更新・削除操作を行ったり、ページを遷移・リロードすると消えます。" - alertEmojisRegisterFailedTitle: "エラー" alertEmojisRegisterFailedDescription: "絵文字の更新・削除に失敗しました。詳細は登録ログをご確認ください。" _logs: showSuccessLogSwitch: "成功ログを表示" @@ -2853,10 +2853,12 @@ _customEmojisManager: markAsDeleteTargetRanges: "選択範囲の行を削除対象にする" alertUpdateEmojisNothingDescription: "変更された絵文字はありません。" alertDeleteEmojisNothingDescription: "削除対象の絵文字はありません。" - confirmUpdateEmojisTitle: "確認" + confirmMovePage: "ページを移動しますか?" + confirmChangeView: "表示を変更しますか?" confirmUpdateEmojisDescription: "{count}個の絵文字を更新します。実行しますか?" - confirmDeleteEmojisTitle: "確認" confirmDeleteEmojisDescription: "チェックがつけられた{count}個の絵文字を削除します。実行しますか?" + confirmResetDescription: "今までに加えた変更がすべてリセットされます。" + confirmMovePageDesciption: "このページの絵文字に変更が加えられています。\n保存せずにこのままページを移動すると、このページで加えた変更はすべて破棄されます。" dialogSelectRoleTitle: "絵文字に設定されたロールで検索" _register: uploadSettingTitle: "アップロード設定" @@ -2867,11 +2869,8 @@ _customEmojisManager: emojiInputAreaList1: "この枠に画像ファイルまたはディレクトリをドラッグ&ドロップ" emojiInputAreaList2: "このリンクをクリックしてPCから選択する" emojiInputAreaList3: "このリンクをクリックしてドライブから選択する" - confirmRegisterEmojisTitle: "確認" confirmRegisterEmojisDescription: "リストに表示されている絵文字を新たなカスタム絵文字として登録します。よろしいですか?(負荷を避けるため、一度の操作で登録可能な絵文字は{count}件までです)" - confirmClearEmojisTitle: "確認" confirmClearEmojisDescription: "編集内容を破棄し、リストに表示されている絵文字をクリアします。よろしいですか?" - confirmUploadEmojisTitle: "確認" confirmUploadEmojisDescription: "ドラッグ&ドロップされた{count}個のファイルをドライブにアップロードします。実行しますか?" _embedCodeGen: diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 2aab0d6f48a2..2dd22207912b 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -2721,9 +2721,6 @@ _contextMenu: app: "アプリ" appWithShift: "Shiftキーでアプリ" native: "ブラウザのUI" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "おかしなったで" _embedCodeGen: title: "埋め込みコードをカスタム" header: "ヘッダー出す" diff --git a/locales/ko-GS.yml b/locales/ko-GS.yml index fb4a68777c7e..4b9650b636ea 100644 --- a/locales/ko-GS.yml +++ b/locales/ko-GS.yml @@ -840,9 +840,6 @@ _reversi: black: "꺼멍" white: "허영" total: "합게" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "우짭니꺼" _remoteLookupErrors: _noSuchObject: title: "몬 찾앗십니다" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index a06a74e109ea..93883f31cb30 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -5,6 +5,7 @@ introMisskey: "환영합니다! Misskey는 오픈 소스 분산형 마이크로 poweredByMisskeyDescription: "{name} 서버는 오픈소스 플랫폼 Misskey의 서버 가운데 하나입니다." monthAndDay: "{month}월 {day}일" search: "검색" +reset: "초기화" notifications: "알림" username: "유저명" password: "비밀번호" @@ -48,6 +49,7 @@ pin: "프로필에 고정" unpin: "프로필에서 고정 해제" copyContent: "내용 복사" copyLink: "링크 복사" +copyRemoteLink: "리모트 서버의 링크로 복사하기" copyLinkRenote: "리노트 링크 복사" delete: "삭제" deleteAndEdit: "삭제 후 편집" @@ -686,11 +688,13 @@ testEmail: "이메일 전송 테스트" wordMute: "단어 뮤트" wordMuteDescription: "정해진 단어가 포함된 노트를 최소화 한 상태로 표시합니다. 최소화 된 노트는 클릭해서 표시할 수 있습니다." hardWordMute: "하드 단어 뮤트" +showMutedWord: "뮤트한 단어를 표시하기" hardWordMuteDescription: "정한 단어가 들어간 노트를 숨깁니다. 단어 뮤트와 차이점은 노트가 아예 보이지 않습니다." regexpError: "정규 표현식 오류" regexpErrorDescription: "{tab}단어 뮤트 {line}행의 정규 표현식에 오류가 발생했습니다:" instanceMute: "서버 뮤트" userSaysSomething: "{name}님이 무언가를 말했습니다" +userSaysSomethingAbout: "{name}님이 \"{word}\"를 언급했습니다." makeActive: "활성화" display: "보기" copy: "복사" @@ -1303,6 +1307,8 @@ lockdown: "잠금" pleaseSelectAccount: "계정을 선택해주세요." availableRoles: "사용 가능한 역할" acknowledgeNotesAndEnable: "활성화 하기 전에 주의 사항을 확인했습니다." +federationSpecified: "이 서버는 화이트 리스트 제도로 운영 중 입니다. 정해진 리모트 서버가 아닌 경우 연합되지 않습니다." +federationDisabled: "이 서버는 연합을 하지 않고 있습니다. 리모트 서버 유저와 통신을 할 수 없습니다." _accountSettings: requireSigninToViewContents: "콘텐츠 열람을 위해 로그인을 필수로 설정하기" requireSigninToViewContentsDescription1: "자신이 작성한 모든 노트 등의 콘텐츠를 보기 위해 로그인을 필수로 설정합니다. 크롤러가 정보 수집하는 것을 방지하는 효과를 기대할 수 있습니다." @@ -2723,9 +2729,66 @@ _contextMenu: app: "애플리케이션" appWithShift: "Shift 키로 애플리케이션" native: "브라우저의 UI" +_gridComponent: + _error: + requiredValue: "이 값은 필수 항목입니다." + columnTypeNotSupport: "정규표현 규칙이 type:text인 칼럼만 지원합니다." + patternNotMatch: "이 값은 {pattern} 패턴과 일치하지 않습니다." + notUnique: "이 값은 다른 값과 중복되지 않아야 합니다." +_roleSelectDialog: + notSelected: "선택하지 않았습니다." _customEmojisManager: _gridCommon: - alertEmojisRegisterFailedTitle: "오류" + copySelectionRows: "선택한 행을 복사하기" + copySelectionRanges: "선택범위를 복사하기" + deleteSelectionRows: "선택한 행을 삭제" + deleteSelectionRanges: "선택한 행을 삭제" + searchSettings: "검색 설정" + searchSettingCaption: "고급 검색을 설정합니다." + searchLimit: "표시 건수" + sortOrder: "정렬 순서" + registrationLogs: "등록 로그" + registrationLogsCaption: "이모지를 갱신하거나 삭제할 때 로그가 표시됩니다. 갱신 또는 삭제하거나, 페이지 이동, 새로 고침하면 삭제됩니다." + alertEmojisRegisterFailedDescription: "이모지를 갱신 또는 삭제하지 못했습니다. 자세한 내용은 등록 로그를 확인해주세요." + _logs: + showSuccessLogSwitch: "성공 로그를 표시" + failureLogNothing: "실패 로그가 없습니다." + logNothing: "로그가 없습니다." + _remote: + selectionRowDetail: "선택 행 (상세)" + importSelectionRows: "선택 행을 가져오기" + importSelectionRangesRows: "선택한 범위 안의 행을 가져오기" + importEmojisButton: "선택한 이모지를 가져오기" + confirmImportEmojisTitle: "이모지 가져오기" + confirmImportEmojisDescription: "리모트 서버에서 받아온 이모지 {count}개를 이 서버로 가져옵니다. 이모지의 저작권, 라이선스를 확실히 확인하셨다면 실행해주세요." + _local: + tabTitleList: "등록한 이모지 리스트" + tabTitleRegister: "이모지 등록" + _list: + emojisNothing: "등록한 이모지가 없습니다." + markAsDeleteTargetRows: "선택한 행을 삭제할 대상으로 하기" + markAsDeleteTargetRanges: "선택한 범위의 행을 삭제 대상으로 하기" + alertUpdateEmojisNothingDescription: "변경할 이모지가 없습니다." + alertDeleteEmojisNothingDescription: "삭제 대상의 이모지는 없습니다." + confirmMovePage: "페이지를 이동할까요?" + confirmChangeView: "표시를 바꿀까요?" + confirmUpdateEmojisDescription: "{count}개의 이모지를 갱신합니다. 실행할까요?" + confirmDeleteEmojisDescription: "선택한 이모지 {count}개를 삭제합니다. 실행할까요?" + confirmResetDescription: "지금까지 했던 변경 내용이 모두 초기화됩니다." + confirmMovePageDesciption: "이 페이지의 이모지에 변경이 있습니다.\n저장하지 않은 상태로 페이지를 이동하면, 이 페이지에서 바꾼 변경 내용이 모두 지워집니다." + dialogSelectRoleTitle: "이모지에 설정된 역할을 검색" + _register: + uploadSettingTitle: "업로드 설정" + uploadSettingDescription: "여기서 이모지를 업로드 할 때의 동작을 설정할 수 있습니다." + directoryToCategoryLabel: "디렉토리 이름을 \"category\"로 입력하기" + directoryToCategoryCaption: "디렉토리를 드래그 앤 드롭한 경우, 디렉토리 이름을 \"category\"로 입력합니다." + emojiInputAreaCaption: "이모지를 등록할 방법을 선택해주세요." + emojiInputAreaList1: "이 틀 안에 이미지 파일 또는 디렉토리를 끌어서 가져오기" + emojiInputAreaList2: "이 링크를 클릭해서 PC에서 선택하기" + emojiInputAreaList3: "이 링크를 클릭해서 드라이브에서 선택하기" + confirmRegisterEmojisDescription: "리스트에 표시되어진 이모지를 새로운 커스텀 이모지로 등록합니다. 실행할까요? (부하를 피하기 위해, 한 번에 등록할 수 있는 이모지는 {count}건까지 입니다.)" + confirmClearEmojisDescription: "편집 내용을 지우고, 목록에 표시되어진 이모지를 지웁니다. 실행할까요?" + confirmUploadEmojisDescription: "드래그 앤 드롭한 {count}개의 파일을 드라이브에 업로드 합니다. 실행할까요?" _embedCodeGen: title: "임베디드 코드를 커스터마이즈" header: "해더를 표시" @@ -2759,5 +2822,24 @@ _remoteLookupErrors: _requestFailed: title: "요청을 실패했습니다." description: "해당 서버와 통신을 실패했습니다. 상대방 서버에 접속 불가능한 상태일 수도 있습니다. 또는 잘못된 URI 또는 없는 URI를 입력했는지 확인해보세요." + _responseInvalid: + title: "유효하지 않은 반응입니다." + description: "이 서버와 통신할 수 있지만, 데이터가 올바르지 않습니다." + _responseInvalidIdHostNotMatch: + description: "입력된 URI과 실제 URI가 다릅니다. 제 3자 서버를 통한 리모트 컨텐츠를 조회하는 경우, 원래 서버 측에서 받아올 수 있는 URI를 사용하여 조회하시길 바랍니다." _noSuchObject: title: "찾을 수 없습니다" + description: "요구된 리소스를 찾을 수 없습니다. URI를 다시 한 번 확인해보세요." +_captcha: + verify: "CAPTCHA를 먼저 해결하세요." + testSiteKeyMessage: "사이트 키와 비밀 키에 테스트용 값을 입력하여 미리보기를 확인할 수 있습니다.\n자세한 내용은 아래 페이지를 확인해보세요." + _error: + _requestFailed: + title: "CAPTCHA 요구에 실패했습니다." + text: "잠시 후에 다시 실행하거나, 설정을 다시 한 번 확인해보세요." + _verificationFailed: + title: "CAPTCHA 검증을 실패했습니다." + text: "설정이 올바른지 다시 한 번 확인해보세요." + _unknown: + title: "CAPTCHA 에러" + text: "알 수 없는 에러가 발생했습니다." diff --git a/locales/lo-LA.yml b/locales/lo-LA.yml index 9275e370eb02..2d55c289aa3e 100644 --- a/locales/lo-LA.yml +++ b/locales/lo-LA.yml @@ -474,9 +474,6 @@ _abuseReport: mail: "ອີເມວ" _moderationLogTypes: suspend: "ລະງັບ" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "ຂໍ້ຜິດພາດ" _remoteLookupErrors: _noSuchObject: title: "ບໍ່ພົບ" diff --git a/locales/nl-NL.yml b/locales/nl-NL.yml index 5bfbb954a5d2..685094b4a58a 100644 --- a/locales/nl-NL.yml +++ b/locales/nl-NL.yml @@ -537,9 +537,6 @@ _moderationLogTypes: resetPassword: "Wachtwoord terugzetten" _reversi: total: "Totaal" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Fout" _remoteLookupErrors: _noSuchObject: title: "Niet gevonden" diff --git a/locales/no-NO.yml b/locales/no-NO.yml index 22e8052e3847..474e05ba67c3 100644 --- a/locales/no-NO.yml +++ b/locales/no-NO.yml @@ -727,9 +727,6 @@ _abuseReport: mail: "E-post" _moderationLogTypes: suspend: "Suspender" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Feil" _remoteLookupErrors: _noSuchObject: title: "Ikke funnet" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index e6dc289e4ab8..98465ea82b49 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -1583,9 +1583,6 @@ _moderationLogTypes: resetPassword: "Zresetuj hasło" _reversi: total: "Łącznie" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Błąd" _remoteLookupErrors: _noSuchObject: title: "Nie znaleziono" diff --git a/locales/pt-PT.yml b/locales/pt-PT.yml index 339a2135274d..aae63805c327 100644 --- a/locales/pt-PT.yml +++ b/locales/pt-PT.yml @@ -2721,9 +2721,6 @@ _contextMenu: app: "Aplicativo" appWithShift: "Aplicativo com a tecla shift" native: "Nativo" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Erro" _embedCodeGen: title: "Personalizar código do embed" header: "Exibir cabeçalho" diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml index 29e8addd69f9..07f4c98d969b 100644 --- a/locales/ro-RO.yml +++ b/locales/ro-RO.yml @@ -733,9 +733,6 @@ _moderationLogTypes: resetPassword: "Resetează parola" _reversi: total: "Total" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Eroare" _remoteLookupErrors: _noSuchObject: title: "Nu a fost găsit" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 589155ee4bec..bc1b12895ca9 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -2147,9 +2147,6 @@ _hemisphere: caption: "Используется для некоторых настроек клиента для определения сезона." _reversi: total: "Всего" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Ошибка" _remoteLookupErrors: _noSuchObject: title: "Не найдено" diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml index cf767442b6c9..715ff4c847ce 100644 --- a/locales/sk-SK.yml +++ b/locales/sk-SK.yml @@ -1449,9 +1449,6 @@ _moderationLogTypes: resetPassword: "Resetovať heslo" _reversi: total: "Celkom" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Chyba" _remoteLookupErrors: _noSuchObject: title: "Nenájdené" diff --git a/locales/sv-SE.yml b/locales/sv-SE.yml index edc3fa727928..596160564520 100644 --- a/locales/sv-SE.yml +++ b/locales/sv-SE.yml @@ -705,8 +705,5 @@ _reversi: rules: "Regler" black: "Svart" white: "Vit" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Fel!" _selfXssPrevention: warning: "VARNING" diff --git a/locales/th-TH.yml b/locales/th-TH.yml index 29a9aa732f9e..8e68d6cf49ec 100644 --- a/locales/th-TH.yml +++ b/locales/th-TH.yml @@ -2695,9 +2695,6 @@ _contextMenu: app: "แอปพลิเคชัน" appWithShift: "แอปฟลิเคชันด้วยปุ่มยกแคร่ (Shift)" native: "UI ของเบราว์เซอร์" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "ผิดพลาด!" _embedCodeGen: title: "ปรับแต่งโค้ดฝัง" header: "แสดงส่วนหัว" diff --git a/locales/tr-TR.yml b/locales/tr-TR.yml index 953ed00a4468..2c63f15aa20d 100644 --- a/locales/tr-TR.yml +++ b/locales/tr-TR.yml @@ -460,6 +460,3 @@ _deck: _moderationLogTypes: suspend: "askıya al" resetPassword: "Şifre sıfırlama" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "hata" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index 808ff9217600..6e3e0bb9daa9 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -1624,9 +1624,6 @@ _moderationLogTypes: resetPassword: "Скинути пароль" _reversi: total: "Всього" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Помилка" _remoteLookupErrors: _noSuchObject: title: "Не знайдено" diff --git a/locales/uz-UZ.yml b/locales/uz-UZ.yml index c56e68b488d8..2116d2b86fd9 100644 --- a/locales/uz-UZ.yml +++ b/locales/uz-UZ.yml @@ -1094,9 +1094,6 @@ _moderationLogTypes: resetPassword: "Parolni tiklash" _reversi: total: "Jami" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Xato" _remoteLookupErrors: _noSuchObject: title: "Topilmadi" diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml index ff2a67597832..cded29fdba9b 100644 --- a/locales/vi-VN.yml +++ b/locales/vi-VN.yml @@ -1930,9 +1930,6 @@ _moderationLogTypes: createInvitation: "Tạo lời mời" _reversi: total: "Tổng cộng" -_customEmojisManager: - _gridCommon: - alertEmojisRegisterFailedTitle: "Lỗi" _remoteLookupErrors: _noSuchObject: title: "Không tìm thấy" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index b076d2c7480e..cb691f3b8798 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -2745,16 +2745,17 @@ _customEmojisManager: deleteSelectionRanges: "删除所选范围的行" searchSettings: "搜索设置" searchSettingCaption: "设置详细的搜索条件。" + searchLimit: "显示项目数" sortOrder: "排序方式" registrationLogs: "注册日志" registrationLogsCaption: "将显示更新和删除表情符号的日志。执行更新或删除操作,又或者更改或重新加载页面时会消失。" - alertEmojisRegisterFailedTitle: "错误" alertEmojisRegisterFailedDescription: "更新或删除表情符号失败。详情请确认注册日志。" _logs: showSuccessLogSwitch: "显示成功日志" failureLogNothing: "没有失败日志。" logNothing: "没有日志" _remote: + selectionRowDetail: "所选行的详细信息" importSelectionRows: "导入所选行" importSelectionRangesRows: "导入所选范围的行" importEmojisButton: "导入已选择的表情符号" @@ -2769,10 +2770,12 @@ _customEmojisManager: markAsDeleteTargetRanges: "将所选范围的行标记为删除对象" alertUpdateEmojisNothingDescription: "没有已更改的表情符号。" alertDeleteEmojisNothingDescription: "没有被标记为删除对象的表情符号。" - confirmUpdateEmojisTitle: "确定" + confirmMovePage: "要离开此页吗?" + confirmChangeView: "要更改显示吗?" confirmUpdateEmojisDescription: "要更新 {count} 个表情符号吗?" - confirmDeleteEmojisTitle: "确定" confirmDeleteEmojisDescription: "要删除已选择的 {count} 个表情符号吗?" + confirmResetDescription: "至今为止所做的所有修改都将被重置。" + confirmMovePageDesciption: "此页面上的表情符号已更改。\n若不保存就离开此页,此页面上所有的更改都将丢失。" dialogSelectRoleTitle: "按角色搜索表情符号" _register: uploadSettingTitle: "上传设置" @@ -2783,11 +2786,8 @@ _customEmojisManager: emojiInputAreaList1: "在此区域内拖放图像文件或者目录" emojiInputAreaList2: "单击此链接以从电脑中选择" emojiInputAreaList3: "单击此链接以从网盘中选择" - confirmRegisterEmojisTitle: "确定" confirmRegisterEmojisDescription: "要将列表内显示的表情符号替换为新的自定义表情符号吗?(为降低服务器负载,一次操作最多只能注册 {count} 个表情符号)" - confirmClearEmojisTitle: "确定" confirmClearEmojisDescription: "要放弃编辑并将列表内表示的表情符号清空吗?" - confirmUploadEmojisTitle: "确定" confirmUploadEmojisDescription: "要将拖放的 {count} 个文件上传到网盘上吗?" _embedCodeGen: title: "自定义嵌入代码" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index a0f71b00aee6..159ede135626 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -2745,16 +2745,17 @@ _customEmojisManager: deleteSelectionRanges: "刪除選取範圍的行" searchSettings: "搜尋設定" searchSettingCaption: "詳細設定搜尋條件。" + searchLimit: "顯示的數量" sortOrder: "排序" registrationLogs: "登錄日誌" registrationLogsCaption: "會顯示更新或刪除表情符號時的日誌。進行更新或刪除操作,或切換頁面、重新載入後,日誌將會消失。" - alertEmojisRegisterFailedTitle: "錯誤" alertEmojisRegisterFailedDescription: "更新或刪除表情符號失敗。詳情請查看登錄日誌。" _logs: showSuccessLogSwitch: "顯示成功日誌" failureLogNothing: "沒有失敗的日誌。" logNothing: "沒有日誌。" _remote: + selectionRowDetail: "選取行的詳細資訊" importSelectionRows: "匯入選取的行" importSelectionRangesRows: "匯入選取範圍的行" importEmojisButton: "匯入勾選的表情符號" @@ -2769,10 +2770,12 @@ _customEmojisManager: markAsDeleteTargetRanges: "將選取範圍的行設為刪除對象\n" alertUpdateEmojisNothingDescription: "沒有選取需要變更的表情符號。" alertDeleteEmojisNothingDescription: "沒有選取需要刪除的表情符號。" - confirmUpdateEmojisTitle: "確定" + confirmMovePage: "要移動到其他頁面嗎?" + confirmChangeView: "要更改顯示方式嗎?" confirmUpdateEmojisDescription: "將更新{count}個表情符號。是否執行此操作?" - confirmDeleteEmojisTitle: "確定" confirmDeleteEmojisDescription: "將刪除勾選的{count}個表情符號。是否執行此操作?" + confirmResetDescription: "目前所做的所有變更都會重設。" + confirmMovePageDesciption: "此頁面的表情符號已被更改。 \n若未儲存就直接離開此頁面,則在此頁面進行的所有更改將會被捨棄。" dialogSelectRoleTitle: "根據表情符號設定的角色進行搜尋" _register: uploadSettingTitle: "上傳設定" @@ -2783,11 +2786,8 @@ _customEmojisManager: emojiInputAreaList1: "將圖片檔案或目錄拖放到此框中" emojiInputAreaList2: "點擊此連結從電腦中選擇" emojiInputAreaList3: "點擊此連結從雲端硬碟中選擇" - confirmRegisterEmojisTitle: "確定" confirmRegisterEmojisDescription: "將列表中顯示的表情符號登錄為新的自定表情符號。是否確定?(為避免過高負荷,每次操作最多可登錄{count}個表情符號)" - confirmClearEmojisTitle: "確定" confirmClearEmojisDescription: "放棄編輯內容並清除列表中顯示的表情符號。是否確定?" - confirmUploadEmojisTitle: "確定" confirmUploadEmojisDescription: "將拖放的{count}個檔案上傳到雲端硬碟。是否執行此操作?" _embedCodeGen: title: "自訂嵌入程式碼" diff --git a/package.json b/package.json index 200dbecacbc4..bddb4f85a282 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "misskey", - "version": "2025.1.0-beta.2", + "version": "2025.1.0", "codename": "nasubi", "repository": { "type": "git", diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts index 2b181af6757a..d1fb3858db5c 100644 --- a/packages/backend/src/boot/master.ts +++ b/packages/backend/src/boot/master.ts @@ -92,7 +92,7 @@ export async function masterMain() { } bootLogger.info( - `mode: [disableClustering: ${envOption.disableClustering}, onlyServer: ${envOption.onlyServer}, onlyQueue: ${envOption.onlyQueue}]` + `mode: [disableClustering: ${envOption.disableClustering}, onlyServer: ${envOption.onlyServer}, onlyQueue: ${envOption.onlyQueue}]`, ); if (!envOption.disableClustering) { @@ -107,7 +107,6 @@ export async function masterMain() { await jobQueue(); } else { await server(); - await jobQueue(); } await spawnWorkers(config.clusterLimit); diff --git a/packages/frontend-embed/package.json b/packages/frontend-embed/package.json index a0353b4c7f0f..ab5026ab0d1b 100644 --- a/packages/frontend-embed/package.json +++ b/packages/frontend-embed/package.json @@ -14,7 +14,7 @@ "@rollup/plugin-json": "6.1.0", "@rollup/plugin-replace": "5.0.7", "@rollup/pluginutils": "5.1.3", - "@tabler/icons-webfont": "3.3.0", + "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.29.0-mi.1913+5921534bc.tar.gz", "@twemoji/parser": "15.1.1", "@vitejs/plugin-vue": "5.2.0", "@vue/compiler-sfc": "3.5.12", diff --git a/packages/frontend-shared/build.js b/packages/frontend-shared/build.js index 17b6da8d30a2..994111475792 100644 --- a/packages/frontend-shared/build.js +++ b/packages/frontend-shared/build.js @@ -23,10 +23,14 @@ const options = { sourcemap: 'linked', }; +const args = process.argv.slice(2).map(arg => arg.toLowerCase()); + // js-built配下をすべて削除する -fs.rmSync('./js-built', { recursive: true, force: true }); +if (!args.includes('--no-clean')) { + fs.rmSync('./js-built', { recursive: true, force: true }); +} -if (process.argv.map(arg => arg.toLowerCase()).includes('--watch')) { +if (args.includes('--watch')) { await watchSrc(); } else { await buildSrc(); diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 9ec8bb0a8358..804160baad30 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -24,7 +24,7 @@ "@rollup/plugin-replace": "5.0.7", "@rollup/pluginutils": "5.1.3", "@syuilo/aiscript": "0.19.0", - "@tabler/icons-webfont": "3.3.0", + "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.29.0-mi.1913+5921534bc.tar.gz", "@twemoji/parser": "15.1.1", "@vitejs/plugin-vue": "5.2.0", "@vue/compiler-sfc": "3.5.12", diff --git a/packages/frontend/src/components/MkSortOrderEditor.vue b/packages/frontend/src/components/MkSortOrderEditor.vue index da08f1229716..9decacc5f56e 100644 --- a/packages/frontend/src/components/MkSortOrderEditor.vue +++ b/packages/frontend/src/components/MkSortOrderEditor.vue @@ -12,12 +12,13 @@ SPDX-License-Identifier: AGPL-3.0-only :iconClass="order.direction === '+' ? 'ti ti-arrow-up' : 'ti ti-arrow-down'" :exButtonIconClass="'ti ti-x'" :content="order.key" + :class="$style.sortOrderTag" @click="onToggleSortOrderButtonClicked(order)" @exButtonClick="onRemoveSortOrderButtonClicked(order)" /> - + @@ -109,4 +110,9 @@ function emitOrder(sortOrders: SortOrder[]) { border-radius: 9999px; background-color: var(--MI_THEME-buttonBg); } + +.sortOrderTag { + user-select: none; + cursor: pointer; +} diff --git a/packages/frontend/src/components/MkSuperMenu.vue b/packages/frontend/src/components/MkSuperMenu.vue index 0caaed6f39d0..fa0e40d8f960 100644 --- a/packages/frontend/src/components/MkSuperMenu.vue +++ b/packages/frontend/src/components/MkSuperMenu.vue @@ -47,7 +47,7 @@ export type SuperMenuDef = { active?: boolean; action: (ev: MouseEvent) => void; } | { - type: 'link'; + type?: 'link'; to: string; icon?: string; text: string; diff --git a/packages/frontend/src/components/MkTagItem.vue b/packages/frontend/src/components/MkTagItem.vue index 98f241139295..8b7460f3a35c 100644 --- a/packages/frontend/src/components/MkTagItem.vue +++ b/packages/frontend/src/components/MkTagItem.vue @@ -5,10 +5,10 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/components/global/MkPageHeader.vue b/packages/frontend/src/components/global/MkPageHeader.vue index aa4be69b2cbf..a2e70a5cad67 100644 --- a/packages/frontend/src/components/global/MkPageHeader.vue +++ b/packages/frontend/src/components/global/MkPageHeader.vue @@ -48,13 +48,16 @@ import { scrollToTop } from '@@/js/scroll.js'; import { globalEvents } from '@/events.js'; import { injectReactiveMetadata } from '@/scripts/page-metadata.js'; import { $i, openAccountMenu as openAccountMenu_ } from '@/account.js'; -import { PageHeaderItem } from '@/types/page-header.js'; +import type { PageHeaderItem } from '@/types/page-header.js'; +import type { PageMetadata } from '@/scripts/page-metadata.js'; const props = withDefaults(defineProps<{ + overridePageMetadata?: PageMetadata; tabs?: Tab[]; tab?: string; actions?: PageHeaderItem[] | null; thin?: boolean; + hideTitle?: boolean; displayMyAvatar?: boolean; }>(), { tabs: () => ([] as Tab[]), @@ -64,9 +67,10 @@ const emit = defineEmits<{ (ev: 'update:tab', key: string); }>(); -const pageMetadata = injectReactiveMetadata(); +const injectedPageMetadata = injectReactiveMetadata(); +const pageMetadata = computed(() => props.overridePageMetadata ?? injectedPageMetadata.value); -const hideTitle = inject('shouldOmitHeaderTitle', false); +const hideTitle = computed(() => inject('shouldOmitHeaderTitle', false) || props.hideTitle); const thin_ = props.thin || inject('shouldHeaderThin', false); const el = shallowRef(undefined); @@ -75,7 +79,7 @@ const narrow = ref(false); const hasTabs = computed(() => props.tabs.length > 0); const hasActions = computed(() => props.actions && props.actions.length > 0); const show = computed(() => { - return !hideTitle || hasTabs.value || hasActions.value; + return !hideTitle.value || hasTabs.value || hasActions.value; }); const preventDrag = (ev: TouchEvent) => { diff --git a/packages/frontend/src/components/grid/MkDataCell.vue b/packages/frontend/src/components/grid/MkDataCell.vue index 0ffd42abda30..e473b7c1afef 100644 --- a/packages/frontend/src/components/grid/MkDataCell.vue +++ b/packages/frontend/src/components/grid/MkDataCell.vue @@ -39,13 +39,15 @@ SPDX-License-Identifier: AGPL-3.0-only {{ cell.value }}
- - +
@@ -375,6 +377,31 @@ $cellHeight: 28px; object-fit: cover; } +.bool { + position: relative; + width: 18px; + height: 18px; + background: var(--MI_THEME-panel); + border: solid 2px var(--MI_THEME-divider); + border-radius: 4px; + box-sizing: border-box; + + &.boolTrue { + border-color: var(--MI_THEME-accent); + background: var(--MI_THEME-accent); + + &::before { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: var(--MI_THEME-fgOnAccent); + font-size: 12px; + line-height: 18px; + } + } +} + .editingInput { padding: 0 8px; width: 100%; diff --git a/packages/frontend/src/components/grid/MkGrid.vue b/packages/frontend/src/components/grid/MkGrid.vue index 60738365fb6d..4dbd4ebcae13 100644 --- a/packages/frontend/src/components/grid/MkGrid.vue +++ b/packages/frontend/src/components/grid/MkGrid.vue @@ -7,7 +7,11 @@ SPDX-License-Identifier: AGPL-3.0-only
(); const props = defineProps<{ - settings: GridSetting, - data: DataSource[] + settings: GridSetting; + data: DataSource[]; }>(); +const rootSetting: Required = { + noOverflowStyle: false, + rounded: true, + outerBorder: true, + ...props.settings.root, +}; + // non-reactive // eslint-disable-next-line vue/no-setup-props-reactivity-loss const rowSetting: Required = { @@ -1277,32 +1288,48 @@ onMounted(() => { overflow-x: scroll; // firefoxだとスクロールバーがセルに重なって見づらくなってしまうのでスペースを空けておく padding-bottom: 8px; + + &.noOverflowHandling { + overflow-x: revert; + padding-bottom: 0; + } } diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue index 55f9632ce48e..c4ea3b93e32a 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.local.list.vue @@ -5,137 +5,11 @@ SPDX-License-Identifier: AGPL-3.0-only + + +const headerTabs = computed(() => [{ + key: 'list', + title: i18n.ts._customEmojisManager._local.tabTitleList, +}, { + key: 'register', + title: i18n.ts._customEmojisManager._local.tabTitleRegister, +}]); + diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue similarity index 62% rename from packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue rename to packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue index f75f6c0da5a8..eef55a9f7ed4 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.logs-folder.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.logs.vue @@ -4,47 +4,38 @@ SPDX-License-Identifier: AGPL-3.0-only --> - - diff --git a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue index 14a3b71e5330..eecf8d739099 100644 --- a/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue +++ b/packages/frontend/src/pages/admin/custom-emojis-manager.remote.vue @@ -64,6 +64,8 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+ @@ -74,6 +76,14 @@ SPDX-License-Identifier: AGPL-3.0-only /> + + + +
{{ i18n.ts.search }} @@ -85,7 +95,14 @@ SPDX-License-Identifier: AGPL-3.0-only
- + + + + + +