feat: introduce trigger functionality (#27644)

Signed-off-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: Stream <Stream_2@qq.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zhsama <torvalds@linux.do>
Co-authored-by: Harry <xh001x@hotmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: yessenia <yessenia.contact@gmail.com>
Co-authored-by: hjlarry <hjlarry@163.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: WTW0313 <twwu@dify.ai>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Yeuoly
2025-11-12 17:59:37 +08:00
committed by GitHub
parent ca7794305b
commit b76e17b25d
785 changed files with 41186 additions and 3725 deletions

View File

@@ -9,8 +9,10 @@ const translation = {
publish: '公開する',
update: '更新',
publishUpdate: '更新を公開',
run: '実行',
run: 'テスト実行',
running: '実行中',
chooseStartNodeToRun: '実行する開始ノードを選択',
runAllTriggers: 'すべてのトリガーを実行',
inRunMode: '実行モード中',
inPreview: 'プレビュー中',
inPreviewMode: 'プレビューモード中',
@@ -19,11 +21,8 @@ const translation = {
runHistory: '実行履歴',
goBackToEdit: '編集に戻る',
conversationLog: '会話ログ',
features: '機能',
featuresDescription: 'Web アプリの操作性を向上させる機能',
ImageUploadLegacyTip: '開始フォームでファイル型変数が作成可能になりました。画像アップロード機能は今後サポート終了となります。',
fileUploadTip: '画像アップロード機能がファイルアップロードに拡張されました',
featuresDocLink: '詳細を見る',
debugAndPreview: 'プレビュー',
restart: '再起動',
currentDraft: '現在の下書き',
@@ -47,7 +46,8 @@ const translation = {
needConnectTip: '接続されていないステップがあります',
maxTreeDepth: '1 ブランチあたりの最大ノード数:{{depth}}',
needAdd: '{{node}}ノードを追加する必要があります',
needEndNode: '終了ブロックを追加する必要があります',
needOutputNode: '出力ノードを追加する必要があります',
needStartNode: '少なくとも1つのスタートードを追加する必要があります',
needAnswerNode: '回答ブロックを追加する必要があります',
workflowProcess: 'ワークフロー処理',
notRunning: 'まだ実行されていません',
@@ -83,6 +83,7 @@ const translation = {
configure: '設定',
manageInTools: 'ツールページで管理',
workflowAsToolTip: 'ワークフロー更新後はツールの再設定が必要です',
workflowAsToolDisabledHint: '最新のワークフローを公開し、接続済みの User Input ノードを用意してからツールとして設定してください。',
viewDetailInTracingPanel: '詳細を表示',
syncingData: 'データ同期中。。。',
importDSL: 'DSL をインポート',
@@ -116,6 +117,7 @@ const translation = {
loadMore: 'さらに読み込む',
noHistory: '履歴がありません',
tagBound: 'このタグを使用しているアプリの数',
moreActions: 'さらにアクション',
},
env: {
envPanelTitle: '環境変数',
@@ -140,6 +142,19 @@ const translation = {
export: 'シークレット値付きでエクスポート',
},
},
globalVar: {
title: 'システム変数',
description: 'システム変数は、タイプが適合していれば配線なしで任意のードから参照できるグローバル変数です。エンドユーザーIDやワークフローIDなどが含まれます。',
fieldsDescription: {
conversationId: '会話ID',
dialogCount: '会話数',
userId: 'ユーザーID',
triggerTimestamp: 'アプリケーションの起動タイムスタンプ',
appId: 'アプリケーションID',
workflowId: 'ワークフローID',
workflowRunId: 'ワークフロー実行ID',
},
},
sidebar: {
exportWarning: '現在保存されているバージョンをエクスポート',
exportWarningDesc: 'これは現在保存されているワークフローのバージョンをエクスポートします。エディターで未保存の変更がある場合は、まずワークフローキャンバスのエクスポートオプションを使用して保存してください。',
@@ -213,6 +228,16 @@ const translation = {
invalidVariable: '無効な変数です',
noValidTool: '{{field}} に利用可能なツールがありません',
toolParameterRequired: '{{field}}: パラメータ [{{param}}] は必須です',
startNodeRequired: '{{operation}}前に開始ノードを追加してください',
},
error: {
startNodeRequired: '{{operation}}前に開始ノードを追加してください',
operations: {
connectingNodes: 'ノード接続',
addingNodes: 'ノード追加',
modifyingWorkflow: 'ワークフロー変更',
updatingWorkflow: 'ワークフロー更新',
},
},
singleRun: {
testRun: 'テスト実行',
@@ -229,7 +254,9 @@ const translation = {
'searchBlock': 'ブロック検索',
'blocks': 'ブロック',
'searchTool': 'ツール検索',
'searchTrigger': 'トリガー検索...',
'tools': 'ツール',
'allTriggers': 'すべてのトリガー',
'allTool': 'すべて',
'customTool': 'カスタム',
'workflowTool': 'ワークフロー',
@@ -238,16 +265,23 @@ const translation = {
'transform': '変換',
'utilities': 'ツール',
'noResult': '該当なし',
'noPluginsFound': 'プラグインが見つかりません',
'requestToCommunity': 'コミュニティにリクエスト',
'plugin': 'プラグイン',
'agent': 'エージェント戦略',
'noFeaturedPlugins': 'マーケットプレイスでさらにツールを見つける',
'noFeaturedTriggers': 'マーケットプレイスでさらにトリガーを見つける',
'addAll': 'すべてを追加する',
'allAdded': 'すべて追加されました',
'searchDataSource': 'データソースを検索',
'sources': 'ソース',
'start': '始める',
'startDisabledTip': 'トリガーノードとユーザー入力ノードは互いに排他です。',
},
blocks: {
'start': '開始',
'end': '終了',
'start': 'ユーザー入力',
'originalStartNode': '元の開始ノード',
'end': '出力',
'answer': '回答',
'llm': 'LLM',
'knowledge-retrieval': '知識検索',
@@ -270,10 +304,14 @@ const translation = {
'loop-end': 'ループ完了',
'knowledge-index': '知識ベース',
'datasource': 'データソース',
'trigger-plugin': 'プラグイントリガー',
'trigger-webhook': 'Webhook トリガー',
'trigger-schedule': 'スケジュールトリガー',
},
customWebhook: 'カスタムWebhook',
blocksAbout: {
'start': 'ワークフロー開始時の初期パラメータを定義します。',
'end': 'ワークフローの終了条件と結果のタイプを定義します',
'end': 'ワークフローの出力と結果のタイプを定義します',
'answer': 'チャットダイアログの返答内容を定義します。',
'llm': '大規模言語モデルを呼び出して質問回答や自然言語処理を実行します。',
'knowledge-retrieval': 'ナレッジベースからユーザー質問に関連するテキストを検索します。',
@@ -294,7 +332,11 @@ const translation = {
'agent': '大規模言語モデルを活用した質問応答や自然言語処理を実行します。',
'knowledge-index': '知識ベースについて',
'datasource': 'データソースについて',
'trigger-schedule': 'スケジュールに基づいてワークフローを開始する時間ベースのトリガー',
'trigger-webhook': 'Webhook トリガーは第三者システムからの HTTP プッシュを受信してワークフローを自動的に開始します。',
'trigger-plugin': 'サードパーティ統合トリガー、外部プラットフォームのイベントによってワークフローを開始します',
},
difyTeam: 'Dify チーム',
operator: {
zoomIn: '拡大',
zoomOut: '縮小',
@@ -324,7 +366,7 @@ const translation = {
panel: {
userInputField: 'ユーザー入力欄',
changeBlock: 'ノード変更',
helpLink: 'ヘルプリンク',
helpLink: 'ドキュメントを見る',
about: '詳細',
createdBy: '作成者',
nextStep: '次のステップ',
@@ -334,12 +376,14 @@ const translation = {
checklist: 'チェックリスト',
checklistTip: '公開前に全ての項目を確認してください',
checklistResolved: '全てのチェックが完了しました',
goTo: '移動',
startNode: '開始ノード',
organizeBlocks: 'ノード整理',
change: '変更',
optional: '(任意)',
moveToThisNode: 'このノードに移動する',
maximize: 'キャンバスを最大化する',
minimize: '全画面を終了する',
scrollToSelectedNode: '選択したノードまでスクロール',
optional_and_hidden: '(オプションおよび非表示)',
},
nodes: {
@@ -964,6 +1008,137 @@ const translation = {
embeddingModelIsInvalid: '埋め込みモデルが無効です',
rerankingModelIsInvalid: 'リランキングモデルは無効です',
},
triggerSchedule: {
frequency: {
label: '頻度',
monthly: '毎月',
weekly: '毎週',
daily: '毎日',
hourly: '毎時',
},
frequencyLabel: '頻度',
days: '日',
title: 'スケジュール',
minutes: '分',
time: '時刻',
useCronExpression: 'Cron 式を使用',
nextExecutionTimes: '次の5回の実行時刻',
nextExecution: '次回実行',
notConfigured: '未設定',
startTime: '開始時刻',
hours: '時間',
onMinute: '分',
executeNow: '今すぐ実行',
weekdays: '曜日',
selectDateTime: '日時を選択',
cronExpression: 'Cron 式',
selectFrequency: '頻度を選択',
lastDay: '月末',
nextExecutionTime: '次回実行時刻',
lastDayTooltip: 'すべての月に31日があるわけではありません。「月末」オプションを使用して各月の最終日を選択してください。',
useVisualPicker: 'ビジュアル設定を使用',
nodeTitle: 'スケジュールトリガー',
mode: 'モード',
timezone: 'タイムゾーン',
visualConfig: 'ビジュアル設定',
monthlyDay: '月の日',
executionTime: '実行時間',
invalidTimezone: '無効なタイムゾーン',
invalidCronExpression: '無効なCron式',
noValidExecutionTime: '有効な実行時間を計算できません',
executionTimeCalculationError: '実行時間の計算に失敗しました',
invalidFrequency: '無効な頻度',
invalidStartTime: '無効な開始時間',
startTimeMustBeFuture: '開始時間は未来の時間である必要があります',
invalidTimeFormat: '無効な時間形式期待される形式HH:MM AM/PM',
invalidWeekday: '無効な曜日:{{weekday}}',
invalidMonthlyDay: '月の日は1-31の間または"last"である必要があります',
invalidOnMinute: '分は0-59の間である必要があります',
invalidExecutionTime: '無効な実行時間',
executionTimeMustBeFuture: '実行時間は未来の時間である必要があります',
},
triggerWebhook: {
title: 'Webhook トリガー',
nodeTitle: '🔗 Webhook トリガー',
configPlaceholder: 'Webhook トリガーの設定がここに実装されます',
webhookUrl: 'Webhook URL',
webhookUrlPlaceholder: '生成をクリックして Webhook URL を作成',
generate: '生成',
copy: 'コピー',
test: 'テスト',
urlGenerated: 'Webhook URL を生成しました',
urlGenerationFailed: 'Webhook URL の生成に失敗しました',
urlCopied: 'URL をクリップボードにコピーしました',
method: 'メソッド',
contentType: 'コンテンツタイプ',
queryParameters: 'クエリパラメータ',
headerParameters: 'ヘッダーパラメータ',
requestBodyParameters: 'リクエストボディパラメータ',
parameterName: '変数名',
varName: '変数名',
varType: 'タイプ',
varNamePlaceholder: '変数名を入力...',
headerName: '変数名',
required: '必須',
addParameter: '追加',
addHeader: '追加',
noParameters: '設定されたパラメータはありません',
noQueryParameters: 'クエリパラメータは設定されていません',
noHeaders: 'ヘッダーは設定されていません',
noBodyParameters: 'ボディパラメータは設定されていません',
debugUrlTitle: 'テスト実行には、常にこのURLを使用してください',
debugUrlCopy: 'クリックしてコピー',
debugUrlCopied: 'コピーしました!',
errorHandling: 'エラー処理',
errorStrategy: 'エラー処理',
responseConfiguration: 'レスポンス',
asyncMode: '非同期モード',
statusCode: 'ステータスコード',
responseBody: 'レスポンスボディ',
responseBodyPlaceholder: 'ここにレスポンスボディを入力してください',
headers: 'ヘッダー',
validation: {
webhookUrlRequired: 'Webhook URLが必要です',
invalidParameterType: 'パラメータ"{{name}}"の無効なパラメータタイプ"{{type}}"です',
},
},
triggerPlugin: {
authorized: '認可された',
notConfigured: '設定されていません',
error: 'エラー',
configuration: '構成',
remove: '削除する',
or: 'または',
useOAuth: 'OAuth を使用',
useApiKey: 'API キーを使用',
authenticationFailed: '認証に失敗しました',
authenticationSuccess: '認証に成功しました',
oauthConfigFailed: 'OAuth 設定に失敗しました',
configureOAuthClient: 'OAuth クライアントを設定',
oauthClientDescription: '認証を有効にするために OAuth クライアント認証情報を設定してください',
oauthClientSaved: 'OAuth クライアント設定が正常に保存されました',
configureApiKey: 'API キーを設定',
apiKeyDescription: '認証のための API キー認証情報を設定してください',
apiKeyConfigured: 'API キーが正常に設定されました',
configurationFailed: '設定に失敗しました',
failedToStart: '認証フローの開始に失敗しました',
credentialsVerified: '認証情報が正常に検証されました',
credentialVerificationFailed: '認証情報の検証に失敗しました',
verifyAndContinue: '検証して続行',
configureParameters: 'パラメーターを設定',
parametersDescription: 'トリガーのパラメーターとプロパティを設定してください',
configurationComplete: '設定完了',
configurationCompleteDescription: 'トリガーが正常に設定されました',
configurationCompleteMessage: 'トリガーの設定が完了し、使用する準備ができました。',
parameters: 'パラメーター',
properties: 'プロパティ',
propertiesDescription: 'このトリガーの追加設定プロパティ',
noConfigurationRequired: 'このトリガーには追加の設定は必要ありません。',
subscriptionName: 'サブスクリプション名',
subscriptionNameDescription: 'このトリガーサブスクリプションの一意な名前を入力してください',
subscriptionNamePlaceholder: 'サブスクリプション名を入力...',
subscriptionNameRequired: 'サブスクリプション名は必須です',
},
},
tracing: {
stopBy: '{{user}}によって停止',
@@ -1008,6 +1183,18 @@ const translation = {
description: '最後の実行の結果がここに表示されます',
},
variableInspect: {
listening: {
title: 'トリガーからのイベントを待機中…',
tip: 'HTTP {{nodeName}} エンドポイントにテストリクエストを送信するか、ライブイベントデバッグ用のコールバック URL として利用してイベントトリガーをシミュレートできます。すべての出力は Variable Inspector で直接確認できます。',
tipPlugin: '{{- pluginName}} でイベントを作成し、これらのイベントの出力を Variable Inspector で取得できます。',
tipSchedule: 'スケジュールトリガーからのイベントを待機しています。\n次回の予定実行: {{nextTriggerTime}}',
tipFallback: 'トリガーイベントを待機しています。出力はここに表示されます。',
defaultNodeName: 'このトリガー',
defaultPluginName: 'このプラグイントリガー',
defaultScheduleTime: '未設定',
selectedTriggers: '選択したトリガー',
stopButton: '停止',
},
trigger: {
clear: 'クリア',
running: 'キャッシング実行状況',
@@ -1050,6 +1237,30 @@ const translation = {
lastRunInputsCopied: '前回の実行から{{count}}個の入力をコピーしました',
lastOutput: '最後の出力',
},
triggerStatus: {
enabled: 'トリガー',
disabled: 'トリガー • 無効',
},
entryNodeStatus: {
enabled: 'スタート',
disabled: '開始 • 無効',
},
onboarding: {
title: '開始するには開始ノードを選択してください',
description: '異なる開始ノードには異なる機能があります。心配しないでください、いつでも変更できます。',
userInputFull: 'ユーザー入力(元の開始ノード)',
userInputDescription: 'ユーザー入力変数の設定を可能にする開始ードで、Webアプリ、サービスAPI、MCPサーバー、およびツールとしてのワークフロー機能を持ちます。',
trigger: 'トリガー',
triggerDescription: 'トリガーは、スケジュールされたタスク、カスタムwebhook、または他のアプリとの統合など、ワークフローの開始ードとして機能できます。',
back: '戻る',
learnMore: '詳細を見る',
aboutStartNode: '開始ノードについて。',
escTip: {
press: '',
key: 'esc',
toDismiss: 'キーで閉じる',
},
},
}
export default translation