diff --git a/ui/v2.5/src/components/Studios/StudioCard.tsx b/ui/v2.5/src/components/Studios/StudioCard.tsx
index 53049dacb..fc915e156 100644
--- a/ui/v2.5/src/components/Studios/StudioCard.tsx
+++ b/ui/v2.5/src/components/Studios/StudioCard.tsx
@@ -4,6 +4,7 @@ import * as GQL from "src/core/generated-graphql";
import { NavUtils } from "src/utils";
import { GridCard } from "src/components/Shared";
import { ButtonGroup } from "react-bootstrap";
+import { FormattedMessage } from "react-intl";
import { PopoverCountButton } from "../Shared/PopoverCountButton";
import { RatingBanner } from "../Shared/RatingBanner";
@@ -22,11 +23,16 @@ function maybeRenderParent(
if (!hideParent && studio.parent_studio) {
return (
- Part of
-
- {studio.parent_studio.name}
-
- .
+
+ {studio.parent_studio.name}
+
+ ),
+ }}
+ />
);
}
@@ -36,11 +42,16 @@ function maybeRenderChildren(studio: GQL.StudioDataFragment) {
if (studio.child_studios.length > 0) {
return (
- Parent of
-
- {studio.child_studios.length} studios
-
- .
+
+ {studio.child_studios.length} studios
+
+ ),
+ }}
+ />
);
}
diff --git a/ui/v2.5/src/components/Tags/TagCard.tsx b/ui/v2.5/src/components/Tags/TagCard.tsx
index 6a44ee8c6..8daa7bfcf 100644
--- a/ui/v2.5/src/components/Tags/TagCard.tsx
+++ b/ui/v2.5/src/components/Tags/TagCard.tsx
@@ -28,9 +28,12 @@ export const TagCard: React.FC = ({
const parent = tag.parents[0];
return (
-
-
- {parent.name}
+ {parent.name},
+ }}
+ />
);
}
@@ -38,33 +41,43 @@ export const TagCard: React.FC = ({
if (tag.parents.length > 1) {
return (
-
-
-
- {tag.parents.length}
-
-
+
+ {tag.parents.length}
+
+
+ ),
+ }}
+ />
);
}
}
function maybeRenderChildren() {
- if (tag.children.length > 1) {
+ if (tag.children.length > 0) {
return (
-
-
-
- {tag.children.length}
-
-
+
+ {tag.children.length}
+
+
+ ),
+ }}
+ />
);
}
diff --git a/ui/v2.5/src/locales/en-GB.json b/ui/v2.5/src/locales/en-GB.json
index 3e939095b..921eac53c 100644
--- a/ui/v2.5/src/locales/en-GB.json
+++ b/ui/v2.5/src/locales/en-GB.json
@@ -629,10 +629,11 @@
"next": "Next",
"previous": "Previous"
},
- "parent_of": "Parent of",
+ "parent_of": "Parent of {children}",
"parent_studios": "Parent Studios",
"parent_tags": "Parent Tags",
"parent_tag_count": "Parent Tag Count",
+ "part_of": "Part of {parent}",
"path": "Path",
"performer": "Performer",
"performer_count": "Performer Count",
@@ -659,7 +660,7 @@
},
"seconds": "Seconds",
"settings": "Settings",
- "sub_tag_of": "Sub-tag of",
+ "sub_tag_of": "Sub-tag of {parent}",
"stash_id": "Stash ID",
"status": "Status: {statusText}",
"studio": "Studio",
diff --git a/ui/v2.5/src/locales/zh-TW.json b/ui/v2.5/src/locales/zh-TW.json
index f9d5fdab4..a864caeae 100644
--- a/ui/v2.5/src/locales/zh-TW.json
+++ b/ui/v2.5/src/locales/zh-TW.json
@@ -84,7 +84,9 @@
"select_folders": "選擇資料夾",
"browse_for_image": "選擇圖像…",
"open_random": "隨機開啟",
- "scrape_query": "爬蟲搜尋關鍵字"
+ "scrape_query": "爬蟲搜尋關鍵字",
+ "stop": "停止",
+ "scrape_scene_fragment": "部分爬取"
},
"actions_name": "動作",
"age": "年齡",
@@ -118,7 +120,8 @@
"set_tag_label": "標籤設定",
"show_male_desc": "選擇搜尋時,是否要取得男優資訊。",
"show_male_label": "顯示男優",
- "query_mode_metadata": "Metadata"
+ "query_mode_metadata": "Metadata",
+ "source": "來源"
},
"noun_query": "關鍵字",
"results": {
@@ -130,13 +133,15 @@
"match_failed_no_result": "未找到結果",
"match_success": "已成功標記短片",
"duration_off": "片長差至少 {number} 秒",
- "duration_unknown": "未知片長"
+ "duration_unknown": "未知片長",
+ "unnamed": "未命名"
},
"verb_match_fp": "特徵碼辨別",
"verb_matched": "符合",
"verb_submit_fp": "{fpCount, plural, other{提交 # 個特徵碼}}",
"verb_toggle_config": "{toggle}{configuration}",
- "verb_toggle_unmatched": "{toggle}不符合已知特徵碼的短片"
+ "verb_toggle_unmatched": "{toggle}不符合已知特徵碼的短片",
+ "verb_scrape_all": "爬取所有"
},
"config": {
"about": {
@@ -192,7 +197,9 @@
"password_desc": "使用 Stash 時所需的密碼,留空以關閉身份驗證",
"stash-box_integration": "整合 Stash-box",
"username": "用戶名",
- "username_desc": "使用 Stash 時所需的用戶名,留空以關閉身份驗證"
+ "username_desc": "使用 Stash 時所需的用戶名,留空以關閉身份驗證",
+ "trusted_proxies": "已信任代理伺服器",
+ "trusted_proxies_desc": "允許代理 stash 流量的代理伺服器列表。留空以允許內網。"
},
"cache_location": "快取的檔案位置",
"cache_path_head": "快取路徑",
@@ -238,7 +245,11 @@
"video_ext_head": "影片副檔名",
"video_head": "影片設定",
"include_audio_desc": "產生預覽檔案時,順便產生音訊預覽。",
- "include_audio_head": "包含音訊"
+ "include_audio_head": "包含音訊",
+ "metadata_path": {
+ "heading": "Metadata 路徑",
+ "description": "進行完整匯出或匯入時所使用的檔案位置"
+ }
},
"logs": {
"log_level": "日誌級別"
@@ -287,7 +298,8 @@
"only_dry_run": "僅模擬作業,不要刪除任何東西",
"plugin_tasks": "插件排程",
"scan_for_content_desc": "掃描新內容,並將其新增到資料庫中。",
- "set_name_date_details_from_metadata_if_present": "使用多媒體檔案中內建的標題、日期、詳細資訊(如果適用的話)"
+ "set_name_date_details_from_metadata_if_present": "使用多媒體檔案中內建的標題、日期、詳細資訊(如果適用的話)",
+ "generate_thumbnails_during_scan": "掃描圖片時,順便產生縮圖。"
},
"tools": {
"scene_duplicate_checker": "短片相近性檢查工具",
@@ -369,6 +381,25 @@
"heading": "自訂演員圖像路徑"
}
}
+ },
+ "funscript_offset": {
+ "description": "互動式腳本的時間偏移量 (毫秒)。",
+ "heading": "Funscript 偏移量 (毫秒)"
+ },
+ "images": {
+ "options": {
+ "write_image_thumbnails": {
+ "heading": "建立圖片縮圖",
+ "description": "建立縮圖時,將檔案寫至磁碟中"
+ }
+ }
+ },
+ "editing": {
+ "heading": "編輯",
+ "disable_dropdown_create": {
+ "description": "關閉下拉選單建立物件功能",
+ "heading": "關閉下拉選單建立"
+ }
}
},
"plugins": {
@@ -440,7 +471,9 @@
"preview_seg_duration_head": "預覽片段長度",
"sprites": "時間軸預覽(用於短片中時間軸的預覽圖)",
"transcodes": "轉碼(將不支援的影片格式轉換成 MP4)",
- "video_previews": "影片預覽(當滑鼠移至任一短片上時所播放的預覽短片)"
+ "video_previews": "影片預覽(當滑鼠移至任一短片上時所播放的預覽短片)",
+ "marker_image_previews": "章節預覽(動態 WebP 預覽,僅當預覽類型設置為『動圖』時才需要)",
+ "marker_screenshots": "章節截圖(靜態 JPG 預覽,僅當預覽類型設置為『靜態』時才需要)"
},
"scrape_entity_title": "{entity_type}爬取結果",
"scrape_results_existing": "現有資訊",
@@ -453,7 +486,28 @@
},
"overwrite_filter_confirm": "您確定要覆蓋現有的條件 {entityName} 嗎?",
"scenes_found": "已找到 {count} 個短片",
- "scrape_entity_query": "{entity_type}爬蟲搜尋"
+ "scrape_entity_query": "{entity_type}爬蟲搜尋",
+ "lightbox": {
+ "delay": "延遲 (秒)",
+ "display_mode": {
+ "fit_horizontally": "橫向置放",
+ "label": "顯示模式",
+ "fit_to_screen": "適應螢幕大小",
+ "original": "原始"
+ },
+ "options": "選項",
+ "reset_zoom_on_nav": "當更換圖片時,重置縮放大小",
+ "scale_up": {
+ "label": "縮放適應",
+ "description": "將較小的圖片放大,以填滿整個畫面"
+ },
+ "scroll_mode": {
+ "description": "按住 Shift 以暫時使用其他模式。",
+ "pan_y": "Y 軸滑動",
+ "label": "滑動模式",
+ "zoom": "放大"
+ }
+ }
},
"dimensions": "解析度",
"director": "導演",
@@ -636,5 +690,11 @@
"include_sub_studios": "包含子工作室",
"include_sub_tags": "包含子標籤",
"parent_tags": "母標籤",
- "sub_tags": "子標籤"
+ "sub_tags": "子標籤",
+ "include_parent_tags": "包含母標籤",
+ "parent_tag_count": "母標籤數量",
+ "sub_tag_count": "子標籤數量",
+ "parent_of": "{children} 的母物件",
+ "sub_tag_of": "{parent} 的子標籤",
+ "part_of": "{parent} 的一部分"
}