mirror of
https://github.com/stashapp/stash.git
synced 2025-12-08 09:23:38 +01:00
Update zh-tw for Auto Identifcation Feature (#1923)
* Add localization strings for the new auto identification feature
This commit is contained in:
parent
c6a326ca64
commit
07a1cdd9f7
6 changed files with 77 additions and 27 deletions
|
|
@ -77,12 +77,12 @@ const FieldOptionsEditor: React.FC<IFieldOptionsEditor> = ({
|
||||||
|
|
||||||
if (!editing) {
|
if (!editing) {
|
||||||
if (strategy === undefined) {
|
if (strategy === undefined) {
|
||||||
return intl.formatMessage({ id: "use_default" });
|
return intl.formatMessage({ id: "actions.use_default" });
|
||||||
}
|
}
|
||||||
|
|
||||||
const f = strategies.find((s) => s[1] === strategy);
|
const f = strategies.find((s) => s[1] === strategy);
|
||||||
return intl.formatMessage({
|
return intl.formatMessage({
|
||||||
id: `config.tasks.identify.field_strategies.${f![0].toLowerCase()}`,
|
id: `actions.${f![0].toLowerCase()}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,7 +104,7 @@ const FieldOptionsEditor: React.FC<IFieldOptionsEditor> = ({
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
disabled={!editing}
|
disabled={!editing}
|
||||||
label={intl.formatMessage({ id: "use_default" })}
|
label={intl.formatMessage({ id: "actions.use_default" })}
|
||||||
/>
|
/>
|
||||||
) : undefined}
|
) : undefined}
|
||||||
{strategies.map((f) => (
|
{strategies.map((f) => (
|
||||||
|
|
@ -121,7 +121,7 @@ const FieldOptionsEditor: React.FC<IFieldOptionsEditor> = ({
|
||||||
}
|
}
|
||||||
disabled={!editing}
|
disabled={!editing}
|
||||||
label={intl.formatMessage({
|
label={intl.formatMessage({
|
||||||
id: `config.tasks.identify.field_strategies.${f[0].toLowerCase()}`,
|
id: `actions.${f[0].toLowerCase()}`,
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
@ -145,7 +145,7 @@ const FieldOptionsEditor: React.FC<IFieldOptionsEditor> = ({
|
||||||
|
|
||||||
if (!editing) {
|
if (!editing) {
|
||||||
if (value === undefined && allowSetDefault) {
|
if (value === undefined && allowSetDefault) {
|
||||||
return intl.formatMessage({ id: "use_default" });
|
return intl.formatMessage({ id: "actions.use_default" });
|
||||||
}
|
}
|
||||||
if (value) {
|
if (value) {
|
||||||
return <Icon icon="check" className="text-success" />;
|
return <Icon icon="check" className="text-success" />;
|
||||||
|
|
@ -311,9 +311,15 @@ export const FieldOptionsList: React.FC<IFieldOptionsList> = ({
|
||||||
<Table responsive className="field-options-table">
|
<Table responsive className="field-options-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th className="w-25">Field</th>
|
<th className="w-25">
|
||||||
<th className="w-25">Strategy</th>
|
<FormattedMessage id="config.tasks.identify.field" />
|
||||||
<th className="w-25">Create missing</th>
|
</th>
|
||||||
|
<th className="w-25">
|
||||||
|
<FormattedMessage id="config.tasks.identify.strategy" />
|
||||||
|
</th>
|
||||||
|
<th className="w-25">
|
||||||
|
<FormattedMessage id="config.tasks.identify.create_missing" />
|
||||||
|
</th>
|
||||||
{/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}
|
{/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}
|
||||||
<th className="w-25" />
|
<th className="w-25" />
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ export const SourcesEditor: React.FC<ISourceEditor> = ({
|
||||||
{
|
{
|
||||||
count: 1,
|
count: 1,
|
||||||
singularEntity: source?.displayName,
|
singularEntity: source?.displayName,
|
||||||
|
pluralEntity: source?.displayName,
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
accept={{
|
accept={{
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ export const ThreeStateBoolean: React.FC<IThreeStateBoolean> = ({
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
<span>
|
<span>
|
||||||
{intl.formatMessage({ id: "use_default" })}
|
{intl.formatMessage({ id: "actions.use_default" })}
|
||||||
{defaultVal}
|
{defaultVal}
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ export const DeleteGalleriesDialog: React.FC<IDeleteGalleryDialogProps> = (
|
||||||
id="delete-file"
|
id="delete-file"
|
||||||
checked={deleteFile}
|
checked={deleteFile}
|
||||||
label={intl.formatMessage({
|
label={intl.formatMessage({
|
||||||
id: "actions.delete_gallery_files",
|
id: "dialogs.delete_gallery_files",
|
||||||
})}
|
})}
|
||||||
onChange={() => setDeleteFile(!deleteFile)}
|
onChange={() => setDeleteFile(!deleteFile)}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
"create_marker": "Create Marker",
|
"create_marker": "Create Marker",
|
||||||
"created_entity": "Created {entity_type}: {entity_name}",
|
"created_entity": "Created {entity_type}: {entity_name}",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"delete_gallery_files": "Delete gallery folder/zip file and any images not attached to any other gallery.",
|
|
||||||
"delete_entity": "Delete {entityType}",
|
"delete_entity": "Delete {entityType}",
|
||||||
"delete_file": "Delete file",
|
"delete_file": "Delete file",
|
||||||
"delete_generated_supporting_files": "Delete generated supporting files",
|
"delete_generated_supporting_files": "Delete generated supporting files",
|
||||||
|
|
@ -94,7 +93,9 @@
|
||||||
"open_random": "Open Random",
|
"open_random": "Open Random",
|
||||||
"next_action": "Next",
|
"next_action": "Next",
|
||||||
"previous_action": "Back",
|
"previous_action": "Back",
|
||||||
"finish": "Finish"
|
"finish": "Finish",
|
||||||
|
"use_default": "Use default",
|
||||||
|
"ignore": "Ignore"
|
||||||
},
|
},
|
||||||
"actions_name": "Actions",
|
"actions_name": "Actions",
|
||||||
"age": "Age",
|
"age": "Age",
|
||||||
|
|
@ -316,11 +317,6 @@
|
||||||
"explicit_set_description": "The following options will be used where not overridden in the source-specific options.",
|
"explicit_set_description": "The following options will be used where not overridden in the source-specific options.",
|
||||||
"field_behaviour": "{strategy} {field}",
|
"field_behaviour": "{strategy} {field}",
|
||||||
"field_options": "Field Options",
|
"field_options": "Field Options",
|
||||||
"field_strategies": {
|
|
||||||
"ignore": "Ignore",
|
|
||||||
"merge": "Merge",
|
|
||||||
"overwrite": "Overwrite"
|
|
||||||
},
|
|
||||||
"identifying_scenes": "Identifying {num} {scene}",
|
"identifying_scenes": "Identifying {num} {scene}",
|
||||||
"identifying_from_paths": "Identifying scenes from the following paths",
|
"identifying_from_paths": "Identifying scenes from the following paths",
|
||||||
"include_male_performers": "Include male performers",
|
"include_male_performers": "Include male performers",
|
||||||
|
|
@ -328,7 +324,9 @@
|
||||||
"set_organized": "Set organised flag",
|
"set_organized": "Set organised flag",
|
||||||
"source_options": "{source} Options",
|
"source_options": "{source} Options",
|
||||||
"source": "Source",
|
"source": "Source",
|
||||||
"sources": "Sources"
|
"sources": "Sources",
|
||||||
|
"field": "Field",
|
||||||
|
"strategy": "Strategy"
|
||||||
},
|
},
|
||||||
"import_from_exported_json": "Import from exported JSON in the metadata directory. Wipes the existing database.",
|
"import_from_exported_json": "Import from exported JSON in the metadata directory. Wipes the existing database.",
|
||||||
"incremental_import": "Incremental import from a supplied export zip file.",
|
"incremental_import": "Incremental import from a supplied export zip file.",
|
||||||
|
|
@ -465,7 +463,8 @@
|
||||||
"performers": "{count, plural, one {Performer} other {Performers}}",
|
"performers": "{count, plural, one {Performer} other {Performers}}",
|
||||||
"scenes": "{count, plural, one {Scene} other {Scenes}}",
|
"scenes": "{count, plural, one {Scene} other {Scenes}}",
|
||||||
"studios": "{count, plural, one {Studio} other {Studios}}",
|
"studios": "{count, plural, one {Studio} other {Studios}}",
|
||||||
"tags": "{count, plural, one {Tag} other {Tags}}"
|
"tags": "{count, plural, one {Tag} other {Tags}}",
|
||||||
|
"files": "{count, plural, one {File} other {Files}}"
|
||||||
},
|
},
|
||||||
"country": "Country",
|
"country": "Country",
|
||||||
"cover_image": "Cover Image",
|
"cover_image": "Cover Image",
|
||||||
|
|
@ -566,7 +565,8 @@
|
||||||
"scrape_results_scraped": "Scraped",
|
"scrape_results_scraped": "Scraped",
|
||||||
"set_image_url_title": "Image URL",
|
"set_image_url_title": "Image URL",
|
||||||
"unsaved_changes": "Unsaved changes. Are you sure you want to leave?",
|
"unsaved_changes": "Unsaved changes. Are you sure you want to leave?",
|
||||||
"aliases_must_be_unique": "aliases must be unique"
|
"aliases_must_be_unique": "aliases must be unique",
|
||||||
|
"delete_gallery_files": "Delete gallery folder/zip file and any images not attached to any other gallery."
|
||||||
},
|
},
|
||||||
"dimensions": "Dimensions",
|
"dimensions": "Dimensions",
|
||||||
"director": "Director",
|
"director": "Director",
|
||||||
|
|
@ -745,7 +745,6 @@
|
||||||
"up-dir": "Up a directory",
|
"up-dir": "Up a directory",
|
||||||
"updated_at": "Updated At",
|
"updated_at": "Updated At",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"use_default": "Use default",
|
|
||||||
"weight": "Weight",
|
"weight": "Weight",
|
||||||
"years_old": "years old",
|
"years_old": "years old",
|
||||||
"stats": {
|
"stats": {
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,12 @@
|
||||||
"clear": "清除",
|
"clear": "清除",
|
||||||
"next_action": "下一步",
|
"next_action": "下一步",
|
||||||
"previous_action": "上一步",
|
"previous_action": "上一步",
|
||||||
"finish": "完成"
|
"finish": "完成",
|
||||||
|
"scrape": "爬取",
|
||||||
|
"identify": "辨認",
|
||||||
|
"save_delete_settings": "當刪除項目時,使用下列設定",
|
||||||
|
"use_default": "使用預設選項",
|
||||||
|
"ignore": "忽略"
|
||||||
},
|
},
|
||||||
"actions_name": "動作",
|
"actions_name": "動作",
|
||||||
"age": "年齡",
|
"age": "年齡",
|
||||||
|
|
@ -267,7 +272,8 @@
|
||||||
"supported_types": "支援類型",
|
"supported_types": "支援類型",
|
||||||
"supported_urls": "支援網址",
|
"supported_urls": "支援網址",
|
||||||
"excluded_tag_patterns_head": "排除符合正則表達式的標籤",
|
"excluded_tag_patterns_head": "排除符合正則表達式的標籤",
|
||||||
"excluded_tag_patterns_desc": "自爬蟲結果中,排除符合以下正則表達式的標籤"
|
"excluded_tag_patterns_desc": "自爬蟲結果中,排除符合以下正則表達式的標籤",
|
||||||
|
"scraper": "爬蟲"
|
||||||
},
|
},
|
||||||
"stashbox": {
|
"stashbox": {
|
||||||
"add_instance": "新增 Stash-box 端點",
|
"add_instance": "新增 Stash-box 端點",
|
||||||
|
|
@ -304,7 +310,27 @@
|
||||||
"plugin_tasks": "插件排程",
|
"plugin_tasks": "插件排程",
|
||||||
"scan_for_content_desc": "掃描新內容,並將其新增到資料庫中。",
|
"scan_for_content_desc": "掃描新內容,並將其新增到資料庫中。",
|
||||||
"set_name_date_details_from_metadata_if_present": "使用多媒體檔案中內建的標題、日期、詳細資訊(如果適用的話)",
|
"set_name_date_details_from_metadata_if_present": "使用多媒體檔案中內建的標題、日期、詳細資訊(如果適用的話)",
|
||||||
"generate_thumbnails_during_scan": "掃描圖片時,順便產生縮圖。"
|
"generate_thumbnails_during_scan": "掃描圖片時,順便產生縮圖。",
|
||||||
|
"identify": {
|
||||||
|
"create_missing": "新增尚有的欄位",
|
||||||
|
"set_organized": "設為『已整理』",
|
||||||
|
"source": "來源",
|
||||||
|
"include_male_performers": "包含男優",
|
||||||
|
"identifying_from_paths": "辨認下列路徑中的短片",
|
||||||
|
"set_cover_images": "設定封面",
|
||||||
|
"identifying_scenes": "辨認{num}{scene}中",
|
||||||
|
"heading": "自動辨識檔案",
|
||||||
|
"and_create_missing": "及建立尚有欄位",
|
||||||
|
"default_options": "預設選項",
|
||||||
|
"description": "自動套用 Stash-box 及爬蟲搜尋結果套用至短片資料中。",
|
||||||
|
"field": "欄位",
|
||||||
|
"field_options": "欄位選項",
|
||||||
|
"source_options": "{source} 選項",
|
||||||
|
"explicit_set_description": "當尚未指定來源選項時,將會使用下列設定。",
|
||||||
|
"sources": "來源",
|
||||||
|
"strategy": "方法",
|
||||||
|
"field_behaviour": "{strategy}{field}"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"tools": {
|
"tools": {
|
||||||
"scene_duplicate_checker": "短片相近性檢查工具",
|
"scene_duplicate_checker": "短片相近性檢查工具",
|
||||||
|
|
@ -405,6 +431,14 @@
|
||||||
"description": "關閉下拉選單建立物件功能",
|
"description": "關閉下拉選單建立物件功能",
|
||||||
"heading": "關閉下拉選單建立"
|
"heading": "關閉下拉選單建立"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"delete_options": {
|
||||||
|
"options": {
|
||||||
|
"delete_file": "將『刪除檔案』設為預設選項",
|
||||||
|
"delete_generated_supporting_files": "將『刪除已生成的資訊檔案』設為預設選項"
|
||||||
|
},
|
||||||
|
"description": "刪除圖片、圖庫、及短片時的預設設定",
|
||||||
|
"heading": "刪除選項"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"plugins": {
|
"plugins": {
|
||||||
|
|
@ -421,7 +455,8 @@
|
||||||
"performers": "演員",
|
"performers": "演員",
|
||||||
"scenes": "短片",
|
"scenes": "短片",
|
||||||
"studios": "工作室",
|
"studios": "工作室",
|
||||||
"tags": "標籤"
|
"tags": "標籤",
|
||||||
|
"files": "檔案"
|
||||||
},
|
},
|
||||||
"country": "國家",
|
"country": "國家",
|
||||||
"cover_image": "封面圖片",
|
"cover_image": "封面圖片",
|
||||||
|
|
@ -513,7 +548,10 @@
|
||||||
"zoom": "放大"
|
"zoom": "放大"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"aliases_must_be_unique": "別名不可重複"
|
"aliases_must_be_unique": "別名不可重複",
|
||||||
|
"delete_galleries_extra": "…及其他不在圖庫內的圖片檔案。",
|
||||||
|
"delete_alert": "以下{count, plural, one {{singularEntity}} other {{pluralEntity}}}將被永久刪除:",
|
||||||
|
"delete_gallery_files": "刪除所有不在任一圖庫內的圖庫資料夾、壓縮檔、及圖檔"
|
||||||
},
|
},
|
||||||
"dimensions": "解析度",
|
"dimensions": "解析度",
|
||||||
"director": "導演",
|
"director": "導演",
|
||||||
|
|
@ -776,5 +814,11 @@
|
||||||
"backup_database_path_leave_empty_to_disable_backup": "備份資料庫路徑(留空以關閉備份):",
|
"backup_database_path_leave_empty_to_disable_backup": "備份資料庫路徑(留空以關閉備份):",
|
||||||
"perform_schema_migration": "執行架構遷移"
|
"perform_schema_migration": "執行架構遷移"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"all": "所有",
|
||||||
|
"false": "否",
|
||||||
|
"true": "是",
|
||||||
|
"stash_ids": "Stash IDs",
|
||||||
|
"file": "檔案",
|
||||||
|
"files": "檔案"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue