From 1fcab0a00ee3f4298400d0582ff5af781e75a290 Mon Sep 17 00:00:00 2001 From: John Andrews Date: Wed, 16 Oct 2024 12:58:23 +1300 Subject: [PATCH] added more languages --- Apprise/i18n/ko.json | 35 + Apprise/i18n/zht.json | 35 + AudioNodes/i18n/ko.json | 202 ++++++ AudioNodes/i18n/zht.json | 202 ++++++ BasicNodes/i18n/ko.json | 769 ++++++++++++++++++++ BasicNodes/i18n/zht.json | 769 ++++++++++++++++++++ ChecksumNodes/i18n/ko.json | 40 + ChecksumNodes/i18n/zht.json | 40 + ComicNodes/Comics/ComicExtractor.cs | 4 +- ComicNodes/i18n/ko.json | 63 ++ ComicNodes/i18n/zht.json | 63 ++ DiscordNodes/i18n/ko.json | 31 + DiscordNodes/i18n/zht.json | 31 + EmailNodes/i18n/ko.json | 40 + EmailNodes/i18n/zht.json | 40 + Emby/i18n/ko.json | 42 ++ Emby/i18n/zht.json | 42 ++ Gotify/i18n/ko.json | 34 + Gotify/i18n/zht.json | 34 + ImageNodes/i18n/ko.json | 127 ++++ ImageNodes/i18n/zht.json | 127 ++++ MetaNodes/i18n/ko.json | 91 +++ MetaNodes/i18n/zht.json | 91 +++ Nextcloud/i18n/ko.json | 34 + Nextcloud/i18n/zht.json | 34 + Plex/i18n/ko.json | 61 ++ Plex/i18n/zht.json | 61 ++ Pushbullet/i18n/ko.json | 32 + Pushbullet/i18n/zht.json | 32 + Pushover/i18n/ko.json | 37 + Pushover/i18n/zht.json | 37 + Telegram/i18n/ko.json | 29 + Telegram/i18n/zht.json | 29 + VideoNodes/i18n/ko.json | 1049 +++++++++++++++++++++++++++ VideoNodes/i18n/zht.json | 1049 +++++++++++++++++++++++++++ Web/i18n/ko.json | 77 ++ Web/i18n/zht.json | 77 ++ 37 files changed, 5589 insertions(+), 1 deletion(-) create mode 100644 Apprise/i18n/ko.json create mode 100644 Apprise/i18n/zht.json create mode 100644 AudioNodes/i18n/ko.json create mode 100644 AudioNodes/i18n/zht.json create mode 100644 BasicNodes/i18n/ko.json create mode 100644 BasicNodes/i18n/zht.json create mode 100644 ChecksumNodes/i18n/ko.json create mode 100644 ChecksumNodes/i18n/zht.json create mode 100644 ComicNodes/i18n/ko.json create mode 100644 ComicNodes/i18n/zht.json create mode 100644 DiscordNodes/i18n/ko.json create mode 100644 DiscordNodes/i18n/zht.json create mode 100644 EmailNodes/i18n/ko.json create mode 100644 EmailNodes/i18n/zht.json create mode 100644 Emby/i18n/ko.json create mode 100644 Emby/i18n/zht.json create mode 100644 Gotify/i18n/ko.json create mode 100644 Gotify/i18n/zht.json create mode 100644 ImageNodes/i18n/ko.json create mode 100644 ImageNodes/i18n/zht.json create mode 100644 MetaNodes/i18n/ko.json create mode 100644 MetaNodes/i18n/zht.json create mode 100644 Nextcloud/i18n/ko.json create mode 100644 Nextcloud/i18n/zht.json create mode 100644 Plex/i18n/ko.json create mode 100644 Plex/i18n/zht.json create mode 100644 Pushbullet/i18n/ko.json create mode 100644 Pushbullet/i18n/zht.json create mode 100644 Pushover/i18n/ko.json create mode 100644 Pushover/i18n/zht.json create mode 100644 Telegram/i18n/ko.json create mode 100644 Telegram/i18n/zht.json create mode 100644 VideoNodes/i18n/ko.json create mode 100644 VideoNodes/i18n/zht.json create mode 100644 Web/i18n/ko.json create mode 100644 Web/i18n/zht.json diff --git a/Apprise/i18n/ko.json b/Apprise/i18n/ko.json new file mode 100644 index 00000000..aa2ed2fd --- /dev/null +++ b/Apprise/i18n/ko.json @@ -0,0 +1,35 @@ +{ + "Flow": { + "Parts": { + "Apprise": { + "Description": "Apprise 서버에 메시지를 보냅니다.", + "Fields": { + "Message": "메시지", + "Message-Help": "Apprise 서버에 보낼 메시지", + "MessageType": "유형", + "MessageType-Help": "보낼 메시지의 유형", + "Tag": "태그", + "Tag-Help": "이 메시지를 보낼 태그 목록, 비어 있으면 ''all''로 태그가 지정됩니다." + }, + "Outputs": { + "1": "Apprise 메시지가 전송되었습니다", + "2": "Apprise 메시지 전송에 실패했습니다" + } + } + } + }, + "Plugins": { + "Apprise": { + "Description": "Apprise 서버에 메시지를 보낼 수 있는 플러그인입니다.", + "Label": "Apprise", + "Fields": { + "Endpoint": "엔드포인트", + "Endpoint-Help": "Apprise 서버의 엔드포인트, 예: notify/apprise", + "Endpoint-Placeholder": "notify/apprise", + "ServerUrl": "서버", + "ServerUrl-Help": "Apprise 서버의 URL", + "ServerUrl-Placeholder": "http://apprise.lan" + } + } + } +} \ No newline at end of file diff --git a/Apprise/i18n/zht.json b/Apprise/i18n/zht.json new file mode 100644 index 00000000..a291c416 --- /dev/null +++ b/Apprise/i18n/zht.json @@ -0,0 +1,35 @@ +{ + "Flow": { + "Parts": { + "Apprise": { + "Description": "向 Apprise 伺服器發送消息。", + "Fields": { + "Message": "消息", + "Message-Help": "要發送到 Apprise 伺服器的消息", + "MessageType": "類型", + "MessageType-Help": "要發送的消息類型", + "Tag": "標籤", + "Tag-Help": "發送此消息的標籤列表,如果為空則會標記為 ''all''。" + }, + "Outputs": { + "1": "Apprise 消息已發送", + "2": "Apprise 消息發送失敗" + } + } + } + }, + "Plugins": { + "Apprise": { + "Description": "一個允許您向 Apprise 伺服器發送消息的插件。", + "Label": "Apprise", + "Fields": { + "Endpoint": "端點", + "Endpoint-Help": "Apprise 伺服器上的端點,例如 notify/apprise", + "Endpoint-Placeholder": "notify/apprise", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Apprise 伺服器的 URL", + "ServerUrl-Placeholder": "http://apprise.lan" + } + } + } +} \ No newline at end of file diff --git a/AudioNodes/i18n/ko.json b/AudioNodes/i18n/ko.json new file mode 100644 index 00000000..eebc7410 --- /dev/null +++ b/AudioNodes/i18n/ko.json @@ -0,0 +1,202 @@ +{ + "Flow": { + "Parts": { + "AudioBitrateMatches": { + "Description": "오디오 비트레이트가 제약 조건과 일치하는지 확인합니다.", + "Label": "오디오 비트레이트 일치", + "Fields": { + "BitrateKilobytes": "비트레이트", + "BitrateKilobytes-Help": "일치 여부를 확인할 비트레이트 (킬로바이트)입니다.", + "BitrateKilobytes-Suffix": "킬로바이트", + "Match": "일치" + }, + "Outputs": { + "1": "일치함", + "2": "일치하지 않음" + } + }, + "AudioFile": { + "Description": "오디오 정보를 읽은 입력 오디오 파일로, 처리할 수 있습니다.", + "Label": "오디오 파일", + "Outputs": { + "1": "라이브러리에서 가져온 오디오 파일" + } + }, + "AudioFileNormalization": { + "Description": "FFMPEG의 loudnorm 필터를 사용하여 오디오 파일을 두 번 정규화합니다.", + "Label": "오디오 파일 정규화", + "Outputs": { + "1": "정규화된 오디오 파일이 임시 파일로 저장됨" + } + }, + "ConvertAudio": { + "Description": "지정된 오디오 코덱으로 오디오 파일을 변환합니다.", + "Label": "오디오 변환", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Help": "새 파일의 비트레이트로, 비트레이트가 높을수록 품질이 향상되지만 파일 크기가 커집니다.", + "Channels": "채널 수", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n소스보다 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "Codec": "코덱", + "Codec-Help": "파일을 변환할 오디오 코덱입니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 대신 사용할 사용자 지정 파일 확장자를 설정할 수 있습니다.", + "HighEfficiency": "고효율", + "HighEfficiency-Help": "고효율 모드를 사용합니다. 이렇게 하면 확장자가 m4a로 변경되며 지원되는 재생 장치가 줄어들 수 있지만 파일 크기가 줄어들 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오를 두 번의 패스 정규화로 정규화해야 하는지 여부입니다.", + "SampleRate": "샘플링 주파수", + "SampleRate-Help": "사용할 샘플링 주파수입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하면 이 파일은 비트레이트에 관계없이 처리되지 않습니다. 그렇지 않으면 비트레이트가 작거나 같아야 건너뜁니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "ConvertToAAC": { + "Description": "오디오 파일을 AAC로 변환합니다.", + "Label": "AAC로 변환", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Help": "새 AAC 파일의 비트레이트로, 비트레이트가 높을수록 품질이 향상되지만 파일 크기가 커집니다. 192 Kbps가 권장 비율입니다.", + "Channels": "채널 수", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n소스보다 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 대신 사용할 사용자 지정 파일 확장자를 설정할 수 있습니다.", + "HighEfficiency": "고효율", + "HighEfficiency-Help": "고효율 모드를 사용합니다. 이렇게 하면 확장자가 m4a로 변경되며 지원되는 재생 장치가 줄어들 수 있지만 파일 크기가 줄어들 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오를 두 번의 패스 정규화로 정규화해야 하는지 여부입니다.", + "SampleRate": "샘플링 주파수", + "SampleRate-Help": "사용할 샘플링 주파수입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하면 이 파일은 비트레이트에 관계없이 처리되지 않습니다. 그렇지 않으면 비트레이트가 작거나 같아야 건너뜁니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "ConvertToFLAC": { + "Description": "오디오 파일을 FLAC으로 변환합니다.", + "Label": "FLAC로 변환", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Help": "새 FLAC 파일의 비트레이트로, 비트레이트가 높을수록 품질이 향상되지만 파일 크기가 커집니다. 128 Kbps가 권장 비율입니다.", + "Channels": "채널 수", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n소스보다 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 대신 사용할 사용자 지정 파일 확장자를 설정할 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오를 두 번의 패스 정규화로 정규화해야 하는지 여부입니다.", + "SampleRate": "샘플링 주파수", + "SampleRate-Help": "사용할 샘플링 주파수입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하면 이 파일은 비트레이트에 관계없이 처리되지 않습니다. 그렇지 않으면 비트레이트가 작거나 같아야 건너뜁니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "ConvertToMP3": { + "Description": "오디오 파일을 MP3로 변환합니다.", + "Label": "MP3로 변환", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "새 MP3 파일의 비트 전송률, 비트 전송률이 높을수록 품질이 좋아지지만 파일 크기도 커집니다. 192 Kbps가 권장되는 비트 전송률입니다.", + "Channels": "채널", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n원본보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n원본보다 더 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 것 대신 사용할 사용자 정의 파일 확장자를 설정할 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오가 2회 통과 오디오 정규화로 정규화되어야 하는지 여부입니다.", + "SampleRate": "샘플 레이트", + "SampleRate-Help": "사용할 샘플 레이트입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하는 경우, 비트 전송률에 관계없이 이 파일은 처리되지 않습니다. 그렇지 않으면 꺼져 있는 경우 비트 전송률이 건너뛰기 위해서는 이하이어야 합니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "ConvertToOGG": { + "Description": "오디오 파일을 OGG로 변환합니다.", + "Label": "OGG로 변환", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "새 OGG 파일의 비트 전송률, 비트 전송률이 높을수록 품질이 좋아지지만 파일 크기도 커집니다. 128 Kbps가 권장되는 비트 전송률입니다.", + "Channels": "채널", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n원본보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n원본보다 더 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 것 대신 사용할 사용자 정의 파일 확장자를 설정할 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오가 2회 통과 오디오 정규화로 정규화되어야 하는지 여부입니다.", + "SampleRate": "샘플 레이트", + "SampleRate-Help": "사용할 샘플 레이트입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하는 경우, 비트 전송률에 관계없이 이 파일은 처리되지 않습니다. 그렇지 않으면 꺼져 있는 경우 비트 전송률이 건너뛰기 위해서는 이하이어야 합니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "ConvertToWAV": { + "Description": "오디오 파일을 WAV로 변환합니다.", + "Label": "WAV로 변환", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "새 WAV 파일의 비트 전송률, 비트 전송률이 높을수록 품질이 좋아지지만 파일 크기도 커집니다. 128 Kbps가 권장되는 비트 전송률입니다.", + "Channels": "채널", + "Channels-Help": "변환된 파일이 가질 채널 수입니다.\n원본보다 더 많은 채널을 지정하면 FFmpeg가 자동으로 업믹스합니다.\n원본보다 더 적은 채널을 지정하면 FFmpeg가 자동으로 다운믹스합니다.", + "CustomExtension": "확장자", + "CustomExtension-Help": "코덱에 의해 자동으로 결정된 것 대신 사용할 사용자 정의 파일 확장자를 설정할 수 있습니다.", + "Normalize": "정규화", + "Normalize-Help": "오디오가 2회 통과 오디오 정규화로 정규화되어야 하는지 여부입니다.", + "SampleRate": "샘플 레이트", + "SampleRate-Help": "사용할 샘플 레이트입니다.", + "SkipIfCodecMatches": "코덱이 일치하면 건너뛰기", + "SkipIfCodecMatches-Help": "기존 오디오 코덱이 일치하는 경우, 비트 전송률에 관계없이 이 파일은 처리되지 않습니다. 그렇지 않으면 꺼져 있는 경우 비트 전송률이 건너뛰기 위해서는 이하이어야 합니다." + }, + "Outputs": { + "1": "오디오가 변환되어 임시 파일로 저장됨", + "2": "오디오가 이미 코덱에 있음, 변환되지 않음" + } + }, + "CreateAudioBook": { + "Description": "입력 디렉토리에서 찾은 오디오 파일로 오디오 북을 생성합니다.", + "Label": "오디오 북 생성", + "Fields": { + "DeleteSourceFiles": "원본 파일 삭제", + "DeleteSourceFiles-Help": "활성화하면 새로 생성된 m4b 파일을 구성하는 원본 파일이 삭제됩니다. 그렇지 않으면 원본 파일은 그대로 유지됩니다.", + "DestinationPath": "대상 경로", + "DestinationPath-Help": "새로 생성된 파일을 저장할 위치입니다. 비워두면 임시 디렉토리에 파일이 생성되고 이후 이동되지 않으면 삭제됩니다.", + "UpdateWorkingFile": "작업 파일 업데이트", + "UpdateWorkingFile-Help": "활성화하면 작업 파일이 새로 생성된 파일로 업데이트됩니다." + }, + "Outputs": { + "1": "오디오 북이 생성되었습니다.", + "2": "오디오 북이 생성되지 않았습니다." + } + }, + "EmbedArtwork": { + "Description": "오디오 파일에 아트워크를 삽입합니다.", + "Label": "아트워크 삽입", + "Outputs": { + "1": "아트워크가 발견되어 오디오 파일에 삽입됨", + "2": "삽입할 아트워크가 없음" + } + } + } + }, + "Plugins": { + "AudioNodes": { + "Description": "오디오 파일 처리를 도와주는 오디오 관련 흐름 요소 모음입니다.", + "Label": "오디오" + } + } +} \ No newline at end of file diff --git a/AudioNodes/i18n/zht.json b/AudioNodes/i18n/zht.json new file mode 100644 index 00000000..206f2155 --- /dev/null +++ b/AudioNodes/i18n/zht.json @@ -0,0 +1,202 @@ +{ + "Flow": { + "Parts": { + "AudioBitrateMatches": { + "Description": "檢查音頻比特率是否符合約束。", + "Label": "音頻比特率匹配", + "Fields": { + "BitrateKilobytes": "比特率", + "BitrateKilobytes-Help": "用於匹配的比特率(以千字節為單位)。", + "BitrateKilobytes-Suffix": "千字節", + "Match": "匹配" + }, + "Outputs": { + "1": "匹配", + "2": "不匹配" + } + }, + "AudioFile": { + "Description": "輸入音頻文件,已讀取其音頻信息並可進行處理", + "Label": "音頻文件", + "Outputs": { + "1": "來自庫的音頻文件" + } + }, + "AudioFileNormalization": { + "Description": "使用兩次FFMPEG的loudnorm濾波器對音頻文件進行標準化", + "Label": "音頻文件標準化", + "Outputs": { + "1": "音頻文件已標準化並保存到臨時文件" + } + }, + "ConvertAudio": { + "Description": "將音頻文件轉換為指定的音頻編解碼器", + "Label": "轉換音頻", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新文件的比特率,比特率越高,質量越好,但文件越大。", + "Channels": "通道", + "Channels-Help": "轉換文件的通道數。\n如果您指定的通道數多於源,FFmpeg將自動進行升級混合。\n如果您指定的通道數少於源,FFmpeg將自動進行降混合。", + "Codec": "編解碼器", + "Codec-Help": "將文件轉換為的音頻編解碼器。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以代替由編解碼器自動確定的擴展名。", + "HighEfficiency": "高效率", + "HighEfficiency-Help": "將使用高效率模式,這將把擴展名更改為m4a並減少支持的播放設備,但可能會減小文件大小。", + "Normalize": "標準化", + "Normalize-Help": "音頻是否應進行兩次通過的音頻標準化", + "SampleRate": "取樣率", + "SampleRate-Help": "要使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有音頻編解碼器匹配,則無論比特率如何,該文件都不會被處理。否則如果關閉,則比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音頻已轉換並保存到臨時文件", + "2": "音頻已在編解碼器中,未進行轉換" + } + }, + "ConvertToAAC": { + "Description": "將音頻文件轉換為AAC", + "Label": "轉換為AAC", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新AAC文件的比特率,比特率越高,質量越好,但文件越大。建議使用192 Kbps的比特率。", + "Channels": "通道", + "Channels-Help": "轉換文件的通道數。\n如果您指定的通道數多於源,FFmpeg將自動進行升級混合。\n如果您指定的通道數少於源,FFmpeg將自動進行降混合。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以代替由編解碼器自動確定的擴展名。", + "HighEfficiency": "高效率", + "HighEfficiency-Help": "將使用高效率模式,這將把擴展名更改為m4a並減少支持的播放設備,但可能會減小文件大小。", + "Normalize": "標準化", + "Normalize-Help": "音頻是否應進行兩次通過的音頻標準化", + "SampleRate": "取樣率", + "SampleRate-Help": "要使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有音頻編解碼器匹配,則無論比特率如何,該文件都不會被處理。否則如果關閉,則比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音頻已轉換並保存到臨時文件", + "2": "音頻已在編解碼器中,未進行轉換" + } + }, + "ConvertToFLAC": { + "Description": "將音頻文件轉換為FLAC", + "Label": "轉換為FLAC", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新FLAC文件的比特率,比特率越高,質量越好,但文件越大。建議使用128 Kbps的比特率。", + "Channels": "通道", + "Channels-Help": "轉換文件的通道數。\n如果您指定的通道數多於源,FFmpeg將自動進行升級混合。\n如果您指定的通道數少於源,FFmpeg將自動進行降混合。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以代替由編解碼器自動確定的擴展名。", + "Normalize": "標準化", + "Normalize-Help": "音頻是否應進行兩次通過的音頻標準化", + "SampleRate": "取樣率", + "SampleRate-Help": "要使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有音頻編解碼器匹配,則無論比特率如何,該文件都不會被處理。否則如果關閉,則比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音頻已轉換並保存到臨時文件", + "2": "音頻已在編解碼器中,未進行轉換" + } + }, + "ConvertToMP3": { + "Description": "將音頻文件轉換為MP3", + "Label": "轉換為MP3", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新MP3文件的比特率,比特率越高,質量越好,但文件越大。建議使用192 Kbps的比特率。", + "Channels": "通道", + "Channels-Help": "轉換文件的通道數。\n如果您指定的通道數多於源,FFmpeg將自動進行升級混合。\n如果您指定的通道數少於源,FFmpeg將自動進行降混合。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以代替由編解碼器自動確定的擴展名。", + "Normalize": "標準化", + "Normalize-Help": "音頻是否應進行兩次通過的音頻標準化", + "SampleRate": "取樣率", + "SampleRate-Help": "要使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有音頻編解碼器匹配,則無論比特率如何,該文件都不會被處理。否則如果關閉,則比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音頻已轉換並保存到臨時文件", + "2": "音頻已在編解碼器中,未進行轉換" + } + }, + "ConvertToOGG": { + "Description": "將音訊文件轉換為 OGG", + "Label": "轉換為 OGG", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新 OGG 文件的比特率,較高的比特率能提供更好的質量,但文件較大。建議使用 128 Kbps 的比特率。", + "Channels": "通道", + "Channels-Help": "轉換後的文件將擁有的通道數。\n如果指定的通道數多於源文件,FFmpeg 將自動進行升頻混音。\n如果指定的通道數少於源文件,FFmpeg 將自動進行降頻混音。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以替代由編解碼器自動確定的擴展名。", + "Normalize": "歸一化", + "Normalize-Help": "音訊是否應進行雙通道歸一化處理。", + "SampleRate": "取樣率", + "SampleRate-Help": "使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有的音訊編解碼器匹配,則該文件將不會被處理,無論比特率如何。否則,如果未開啟,比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音訊已轉換並保存到臨時文件", + "2": "音訊已在編解碼器中,無需轉換" + } + }, + "ConvertToWAV": { + "Description": "將音訊文件轉換為 WAV", + "Label": "轉換為 WAV", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新 WAV 文件的比特率,較高的比特率能提供更好的質量,但文件較大。建議使用 128 Kbps 的比特率。", + "Channels": "通道", + "Channels-Help": "轉換後的文件將擁有的通道數。\n如果指定的通道數多於源文件,FFmpeg 將自動進行升頻混音。\n如果指定的通道數少於源文件,FFmpeg 將自動進行降頻混音。", + "CustomExtension": "擴展名", + "CustomExtension-Help": "允許您設置自定義文件擴展名,以替代由編解碼器自動確定的擴展名。", + "Normalize": "歸一化", + "Normalize-Help": "音訊是否應進行雙通道歸一化處理。", + "SampleRate": "取樣率", + "SampleRate-Help": "使用的取樣率", + "SkipIfCodecMatches": "如果編解碼器匹配則跳過", + "SkipIfCodecMatches-Help": "如果現有的音訊編解碼器匹配,則該文件將不會被處理,無論比特率如何。否則,如果未開啟,比特率必須小於或等於才能跳過。" + }, + "Outputs": { + "1": "音訊已轉換並保存到臨時文件", + "2": "音訊已在編解碼器中,無需轉換" + } + }, + "CreateAudioBook": { + "Description": "從輸入目錄中找到的音訊文件創建有聲書", + "Label": "創建有聲書", + "Fields": { + "DeleteSourceFiles": "刪除源文件", + "DeleteSourceFiles-Help": "當啟用時,組成新創建的 m4b 文件的源文件將被刪除,否則將保留原樣。", + "DestinationPath": "目標路徑", + "DestinationPath-Help": "保存新創建文件的目標位置。如果留空,文件將創建在臨時目錄中,如果未移動則將被刪除。", + "UpdateWorkingFile": "更新工作文件", + "UpdateWorkingFile-Help": "當啟用時,工作文件將更新為新創建的文件。" + }, + "Outputs": { + "1": "有聲書已創建", + "2": "有聲書未創建" + } + }, + "EmbedArtwork": { + "Description": "將藝術作品嵌入音訊文件中", + "Label": "嵌入藝術作品", + "Outputs": { + "1": "找到藝術作品並嵌入到音訊文件中", + "2": "未找到要嵌入的藝術作品" + } + } + } + }, + "Plugins": { + "AudioNodes": { + "Description": "一組與音訊相關的流程元素,以幫助處理音訊文件。", + "Label": "音訊" + } + } +} \ No newline at end of file diff --git a/BasicNodes/i18n/ko.json b/BasicNodes/i18n/ko.json new file mode 100644 index 00000000..07668f6e --- /dev/null +++ b/BasicNodes/i18n/ko.json @@ -0,0 +1,769 @@ +{ + "Enums": { + "LogType": { + "Debug": "디버그", + "Error": "오류", + "Info": "정보", + "Warning": "경고" + } + }, + "Flow": { + "Parts": { + "BatchScript": { + "Description": "Windows 환경에서 배치(.bat) 스크립트를 실행할 수 있습니다.", + "Label": "배치 스크립트 (.bat)", + "Fields": { + "Code": "코드" + }, + "Outputs": { + "1": "1을 반환했습니다", + "10": "10을 반환했습니다", + "2": "2를 반환했습니다", + "3": "3을 반환했습니다", + "4": "4를 반환했습니다", + "5": "5를 반환했습니다", + "6": "6을 반환했습니다", + "7": "7을 반환했습니다", + "8": "8을 반환했습니다", + "9": "9를 반환했습니다" + } + }, + "CompleteFlow": { + "Description": "흐름을 성공적으로 완료/종료합니다.", + "Label": "흐름 완료" + }, + "CopyFile": { + "Description": "파일을 대상 폴더에 복사합니다.", + "Label": "파일 복사", + "Fields": { + "AdditionalFiles": "추가 파일", + "AdditionalFiles-Help": "디렉토리에서 새 디렉토리로 복사할 추가 파일입니다.\n각 값은 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자의 조합을 포함할 수 있지만 정규 표현식은 지원하지 않습니다.", + "AdditionalFilesFromOriginal": "원본 디렉토리", + "AdditionalFilesFromOriginal-Help": "추가 파일이 작업 디렉토리에서 복사되어야 하는지 또는 원본 디렉토리에서 복사되어야 하는지. 원본 디렉토리에 대해 활성화합니다.", + "CopyFolder": "폴더 복사", + "CopyFolder-Help": "상대 라이브러리 폴더 구조도 복사해야 하는지 여부입니다.", + "DestinationFile": "대상 파일", + "DestinationFile-Help": "파일을 복사할 파일 이름입니다. 비어 있으면 원래 파일 이름이 사용됩니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "파일이 복사될 폴더입니다.", + "InputFile": "복사할 파일", + "InputFile-Help": "복사할 파일입니다. 비어 있으면 작업 파일이 복사됩니다.", + "InputFile-Placeholder": "작업 파일", + "PreserverOriginalDates": "날짜 보존", + "PreserverOriginalDates-Help": "원본 입력 파일의 원래 생성 시간과 마지막 수정 시간을 보존해야 하는지 여부입니다." + }, + "Outputs": { + "1": "파일이 복사되었습니다" + } + }, + "CSharpScript": { + "Description": "흐름 내에서 C# 코드를 실행할 수 있습니다.", + "Label": "C# 함수", + "Fields": { + "Code": "코드" + }, + "Outputs": { + "1": "1을 반환했습니다", + "10": "10을 반환했습니다", + "2": "2를 반환했습니다", + "3": "3을 반환했습니다", + "4": "4를 반환했습니다", + "5": "5를 반환했습니다", + "6": "6을 반환했습니다", + "7": "7을 반환했습니다", + "8": "8을 반환했습니다", + "9": "9를 반환했습니다" + } + }, + "Delete": { + "Description": "파일 또는 폴더를 삭제합니다.", + "Label": "삭제", + "Fields": { + "FileName": "경로", + "FileName-Help": "삭제할 파일 또는 폴더의 경로입니다.\n\n비어 있으면 현재 작업 파일이 삭제됩니다." + }, + "Outputs": { + "1": "파일이 삭제되었습니다" + } + }, + "DeleteSourceDirectory": { + "Description": "원본 라이브러리 파일의 소스 폴더를 삭제합니다.", + "Label": "소스 폴더 삭제", + "Fields": { + "IfEmpty": "비어 있으면", + "IfEmpty-Help": "소스 폴더가 비어 있을 때만 삭제합니다.", + "IncludePatterns": "포함 패턴", + "IncludePatterns-Help": "선택 사항이며, 설정하면 이 패턴과 일치하는 파일만 폴더가 비어 있는지 확인하는 데 계산됩니다. 이러한 패턴 중 하나라도 일치할 수 있습니다.", + "TopMostOnly": "상위 폴더만", + "TopMostOnly-Help": "활성화되면 파일을 직접 포함하는 폴더만 삭제되고, 상위 폴더는 그대로 유지됩니다." + }, + "Outputs": { + "1": "소스 디렉토리가 삭제되었습니다", + "2": "디렉토리가 삭제되지 않았습니다" + } + }, + "Executor": { + "Description": "파일에 대해 다음 프로세스를 실행합니다.\n출력 1: 프로세스가 성공 종료 코드를 반환했습니다\n출력 2: 프로세스가 비성공 종료 코드를 반환했습니다.", + "Label": "실행기", + "Fields": { + "Arguments": "인수", + "Arguments-Help": "실행할 프로세스에 전달될 인수입니다.", + "FileName": "파일 이름", + "FileName-Help": "실행할 파일의 이름입니다.", + "OutputErrorVariable": "출력 오류 변수", + "OutputErrorVariable-Help": "프로세스 오류 출력을 저장할 선택적 변수 이름입니다.", + "OutputVariable": "출력 변수", + "OutputVariable-Help": "프로세스 출력을 저장할 선택적 변수 이름입니다.", + "SuccessCode": "성공 코드", + "SuccessCode-Help": "프로세스가 성공했음을 나타내는 종료 코드입니다. 일반적으로 0이어야 합니다.", + "Timeout": "타임아웃", + "Timeout-Help": "프로세스가 종료되기 전에 실행할 수 있는 시간입니다. 타임아웃이 없으려면 0을 사용합니다.", + "Timeout-Suffix": "초", + "WorkingDirectory": "작업 폴더", + "WorkingDirectory-Help": "프로세스가 실행될 폴더입니다." + }, + "Outputs": { + "1": "프로세스가 성공적으로 반환되었습니다", + "2": "프로세스가 실패를 반환했습니다" + } + }, + "FailFlow": { + "Description": "흐름을 즉시 실패시킵니다. 특정 경로가 실패해야 할 경우 유용합니다.", + "Label": "흐름 실패", + "Fields": { + "Reason": "이유", + "Reason-Help": "흐름이 실패한 이유를 기록하기 위한 선택적 이유입니다." + } + }, + "FileDateCompare": { + "Description": "파일 생성 시간 또는 마지막 수정 시간이 지정된 날짜 제약과 일치하는지 확인합니다.", + "Label": "파일 날짜 비교", + "Fields": { + "Date": "날짜", + "DateComparision": "비교", + "FileName": "파일 이름", + "FileName-Help": "확인할 파일입니다. 비워 두면 현재 작업 파일을 확인합니다." + }, + "Outputs": { + "1": "날짜 제약과 일치합니다.", + "2": "날짜 제약과 일치하지 않습니다." + } + }, + "FileExists": { + "Description": "파일이 존재하는지 확인합니다.\n\n출력 1: 파일이 존재합니다\n출력 2: 파일이 존재하지 않습니다", + "Label": "파일 존재 여부", + "Fields": { + "FileName": "파일 이름", + "FileName-Help": "확인할 파일입니다. 비워 두면 현재 작업 파일을 확인합니다." + }, + "Outputs": { + "1": "파일이 존재합니다", + "2": "파일이 존재하지 않습니다" + } + }, + "FileExtension": { + "Description": "파일이 구성된 확장자 중 하나를 가지고 있는지 확인합니다.\n\n출력 1: 일치함\n출력 2: 일치하지 않음", + "Label": "파일 확장자", + "Fields": { + "Extensions": "확장자", + "Extensions-Help": "일치할 대소문자 구분이 없는 파일 확장자 목록입니다.\n출력 1: 일치함\n출력 2: 일치하지 않음" + }, + "Outputs": { + "1": "확장자가 일치합니다", + "2": "확장자가 일치하지 않습니다" + } + }, + "FileSize": { + "Description": "파일 크기가 구성된 매개변수와 일치하는지 확인합니다. 값은 메가바이트 단위입니다.\n\n출력 1: 일치함\n출력 2: 일치하지 않음", + "Label": "파일 크기", + "Fields": { + "Comparison": "비교", + "Lower": "보다 큼", + "Lower-Help": "이 메가바이트 수보다 커야 하는 값입니다.", + "Lower-Suffix": "MB", + "Upper": "보다 작음", + "Upper-Help": "이 메가바이트 수보다 작아야 하는 값입니다. 상한 테스트를 하지 않으려면 0으로 설정합니다.", + "Upper-Suffix": "MB" + }, + "Outputs": { + "1": "파일 크기가 범위 내입니다", + "2": "파일 크기가 범위 밖입니다" + } + }, + "FileSizeCompare": { + "Description": "파일 크기가 원본 파일과 변경되었는지 확인합니다.", + "Label": "파일 크기 비교", + "Outputs": { + "1": "원본보다 작음", + "2": "원본과 동일한 크기", + "3": "원본보다 큼" + } + }, + "FileSizeWithin": { + "Description": "새 파일 크기가 원본 파일 크기의 허용 범위 내에 있는지 확인합니다.", + "Label": "파일 크기 범위 내", + "Fields": { + "Value": "값", + "Value-Help": "파일 크기에 허용되는 차이로, 이 값은 이 차이를 플러스 또는 마이너스로 사용할 수 있습니다." + }, + "Outputs": { + "1": "파일 크기가 허용 범위 내에 있음", + "2": "파일 크기가 허용 범위 내에 있지 않음" + } + }, + "FolderDateCompare": { + "Description": "폴더의 생성 또는 마지막 수정 시간이 지정된 날짜 제약 조건과 일치하는지 확인합니다.", + "Label": "폴더 날짜 비교", + "Fields": { + "Date": "날짜", + "DateComparision": "비교", + "Path": "경로", + "Path-Help": "확인할 폴더의 경로. 현재 작업 파일을 확인하려면 비워 두십시오.\n파일이 지정된 경우, 파일이 포함된 폴더가 확인됩니다." + }, + "Outputs": { + "1": "날짜 제약 조건과 일치함.", + "2": "날짜 제약 조건과 일치하지 않음." + } + }, + "FolderIterator": { + "Description": "지정된 폴더의 모든 파일을 반복하고 해당 파일을 하위 흐름에서 실행합니다.", + "Label": "폴더 반복기", + "Fields": { + "Flow": "흐름", + "Flow-Help": "파일을 실행할 하위 흐름.", + "Folder": "폴더", + "Folder-Help": "반복할 파일이 있는 폴더.", + "Pattern": "패턴", + "Pattern-Help": "반복할 파일을 제한하기 위한 선택적 패턴으로, `*`로 시작하는 와일드카드 패턴 또는 정규 표현식일 수 있습니다.", + "Recursive": "재귀", + "Recursive-Help": "모든 하위 폴더의 파일도 반복할지, 아니면 최상위 파일만 반복할지 여부." + }, + "Outputs": { + "1": "폴더 파일 반복 완료" + } + }, + "Function": { + "Label": "함수", + "Fields": { + "Code": "코드", + "Code-Help": "-1을 반환하여 오류 및 흐름 중지. 0을 반환하여 흐름 완료. 1 이상을 반환하여 원하는 출력을 호출.", + "Outputs": "출력", + "Template": "템플릿", + "Template-Help": "경고: 이것은 코드 블록의 내용을 선택한 템플릿으로 대체합니다." + }, + "Outputs": { + "1": "1 반환됨", + "10": "10 반환됨", + "2": "2 반환됨", + "3": "3 반환됨", + "4": "4 반환됨", + "5": "5 반환됨", + "6": "6 반환됨", + "7": "7 반환됨", + "8": "8 반환됨", + "9": "9 반환됨" + } + }, + "GotoFlow": { + "Description": "처리할 다른 흐름으로 전환할 수 있습니다. 이 흐름은 종료되고 매개변수와 작업 파일이 새 흐름으로 전달됩니다.", + "Label": "흐름 이동", + "Fields": { + "Flow": "흐름", + "UpdateFlowUsed": "흐름 업데이트", + "UpdateFlowUsed-Help": "파일의 `흐름`을 이 새 흐름을 참조하도록 업데이트해야 하는지 또는 원래 흐름으로 두어야 하는지." + } + }, + "HasHardLinks": { + "Description": "파일에 하드 링크가 있는지 확인합니다.", + "Label": "하드 링크 존재", + "Fields": { + "Count": "수", + "Count-Help": "출력 1을 호출하기 위해 필요한 하드 링크 수.", + "FileName": "파일 이름", + "FileName-Help": "확인할 파일. 현재 작업 파일을 확인하려면 비워 두십시오." + }, + "Outputs": { + "1": "하드 링크 감지됨", + "2": "하드 링크 없음" + } + }, + "IfBoolean": { + "Description": "변수가 true인지 false인지 테스트합니다.", + "Label": "불리언 확인", + "Fields": { + "Variable": "변수", + "Variable-Help": "확인할 변수의 이름" + }, + "Outputs": { + "1": "참", + "2": "거짓" + } + }, + "IfString": { + "Description": "변수가 문자열과 일치하는지 테스트합니다.", + "Label": "문자열 확인", + "Fields": { + "Options": "옵션", + "Options-Help": "일치할 문자열.", + "Outputs": "출력", + "Outputs-Help": "이것은 옵션의 수와 일치해야 합니다.", + "Variable": "변수", + "Variable-Help": "확인할 변수의 이름" + }, + "Outputs": { + "1": "문자열 1과 일치", + "10": "문자열 10과 일치", + "2": "문자열 2와 일치", + "3": "문자열 3과 일치", + "4": "문자열 4와 일치", + "5": "문자열 5와 일치", + "6": "문자열 6과 일치", + "7": "문자열 7과 일치", + "8": "문자열 8과 일치", + "9": "문자열 9과 일치" + } + }, + "InputFile": { + "Description": "파일을 위한 입력 흐름 요소입니다. 이는 필수이며 흐름의 시작점입니다. 입력 흐름 요소는 하나만 필요합니다.", + "Label": "입력 파일", + "Outputs": { + "1": "라이브러리 파일" + } + }, + "InputFolder": { + "Description": "폴더를 위한 입력 흐름 요소입니다. 이 흐름을 사용하는 라이브러리가 폴더에 대해 구성된 경우에만 작동합니다.", + "Label": "입력 폴더", + "Outputs": { + "1": "라이브러리 폴더" + } + }, + "IsDocker": { + "Description": "이 흐름이 Docker에서 실행되고 있는지 확인합니다.", + "Label": "Docker인지 여부", + "Outputs": { + "1": "Docker에서 실행 중입니다.", + "2": "Docker에서 실행되지 않습니다." + } + }, + "IsFromLibrary": { + "Description": "처리 중인 파일이 지정된 라이브러리에서 온 것인지 확인합니다.", + "Label": "라이브러리에서 온 여부", + "Fields": { + "Library": "라이브러리", + "Library-Help": "확인할 라이브러리입니다." + }, + "Outputs": { + "1": "파일이 지정된 라이브러리에서 왔습니다.", + "2": "파일이 지정된 라이브러리에서 오지 않았습니다." + } + }, + "IsLinux": { + "Description": "이 흐름이 Linux에서 실행되고 있는지 확인합니다.", + "Label": "Linux인지 여부", + "Outputs": { + "1": "Linux에서 실행 중입니다.", + "2": "Linux에서 실행되지 않습니다." + } + }, + "IsMacOS": { + "Description": "이 흐름이 MacOS에서 실행되고 있는지 확인합니다.", + "Label": "MacOS인지 여부", + "Outputs": { + "1": "MacOS에서 실행 중입니다.", + "2": "MacOS에서 실행되지 않습니다." + } + }, + "IsProcessingOnNode": { + "Description": "흐름이 현재 지정된 처리 노드에서 처리 중인지 확인합니다.", + "Label": "노드에서 처리 중인지 여부", + "Fields": { + "Node": "노드", + "Node-Help": "확인할 처리 노드입니다." + }, + "Outputs": { + "1": "노드에서 처리 중입니다.", + "2": "노드에서 처리 중이 아닙니다." + } + }, + "IsWindows": { + "Description": "이 흐름이 Windows에서 실행되고 있는지 확인합니다.", + "Label": "Windows인지 여부", + "Outputs": { + "1": "Windows에서 실행 중입니다.", + "2": "Windows에서 실행되지 않습니다." + } + }, + "ListIterator": { + "Description": "주어진 목록의 모든 문자열을 반복하고 그 문자열을 하위 흐름에 대해 실행합니다.", + "Label": "목록 반복기", + "Fields": { + "Flow": "흐름", + "Flow-Help": "문자열을 실행할 하위 흐름입니다.", + "List": "목록", + "List-Help": "반복할 목록을 포함하는 변수의 이름입니다." + }, + "Outputs": { + "1": "목록 반복 완료" + } + }, + "Log": { + "Description": "흐름 로그에 메시지를 기록합니다.", + "Label": "로그", + "Fields": { + "LogType": "유형", + "Message": "메시지" + }, + "Outputs": { + "1": "메시지가 기록되었습니다." + } + }, + "Matches": { + "Description": "값 집합을 비교하고 조건을 일치시켜 어떤 출력을 호출할지 결정합니다.", + "Label": "일치", + "Fields": { + "MatchConditions": "", + "MatchConditions-Help": "어떤 출력을 호출해야 하는지 테스트할 일치 항목입니다.", + "MatchConditionsKey": "값", + "MatchConditionsValue": "식" + } + }, + "MatchesAll": { + "Description": "값 집합을 비교하고 모든 조건이 일치하는지 확인합니다.", + "Label": "모두 일치", + "Fields": { + "MatchConditions": "", + "MatchConditionsHelp": "테스트할 조건으로, 어떤 출력을 호출해야 하는지 결정합니다.", + "MatchConditionsKey": "값", + "MatchConditionsValue": "식" + }, + "Outputs": { + "1": "모든 조건이 일치합니다.", + "2": "모든 조건이 일치하지 않습니다." + } + }, + "MoveFile": { + "Description": "파일을 대상 폴더로 이동합니다.", + "Label": "파일 이동", + "Fields": { + "AdditionalFiles": "추가 파일", + "AdditionalFiles-Help": "디렉토리에서 새 디렉토리로 이동할 추가 파일입니다.\n각 값은 유효한 리터럴 경로와 와일드카드 (* 및 ?) 문자의 조합을 포함할 수 있지만, 정규 표현식은 지원하지 않습니다.", + "AdditionalFilesFromOriginal": "원본 디렉토리", + "AdditionalFilesFromOriginal-Help": "추가 파일이 작업 디렉토리에서 이동해야 하는지 원본 디렉토리에서 이동해야 하는지 여부입니다. 원본 디렉토리에서 이동하려면 켭니다.", + "DeleteOriginal": "원본 삭제", + "DeleteOriginal-Help": "원본 파일이 삭제되어야 하는 경우, 이는 작업 파일이 원본 파일과 다를 때만 발생합니다.", + "DestinationFile": "대상 파일", + "DestinationFile-Help": "파일을 이동할 파일 이름입니다. 비어 있으면 원본 파일 이름이 사용됩니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "파일이 이동될 폴더입니다.", + "InputFile": "이동할 파일", + "InputFile-Help": "이동할 파일입니다. 비어 있으면 작업 파일이 이동됩니다.", + "InputFile-Placeholder": "작업 파일", + "MoveFolder": "폴더 복사", + "MoveFolder-Help": "상대 라이브러리 폴더 구조도 복사해야 하는지 여부입니다.", + "PreserverOriginalDates": "날짜 보존", + "PreserverOriginalDates-Help": "원본 입력 파일의 원본 생성 시간과 마지막 수정 시간을 보존해야 하는지 여부입니다." + }, + "Outputs": { + "1": "파일이 이동되었습니다.", + "2": "파일이 이동되었지만 원본 파일을 삭제할 수 없었습니다." + } + }, + "MoveFolder": { + "Description": "폴더를 이동합니다.", + "Label": "폴더 이동", + "Fields": { + "CreateSubfolder": "하위 폴더 생성", + "CreateSubfolder-Help": "대상 폴더에 소스 폴더의 이름을 가진 하위 폴더가 생성될지 여부입니다.", + "DestinationPath": "대상", + "DestinationPath-Help": "소스 폴더를 이동할 대상 폴더입니다.", + "SourcePath": "소스", + "SourcePath-Help": "이동할 폴더입니다. 비워두면 작업 파일이 사용되며, 이것이 폴더가 아닐 경우 흐름 요소가 실패합니다." + }, + "Outputs": { + "1": "폴더가 이동되었습니다." + } + }, + "OlderThan": { + "Description": "폴더가 지정된 범위보다 오래된 경우 확인합니다.", + "Label": "보다 오래됨", + "Fields": { + "Date": "날짜", + "Number": "숫자", + "Unit": "단위" + }, + "Outputs": { + "1": "파일이 오래됨", + "2": "파일이 오래되지 않음" + } + }, + "OriginalFile": { + "Description": "흐름의 현재 작업 파일을 흐름을 시작한 원본 파일로 설정합니다.", + "Label": "원본 파일", + "Outputs": { + "1": "작업 파일이 원본 파일로 설정되었습니다." + } + }, + "PatternMatch": { + "Description": "작업 파일과 원본 파일을 정규 표현식으로 테스트합니다.\n\n출력 1: 표현식과 일치\n출력 2: 일치하지 않음", + "Label": "패턴 일치", + "Fields": { + "Pattern": "패턴", + "Pattern-Help": "C# 정규 표현식 사양을 사용하는 정규 표현식입니다." + }, + "Outputs": { + "1": "표현식과 일치", + "2": "일치하지 않음" + } + }, + "PatternReplacer": { + "Description": "파일 이름에서 대체 작업을 수행할 수 있습니다. 정규 표현식을 사용한 대체 또는 간단한 문자열 대체를 사용할 수 있습니다.\n\n출력 1: 대체 완료\n출력 2: 대체되지 않음", + "Label": "파일 이름 패턴 대체기", + "Fields": { + "Replacements": "대체", + "ReplacementsKey": "패턴", + "ReplacementsValue": "값", + "UseWorkingFileName": "작업 파일 이름 사용", + "UseWorkingFileName-Help": "현재 작업 파일 이름을 사용할지 여부입니다. false인 경우 들어오는 파일의 원본 파일 이름이 사용됩니다." + }, + "Outputs": { + "1": "대체 완료", + "2": "대체되지 않음" + } + }, + "PowerShellScript": { + "Description": "Windows 환경에서 PowerShell(.ps1) 스크립트를 실행할 수 있습니다.", + "Label": "PowerShell 스크립트 (.ps1)", + "Fields": { + "Code": "코드" + }, + "Outputs": { + "1": "1을 반환했습니다.", + "10": "10을 반환했습니다.", + "2": "2를 반환했습니다.", + "3": "3을 반환했습니다.", + "4": "4를 반환했습니다.", + "5": "5를 반환했습니다.", + "6": "6을 반환했습니다.", + "7": "7을 반환했습니다.", + "8": "8을 반환했습니다.", + "9": "9를 반환했습니다." + } + }, + "Random": { + "Description": "무작위 출력을 선택합니다.", + "Label": "무작위", + "Fields": { + "Outputs": "출력", + "Outputs-Help": "호출될 수 있는 출력의 수입니다." + } + }, + "Renamer": { + "Description": "작업 파일의 이름을 변경합니다.\n패턴 필드 내에 '{' 키를 입력하여 변수를 사용할 수 있습니다.", + "Label": "이름 변경기", + "Fields": { + "CsvFile": "CSV 파일", + "CsvFile-Help": "원본 이름과 이름이 변경된 파일을 이 파일에 추가합니다. 파일을 변경하기 전에 ''로그만'' 사용하여 이름 변경기를 테스트할 때 유용합니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "파일을 다른 폴더로 이동해야 하는지 여부입니다.", + "LogOnly": "로그만", + "LogOnly-Help": "파일 이름을 실제로 변경하지 않고 이 흐름 요소를 테스트하려는 경우 켭니다.", + "Pattern": "새 이름", + "Pattern-Help": "파일의 새 이름입니다. 변수를 사용할 수 있습니다. 비어 있는 () 및 '{}'는 제거됩니다." + }, + "Outputs": { + "1": "파일 이름이 변경되었습니다." + } + }, + "ReplaceOriginal": { + "Description": "작업 파일로 원본 파일을 대체합니다.\n\n작업 파일의 확장이 다를 경우 원본 파일이 삭제되고 작업 파일이 원본 파일로 새로운 확장자로 이동됩니다.\n예: File.avi에서 File.mkv로", + "Label": "원본 대체", + "Fields": { + "PreserverOriginalDates": "날짜 보존", + "PreserverOriginalDates-Help": "원본 입력 파일의 원본 생성 시간과 마지막 수정 시간을 보존해야 하는지 여부입니다." + }, + "Outputs": { + "1": "원본 파일이 대체되었습니다." + } + }, + "Reprocess": { + "Description": "이 흐름 요소를 사용하면 다른 처리 노드로 원본 라이브러리 파일을 재처리할 수 있습니다.\n\n현재 파일을 처리하고 있는 것과 동일한 처리 노드를 선택하면 흐름이 실패합니다.", + "Label": "재처리", + "Fields": { + "Node": "노드", + "Node-Help": "이 파일을 처리할 처리 노드입니다." + } + }, + "SetVariable": { + "Description": "흐름에서 변수를 설정합니다.", + "Label": "변수 설정", + "Fields": { + "Value": "값", + "Value-Help": "설정할 변수의 값입니다.", + "Variable": "변수", + "Variable-Help": "설정할 변수의 이름입니다." + }, + "Outputs": { + "1": "변수 설정됨" + } + }, + "SetWorkingFile": { + "Description": "현재 작업 파일을 지정된 파일로 업데이트합니다.", + "Label": "작업 파일 설정", + "Fields": { + "DontDeletePrevious": "이전 파일 삭제 안 함", + "DontDeletePrevious-Help": "이전 *임시* 작업 파일을 *삭제하지 않아야* 하는지 여부입니다.\n임시 파일만 삭제되며, FileFlows가 실행자의 임시 디렉터리에 생성한 파일은 삭제되지 않습니다.", + "File": "파일", + "File-Description": "새 작업 파일 또는 폴더의 경로입니다." + }, + "Outputs": { + "1": "작업 파일 설정됨" + } + }, + "SevenZip": { + "Description": "입력을 7zip으로 압축합니다.", + "Label": "7-Zip", + "Fields": { + "CompressionLevel": "압축 수준", + "CompressionLevel-Help": "압축할 때 사용할 압축 수준입니다.", + "CompressionMethod": "압축 방법", + "CompressionMethod-Help": "압축에 사용되는 압축 방법으로 LZMA2를 권장합니다.", + "DestinationFile": "대상 파일", + "DestinationFile-Help": "새로 생성된 7zip의 파일 이름입니다. 비어 있으면 항목의 이름이 7zip 파일로 사용됩니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "7zip 파일을 배치할 대상 폴더입니다. 비어 있으면 7zip이 라이브러리 루트에 배치됩니다." + }, + "Outputs": { + "1": "7zip 생성됨" + } + }, + "ShellScript": { + "Description": "Unix와 유사한 환경에서 쉘(.sh) 스크립트를 실행할 수 있습니다.", + "Label": "쉘 스크립트 (.sh)", + "Fields": { + "Code": "코드" + }, + "Outputs": { + "1": "1을 반환했습니다.", + "10": "10을 반환했습니다.", + "2": "2를 반환했습니다.", + "3": "3을 반환했습니다.", + "4": "4를 반환했습니다.", + "5": "5를 반환했습니다.", + "6": "6을 반환했습니다.", + "7": "7을 반환했습니다.", + "8": "8을 반환했습니다.", + "9": "9를 반환했습니다." + } + }, + "Sleep": { + "Description": "흐름을 일시 중지합니다.", + "Label": "일시 중지", + "Fields": { + "Milliseconds": "밀리초", + "Milliseconds-Help": "흐름을 얼마나 오랫동안 일시 중지할 것인지입니다. 1 밀리초에서 1시간 사이여야 합니다." + }, + "Outputs": { + "1": "흐름 재개됨" + } + }, + "Touch": { + "Description": "파일 또는 디렉터리를 수정하여 마지막 수정 시간을 현재로 설정합니다.", + "Label": "터치", + "Fields": { + "FileName": "파일 이름", + "FileName-Help": "수정할 파일 또는 폴더의 전체 파일 이름입니다.\n비어 있으면 작업 파일이 사용됩니다." + }, + "Outputs": { + "1": "항목 수정 성공" + } + }, + "Unpack": { + "Description": "아카이브(zip, rar, tar 등)를 압축 해제할 수 있습니다.", + "Label": "압축 해제", + "Fields": { + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "파일을 압축 해제할 대상 폴더입니다.", + "File": "파일", + "File-Help": "압축 해제할 파일의 이름입니다. 비워두면 현재 작업 파일이 사용됩니다." + }, + "Outputs": { + "1": "파일 압축 해제됨" + } + }, + "VariableMatch": { + "Description": "입력이 저장된 변수를 일치하는지 테스트합니다.", + "Label": "변수 일치", + "Fields": { + "Input": "값", + "Input-Help": "변수와 일치시킬 값입니다.", + "Variable": "변수", + "Variable-Help": "일치시킬 변수입니다.", + "VariableName": "변수", + "VariableName-Help": "일치시킬 변수입니다." + }, + "Outputs": { + "1": "입력이 변수와 일치함", + "2": "입력이 변수와 일치하지 않음" + } + }, + "WebRequest": { + "Description": "웹 요청을 보낼 수 있습니다.", + "Label": "웹 요청", + "Fields": { + "Body": "본문", + "Body-Help": "전송되는 요청의 본문입니다. 이 필드에서는 변수를 사용할 수 있습니다.", + "ContentType": "콘텐츠 유형", + "ContentType-Help": "보낼 메시지의 Content-Type입니다.", + "Headers": "헤더", + "Headers-Help": "요청과 함께 전송할 선택적 헤더입니다.", + "HeadersKey": "키", + "HeadersValue": "값", + "Method": "메서드", + "Method-Help": "이 요청을 전송할 때 사용할 웹 메서드입니다.", + "Url": "URL", + "Url-Help": "요청의 URL입니다." + }, + "Outputs": { + "1": "성공적으로 전송됨", + "2": "요청이 비성공 상태 코드를 반환함" + } + }, + "WriteText": { + "Description": "파일에 텍스트를 씁니다.", + "Label": "텍스트 쓰기", + "Fields": { + "File": "파일", + "File-Help": "텍스트를 쓸 파일입니다.", + "Text": "텍스트", + "Text-Help": "파일에 쓸 텍스트입니다. 비워두면 현재 작업 파일의 전체 경로가 기록됩니다." + }, + "Outputs": { + "1": "파일에 텍스트가 작성됨" + } + }, + "Zip": { + "Description": "입력을 압축할 수 있습니다.", + "Label": "압축", + "Fields": { + "DestinationFile": "대상 파일", + "DestinationFile-Help": "새로 생성된 zip의 파일 이름입니다. 비어 있으면 항목의 이름이 zip 파일로 사용됩니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "zip 파일을 배치할 대상 폴더입니다. 비어 있으면 zip이 라이브러리 루트에 배치됩니다.", + "Path": "경로", + "Path-Help": "압축할 파일 또는 폴더의 경로입니다. 비어 있으면 작업 파일이 압축됩니다.", + "SetWorkingFile": "작업 파일 설정", + "SetWorkingFile-Help": "새로 생성된 zip이 새 작업 파일이 되어야 하는지 여부입니다." + }, + "Outputs": { + "1": "zip 생성됨" + } + } + } + }, + "Plugins": { + "BasicNodes": { + "Description": "FileFlows의 기본 흐름 요소입니다. 이 플러그인은 파일을 처리하기 위한 기본 및 일반 흐름 요소를 포함합니다.\n이 플러그인은 FileFlows가 작동하는 데 필요합니다.", + "Label": "기본" + } + } +} \ No newline at end of file diff --git a/BasicNodes/i18n/zht.json b/BasicNodes/i18n/zht.json new file mode 100644 index 00000000..9165ddcb --- /dev/null +++ b/BasicNodes/i18n/zht.json @@ -0,0 +1,769 @@ +{ + "Enums": { + "LogType": { + "Debug": "除錯", + "Error": "錯誤", + "Info": "資訊", + "Warning": "警告" + } + }, + "Flow": { + "Parts": { + "BatchScript": { + "Description": "允許您在 Windows 環境中執行批次 (.bat) 腳本。", + "Label": "批次腳本 (.bat)", + "Fields": { + "Code": "程式碼" + }, + "Outputs": { + "1": "返回 1", + "10": "返回 10", + "2": "返回 2", + "3": "返回 3", + "4": "返回 4", + "5": "返回 5", + "6": "返回 6", + "7": "返回 7", + "8": "返回 8", + "9": "返回 9" + } + }, + "CompleteFlow": { + "Description": "將流程完成/結束為成功狀態", + "Label": "完成流程" + }, + "CopyFile": { + "Description": "將檔案複製到目的資料夾", + "Label": "複製檔案", + "Fields": { + "AdditionalFiles": "附加檔案", + "AdditionalFiles-Help": "要從目錄複製到新目錄的附加檔案。\n每個值可以包含有效的字面路徑和通配符 (* 和 ?) 字元的組合,但不支援正則表達式。", + "AdditionalFilesFromOriginal": "原始目錄", + "AdditionalFilesFromOriginal-Help": "附加檔案是否應該從工作目錄或原始目錄複製。啟用以從原始目錄複製。", + "CopyFolder": "複製資料夾", + "CopyFolder-Help": "是否也應該複製相對的資料庫資料夾結構", + "DestinationFile": "目的檔案", + "DestinationFile-Help": "要複製檔案的檔名。如果留空,將使用原始檔名", + "DestinationPath": "目的資料夾", + "DestinationPath-Help": "檔案將被複製到的資料夾", + "InputFile": "要複製的檔案", + "InputFile-Help": "要複製的檔案,如果留空,則會複製工作檔案", + "InputFile-Placeholder": "工作檔案", + "PreserverOriginalDates": "保留日期", + "PreserverOriginalDates-Help": "是否應保留原始輸入檔案的原始創建時間和最後寫入時間。" + }, + "Outputs": { + "1": "檔案已複製" + } + }, + "CSharpScript": { + "Description": "允許您在流程中執行 C# 程式碼。", + "Label": "C# 函數", + "Fields": { + "Code": "程式碼" + }, + "Outputs": { + "1": "返回 1", + "10": "返回 10", + "2": "返回 2", + "3": "返回 3", + "4": "返回 4", + "5": "返回 5", + "6": "返回 6", + "7": "返回 7", + "8": "返回 8", + "9": "返回 9" + } + }, + "Delete": { + "Description": "刪除檔案或資料夾", + "Label": "刪除", + "Fields": { + "FileName": "路徑", + "FileName-Help": "要刪除的檔案或資料夾的路徑。\n\n如果留空,將刪除當前工作檔案。" + }, + "Outputs": { + "1": "檔案已刪除" + } + }, + "DeleteSourceDirectory": { + "Description": "刪除原始資料庫檔案的來源資料夾", + "Label": "刪除來源資料夾", + "Fields": { + "IfEmpty": "如果為空", + "IfEmpty-Help": "僅在來源資料夾為空時刪除", + "IncludePatterns": "包含模式", + "IncludePatterns-Help": "可選,如果設定,僅計算與這些模式匹配的檔案來判斷資料夾是否為空。這些模式中的任何一個都可以匹配。", + "TopMostOnly": "僅最上層", + "TopMostOnly-Help": "啟用時,僅刪除直接包含檔案的資料夾,保持更高層的資料夾不變。" + }, + "Outputs": { + "1": "來源資料夾已刪除", + "2": "資料夾未被刪除" + } + }, + "Executor": { + "Description": "對檔案執行以下過程。\n輸出 1:該過程返回成功退出代碼\n輸出 2:該過程返回非成功退出代碼。", + "Label": "執行器", + "Fields": { + "Arguments": "參數", + "Arguments-Help": "要傳遞給要執行的過程的參數", + "FileName": "檔案名稱", + "FileName-Help": "要執行的檔案名稱", + "OutputErrorVariable": "輸出錯誤變數", + "OutputErrorVariable-Help": "可選的變數名稱,用於存儲過程的錯誤輸出", + "OutputVariable": "輸出變數", + "OutputVariable-Help": "可選的變數名稱,用於存儲過程的輸出", + "SuccessCode": "成功代碼", + "SuccessCode-Help": "該過程的退出代碼,表示該過程成功。通常應為0。", + "Timeout": "超時", + "Timeout-Help": "該過程可以運行多長時間後被終止。使用0表示不超時。", + "Timeout-Suffix": "秒", + "WorkingDirectory": "工作資料夾", + "WorkingDirectory-Help": "該過程將從中執行的資料夾" + }, + "Outputs": { + "1": "過程返回成功", + "2": "過程返回失敗" + } + }, + "FailFlow": { + "Description": "立即失敗流,如果您希望某條路徑失敗,這很有用。", + "Label": "失敗流", + "Fields": { + "Reason": "原因", + "Reason-Help": "可選的原因,以記錄流失敗的原因。" + } + }, + "FileDateCompare": { + "Description": "檢查檔案的創建時間或最後寫入時間是否符合指定的日期約束。", + "Label": "檔案日期比較", + "Fields": { + "Date": "日期", + "DateComparision": "比較", + "FileName": "檔案名稱", + "FileName-Help": "要檢查的檔案。留空以檢查當前工作檔案。" + }, + "Outputs": { + "1": "符合日期約束。", + "2": "不符合日期約束。" + } + }, + "FileExists": { + "Description": "檢查檔案是否存在\n\n輸出 1:檔案存在\n輸出 2:檔案不存在", + "Label": "檔案存在", + "Fields": { + "FileName": "檔案名稱", + "FileName-Help": "要檢查的檔案。留空以檢查當前工作檔案。" + }, + "Outputs": { + "1": "檔案存在", + "2": "檔案不存在" + } + }, + "FileExtension": { + "Description": "檢查檔案是否具有配置的擴展名。\n\n輸出 1:匹配\n輸出 2:不匹配", + "Label": "檔案擴展名", + "Fields": { + "Extensions": "擴展名", + "Extensions-Help": "一個不區分大小寫的檔案擴展名列表,將用於匹配。\n輸出 1:匹配\n輸出 2:不匹配" + }, + "Outputs": { + "1": "擴展名匹配", + "2": "擴展名不匹配" + } + }, + "FileSize": { + "Description": "檢查檔案大小是否符合配置的參數。數值以兆字節為單位。\n\n輸出 1:匹配\n輸出 2:不匹配", + "Label": "檔案大小", + "Fields": { + "Comparison": "比較", + "Lower": "大於", + "Lower-Help": "它必須大於這個數量的兆字節", + "Lower-Suffix": "MB", + "Upper": "小於", + "Upper-Help": "它必須小於這個數量的兆字節。留作0以不測試上限。", + "Upper-Suffix": "MB" + }, + "Outputs": { + "1": "檔案大小在範圍內", + "2": "檔案大小不在範圍內" + } + }, + "FileSizeCompare": { + "Description": "檢查檔案大小是否與原始檔案大小變化。", + "Label": "檔案大小比較", + "Outputs": { + "1": "小於原始檔案", + "2": "與原始檔案大小相同", + "3": "大於原始檔案" + } + }, + "FileSizeWithin": { + "Description": "檢查新檔案大小是否在原始檔案大小的允許範圍內。", + "Label": "檔案大小在內", + "Fields": { + "Value": "數值", + "Value-Help": "允許的檔案大小差異,此數值可以是加或減此差異。" + }, + "Outputs": { + "1": "檔案大小在允許範圍內", + "2": "檔案大小不在允許範圍內" + } + }, + "FolderDateCompare": { + "Description": "檢查資料夾的創建時間或最後寫入時間是否符合指定的日期約束。", + "Label": "資料夾日期比較", + "Fields": { + "Date": "日期", + "DateComparision": "比較", + "Path": "路徑", + "Path-Help": "要檢查的資料夾路徑。留空以檢查當前工作檔案。\n如果指定了一個檔案,將檢查包含該檔案的資料夾。" + }, + "Outputs": { + "1": "符合日期約束。", + "2": "不符合日期約束。" + } + }, + "FolderIterator": { + "Description": "迭代給定資料夾中的所有檔案,並對這些檔案執行子流。", + "Label": "資料夾迭代器", + "Fields": { + "Flow": "流", + "Flow-Help": "對檔案執行的子流。", + "Folder": "資料夾", + "Folder-Help": "將迭代其檔案的資料夾。", + "Pattern": "模式", + "Pattern-Help": "任何可選的模式來限制迭代的檔案,這可以是以`*`開頭的通配符模式或正則表達式。", + "Recursive": "遞歸", + "Recursive-Help": "是否也應迭代所有子資料夾中的檔案,或僅應迭代頂級檔案。" + }, + "Outputs": { + "1": "資料夾檔案已迭代" + } + }, + "Function": { + "Label": "函數", + "Fields": { + "Code": "代碼", + "Code-Help": "返回 -1 以表示錯誤並停止流程。返回 0 以表示流程完成。返回 1 或更多以調用所需的輸出。", + "Outputs": "輸出", + "Template": "模板", + "Template-Help": "警告:這將用您選擇的模板替換代碼塊中的任何內容。" + }, + "Outputs": { + "1": "返回 1", + "10": "返回 10", + "2": "返回 2", + "3": "返回 3", + "4": "返回 4", + "5": "返回 5", + "6": "返回 6", + "7": "返回 7", + "8": "返回 8", + "9": "返回 9" + } + }, + "GotoFlow": { + "Description": "這允許您切換到另一個流程以進行處理。此流程將退出,並且參數和工作檔案將傳遞到新流程中。", + "Label": "轉到流程", + "Fields": { + "Flow": "流程", + "UpdateFlowUsed": "更新流程", + "UpdateFlowUsed-Help": "如果文件的 `Flow` 應更新以引用此新流程,或將其保留為原始流程。" + } + }, + "HasHardLinks": { + "Description": "檢查文件是否有硬鏈接", + "Label": "是否有硬鏈接", + "Fields": { + "Count": "計數", + "Count-Help": "所需的硬鏈接數量以調用輸出 1。", + "FileName": "檔案名稱", + "FileName-Help": "要檢查的檔案。留空以檢查當前工作檔案。" + }, + "Outputs": { + "1": "檢測到硬鏈接", + "2": "未檢測到硬鏈接" + } + }, + "IfBoolean": { + "Description": "測試變數是否為真或假", + "Label": "如果布林值", + "Fields": { + "Variable": "變數", + "Variable-Help": "要檢查的變數名稱" + }, + "Outputs": { + "1": "真", + "2": "假" + } + }, + "IfString": { + "Description": "測試變數是否與字串匹配", + "Label": "如果字串", + "Fields": { + "Options": "選項", + "Options-Help": "要匹配的字串。", + "Outputs": "輸出", + "Outputs-Help": "這應該與選項數量匹配", + "Variable": "變數", + "Variable-Help": "要檢查的變數名稱" + }, + "Outputs": { + "1": "匹配字串 1", + "10": "匹配字串 10", + "2": "匹配字串 2", + "3": "匹配字串 3", + "4": "匹配字串 4", + "5": "匹配字串 5", + "6": "匹配字串 6", + "7": "匹配字串 7", + "8": "匹配字串 8", + "9": "匹配字串 9" + } + }, + "InputFile": { + "Description": "一個用於檔案的輸入流程元素。這是必需的,是流程的起始點。可以使用任何輸入流程元素,只需一個即可。", + "Label": "輸入檔案", + "Outputs": { + "1": "庫檔案" + } + }, + "InputFolder": { + "Description": "一個用於資料夾的輸入流程元素。這僅在使用此流程的庫配置為資料夾時有效。", + "Label": "輸入資料夾", + "Outputs": { + "1": "庫資料夾" + } + }, + "IsDocker": { + "Description": "確定此流程是否在 Docker 上運行", + "Label": "是否為 Docker", + "Outputs": { + "1": "正在 Docker 上運行", + "2": "未在 Docker 上運行" + } + }, + "IsFromLibrary": { + "Description": "檢查正在處理的文件是否來自指定的庫。", + "Label": "來自庫", + "Fields": { + "Library": "庫", + "Library-Help": "要檢查的庫。" + }, + "Outputs": { + "1": "檔案來自指定的庫。", + "2": "檔案不來自指定的庫。" + } + }, + "IsLinux": { + "Description": "確定此流程是否在 Linux 上運行", + "Label": "是否為 Linux", + "Outputs": { + "1": "正在 Linux 上運行", + "2": "未在 Linux 上運行" + } + }, + "IsMacOS": { + "Description": "判斷此流程是否在 MacOS 上運行", + "Label": "是否是 MacOS", + "Outputs": { + "1": "正在 MacOS 上運行", + "2": "未在 MacOS 上運行" + } + }, + "IsProcessingOnNode": { + "Description": "檢查流程是否目前正在指定的處理節點上進行處理。", + "Label": "是否在節點上處理", + "Fields": { + "Node": "節點", + "Node-Help": "要檢查的處理節點。" + }, + "Outputs": { + "1": "正在節點上處理", + "2": "未在節點上處理" + } + }, + "IsWindows": { + "Description": "判斷此流程是否在 Windows 上運行", + "Label": "是否是 Windows", + "Outputs": { + "1": "正在 Windows 上運行", + "2": "未在 Windows 上運行" + } + }, + "ListIterator": { + "Description": "迭代給定列表中的所有字符串,並在子流程中執行這些字符串。", + "Label": "列表迭代器", + "Fields": { + "Flow": "流程", + "Flow-Help": "要執行字符串的子流程。", + "List": "列表", + "List-Help": "包含要迭代的列表的變量名稱。" + }, + "Outputs": { + "1": "列表已迭代" + } + }, + "Log": { + "Description": "將消息記錄到流程日誌", + "Label": "日誌", + "Fields": { + "LogType": "類型", + "Message": "消息" + }, + "Outputs": { + "1": "消息已記錄" + } + }, + "Matches": { + "Description": "比較一組值並匹配條件,以確定應該調用哪個輸出", + "Label": "匹配", + "Fields": { + "MatchConditions": "", + "MatchConditions-Help": "測試的匹配條件,以確定應該調用哪個輸出。", + "MatchConditionsKey": "值", + "MatchConditionsValue": "表達式" + } + }, + "MatchesAll": { + "Description": "比較一組值並檢查是否所有條件匹配。", + "Label": "匹配所有", + "Fields": { + "MatchConditions": "", + "MatchConditionsHelp": "要測試的條件,確定應該調用哪個輸出。", + "MatchConditionsKey": "值", + "MatchConditionsValue": "表達式" + }, + "Outputs": { + "1": "所有條件匹配", + "2": "並非所有條件匹配" + } + }, + "MoveFile": { + "Description": "將文件移動到目標文件夾", + "Label": "移動文件", + "Fields": { + "AdditionalFiles": "附加文件", + "AdditionalFiles-Help": "從目錄移動到新目錄的附加文件。\n每個值可以包含有效文字路徑和通配符(* 和 ?)字符的組合,但不支持正則表達式。", + "AdditionalFilesFromOriginal": "原始目錄", + "AdditionalFilesFromOriginal-Help": "附加文件應該從工作目錄移動還是從原始目錄移動。如果啟用,則從原始目錄移動。", + "DeleteOriginal": "刪除原始文件", + "DeleteOriginal-Help": "如果應該刪除原始文件,則僅在工作文件與原始文件不同時才會這樣做。", + "DestinationFile": "目標文件", + "DestinationFile-Help": "要移動到的文件名。如果為空,則使用原始文件名。", + "DestinationPath": "目標文件夾", + "DestinationPath-Help": "要移動文件的文件夾。", + "InputFile": "要移動的文件", + "InputFile-Help": "要移動的文件,如果留空,則將移動工作文件。", + "InputFile-Placeholder": "工作文件", + "MoveFolder": "複製文件夾", + "MoveFolder-Help": "是否應該複製相對的庫文件夾結構。", + "PreserverOriginalDates": "保留日期", + "PreserverOriginalDates-Help": "是否應保留原始輸入文件的原始創建時間和最後寫入時間。" + }, + "Outputs": { + "1": "文件已移動", + "2": "文件已移動,但無法刪除原始文件" + } + }, + "MoveFolder": { + "Description": "移動一個文件夾", + "Label": "移動文件夾", + "Fields": { + "CreateSubfolder": "創建子文件夾", + "CreateSubfolder-Help": "是否在目標文件夾中創建一個具有源文件夾名稱的子文件夾。", + "DestinationPath": "目標", + "DestinationPath-Help": "要將源文件夾移動到的目標文件夾。", + "SourcePath": "來源", + "SourcePath-Help": "要移動的文件夾,如果留空,則將使用工作文件;如果這不是文件夾,則流程元素將失敗。" + }, + "Outputs": { + "1": "文件夾已移動" + } + }, + "OlderThan": { + "Description": "檢查一個文件夾是否比指定範圍舊", + "Label": "比...舊", + "Fields": { + "Date": "日期", + "Number": "數量", + "Unit": "單位" + }, + "Outputs": { + "1": "文件夾較舊", + "2": "文件夾不較舊" + } + }, + "OriginalFile": { + "Description": "將流程中的當前工作文件設置為啟動流程的原始文件", + "Label": "原始文件", + "Outputs": { + "1": "工作文件設置為原始文件" + } + }, + "PatternMatch": { + "Description": "測試工作檔案和原始檔案是否符合正則表達式。\n\n輸出 1: 符合表達式\n輸出 2: 不符合", + "Label": "模式匹配", + "Fields": { + "Pattern": "模式", + "Pattern-Help": "使用 C# 規範的正則表達式。" + }, + "Outputs": { + "1": "符合表達式", + "2": "不符合" + } + }, + "PatternReplacer": { + "Description": "允許您在檔名中進行替換。可以使用正則表達式進行替換,或簡單的字串替換。\n\n輸出 1: 替換完成\n輸出 2: 沒有進行替換", + "Label": "檔名模式替換器", + "Fields": { + "Replacements": "替換", + "ReplacementsKey": "模式", + "ReplacementsValue": "值", + "UseWorkingFileName": "使用工作檔名", + "UseWorkingFileName-Help": "如果應使用當前工作檔名,或如果為 false,將使用進來檔案的原始檔名。" + }, + "Outputs": { + "1": "替換完成", + "2": "沒有進行替換" + } + }, + "PowerShellScript": { + "Description": "允許您在 Windows 環境中執行 PowerShell (.ps1) 腳本。", + "Label": "PowerShell 腳本 (.ps1)", + "Fields": { + "Code": "程式碼" + }, + "Outputs": { + "1": "返回 1", + "10": "返回 10", + "2": "返回 2", + "3": "返回 3", + "4": "返回 4", + "5": "返回 5", + "6": "返回 6", + "7": "返回 7", + "8": "返回 8", + "9": "返回 9" + } + }, + "Random": { + "Description": "隨機選擇一個輸出", + "Label": "隨機", + "Fields": { + "Outputs": "輸出", + "Outputs-Help": "可能被調用的輸出數量。" + } + }, + "Renamer": { + "Description": "重新命名工作檔案。\n可以通過在模式欄位中輸入鍵 '{' 使用變數。", + "Label": "重命名器", + "Fields": { + "CsvFile": "CSV 檔案", + "CsvFile-Help": "將原始名稱和重命名檔案附加到此檔案。當使用「僅記錄」來測試重命名器而不實際更改檔案時很有用。", + "DestinationPath": "目標資料夾", + "DestinationPath-Help": "如果檔案應移動到不同的資料夾。", + "LogOnly": "僅記錄", + "LogOnly-Help": "如果您只想測試此流程元素而不實際重命名檔案,請打開。", + "Pattern": "新名稱", + "Pattern-Help": "檔案的新名稱。可以使用變數。任何空的 () 和 '{}' 將被移除。" + }, + "Outputs": { + "1": "檔案已重命名" + } + }, + "ReplaceOriginal": { + "Description": "用工作檔案替換原始檔案。\n\n如果工作檔案的擴展名不同,原始檔案將被刪除,工作檔案將以新擴展名移動到原始檔案。\n例如:從 File.avi 到 File.mkv", + "Label": "替換原始檔案", + "Fields": { + "PreserverOriginalDates": "保留日期", + "PreserverOriginalDates-Help": "是否應保留原始輸入檔案的原始創建時間和最後寫入時間。" + }, + "Outputs": { + "1": "原始檔案已替換" + } + }, + "Reprocess": { + "Description": "該流程元素允許您使用不同的處理節點重新處理原始庫檔案。\n\n如果選擇的處理節點與當前處理檔案的節點相同,流程將失敗。", + "Label": "重新處理", + "Fields": { + "Node": "節點", + "Node-Help": "處理此檔案的處理節點。" + } + }, + "SetVariable": { + "Description": "在流程中設置變數。", + "Label": "設置變數", + "Fields": { + "Value": "值", + "Value-Help": "要設置的變數值。", + "Variable": "變數", + "Variable-Help": "要設置的變數名稱" + }, + "Outputs": { + "1": "變數已設置" + } + }, + "SetWorkingFile": { + "Description": "將當前工作檔案更新為指定的檔案。", + "Label": "設置工作檔案", + "Fields": { + "DontDeletePrevious": "不刪除先前的檔案", + "DontDeletePrevious-Help": "如果先前的 *臨時* 工作檔案 *不* 應被刪除。\n僅臨時檔案將被刪除,FileFlows 創建的檔案將被放入運行者臨時目錄中。", + "File": "檔案", + "File-Description": "新工作檔案或資料夾的路徑。" + }, + "Outputs": { + "1": "工作檔案已設置" + } + }, + "SevenZip": { + "Description": "允許您對輸入進行7zip壓縮", + "Label": "7-Zip", + "Fields": { + "CompressionLevel": "壓縮等級", + "CompressionLevel-Help": "壓縮時使用的壓縮等級。", + "CompressionMethod": "壓縮方法", + "CompressionMethod-Help": "用於壓縮的壓縮方法,推薦使用LZMA2。", + "DestinationFile": "目標檔案", + "DestinationFile-Help": "新創建的7zip的檔名。如果留空,將使用項目的名稱作為7zip檔案。", + "DestinationPath": "目標資料夾", + "DestinationPath-Help": "將7zip檔案放置的目標資料夾。如果留空,7zip將放置在庫根目錄中。" + }, + "Outputs": { + "1": "7zip創建成功" + } + }, + "ShellScript": { + "Description": "允許您在類Unix環境中執行shell (.sh) 腳本。", + "Label": "Shell 腳本 (.sh)", + "Fields": { + "Code": "代碼" + }, + "Outputs": { + "1": "返回 1", + "10": "返回 10", + "2": "返回 2", + "3": "返回 3", + "4": "返回 4", + "5": "返回 5", + "6": "返回 6", + "7": "返回 7", + "8": "返回 8", + "9": "返回 9" + } + }, + "Sleep": { + "Description": "暫停流程", + "Label": "暫停", + "Fields": { + "Milliseconds": "毫秒", + "Milliseconds-Help": "流程暫停的時間。必須介於1毫秒到1小時之間" + }, + "Outputs": { + "1": "流程恢復" + } + }, + "Touch": { + "Description": "觸碰檔案或資料夾,並將最後寫入時間設置為現在。", + "Label": "觸碰", + "Fields": { + "FileName": "檔案名稱", + "FileName-Help": "要觸碰的檔案或資料夾的完整檔名。\n如果留空,將使用工作檔案。" + }, + "Outputs": { + "1": "成功觸碰項目" + } + }, + "Unpack": { + "Description": "允許您解壓縮檔案(zip、rar、tar等)", + "Label": "解壓縮", + "Fields": { + "DestinationPath": "目標資料夾", + "DestinationPath-Help": "解壓縮檔案的目標資料夾。", + "File": "檔案", + "File-Help": "要解壓縮的檔案名稱。可以留空,若留空則使用當前工作檔案。" + }, + "Outputs": { + "1": "檔案已解壓縮" + } + }, + "VariableMatch": { + "Description": "測試輸入是否與存儲的變數匹配", + "Label": "變數匹配", + "Fields": { + "Input": "值", + "Input-Help": "要與變數匹配的值。", + "Variable": "變數", + "Variable-Help": "要匹配的變數", + "VariableName": "變數", + "VariableName-Help": "要匹配的變數" + }, + "Outputs": { + "1": "輸入與變數匹配", + "2": "輸入未與變數匹配" + } + }, + "WebRequest": { + "Description": "允許您發送網頁請求", + "Label": "網頁請求", + "Fields": { + "Body": "主體", + "Body-Help": "發送的請求主體。此字段可以使用變數。", + "ContentType": "內容類型", + "ContentType-Help": "要發送的消息的內容類型", + "Headers": "標頭", + "Headers-Help": "隨請求發送的可選標頭", + "HeadersKey": "鍵", + "HeadersValue": "值", + "Method": "方法", + "Method-Help": "發送此請求時使用的網頁方法", + "Url": "URL", + "Url-Help": "請求的URL" + }, + "Outputs": { + "1": "成功發送", + "2": "請求返回非成功狀態碼" + } + }, + "WriteText": { + "Description": "將文本寫入檔案", + "Label": "寫入文本", + "Fields": { + "File": "檔案", + "File-Help": "要寫入文本的檔案。", + "Text": "文本", + "Text-Help": "要寫入檔案的文本。如果留空,將寫入當前工作檔案的完整路徑。" + }, + "Outputs": { + "1": "文本已寫入檔案" + } + }, + "Zip": { + "Description": "允許您對輸入進行壓縮", + "Label": "壓縮", + "Fields": { + "DestinationFile": "目標檔案", + "DestinationFile-Help": "新創建的zip的檔名。如果留空,將使用項目的名稱作為zip檔案。", + "DestinationPath": "目標資料夾", + "DestinationPath-Help": "將zip檔案放置的目標資料夾。如果留空,zip將放置在庫根目錄中。", + "Path": "路徑", + "Path-Help": "要壓縮的檔案或資料夾的路徑。如果留空,將壓縮當前工作檔案。", + "SetWorkingFile": "設置工作檔案", + "SetWorkingFile-Help": "如果新創建的zip應成為新的工作檔案。" + }, + "Outputs": { + "1": "zip創建成功" + } + } + } + }, + "Plugins": { + "BasicNodes": { + "Description": "FileFlows 的基本流程元素。此插件包含基本且常見的流程元素,用於處理檔案。\n此插件是 FileFlows 正常運行所必需的。", + "Label": "基本" + } + } +} \ No newline at end of file diff --git a/ChecksumNodes/i18n/ko.json b/ChecksumNodes/i18n/ko.json new file mode 100644 index 00000000..9fb81760 --- /dev/null +++ b/ChecksumNodes/i18n/ko.json @@ -0,0 +1,40 @@ +{ + "Flow": { + "Parts": { + "MD5Checksum": { + "Description": "작업 파일의 MD5 체크섬을 계산하고 이를 변수 \"MD5\"와 \"Checksum\"에 저장합니다.", + "Label": "MD5 체크섬", + "Outputs": { + "1": "체크섬이 변수 \"MD5\"와 \"Checksum\"에 저장됨" + } + }, + "SHA1Checksum": { + "Description": "작업 파일의 SHA1 체크섬을 계산하고 이를 변수 \"SHA1\"와 \"Checksum\"에 저장합니다.", + "Label": "SHA1 체크섬", + "Outputs": { + "1": "체크섬이 변수 \"SHA1\"과 \"Checksum\"에 저장됨" + } + }, + "SHA256Checksum": { + "Description": "작업 파일의 SHA256 체크섬을 계산하고 이를 변수 \"SHA256\"와 \"Checksum\"에 저장합니다.", + "Label": "SHA256 체크섬", + "Outputs": { + "1": "체크섬이 변수 \"SHA256\"과 \"Checksum\"에 저장됨" + } + }, + "SHA512Checksum": { + "Description": "작업 파일의 SHA512 체크섬을 계산하고 이를 변수 \"SHA512\"와 \"Checksum\"에 저장합니다.", + "Label": "SHA512 체크섬", + "Outputs": { + "1": "체크섬이 변수 \"SHA512\"과 \"Checksum\"에 저장됨" + } + } + } + }, + "Plugins": { + "ChecksumNodes": { + "Description": "파일에 대해 체크섬을 실행할 수 있는 흐름 요소입니다.", + "Label": "체크섬" + } + } +} \ No newline at end of file diff --git a/ChecksumNodes/i18n/zht.json b/ChecksumNodes/i18n/zht.json new file mode 100644 index 00000000..b1972ec2 --- /dev/null +++ b/ChecksumNodes/i18n/zht.json @@ -0,0 +1,40 @@ +{ + "Flow": { + "Parts": { + "MD5Checksum": { + "Description": "計算工作文件的MD5校驗和,並將其存儲在變量\"MD5\"和\"Checksum\"中。", + "Label": "MD5 校驗和", + "Outputs": { + "1": "校驗和存儲在變量\"MD5\"和\"Checksum\"中" + } + }, + "SHA1Checksum": { + "Description": "計算工作文件的SHA1校驗和,並將其存儲在變量\"SHA1\"和\"Checksum\"中。", + "Label": "SHA1 校驗和", + "Outputs": { + "1": "校驗和存儲在變量\"SHA1\"和\"Checksum\"中" + } + }, + "SHA256Checksum": { + "Description": "計算工作文件的SHA256校驗和,並將其存儲在變量\"SHA256\"和\"Checksum\"中。", + "Label": "SHA256 校驗和", + "Outputs": { + "1": "校驗和存儲在變量\"SHA256\"和\"Checksum\"中" + } + }, + "SHA512Checksum": { + "Description": "計算工作文件的SHA512校驗和,並將其存儲在變量\"SHA512\"和\"Checksum\"中。", + "Label": "SHA512 校驗和", + "Outputs": { + "1": "校驗和存儲在變量\"SHA512\"和\"Checksum\"中" + } + } + } + }, + "Plugins": { + "ChecksumNodes": { + "Description": "提供對文件運行校驗和的能力的流程元素。", + "Label": "校驗和" + } + } +} \ No newline at end of file diff --git a/ComicNodes/Comics/ComicExtractor.cs b/ComicNodes/Comics/ComicExtractor.cs index 3c78fb30..26bc842b 100644 --- a/ComicNodes/Comics/ComicExtractor.cs +++ b/ComicNodes/Comics/ComicExtractor.cs @@ -15,7 +15,9 @@ public class ComicExtractor : Node public override string Icon => "fas fa-file-pdf"; /// public override string HelpUrl => "https://fileflows.com/docs/plugins/comic-nodes/comic-extractor"; - + /// + /// The cancelation token source + /// CancellationTokenSource cancellation = new CancellationTokenSource(); /// diff --git a/ComicNodes/i18n/ko.json b/ComicNodes/i18n/ko.json new file mode 100644 index 00000000..d29fa75e --- /dev/null +++ b/ComicNodes/i18n/ko.json @@ -0,0 +1,63 @@ +{ + "Flow": { + "Parts": { + "ComicConverter": { + "Description": "만화를 다른 만화책 형식으로 변환합니다.\n\nCBZ, CBR, CB7, PDF, GZ, BZ2 형식으로 변환하는 것을 지원합니다.", + "Label": "만화 변환기", + "Fields": { + "Codec": "코덱", + "Codec-Help": "이미지를 저장할 코덱", + "DeleteNonPageImages": "비페이지 이미지 삭제", + "DeleteNonPageImages-Help": "페이지를 위한 명명 구조를 따르지 않는 이미지를 삭제합니다. 즉, 숫자로 끝나지 않는 이미지.", + "EnsureTopDirectory": "최상위 디렉터리 확인", + "EnsureTopDirectory-Help": "모든 파일이 만화책 파일의 최상위 디렉터리에 직접 위치하고, 하위 디렉터리가 없도록 합니다.", + "Format": "형식", + "Format-Help": "만화를 변환할 형식", + "MaxHeight": "최대 높이", + "MaxHeight-Help": "페이지의 최대 높이, 조정 없이 유지하려면 0을 사용합니다.", + "MaxWidth": "최대 너비", + "MaxWidth-Help": "페이지의 최대 너비, 조정 없이 유지하려면 0을 사용합니다.", + "Quality": "품질", + "Quality-Help": "만화책 페이지의 품질, 0은 가장 압축되고 최악의 품질, 100은 최고의 품질" + }, + "Outputs": { + "1": "만화가 변환되어 임시 파일로 저장됨", + "2": "만화가 이미 원하는 형식임" + } + }, + "ComicExtractor": { + "Description": "만화책 형식에서 모든 파일을 추출하고 특정 폴더에 저장합니다.\n\nCBZ, CBR, CB7, PDF, GZ, BZ2 형식으로 추출하는 것을 지원합니다.", + "Label": "만화 추출기", + "Fields": { + "DestinationPath": "대상 경로", + "DestinationPath-Help": "추출한 만화책 파일을 저장할 폴더" + }, + "Outputs": { + "1": "만화가 추출됨" + } + }, + "CreateComicInfo": { + "Description": "만화의 경로를 분석하고 만화책 아카이브 내에 comicinfo.xml 파일을 생성합니다.", + "Label": "만화 정보 생성", + "Fields": { + "IssueDigits": "호 숫자", + "IssueDigits-Help": "이 수치만큼 앞에 0으로 패딩합니다.\n예를 들어, 1호의 경우 패딩이 3이면 호는 #001로 표시됩니다.", + "Publisher": "출판사", + "Publisher-Help": "만화가 출판사 디렉터리에 있을 경우, 더 많은 정보는 도움말을 참조하십시오.", + "RenameFile": "파일 이름 바꾸기", + "RenameFile-Help": "파일을 `시리즈 - 호 - 제목.확장자` 형식으로 이름을 바꿔야 하는지 여부" + }, + "Outputs": { + "1": "만화 정보가 만화 아카이브에 추가됨", + "2": "만화 정보가 이미 아카이브에 있음" + } + } + } + }, + "Plugins": { + "ComicNodes": { + "Description": "만화책(cbr, cbz, pdf 등) 처리를 위한 흐름 요소입니다.", + "Label": "만화" + } + } +} \ No newline at end of file diff --git a/ComicNodes/i18n/zht.json b/ComicNodes/i18n/zht.json new file mode 100644 index 00000000..e48b7859 --- /dev/null +++ b/ComicNodes/i18n/zht.json @@ -0,0 +1,63 @@ +{ + "Flow": { + "Parts": { + "ComicConverter": { + "Description": "將漫畫轉換為不同的漫畫書格式。\n\n支持從CBZ、CBR、CB7、PDF、GZ、BZ2轉換", + "Label": "漫畫轉換器", + "Fields": { + "Codec": "編解碼器", + "Codec-Help": "將圖像保存為的編解碼器", + "DeleteNonPageImages": "刪除非頁面圖像", + "DeleteNonPageImages-Help": "刪除不遵循頁面命名結構的圖像。即:它們不以數字結尾。", + "EnsureTopDirectory": "確保頂級目錄", + "EnsureTopDirectory-Help": "確保所有文件都位於漫畫書文件的頂級目錄中,並且不存在子目錄。", + "Format": "格式", + "Format-Help": "將漫畫轉換為的格式", + "MaxHeight": "最大高度", + "MaxHeight-Help": "頁面的最大高度,使用0表示不調整或保持寬度的質量", + "MaxWidth": "最大寬度", + "MaxWidth-Help": "頁面的最大寬度,使用0表示不調整或保持高度的質量", + "Quality": "質量", + "Quality-Help": "漫畫書頁面的質量,0為最多壓縮/最差質量,100為最佳質量" + }, + "Outputs": { + "1": "漫畫已轉換並保存為臨時文件", + "2": "漫畫已經是所需格式" + } + }, + "ComicExtractor": { + "Description": "從漫畫書格式中提取所有文件並將其保存到特定文件夾。\n\n支持提取CBZ、CBR、CB7、PDF、GZ、BZ2", + "Label": "漫畫提取器", + "Fields": { + "DestinationPath": "目的地路徑", + "DestinationPath-Help": "保存提取的漫畫書文件的文件夾" + }, + "Outputs": { + "1": "漫畫已被提取" + } + }, + "CreateComicInfo": { + "Description": "解析漫畫的路徑並在漫畫書壓縮包內創建comicinfo.xml文件。", + "Label": "創建漫畫信息", + "Fields": { + "IssueDigits": "期數位數", + "IssueDigits-Help": "將期號用前導零填充到最多這個數量。\n例如,對於期號1,如果填充為3,則期號將顯示為#001", + "Publisher": "出版商", + "Publisher-Help": "如果漫畫位於出版商目錄中,請參閱幫助以獲取更多信息。", + "RenameFile": "重命名文件", + "RenameFile-Help": "如果文件應該重命名為`系列 - 期數 - 標題.擴展名`" + }, + "Outputs": { + "1": "ComicInfo已添加到漫畫壓縮包", + "2": "ComicInfo已在壓縮包中" + } + } + } + }, + "Plugins": { + "ComicNodes": { + "Description": "處理漫畫書(cbr、cbz、pdf等)的流程元素", + "Label": "漫畫" + } + } +} \ No newline at end of file diff --git a/DiscordNodes/i18n/ko.json b/DiscordNodes/i18n/ko.json new file mode 100644 index 00000000..3ae1ac16 --- /dev/null +++ b/DiscordNodes/i18n/ko.json @@ -0,0 +1,31 @@ +{ + "Flow": { + "Parts": { + "Discord": { + "Description": "디스코드 서버에 메시지를 보냅니다.", + "Fields": { + "Message": "메시지", + "Message-Help": "디스코드 서버에 보낼 메시지", + "MessageType": "유형", + "MessageType-Help": "보낼 메시지의 유형. 기본 유형은 제목이 없고 색상이 없는 메시지입니다.", + "Title": "제목", + "Title-Help": "보낼 선택적 제목입니다. 설정하지 않으면 메시지 유형이 제목으로 설정됩니다." + }, + "Outputs": { + "1": "디스코드 메시지가 전송됨", + "2": "디스코드 메시지 전송 실패" + } + } + } + }, + "Plugins": { + "DiscordNodes": { + "Description": "디스코드 서버에 메시지를 보낼 수 있는 플러그인입니다.\n\nWebhook ID와 토큰은 웹훅 URL에서 얻을 수 있습니다.\n https://discord.com/api/webhooks/[webhookid]/[webhooktoken]", + "Label": "디스코드", + "Fields": { + "WebhookId": "Webhook ID", + "WebhookToken": "Webhook 토큰" + } + } + } +} \ No newline at end of file diff --git a/DiscordNodes/i18n/zht.json b/DiscordNodes/i18n/zht.json new file mode 100644 index 00000000..d30444b1 --- /dev/null +++ b/DiscordNodes/i18n/zht.json @@ -0,0 +1,31 @@ +{ + "Flow": { + "Parts": { + "Discord": { + "Description": "向Discord伺服器發送消息。", + "Fields": { + "Message": "消息", + "Message-Help": "要發送到Discord伺服器的消息", + "MessageType": "類型", + "MessageType-Help": "要發送的消息類型。基本類型將僅是消息,沒有標題且沒有顏色。", + "Title": "標題", + "Title-Help": "要發送的可選標題,如果未設置,消息類型將成為標題。" + }, + "Outputs": { + "1": "Discord消息已發送", + "2": "Discord消息發送失敗" + } + } + } + }, + "Plugins": { + "DiscordNodes": { + "Description": "一個允許您向Discord伺服器發送消息的插件。\n\nWebhook Id和令牌可以從Webhook URL獲取\n https://discord.com/api/webhooks/[webhookid]/[webhooktoken]", + "Label": "Discord", + "Fields": { + "WebhookId": "Webhook Id", + "WebhookToken": "Webhook令牌" + } + } + } +} \ No newline at end of file diff --git a/EmailNodes/i18n/ko.json b/EmailNodes/i18n/ko.json new file mode 100644 index 00000000..28acfbf2 --- /dev/null +++ b/EmailNodes/i18n/ko.json @@ -0,0 +1,40 @@ +{ + "Flow": { + "Parts": { + "SendEmail": { + "Description": "구성된 SMTP 서버를 사용하여 이메일을 보냅니다.", + "Label": "이메일 보내기", + "Fields": { + "Body": "본문", + "Body-Help": "전송되는 이메일 메시지의 내용입니다. [scriban](https://github.com/scriban/scriban) 템플릿 언어를 사용합니다.", + "Recipients": "수신자", + "Recipients-Help": "메시지를 보낼 이메일 주소 목록입니다.", + "Subject": "제목", + "Subject-Help": "설정된 이메일의 제목입니다." + }, + "Outputs": { + "1": "이메일 ''{Subject}''이(가) 전송되었습니다.", + "2": "이메일 전송 실패" + } + } + } + }, + "Plugins": { + "EmailNodes": { + "Description": "이 플러그인은 흐름을 실행하는 동안 이메일을 보낼 수 있게 해줍니다.", + "Label": "이메일", + "Fields": { + "Sender": "발신자", + "Sender-Help": "이메일이 발송될 이메일 주소입니다.", + "SmtpPassword": "SMTP 비밀번호", + "SmtpPassword-Help": "SMTP 서버에 대한 인증에 사용되는 비밀번호입니다.", + "SmtpPort": "SMTP 포트", + "SmtpPort-Help": "이메일 전송에 사용되는 SMTP 서버의 포트, 기본값 25입니다.", + "SmtpServer": "SMTP 서버", + "SmtpServer-Help": "이메일 전송에 사용되는 SMTP 서버의 주소입니다.", + "SmtpUsername": "SMTP 사용자 이름", + "SmtpUsername-Help": "SMTP 서버에 대한 인증에 사용되는 사용자 이름입니다." + } + } + } +} \ No newline at end of file diff --git a/EmailNodes/i18n/zht.json b/EmailNodes/i18n/zht.json new file mode 100644 index 00000000..b12b642e --- /dev/null +++ b/EmailNodes/i18n/zht.json @@ -0,0 +1,40 @@ +{ + "Flow": { + "Parts": { + "SendEmail": { + "Description": "使用配置的SMTP伺服器發送電子郵件", + "Label": "發送電子郵件", + "Fields": { + "Body": "內容", + "Body-Help": "要發送的電子郵件消息內容。使用[scriban](https://github.com/scriban/scriban)模板語言", + "Recipients": "收件人", + "Recipients-Help": "要發送消息的電子郵件地址列表", + "Subject": "主題", + "Subject-Help": "設置的電子郵件主題" + }, + "Outputs": { + "1": "電子郵件 ''{Subject}'' 已發送", + "2": "電子郵件發送失敗" + } + } + } + }, + "Plugins": { + "EmailNodes": { + "Description": "此插件允許您在執行流程時發送電子郵件。", + "Label": "電子郵件", + "Fields": { + "Sender": "發件人", + "Sender-Help": "發送電子郵件的電子郵件地址", + "SmtpPassword": "SMTP密碼", + "SmtpPassword-Help": "用於對SMTP伺服器進行身份驗證的密碼", + "SmtpPort": "SMTP端口", + "SmtpPort-Help": "用於發送電子郵件的SMTP伺服器端口,默認為25", + "SmtpServer": "SMTP伺服器", + "SmtpServer-Help": "用於發送電子郵件的SMTP伺服器地址", + "SmtpUsername": "SMTP用戶名", + "SmtpUsername-Help": "用於對SMTP伺服器進行身份驗證的用戶名" + } + } + } +} \ No newline at end of file diff --git a/Emby/i18n/ko.json b/Emby/i18n/ko.json new file mode 100644 index 00000000..6c351281 --- /dev/null +++ b/Emby/i18n/ko.json @@ -0,0 +1,42 @@ +{ + "Flow": { + "Parts": { + "EmbyUpdater": { + "Description": "Emby 서버에 메시지를 보내 라이브러리를 업데이트합니다.", + "Label": "Emby 업데이트기", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "Emby API 액세스 토큰입니다.\n참고: 플러그인 설정의 액세스 토큰을 덮어쓰려는 경우에만 설정하십시오.", + "Mapping": "매핑", + "Mapping-Help": "FileFlows에서 경로에 사용되는 매핑 대체 목록과 Emby에서 사용되는 경로입니다.\n참고: 서버 URL도 여기에 설정되지 않는 한 사용되지 않으며, 그렇지 않으면 플러그인 설정 매핑이 사용됩니다.", + "MappingKey": "FileFlows", + "MappingValue": "Emby", + "ServerUrl": "서버", + "ServerUrl-Help": "Emby 서버의 URL입니다.\n참고: 플러그인 설정의 서버 URL을 덮어쓰려는 경우에만 설정하십시오.", + "ServerUrl-Placeholder": "http://localhost:8096/" + }, + "Outputs": { + "1": "Emby 업데이트 요청이 전송되었습니다.", + "2": "Emby 업데이트 요청 전송 실패" + } + } + } + }, + "Plugins": { + "Emby": { + "Description": "Emby와 통신할 수 있는 플러그인입니다.", + "Label": "Emby", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "Emby API 액세스 토큰입니다.", + "Mapping": "매핑", + "Mapping-Help": "FileFlows에서 경로에 사용되는 매핑 대체 목록과 Emby에서 사용되는 경로입니다.", + "MappingKey": "FileFlows", + "MappingValue": "Emby", + "ServerUrl": "서버", + "ServerUrl-Help": "Emby 서버의 URL입니다.", + "ServerUrl-Placeholder": "http://localhost:8096/" + } + } + } +} \ No newline at end of file diff --git a/Emby/i18n/zht.json b/Emby/i18n/zht.json new file mode 100644 index 00000000..97114f16 --- /dev/null +++ b/Emby/i18n/zht.json @@ -0,0 +1,42 @@ +{ + "Flow": { + "Parts": { + "EmbyUpdater": { + "Description": "向Emby伺服器發送消息以更新資料庫。", + "Label": "Emby更新器", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "一個Emby API訪問令牌。\n注意:僅在您想要覆蓋插件設置的訪問令牌時設置此項。", + "Mapping": "映射", + "Mapping-Help": "用於在FileFlows中替換路徑的映射列表,與Emby中使用的路徑。\n注意:除非此處也設置了伺服器URL,否則將不會使用此項,否則將使用插件設置的映射。", + "MappingKey": "FileFlows", + "MappingValue": "Emby", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Emby伺服器的URL。\n注意:僅在您想要覆蓋插件設置的伺服器URL時設置此項。", + "ServerUrl-Placeholder": "http://localhost:8096/" + }, + "Outputs": { + "1": "Emby更新請求已發送", + "2": "Emby更新請求發送失敗" + } + } + } + }, + "Plugins": { + "Emby": { + "Description": "一個允許您與Emby通信的插件。", + "Label": "Emby", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "一個Emby API訪問令牌", + "Mapping": "映射", + "Mapping-Help": "用於在FileFlows中替換路徑的映射列表。", + "MappingKey": "FileFlows", + "MappingValue": "Emby", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Emby伺服器的URL", + "ServerUrl-Placeholder": "http://localhost:8096/" + } + } + } +} \ No newline at end of file diff --git a/Gotify/i18n/ko.json b/Gotify/i18n/ko.json new file mode 100644 index 00000000..6cbef66f --- /dev/null +++ b/Gotify/i18n/ko.json @@ -0,0 +1,34 @@ +{ + "Flow": { + "Parts": { + "Gotify": { + "Description": "Gotify 서버에 메시지를 보냅니다.", + "Fields": { + "Message": "메시지", + "Message-Help": "Gotify 서버에 보낼 메시지입니다.", + "Priority": "우선 순위", + "Priority-Help": "전송되는 메시지의 우선 순위입니다.", + "Title": "제목", + "Title-Help": "전송할 선택적 제목입니다." + }, + "Outputs": { + "1": "Gotify 메시지가 전송되었습니다.", + "2": "Gotify 메시지 전송 실패" + } + } + } + }, + "Plugins": { + "Gotify": { + "Description": "Gotify 서버에 메시지를 보낼 수 있는 플러그인입니다.", + "Label": "Gotify", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "Gotify 서버와 통신하는 데 사용되는 액세스 토큰입니다.", + "ServerUrl": "서버", + "ServerUrl-Help": "Gotify 서버의 URL입니다.", + "ServerUrl-Placeholder": "http://gotify.lan" + } + } + } +} \ No newline at end of file diff --git a/Gotify/i18n/zht.json b/Gotify/i18n/zht.json new file mode 100644 index 00000000..004ffcba --- /dev/null +++ b/Gotify/i18n/zht.json @@ -0,0 +1,34 @@ +{ + "Flow": { + "Parts": { + "Gotify": { + "Description": "將消息發送到Gotify伺服器。", + "Fields": { + "Message": "消息", + "Message-Help": "要發送到Gotify伺服器的消息", + "Priority": "優先級", + "Priority-Help": "發送消息的優先級", + "Title": "標題", + "Title-Help": "要發送的可選標題。" + }, + "Outputs": { + "1": "Gotify消息已發送", + "2": "Gotify消息發送失敗" + } + } + } + }, + "Plugins": { + "Gotify": { + "Description": "一個允許您將消息發送到Gotify伺服器的插件。", + "Label": "Gotify", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "用於與Gotify伺服器通信的訪問令牌。", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Gotify伺服器的URL", + "ServerUrl-Placeholder": "http://gotify.lan" + } + } + } +} \ No newline at end of file diff --git a/ImageNodes/i18n/ko.json b/ImageNodes/i18n/ko.json new file mode 100644 index 00000000..3a502e94 --- /dev/null +++ b/ImageNodes/i18n/ko.json @@ -0,0 +1,127 @@ +{ + "Flow": { + "Parts": { + "AutoCropImage": { + "Description": "이미지를 자동으로 자릅니다.", + "Label": "자동 이미지 자르기", + "Fields": { + "Format": "형식", + "Format-Help": "변환할 이미지 형식", + "Threshold": "임계값", + "Threshold-Help": "엔트로픽 밀도에 대한 임계값, 기본값은 50이며 0과 100 사이여야 합니다." + }, + "Outputs": { + "1": "이미지가 잘림, 새로운 임시 파일에 저장됨", + "2": "이미지가 잘리지 않았습니다." + } + }, + "ImageFile": { + "Description": "이미지 파일", + "Label": "이미지 파일", + "Outputs": { + "1": "이미지 파일" + } + }, + "ImageFlip": { + "Description": "이미지를 뒤집습니다.", + "Label": "이미지 뒤집기", + "Fields": { + "Format": "형식", + "Format-Help": "변환할 이미지 형식", + "Vertical": "수직", + "Vertical-Help": "설정하면 이미지를 수직으로 뒤집고, 그렇지 않으면 수평으로 뒤집습니다." + }, + "Outputs": { + "1": "이미지가 뒤집혔으며, 새로운 임시 파일에 저장됨" + } + }, + "ImageFormat": { + "Description": "이미지를 지정된 형식으로 변환합니다.", + "Label": "이미지 형식", + "Fields": { + "Format": "형식", + "Format-Help": "변환할 이미지 형식" + }, + "Outputs": { + "1": "이미지가 변환되었으며, 새로운 임시 파일에 저장됨", + "2": "이미지가 이미 목표 형식에 있습니다." + } + }, + "ImageIsLandscape": { + "Description": "이미지가 가로 방향인지 테스트합니다.", + "Label": "이미지가 가로 방향입니다", + "Outputs": { + "1": "이미지가 가로 방향입니다.", + "2": "이미지가 세로 방향입니다." + } + }, + "ImageIsPortrait": { + "Description": "이미지가 세로 방향인지 테스트합니다.", + "Label": "이미지가 세로 방향입니다", + "Outputs": { + "1": "이미지가 세로 방향입니다.", + "2": "이미지가 가로 방향입니다." + } + }, + "ImageResizer": { + "Description": "이미지 크기를 조정합니다.", + "Label": "이미지 크기 조정", + "Fields": { + "Format": "형식", + "Format-Help": "변환할 이미지 형식", + "Height": "높이", + "Mode": "모드", + "Mode-Help": "이미지 크기를 조정할 때 사용할 모드", + "Width": "너비" + }, + "Outputs": { + "1": "이미지 크기가 조정되었으며, 새로운 임시 파일에 저장됨" + } + }, + "ImageRotate": { + "Description": "이미지를 회전합니다.", + "Label": "이미지 회전", + "Fields": { + "Angle": "각도", + "Angle-Help": "회전 각도", + "Format": "형식", + "Format-Help": "변환할 이미지 형식" + }, + "Outputs": { + "1": "이미지가 회전되었으며, 새로운 임시 파일에 저장됨" + } + }, + "IsImage": { + "Description": "파일이 이미지 파일인지 테스트합니다.", + "Label": "이미지 여부", + "Fields": { + "File": "파일", + "File-Help": "확인할 파일의 선택적 경로입니다. 비워두면 현재 작업 파일이 확인됩니다.", + "File-Placeholder": "비워두면 현재 작업 파일" + }, + "Outputs": { + "1": "파일은 인식된 이미지 파일입니다.", + "2": "파일은 인식된 이미지 파일이 아닙니다." + } + }, + "PixelCheck": { + "Description": "이 흐름 요소는 이미지의 총 픽셀 수가 지정된 임계값을 초과하는지 확인합니다.", + "Label": "픽셀 확인", + "Fields": { + "Pixels": "픽셀", + "Pixels-Help": "이미지가 포함해야 하는 픽셀 수입니다. 이는 이미지의 너비와 높이를 곱하여 계산됩니다." + }, + "Outputs": { + "1": "이미지가 지정된 픽셀 수 이상입니다.", + "2": "이미지가 요구된 픽셀 수보다 적습니다." + } + } + } + }, + "Plugins": { + "ImageNodes": { + "Description": "이미지 파일을 처리하는 흐름 요소입니다. 이 플러그인은 이미지를 변환하고 조작하는 노드를 포함합니다.", + "Label": "이미지" + } + } +} \ No newline at end of file diff --git a/ImageNodes/i18n/zht.json b/ImageNodes/i18n/zht.json new file mode 100644 index 00000000..ffeb5092 --- /dev/null +++ b/ImageNodes/i18n/zht.json @@ -0,0 +1,127 @@ +{ + "Flow": { + "Parts": { + "AutoCropImage": { + "Description": "自動裁剪圖像", + "Label": "自動裁剪圖像", + "Fields": { + "Format": "格式", + "Format-Help": "要轉換的圖像格式", + "Threshold": "閾值", + "Threshold-Help": "熵密度的閾值,默認為50。 必須在0到100之間。" + }, + "Outputs": { + "1": "圖像已裁剪,保存到新的臨時文件", + "2": "圖像未裁剪" + } + }, + "ImageFile": { + "Description": "一個圖像文件", + "Label": "圖像文件", + "Outputs": { + "1": "圖像文件" + } + }, + "ImageFlip": { + "Description": "翻轉圖像", + "Label": "翻轉圖像", + "Fields": { + "Format": "格式", + "Format-Help": "要轉換的圖像格式", + "Vertical": "垂直", + "Vertical-Help": "如果設置,圖像將垂直翻轉,否則水平翻轉" + }, + "Outputs": { + "1": "圖像已翻轉,保存到新的臨時文件" + } + }, + "ImageFormat": { + "Description": "將圖像轉換為指定格式", + "Label": "圖像格式", + "Fields": { + "Format": "格式", + "Format-Help": "要轉換的圖像格式" + }, + "Outputs": { + "1": "圖像已轉換,保存到新的臨時文件", + "2": "圖像已在目標格式中" + } + }, + "ImageIsLandscape": { + "Description": "測試圖像是否為橫向", + "Label": "圖像是橫向", + "Outputs": { + "1": "圖像是橫向", + "2": "圖像不是橫向" + } + }, + "ImageIsPortrait": { + "Description": "測試圖像是否為縱向", + "Label": "圖像是縱向", + "Outputs": { + "1": "圖像是縱向", + "2": "圖像不是縱向" + } + }, + "ImageResizer": { + "Description": "調整圖像大小", + "Label": "圖像調整大小", + "Fields": { + "Format": "格式", + "Format-Help": "要轉換的圖像格式", + "Height": "高度", + "Mode": "模式", + "Mode-Help": "調整圖像大小時使用的模式", + "Width": "寬度" + }, + "Outputs": { + "1": "圖像已調整大小,保存到新的臨時文件" + } + }, + "ImageRotate": { + "Description": "旋轉圖像", + "Label": "旋轉圖像", + "Fields": { + "Angle": "角度", + "Angle-Help": "旋轉角度", + "Format": "格式", + "Format-Help": "要轉換的圖像格式" + }, + "Outputs": { + "1": "圖像已旋轉,保存到新的臨時文件" + } + }, + "IsImage": { + "Description": "測試文件是否為圖像文件。", + "Label": "是圖像", + "Fields": { + "File": "文件", + "File-Help": "要檢查的文件的可選路徑,如果留空,則將檢查當前工作文件。", + "File-Placeholder": "如果留空則為當前工作文件" + }, + "Outputs": { + "1": "文件是被識別的圖像文件", + "2": "文件不是被識別的圖像文件" + } + }, + "PixelCheck": { + "Description": "此流程元素驗證圖像的總像素數是否超過指定的閾值。", + "Label": "像素檢查", + "Fields": { + "Pixels": "像素", + "Pixels-Help": "圖像應包含的像素數。 這是通過圖像的寬度乘以其高度計算的。" + }, + "Outputs": { + "1": "圖像的像素數大於或等於指定的像素數", + "2": "圖像的像素數少於指定的所需像素數" + } + } + } + }, + "Plugins": { + "ImageNodes": { + "Description": "處理圖像文件的流程元素。 此插件包含轉換和操作圖像的節點。", + "Label": "圖像" + } + } +} \ No newline at end of file diff --git a/MetaNodes/i18n/ko.json b/MetaNodes/i18n/ko.json new file mode 100644 index 00000000..3a00e6a9 --- /dev/null +++ b/MetaNodes/i18n/ko.json @@ -0,0 +1,91 @@ +{ + "Flow": { + "Parts": { + "GenreMatches": { + "Description": "지정된 장르 메타데이터와 장르를 일치시킵니다.", + "Label": "장르 일치", + "Fields": { + "Genres": "장르", + "MatchAll": "모두 일치", + "MatchAll-Help": "모든 선택된 장르가 메타데이터에 나타나야 하는 경우, 그렇지 않으면 아무거나 나타나야 합니다." + }, + "Outputs": { + "1": "장르 일치", + "2": "장르 불일치" + } + }, + "MovieLookup": { + "Description": "TheMovieDB.org에서 영화를 검색합니다.\n메타데이터를 'MovieInfo' 변수에 저장합니다.", + "Label": "영화 검색", + "Fields": { + "UseFolderName": "폴더 이름 사용", + "UseFolderName-Help": "파일 이름 대신 폴더 이름을 사용해야 하는 경우." + }, + "Outputs": { + "1": "영화 발견", + "2": "영화 발견되지 않음" + } + }, + "MovieRenamer": { + "Description": "'MovieInfo'에 저장된 메타데이터를 사용하여 작업 파일의 이름을 바꿉니다.\n주의: 이 흐름 요소가 작동하려면 MovieLookup을 흐름에서 먼저 실행해야 합니다.\n\n출력 1: 파일 이름 변경됨\n출력 2: 파일 이름 변경 실패", + "Label": "영화 이름 변경", + "Fields": { + "DestinationPath": "대상 경로", + "DestinationPath-Help": "파일을 다른 디렉토리로 이동해야 하는 경우.", + "LogOnly": "로그만", + "LogOnly-Help": "파일의 이름을 실제로 변경하지 않고 이 흐름 요소를 테스트하려는 경우 켭니다.", + "Pattern": "패턴", + "Pattern-Help": "폴더 이름을 변경하는 데 사용할 패턴입니다. '{Title}', '{Year}', '{Extension}'." + } + }, + "MusicMeta": { + "Description": "음악 파일의 메타데이터를 흐름 변수에 로드합니다.", + "Label": "음악 메타데이터" + }, + "NfoFileCreator": { + "Description": "이전에 로드된 메타데이터에서 Kodi NFO 파일을 생성합니다.", + "Label": "NFO 파일 생성기", + "Fields": { + "DestinationFile": "대상 파일", + "DestinationFile-Help": "새 NFO 파일의 파일 이름입니다. 비어 있으면 원래 파일 이름을 사용하고 확장자는 '.nfo'로 변경됩니다.", + "DestinationPath": "대상 폴더", + "DestinationPath-Help": "NFO 파일이 생성될 폴더입니다.\n비어 있으면 원본 파일과 동일한 디렉토리에 생성됩니다." + }, + "Outputs": { + "1": "NFO 파일 생성됨", + "2": "NFO 생성 실패" + } + }, + "TVEpisodeLookup": { + "Description": "TheMovieDB.org에서 TV 에피소드를 검색합니다.", + "Label": "TV 에피소드 검색", + "Fields": { + "UseFolderName": "폴더 이름 사용", + "UseFolderName-Help": "파일 이름 대신 폴더 이름을 사용해야 하는 경우.\n\n폴더가 Season, Staffel, Saison 또는 Specials로 시작하면 상위 폴더가 사용됩니다." + }, + "Outputs": { + "1": "TV 에피소드 발견", + "2": "TV 에피소드 발견되지 않음" + } + }, + "TVShowLookup": { + "Description": "TheMovieDB.org에서 TV 쇼를 검색합니다.\n메타데이터를 'TVShowInfo' 변수에 저장합니다.", + "Label": "TV 쇼 검색", + "Fields": { + "UseFolderName": "폴더 이름 사용", + "UseFolderName-Help": "파일 이름 대신 폴더 이름을 사용해야 하는 경우.\n\n폴더가 Season, Staffel, Saison 또는 Specials로 시작하면 상위 폴더가 사용됩니다." + }, + "Outputs": { + "1": "TV 쇼 발견", + "2": "TV 쇼 발견되지 않음" + } + } + } + }, + "Plugins": { + "MetaNodes": { + "Description": "파일의 메타 정보를 조회하는 데 사용되는 메타 정보 흐름 요소가 포함된 플러그인입니다.\n\nTheMovieDB에서 영화 정보를 조회하는 흐름 요소와 파일 내 ID3 태그에서 음악 정보를 조회하는 흐름 요소가 포함되어 있습니다.", + "Label": "메타" + } + } +} \ No newline at end of file diff --git a/MetaNodes/i18n/zht.json b/MetaNodes/i18n/zht.json new file mode 100644 index 00000000..1eec0461 --- /dev/null +++ b/MetaNodes/i18n/zht.json @@ -0,0 +1,91 @@ +{ + "Flow": { + "Parts": { + "GenreMatches": { + "Description": "將流派元數據與指定的流派進行匹配。", + "Label": "流派匹配", + "Fields": { + "Genres": "流派", + "MatchAll": "全部匹配", + "MatchAll-Help": "如果所有選定的流派必須出現在元數據中,否則可以出現任何一個流派" + }, + "Outputs": { + "1": "流派匹配", + "2": "流派不匹配" + } + }, + "MovieLookup": { + "Description": "在TheMovieDB.org上搜索電影。\n將元數據存儲在變量 'MovieInfo' 中。", + "Label": "電影查找", + "Fields": { + "UseFolderName": "使用資料夾名稱", + "UseFolderName-Help": "如果應使用資料夾名稱而不是文件名。" + }, + "Outputs": { + "1": "找到電影", + "2": "未找到電影" + } + }, + "MovieRenamer": { + "Description": "使用存儲在 'MovieInfo' 中的元數據重命名工作文件。\n注意:在此流元素之前,應先執行MovieLookup。\n\n輸出 1:文件已重命名\n輸出 2:文件重命名失敗", + "Label": "電影重命名", + "Fields": { + "DestinationPath": "目標路徑", + "DestinationPath-Help": "如果文件應移動到不同的目錄。", + "LogOnly": "僅日誌", + "LogOnly-Help": "如果您只想測試此流元素而不實際重命名文件,請開啟此選項。", + "Pattern": "模式", + "Pattern-Help": "用於重命名文件夾的模式。 '{Title}'、'{Year}'、'{Extension}'。" + } + }, + "MusicMeta": { + "Description": "將音樂文件的元數據加載到流變量中。", + "Label": "音樂元數據" + }, + "NfoFileCreator": { + "Description": "從之前加載的元數據創建Kodi NFO文件。", + "Label": "NFO文件創建器", + "Fields": { + "DestinationFile": "目標文件", + "DestinationFile-Help": "新NFO文件的文件名。如果為空,將使用原始文件名並將擴展名更改為 `.nfo`", + "DestinationPath": "目標文件夾", + "DestinationPath-Help": "NFO文件將在其中創建的文件夾。\n如果為空,將在原始文件的同一目錄中創建。" + }, + "Outputs": { + "1": "NFO文件已創建", + "2": "NFO文件創建失敗" + } + }, + "TVEpisodeLookup": { + "Description": "在TheMovieDB.org上搜索電視劇集。", + "Label": "電視劇集查找", + "Fields": { + "UseFolderName": "使用資料夾名稱", + "UseFolderName-Help": "如果應使用資料夾名稱而不是文件名。\n\n注意:如果資料夾以Season、Staffel、Saison或Specials開頭,將使用父資料夾。" + }, + "Outputs": { + "1": "找到電視劇集", + "2": "未找到電視劇集" + } + }, + "TVShowLookup": { + "Description": "在TheMovieDB.org上搜索電視節目。\n將元數據存儲在變量 'TVShowInfo' 中。", + "Label": "電視節目查找", + "Fields": { + "UseFolderName": "使用資料夾名稱", + "UseFolderName-Help": "如果應使用資料夾名稱而不是文件名。\n\n注意:如果資料夾以Season、Staffel、Saison或Specials開頭,將使用父資料夾。" + }, + "Outputs": { + "1": "找到電視節目", + "2": "未找到電視節目" + } + } + } + }, + "Plugins": { + "MetaNodes": { + "Description": "一個包含元信息流元素的插件,用於查找文件的元信息。\n\n包含從TheMovieDB查找電影信息和從文件內的ID3標籤獲取音樂信息的流元素。", + "Label": "元" + } + } +} \ No newline at end of file diff --git a/Nextcloud/i18n/ko.json b/Nextcloud/i18n/ko.json new file mode 100644 index 00000000..633f8e4c --- /dev/null +++ b/Nextcloud/i18n/ko.json @@ -0,0 +1,34 @@ +{ + "Flow": { + "Parts": { + "UploadToNextcloud": { + "Description": "Nextcloud에 파일을 업로드합니다.", + "Label": "Nextcloud에 업로드", + "Fields": { + "DestinationPath": "대상", + "DestinationPath-Help": "Nextcloud에서 파일의 전체 경로와 파일 이름입니다.", + "File": "파일", + "File-Help": "업로드할 파일로, 현재 작업 파일을 사용하려면 비워 두세요." + }, + "Outputs": { + "1": "Nextcloud에 성공적으로 업로드되었습니다.", + "2": "Nextcloud에 업로드 실패" + } + } + } + }, + "Plugins": { + "Nextcloud": { + "Description": "Nextcloud에 파일을 업로드할 수 있는 플러그인입니다.", + "Label": "Nextcloud", + "Fields": { + "Password": "비밀번호", + "Password-Help": "이 Nextcloud 사용자에 대한 FileFlows를 위해 생성한 애플리케이션 전용 비밀번호입니다.", + "Url": "URL", + "Url-Help": "Nextcloud 서버의 URL입니다.", + "Username": "사용자 이름", + "Username-Help": "업로드할 사용자의 사용자 이름입니다." + } + } + } +} \ No newline at end of file diff --git a/Nextcloud/i18n/zht.json b/Nextcloud/i18n/zht.json new file mode 100644 index 00000000..22ab9424 --- /dev/null +++ b/Nextcloud/i18n/zht.json @@ -0,0 +1,34 @@ +{ + "Flow": { + "Parts": { + "UploadToNextcloud": { + "Description": "將文件上傳到Nextcloud", + "Label": "上傳到Nextcloud", + "Fields": { + "DestinationPath": "目的地", + "DestinationPath-Help": "文件在Nextcloud中的位置和文件名,即完整路徑。", + "File": "文件", + "File-Help": "要上傳的文件,留空以使用當前工作文件。" + }, + "Outputs": { + "1": "已成功上傳到Nextcloud", + "2": "上傳到Nextcloud失敗" + } + } + } + }, + "Plugins": { + "Nextcloud": { + "Description": "一個允許您將文件上傳到Nextcloud的插件。", + "Label": "Nextcloud", + "Fields": { + "Password": "密碼", + "Password-Help": "您為此Nextcloud用戶為FileFlows創建的應用專用密碼。", + "Url": "URL", + "Url-Help": "Nextcloud伺服器的URL", + "Username": "用戶名", + "Username-Help": "要上傳的用戶的用戶名。" + } + } + } +} \ No newline at end of file diff --git a/Plex/i18n/ko.json b/Plex/i18n/ko.json new file mode 100644 index 00000000..6d0234e6 --- /dev/null +++ b/Plex/i18n/ko.json @@ -0,0 +1,61 @@ +{ + "Flow": { + "Parts": { + "PlexAnalyze": { + "Description": "작업 파일을 분석하기 위해 Plex 서버에 메시지를 보냅니다. \n작업 파일은 이 작업을 수행하기 위해 Plex에 이미 등록되어 있어야 합니다.", + "Label": "Plex 분석", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "[액세스 토큰](https://github.com/revenz/Fenrus/wiki/Plex-Token)으로 Plex 서버와 통신하는 데 사용됩니다.\n참고: 플러그인 설정의 액세스 토큰을 덮어쓰려는 경우에만 설정하세요.", + "Mapping": "매핑", + "Mapping-Help": "FileFlows의 경로를 Plex에서 사용되는 경로로 교체하는 매핑 목록입니다.\n참고: 서버 URL이 여기에 설정되지 않으면 사용되지 않으며, 플러그인 설정의 매핑이 사용됩니다.", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "서버", + "ServerUrl-Help": "Plex 서버의 URL입니다. 비워두면 플러그인 설정에서 정의된 서버를 사용합니다.\n참고: 플러그인 설정의 서버 URL을 덮어쓰려는 경우에만 설정하세요.", + "ServerUrl-Placeholder": "http://localhost:32400/" + }, + "Outputs": { + "1": "Plex 분석 요청이 전송되었습니다.", + "2": "Plex 분석 요청 전송에 실패했습니다." + } + }, + "PlexUpdater": { + "Description": "라이브러리를 업데이트하기 위해 Plex 서버에 메시지를 보냅니다.", + "Label": "Plex 업데이트", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "[액세스 토큰](https://github.com/revenz/Fenrus/wiki/Plex-Token)으로 Plex 서버와 통신하는 데 사용됩니다.\n참고: 플러그인 설정의 액세스 토큰을 덮어쓰려는 경우에만 설정하세요.", + "Mapping": "매핑", + "Mapping-Help": "FileFlows의 경로를 Plex에서 사용되는 경로로 교체하는 매핑 목록입니다.\n참고: 서버 URL이 여기에 설정되지 않으면 사용되지 않으며, 플러그인 설정의 매핑이 사용됩니다.", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "서버", + "ServerUrl-Help": "Plex 서버의 URL입니다. 비워두면 플러그인 설정에서 정의된 서버를 사용합니다.\n참고: 플러그인 설정의 서버 URL을 덮어쓰려는 경우에만 설정하세요.", + "ServerUrl-Placeholder": "http://localhost:32400/" + }, + "Outputs": { + "1": "Plex 업데이트 요청이 전송되었습니다.", + "2": "Plex 업데이트 요청 전송에 실패했습니다." + } + } + } + }, + "Plugins": { + "Plex": { + "Description": "Plex와 통신할 수 있는 플러그인입니다.", + "Label": "Plex", + "Fields": { + "AccessToken": "액세스 토큰", + "AccessToken-Help": "Plex 서버와 통신하는 데 사용되는 [액세스 토큰](https://github.com/revenz/Fenrus/wiki/Plex-Token)입니다.", + "Mapping": "매핑", + "Mapping-Help": "FileFlows의 경로를 Plex에서 사용되는 경로로 교체하는 매핑 목록입니다.", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "서버", + "ServerUrl-Help": "Plex 서버의 URL입니다.", + "ServerUrl-Placeholder": "http://localhost:32400/" + } + } + } +} \ No newline at end of file diff --git a/Plex/i18n/zht.json b/Plex/i18n/zht.json new file mode 100644 index 00000000..a89518c7 --- /dev/null +++ b/Plex/i18n/zht.json @@ -0,0 +1,61 @@ +{ + "Flow": { + "Parts": { + "PlexAnalyze": { + "Description": "向Plex伺服器發送消息以分析工作文件。\n工作文件必須已經被Plex識別才能正常運作。", + "Label": "Plex 分析", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "用於與Plex伺服器通信的[訪問令牌](https://github.com/revenz/Fenrus/wiki/Plex-Token)。\n注意:僅在想要覆蓋插件設置中的訪問令牌時才設置此項。", + "Mapping": "映射", + "Mapping-Help": "用於FileFlows中的路徑與Plex中使用的路徑的映射替換列表。\n注意:除非此處也設置了伺服器URL,否則將不會使用此項,否則將使用插件設置的映射。", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Plex伺服器的URL。如果留空,將使用插件設置中定義的伺服器。\n注意:僅在想要覆蓋插件設置中的伺服器URL時才設置此項。", + "ServerUrl-Placeholder": "http://localhost:32400/" + }, + "Outputs": { + "1": "已發送Plex分析請求", + "2": "Plex分析請求發送失敗" + } + }, + "PlexUpdater": { + "Description": "向Plex伺服器發送消息以更新庫。", + "Label": "Plex 更新", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "用於與Plex伺服器通信的[訪問令牌](https://github.com/revenz/Fenrus/wiki/Plex-Token)。\n注意:僅在想要覆蓋插件設置中的訪問令牌時才設置此項。", + "Mapping": "映射", + "Mapping-Help": "用於FileFlows中的路徑與Plex中使用的路徑的映射替換列表。\n注意:除非此處也設置了伺服器URL,否則將不會使用此項,否則將使用插件設置的映射。", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Plex伺服器的URL。如果留空,將使用插件設置中定義的伺服器。\n注意:僅在想要覆蓋插件設置中的伺服器URL時才設置此項。", + "ServerUrl-Placeholder": "http://localhost:32400/" + }, + "Outputs": { + "1": "已發送Plex更新請求", + "2": "Plex更新請求發送失敗" + } + } + } + }, + "Plugins": { + "Plex": { + "Description": "一個允許您與Plex通信的插件。", + "Label": "Plex", + "Fields": { + "AccessToken": "訪問令牌", + "AccessToken-Help": "用於與Plex伺服器通信的[訪問令牌](https://github.com/revenz/Fenrus/wiki/Plex-Token)。", + "Mapping": "映射", + "Mapping-Help": "用於FileFlows中的路徑與Plex中使用的路徑的映射列表。", + "MappingKey": "FileFlows", + "MappingValue": "Plex", + "ServerUrl": "伺服器", + "ServerUrl-Help": "Plex伺服器的URL", + "ServerUrl-Placeholder": "http://localhost:32400/" + } + } + } +} \ No newline at end of file diff --git a/Pushbullet/i18n/ko.json b/Pushbullet/i18n/ko.json new file mode 100644 index 00000000..387875ae --- /dev/null +++ b/Pushbullet/i18n/ko.json @@ -0,0 +1,32 @@ +{ + "Flow": { + "Parts": { + "Pushbullet": { + "Description": "Pushbullet을 통해 메시지를 전송합니다.", + "Fields": { + "Message": "메시지", + "Message-Help": "Pushbullet 서버로 전송할 메시지", + "Priority": "우선 순위", + "Priority-Help": "전송되는 메시지의 우선 순위", + "Title": "제목" + }, + "Outputs": { + "1": "Pushbullet 메시지가 전송되었습니다.", + "2": "Pushbullet 메시지 전송에 실패했습니다." + } + } + } + }, + "Plugins": { + "Pushbullet": { + "Description": "Pushbullet 서버에 메시지를 전송할 수 있는 플러그인입니다.", + "Label": "Pushbullet", + "Fields": { + "ApiToken": "API 토큰", + "ApiToken-Help": "알림 전송에 사용되는 애플리케이션 API 토큰입니다.", + "UserKey": "사용자 키", + "UserKey-Help": "알림 수신을 위한 개인 사용자 키입니다." + } + } + } +} \ No newline at end of file diff --git a/Pushbullet/i18n/zht.json b/Pushbullet/i18n/zht.json new file mode 100644 index 00000000..0b74aa0b --- /dev/null +++ b/Pushbullet/i18n/zht.json @@ -0,0 +1,32 @@ +{ + "Flow": { + "Parts": { + "Pushbullet": { + "Description": "透過Pushbullet發送消息。", + "Fields": { + "Message": "消息", + "Message-Help": "要發送到Pushbullet伺服器的消息", + "Priority": "優先級", + "Priority-Help": "正在發送的消息的優先級", + "Title": "標題" + }, + "Outputs": { + "1": "Pushbullet消息已發送", + "2": "Pushbullet消息發送失敗" + } + } + } + }, + "Plugins": { + "Pushbullet": { + "Description": "允許您向Pushbullet伺服器發送消息的插件。", + "Label": "Pushbullet", + "Fields": { + "ApiToken": "API令牌", + "ApiToken-Help": "用於發送通知的應用程序API令牌。", + "UserKey": "用戶密鑰", + "UserKey-Help": "您個人的用戶密鑰,用於接收通知。" + } + } + } +} \ No newline at end of file diff --git a/Pushover/i18n/ko.json b/Pushover/i18n/ko.json new file mode 100644 index 00000000..82492d40 --- /dev/null +++ b/Pushover/i18n/ko.json @@ -0,0 +1,37 @@ +{ + "Flow": { + "Parts": { + "Pushover": { + "Description": "Pushover을 통해 메시지를 전송합니다.", + "Fields": { + "Expire": "만료", + "Expire-Help": "이 긴급 메시지가 만료되어 전송 재시도를 중단하기 전에 지속할 시간을 초 단위로 설정합니다.", + "Expire-Suffix": "초", + "Message": "메시지", + "Message-Help": "Pushover 서버로 전송할 메시지", + "Priority": "우선 순위", + "Priority-Help": "전송되는 메시지의 우선 순위", + "Retry": "재시도", + "Retry-Help": "전송 실패 시 이 긴급 메시지에 대한 재시도 시도 간의 간격을 초 단위로 지정합니다.", + "Retry-Suffix": "초" + }, + "Outputs": { + "1": "Pushover 메시지가 전송되었습니다.", + "2": "Pushover 메시지 전송에 실패했습니다." + } + } + } + }, + "Plugins": { + "Pushover": { + "Description": "Pushover 서버에 메시지를 전송할 수 있는 플러그인입니다.", + "Label": "Pushover", + "Fields": { + "ApiToken": "API 토큰", + "ApiToken-Help": "알림 전송에 사용되는 애플리케이션 API 토큰입니다.", + "UserKey": "사용자 키", + "UserKey-Help": "알림 수신을 위한 개인 사용자 키입니다." + } + } + } +} \ No newline at end of file diff --git a/Pushover/i18n/zht.json b/Pushover/i18n/zht.json new file mode 100644 index 00000000..7e117809 --- /dev/null +++ b/Pushover/i18n/zht.json @@ -0,0 +1,37 @@ +{ + "Flow": { + "Parts": { + "Pushover": { + "Description": "透過Pushover發送消息。", + "Fields": { + "Expire": "過期", + "Expire-Help": "設置此緊急消息過期並停止重試交付之前的持續時間(以秒為單位)。", + "Expire-Suffix": "秒", + "Message": "消息", + "Message-Help": "要發送到Pushover伺服器的消息", + "Priority": "優先級", + "Priority-Help": "正在發送的消息的優先級", + "Retry": "重試", + "Retry-Help": "指定在交付失敗的情況下,此緊急消息的重試嘗試之間的間隔(以秒為單位)。", + "Retry-Suffix": "秒" + }, + "Outputs": { + "1": "Pushover消息已發送", + "2": "Pushover消息發送失敗" + } + } + } + }, + "Plugins": { + "Pushover": { + "Description": "允許您向Pushover伺服器發送消息的插件。", + "Label": "Pushover", + "Fields": { + "ApiToken": "API令牌", + "ApiToken-Help": "用於發送通知的應用程序API令牌。", + "UserKey": "用戶密鑰", + "UserKey-Help": "您個人的用戶密鑰,用於接收通知。" + } + } + } +} \ No newline at end of file diff --git a/Telegram/i18n/ko.json b/Telegram/i18n/ko.json new file mode 100644 index 00000000..189a6788 --- /dev/null +++ b/Telegram/i18n/ko.json @@ -0,0 +1,29 @@ +{ + "Flow": { + "Parts": { + "Telegram": { + "Description": "텔레그램 메시지를 전송합니다.", + "Fields": { + "Message": "메시지", + "Message-Help": "전송할 메시지." + }, + "Outputs": { + "1": "텔레그램 메시지가 전송되었습니다.", + "2": "텔레그램 메시지 전송에 실패했습니다." + } + } + } + }, + "Plugins": { + "Telegram": { + "Description": "텔레그램 메시지를 전송할 수 있는 플러그인입니다.", + "Label": "텔레그램", + "Fields": { + "BotToken": "봇 토큰", + "BotToken-Help": "당신의 텔레그램 봇 토큰입니다.", + "ChatId": "채팅 ID", + "ChatId-Help": "메시지를 전송할 채팅의 ID입니다." + } + } + } +} \ No newline at end of file diff --git a/Telegram/i18n/zht.json b/Telegram/i18n/zht.json new file mode 100644 index 00000000..06a18660 --- /dev/null +++ b/Telegram/i18n/zht.json @@ -0,0 +1,29 @@ +{ + "Flow": { + "Parts": { + "Telegram": { + "Description": "發送Telegram消息。", + "Fields": { + "Message": "消息", + "Message-Help": "要發送的消息。" + }, + "Outputs": { + "1": "Telegram消息已發送", + "2": "Telegram消息發送失敗" + } + } + } + }, + "Plugins": { + "Telegram": { + "Description": "允許您發送Telegram消息的插件。", + "Label": "Telegram", + "Fields": { + "BotToken": "機器人令牌", + "BotToken-Help": "您的Telegram機器人令牌。", + "ChatId": "聊天ID", + "ChatId-Help": "要發送消息的聊天ID。" + } + } + } +} \ No newline at end of file diff --git a/VideoNodes/i18n/ko.json b/VideoNodes/i18n/ko.json new file mode 100644 index 00000000..a794ff12 --- /dev/null +++ b/VideoNodes/i18n/ko.json @@ -0,0 +1,1049 @@ +{ + "5": { + "1": "5.1" + }, + "7": { + "1": "7.1" + }, + "Enums": { + "WatermarkPosition": { + "BottomLeft": "왼쪽 하단", + "BottomRight": "오른쪽 하단", + "Center": "가운데", + "TopLeft": "왼쪽 상단", + "TopRight": "오른쪽 상단" + } + }, + "Flow": { + "Parts": { + "AudioToVideo": { + "Description": "오디오 파일을 비디오 파일로 변환하고 오디오를 기반으로 비디오를 생성합니다.", + "Label": "오디오에서 비디오로", + "Fields": { + "Codec": "코덱", + "Color": "색상", + "Color-Help": "사운드 웨이브에 사용할 선택적 #RRGGBB 색상 코드입니다. 형식은 #RRGGBB 여야 하며, 예를 들어 #FF0090입니다.", + "Container": "컨테이너", + "HardwareEncoding": "하드웨어 인코딩", + "HardwareEncoding-Help": "체크 시, 프로세싱 노드에서 하드웨어 인코더가 발견되는지 테스트하며, 발견되면 하드웨어 인코딩을 사용하고 그렇지 않으면 CPU 인코딩으로 대체됩니다.", + "Resolution": "해상도", + "Visualization": "시각화", + "Visualization-Help": "생성된 비디오에서 사용할 시각화입니다. 예제는 도움말을 참조하세요." + } + }, + "CanUseHardwareEncoding": { + "Description": "지정된 하드웨어 인코더가 현재 Flow에서 사용 가능한지 확인합니다.", + "Label": "하드웨어 인코딩 사용 가능", + "Fields": { + "Encoder": "인코더", + "Encoder-Help": "확인할 하드웨어 디코더입니다." + } + }, + "ComskipRemoveAds": { + "Description": "comskip EDL 파일을 사용하여 해당 파일을 사용해 광고를 제거합니다.", + "Label": "Comskip 광고 제거", + "Fields": { + "RunComskipIfNoEdl": "Comskip 실행", + "RunComskipIfNoEdl-Help": "comskip(EDL) 파일이 발견되지 않으면 파일에 대해 comskip을 실행합니다." + }, + "Outputs": { + "1": "광고가 제거되었고, 임시 파일에 저장되었습니다.", + "2": "광고가 감지되지 않았습니다." + } + }, + "DisableAmd": { + "Description": "AMD AMF 하드웨어 인코더를 비활성화합니다.", + "Label": "AMD 비활성화", + "Outputs": { + "1": "비활성화됨" + } + }, + "DisableIntelQsv": { + "Description": "Intel QSV 하드웨어 인코더를 비활성화합니다.", + "Label": "Intel QSV 비활성화", + "Outputs": { + "1": "비활성화됨" + } + }, + "DisableNvidia": { + "Description": "NVIDIA 하드웨어 인코더를 비활성화합니다.", + "Label": "NVIDIA 비활성화", + "Outputs": { + "1": "비활성화됨" + } + }, + "DisableVaapi": { + "Description": "VAAPI 하드웨어 인코더를 비활성화합니다.", + "Label": "VAAPI 비활성화", + "Outputs": { + "1": "비활성화됨" + } + }, + "FfmpegBuilderAddInputFile": { + "Label": "FFMPEG 빌더: 입력 파일 추가", + "Fields": { + "Pattern": "패턴", + "Pattern-Help": "입력 파일을 검색하는 데 사용되는 정규 표현식입니다.", + "UseSourceDirectory": "소스 디렉터리 사용", + "UseSourceDirectory-Help": "체크 시 원본 소스 디렉터리가 검색되며, 그렇지 않으면 작업 디렉터리가 사용됩니다." + }, + "Outputs": { + "1": "파일이 발견되어 추가됨", + "2": "파일이 발견되지 않음" + } + }, + "FfmpegBuilderAspectRatio": { + "Label": "FFMPEG 빌더: 종횡비", + "Fields": { + "AdjustmentMode": "조정 모드", + "AdjustmentMode-Help": "종횡비를 적용하는 방식을 선택하세요. 옵션에는 비디오를 늘리기, 검은색 바 추가(레터박스), 또는 비디오를 자르는 방식이 포함됩니다.", + "AspectRatio": "종횡비", + "AspectRatio-Help": "비디오의 원하는 종횡비를 선택하세요. 사용 가능한 옵션은 표준 종횡비(16:9, 4:3, 21:9) 또는 사용자 정의 비율입니다.", + "CustomHeight": "사용자 정의 높이", + "CustomHeight-Help": "사용자 정의 종횡비 옵션을 선택할 때 사용할 높이를 지정하세요.", + "CustomWidth": "사용자 정의 너비", + "CustomWidth-Help": "사용자 정의 종횡비 옵션을 선택할 때 사용할 너비를 지정하세요." + }, + "Outputs": { + "1": "종횡비가 성공적으로 변경되었습니다.", + "2": "비디오는 이미 원하는 종횡비에 있습니다." + } + }, + "FfmpegBuilderAudioAddTrack": { + "Description": "FFMPEG 빌더에 새로운 오디오 트랙을 추가하며, 빌더가 실행되면 추가됩니다.", + "Label": "FFMPEG 빌더: 오디오 트랙 추가", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "새 오디오 트랙의 비트 전송률", + "BitratePerChannel": "채널당 비트 전송률", + "BitratePerChannel-Help": "지정된 비트 전송률이 채널당인지 여부", + "Channels": "채널", + "Channels-Help": "이 새로운 오디오 트랙의 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFMPEG가 자동으로 업믹스를 수행합니다.\n소스보다 적은 채널을 지정하면 FFMPEG가 자동으로 다운믹스를 수행합니다.", + "Codec": "코덱", + "Codec-Help": "오디오 인코딩에 사용할 코덱", + "CustomTrackSelection": "소스 트랙 선택", + "Index": "인덱스", + "Index-Help": "새 오디오 트랙을 삽입할 인덱스입니다. 0 기반이므로, 새 오디오 트랙을 첫 번째 트랙으로 삽입하려면 0으로 설정합니다.", + "Language": "언어", + "Language-Help": "사용할 선택적 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 언어 코드입니다. 이 언어 코드와 일치하는 오디오 트랙을 찾으려고 시도하며, 없으면 최상의 오디오 트랙이 사용됩니다.", + "NewTitle": "새 제목", + "NewTitle-Help": "새로 생성된 오디오 트랙의 선택적 제목입니다. 비워두면 소스 제목이 사용됩니다.", + "RemoveTitle": "제목 제거", + "RemoveTitle-Help": "소스 제목을 제거하고 트랙에 제목이 없도록 해야 하는지 여부", + "SampleRate": "샘플링 주파수", + "SampleRate-Help": "새 오디오 트랙에 사용할 샘플링 주파수", + "TrackSelectionOptions": "트랙 선택", + "TrackSelectionOptionsKey": "속성", + "TrackSelectionOptionsValue": "값" + }, + "Outputs": { + "1": "FFMPEG 빌더에 오디오 트랙이 추가되었습니다.", + "2": "새 오디오 트랙을 만들 수 있는 적합한 소스 오디오 트랙이 없습니다." + } + }, + "FfmpegBuilderAudioAdjustVolume": { + "Description": "FFMPEG를 사용하여 비디오 파일의 오디오 트랙 볼륨을 조정합니다.", + "Label": "FFMPEG 빌더: 오디오 볼륨 조정", + "Fields": { + "AllAudio": "모든 오디오 트랙", + "AllAudio-Help": "모든 오디오 트랙을 정규화할지 아니면 첫 번째 트랙만 정규화할지 여부", + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 오디오 트랙을 제거할지 여부", + "Pattern": "패턴", + "Pattern-Help": "예: \"commentary\"와 같이 주석 트랙을 제거하기 위해 일치시킬 정규 표현식입니다.", + "UseLanguageCode": "언어 코드 사용", + "UseLanguageCode-Help": "오디오 트랙의 제목 대신 언어 코드를 사용할지 여부", + "VolumePercent": "볼륨 비율", + "VolumePercent-Help": "조정된 볼륨의 비율입니다.\n100은 조정 없음\n50은 절반 볼륨\n0은 음소거" + }, + "Outputs": { + "1": "오디오 트랙 볼륨 필터가 FFMPEG 빌더에 추가되었습니다.", + "2": "오디오 트랙이 조정되지 않았습니다." + } + }, + "FfmpegBuilderAudioConvert": { + "Description": "매개변수에 맞는 모든 트랙을 변환할 수 있게 해줍니다.", + "Label": "FFMPEG 빌더: 오디오 변환", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "오디오 트랙의 비트 전송률", + "BitratePerChannel": "채널당 비트 전송률", + "BitratePerChannel-Help": "지정된 비트 전송률이 채널당인지 여부", + "Channels": "채널", + "Channels-Help": "이 새로운 오디오 트랙의 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFMPEG가 자동으로 업믹스를 수행합니다.\n소스보다 적은 채널을 지정하면 FFMPEG가 자동으로 다운믹스를 수행합니다.", + "Codec": "코덱", + "Codec-Help": "오디오 인코딩에 사용할 코덱", + "CustomTrackSelection": "변환", + "PcmFormat": "형식", + "PcmFormat-Help": "PCM 오디오 인코딩에 사용할 PCM 형식입니다.", + "TrackSelectionOptions": "일치", + "TrackSelectionOptionsKey": "속성", + "TrackSelectionOptionsValue": "값" + }, + "Outputs": { + "1": "변환할 트랙", + "2": "변환할 트랙이 없습니다." + } + }, + "FfmpegBuilderAudioConverter": { + "Description": "매개변수에 맞는 모든 트랙을 변환할 수 있게 해줍니다.", + "Label": "FFMPEG 빌더: 오디오 변환기", + "Fields": { + "Bitrate": "비트 전송률", + "Bitrate-Help": "오디오 트랙의 비트 전송률", + "BitratePerChannel": "채널당 비트 전송률", + "BitratePerChannel-Help": "지정된 비트 전송률이 채널당인지 여부", + "Channels": "채널", + "Channels-Help": "이 새로운 오디오 트랙의 채널 수입니다.\n소스보다 더 많은 채널을 지정하면 FFMPEG가 자동으로 업믹스를 수행합니다.\n소스보다 적은 채널을 지정하면 FFMPEG가 자동으로 다운믹스를 수행합니다.", + "Codec": "코덱", + "Codec-Help": "오디오 인코딩에 사용할 코덱", + "Field": "필드", + "Field-Help": "패턴과 일치시킬 필드입니다. 패턴을 비워두면 값이 설정되지 않은 모든 것과 일치합니다.", + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 오디오 트랙이 변환되어야 하는지 여부", + "Pattern": "패턴", + "Pattern-Help": "일치할 문자열 또는 정규 표현식, 예: \"commentary\"는 주석과 정확히 일치하거나 \".*commentary.*\"는 문자열 어디에서나 주석과 일치합니다.", + "PcmFormat": "형식", + "PcmFormat-Help": "PCM 오디오 인코딩에 사용할 PCM 형식입니다." + }, + "Outputs": { + "1": "변환할 트랙", + "2": "변환할 트랙이 없습니다." + } + }, + "FfmpegBuilderAudioNormalization": { + "Description": "FFMPEG의 loudnorm 필터를 사용하여 비디오 파일의 모든 오디오 트랙을 정규화합니다.", + "Label": "FFMPEG 빌더: 오디오 정규화", + "Fields": { + "AllAudio": "모든 오디오 트랙", + "AllAudio-Help": "모든 오디오 트랙을 정규화할지, 아니면 첫 번째 트랙만 정규화할지 여부", + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 오디오 트랙을 제거할지 여부", + "Pattern": "패턴", + "Pattern-Help": "예: \"commentary\"를 사용하여 해설 트랙을 제거하기 위해 매칭할 정규 표현식", + "TwoPass": "두 번의 패스", + "TwoPass-Help": "오디오 트랙에 두 번의 패스 정규화를 사용할지 여부. 이는 정규화를 개선하지만 처리 시간을 늘립니다.", + "UseLanguageCode": "언어 코드 사용", + "UseLanguageCode-Help": "오디오 트랙의 언어 코드를 제목 대신 사용할지 여부" + }, + "Outputs": { + "1": "오디오 트랙이 정규화되어 FFMPEG 빌더에 추가되었습니다.", + "2": "정규화할 오디오 트랙이 발견되지 않았습니다." + } + }, + "FfmpegBuilderAudioSetLanguage": { + "Description": "언어가 설정되지 않은 트랙에 언어를 설정할 수 있습니다. 트랙에 언어가 설정되어 있으면 건너뜁니다.\n\n출력 1: 트랙이 업데이트되었습니다.\n출력 2: 업데이트할 트랙이 없었습니다.", + "Label": "FFMPEG 빌더: 언어 설정", + "Fields": { + "Language": "언어", + "Language-Help": "[ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 언어 코드를 사용합니다.", + "StreamType": "유형", + "StreamType-Help": "언어를 설정할 트랙의 유형" + }, + "Outputs": { + "1": "FFMPEG 빌더에서 트랙이 업데이트되었습니다.", + "2": "트랙이 업데이트되지 않았습니다." + } + }, + "FfmpegBuilderAudioTrackRemover": { + "Description": "제목이나 언어 코드를 기준으로 트랙을 제거할 수 있습니다.\n\n빈 제목(또는 \"언어 코드 사용\"으로 설정된 경우의 언어 코드)은 패턴과 관계없이 제거되지 않습니다.", + "Label": "FFMPEG 빌더: 트랙 제거기 (구식)", + "Fields": { + "MatchType": "일치", + "MatchType-Help": "일치할 값을 지정합니다.", + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 오디오 트랙을 제거할지 여부", + "Pattern": "패턴", + "Pattern-Help": "예: \"commentary\"를 사용하여 해설 트랙을 제거하기 위해 매칭할 정규 표현식", + "RemoveAll": "모두 제거", + "RemoveAll-Help": "출력 파일에서 모든 현재 트랙을 제거합니다. 이후 특정 코덱의 트랙을 추가하려면 Add Track을 사용할 수 있습니다.", + "RemoveIndex": "인덱스 제거", + "RemoveIndex-Help": "트랙을 제거할 시작 인덱스. 이를 통해 시작 인덱스 이후의 모든 또는 모든 일치하는 트랙을 제거할 수 있습니다.\n매개변수와 일치하는 모든 항목을 제거하려면 0으로 설정하십시오.\n첫 번째 트랙을 유지하고 첫 번째와 매개변수에 일치하는 트랙을 제거하려면 1로 설정하십시오.", + "StreamType": "유형", + "StreamType-Help": "FFMPEG 빌더에서 재정렬할 트랙의 유형", + "UseLanguageCode": "언어 코드 사용", + "UseLanguageCode-Help": "트랙의 언어 코드를 제목 대신 사용할지 여부" + }, + "Outputs": { + "1": "제거할 트랙이 설정되었습니다.", + "2": "제거되지 않을 트랙이 설정되지 않았습니다." + } + }, + "FfmpegBuilderAudioTrackReorder": { + "Description": "선호하는 순서로 트랙을 재정렬할 수 있습니다.\n\n원하는 순서로 언어/오디오 코덱/채널을 입력하십시오. 나열되지 않은 항목은 입력한 순서 뒤에 원래 순서로 정렬됩니다.\n같은 언어/코덱/채널이 있는 여러 트랙이 있는 경우, 입력한 순서로 먼저 정렬한 후 원래 순서로 정렬됩니다.\n\n재정렬 후 첫 번째 트랙은 기본 트랙으로 설정됩니다.\n\n출력 1: 트랙이 재정렬되었습니다.\n출력 2: 트랙이 재정렬될 필요가 없었습니다.", + "Label": "FFMPEG 빌더: 트랙 재정렬", + "Fields": { + "Channels": "채널", + "Channels-Help": "오디오 트랙을 정렬할 오디오 채널의 순서입니다. 이 정렬은 언어보다 먼저 수행됩니다.\n예: \"5.1\",\"7.1\",\"6.2\",\"2\"", + "Languages": "언어", + "Languages-Help": "트랙을 정렬할 언어의 순서입니다. 이 정렬은 코덱보다 먼저 수행됩니다.", + "OrderedTracks": "정렬된 코덱", + "OrderedTracks-Help": "트랙의 코덱 순서입니다. 이는 언어(있는 경우) 이후에 수행됩니다.", + "StreamType": "유형", + "StreamType-Help": "FFMPEG 빌더에서 재정렬할 트랙의 유형" + }, + "Outputs": { + "1": "FFMPEG 빌더에서 트랙이 재정렬되었습니다.", + "2": "트랙이 재정렬되지 않았습니다." + } + }, + "FfmpegBuilderAutoChapters": { + "Description": "비디오에서 장면 변화를 자동으로 감지하여 챕터를 생성합니다.", + "Label": "FFMPEG 빌더: 자동 챕터", + "Fields": { + "MinimumLength": "최소 길이", + "MinimumLength-Help": "챕터의 최소 길이(초)", + "MinimumLength-Suffix": "초", + "Percent": "백분율", + "Percent-Help": "장면 변화 감지를 위한 임계 백분율 값. 좋은 값은 45%입니다.", + "Percent-Suffix": "%" + }, + "Outputs": { + "1": "챕터가 생성되어 FFMPEG 빌더에 추가되었습니다.", + "2": "챕터가 감지되지 않거나 비디오에 이미 챕터가 있습니다." + } + }, + "FfmpegBuilderComskipChapters": { + "Description": "comskip EDL 파일을 사용하여 해당 EDL comskip 파일을 기반으로 챕터를 생성합니다.", + "Label": "FFMPEG Builder: Comskip 챕터", + "Fields": { + "RunComskipIfNoEdl": "Comskip 실행", + "RunComskipIfNoEdl-Help": "comskip (EDL) 파일이 발견되지 않으면 해당 파일에 대해 comskip을 실행합니다." + }, + "Outputs": { + "1": "광고 챕터가 생성되어 FFMPEG Builder에 추가되었습니다.", + "2": "광고가 감지되지 않았습니다." + } + }, + "FfmpegBuilderCropBlackBars": { + "Description": "검은 바가 감지되면 FFMPEG Builder가 검은 바를 잘라냅니다.", + "Label": "FFMPEG Builder: 검은 바 자르기", + "Fields": { + "CroppingThreshold": "임계값", + "CroppingThreshold-Help": "잘라내기 위해 초과해야 하는 픽셀 수입니다. 예를 들어, 검은 공간으로 감지된 픽셀이 5개뿐이라면 너무 작아 잘라내지 않을 수 있습니다." + }, + "Outputs": { + "1": "FFMPEG Builder가 검은 바를 자르도록 업데이트되었습니다.", + "2": "검은 바가 감지되지 않아 잘라내지 않았습니다." + } + }, + "FfmpegBuilderCustomParameters": { + "Description": "FFMPEG Builder 실행을 위한 사용자 정의 매개변수를 추가할 수 있습니다.", + "Label": "FFMPEG Builder: 사용자 정의 매개변수", + "Fields": { + "ForceEncode": "강제 인코딩", + "ForceEncode-Help": "변경 사항이 감지되지 않더라도 FFMPEG Builder Executor가 항상 실행되도록 해야 하는지 여부입니다.", + "Parameters": "매개변수", + "Parameters-Help": "FFMPEG Builder 실행을 위해 추가할 매개변수입니다." + }, + "Outputs": { + "1": "매개변수가 추가되었습니다." + } + }, + "FfmpegBuilderDefaultOriginalLanguage": { + "Description": "이 흐름 요소는 원본 언어 트랙을 기본값으로 설정하려고 시도합니다. 원본 언어와 일치하는 첫 번째 트랙을 찾아 기본값으로 설정합니다.\n\n원본 언어를 가진 트랙이 발견되지 않으면 변경되지 않습니다.", + "Label": "FFMPEG Builder: 기본 원본 언어", + "Fields": { + "MakeFirst": "첫 번째로 만들기", + "MakeFirst-Help": "원본 언어 트랙도 첫 번째 트랙이 되어야 하는지 여부입니다.", + "StreamType": "유형", + "StreamType-Help": "업데이트할 트랙 유형입니다." + }, + "Outputs": { + "1": "트랙이 수정되었습니다.", + "2": "변경된 트랙이 없습니다." + } + }, + "FfmpegBuilderDeinterlace": { + "Label": "FFMPEG Builder: 디인터레이스", + "Fields": { + "Mode": "모드", + "Mode-Help": "사용할 디인터레이싱 방법입니다. 자세한 내용은 도움말을 참조하십시오." + }, + "Outputs": { + "1": "비디오 스트림에 디인터레이스 필터가 추가되었습니다." + } + }, + "FFmpegBuilderDurationStart": { + "Descriptions": "이 흐름 요소는 비디오에서 세그먼트를 추출하기 위한 시작 지점과 지속 시간을 정의할 수 있게 합니다.", + "Label": "FFMPEG Builder: 지속 시간/시작", + "Fields": { + "Duration": "지속 시간", + "Duration-Help": "비디오 파일의 지속 시간으로, 0이면 지속 시간이 조정되지 않습니다.", + "Start": "시작", + "Start-Help": "비디오 파일의 시작으로, 0이면 시작이 조정되지 않습니다." + }, + "Outputs": { + "1": "지속 시간/시작이 구성되었습니다.", + "2": "지속 시간/시작 설정에 실패했습니다." + } + }, + "FfmpegBuilderExecutor": { + "Description": "다른 FFMPEG Builder 흐름 요소에 의해 생성된 FFMPEG Builder 명령을 실행합니다.", + "Label": "FFMPEG Builder: 실행기", + "Fields": { + "HardwareDecoding": "하드웨어 디코딩", + "HardwareDecoding-Help": "실행기가 하드웨어 디코딩을 사용하려고 시도해야 하는지 여부입니다. 사용 불가능한 경우, 하드웨어 디코딩이 비활성화된 상태로 실행이 진행됩니다.", + "Strictness": "엄격성", + "Strictness-Help": "FFmpeg의 엄격성을 사용자 정의할 수 있습니다. 대부분의 사용자에게는 '실험적'으로 두는 것이 좋습니다." + }, + "Outputs": { + "1": "FFMPEG Builder가 성공적으로 실행되었으며 새로운 임시 파일이 생성되었습니다.", + "2": "FFMPEG Builder에서 변경 사항이 감지되지 않아 파일이 생성되지 않았습니다." + } + }, + "FfmpegBuilderHdrToSdr": { + "Description": "비디오 스트림이 HDR인지 확인하고, 그렇다면 FFMPEG 빌더를 업데이트하여 SDR로 변환합니다.", + "Label": "FFMPEG 빌더: HDR에서 SDR로", + "Outputs": { + "1": "HDR 스트림이 감지되어 FFMPEG 빌더가 변환하도록 업데이트됨", + "2": "HDR 스트림이 발견되지 않음" + } + }, + "FfmpegBuilderKeepOriginalLanguage": { + "Description": "이 흐름 요소는 원본 언어와 사용자가 정의한 추가 언어만 유지합니다.\n\n모든 다른 언어 스트림은 제거되거나 삭제를 위해 표시됩니다.", + "Label": "FFMPEG 빌더: 원본 언어 유지", + "Fields": { + "AdditionalLanguages": "추가 언어", + "AdditionalLanguages-Help": "유지할 추가 언어 코드의 선택적 목록입니다.\n\n[ISO 639-2 언어 코드](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes)를 사용하는 것이 좋습니다.", + "FirstIfNone": "없으면 첫 번째", + "FirstIfNone-Help": "활성화하면 최소한 하나의 트랙이 유지됩니다. 원본 언어와 일치하는 트랙이 없고 추가 언어와 일치하는 트랙이 없으면 첫 번째 트랙이 무조건 유지됩니다.\n\n이것은 비디오에 오디오가 남아 있지 않은 문제를 피합니다.", + "KeepOnlyFirst": "첫 번째만 유지", + "KeepOnlyFirst-Help": "활성화되면 각 언어의 첫 번째 트랙만 유지됩니다.\n\n예를 들어, 2개의 영어 트랙, 3개의 스페인어 트랙, 1개의 독일어 트랙이 있는 경우, 원본 언어가 스페인어이고 추가 언어가 `eng`로 설정되면 결과는 1개의 영어 트랙과 1개의 스페인어 트랙이 되며 나머지는 제거됩니다.", + "StreamType": "유형", + "StreamType-Help": "업데이트해야 할 트랙의 유형", + "TreatEmptyAsOriginal": "비어 있는 것을 원본으로 취급", + "TreatEmptyAsOriginal-Help": "활성화되면 언어가 설정되지 않은 트랙은 원본 언어로 취급됩니다.\n\n예를 들어, 원본 언어가 마오리어이고 언어가 설정되지 않은 트랙이 있으면 마오리어로 취급됩니다." + }, + "Outputs": { + "1": "트랙이 수정되었습니다", + "2": "트랙이 변경되지 않았습니다" + } + }, + "FfmpegBuilderMetadataRemover": { + "Description": "FFMPEG 빌더에서 메타데이터를 제거하여 파일이 처리될 때 선택된 메타데이터가 제거됩니다.\n\n참고: 이 흐름 요소에 영향을 받는 메타데이터만 제거되며, 이 노드가 실행된 후에 추가된 메타데이터는 영향을 받지 않습니다.", + "Label": "FFMPEG 빌더: 메타데이터 제거기", + "Fields": { + "Audio": "오디오", + "Audio-Help": "오디오 트랙에서 이 메타데이터를 제거해야 하는지 여부", + "RemoveAdditionalMetadata": "추가 메타데이터 제거", + "RemoveAdditionalMetadata-Help": "추가 메타데이터를 제거해야 하는지 여부. 추가 메타데이터는 비표준 메타데이터로, 비디오 파일에 추가되었을 수 있습니다(예: iTunes에 의해).", + "RemoveImages": "이미지 제거", + "RemoveImages-Help": "메타데이터에서 발견된 이미지를 제거해야 하는지 여부", + "RemoveLanguage": "언어 제거", + "RemoveLanguage-Help": "트랙에서 언어를 제거해야 하는지 여부", + "RemoveTitle": "제목 제거", + "RemoveTitle-Help": "트랙에서 제목을 제거해야 하는지 여부", + "Subtitle": "자막", + "Subtitle-Help": "자막 트랙에서 이 메타데이터를 제거해야 하는지 여부", + "Video": "비디오", + "Video-Help": "비디오 트랙에서 이 메타데이터를 제거해야 하는지 여부" + }, + "Outputs": { + "1": "FFMPEG 빌더에서 메타데이터가 제거되었습니다" + } + }, + "FfmpegBuilderPreExecute": { + "Description": "이 요소는 [FFmpeg 빌더: 실행기](https://fileflows.com/docs/plugins/video-nodes/ffmpeg-builder)가 FFmpeg를 실행하기 직전에 사용자 지정 코드를 실행할 수 있게 합니다.\n\n이를 통해 FFmpeg에 전달되는 인수를 변경할 수 있습니다.", + "Label": "FFMPEG 빌더: 사전 실행", + "Fields": { + "Code": "코드" + }, + "Outputs": { + "1": "사전 실행이 설정되었습니다" + } + }, + "FfmpegBuilderProres": { + "Description": "비디오를 prores 형식으로 인코딩합니다.", + "Label": "FFMPEG 빌더: Prores", + "Fields": { + "Encoder": "인코더", + "Encoder-Help": "어떤 FFmpeg prores 인코더를 사용할지.", + "PixelFormat": "픽셀 형식", + "Profile": "프로파일", + "Quality": "품질", + "Quality-Help": "최대 품질을 위해 0, 최소 품질을 위해 32. 9에서 13 사이의 값이 좋습니다." + }, + "Outputs": { + "1": "비디오가 prores 형식으로 설정됨" + } + }, + "FfmpegBuilderRemoveAttachments": { + "Description": "비디오에서 모든 첨부 파일을 제거합니다. 첨부 파일이 있는 경우.", + "Label": "FFMPEG 빌더: 첨부 파일 제거", + "Outputs": { + "1": "FFMPEG 빌더가 첨부 파일을 제거하도록 설정됨." + } + }, + "FfmpegBuilderRemuxToMkv": { + "Description": "비디오 파일을 MKV 컨테이너로 리믹스합니다.", + "Label": "FFMPEG 빌더: MKV로 리믹스", + "Outputs": { + "1": "FFMPEG 빌더가 MKV로 리믹스하도록 설정됨" + } + }, + "FfmpegBuilderRemuxToMov": { + "Description": "비디오 파일을 MOV 컨테이너로 리믹스합니다.", + "Label": "FFMPEG Builder: MOV로 리믹스", + "Outputs": { + "1": "FFMPEG Builder가 MOV로 리믹스하도록 설정되었습니다." + } + }, + "FfmpegBuilderRemuxToMP4": { + "Description": "비디오 파일을 MP4 컨테이너로 리믹스합니다.", + "Label": "FFMPEG Builder: MP4로 리믹스", + "Fields": { + "UseHvc1": "HVC1 사용", + "UseHvc1-Help": "HVC1을 HEV1의 기본값 대신 사용할지 여부" + }, + "Outputs": { + "1": "FFMPEG Builder가 MP4로 리믹스하도록 설정되었습니다." + } + }, + "FfmpegBuilderRemuxToMxf": { + "Description": "비디오 파일을 MXF 컨테이너로 리믹스합니다.", + "Label": "FFMPEG Builder: MXF로 리믹스", + "Outputs": { + "1": "FFMPEG Builder가 MXF로 리믹스하도록 설정되었습니다." + } + }, + "FfmpegBuilderRemuxToWebm": { + "Description": "비디오 파일을 WEBM 컨테이너로 리믹스합니다.", + "Label": "FFMPEG Builder: WEBM으로 리믹스", + "Outputs": { + "1": "FFMPEG Builder가 WEBM으로 리믹스하도록 설정되었습니다." + } + }, + "FfmpegBuilderScaler": { + "Description": "지정된 크기로 비디오를 크기 조정할 수 있습니다. 비디오의 종횡비를 유지하므로 비디오가 1920x1000일 경우 720P를 선택하면 1280x668로 크기 조정됩니다.", + "Label": "FFMPEG Builder: 비디오 스케일러", + "Fields": { + "Force": "강제", + "Force-Help": "체크 시, 작업 파일이 이미 이 해상도(또는 이 해상도에 가까운 경우)일지라도 비디오가 강제로 크기 조정됩니다.", + "OnlyIfLarger": "더 큰 경우에만", + "OnlyIfLarger-Help": "비디오가 현재 이 해상도보다 클 경우에만 이 해상도로 크기 조정됩니다.", + "Resolution": "해상도" + }, + "Outputs": { + "1": "FFMPEG Builder 크기 조정 필터가 추가되었습니다.", + "2": "비디오는 이미 조정된 해상도 내에 있습니다." + } + }, + "FfmpegBuilderSetDefaultTrack": { + "Description": "FFmpeg 빌더에서 트랙을 기본값으로 설정합니다.", + "Label": "FFMPEG Builder: 기본 트랙 설정", + "Fields": { + "Index": "인덱스", + "Index-Help": "기본으로 설정할 트랙의 인덱스, 언어가 지정되지 않은 경우에만 사용됩니다.", + "Language": "언어", + "Language-Help": "사용할 선택적 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 언어 코드입니다.", + "StreamType": "유형", + "StreamType-Help": "FFMPEG Builder에서 기본으로 설정할 트랙의 유형" + }, + "Outputs": { + "1": "트랙이 기본값으로 설정되었습니다.", + "2": "트랙을 기본값으로 설정하는 데 실패했습니다." + } + }, + "FfmpegBuilderSetDevice": { + "Description": "인코더/디코더가 지원하는 경우 하드웨어 인코딩/디코더에 사용할 장치를 설정합니다.", + "Label": "FFMPEG Builder: 장치 설정", + "Fields": { + "Device": "장치", + "Device-Help": "장치의 경로 또는 장치를 지정하지 않으려면 비워 둡니다." + }, + "Outputs": { + "1": "장치가 설정되었습니다." + } + }, + "FfmpegBuilderSetFps": { + "Description": "FFmpeg Builder에서 초당 프레임 수(FPS)를 설정합니다.", + "Label": "FFMPEG Builder: FPS 설정", + "Fields": { + "Fps": "FPS", + "Fps-Help": "원하는 FPS. 입력 FPS와 일치하지 않으면 FFMPEG가 이를 변환합니다 (예: 23.976, 24, 30, 60).", + "OnlyIfHigher": "더 높을 경우만", + "OnlyIfHigher-Help": "FPS가 현재 FPS보다 클 때만 조정해야 하는지 여부" + }, + "Outputs": { + "1": "FPS가 업데이트되었습니다.", + "2": "변경할 필요가 없었습니다." + } + }, + "FfmpegBuilderSetTrackTitles": { + "Description": "FFmpeg Builder에서 포맷터를 기반으로 트랙 제목을 설정합니다.", + "Label": "FFMPEG Builder: 트랙 제목 설정", + "Fields": { + "CommentaryFormat": "해설", + "CommentaryFormat-Help": "해설 트랙을 어떻게 처리할지. 다른 트랙과 동일한 포맷터를 사용할 수 있으며, 다른 방법을 사용할 수도 있습니다.", + "Format": "포맷", + "Format-Help": "사용할 포맷터. 자세한 내용은 _Help_를 참조하세요.", + "Separator": "구분자", + "Separator-Help": "포맷 값 사이에 사용되는 문자열 구분자. 빈 값이 유지되지 않도록 필요합니다.", + "StreamType": "유형", + "StreamType-Help": "FFMPEG Builder에서 기본으로 설정할 트랙 유형" + }, + "Outputs": { + "1": "트랙 제목이 업데이트되었습니다.", + "2": "트랙 제목에 변경 사항이 없습니다." + } + }, + "FfmpegBuilderStart": { + "Description": "FFMPEG Executor와 함께 실행할 수 있는 FFMPEG 인수를 빌드할 수 있는 FFMPEG Builder 인스턴스를 생성합니다.", + "Label": "FFMPEG Builder: 시작", + "Outputs": { + "1": "FFMPEG Builder가 생성되어 FFMPEG Builder 플로우 요소 추가 준비 완료" + } + }, + "FfmpegBuilderSubtitleClearDefault": { + "Description": "이 플로우 요소는 자막에서 기본 플래그를 제거합니다.", + "Label": "FFMPEG Builder: 자막 기본값 삭제", + "Fields": { + "LeaveForced": "강제 자막 유지", + "LeaveForced-Help": "체크 시, 강제 자막은 변경되지 않으며 원래 설정을 유지합니다. 'Set Forced Default' 전에 실행되므로 우선 적용됩니다.", + "SetForcedDefault": "강제 기본값 설정", + "SetForcedDefault-Help": "체크 시, 강제 필드가 설정된 첫 번째 자막이 기본값으로 설정되며, 나머지 자막의 기본 플래그는 제거됩니다." + }, + "Outputs": { + "1": "자막 기본 플래그가 변경되었습니다.", + "2": "자막에 변경 사항이 없습니다." + } + }, + "FfmpegBuilderSubtitleFormatRemover": { + "Description": "비디오 파일에서 자막을 제거합니다.", + "Label": "FFMPEG Builder: 자막 포맷 제거", + "Fields": { + "RemoveAll": "모두 제거", + "RemoveAll-Help": "체크 시, 파일에서 모든 자막이 제거됩니다. 그렇지 않으면 아래에서 선택한 자막만 제거됩니다.", + "SubtitlesToRemove": "제거할 자막" + }, + "Outputs": { + "1": "FFMPEG Builder에서 자막이 제거 대상으로 표시되었습니다.", + "2": "제거할 자막이 없습니다." + } + }, + "FfmpegBuilderSubtitleTrackMerge": { + "Label": "FFMPEG Builder: 자막 트랙 병합", + "Fields": { + "Default": "기본값", + "Default-Help": "자막이 기본 자막이어야 하는지 여부", + "DeleteAfterwards": "병합 후 삭제", + "DeleteAfterwards-Help": "병합 후 자막 파일을 삭제해야 하는지 여부", + "Forced": "강제", + "Forced-Help": "자막이 강제되어야 하는지 여부", + "Language": "언어", + "Language-Help": "추가된 자막에 대한 선택적 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 언어 코드.", + "MatchFilename": "파일명 일치", + "MatchFilename-Help": "체크 시 입력 파일 또는 작업 파일과 동일한 파일명을 가진 자막만 병합됩니다.", + "Pattern": "패턴", + "Pattern-Help": "파일과 일치할 선택적 정규 표현식.", + "Subtitles": "자막", + "Subtitles-Help": "추가할 자막을 검색할 선택", + "Title": "제목", + "Title-Help": "자막의 제목, 설정하지 않으면 발견된 경우 언어가 제목으로 사용됩니다.", + "UseSourceDirectory": "원본 디렉토리 사용", + "UseSourceDirectory-Help": "체크 시 원본 소스 디렉토리를 검색하며, 그렇지 않으면 작업 디렉토리가 사용됩니다." + }, + "Outputs": { + "1": "자막이 발견되어 추가되었습니다.", + "2": "발견된 자막이 없습니다." + } + }, + "FfmpegBuilderSubtitleTrackRemover": { + "Description": "제목 또는 언어 코드를 기준으로 자막을 제거할 수 있습니다.\n\n빈 언어(또는 \"제목 사용\"으로 설정된 경우 제목)는 패턴에 관계없이 제거되지 않습니다.", + "Label": "FFMPEG Builder: 자막 트랙 제거기", + "Fields": { + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 자막을 제거해야 하는지 여부", + "Pattern": "패턴", + "Pattern-Help": "일치할 정규 표현식, 예: \"eng\"로 영어 트랙 제거", + "UseLanguageCode": "언어 코드 사용", + "UseLanguageCode-Help": "제목 대신 오디오 트랙의 언어 코드를 사용해야 하는지 여부" + }, + "Outputs": { + "1": "FFMPEG Builder에서 제거할 자막이 표시되었습니다.", + "2": "제거할 자막이 없습니다." + } + }, + "FfmpegBuilderTrackRemover": { + "Description": "지정된 조건에 따라 트랙을 제거할 수 있습니다.", + "Label": "FFMPEG Builder: 트랙 제거기", + "Fields": { + "CustomTrackSelection": "제거", + "StreamType": "유형", + "StreamType-Help": "FFMPEG Builder에서 순서를 변경할 트랙의 유형", + "TrackSelectionOptions": "", + "TrackSelectionOptionsKey": "속성", + "TrackSelectionOptionsValue": "값" + }, + "Outputs": { + "1": "제거할 트랙이 설정되었습니다.", + "2": "제거되지 않을 트랙이 설정되지 않았습니다." + } + }, + "FfmpegBuilderTrackSorter": { + "Description": "이 흐름 요소는 사용자가 설정한 정렬 옵션에 따라 트랙을 정렬합니다.", + "Label": "FFMPEG Builder: 트랙 정렬기", + "Fields": { + "SetFirstDefault": "기본값 설정", + "SetFirstDefault-Help": "정렬 후 첫 번째 트랙을 기본값으로 설정해야 하는지 여부.", + "Sorters": "정렬기", + "Sorters-Help": "트랙을 정렬하기 위해 하나 이상의 정렬 옵션을 추가합니다.", + "SortersKey": "필드", + "SortersValue": "값", + "StreamType": "유형", + "StreamType-Help": "업데이트해야 하는 트랙의 유형" + }, + "Outputs": { + "1": "트랙이 수정되었습니다.", + "2": "변경된 트랙이 없습니다." + } + }, + "FfmpegBuilderVideo10Bit": { + "Description": "FFMPEG Builder를 설정하여 비디오 스트림을 10비트로 인코딩합니다.", + "Label": "FFMPEG Builder: 비디오 10비트", + "Outputs": { + "1": "FFMPEG Builder 비디오 스트림이 10비트로 인코딩하도록 설정되었습니다." + } + }, + "FfmpegBuilderVideoBitrate": { + "Description": "주어진 비트레이트로 비디오를 인코딩하도록 FFMPEG 빌더를 설정합니다.", + "Label": "FFMPEG 빌더: 비디오 비트레이트", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Help": "비디오의 목표 비트레이트(킬로바이트)", + "Bitrate-Suffix": "KB / %", + "Percent": "퍼센트", + "Percent-Help": "선택할 경우 비트레이트가 현재 비트레이트의 백분율로 계산됩니다." + }, + "Outputs": { + "1": "FFMPEG 빌더 비디오 스트림이 업데이트되었습니다." + } + }, + "FfmpegBuilderVideoBitrateEncode": { + "Description": "비트레이트 기반의 사용하기 쉬운 프리셋으로 비디오를 인코딩하도록 FFMPEG 빌더를 설정합니다.", + "Label": "FFMPEG 빌더: 비트레이트 인코드", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Suffix": "Kbps", + "Codec": "코덱", + "Encoder": "인코더", + "Encoder-Help": "사용할 인코더를 강제로 지정합니다. 사용 가능한 하드웨어 인코더를 지정할 경우 인코딩이 실패할 수 있습니다.", + "HardwareEncoding": "하드웨어 인코딩", + "HardwareEncoding-Help": "선택할 경우, 처리 노드에서 하드웨어 인코더가 발견되는지 테스트하며, 발견될 경우 하드웨어 인코딩을 사용하고, 그렇지 않으면 CPU 인코딩으로 대체됩니다." + }, + "Outputs": { + "1": "FFMPEG 빌더 비디오 스트림이 인코딩하도록 설정되었습니다." + } + }, + "FfmpegBuilderVideoCodec": { + "Description": "지정된 코덱으로 비디오 스트림을 인코딩하도록 FFMPEG 빌더를 설정합니다.", + "Label": "FFMPEG 빌더: 비디오 코덱", + "Fields": { + "DisableOtherVideoStreams": "첫 번째만 사용", + "DisableOtherVideoStreams-Help": "선택할 경우, 파일에 여러 비디오 스트림이 있을 경우, 실행 후 첫 번째 비디오 스트림을 제외한 모든 비디오 스트림이 제거됩니다.", + "Force": "인코딩 강제", + "Force-Help": "대상 비디오 코덱이 이미 설정되어 있어도 비디오 인코딩을 강제로 진행합니다.", + "VideoCodec": "비디오 코덱", + "VideoCodec-Help": "비디오가 있어야 하는 코덱입니다. 예: hevc, h264.\n비어 있을 경우 모든 원본 비디오 트랙이 복사됩니다.", + "VideoCodecParameters": "비디오 코덱 매개변수", + "VideoCodecParameters-Help": "비디오 인코딩에 사용할 매개변수입니다. 예: \"hevc_nvenc -preset hq -crf 23\"를 사용하여 hevc로 인코딩하는 HQ 프리셋, 비율 상수 23 및 NVIDIA 하드웨어 가속을 사용합니다." + }, + "Outputs": { + "1": "FFMPEG 빌더 비디오 스트림이 인코딩하도록 설정되었습니다.", + "2": "비디오가 이미 대상 코덱에 있으므로 다시 인코딩하지 않습니다." + } + }, + "FfmpegBuilderVideoEncode": { + "Description": "사용하기 쉬운 프리셋으로 비디오를 인코딩하도록 FFMPEG 빌더를 설정합니다.", + "Label": "FFMPEG 빌더: 비디오 인코드", + "Fields": { + "Codec": "코덱", + "Encoder": "인코더", + "Encoder-Help": "사용할 인코더를 강제로 지정합니다. 사용 가능한 하드웨어 인코더를 지정할 경우 인코딩이 실패할 수 있습니다.", + "HardwareEncoding": "하드웨어 인코딩", + "HardwareEncoding-Help": "선택할 경우, 처리 노드에서 하드웨어 인코더가 발견되는지 테스트하며, 발견될 경우 하드웨어 인코딩을 사용하고, 그렇지 않으면 CPU 인코딩으로 대체됩니다.", + "Quality": "품질", + "Quality-Help": "로그 스케일 품질, 이 슬라이더의 작은 변화가 파일 크기/품질에 큰 변화를 일으킵니다.\n숫자가 낮을수록 품질이 높아집니다.\n자세한 정보는 도움말을 참조하세요.", + "Quality-Suffix": "(높은 품질, 큰 파일)", + "Speed": "속도" + }, + "Outputs": { + "1": "FFMPEG 빌더 비디오 스트림이 인코딩하도록 설정되었습니다." + } + }, + "FfmpegBuilderVideoMaxBitrate": { + "Description": "FFMPEG 빌더의 비디오 비트레이트 한계를 설정합니다.", + "Label": "FFMPEG 빌더: 비디오 최대 비트레이트", + "Fields": { + "Bitrate": "최대 비트레이트", + "Bitrate-Help": "비디오의 최대 비트레이트(킬로바이트)", + "Bitrate-Suffix": "KB" + }, + "Outputs": { + "1": "FFMPEG 빌더 비디오 스트림이 업데이트되었습니다." + } + }, + "FfmpegBuilderVideoTag": { + "Description": "비디오 파일에 태그를 설정합니다.", + "Label": "FFMPEG 빌더: 비디오 태그", + "Fields": { + "Tag": "태그", + "Tag-Help": "비디오 파일에 추가할 태그입니다." + }, + "Outputs": { + "1": "FFMPEG 빌더 태그가 추가되었습니다." + } + }, + "FFmpegBuilderWatermark": { + "Description": "비디오 파일에 워터마크를 추가합니다.", + "Label": "FFMPEG 빌더: 워터마크", + "Fields": { + "Height": "높이", + "Height-Help": "이미지의 사용자 정의 높이를 설정하거나, 0으로 설정하여 원본 높이 또는 너비가 설정된 경우 스케일링합니다.", + "Image": "이미지", + "Image-Help": "워터마크에 사용할 이미지 파일, 최상의 결과를 위해 PNG 파일을 사용하세요.", + "Opacity": "불투명도", + "Opacity-Help": "오버레이 이미지의 투명도 수준을 조정합니다. 0(완전 투명)에서 100(완전 불투명)까지의 범위입니다.", + "Position": "위치", + "Position-Help": "워터마크를 배치할 위치", + "Width": "너비", + "Width-Help": "이미지의 사용자 정의 너비를 설정하거나, 0으로 설정하여 원본 너비 또는 높이가 설정된 경우 스케일링합니다.", + "XPos": "X 위치", + "XPos-Help": "X 축에서 워터마크의 위치", + "YPos": "Y 위치", + "YPos-Help": "Y 축에서 워터마크의 위치" + }, + "Outputs": { + "1": "워터마크가 추가되었습니다." + } + }, + "ReadVideoInfo": { + "Description": "현재 작업 파일에서 비디오 정보를 읽고 vi 변수를 업데이트합니다.", + "Label": "비디오 정보 읽기", + "Outputs": { + "1": "파일이 비디오 파일이며 정보가 흐름에 읽혔습니다.", + "2": "파일이 비디오 파일이 아니거나 읽는 데 실패했습니다." + } + }, + "SubtitleExtractor": { + "Description": "단일 자막 트랙을 추출하여 목적지에 저장합니다. srt, ass 및 ssa 형식을 추출할 수 있습니다.\n이는 작업 파일을 업데이트하지 않으며, 작업 파일은 입력 파일과 동일하게 유지됩니다.\n\n출력 1: 자막이 추출되었습니다.\n출력 2: 추출할 자막이 발견되지 않았습니다.", + "Label": "자막 추출기", + "Fields": { + "ExtractAll": "모두 추출", + "ExtractAll-Help": "일치하는 모든 자막을 추출해야 하는지 여부.", + "ForcedOnly": "강제 자막만", + "ForcedOnly-Help": "강제 자막만 추출해야 하는지 여부.", + "Language": "언어", + "Language-Help": "[ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 언어 코드를 사용합니다.", + "OnlyTextSubtitles": "텍스트 자막만", + "OnlyTextSubtitles-Help": "텍스트 자막만 추출해야 하는지 여부, 이미지 기반 자막은 건너뜁니다.", + "OutputFile": "출력 파일", + "OutputFile-Help": "출력 파일을 저장할 위치, 예: \"'{folder.Orig.FullName}\\{file.Orig.FileName}.srt'\"로 원본 파일과 함께 srt 출력으로 저장합니다.\n비워두면 원본 입력 파일과 같은 폴더에 srt 자막이 생성됩니다.", + "SetWorkingFile": "작업 파일로 설정", + "SetWorkingFile-Help": "이것이 체크되면, 자막이 추출되면 작업 파일이 이 추출된 자막으로 변경됩니다. 원본 작업 파일은 삭제되지 않습니다.", + "Title": "제목", + "Title-Help": "선택적으로 제목을 입력합니다. 이는 정규 표현식이거나 제목에 나타나야 일치하는 문자열입니다." + }, + "Outputs": { + "1": "자막이 추출되었습니다.", + "2": "추출된 자막이 없습니다." + } + }, + "VideoAlreadyProcessed": { + "Description": "비디오 파일이 이미 FileFlows에 의해 처리되었는지 테스트합니다.", + "Label": "비디오가 이미 처리되었습니다.", + "Outputs": { + "1": "비디오가 이미 처리되었습니다.", + "2": "비디오가 처리되지 않았습니다." + } + }, + "VideoBitCheck": { + "Description": "비디오가 8-Bit, 10-Bit, 12-Bit인지 또는 알 수 없는지 확인합니다.", + "Label": "비디오 비트 체크", + "Outputs": { + "1": "비디오는 8-Bit입니다.", + "2": "비디오는 10-Bit입니다.", + "3": "비디오는 12-Bit입니다.", + "4": "알 수 없음" + } + }, + "VideoBitrateGreaterThan": { + "Description": "비디오의 비트레이트가 주어진 비트레이트보다 큰지 테스트합니다.", + "Label": "비디오 비트레이트 초과", + "Fields": { + "Bitrate": "비트레이트", + "Bitrate-Suffix": "KBps" + }, + "Outputs": { + "1": "비트레이트가 더 큽니다.", + "2": "비트레이트가 더 크지 않습니다." + } + }, + "VideoDuration": { + "Description": "비디오의 길이가 주어진 매개변수와 일치하는지 테스트합니다.", + "Label": "비디오 길이", + "Fields": { + "Match": "일치", + "ValueHigh": " ", + "ValueLow": "길이" + }, + "Outputs": { + "1": "비디오 길이가 일치합니다.", + "2": "비디오 길이가 일치하지 않습니다." + } + }, + "VideoDurationCompare": { + "Description": "비디오의 원래 길이를 최종 길이와 비교합니다.", + "Label": "비디오 길이 비교", + "Fields": { + "AllowedDifference": "허용된 차이", + "AllowedDifference-Help": "비디오의 원래 길이와 최종 길이 사이의 허용된 시간 차이." + }, + "Outputs": { + "1": "비디오는 허용된 길이 차이에 포함됩니다.", + "2": "비디오는 허용된 길이 차이에 포함되지 않습니다." + } + }, + "VideoExtractAudio": { + "Description": "비디오 파일에서 오디오를 추출하여 파일로 저장합니다.", + "Label": "비디오 오디오 추출", + "Fields": { + "Channels": "채널", + "Channels-Help": "소스 트랙이 일치해야 하는 채널 수. 채널 일치를 건너뛰려면 0으로 설정합니다.", + "Codec": "코덱", + "Codec-Help": "스트림 코덱을 테스트하는 데 사용되는 정규 표현식", + "Language": "언어", + "Language-Help": "스트림 언어를 테스트하는 데 사용되는 정규 표현식", + "NotMatching": "일치하지 않음", + "NotMatching-Help": "패턴과 일치하지 않는 오디오 트랙을 추출해야 하는지 여부", + "OutputBitrate": "출력 비트레이트", + "OutputBitrate-Help": "추출된 오디오 트랙의 비트레이트", + "OutputCodec": "출력 코덱", + "OutputCodec-Help": "추출된 오디오를 저장할 코덱", + "OutputFile": "출력 파일", + "OutputFile-Help": "출력 파일을 저장할 위치, 예: \"'{folder.Orig.FullName}\\{file.Orig.FileName}.mp3'\"로 원본 파일과 함께 mp3 출력으로 저장합니다.\n확장자가 설정되지 않으면 출력 코덱이 확장자를 결정하는 데 사용됩니다.", + "SetWorkingFile": "작업 파일로 설정", + "SetWorkingFile-Help": "이것이 체크되면, 자막이 추출되면 작업 파일이 이 추출된 자막으로 변경됩니다. 원본 작업 파일은 삭제되지 않습니다.", + "Title": "제목", + "Title-Help": "스트림 제목을 테스트하는 데 사용되는 정규 표현식" + }, + "Outputs": { + "1": "오디오가 추출되어 파일에 저장되었습니다.", + "2": "추출할 트랙을 찾을 수 없습니다." + } + }, + "VideoFile": { + "Description": "비디오 정보가 읽혀지고 처리할 수 있는 입력 비디오 파일입니다.", + "Label": "비디오 파일", + "Fields": { + "AnalyzeDuration": "분석 기간", + "AnalyzeDuration-Help": "입력을 탐색하기 위해 분석할 초 수를 지정합니다.", + "AnalyzeDuration-Suffix": "초", + "ProbeSize": "프로브 크기", + "ProbeSize-Help": "실행 시 FFMPEG에서 사용할 프로브 크기입니다.", + "ProbeSize-Suffix": "MB" + }, + "Outputs": { + "1": "라이브러리에서 가져온 비디오 파일" + } + }, + "VideoHasErrors": { + "Description": "비디오 파일에 오류가 있는지 테스트합니다.", + "Label": "비디오 오류 있음", + "Fields": { + "HardwareDecoding": "하드웨어 디코딩", + "HardwareDecoding-Help": "하드웨어 디코딩을 사용하려고 시도해야 하는지 여부입니다. 사용할 수 없는 경우 하드웨어 디코딩을 사용하지 않고 실행이 진행됩니다." + }, + "Outputs": { + "1": "오류가 포함되어 있음", + "2": "오류를 감지하지 못함" + } + }, + "VideoHasStream": { + "Description": "비디오 파일에 트랙이 포함되어 있는지 테스트합니다.", + "Label": "비디오 스트림 있음", + "Fields": { + "Channels": "채널", + "Channels-Help": "테스트할 채널 수입니다. 이 체크를 무시하려면 비워 두세요.", + "CheckDeleted": "삭제된 체크", + "CheckDeleted-Help": "삭제된 트랙도 체크해야 하는지 여부입니다.", + "Codec": "코덱", + "Codec-Help": "스트림 코덱을 테스트하는 데 사용되는 정규 표현식", + "Default": "기본", + "Default-Help": "이 스트림이 기본 스트림이어야 하는지 여부입니다.", + "Forced": "강제", + "Forced-Help": "이 스트림이 강제 스트림이어야 하는지 여부입니다.", + "Invert": "반전", + "Invert-Help": "결과를 반전시켜, 효과적으로 `비디오에 스트림이 없음`이 됩니다.", + "Language": "언어", + "Language-Help": "스트림 언어를 테스트하는 데 사용되는 정규 표현식", + "Stream": "유형", + "Stream-Help": "찾을 스트림의 유형입니다.", + "Title": "제목", + "Title-Help": "스트림 제목을 테스트하는 데 사용되는 정규 표현식" + }, + "Outputs": { + "1": "일치하는 트랙이 포함되어 있음", + "2": "일치하는 트랙이 포함되어 있지 않음" + } + }, + "VideoIs10Bit": { + "Description": "비디오 파일이 10-Bit인지 테스트합니다.", + "Label": "비디오 10-Bit", + "Outputs": { + "1": "비디오는 10-Bit입니다.", + "2": "비디오는 10-Bit가 아닙니다." + } + }, + "VideoIs12Bit": { + "Description": "비디오 파일이 12-Bit인지 테스트합니다.", + "Label": "비디오 12-Bit", + "Outputs": { + "1": "비디오는 12-Bit입니다.", + "2": "비디오는 12-Bit가 아닙니다." + } + }, + "VideoIs8Bit": { + "Description": "비디오 파일이 8-Bit인지 테스트합니다.", + "Label": "비디오 8-Bit", + "Outputs": { + "1": "비디오는 8-Bit입니다.", + "2": "비디오는 8-Bit가 아닙니다." + } + }, + "VideoIsInterlaced": { + "Description": "비디오 파일이 인터레이스인지 테스트합니다.", + "Label": "비디오 인터레이스", + "Fields": { + "Threshold": "임계값", + "Threshold-Help": "비디오가 인터레이스된 것으로 감지된 프레임의 비율입니다." + }, + "Outputs": { + "1": "비디오는 인터레이스입니다.", + "2": "비디오는 인터레이스가 아닙니다." + } + }, + "VideoResolution": { + "Description": "비디오의 해상도를 결정하고 이에 따라 출력합니다.", + "Label": "비디오 해상도", + "Outputs": { + "1": "비디오는 4K입니다.", + "2": "비디오는 1080p입니다.", + "3": "비디오는 720p입니다.", + "4": "비디오는 SD입니다." + } + } + } + }, + "H": { + "264": "H.264", + "265": "H.265" + }, + "Plugins": { + "VideoNodes": { + "Description": "비디오 파일 처리용 플러그인으로, 비디오 파일 변환, 비디오 파일 감지, 업스케일링, 다운스케일링 및 트랜스코딩 등을 포함하되 이에 국한되지 않습니다.", + "Label": "비디오" + } + } +} \ No newline at end of file diff --git a/VideoNodes/i18n/zht.json b/VideoNodes/i18n/zht.json new file mode 100644 index 00000000..adfae475 --- /dev/null +++ b/VideoNodes/i18n/zht.json @@ -0,0 +1,1049 @@ +{ + "5": { + "1": "5.1" + }, + "7": { + "1": "7.1" + }, + "Enums": { + "WatermarkPosition": { + "BottomLeft": "左下角", + "BottomRight": "右下角", + "Center": "中心", + "TopLeft": "左上角", + "TopRight": "右上角" + } + }, + "Flow": { + "Parts": { + "AudioToVideo": { + "Description": "將音頻文件轉換為視頻文件,並根據音頻生成視頻", + "Label": "音頻轉視頻", + "Fields": { + "Codec": "編解碼器", + "Color": "顏色", + "Color-Help": "可選的 #RRGGBB 顏色代碼,用於聲波,必須使用格式 #RRGGBB,例如 #FF0090", + "Container": "容器", + "HardwareEncoding": "硬體編碼", + "HardwareEncoding-Help": "選中時,將測試在處理節點上是否找到硬體編碼器,如果找到,則將使用硬體編碼,否則將回退到 CPU 編碼。", + "Resolution": "解析度", + "Visualization": "可視化", + "Visualization-Help": "生成視頻中使用的可視化效果。請參見幫助以獲取示例" + } + }, + "CanUseHardwareEncoding": { + "Description": "檢查指定的硬體編碼器是否目前可用於流程。", + "Label": "可以使用硬體編碼", + "Fields": { + "Encoder": "編碼器", + "Encoder-Help": "要檢查的硬體解碼器" + } + }, + "ComskipRemoveAds": { + "Description": "使用 comskip EDL 文件並將使用該文件去除廣告。", + "Label": "Comskip 去除廣告", + "Fields": { + "RunComskipIfNoEdl": "運行 Comskip", + "RunComskipIfNoEdl-Help": "如果未找到 comskip (EDL) 文件,則對該文件運行 comskip。" + }, + "Outputs": { + "1": "廣告已移除,保存到臨時文件", + "2": "未檢測到廣告" + } + }, + "DisableAmd": { + "Description": "禁用 AMD AMF 硬體編碼器", + "Label": "禁用 AMD", + "Outputs": { + "1": "已禁用" + } + }, + "DisableIntelQsv": { + "Description": "禁用 Intel QSV 硬體編碼器", + "Label": "禁用 Intel QSV", + "Outputs": { + "1": "已禁用" + } + }, + "DisableNvidia": { + "Description": "禁用 NVIDIA 硬體編碼器", + "Label": "禁用 NVIDIA", + "Outputs": { + "1": "已禁用" + } + }, + "DisableVaapi": { + "Description": "禁用 VAAPI 硬體編碼器", + "Label": "禁用 VAAPI", + "Outputs": { + "1": "已禁用" + } + }, + "FfmpegBuilderAddInputFile": { + "Label": "FFMPEG Builder: 添加輸入文件", + "Fields": { + "Pattern": "模式", + "Pattern-Help": "用於搜索輸入文件的正則表達式", + "UseSourceDirectory": "使用來源目錄", + "UseSourceDirectory-Help": "如果選中,將搜索原始來源目錄,否則將使用工作目錄。" + }, + "Outputs": { + "1": "找到文件並已添加", + "2": "未找到文件" + } + }, + "FfmpegBuilderAspectRatio": { + "Label": "FFMPEG Builder: 長寬比", + "Fields": { + "AdjustmentMode": "調整模式", + "AdjustmentMode-Help": "選擇如何強制執行長寬比。選項包括拉伸視頻、添加黑邊(信箱模式)或裁剪視頻以適應長寬比。", + "AspectRatio": "長寬比", + "AspectRatio-Help": "選擇所需的視頻長寬比。可用選項包括標準長寬比(16:9、4:3、21:9)或自定義比率。", + "CustomHeight": "自定義高度", + "CustomHeight-Help": "指定選擇自定義長寬比選項時使用的高度。", + "CustomWidth": "自定義寬度", + "CustomWidth-Help": "指定選擇自定義長寬比選項時使用的寬度。" + }, + "Outputs": { + "1": "長寬比已成功更改", + "2": "視頻已在所需的長寬比中" + } + }, + "FfmpegBuilderAudioAddTrack": { + "Description": "將新音軌添加到 FFMPEG Builder,該音軌會在執行建構器時添加。", + "Label": "FFMPEG Builder:音頻添加音軌", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "新音軌的比特率", + "BitratePerChannel": "每個通道的比特率", + "BitratePerChannel-Help": "如果指定的比特率應該是每個通道的比特率", + "Channels": "通道數", + "Channels-Help": "此新音軌的通道數。\n如果您指定的通道數超過源通道,FFMPEG 會自動上混。\n如果您指定的通道數少於源通道,FFMPEG 會自動下混。", + "Codec": "編解碼器", + "Codec-Help": "用於編碼音頻的編解碼器", + "CustomTrackSelection": "源音軌選擇", + "Index": "索引", + "Index-Help": "插入新音軌的位置索引。基於 0,因此要將新音軌作為第一個音軌插入,請將此設置為 0。", + "Language": "語言", + "Language-Help": "可選的 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 語言代碼。如果未找到此語言代碼的音軌,將使用最佳音軌。", + "NewTitle": "新標題", + "NewTitle-Help": "新創建音軌的可選標題。如果留空,將使用源標題", + "RemoveTitle": "移除標題", + "RemoveTitle-Help": "如果源標題應被移除且音軌不應有標題", + "SampleRate": "取樣率", + "SampleRate-Help": "用於新音軌的取樣率", + "TrackSelectionOptions": "音軌選擇", + "TrackSelectionOptionsKey": "屬性", + "TrackSelectionOptionsValue": "值" + }, + "Outputs": { + "1": "已將音軌添加到 FFMPEG Builder", + "2": "未找到合適的源音軌以創建新音軌" + } + }, + "FfmpegBuilderAudioAdjustVolume": { + "Description": "使用 FFMPEG 調整視頻文件中的音頻音軌音量", + "Label": "FFMPEG Builder:音頻調整音量", + "Fields": { + "AllAudio": "所有音頻音軌", + "AllAudio-Help": "是否應對所有音頻音軌進行標準化,或者僅對第一個音軌進行標準化", + "NotMatching": "不匹配", + "NotMatching-Help": "如果不匹配模式的音軌應被移除", + "Pattern": "模式", + "Pattern-Help": "用於匹配的正則表達式,例如 \"commentary\" 用於移除評論音軌", + "UseLanguageCode": "使用語言代碼", + "UseLanguageCode-Help": "是否應使用音軌的語言代碼,而不是標題", + "VolumePercent": "音量百分比", + "VolumePercent-Help": "調整後的音量百分比。\n100 表示不調整\n50 表示半音量\n0 表示靜音" + }, + "Outputs": { + "1": "已將音頻音軌音量過濾器添加到 FFMPEG Builder", + "2": "音頻音軌未進行調整" + } + }, + "FfmpegBuilderAudioConvert": { + "Description": "允許您將所有匹配參數的音軌轉換。", + "Label": "FFMPEG Builder:音頻轉換", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "音軌的比特率", + "BitratePerChannel": "每個通道的比特率", + "BitratePerChannel-Help": "如果指定的比特率應該是每個通道的比特率", + "Channels": "通道數", + "Channels-Help": "此新音軌的通道數。\n如果您指定的通道數超過源通道,FFMPEG 會自動上混。\n如果您指定的通道數少於源通道,FFMPEG 會自動下混。", + "Codec": "編解碼器", + "Codec-Help": "用於編碼音頻的編解碼器", + "CustomTrackSelection": "轉換", + "PcmFormat": "格式", + "PcmFormat-Help": "用於編碼 PCM 音頻的 PCM 格式。", + "TrackSelectionOptions": "匹配", + "TrackSelectionOptionsKey": "屬性", + "TrackSelectionOptionsValue": "值" + }, + "Outputs": { + "1": "待轉換的音軌", + "2": "沒有待轉換的音軌" + } + }, + "FfmpegBuilderAudioConverter": { + "Description": "允許您將所有匹配參數的音軌轉換。", + "Label": "FFMPEG Builder:音頻轉換器", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "音軌的比特率", + "BitratePerChannel": "每個通道的比特率", + "BitratePerChannel-Help": "如果指定的比特率應該是每個通道的比特率", + "Channels": "通道數", + "Channels-Help": "此新音軌的通道數。\n如果您指定的通道數超過源通道,FFMPEG 會自動上混。\n如果您指定的通道數少於源通道,FFMPEG 會自動下混。", + "Codec": "編解碼器", + "Codec-Help": "用於編碼音頻的編解碼器", + "Field": "字段", + "Field-Help": "要匹配模式的字段。保持模式為空以匹配任何沒有設置值的內容。", + "NotMatching": "不匹配", + "NotMatching-Help": "如果不匹配模式的音軌應轉換", + "Pattern": "模式", + "Pattern-Help": "用於匹配的字符串或正則表達式,例如 \"commentary\" 用於精確匹配評論,或 \".*commentary.*\" 用於匹配字符串中任何地方的評論", + "PcmFormat": "格式", + "PcmFormat-Help": "用於編碼 PCM 音頻的 PCM 格式。" + }, + "Outputs": { + "1": "待轉換的音軌", + "2": "沒有待轉換的音軌" + } + }, + "FfmpegBuilderAudioNormalization": { + "Description": "使用 FFMPEG 的 loudnorm 過濾器標準化視頻文件中的所有音頻音軌", + "Label": "FFMPEG Builder:音頻標準化", + "Fields": { + "AllAudio": "所有音頻音軌", + "AllAudio-Help": "是否應對所有音頻音軌進行標準化,或者僅對第一個音軌進行標準化", + "NotMatching": "不匹配", + "NotMatching-Help": "如果不匹配模式的音軌應被移除", + "Pattern": "模式", + "Pattern-Help": "用於匹配的正則表達式,例如 \"commentary\" 用於移除評論音軌", + "TwoPass": "雙通道", + "TwoPass-Help": "如果音頻音軌應使用雙通道標準化。這提高了標準化效果,但增加了處理時間。", + "UseLanguageCode": "使用語言代碼", + "UseLanguageCode-Help": "如果應使用音軌的語言代碼,而不是標題" + }, + "Outputs": { + "1": "音頻音軌已標準化並添加到 FFMPEG Builder", + "2": "未找到要標準化的音頻音軌" + } + }, + "FfmpegBuilderAudioSetLanguage": { + "Description": "允許您為任何未設置語言的音軌設置語言。如果音軌已設置語言,則將被跳過。\n\n輸出 1:音軌已更新\n輸出 2:沒有音軌需要更新", + "Label": "FFMPEG Builder: 設置語言", + "Fields": { + "Language": "語言", + "Language-Help": "要使用的 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 語言代碼。", + "StreamType": "類型", + "StreamType-Help": "要設置語言的音軌類型" + }, + "Outputs": { + "1": "在 FFMPEG 建構器中更新的音軌", + "2": "未更新的音軌" + } + }, + "FfmpegBuilderAudioTrackRemover": { + "Description": "允許您根據標題或語言代碼刪除音軌。\n\n任何空白的標題(或如果設置為 \"使用語言代碼\" 的語言代碼)將不會被刪除,無論模式如何。", + "Label": "FFMPEG Builder: 音軌刪除器(過時)", + "Fields": { + "MatchType": "匹配", + "MatchType-Help": "要匹配的值。", + "NotMatching": "不匹配", + "NotMatching-Help": "是否應刪除不匹配模式的音軌", + "Pattern": "模式", + "Pattern-Help": "要匹配的正則表達式,例如 \"commentary\" 以刪除解說音軌", + "RemoveAll": "刪除所有", + "RemoveAll-Help": "從輸出文件中刪除所有當前音軌。您可以在之後使用添加音軌來添加特定編解碼器的音軌", + "RemoveIndex": "刪除索引", + "RemoveIndex-Help": "要從中刪除音軌的起始索引。這使您能夠在起始索引之後刪除所有或所有匹配的音軌。\n設置為零以刪除所有匹配的參數。\n設置為 1 以保留第一個音軌並刪除任何在第一個之後的匹配參數的音軌", + "StreamType": "類型", + "StreamType-Help": "要在 FFMPEG 建構器中重新排序的音軌類型", + "UseLanguageCode": "使用語言代碼", + "UseLanguageCode-Help": "是否應使用音軌的語言代碼而不是標題" + }, + "Outputs": { + "1": "設置刪除的音軌", + "2": "未設置刪除的音軌" + } + }, + "FfmpegBuilderAudioTrackReorder": { + "Description": "允許您按首選順序重新排序音軌。\n\n輸入您想要的語言/音頻編解碼器/通道的順序。未列出的任何內容將按照其原始順序在輸入的內容之後排序。\n如果有多個相同語言/編解碼器/通道的音軌,將首先按您輸入的順序進行排序,然後按其原始順序進行排序。\n\n請注意,重新排序後的第一個音軌將被設置為默認音軌。\n\n輸出 1:音軌已重新排序\n輸出 2:音軌不需要重新排序", + "Label": "FFMPEG Builder: 音軌重新排序", + "Fields": { + "Channels": "通道", + "Channels-Help": "按順序對音頻通道進行排序的順序。此排序在語言之前進行。\n例如 \"5.1\",\"7.1\",\"6.2\",\"2\"", + "Languages": "語言", + "Languages-Help": "按順序對音軌進行排序的語言。此排序在編解碼器之前進行。", + "OrderedTracks": "排序的編解碼器", + "OrderedTracks-Help": "按順序對音軌的編解碼器進行排序。這在語言(如果有)之後進行", + "StreamType": "類型", + "StreamType-Help": "要在 FFMPEG 建構器中重新排序的音軌類型" + }, + "Outputs": { + "1": "在 FFMPEG 建構器中重新排序的音軌", + "2": "未重新排序的音軌" + } + }, + "FfmpegBuilderAutoChapters": { + "Description": "自動檢測視頻中的場景變化以生成章節。", + "Label": "FFMPEG Builder: 自動章節", + "Fields": { + "MinimumLength": "最小長度", + "MinimumLength-Help": "章節的最小長度(以秒為單位)", + "MinimumLength-Suffix": "秒", + "Percent": "百分比", + "Percent-Help": "用於場景檢測變化的閾值百分比。好的值是 45%", + "Percent-Suffix": "%" + }, + "Outputs": { + "1": "生成的章節已添加到 FFMPEG 建構器", + "2": "未檢測到章節或視頻已經有章節" + } + }, + "FfmpegBuilderComskipChapters": { + "Description": "使用 comskip EDL 文件並根據該 EDL comskip 文件創建章節。", + "Label": "FFMPEG Builder: Comskip 章節", + "Fields": { + "RunComskipIfNoEdl": "運行 Comskip", + "RunComskipIfNoEdl-Help": "如果未找到 comskip(EDL)文件,則對該文件運行 comskip。" + }, + "Outputs": { + "1": "創建的商業章節已添加到 FFMPEG 建構器", + "2": "未檢測到商業" + } + }, + "FfmpegBuilderCropBlackBars": { + "Description": "更新 FFMPEG 建構器以裁剪檢測到的黑邊。", + "Label": "FFMPEG Builder: 裁剪黑邊", + "Fields": { + "CroppingThreshold": "閾值", + "CroppingThreshold-Help": "必須超過的像素數量才能進行裁剪。例如,如果僅檢測到 5 像素為黑色空間,您可能認為這太小而無法裁剪。" + }, + "Outputs": { + "1": "FFMPEG 建構器更新以裁剪黑邊", + "2": "未檢測到黑邊,未進行裁剪" + } + }, + "FfmpegBuilderCustomParameters": { + "Description": "允許您向 FFMPEG 建構器添加自定義參數以進行執行", + "Label": "FFMPEG Builder: 自定義參數", + "Fields": { + "ForceEncode": "強制編碼", + "ForceEncode-Help": "這是否應強制 FFMPEG 建構器執行器始終執行,即使未檢測到通常需要執行器運行的更改。", + "Parameters": "參數", + "Parameters-Help": "要添加到 FFMPEG 建構器以進行執行的參數" + }, + "Outputs": { + "1": "已添加參數" + } + }, + "FfmpegBuilderDefaultOriginalLanguage": { + "Description": "此流程元素將嘗試將原始語言音軌設置為默認。它將嘗試找到第一個與原始語言匹配的音軌,然後將其設置為默認。\n\n如果未找到原始語言的音軌,則不會進行任何更改。", + "Label": "FFMPEG Builder: 默認原始語言", + "Fields": { + "MakeFirst": "設為第一", + "MakeFirst-Help": "如果原始語言音軌也應成為第一個音軌。", + "StreamType": "類型", + "StreamType-Help": "應該更新的音軌類型" + }, + "Outputs": { + "1": "音軌已被修改", + "2": "未更改音軌" + } + }, + "FfmpegBuilderDeinterlace": { + "Label": "FFMPEG Builder: 去交錯", + "Fields": { + "Mode": "模式", + "Mode-Help": "要使用的去交錯方法。請參見幫助以獲取更多信息。" + }, + "Outputs": { + "1": "已向視頻流添加去交錯濾鏡" + } + }, + "FFmpegBuilderDurationStart": { + "Descriptions": "此流程元素使用戶能夠定義從視頻中提取片段的起始點和持續時間。", + "Label": "FFMPEG Builder: 持續時間/起始", + "Fields": { + "Duration": "持續時間", + "Duration-Help": "視頻文件的持續時間,若為 0,則不會調整持續時間。", + "Start": "開始", + "Start-Help": "視頻文件的開始,若為 0,則不會調整開始。" + }, + "Outputs": { + "1": "持續時間/起始已配置", + "2": "設置持續時間/起始失敗" + } + }, + "FfmpegBuilderExecutor": { + "Description": "執行由其他 FFMPEG 建構器流程元素創建的 FFMPEG 建構器命令。", + "Label": "FFMPEG Builder: 執行者", + "Fields": { + "HardwareDecoding": "硬體解碼", + "HardwareDecoding-Help": "執行者是否應嘗試使用硬體解碼。若不可用,執行將正常進行,但不啟用硬體解碼。", + "Strictness": "嚴格性", + "Strictness-Help": "允許您自定義 FFmpeg 的嚴格性。對於大多數用戶,應將其保留為「實驗性」。" + }, + "Outputs": { + "1": "FFMPEG 建構器成功運行並創建了新的臨時文件", + "2": "FFMPEG 建構器未檢測到更改,文件未創建" + } + }, + "FfmpegBuilderHdrToSdr": { + "Description": "檢查視頻流是否為 HDR,如果是,則更新 FFMPEG 建構器以將其轉換為 SDR。", + "Label": "FFMPEG Builder: HDR 轉 SDR", + "Outputs": { + "1": "檢測到 HDR 流並更新 FFMPEG 建構器以進行轉換", + "2": "未找到 HDR 流" + } + }, + "FfmpegBuilderKeepOriginalLanguage": { + "Description": "此流程元素將僅保留原始語言和用戶定義的任何附加語言。\n\n所有其他語言流將被刪除/標記為刪除。", + "Label": "FFMPEG Builder: 保留原始語言", + "Fields": { + "AdditionalLanguages": "附加語言", + "AdditionalLanguages-Help": "要保留的附加語言代碼的可選列表。\n\n建議使用 [ISO 639-2 語言代碼](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes)。", + "FirstIfNone": "如果沒有,則為第一", + "FirstIfNone-Help": "啟用後,這確保至少保留一條音軌。如果未找到與原始語言匹配的音軌且未找到與附加語言匹配的音軌,則無論如何將保留第一條音軌。\n\n這可以避免視頻上沒有音頻的問題。", + "KeepOnlyFirst": "僅保留第一", + "KeepOnlyFirst-Help": "啟用後,僅保留每種語言的第一條音軌。\n\n例如,如果有 2 條英語音軌、3 條西班牙語音軌和 1 條德語音軌。原始語言為西班牙語,附加語言設置為 `eng`,則結果將是 1 條英語音軌和 1 條西班牙語音軌,其他的將被刪除。", + "StreamType": "類型", + "StreamType-Help": "應該更新的音軌類型", + "TreatEmptyAsOriginal": "將空白視為原始", + "TreatEmptyAsOriginal-Help": "啟用後,任何未設置語言的音軌將被視為原始語言。\n\n例如,原始語言為毛利語,且音軌未設置語言,則將被視為毛利語。" + }, + "Outputs": { + "1": "音軌已被修改", + "2": "未更改音軌" + } + }, + "FfmpegBuilderMetadataRemover": { + "Description": "從 FFMPEG 建構器中移除元數據,以便在處理文件時將刪除所選的元數據。\n\n注意:只有當此流程元素生效時,元數據才會被移除,如果在此節點運行後添加元數據,則不會受到影響。", + "Label": "FFMPEG Builder: 元數據移除器", + "Fields": { + "Audio": "音頻", + "Audio-Help": "是否應該刪除此元數據的音頻音軌", + "RemoveAdditionalMetadata": "移除附加元數據", + "RemoveAdditionalMetadata-Help": "是否應該移除附加元數據。附加元數據是可能已添加到視頻文件中的非標準元數據,例如由 iTunes 添加的元數據。", + "RemoveImages": "移除圖片", + "RemoveImages-Help": "是否應該移除在元數據中找到的任何圖片", + "RemoveLanguage": "移除語言", + "RemoveLanguage-Help": "是否應該從音軌中刪除語言", + "RemoveTitle": "移除標題", + "RemoveTitle-Help": "是否應該從音軌中刪除標題", + "Subtitle": "字幕", + "Subtitle-Help": "是否應該刪除此元數據的字幕音軌", + "Video": "視頻", + "Video-Help": "是否應該從音軌中刪除此元數據" + }, + "Outputs": { + "1": "已從 FFMPEG 建構器中移除元數據" + } + }, + "FfmpegBuilderPreExecute": { + "Description": "此元素允許您在 [FFMPEG Builder: 執行者](https://fileflows.com/docs/plugins/video-nodes/ffmpeg-builder) 執行 FFmpeg 之前運行自定義代碼。\n\n這使您能夠更改傳遞給 FFmpeg 的參數。", + "Label": "FFMPEG Builder: 預執行", + "Fields": { + "Code": "代碼" + }, + "Outputs": { + "1": "預執行已設置" + } + }, + "FfmpegBuilderProres": { + "Description": "將視頻編碼為 prores 格式。", + "Label": "FFMPEG Builder: Prores", + "Fields": { + "Encoder": "編碼器", + "Encoder-Help": "要使用的 FFmpeg prores 編碼器。", + "PixelFormat": "像素格式", + "Profile": "配置文件", + "Quality": "質量", + "Quality-Help": "0 表示最大質量,32 表示最小質量。9 到 13 是好的值。" + }, + "Outputs": { + "1": "視頻設置為使用 prores" + } + }, + "FfmpegBuilderRemoveAttachments": { + "Description": "從視頻中移除任何附件(如果有)。", + "Label": "FFMPEG Builder: 移除附件", + "Outputs": { + "1": "FFMPEG 建構器設置為移除附件。" + } + }, + "FfmpegBuilderRemuxToMkv": { + "Description": "將視頻文件重新封裝到 MKV 容器中。", + "Label": "FFMPEG Builder: 重新封裝為 MKV", + "Outputs": { + "1": "FFMPEG 建構器設置為重新封裝為 MKV" + } + }, + "FfmpegBuilderRemuxToMov": { + "Description": "將視頻文件重新封裝到 MOV 容器中。", + "Label": "FFMPEG Builder: 重新封裝為 MOV", + "Outputs": { + "1": "FFMPEG 建構器設置為重新封裝為 MOV" + } + }, + "FfmpegBuilderRemuxToMP4": { + "Description": "將視頻文件重新封裝到 MP4 容器中。", + "Label": "FFMPEG Builder: 重新封裝為 MP4", + "Fields": { + "UseHvc1": "使用 HVC1", + "UseHvc1-Help": "如果應使用 HVC1 而不是默認的 HEV1" + }, + "Outputs": { + "1": "FFMPEG 建構器設置為重新封裝為 MP4" + } + }, + "FfmpegBuilderRemuxToMxf": { + "Description": "將視頻文件重新封裝到 MXF 容器中。", + "Label": "FFMPEG Builder: 重新封裝為 MXF", + "Outputs": { + "1": "FFMPEG 建構器設置為重新封裝為 MXF" + } + }, + "FfmpegBuilderRemuxToWebm": { + "Description": "將視頻文件重新封裝到 WEBM 容器中。", + "Label": "FFMPEG Builder: 重新封裝為 WEBM", + "Outputs": { + "1": "FFMPEG 建構器設置為重新封裝為 WEBM" + } + }, + "FfmpegBuilderScaler": { + "Description": "這允許您將視頻縮放到指定的尺寸。它將保留視頻的長寬比,因此如果視頻為 1920x1000,則如果您選擇 720P,則會縮放到 1280x668。", + "Label": "FFMPEG Builder: 視頻縮放器", + "Fields": { + "Force": "強制", + "Force-Help": "選中時,即使工作文件已經是該分辨率(或接近該分辨率),視頻也將被強制縮放。", + "OnlyIfLarger": "僅在更大時", + "OnlyIfLarger-Help": "只有當視頻當前大於此分辨率時,視頻才會縮放到此分辨率", + "Resolution": "分辨率" + }, + "Outputs": { + "1": "FFMPEG 建構器縮放過濾器已添加", + "2": "視頻已經在/接近縮放的分辨率" + } + }, + "FfmpegBuilderSetDefaultTrack": { + "Description": "在 FFmpeg 建構器中設置一個軌道為默認。", + "Label": "FFMPEG Builder: 設置默認軌道", + "Fields": { + "Index": "索引", + "Index-Help": "要設置為默認的軌道索引,僅在未指定語言時使用。", + "Language": "語言", + "Language-Help": "可選的 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 語言代碼。", + "StreamType": "類型", + "StreamType-Help": "要在 FFMPEG 建構器中設置為默認的軌道類型" + }, + "Outputs": { + "1": "軌道設置為默認", + "2": "設置軌道為默認失敗" + } + }, + "FfmpegBuilderSetDevice": { + "Description": "如果編碼器/解碼器支持,則設置用於硬件編碼/解碼的設備。", + "Label": "FFMPEG Builder: 設置設備", + "Fields": { + "Device": "設備", + "Device-Help": "設備的路徑,或如果不應指定設備則留空。" + }, + "Outputs": { + "1": "設備已設置" + } + }, + "FfmpegBuilderSetFps": { + "Description": "在 FFmpeg Builder 中設定每秒幀數 (FPS)", + "Label": "FFMPEG Builder: 設定 FPS", + "Fields": { + "Fps": "FPS", + "Fps-Help": "所需的 FPS,如果輸入 FPS 與所需 FPS 不匹配,則 FFmpeg 將進行轉換,例如 (23.976、24、30、60)。", + "OnlyIfHigher": "僅在更高時", + "OnlyIfHigher-Help": "如果僅在當前 FPS 大於當前時,則應調整 FPS。" + }, + "Outputs": { + "1": "FPS 已更新", + "2": "不需要進行更改" + } + }, + "FfmpegBuilderSetTrackTitles": { + "Description": "根據格式設定 FFmpeg 建構器中的音軌標題。", + "Label": "FFMPEG Builder: 設定音軌標題", + "Fields": { + "CommentaryFormat": "解說", + "CommentaryFormat-Help": "解說音軌應如何處理,您可以使用與其他音軌相同的格式器或使用不同的方法。", + "Format": "格式", + "Format-Help": "要使用的格式器,請參見 _Help_ 以獲取更多信息。", + "Separator": "分隔符", + "Separator-Help": "在格式值之間使用的字符串分隔符,這是需要的,以確保不保留空值。", + "StreamType": "類型", + "StreamType-Help": "要在 FFMPEG 建構器中設置為默認的音軌類型" + }, + "Outputs": { + "1": "音軌標題已更新", + "2": "未受影響的音軌標題" + } + }, + "FfmpegBuilderStart": { + "Description": "創建 FFMPEG 建構器的實例,該實例可以構建 FFMPEG 參數以便使用 FFMPEG 執行器執行。", + "Label": "FFMPEG Builder: 開始", + "Outputs": { + "1": "FFMPEG 建構器已創建並準備添加 FFMPEG 建構器流元素" + } + }, + "FfmpegBuilderSubtitleClearDefault": { + "Description": "此流元素將從字幕中清除默認標記。", + "Label": "FFMPEG Builder: 字幕清除默認", + "Fields": { + "LeaveForced": "保留強制", + "LeaveForced-Help": "當選中時,所有強制字幕將不會被修改,將保持其原始設置。這是在「設定強制默認」之前執行,因此優先級更高。", + "SetForcedDefault": "設置強制默認", + "SetForcedDefault-Help": "當選中時,將第一個帶有強制標記的字幕設置為默認,所有其他的將清除其默認標記。" + }, + "Outputs": { + "1": "字幕默認標記已更改", + "2": "字幕未進行更改" + } + }, + "FfmpegBuilderSubtitleFormatRemover": { + "Description": "如果找到,從視頻文件中刪除字幕。", + "Label": "FFMPEG Builder: 字幕格式刪除器", + "Fields": { + "RemoveAll": "刪除所有", + "RemoveAll-Help": "當選中時,將從文件中刪除所有字幕,否則僅刪除下方選中的字幕。", + "SubtitlesToRemove": "要刪除的字幕" + }, + "Outputs": { + "1": "在 FFMPEG 建構器中標記要刪除的字幕", + "2": "沒有字幕要刪除" + } + }, + "FfmpegBuilderSubtitleTrackMerge": { + "Label": "FFMPEG Builder: 字幕音軌合併", + "Fields": { + "Default": "默認", + "Default-Help": "如果字幕應該是默認字幕", + "DeleteAfterwards": "合併後刪除", + "DeleteAfterwards-Help": "如果字幕文件在合併後應被刪除", + "Forced": "強制", + "Forced-Help": "如果字幕應該是強制的", + "Language": "語言", + "Language-Help": "添加字幕的可選 [ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) 語言代碼。", + "MatchFilename": "匹配檔名", + "MatchFilename-Help": "當選中時,僅合併檔名與輸入文件或工作文件相同的字幕", + "Pattern": "模式", + "Pattern-Help": "可選的正則表達式以匹配文件。", + "Subtitles": "字幕", + "Subtitles-Help": "選擇要搜索以添加的字幕", + "Title": "標題", + "Title-Help": "字幕的標題,如果未設置,將使用語言作為標題(如果找到)。", + "UseSourceDirectory": "使用來源目錄", + "UseSourceDirectory-Help": "如果選中,將搜索原始來源目錄,否則將使用工作目錄。" + }, + "Outputs": { + "1": "找到並添加字幕", + "2": "未找到字幕" + } + }, + "FfmpegBuilderSubtitleTrackRemover": { + "Description": "允許您根據標題或語言代碼移除字幕。\n\n任何語言(或設置為「使用標題」的標題)為空的將不會被刪除,無論模式如何。", + "Label": "FFMPEG Builder: 字幕音軌移除器", + "Fields": { + "NotMatching": "不匹配", + "NotMatching-Help": "如果不匹配模式的字幕應該被刪除", + "Pattern": "模式", + "Pattern-Help": "用於匹配的正則表達式,例如「eng」以刪除英語音軌", + "UseLanguageCode": "使用語言代碼", + "UseLanguageCode-Help": "如果應使用音軌的語言代碼而不是標題" + }, + "Outputs": { + "1": "在 FFMPEG 建構器中標記要刪除的字幕", + "2": "沒有字幕要刪除" + } + }, + "FfmpegBuilderTrackRemover": { + "Description": "允許您根據指定條件移除音軌。", + "Label": "FFMPEG Builder: 音軌移除器", + "Fields": { + "CustomTrackSelection": "移除", + "StreamType": "類型", + "StreamType-Help": "在 FFMPEG 建構器中重新排序的音軌類型", + "TrackSelectionOptions": "", + "TrackSelectionOptionsKey": "屬性", + "TrackSelectionOptionsValue": "值" + }, + "Outputs": { + "1": "設置為刪除的音軌", + "2": "未設置為刪除的音軌" + } + }, + "FfmpegBuilderTrackSorter": { + "Description": "此流程元素根據用戶設置的排序選項對音軌進行排序。", + "Label": "FFMPEG Builder: 音軌排序器", + "Fields": { + "SetFirstDefault": "設置默認", + "SetFirstDefault-Help": "如果在排序後應設置第一個音軌為默認。", + "Sorters": "排序器", + "Sorters-Help": "添加一個或多個排序選項以對音軌進行排序。", + "SortersKey": "字段", + "SortersValue": "值", + "StreamType": "類型", + "StreamType-Help": "應更新的音軌類型" + }, + "Outputs": { + "1": "音軌已被修改", + "2": "沒有音軌已被更改" + } + }, + "FfmpegBuilderVideo10Bit": { + "Description": "將 FFMPEG 建構器設置為以 10 位編碼視頻流。", + "Label": "FFMPEG Builder: 視頻 10 位", + "Outputs": { + "1": "FFMPEG 建構器視頻流設置為以 10 位編碼" + } + }, + "FfmpegBuilderVideoBitrate": { + "Description": "設置 FFMPEG 建構器以給定比特率編碼視頻。", + "Label": "FFMPEG Builder: 視頻比特率", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Help": "視頻的目標比特率(以千字節計)", + "Bitrate-Suffix": "KB / %", + "Percent": "百分比", + "Percent-Help": "當選擇時,比特率將根據當前比特率計算為百分比。" + }, + "Outputs": { + "1": "FFMPEG 建構器視頻流已更新" + } + }, + "FfmpegBuilderVideoBitrateEncode": { + "Description": "設置 FFMPEG 建構器以使用基於比特率的簡單預設進行視頻編碼。", + "Label": "FFMPEG Builder: 比特率編碼", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Suffix": "Kbps", + "Codec": "編碼器", + "Encoder": "編碼器", + "Encoder-Help": "強制使用的編碼器。如果指定的硬件編碼器不可用,則編碼將失敗。", + "HardwareEncoding": "硬件編碼", + "HardwareEncoding-Help": "當選中時,將檢測處理節點上是否找到硬件編碼器,如果找到,則使用硬件編碼,否則將回退到 CPU 編碼。" + }, + "Outputs": { + "1": "FFMPEG 建構器視頻流設置為編碼" + } + }, + "FfmpegBuilderVideoCodec": { + "Description": "設置 FFMPEG 建構器以在指定編碼器中編碼視頻流。", + "Label": "FFMPEG Builder: 視頻編碼器", + "Fields": { + "DisableOtherVideoStreams": "僅第一個", + "DisableOtherVideoStreams-Help": "當選中時,如果文件中有多個視頻流,則執行後將刪除除第一個視頻流外的所有視頻流。", + "Force": "強制編碼", + "Force-Help": "即使視頻已經在目標視頻編碼器中,也將強制編碼。", + "VideoCodec": "視頻編碼器", + "VideoCodec-Help": "視頻應該使用的編碼器,例如 hevc、h264。\n如果留空,則所有原始視頻軌道將被複製。", + "VideoCodecParameters": "視頻編碼器參數", + "VideoCodecParameters-Help": "用於編碼視頻的參數,例如 \"hevc_nvenc -preset hq -crf 23\" 以使用 HQ 預設編碼為 hevc,並使用 23 的恆定比特率因素,並使用 NVIDIA 硬件加速。" + }, + "Outputs": { + "1": "FFMPEG 建構器視頻流設置為編碼", + "2": "視頻已在目標編碼器中,將不會重新編碼" + } + }, + "FfmpegBuilderVideoEncode": { + "Description": "設置 FFMPEG 建構器以使用簡單的預設進行視頻編碼。", + "Label": "FFMPEG Builder: 視頻編碼", + "Fields": { + "Codec": "編碼器", + "Encoder": "編碼器", + "Encoder-Help": "強制使用的編碼器。如果指定的硬件編碼器不可用,則編碼將失敗。", + "HardwareEncoding": "硬件編碼", + "HardwareEncoding-Help": "當選中時,將檢測處理節點上是否找到硬件編碼器,如果找到,則使用硬件編碼,否則將回退到 CPU 編碼。", + "Quality": "質量", + "Quality-Help": "一個對數質量比例,因此此滑塊中的小變化會導致文件大小/質量的巨大變化。\n數字越小質量越高。\n有關更多信息,請參見幫助。", + "Quality-Suffix": "(更高質量,較大文件)", + "Speed": "速度" + }, + "Outputs": { + "1": "FFMPEG 建構器視頻流設置為編碼" + } + }, + "FfmpegBuilderVideoMaxBitrate": { + "Description": "設置 FFMPEG 建構器限制視頻的比特率。", + "Label": "FFMPEG Builder: 視頻最大比特率", + "Fields": { + "Bitrate": "最大比特率", + "Bitrate-Help": "視頻的最大比特率(以千字節計)", + "Bitrate-Suffix": "KB" + }, + "Outputs": { + "1": "FFMPEG 建構器視頻流已更新" + } + }, + "FfmpegBuilderVideoTag": { + "Description": "在文件上設置視頻標籤。", + "Label": "FFMPEG Builder: 視頻標籤", + "Fields": { + "Tag": "標籤", + "Tag-Help": "要添加到視頻文件的標籤" + }, + "Outputs": { + "1": "FFMPEG 建構器標籤已添加" + } + }, + "FFmpegBuilderWatermark": { + "Description": "為視頻文件添加水印。", + "Label": "FFMPEG Builder: 水印", + "Fields": { + "Height": "高度", + "Height-Help": "設置圖像的自定義高度,或設置為 0 以獲取源高度或在設置寬度時縮放。", + "Image": "圖像", + "Image-Help": "水印的圖像文件,為獲得最佳效果,請使用 PNG 文件。", + "Opacity": "不透明度", + "Opacity-Help": "調整疊加圖像的透明度,範圍從 0(完全透明)到 100(完全不透明)。", + "Position": "位置", + "Position-Help": "水印放置的位置", + "Width": "寬度", + "Width-Help": "設置圖像的自定義寬度,或設置為 0 以獲取源寬度或在設置高度時縮放。", + "XPos": "X-位置", + "XPos-Help": "水印在 x 軸上的位置", + "YPos": "Y-位置", + "YPos-Help": "水印在 y 軸上的位置" + }, + "Outputs": { + "1": "水印已添加" + } + }, + "ReadVideoInfo": { + "Description": "從當前工作文件中讀取視頻信息並更新 vi 變量。", + "Label": "讀取視頻信息", + "Outputs": { + "1": "文件是視頻文件,信息已讀取到流程中", + "2": "文件不是視頻文件或讀取失敗" + } + }, + "SubtitleExtractor": { + "Description": "提取單個字幕軌並將其保存到目的地。可以提取srt、ass和ssa格式。\n這不會更新工作文件,並將保持工作文件與輸入文件相同。\n\n輸出1:已提取字幕\n輸出2:未找到可提取的字幕", + "Label": "字幕提取器", + "Fields": { + "ExtractAll": "提取全部", + "ExtractAll-Help": "是否應提取所有匹配的字幕。", + "ForcedOnly": "僅強制提取", + "ForcedOnly-Help": "是否僅提取強制字幕。", + "Language": "語言", + "Language-Help": "要使用的[ISO 639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes)語言代碼。", + "OnlyTextSubtitles": "僅文本字幕", + "OnlyTextSubtitles-Help": "是否僅應提取文本字幕,所有基於圖像的字幕將被跳過。", + "OutputFile": "輸出文件", + "OutputFile-Help": "輸出文件的保存位置,例如\"'{folder.Orig.FullName}\\{file.Orig.FileName}.srt'\"以將其作為srt輸出保存到原始文件中。\n如果留空,將在與原始輸入文件相同的文件夾中創建srt字幕。", + "SetWorkingFile": "設置為工作文件", + "SetWorkingFile-Help": "當勾選此項時,如果提取了字幕,工作文件將更改為此提取的字幕。原始工作文件不會被刪除。", + "Title": "標題", + "Title-Help": "可選,輸入標題。這可以是正則表達式或必須出現在標題中的字符串以進行匹配。" + }, + "Outputs": { + "1": "已提取字幕", + "2": "未提取字幕" + } + }, + "VideoAlreadyProcessed": { + "Description": "測試視頻文件是否已由FileFlows處理過", + "Label": "視頻已處理", + "Outputs": { + "1": "視頻已被處理過", + "2": "視頻尚未被處理" + } + }, + "VideoBitCheck": { + "Description": "檢查視頻是8位、10位、12位還是未知。", + "Label": "視頻位檢查", + "Outputs": { + "1": "視頻是8位", + "2": "視頻是10位", + "3": "視頻是12位", + "4": "未知" + } + }, + "VideoBitrateGreaterThan": { + "Description": "測試視頻的比特率是否大於給定的比特率。", + "Label": "視頻比特率大於", + "Fields": { + "Bitrate": "比特率", + "Bitrate-Suffix": "KBps" + }, + "Outputs": { + "1": "比特率大於", + "2": "比特率不大於" + } + }, + "VideoDuration": { + "Description": "測試視頻的持續時間是否符合給定的參數。", + "Label": "視頻持續時間", + "Fields": { + "Match": "匹配", + "ValueHigh": " ", + "ValueLow": "持續時間" + }, + "Outputs": { + "1": "視頻持續時間匹配", + "2": "視頻持續時間不匹配" + } + }, + "VideoDurationCompare": { + "Description": "比較視頻的原始持續時間與其最終持續時間。", + "Label": "視頻持續時間比較", + "Fields": { + "AllowedDifference": "允許的差異", + "AllowedDifference-Help": "視頻的原始持續時間與最終持續時間之間允許的時間差異。" + }, + "Outputs": { + "1": "視頻在允許的持續時間差異內", + "2": "視頻不在允許的持續時間差異內" + } + }, + "VideoExtractAudio": { + "Description": "從視頻文件中提取音頻並將其保存到文件中", + "Label": "視頻提取音頻", + "Fields": { + "Channels": "通道數", + "Channels-Help": "源音軌必須匹配的通道數。設置為0以跳過通道匹配。", + "Codec": "編解碼器", + "Codec-Help": "用於測試流編解碼器的正則表達式", + "Language": "語言", + "Language-Help": "用於測試流語言的正則表達式", + "NotMatching": "不匹配", + "NotMatching-Help": "是否應提取不匹配模式的音頻軌道", + "OutputBitrate": "輸出比特率", + "OutputBitrate-Help": "提取的音頻軌道的比特率", + "OutputCodec": "輸出編解碼器", + "OutputCodec-Help": "用於保存提取音頻的編解碼器", + "OutputFile": "輸出文件", + "OutputFile-Help": "將輸出文件保存到的位置,例如\"'{folder.Orig.FullName}\\{file.Orig.FileName}.mp3'\"將其作為mp3輸出保存。如果未設置擴展名,將使用輸出編解碼器來確定擴展名。", + "SetWorkingFile": "設置為工作文件", + "SetWorkingFile-Help": "當選中此項時,如果提取音軌,工作文件將更改為此提取的音軌。原始工作文件將不會被刪除。", + "Title": "標題", + "Title-Help": "用於測試流標題的正則表達式" + }, + "Outputs": { + "1": "音頻已提取並保存到文件", + "2": "找不到可提取的音軌" + } + }, + "VideoFile": { + "Description": "一個輸入視頻文件,其視頻信息已被讀取並可以被處理", + "Label": "視頻文件", + "Fields": { + "AnalyzeDuration": "分析持續時間", + "AnalyzeDuration-Help": "指定要分析多少秒以探測輸入", + "AnalyzeDuration-Suffix": "秒", + "ProbeSize": "探測大小", + "ProbeSize-Help": "在執行時使用的FFMPEG探測大小", + "ProbeSize-Suffix": "MB" + }, + "Outputs": { + "1": "來自庫的視頻文件" + } + }, + "VideoHasErrors": { + "Description": "測試視頻文件是否包含任何錯誤", + "Label": "視頻有錯誤", + "Fields": { + "HardwareDecoding": "硬件解碼", + "HardwareDecoding-Help": "是否應嘗試使用硬件解碼。如果不可用,則執行將無法啟用硬件解碼" + }, + "Outputs": { + "1": "包含錯誤", + "2": "未檢測到任何錯誤" + } + }, + "VideoHasStream": { + "Description": "測試視頻文件是否包含音軌", + "Label": "視頻有流", + "Fields": { + "Channels": "通道數", + "Channels-Help": "要測試的通道數。留空以忽略此檢查", + "CheckDeleted": "檢查已刪除", + "CheckDeleted-Help": "是否應檢查已刪除的音軌", + "Codec": "編解碼器", + "Codec-Help": "用於測試流編解碼器的正則表達式", + "Default": "默認", + "Default-Help": "此流是否應為默認流。", + "Forced": "強制", + "Forced-Help": "此流是否應為強制流。", + "Invert": "反轉", + "Invert-Help": "反轉結果,因此實際上變為`視頻沒有流`", + "Language": "語言", + "Language-Help": "用於測試流語言的正則表達式", + "Stream": "類型", + "Stream-Help": "要查找的流類型", + "Title": "標題", + "Title-Help": "用於測試流標題的正則表達式" + }, + "Outputs": { + "1": "包含匹配的音軌", + "2": "不包含匹配的音軌" + } + }, + "VideoIs10Bit": { + "Description": "測試視頻文件是否為10位", + "Label": "視頻為10位", + "Outputs": { + "1": "視頻為10位", + "2": "視頻不是10位" + } + }, + "VideoIs12Bit": { + "Description": "測試視頻文件是否為12位", + "Label": "視頻為12位", + "Outputs": { + "1": "視頻為12位", + "2": "視頻不是12位" + } + }, + "VideoIs8Bit": { + "Description": "測試視頻文件是否為8位", + "Label": "視頻為8位", + "Outputs": { + "1": "視頻為8位", + "2": "視頻不是8位" + } + }, + "VideoIsInterlaced": { + "Description": "測試視頻文件是否為交錯", + "Label": "視頻為交錯", + "Fields": { + "Threshold": "閾值", + "Threshold-Help": "必須檢測到的幀百分比才能被視為交錯" + }, + "Outputs": { + "1": "視頻為交錯", + "2": "視頻不是交錯" + } + }, + "VideoResolution": { + "Description": "確定視頻的解析度並相應輸出。", + "Label": "視頻解析度", + "Outputs": { + "1": "視頻為4K", + "2": "視頻為1080p", + "3": "視頻為720p", + "4": "視頻為標準清晰度" + } + } + } + }, + "H": { + "264": "H.264", + "265": "H.265" + }, + "Plugins": { + "VideoNodes": { + "Description": "用於處理視頻文件的插件,包括但不限於視頻文件轉換、視頻文件檢測、升級、降級和轉碼。", + "Label": "視頻" + } + } +} \ No newline at end of file diff --git a/Web/i18n/ko.json b/Web/i18n/ko.json new file mode 100644 index 00000000..87891aba --- /dev/null +++ b/Web/i18n/ko.json @@ -0,0 +1,77 @@ +{ + "Flow": { + "Parts": { + "Downloader": { + "Description": "지정된 URL을 다운로드합니다.", + "Label": "다운로더", + "Fields": { + "Url": "URL", + "Url-Help": "다운로드할 URL, 현재 작업 파일을 사용하려면 비워 두십시오. 현재 작업 파일이 URL이 아니면 실패합니다." + }, + "Outputs": { + "1": "URL이 성공적으로 다운로드되었습니다.", + "2": "URL 다운로드에 실패했습니다." + } + }, + "HtmlImageParser": { + "Label": "HTML 이미지 파서", + "Fields": { + "Path": "파일", + "Path-Description": "이미지를 파싱할 선택적 파일 또는 변수입니다. 주어지지 않으면 작업 파일이 파싱됩니다.", + "Pattern": "패턴", + "Pattern-Help": "결과와 일치하는 선택적 대소문자 구분 없는 정규 표현식입니다. 이와 일치하는 결과만 허용됩니다.", + "Pattern-Placeholder": "선택적" + }, + "Outputs": { + "1": "이미지를 찾고 ImageUrls 변수에 저장되었습니다.", + "2": "찾은 이미지가 없습니다." + } + }, + "HtmlLinkParser": { + "Label": "HTML 링크 파서", + "Fields": { + "Path": "파일", + "Path-Description": "링크를 파싱할 선택적 파일 또는 변수입니다. 주어지지 않으면 작업 파일이 파싱됩니다.", + "Pattern": "패턴", + "Pattern-Help": "결과와 일치하는 선택적 대소문자 구분 없는 정규 표현식입니다. 이와 일치하는 결과만 허용됩니다.", + "Pattern-Placeholder": "선택적" + }, + "Outputs": { + "1": "링크가 발견되어 Links 변수에 저장되었습니다.", + "2": "찾은 링크가 없습니다." + } + }, + "InputUrl": { + "Label": "입력 URL" + }, + "WebRequest": { + "Description": "웹 요청을 보낼 수 있게 해줍니다.", + "Label": "웹 요청", + "Fields": { + "Body": "본문", + "Body-Help": "전송되는 요청의 본문입니다. 이 필드에서 변수를 사용할 수 있습니다.", + "ContentType": "콘텐츠 유형", + "ContentType-Help": "전송할 메시지의 콘텐츠 유형", + "Headers": "헤더", + "Headers-Help": "요청과 함께 보낼 선택적 헤더", + "HeadersKey": "키", + "HeadersValue": "값", + "Method": "메서드", + "Method-Help": "이 요청을 보낼 때 사용할 웹 메서드", + "Url": "URL", + "Url-Help": "요청의 URL" + }, + "Outputs": { + "1": "성공적으로 전송되었습니다.", + "2": "요청이 비정상적인 상태 코드를 반환했습니다." + } + } + } + }, + "Plugins": { + "Web": { + "Description": "웹 관련 흐름 요소를 제공하는 플러그인입니다.", + "Label": "웹" + } + } +} \ No newline at end of file diff --git a/Web/i18n/zht.json b/Web/i18n/zht.json new file mode 100644 index 00000000..e4d41a7c --- /dev/null +++ b/Web/i18n/zht.json @@ -0,0 +1,77 @@ +{ + "Flow": { + "Parts": { + "Downloader": { + "Description": "下載指定的URL", + "Label": "下載器", + "Fields": { + "Url": "URL", + "Url-Help": "要下載的URL,留空以使用當前工作文件,如果當前工作文件不是URL,則將失敗。" + }, + "Outputs": { + "1": "URL成功下載", + "2": "URL下載失敗" + } + }, + "HtmlImageParser": { + "Label": "HTML圖像解析器", + "Fields": { + "Path": "文件", + "Path-Description": "要解析圖像的可選文件或變量,如果未提供,則將解析工作文件。", + "Pattern": "模式", + "Pattern-Help": "一個可選的不區分大小寫的正則表達式,用於匹配結果,只有匹配此模式的結果將被接受。", + "Pattern-Placeholder": "可選" + }, + "Outputs": { + "1": "找到圖像並存儲在ImageUrls變量中", + "2": "未找到圖像" + } + }, + "HtmlLinkParser": { + "Label": "HTML鏈接解析器", + "Fields": { + "Path": "文件", + "Path-Description": "要解析鏈接的可選文件或變量,如果未提供,則將解析工作文件。", + "Pattern": "模式", + "Pattern-Help": "一個可選的不區分大小寫的正則表達式,用於匹配結果,只有匹配此模式的結果將被接受。", + "Pattern-Placeholder": "可選" + }, + "Outputs": { + "1": "找到鏈接並存儲在Links變量中", + "2": "未找到鏈接" + } + }, + "InputUrl": { + "Label": "輸入URL" + }, + "WebRequest": { + "Description": "允許您發送網絡請求", + "Label": "網絡請求", + "Fields": { + "Body": "主體", + "Body-Help": "發送的請求主體。此字段可以使用變量。", + "ContentType": "內容類型", + "ContentType-Help": "要發送的消息的內容類型", + "Headers": "標頭", + "Headers-Help": "要隨請求發送的可選標頭", + "HeadersKey": "鍵", + "HeadersValue": "值", + "Method": "方法", + "Method-Help": "發送此請求時使用的網絡方法", + "Url": "URL", + "Url-Help": "請求的URL" + }, + "Outputs": { + "1": "成功發送", + "2": "請求返回非成功狀態碼" + } + } + } + }, + "Plugins": { + "Web": { + "Description": "提供Web相關流程元素的插件", + "Label": "網絡" + } + } +} \ No newline at end of file