diff --git a/locales/index.d.ts b/locales/index.d.ts
index 0b1b86d373..1ba4ad79c3 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -4984,6 +4984,10 @@ export interface Locale extends ILocale {
* お問い合わせ
*/
"inquiry": string;
+ /**
+ * {x}から
+ */
+ "fromX": ParameterizedString<"x">;
"_delivery": {
/**
* 配信状態
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index a89cfbd843..da45b0159b 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1242,6 +1242,7 @@ keepOriginalFilenameDescription: "この設定をオフにすると、アップ
noDescription: "説明文はありません"
alwaysConfirmFollow: "フォローの際常に確認する"
inquiry: "お問い合わせ"
+fromX: "{x}から"
_delivery:
status: "配信状態"
diff --git a/packages/frontend/src/components/MkMediaImage.vue b/packages/frontend/src/components/MkMediaImage.vue
index 82f36fe5c4..30e6cf11db 100644
--- a/packages/frontend/src/components/MkMediaImage.vue
+++ b/packages/frontend/src/components/MkMediaImage.vue
@@ -14,6 +14,8 @@ SPDX-License-Identifier: AGPL-3.0-only
title: image.name,
class: $style.imageContainer,
href: image.url,
+ target: '_blank',
+ rel: 'noopener',
style: 'cursor: zoom-in;'
}"
>
diff --git a/packages/frontend/src/components/MkMediaList.vue b/packages/frontend/src/components/MkMediaList.vue
index b1321a8ef9..4909842db6 100644
--- a/packages/frontend/src/components/MkMediaList.vue
+++ b/packages/frontend/src/components/MkMediaList.vue
@@ -5,7 +5,10 @@ SPDX-License-Identifier: AGPL-3.0-only