some i18n translations

This commit is contained in:
pa
2025-11-15 11:16:38 +09:00
committed by Natsumi
parent d878bc57c4
commit 40851d9d08
4 changed files with 54 additions and 18 deletions
+8
View File
@@ -58,6 +58,14 @@
"Bio": "Bio" "Bio": "Bio"
} }
}, },
"friends_locations": {
"online_friends": "Online Friends",
"spacing": "Spacing",
"scale": "Scale",
"separate_same_instance_friends": "Separate Same Instance Friends",
"no_matching_friends": "No Matching Friends",
"loading_more": "Loading more..."
},
"game_log": { "game_log": {
"filter_placeholder": "Filter", "filter_placeholder": "Filter",
"search_placeholder": "Search", "search_placeholder": "Search",
+20 -2
View File
@@ -1,12 +1,14 @@
{ {
"language": "日本語 (ja)", "language": "日本語 (ja)",
"translator": "Assault1892, Yuu198, paralleltree, kazu3jp, Cayahuanca, ecto0310", "translator": "Assault1892, Yuu198, paralleltree, kazu3jp, Cayahuanca, ecto0310, Map1en",
"nav_tooltip": { "nav_tooltip": {
"feed": "フィード", "feed": "フィード",
"friends_locations": "フレンドの現在地",
"game_log": "ゲームログ", "game_log": "ゲームログ",
"player_list": "プレイヤーリスト", "player_list": "プレイヤーリスト",
"search": "検索", "search": "検索",
"favorites": "お気に入り", "favorites": "お気に入り",
"social": "ソーシャル",
"friend_log": "フレンドログ", "friend_log": "フレンドログ",
"moderation": "モデレーション", "moderation": "モデレーション",
"notification": "通知", "notification": "通知",
@@ -14,7 +16,16 @@
"charts": "チャート", "charts": "チャート",
"tools": "ツール", "tools": "ツール",
"profile": "プロフィール", "profile": "プロフィール",
"settings": "設定" "settings": "設定",
"help_support": "ヘルプ & サポート"
},
"nav_menu": {
"resources": "お役立ちリンク",
"wiki": "ウィキ",
"get_help": "困った時はこちら",
"github": "バグ報告・提案 (GitHub)",
"discord": "みんなと話そう (Discord)",
"whats_new": "新機能(更新履歴)"
}, },
"view": { "view": {
"login": { "login": {
@@ -46,6 +57,13 @@
"Bio": "自己紹介" "Bio": "自己紹介"
} }
}, },
"friends_locations": {
"loading_more": "読み込み中...",
"no_matching_friends": "該当するフレンドはいません",
"scale": "サイズ",
"spacing": "表示間隔",
"separate_same_instance_friends": "同じインスタンスのフレンドを分ける"
},
"game_log": { "game_log": {
"filter_placeholder": "フィルター", "filter_placeholder": "フィルター",
"search_placeholder": "検索", "search_placeholder": "検索",
+8
View File
@@ -58,6 +58,14 @@
"Bio": "简介变更" "Bio": "简介变更"
} }
}, },
"friends_locations": {
"online_friends": "在线好友",
"scale": "缩放",
"spacing": "卡片间距",
"separate_same_instance_friends": "分开显示处于同一房间的好友",
"no_matching_friends": "没有找到匹配的好友",
"loading_more": "加载中..."
},
"game_log": { "game_log": {
"filter_placeholder": "筛选游戏日志", "filter_placeholder": "筛选游戏日志",
"search_placeholder": "搜索游戏日志", "search_placeholder": "搜索游戏日志",
+17 -15
View File
@@ -9,7 +9,7 @@
:prefix-icon="Search" :prefix-icon="Search"
clearable clearable
placeholder="Search Friend"></el-input> placeholder="Search Friend"></el-input>
<el-popover placement="bottom" trigger="click" :width="310"> <el-popover placement="bottom" trigger="click" :width="350">
<template #reference> <template #reference>
<div> <div>
<el-tooltip :content="t('view.charts.instance_activity.settings.header')" placement="top"> <el-tooltip :content="t('view.charts.instance_activity.settings.header')" placement="top">
@@ -20,11 +20,13 @@
</div> </div>
</template> </template>
<div style="display: flex; justify-content: space-between; align-items: center"> <div style="display: flex; justify-content: space-between; align-items: center">
<span class="friend-view__settings-label">Separate Same Instance</span> <span class="friend-view__settings-label">{{
t('view.friends_locations.separate_same_instance_friends')
}}</span>
<el-switch v-model="showSameInstance" /> <el-switch v-model="showSameInstance" />
</div> </div>
<div class="friend-view__settings-row"> <div class="friend-view__settings-row">
<span class="friend-view__settings-label">Scale</span> <span class="friend-view__settings-label">{{ t('view.friends_locations.scale') }}</span>
<div class="friend-view__scale-control"> <div class="friend-view__scale-control">
<span class="friend-view__scale-value">{{ cardScalePercentLabel }}&nbsp;</span> <span class="friend-view__scale-value">{{ cardScalePercentLabel }}&nbsp;</span>
<el-slider <el-slider
@@ -37,7 +39,7 @@
</div> </div>
</div> </div>
<div class="friend-view__settings-row"> <div class="friend-view__settings-row">
<span class="friend-view__settings-label">Spacing</span> <span class="friend-view__settings-label">{{ t('view.friends_locations.spacing') }}</span>
<div class="friend-view__scale-control"> <div class="friend-view__scale-control">
<span class="friend-view__scale-value">{{ cardSpacingPercentLabel }}&nbsp;</span> <span class="friend-view__scale-value">{{ cardSpacingPercentLabel }}&nbsp;</span>
<el-slider <el-slider
@@ -53,7 +55,7 @@
</div> </div>
</div> </div>
<div v-else class="friend-view__toolbar friend-view__toolbar--loading"> <div v-else class="friend-view__toolbar friend-view__toolbar--loading">
<span class="friend-view__loading-text">Loading preferences...</span> <span class="friend-view__loading-text">{{ t('view.friends_locations.loading_more') }}</span>
</div> </div>
<el-scrollbar v-if="settingsReady" ref="scrollbarRef" class="friend-view__scroll" @scroll="handleScroll"> <el-scrollbar v-if="settingsReady" ref="scrollbarRef" class="friend-view__scroll" @scroll="handleScroll">
<template v-if="isSameInstanceView"> <template v-if="isSameInstanceView">
@@ -84,7 +86,7 @@
</div> </div>
</section> </section>
</div> </div>
<div v-else class="friend-view__empty">No matching friends</div> <div v-else class="friend-view__empty">{{ t('view.friends_locations.no_matching_friends') }}</div>
</template> </template>
<template v-else-if="shouldMergeSameInstance"> <template v-else-if="shouldMergeSameInstance">
<div v-if="mergedSameInstanceGroups.length" class="friend-view__instances"> <div v-if="mergedSameInstanceGroups.length" class="friend-view__instances">
@@ -116,7 +118,7 @@
</section> </section>
</div> </div>
<div v-if="mergedSameInstanceGroups.length && mergedOnlineEntries.length" class="friend-view__divider"> <div v-if="mergedSameInstanceGroups.length && mergedOnlineEntries.length" class="friend-view__divider">
<span class="friend-view__divider-text">Online Friends</span> <span class="friend-view__divider-text"></span>
</div> </div>
<div <div
v-if="mergedOnlineEntries.length" v-if="mergedOnlineEntries.length"
@@ -130,7 +132,7 @@
:card-spacing="cardSpacing" /> :card-spacing="cardSpacing" />
</div> </div>
<div v-if="!mergedSameInstanceGroups.length && !mergedOnlineEntries.length" class="friend-view__empty"> <div v-if="!mergedSameInstanceGroups.length && !mergedOnlineEntries.length" class="friend-view__empty">
No matching friends {{ t('view.friends_locations.no_matching_friends') }}
</div> </div>
</template> </template>
<template v-else> <template v-else>
@@ -142,13 +144,13 @@
:card-scale="cardScale" :card-scale="cardScale"
:card-spacing="cardSpacing" /> :card-spacing="cardSpacing" />
</div> </div>
<div v-else class="friend-view__empty">No matching friends</div> <div v-else class="friend-view__empty">{{ t('view.friends_locations.no_matching_friends') }}</div>
</template> </template>
<div v-if="isLoadingMore" class="friend-view__loading"> <div v-if="isLoadingMore" class="friend-view__loading">
<el-icon class="friend-view__loading-icon" :size="18"> <el-icon class="friend-view__loading-icon" :size="18">
<Loading /> <Loading />
</el-icon> </el-icon>
<span>Loading more...</span> <span>{{ t('view.friends_locations.loading_more') }}</span>
</div> </div>
</el-scrollbar> </el-scrollbar>
<div v-else class="friend-view__initial-loading"> <div v-else class="friend-view__initial-loading">
@@ -178,11 +180,11 @@
storeToRefs(friendStore); storeToRefs(friendStore);
const SEGMENTED_BASE_OPTIONS = [ const SEGMENTED_BASE_OPTIONS = [
{ label: 'Online', value: 'online' }, { label: t('side_panel.online'), value: 'online' },
{ label: 'Favorite', value: 'favorite' }, { label: t('side_panel.favorite'), value: 'favorite' },
{ label: 'Same Instance', value: 'same-instance' }, { label: t('side_panel.same_instance'), value: 'same-instance' },
{ label: 'Active', value: 'active' }, { label: t('side_panel.active'), value: 'active' },
{ label: 'Offline', value: 'offline' } { label: t('side_panel.offline'), value: 'offline' }
]; ];
const segmentedOptions = computed(() => const segmentedOptions = computed(() =>