AI generate only produces images, so Video Pin / Reel / TikTok Video are filtered out in previewOnly and rejected server-side with a clear error. Co-authored-by: Cursor <cursoragent@cursor.com>
413 lines
19 KiB
PHP
413 lines
19 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
return [
|
|
'mobile_notice' => '자동화 편집기는 큰 화면에서 가장 잘 작동합니다. 워크플로를 만들려면 데스크톱에서 열어주세요.',
|
|
'title' => '자동화',
|
|
'default_name' => '새 자동화',
|
|
|
|
'actions' => [
|
|
'new' => '새 자동화',
|
|
'edit' => '편집',
|
|
'save' => '저장',
|
|
'activate' => '활성화',
|
|
'pause' => '일시정지',
|
|
'delete' => '삭제',
|
|
'retry' => '재시도',
|
|
'guide' => '작동 방식 알아보기',
|
|
],
|
|
|
|
'tabs' => [
|
|
'build' => '빌드',
|
|
'variables' => '변수',
|
|
'test' => '테스트',
|
|
],
|
|
|
|
'nav' => [
|
|
'workflow' => '워크플로',
|
|
'invocations' => '실행 기록',
|
|
'metrics' => '지표',
|
|
'settings' => '설정',
|
|
],
|
|
|
|
'settings' => [
|
|
'general' => '일반',
|
|
'general_description' => '이 자동화의 이름을 변경하세요.',
|
|
'name_label' => '이름',
|
|
'name_saved' => '자동화 이름이 변경되었습니다.',
|
|
'status_title' => '상태',
|
|
'status_description' => '활성화하여 실행을 시작하거나 일시정지하여 중지하세요.',
|
|
'activated_at' => ':date에 활성화됨',
|
|
'paused_at' => ':date에 일시정지됨',
|
|
'created_at' => ':date에 생성됨',
|
|
'danger_title' => '위험 구역',
|
|
'danger_description' => '되돌릴 수 없는 작업입니다.',
|
|
'delete_title' => '이 자동화 삭제',
|
|
'delete_description' => '자동화와 실행 기록을 영구적으로 제거합니다.',
|
|
],
|
|
|
|
'status_run' => [
|
|
'pending' => '대기 중',
|
|
'running' => '실행 중',
|
|
'waiting' => '기다리는 중',
|
|
'completed' => '완료됨',
|
|
'failed' => '실패',
|
|
'cancelled' => '취소됨',
|
|
],
|
|
|
|
'node_type' => [
|
|
'trigger' => '트리거',
|
|
'generate' => '콘텐츠 생성',
|
|
'delay' => '지연',
|
|
'condition' => '조건',
|
|
'publish' => '게시',
|
|
'webhook' => '웹훅',
|
|
'end' => '종료',
|
|
'fetch_rss' => 'RSS 가져오기',
|
|
'http_request' => 'HTTP 요청',
|
|
],
|
|
|
|
'invocations' => [
|
|
'empty' => '아직 실행 기록이 없습니다.',
|
|
'refresh' => '새로고침',
|
|
'search_placeholder' => '실행 ID로 검색…',
|
|
'copied' => '실행 ID가 복사되었습니다.',
|
|
'loading' => '단계를 불러오는 중…',
|
|
'no_steps' => '기록된 단계가 없습니다.',
|
|
'load_error' => '단계를 불러올 수 없습니다.',
|
|
'steps' => '{0}단계 없음|{1}:count개 단계|[2,*]:count개 단계',
|
|
'filter' => [
|
|
'all' => '모든 상태',
|
|
],
|
|
'columns' => [
|
|
'timestamp' => '시각',
|
|
'run' => '실행',
|
|
'status' => '상태',
|
|
'message' => '마지막 메시지',
|
|
'duration' => '소요 시간',
|
|
],
|
|
'summary' => [
|
|
'completed' => '워크플로 완료됨',
|
|
'failed' => '워크플로 실패',
|
|
'running' => '워크플로 실행 중',
|
|
'cancelled' => '워크플로 취소됨',
|
|
'pending' => '워크플로 대기 중',
|
|
],
|
|
],
|
|
|
|
'metrics' => [
|
|
'overview' => '개요',
|
|
'runs_over_time' => '시간별 실행 횟수',
|
|
'posts_by_platform' => '플랫폼별 게시물',
|
|
'no_posts' => '이 기간에 게시된 게시물이 없습니다.',
|
|
'cards' => [
|
|
'runs' => '총 실행 횟수',
|
|
'completed' => '완료됨',
|
|
'failed' => '실패',
|
|
'in_progress' => '진행 중',
|
|
'success_rate' => '성공률',
|
|
'avg_duration' => '평균 소요 시간',
|
|
'posts_created' => '생성된 게시물',
|
|
],
|
|
'legend' => [
|
|
'started' => '시작됨',
|
|
'completed' => '완료됨',
|
|
'failed' => '실패',
|
|
],
|
|
],
|
|
|
|
'categories' => [
|
|
'sources' => '소스',
|
|
'content' => '콘텐츠',
|
|
'flow' => '흐름',
|
|
'output' => '출력',
|
|
],
|
|
|
|
'variables' => [
|
|
'title' => '워크플로 변수',
|
|
'hint' => '{{ variables.KEY }}로 어디서나 참조할 수 있는 재사용 가능한 값입니다. 암호화되어 저장됩니다.',
|
|
'empty' => '아직 변수가 없습니다.',
|
|
'key' => '키',
|
|
'value' => '값',
|
|
'key_placeholder' => 'API_KEY',
|
|
'value_placeholder' => '값',
|
|
'add' => '새 변수',
|
|
],
|
|
|
|
'expr' => [
|
|
'trigger_event' => '트리거 이벤트 이름',
|
|
'trigger_fired_at' => '트리거가 발생한 시각',
|
|
'trigger_post_id' => '트리거 게시물 ID',
|
|
'trigger_post_content' => '트리거 게시물 내용',
|
|
'trigger_post_status' => '트리거 게시물 상태',
|
|
'trigger_post_scheduled_at' => '게시물 예약 시각',
|
|
'trigger_post_published_at' => '게시물 게시 시각',
|
|
'fetched_title' => '가져온 항목 제목',
|
|
'fetched_link' => '가져온 항목 링크',
|
|
'fetched_date' => '가져온 항목 게시일',
|
|
'fetched_content' => '가져온 항목 전체 내용',
|
|
'fetched_description' => '가져온 항목 요약',
|
|
'fetched_author' => '가져온 항목 작성자',
|
|
'fetched_image' => '가져온 항목 이미지 URL',
|
|
'fetched_categories' => '가져온 항목 카테고리',
|
|
'fetched_enclosure' => '가져온 항목 미디어 (오디오/동영상/파일)',
|
|
'fetched_pubdate' => '가져온 항목 게시일',
|
|
'fetched_http' => '가져온 HTTP 항목 (필드 추가)',
|
|
'generated_content' => 'AI가 생성한 게시물 내용',
|
|
'generated_post_url' => 'AI가 생성한 게시물 URL',
|
|
'variable' => '워크플로 변수',
|
|
'now' => '현재 날짜 및 시간',
|
|
],
|
|
|
|
'test' => [
|
|
'description' => '합성된 트리거 페이로드를 사용하여 자동화를 처음부터 끝까지 실행합니다. 실제 일정이나 피드를 기다리지 않고 각 노드를 검증하는 데 유용합니다.',
|
|
'starting' => '테스트 실행을 시작하는 중…',
|
|
'in_progress' => '진행 중',
|
|
'completed' => '완료됨',
|
|
'failed' => '실패',
|
|
'waiting' => '기다리는 중',
|
|
'close' => '닫기',
|
|
'no_node_runs' => '첫 번째 노드가 시작되기를 기다리는 중…',
|
|
'node_input' => '입력',
|
|
'node_output' => '출력',
|
|
'node_error' => '오류',
|
|
'no_new_items' => '새 항목 없음 — 이후 노드가 실행되지 않았습니다.',
|
|
'error_starting' => '테스트 실행을 시작할 수 없습니다.',
|
|
'with_real_data' => '실제 데이터로',
|
|
'run' => '테스트 실행',
|
|
'idle_hint' => '테스트 실행을 눌러 자동화를 처음부터 끝까지 실행하세요.',
|
|
'real_data_hint' => '이 테스트는 게시물을 실제로 게시하고, 폴링 워터마크를 진행시키며, 외부 사이드 이펙트를 트리거합니다.',
|
|
'dry_badge' => '드라이 런',
|
|
],
|
|
|
|
'status' => [
|
|
'draft' => '초안',
|
|
'active' => '활성',
|
|
'paused' => '일시정지됨',
|
|
],
|
|
|
|
'index' => [
|
|
'empty_title' => '아직 자동화가 없습니다',
|
|
'empty_description' => '첫 자동화를 만들어 자동으로 게시를 시작하세요.',
|
|
'columns' => [
|
|
'name' => '이름',
|
|
'status' => '상태',
|
|
'created' => '생성일',
|
|
],
|
|
],
|
|
|
|
'form' => [
|
|
'activate_error_fallback' => '자동화를 활성화할 수 없습니다.',
|
|
'pause_error_fallback' => '자동화를 일시정지할 수 없습니다.',
|
|
'save_error_fallback' => '자동화를 저장할 수 없습니다.',
|
|
'save_success' => '자동화가 저장되었습니다.',
|
|
'empty_canvas_title' => '자동화 구성 시작하기',
|
|
'empty_canvas_description' => '시작하려면 왼쪽 패널에서 노드를 끌어다 놓으세요.',
|
|
'name_placeholder' => '제목 없는 자동화',
|
|
],
|
|
|
|
'nodes' => [
|
|
'trigger' => '트리거',
|
|
'generate' => '생성',
|
|
'delay' => '지연',
|
|
'condition' => '조건',
|
|
'publish' => '게시',
|
|
'webhook' => '웹훅',
|
|
'end' => '종료',
|
|
'end_summary' => '여기서 자동화를 중지합니다',
|
|
'fetch_rss' => 'RSS 가져오기',
|
|
'http_request' => 'HTTP 요청',
|
|
'handles' => [
|
|
'items' => '항목 있음',
|
|
'no_items' => '항목 없음',
|
|
],
|
|
],
|
|
|
|
'config' => [
|
|
'select_placeholder' => '선택…',
|
|
'invalid_json' => '아직 유효한 JSON이 아닙니다.',
|
|
'expand_editor' => '편집기 확장',
|
|
'minimize_editor' => '최소화',
|
|
|
|
'trigger' => [
|
|
'type' => '트리거 유형',
|
|
'types' => [
|
|
'schedule' => '일정',
|
|
'post_published' => '게시물이 게시될 때',
|
|
'post_scheduled' => '게시물이 예약될 때',
|
|
],
|
|
'post_published_hint' => '이 워크스페이스의 게시물이 게시될 때마다 실행됩니다. 게시된 게시물은 이후 노드에서 {{ trigger.post }}로 사용할 수 있습니다.',
|
|
'post_scheduled_hint' => '이 워크스페이스의 게시물이 예약될 때마다 실행됩니다. 예약된 게시물은 {{ trigger.post }}로 사용할 수 있습니다.',
|
|
|
|
'schedule' => [
|
|
'field' => '트리거 간격',
|
|
'fields' => [
|
|
'minutes' => '분',
|
|
'hours' => '시간',
|
|
'days' => '일',
|
|
'weeks' => '주',
|
|
'months' => '개월',
|
|
],
|
|
'minutes_interval' => '트리거 간격 (분)',
|
|
'hours_interval' => '트리거 간격 (시간)',
|
|
'days_interval' => '트리거 간격 (일)',
|
|
'hour' => '트리거 시각 (시)',
|
|
'minute' => '트리거 시각 (분)',
|
|
'weekdays' => '실행할 요일',
|
|
'day_of_month' => '매월 며칠',
|
|
'weekday_names' => [
|
|
'sun' => '일',
|
|
'mon' => '월',
|
|
'tue' => '화',
|
|
'wed' => '수',
|
|
'thu' => '목',
|
|
'fri' => '금',
|
|
'sat' => '토',
|
|
],
|
|
'summary' => [
|
|
'every_n_minutes' => '매 분마다 실행|:count분마다 실행',
|
|
'every_n_hours' => '매시간 :minute분에 실행|:count시간마다 :minute분에 실행',
|
|
'every_n_days' => '매일 :time에 실행|:count일마다 :time에 실행',
|
|
'weekly' => '매주 :days :time에 실행',
|
|
'monthly' => '매월 :day일 :time에 실행',
|
|
],
|
|
],
|
|
],
|
|
'generate' => [
|
|
'social_accounts' => '소셜 계정',
|
|
'social_accounts_empty' => '연결된 소셜 계정이 없습니다. 먼저 하나를 연결하세요.',
|
|
'target_slide_count' => '생성할 슬라이드 수',
|
|
'prompt_template' => '프롬프트 템플릿',
|
|
'prompt_template_hint' => '{{를 입력하여 이전 단계의 데이터를 삽입하세요.',
|
|
'image_count' => '생성할 이미지 수',
|
|
'image_count_hint' => '0 = 텍스트 전용 게시물 (이미지 없음). 1 = 단일 이미지. 2+ = 캐러셀.',
|
|
'use_brand_voice' => '브랜드 보이스 사용',
|
|
'use_brand_voice_hint' => '브랜드 설명과 보이스를 적용합니다. 서드파티 소스(뉴스, RSS)를 충실히 큐레이션하려면 끄세요.',
|
|
'use_brand_visuals' => '브랜드 비주얼 사용',
|
|
'use_brand_visuals_hint' => '브랜드 색상과 아이덴티티로 AI 이미지를 조정합니다. 게시물 주제만으로 중립적인 이미지를 만들려면 끄세요.',
|
|
'style' => '스타일',
|
|
'account_summary' => ':count개 계정 · :format|:count개 계정 · :format',
|
|
'formats' => [
|
|
'single' => '단일',
|
|
'carousel' => '캐러셀',
|
|
],
|
|
],
|
|
'delay' => [
|
|
'duration' => '기간',
|
|
'unit' => '단위',
|
|
'units' => [
|
|
'minutes' => '분',
|
|
'hours' => '시간',
|
|
'days' => '일',
|
|
],
|
|
],
|
|
'condition' => [
|
|
'field' => '필드',
|
|
'operator' => '연산자',
|
|
'operators' => [
|
|
'contains' => '포함',
|
|
'not_contains' => '포함하지 않음',
|
|
'equals' => '같음',
|
|
'not_equals' => '같지 않음',
|
|
'matches' => '일치 (정규식)',
|
|
'greater_than' => '초과',
|
|
'less_than' => '미만',
|
|
],
|
|
'value' => '값',
|
|
],
|
|
'publish' => [
|
|
'mode' => '모드',
|
|
'modes' => [
|
|
'now' => '지금 게시',
|
|
'scheduled' => '예약',
|
|
'draft' => '초안으로 저장',
|
|
],
|
|
'scheduled_offset' => '트리거 기준 오프셋 (분)',
|
|
'offset_summary' => ':mode · +:offset분',
|
|
],
|
|
'webhook' => [
|
|
'url' => 'URL',
|
|
'method' => '메서드',
|
|
'payload_template' => '페이로드 템플릿 (JSON)',
|
|
],
|
|
'end' => [
|
|
'reason' => '사유 (선택)',
|
|
'reason_placeholder' => '예: 조건에 의해 필터링됨',
|
|
],
|
|
'fetch_rss' => [
|
|
'feed_url' => '피드 URL',
|
|
'feed_url_hint' => '첫 실행 시 워터마크가 "현재"로 설정되어 과거 항목이 이후 노드로 쏟아지지 않습니다. 이후 실행에서는 이전 폴링보다 새로운 항목만 표시됩니다.',
|
|
'inspect' => '피드 검사',
|
|
'inspecting' => '검사 중…',
|
|
'inspect_hint' => '샘플을 가져와 이후 노드에서 사용할 수 있는 필드를 확인하세요.',
|
|
'inspect_error' => '이 피드를 읽을 수 없습니다. URL을 확인한 후 다시 시도하세요.',
|
|
'discovered_fields' => '사용 가능한 필드',
|
|
'discovered_empty' => '최신 항목에서 필드를 찾을 수 없습니다.',
|
|
],
|
|
'http_request' => [
|
|
'url' => 'URL',
|
|
'method' => '메서드',
|
|
'auth_type' => '인증',
|
|
'auth' => [
|
|
'none' => '없음 (공개)',
|
|
'bearer' => 'Bearer 토큰',
|
|
'basic' => 'Basic 인증',
|
|
'api_key' => 'API 키 헤더',
|
|
],
|
|
'bearer_token' => 'Bearer 토큰',
|
|
'basic_username' => '사용자 이름',
|
|
'basic_password' => '비밀번호',
|
|
'api_key_header' => '헤더 이름',
|
|
'api_key_value' => 'API 키',
|
|
'body_template' => '본문 템플릿 (JSON)',
|
|
'headers' => '헤더',
|
|
'header_name' => '헤더 이름',
|
|
'header_value' => '값',
|
|
'add_header' => '헤더 추가',
|
|
'polling_section' => '목록 및 중복 제거 (선택)',
|
|
'polling_hint' => '응답이 목록인 경우 각 항목이 워크플로를 개별적으로 실행합니다. 단일 객체는 한 번 실행됩니다.',
|
|
'items_path' => '항목 경로',
|
|
'items_path_hint' => '응답이 이미 배열이면 비워 두세요. 중첩 배열의 경우 점 표기 경로(예: data.items)를, id로 키가 지정된 객체의 경우 *를 사용하세요.',
|
|
'item_key_path' => '항목 키 경로',
|
|
'item_key_path_hint' => '고유 id의 JSON 경로(예: id). 이미 본 항목은 건너뛰므로 날짜가 없는 피드도 새 항목만 전달됩니다.',
|
|
'item_date_path' => '항목 날짜 경로',
|
|
'item_date_path_hint' => '항목 타임스탬프의 JSON 경로(예: published_at). 가능한 경우 키 경로보다 우선합니다. 첫 폴링은 기준선을 기록하고 아무것도 전달하지 않으므로 기존 피드가 첫날 쏟아지지 않습니다.',
|
|
],
|
|
],
|
|
|
|
'delete' => [
|
|
'title' => '자동화 삭제',
|
|
'description' => '이 자동화를 삭제하시겠습니까? 모든 실행 및 트리거 항목도 함께 제거됩니다. 이 작업은 되돌릴 수 없습니다.',
|
|
'confirm' => '삭제',
|
|
'cancel' => '취소',
|
|
],
|
|
|
|
'flash' => [
|
|
'deleted' => '자동화가 성공적으로 삭제되었습니다!',
|
|
],
|
|
|
|
'errors' => [
|
|
'no_active_social_accounts' => '이 자동화에 구성된 활성 소셜 계정이 없습니다.',
|
|
'must_have_one_trigger' => '자동화에는 정확히 하나의 트리거 노드가 있어야 합니다.',
|
|
'trigger_must_be_connected' => '트리거 노드는 최소 하나의 노드에 연결되어야 합니다.',
|
|
'graph_contains_cycle' => '자동화 그래프에 순환이 포함되어 있습니다.',
|
|
'only_failed_can_retry' => '실패한 실행만 재시도할 수 있습니다.',
|
|
'no_generated_post' => '실행에서 생성된 게시물을 찾을 수 없습니다.',
|
|
'webhook_server_error' => '웹훅 서버 오류.',
|
|
'webhook_request_failed' => '웹훅 요청을 완료할 수 없습니다.',
|
|
'webhook_missing_url' => '웹훅 노드에 URL이 없습니다.',
|
|
'webhook_invalid_payload_json' => '페이로드 템플릿이 유효한 JSON이 아닙니다.',
|
|
'url_not_allowed' => '요청 URL이 비공개이거나 접근할 수 없는 주소를 가리켜 차단되었습니다.',
|
|
'node_no_longer_exists' => '노드 :node_id이(가) 자동화에 더 이상 존재하지 않습니다.',
|
|
'no_trigger_connection' => '트리거 노드에 연결된 노드가 없습니다.',
|
|
'fetch_rss_missing_url' => 'RSS 가져오기 노드에 피드 URL이 없습니다.',
|
|
'fetch_rss_request_failed' => 'RSS 피드 요청이 실패했습니다.',
|
|
'fetch_rss_malformed' => 'RSS 피드 형식이 잘못되었습니다.',
|
|
'http_missing_url' => 'HTTP 요청 노드에 URL이 없습니다.',
|
|
'http_request_exception' => 'HTTP 요청에서 예외가 발생했습니다.',
|
|
'http_request_failed' => 'HTTP 요청이 실패했습니다.',
|
|
'http_items_path_not_array' => '항목 경로가 목록으로 해석되지 않았습니다.',
|
|
'generate_image_format_required' => 'AI 생성은 이미지만 만듭니다. 이미지 형식을 선택하세요(동영상 불가).',
|
|
],
|
|
];
|