diff --git a/locales/index.d.ts b/locales/index.d.ts
index 37028d0b65..0fcfcee7e5 100644
--- a/locales/index.d.ts
+++ b/locales/index.d.ts
@@ -5614,6 +5614,12 @@ export interface Locale extends ILocale {
* ナビゲーションバーに副ボタンを表示
*/
"showNavbarSubButtons": string;
+ "_chat": {
+ /**
+ * 送信者の名前を表示
+ */
+ "showSenderName": string;
+ };
};
"_preferencesProfile": {
/**
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index a3660b914a..e770d04768 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -1405,6 +1405,9 @@ _settings:
makeEveryTextElementsSelectable_description: "有効にすると、一部のシチュエーションでのユーザビリティが低下する場合があります。"
showNavbarSubButtons: "ナビゲーションバーに副ボタンを表示"
+ _chat:
+ showSenderName: "送信者の名前を表示"
+
_preferencesProfile:
profileName: "プロファイル名"
profileNameDescription: "このデバイスを識別する名前を設定してください。"
diff --git a/packages/frontend/src/navbar.ts b/packages/frontend/src/navbar.ts
index 894df83721..82e59bc7d6 100644
--- a/packages/frontend/src/navbar.ts
+++ b/packages/frontend/src/navbar.ts
@@ -112,7 +112,7 @@ export const navbarItemDef = reactive({
},
chat: {
title: i18n.ts.chat,
- icon: 'ti ti-message',
+ icon: 'ti ti-messages',
to: '/chat',
indicated: computed(() => $i != null && $i.hasUnreadChatMessages),
},
diff --git a/packages/frontend/src/pages/chat/XMessage.vue b/packages/frontend/src/pages/chat/XMessage.vue
index 1e7f8e20ea..bc348c6fb1 100644
--- a/packages/frontend/src/pages/chat/XMessage.vue
+++ b/packages/frontend/src/pages/chat/XMessage.vue
@@ -7,6 +7,7 @@ SPDX-License-Identifier: AGPL-3.0-only
+
@@ -191,6 +192,10 @@ function showMenu(ev: MouseEvent) {
margin: 0 12px;
}
+.header {
+ font-size: 80%;
+}
+
.content {
overflow: clip;
overflow-wrap: break-word;
diff --git a/packages/frontend/src/pages/chat/home.vue b/packages/frontend/src/pages/chat/home.vue
index c2b272a42d..9bb7235a64 100644
--- a/packages/frontend/src/pages/chat/home.vue
+++ b/packages/frontend/src/pages/chat/home.vue
@@ -52,7 +52,7 @@ const headerTabs = computed(() => [{
definePage(() => ({
title: i18n.ts.chat + ' (beta)',
- icon: 'ti ti-message',
+ icon: 'ti ti-messages',
}));
diff --git a/packages/frontend/src/pages/settings/preferences.vue b/packages/frontend/src/pages/settings/preferences.vue
index f461ee9bc9..3a7d2cd490 100644
--- a/packages/frontend/src/pages/settings/preferences.vue
+++ b/packages/frontend/src/pages/settings/preferences.vue
@@ -429,6 +429,23 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
+ {{ i18n.ts.chat }}
+
+
+
+
+
+
+ {{ i18n.ts._settings._chat.showSenderName }}
+
+
+
+
+
+
+
{{ i18n.ts.other }}
@@ -609,6 +626,7 @@ const emojiStyle = prefer.model('emojiStyle');
const useBlurEffectForModal = prefer.model('useBlurEffectForModal');
const useBlurEffect = prefer.model('useBlurEffect');
const defaultFollowWithReplies = prefer.model('defaultFollowWithReplies');
+const chatShowSenderName = prefer.model('chat.showSenderName');
watch(lang, () => {
miLocalStorage.setItem('lang', lang.value as string);
diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts
index 310c3856eb..801bb29e8c 100644
--- a/packages/frontend/src/preferences/def.ts
+++ b/packages/frontend/src/preferences/def.ts
@@ -374,6 +374,10 @@ export const PREF_DEF = {
default: 'left' as 'left' | 'right' | 'center',
},
+ 'chat.showSenderName': {
+ default: false,
+ },
+
'game.dropAndFusion': {
default: {
bgmVolume: 0.25,
diff --git a/packages/frontend/src/utility/autogen/settings-search-index.ts b/packages/frontend/src/utility/autogen/settings-search-index.ts
index 316319bbf0..1e41dffe22 100644
--- a/packages/frontend/src/utility/autogen/settings-search-index.ts
+++ b/packages/frontend/src/utility/autogen/settings-search-index.ts
@@ -487,47 +487,59 @@ export const searchIndexes: SearchIndexItem[] = [
id: 'vPQPvmntL',
children: [
{
- id: 'zoogNoJEO',
+ id: 'zZxyXHk3A',
+ label: i18n.ts._settings._chat.showSenderName,
+ keywords: ['show', 'sender', 'name'],
+ },
+ ],
+ label: i18n.ts.chat,
+ keywords: ['chat', 'messaging'],
+ },
+ {
+ id: 'sCscGhMmH',
+ children: [
+ {
+ id: 'dLkRNHn3k',
label: i18n.ts.squareAvatars,
keywords: ['avatar', 'icon', 'square'],
},
{
- id: '7ix3kvMyU',
+ id: 'BvooTWFW5',
label: i18n.ts.seasonalScreenEffect,
keywords: ['effect', 'show'],
},
{
- id: '6RxgjmMLN',
+ id: 'yzbghkAq0',
label: i18n.ts.openImageInNewTab,
keywords: ['image', 'photo', 'picture', 'media', 'thumbnail', 'new', 'tab'],
},
{
- id: 'alM3BcFzs',
+ id: 'aSbKFHbOy',
label: i18n.ts.withRepliesByDefaultForNewlyFollowed,
keywords: ['follow', 'replies'],
},
{
- id: 'yzbghkAq0',
+ id: '89bn97UgY',
label: i18n.ts.whenServerDisconnected,
keywords: ['server', 'disconnect', 'reconnect', 'reload', 'streaming'],
},
{
- id: '4SPd8QhYx',
+ id: 'hgf3rgdA6',
label: i18n.ts.numberOfPageCache,
keywords: ['cache', 'page'],
},
{
- id: 'BoNg4LwOq',
+ id: '6FVdHPhhv',
label: i18n.ts.forceShowAds,
keywords: ['ad', 'show'],
},
{
- id: 'hgf3rgdA6',
+ id: '5Bx5DAST1',
label: i18n.ts.hemisphere,
keywords: [],
},
{
- id: 'nnj4DkjhP',
+ id: 'wv7Cwiwb1',
label: i18n.ts.additionalEmojiDictionary,
keywords: ['emoji', 'dictionary', 'additional', 'extra'],
},