Explorar el Código

Add jp translation for new features (#6749)

Hanqing Zhao hace 8 meses
padre
commit
c8da4a1b7e

+ 5 - 5
CONTRIBUTING_JA.md

@@ -1,7 +1,7 @@
 Dify にコントリビュートしたいとお考えなのですね。それは素晴らしいことです。
 私たちは、LLM アプリケーションの構築と管理のための最も直感的なワークフローを設計するという壮大な野望を持っています。人数も資金も限られている新興企業として、コミュニティからの支援は本当に重要です。
 
-私たちは現状を鑑み、機敏かつ迅速に開発をする必要がありますが、同時にあなたのようなコントリビューターの方々に、可能な限りスムーズな貢献体験をしていただきたいと思っています。そのためにこのコントリビュートガイドを作成しました。
+私たちは現状を鑑み、機敏かつ迅速に開発をする必要がありますが、同時にあなたのようなコントリビューターの方々に、可能な限りスムーズな貢献体験をしていただきたいと思っています。そのためにこのコントリビュートガイドを作成しました。
 コードベースやコントリビュータの方々と私たちがどのように仕事をしているのかに慣れていただき、楽しいパートにすぐに飛び込めるようにすることが目的です。
 
 このガイドは Dify そのものと同様に、継続的に改善されています。実際のプロジェクトに遅れをとることがあるかもしれませんが、ご理解のほどよろしくお願いいたします。
@@ -14,13 +14,13 @@ Dify にコントリビュートしたいとお考えなのですね。それは
 
 ### 機能リクエスト
 
-* 新しい機能要望を出す場合は、提案する機能が何を実現するものなのかを説明し、可能な限り多くのコンテキストを含めてください。[@perzeusss](https://github.com/perzeuss)は、あなたの要望を書き出すのに役立つ [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) を作ってくれました。気軽に試してみてください。
+* 新しい機能要望を出す場合は、提案する機能が何を実現するものなのかを説明し、可能な限り多くのコンテキストを含めてください。[@perzeusss](https://github.com/perzeuss)は、あなたの要望を書き出すのに役立つ [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) を作ってくれました。気軽に試してみてください。
 
 * 既存の課題から 1 つ選びたい場合は、その下にコメントを書いてください。
 
-  関連する方向で作業しているチームメンバーが参加します。すべてが良好であれば、コーディングを開始する許可が与えられます。私たちが変更を提案した場合にあなたの作業が無駄になることがないよう、それまでこの機能の作業を控えていただくようお願いいたします。
+  関連する方向で作業しているチームメンバーが参加します。すべてが良好であれば、コーディングを開始する許可が与えられます。私たちが変更を提案した場合にあなたの作業が無駄になることがないよう、それまでこの機能の作業を控えていただくようお願いいたします。
 
-  提案された機能がどの分野に属するかによって、あなたは異なるチーム・メンバーと話をするかもしれません。以下は、各チームメンバーが現在取り組んでいる分野の概要です。
+  提案された機能がどの分野に属するかによって、あなたは異なるチーム・メンバーと話をするかもしれません。以下は、各チームメンバーが現在取り組んでいる分野の概要です。
 
 | Member                                                                                  | Scope                                |
 | --------------------------------------------------------------------------------------- | ------------------------------------ |
@@ -153,7 +153,7 @@ Dify のバックエンドは[Flask](https://flask.palletsprojects.com/en/3.0.x/
 いよいよ、私たちのリポジトリにプルリクエスト (PR) を提出する時が来ました。主要な機能については、まず `deploy/dev` ブランチにマージしてテストしてから `main` ブランチにマージします。
 マージ競合などの問題が発生した場合、またはプル リクエストを開く方法がわからない場合は、[GitHub's pull request tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) をチェックしてみてください。
 
-これで完了です!あなたの PR がマージされると、[README](https://github.com/langgenius/dify/blob/main/README.md) にコントリビューターとして紹介されます。
+これで完了です!あなたの PR がマージされると、[README](https://github.com/langgenius/dify/blob/main/README.md) にコントリビューターとして紹介されます。
 
 ## ヘルプを得る
 

+ 1 - 1
web/i18n/en-US/dataset-creation.ts

@@ -62,7 +62,7 @@ const translation = {
       run: 'Run',
       firecrawlTitle: 'Extract web content with 🔥Firecrawl',
       firecrawlDoc: 'Firecrawl docs',
-      firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync_from_website',
+      firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
       options: 'Options',
       crawlSubPage: 'Crawl sub-pages',
       limit: 'Limit',

+ 1 - 1
web/i18n/en-US/dataset.ts

@@ -60,7 +60,7 @@ const translation = {
   rerankSettings: 'Rerank Setting',
   weightedScore: {
     title: 'Weighted Score',
-    description: 'By adjusting the weights assigned this rerank strategy determines whether to prioritize semantic or keyword matching.',
+    description: 'By adjusting the weights assigned, this rerank strategy determines whether to prioritize semantic or keyword matching.',
     semanticFirst: 'Semantic first',
     keywordFirst: 'Keyword first',
     customized: 'Customized',

+ 1 - 1
web/i18n/es-ES/dataset-creation.ts

@@ -62,7 +62,7 @@ const translation = {
       run: 'Ejecutar',
       firecrawlTitle: 'Extraer contenido web con 🔥Firecrawl',
       firecrawlDoc: 'Documentación de Firecrawl',
-      firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync_from_website',
+      firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
       options: 'Opciones',
       crawlSubPage: 'Rastrear subpáginas',
       limit: 'Límite',

+ 1 - 1
web/i18n/ja-JP/app-annotation.ts

@@ -23,7 +23,7 @@ const translation = {
     title: '注釈の返信を編集',
     queryName: 'ユーザーのクエリ',
     answerName: 'ストーリーテラーボット',
-    yourAnswer: 'あなたの回答',
+    yourAnswer: '貴方の回答',
     answerPlaceholder: 'ここに回答を入力してください',
     yourQuery: 'あなたのクエリ',
     queryPlaceholder: 'ここにクエリを入力してください',

+ 1 - 0
web/i18n/ja-JP/app-api.ts

@@ -9,6 +9,7 @@ const translation = {
   play: '再生',
   pause: '一時停止',
   playing: '再生中',
+  loading: '読み込み中',
   merMaind: {
     rerender: '再レンダリング',
   },

+ 54 - 4
web/i18n/ja-JP/app-debug.ts

@@ -38,7 +38,6 @@ const translation = {
     description: 'LLMプロバイダーキーが設定されていません。デバッグする前に設定する必要があります。',
     settingBtn: '設定に移動',
   },
-
   trailUseGPT4Info: {
     title: '現在、gpt-4はサポートされていません',
     description: 'gpt-4を使用するには、APIキーを設定してください。',
@@ -161,7 +160,6 @@ const translation = {
     toolbox: {
       title: 'ツールボックス',
     },
-
     moderation: {
       title: 'コンテンツのモデレーション',
       description: 'モデレーションAPIを使用するか、機密語リストを維持することで、モデルの出力を安全にします。',
@@ -200,7 +198,59 @@ const translation = {
         },
       },
     },
-
+  },
+  generate: {
+    title: 'プロンプト生成器',
+    description: 'プロンプト生成器は、設定済みのモデルを使って、高品質で構造的に優れたプロンプトを作成するための最適化を行います。具体的で詳細な指示をお書きください。',
+    tryIt: '試してみる',
+    instruction: '指示',
+    instructionPlaceHolder: '具体的で明確な指示を入力してください。',
+    generate: '生成',
+    resTitle: '生成されたプロンプト',
+    noDataLine1: '左側に使用例を記入してください,',
+    noDataLine2: 'オーケストレーションのプレビューがこちらに表示されます。',
+    apply: '適用',
+    loading: 'アプリケーションを処理中です',
+    overwriteTitle: '既存の設定を上書きしますか?',
+    overwriteMessage: 'このプロンプトを適用すると、既存の設定が上書きされます。',
+    template: {
+      pythonDebugger: {
+        name: 'Python デバッガー',
+        instruction: '指示に従ってコードを生成し、デバッグを行うボット',
+      },
+      translation: {
+        name: '翻訳',
+        instruction: '複数言語に対応した翻訳機能',
+      },
+      professionalAnalyst: {
+        name: '専門アナリスト',
+        instruction: '長文のレポートから洞察を引き出し、リスクを特定し、重要情報をまとめる',
+      },
+      excelFormulaExpert: {
+        name: 'エクセル式エキスパート',
+        instruction: 'ユーザーの指示に基づき、エクセル式の理解、使用、作成をサポートするチャットボット',
+      },
+      travelPlanning: {
+        name: '旅行計画',
+        instruction: 'ユーザーが簡単に旅行計画を立てられるように設計されたツール',
+      },
+      SQLSorcerer: {
+        name: 'SQLソーサラー',
+        instruction: '日常言語をSQLクエリに変換する',
+      },
+      GitGud: {
+        name: 'Git gud',
+        instruction: 'ユーザーが記述したバージョン管理アクションに対応するGitコマンドを生成する',
+      },
+      meetingTakeaways: {
+        name: '会議の要点',
+        instruction: '議題、重要点、行動項目を含む要約を作成する',
+      },
+      writingsPolisher: {
+        name: 'ライティングポリッシャー',
+        instruction: '文章を改善するための高度な編集技法を用いる',
+      },
+    },
   },
   resetConfig: {
     title: 'リセットを確認しますか?',
@@ -264,6 +314,7 @@ const translation = {
     'varName': '変数名',
     'labelName': 'ラベル名',
     'inputPlaceholder': '入力してください',
+    'content': 'コンテンツ',
     'required': '必須',
     'errorMsg': {
       varNameRequired: '変数名は必須です',
@@ -362,7 +413,6 @@ const translation = {
     score_thresholdTip: 'チャンクフィルタリングの類似性閾値を設定するために使用されます。',
     retrieveChangeTip: 'インデックスモードとリトリーバルモードを変更すると、このナレッジに関連付けられたアプリケーションに影響を与える可能性があります。',
   },
-
   debugAsSingleModel: '単一モデルでデバッグ',
   debugAsMultipleModel: '複数モデルでデバッグ',
   duplicateModel: '複製',

+ 2 - 2
web/i18n/ja-JP/app-overview.ts

@@ -3,7 +3,7 @@ const translation = {
     firstStepTip: 'はじめるには、',
     enterKeyTip: '以下にOpenAI APIキーを入力してください',
     getKeyTip: 'OpenAIダッシュボードからAPIキーを取得してください',
-    placeholder: 'あなたのOpenAI APIキー(例:sk-xxxx)',
+    placeholder: 'あなたのOpenAI APIキー(例:sk-xxxx)',
   },
   apiKeyInfo: {
     cloud: {
@@ -104,7 +104,7 @@ const translation = {
     },
     apiInfo: {
       title: 'バックエンドサービスAPI',
-      explanation: 'あなたのアプリケーションに簡単に統合できます',
+      explanation: 'あなたのアプリケーションに簡単に統合できます',
       accessibleAddress: 'サービスAPIエンドポイント',
       doc: 'APIリファレンス',
     },

+ 41 - 1
web/i18n/ja-JP/app.ts

@@ -13,9 +13,13 @@ const translation = {
   exportFailed: 'DSL のエクスポートに失敗しました。',
   importDSL: 'DSL ファイルをインポート',
   createFromConfigFile: 'DSL ファイルから作成する',
+  importFromDSL: 'DSLからインポート',
+  importFromDSLFile: 'DSLファイルから',
+  importFromDSLUrl: 'URLから',
+  importFromDSLUrlPlaceholder: 'DSLリンクをここに貼り付けます',
   deleteAppConfirmTitle: 'このアプリを削除しますか?',
   deleteAppConfirmContent:
-    'アプリを削除すると、元に戻すことはできません。ユーザーはもはやあなたのアプリにアクセスできず、すべてのプロンプトの設定とログが永久に削除されます。',
+    'アプリを削除すると、元に戻すことはできません。ユーザーはもはやあなたのアプリにアクセスできず、すべてのプロンプトの設定とログが永久に削除されます。',
   appDeleted: 'アプリが削除されました',
   appDeleteFailed: 'アプリの削除に失敗しました',
   join: 'コミュニティに参加する',
@@ -86,6 +90,42 @@ const translation = {
     workflow: 'ワークフロー',
     completion: 'テキスト生成',
   },
+  tracing: {
+    title: 'アプリのパフォーマンスの追跡',
+    description: 'サードパーティのLLMOpsサービスとトレースアプリケーションのパフォーマンス設定を行います。',
+    config: '設定',
+    collapse: 'Collapse',
+    expand: '展開',
+    tracing: '追跡',
+    disabled: '無効しました',
+    disabledTip: 'まずはサービスの設定から始めましょう。',
+    enabled: '有効しました',
+    tracingDescription: 'LLMの呼び出し、コンテキスト、プロンプト、HTTPリクエストなど、アプリケーション実行の全ての文脈をサードパーティのトレースプラットフォームで取り込みます。',
+    configProviderTitle: {
+      configured: '設定しました',
+      notConfigured: 'トレース機能を有効化するためには、サービスの設定が必要です。',
+      moreProvider: 'その他のプロバイダー',
+    },
+    langsmith: {
+      title: 'LangSmith',
+      description: 'LLMを利用したアプリケーションのライフサイクル全段階を支援する、オールインワンの開発者向けプラットフォームです。',
+    },
+    langfuse: {
+      title: 'Langfuse',
+      description: 'トレース、評価、プロンプトの管理、そしてメトリクスを駆使して、LLMアプリケーションのデバッグや改善に役立てます。',
+    },
+    inUse: '使用中',
+    configProvider: {
+      title: '配置 ',
+      placeholder: 'あなた様の{{key}}を入力しでください',
+      project: 'プロジェクト',
+      publicKey: '公開キー',
+      secretKey: '秘密キー',
+      viewDocsLink: '{{key}}のドキュメントを見る',
+      removeConfirmTitle: '{{key}}の設定を削除しますか?',
+      removeConfirmContent: '現在の設定は使用中です。これを削除すると、トレース機能が無効になります。',
+    },
+  },
 }
 
 export default translation

+ 6 - 1
web/i18n/ja-JP/billing.ts

@@ -8,7 +8,7 @@ const translation = {
   viewBilling: '請求とサブスクリプションの管理',
   buyPermissionDeniedTip: 'サブスクリプションするには、エンタープライズ管理者に連絡してください',
   plansCommon: {
-    title: 'あなたに合ったプランを選択してください',
+    title: 'あなたに合ったプランを選択してください',
     yearlyTip: '年間購読で2か月無料!',
     mostPopular: '最も人気のある',
     planRange: {
@@ -28,10 +28,12 @@ const translation = {
     talkToSales: '営業と話す',
     modelProviders: 'モデルプロバイダー',
     teamMembers: 'チームメンバー',
+    annotationQuota: 'アノテーション・クォータ',
     buildApps: 'アプリを作成する',
     vectorSpace: 'ベクトルスペース',
     vectorSpaceBillingTooltip: '1MBあたり約120万文字のベクトル化データを保存できます(OpenAI Embeddingsを使用して推定され、モデルによって異なります)。',
     vectorSpaceTooltip: 'ベクトルスペースは、LLMがデータを理解するために必要な長期記憶システムです。',
+    documentsUploadQuota: 'ドキュメント・アップロード・クォータ',
     documentProcessingPriority: 'ドキュメント処理の優先度',
     documentProcessingPriorityTip: 'より高いドキュメント処理の優先度をご希望の場合は、プランをアップグレードしてください。',
     documentProcessingPriorityUpgrade: 'より高い精度と高速な速度でデータを処理します。',
@@ -56,8 +58,11 @@ const translation = {
       dedicatedAPISupport: '専用APIサポート',
       customIntegration: 'カスタム統合とサポート',
       ragAPIRequest: 'RAG APIリクエスト',
+      bulkUpload: 'ドキュメントの一括アップロード',
       agentMode: 'エージェントモード',
       workflow: 'ワークフロー',
+      llmLoadingBalancing: 'LLMロードバランシング',
+      llmLoadingBalancingTooltip: 'APIレート制限を効果的に回避するために、モデルに複数のAPIキーを追加する。',
     },
     comingSoon: '近日公開',
     member: 'メンバー',

+ 97 - 13
web/i18n/ja-JP/common.ts

@@ -12,6 +12,7 @@ const translation = {
     cancel: 'キャンセル',
     clear: 'クリア',
     save: '保存',
+    saveAndEnable: '保存 & 有効に',
     edit: '編集',
     add: '追加',
     added: '追加済み',
@@ -37,6 +38,10 @@ const translation = {
     duplicate: '重複',
     rename: '名前の変更',
   },
+  errorMsg: {
+    fieldRequired: '{{field}}は必要です',
+    urlError: 'URL は http:// または https:// で始まる必要があります',
+  },
   placeholder: {
     input: '入力してください',
     select: '選択してください',
@@ -173,17 +178,21 @@ const translation = {
     adminTip: 'アプリの構築およびチーム設定の管理ができます',
     normal: '通常',
     normalTip: 'アプリの使用のみが可能で、アプリの構築はできません',
+    builder: 'ビルダー',
+    builderTip: '独自のアプリを作成・編集できる',
     editor: 'エディター',
     editorTip: 'アプリの構築ができますが、チーム設定の管理はできません',
+    datasetOperator: 'ナレッジ管理員',
+    datasetOperatorTip: 'ナレッジベースのみを管理できる',
     inviteTeamMember: 'チームメンバーを招待する',
-    inviteTeamMemberTip: '彼らはサインイン後、直接あなたのチームデータにアクセスできます。',
+    inviteTeamMemberTip: '彼らはサインイン後、直接あなたのチームデータにアクセスできます。',
     email: 'メール',
     emailInvalid: '無効なメール形式',
     emailPlaceholder: 'メールを入力してください',
     sendInvite: '招待を送る',
     invitedAsRole: '{{role}}ユーザーとして招待されました',
     invitationSent: '招待が送信されました',
-    invitationSentTip: '招待が送信され、彼らはDifyにサインインしてあなたのチームデータにアクセスできます。',
+    invitationSentTip: '招待が送信され、彼らはDifyにサインインしてあなたのチームデータにアクセスできます。',
     invitationLink: '招待リンク',
     failedinvitationEmails: '以下のユーザーは正常に招待されませんでした',
     ok: 'OK',
@@ -191,10 +200,11 @@ const translation = {
     removeFromTeamTip: 'チームへのアクセスが削除されます',
     setAdmin: '管理者に設定',
     setMember: '通常のメンバーに設定',
+    setBuilder: 'ビルダーに設定',
     setEditor: 'エディターに設定',
     disinvite: '招待をキャンセル',
     deleteMember: 'メンバーを削除',
-    you: '(あなた)',
+    you: '(あなた)',
   },
   integrations: {
     connected: '接続済み',
@@ -285,6 +295,7 @@ const translation = {
       key: '再ランクモデル',
       tip: '再ランクモデルは、ユーザークエリとの意味的一致に基づいて候補文書リストを再配置し、意味的ランキングの結果を向上させます。',
     },
+    apiKey: 'API-キー',
     quota: 'クォータ',
     searchModel: '検索モデル',
     noModelFound: '{{model}}に対するモデルが見つかりません',
@@ -303,18 +314,91 @@ const translation = {
       quotaExhausted: 'クォータが使い果たされました',
       callTimes: '通話回数',
       tokens: 'トークン',
-      fee: '費用',
-      feeToken: 'トークン毎の費用',
-      basicSettings: '基本設定',
-      advancedSettings: '高度な設定',
-      comingSoon: '近日公開',
-      installPlugin: 'プラグインをインストール',
+      buyQuota: 'クォータを購入',
+      priorityUse: '優先利用',
+      removeKey: 'APIキーを削除',
+      tip: '有料クォータは優先して使用されます。有料クォータを使用し終えた後、トライアルクォータが利用されます。',
+    },
+    item: {
+      deleteDesc: '{{modelName}}はシステムが推測するモデルとして利用されています。削除すると、一部の機能が使用不可能になる可能性があります。ご確認ください。',
+      freeQuota: '無料のクォータ',
+    },
+    addApiKey: 'APIキーを追加',
+    invalidApiKey: '無効なAPIキー',
+    encrypted: {
+      front: 'APIキーは',
+      back: ' の技術で暗号化されて保存されます。',
     },
+    freeQuota: {
+      howToEarn: '獲得方法',
+    },
+    addMoreModelProvider: 'モデルプロバイダを追加',
+    addModel: 'モデルを追加',
+    modelsNum: '{{num}}のモデル',
+    showModels: 'モデルの表示',
+    showModelsNum: '{{num}}のモデルを表示',
+    collapse: '折り畳み',
+    config: '設定',
+    modelAndParameters: 'モデルとパラメータ',
+    model: 'モデル',
+    featureSupported: '{{feature}}に対応',
+    callTimes: '呼び出し回数',
+    credits: 'クレジット',
+    buyQuota: 'クォータ購入',
+    getFreeTokens: '無料トークンを獲得',
+    priorityUsing: '優先利用',
+    deprecated: '廃止予定',
+    confirmDelete: '削除を確認',
+    quotaTip: '残りの無料トークン',
+    loadPresets: 'プリセットの読み込み',
+    parameters: 'パラメータ',
+    loadBalancing: '負荷分散',
+    loadBalancingDescription: '複数の認証情報を使って負荷を分散させます。',
+    loadBalancingHeadline: '負荷分散',
+    configLoadBalancing: '負荷分散の設定',
+    modelHasBeenDeprecated: 'このモデルは廃止予定です',
+    providerManaged: 'プロバイダ管理',
+    providerManagedDescription: 'モデルプロバイダによって提供される認証情報を使用します。',
+    defaultConfig: 'デフォルトの設定',
+    apiKeyStatusNormal: 'APIキーの状態は正常',
+    apiKeyRateLimit: 'レート制限に到達しました。{{seconds}}秒後に再度利用可能です',
+    addConfig: '設定を追加',
+    editConfig: '設定を編集',
+    loadBalancingLeastKeyWarning: '負荷分散を利用するには、最低2つのキーを有効化する必要があります。',
+    loadBalancingInfo: 'デフォルトでは、負荷分散はラウンドロビン方式を採用しています。レート制限が発生した場合、1分間のクールダウン期間が適用されます。',
+    upgradeForLoadBalancing: '負荷分散を利用するには、プランのアップグレードが必要です。',
   },
   dataSource: {
-    externalAPI: '外部API',
-    webhooks: 'Webhook',
-    custom: 'カスタム',
+    add: 'データソースの追加',
+    connect: '接続',
+    configure: '設定',
+    notion: {
+      title: 'ノーション',
+      description: '知識データソースとしてノーションを使用します。',
+      connectedWorkspace: '接続済みワークスペース',
+      addWorkspace: 'ワークスペースの追加',
+      connected: '接続済み',
+      disconnected: '接続解除',
+      changeAuthorizedPages: '認証済みページの変更',
+      pagesAuthorized: '認証済みページ',
+      sync: '同期',
+      remove: '削除',
+      selector: {
+        pageSelected: '選択済みページ',
+        searchPages: 'ページ検索...',
+        noSearchResult: '検索結果なし',
+        addPages: 'ページの追加',
+        preview: 'プレビュー',
+      },
+    },
+    website: {
+      title: 'ウェブサイト',
+      description: 'ウェブクローラーを使ってウェブサイトからコンテンツを取り込みます。',
+      with: 'による',
+      configuredCrawlers: '設定済みクローラー',
+      active: 'アクティブ',
+      inactive: '非アクティブ',
+    },
   },
   plugin: {
     serpapi: {
@@ -360,7 +444,7 @@ const translation = {
   },
   appMenus: {
     overview: '概要',
-    promptEng: 'Orchestrate',
+    promptEng: 'オーケストレート',
     apiAccess: 'APIアクセス',
     logAndAnn: 'ログ&アナウンス',
     logs: 'ログ',

+ 31 - 0
web/i18n/ja-JP/dataset-creation.ts

@@ -11,6 +11,11 @@ const translation = {
   error: {
     unavailable: 'このナレッジは利用できません',
   },
+  firecrawl: {
+    configFirecrawl: '🔥Firecrawlの設定',
+    apiKeyPlaceholder: 'firecrawl.devからのAPIキー',
+    getApiKeyLinkText: 'firecrawl.devからAPIキーを取得する',
+  },
   stepOne: {
     filePreview: 'ファイルプレビュー',
     pagePreview: 'ページプレビュー',
@@ -50,6 +55,30 @@ const translation = {
       confirmButton: '作成',
       failed: '作成に失敗しました',
     },
+    website: {
+      fireCrawlNotConfigured: 'Firecrawlが設定されていません',
+      fireCrawlNotConfiguredDescription: 'Firecrawl を使用するには、Firecrawl の API キーを設定してください。',
+      configure: '設定',
+      run: '実行',
+      firecrawlTitle: '🔥Firecrawlを使っでウエブコンテンツを抽出',
+      firecrawlDoc: 'Firecrawlドキュメント',
+      firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
+      options: 'オプション',
+      crawlSubPage: 'サブページをクロールする',
+      limit: '制限',
+      maxDepth: '最大深度',
+      excludePaths: 'パスを除外する',
+      includeOnlyPaths: 'パスのみを含める',
+      extractOnlyMainContent: 'メインコンテンツのみを抽出する(ヘッダー、ナビ、フッターなどは抽出しない)',
+      exceptionErrorTitle: 'Firecrawl ジョブの実行中に例外が発生しました:',
+      unknownError: '不明なエラー',
+      totalPageScraped: 'スクレイピングされた総ページ数:',
+      selectAll: 'すべて選択',
+      resetAll: 'すべてリセット',
+      scrapTimeInfo: '{{time}} 秒以内に合計 {{total}} ページをスクレイピングしました',
+      preview: 'プレビュー',
+      maxDepthTooltip: '入力されたURLを基にしたクローリング作業での設定可能な最大深度について説明します。深度0は入力されたURL自体のページを対象としたスクレイピングを意味します。深度1では、元のURLの直下にあるページ(URLに続く最初の"/"以降の内容)もスクレイピングの対象になります。この深度は指定した数値まで増加させることができ、それに応じてスクレイピングの範囲も広がっていきます。',
+    },
   },
   stepTwo: {
     segmentation: 'チャンク設定',
@@ -86,9 +115,11 @@ const translation = {
     calculating: '計算中...',
     fileSource: 'ドキュメントの前処理',
     notionSource: 'ページの前処理',
+    websiteSource: 'ウエブサイドの前処理',
     other: 'その他',
     fileUnit: 'ファイル',
     notionUnit: 'ページ',
+    webpageUnit: ' ページ',
     previousStep: '前のステップ',
     nextStep: '保存して処理',
     save: '保存して処理',

+ 3 - 0
web/i18n/ja-JP/dataset-documents.ts

@@ -4,6 +4,7 @@ const translation = {
     desc: 'ナレッジのすべてのファイルがここに表示され、ナレッジ全体がDifyの引用やチャットプラグインを介してリンクされるか、インデックス化されることができます。',
     addFile: 'ファイルを追加',
     addPages: 'ページを追加',
+    addUrl: 'URLを追加',
     table: {
       header: {
         fileName: 'ファイル名',
@@ -13,6 +14,8 @@ const translation = {
         status: 'ステータス',
         action: 'アクション',
       },
+      rename: '名前を変更',
+      name: '名前',
     },
     action: {
       uploadFile: '新しいファイルをアップロード',

+ 2 - 0
web/i18n/ja-JP/dataset-settings.ts

@@ -12,6 +12,8 @@ const translation = {
     permissions: '権限',
     permissionsOnlyMe: '自分のみ',
     permissionsAllMember: 'すべてのチームメンバー',
+    permissionsInvitedMembers: '一部のチームメンバー',
+    me: '(あなた様)',
     indexMethod: 'インデックス方法',
     indexMethodHighQuality: '高品質',
     indexMethodHighQualityTip: 'ユーザーがクエリを実行する際により高い精度を提供するために、Embeddingモデルを呼び出して処理を行う。',

+ 32 - 9
web/i18n/ja-JP/dataset.ts

@@ -1,18 +1,18 @@
 const translation = {
-  knowledge: '知識',
+  knowledge: 'ナレッジ',
   documentCount: ' ドキュメント',
   wordCount: ' k 単語',
   appCount: ' リンクされたアプリ',
-  createDataset: '知識を作成',
+  createDataset: 'ナレッジを作成',
   createDatasetIntro: '独自のテキストデータをインポートするか、LLMコンテキストの強化のためにWebhookを介してリアルタイムでデータを書き込むことができます。',
-  deleteDatasetConfirmTitle: 'この知識を削除しますか?',
+  deleteDatasetConfirmTitle: 'このナレッジを削除しますか?',
   deleteDatasetConfirmContent:
-    '知識を削除すると元に戻すことはできません。ユーザーはもはやあなたの知識にアクセスできず、すべてのプロンプトの設定とログが永久に削除されます。',
-  datasetUsedByApp: 'この知識は一部のアプリによって使用されています。アプリはこの知識を使用できなくなり、すべてのプロンプト設定とログは永久に削除されます。',
-  datasetDeleted: '知識が削除されました',
-  datasetDeleteFailed: '知識の削除に失敗しました',
+    'ナレッジを削除すると元に戻すことはできません。ユーザーはもはやあなた様のナレッジにアクセスできず、すべてのプロンプトの設定とログが永久に削除されます。',
+  datasetUsedByApp: 'このナレッジは一部のアプリによって使用されています。アプリはこのナレッジを使用できなくなり、すべてのプロンプト設定とログは永久に削除されます。',
+  datasetDeleted: 'ナレッジが削除されました',
+  datasetDeleteFailed: 'ナレッジの削除に失敗しました',
   didYouKnow: 'ご存知ですか?',
-  intro1: '知識はDifyアプリケーションに統合することができます',
+  intro1: 'ナレッジはDifyアプリケーションに統合することができます',
   intro2: 'コンテキストとして',
   intro3: '、',
   intro4: 'または',
@@ -20,7 +20,7 @@ const translation = {
   intro6: '単体のChatGPTインデックスプラグインとして公開するために',
   unavailable: '利用不可',
   unavailableTip: '埋め込みモデルが利用できません。デフォルトの埋め込みモデルを設定する必要があります',
-  datasets: '知識',
+  datasets: 'ナレッジ',
   datasetsApi: 'API',
   retrieval: {
     semantic_search: {
@@ -45,6 +45,29 @@ const translation = {
   },
   docsFailedNotice: 'ドキュメントのインデックスに失敗しました',
   retry: '再試行',
+  indexingTechnique: {
+    high_quality: '高品質',
+    economy: '経済',
+  },
+  indexingMethod: {
+    semantic_search: 'ベクトル検索',
+    full_text_search: 'フルテキスト検索',
+    hybrid_search: 'ハイブリッド検索',
+  },
+  mixtureHighQualityAndEconomicTip: '高品質なナレッジベースと経済的なナレッジベースを混在させるには、Rerankモデルを構成する必要がある。',
+  inconsistentEmbeddingModelTip: '選択されたナレッジベースが一貫性のない埋め込みモデルで構成されている場合、Rerankモデルの構成が必要です。',
+  retrievalSettings: '設定を回収',
+  rerankSettings: 'Rerank設定',
+  weightedScore: {
+    title: 'ウェイト設定',
+    description: '割り当てられた重みを調整することで、並べ替え戦略はセマンティックマッチングとキーワードマッチングのどちらを優先するかを決定します。',
+    semanticFirst: 'セマンティック優先',
+    keywordFirst: 'キーワード優先',
+    customized: 'カスタマイズ',
+    semantic: 'セマンティクス',
+    keyword: 'キーワード',
+  },
+  nTo1RetrievalLegacy: '製品計画によると、N To 1 Retrievalは9月に正式に廃止される予定です。それまでは通常通り使用できます。',
 }
 
 export default translation

+ 4 - 2
web/i18n/ja-JP/login.ts

@@ -9,6 +9,7 @@ const translation = {
   namePlaceholder: 'ユーザー名を入力してください',
   forget: 'パスワードをお忘れですか?',
   signBtn: 'サインイン',
+  sso: 'SSOに続ける',
   installBtn: 'セットアップ',
   setAdminAccount: '管理者アカウントの設定',
   setAdminAccountDesc: 'アプリケーションの作成やLLMプロバイダの管理など、管理者アカウントの最大権限を設定します。',
@@ -52,6 +53,7 @@ const translation = {
     emailInValid: '有効なメールアドレスを入力してください',
     nameEmpty: '名前は必須です',
     passwordEmpty: 'パスワードは必須です',
+    passwordLengthInValid: 'パスワードは8文字以上でなければなりません',
     passwordInvalid: 'パスワードは文字と数字を含み、長さは8以上である必要があります',
   },
   license: {
@@ -59,11 +61,11 @@ const translation = {
     link: 'オープンソースライセンス',
   },
   join: '参加する',
-  joinTipStart: 'あなたを招待します',
+  joinTipStart: 'あなたを招待します',
   joinTipEnd: 'チームに参加する',
   invalid: 'リンクの有効期限が切れています',
   explore: 'Difyを探索する',
-  activatedTipStart: 'あなたは',
+  activatedTipStart: 'あなたは',
   activatedTipEnd: 'チームに参加しました',
   activated: '今すぐサインイン',
   adminInitPassword: '管理者初期化パスワード',

+ 35 - 1
web/i18n/ja-JP/tools.ts

@@ -1,10 +1,12 @@
 const translation = {
   title: 'ツール',
   createCustomTool: 'カスタムツールを作成する',
+  customToolTip: 'Difyカスタムツールの詳細',
   type: {
     all: 'すべて',
     builtIn: '組み込み',
     custom: 'カスタム',
+    workflow: 'ワークフロー',
   },
   contribute: {
     line1: '私は',
@@ -21,12 +23,26 @@ const translation = {
   },
   includeToolNum: '{{num}}個のツールが含まれています',
   addTool: 'ツールを追加する',
+  addToolModal: {
+    type: 'タイプ',
+    category: 'カテゴリー',
+    add: '追加',
+    added: '追加されだ',
+    manageInTools: 'ツールリストに移動して管理する',
+    emptyTitle: '利用可能なワークフローツールはありません',
+    emptyTip: '追加するには、「ワークフロー -> ツールとして公開 」に移動する',
+  },
   createTool: {
     title: 'カスタムツールを作成する',
     editAction: '設定',
     editTitle: 'カスタムツールを編集する',
     name: '名前',
     toolNamePlaceHolder: 'ツール名を入力してください',
+    nameForToolCall: 'ツールコールの名前',
+    nameForToolCallPlaceHolder: '機械認識に使用される名前, 例えば、getCurrentWeather、list_pets',
+    nameForToolCallTip: '数字、文字、アンダースコアのみがサポートされます。',
+    description: 'ツールの説明',
+    descriptionPlaceholder: 'ツールの使い方の簡単な説明。例えば、特定の場所の温度を知るためなど。',
     schema: 'スキーマ',
     schemaPlaceHolder: 'ここにOpenAPIスキーマを入力してください',
     viewSchemaSpec: 'OpenAPI-Swagger仕様を表示する',
@@ -71,10 +87,26 @@ const translation = {
     },
     privacyPolicy: 'プライバシーポリシー',
     privacyPolicyPlaceholder: 'プライバシーポリシーを入力してください',
+    toolInput: {
+      title: 'ツール入力',
+      name: '名前',
+      required: '必須',
+      method: 'メソッド',
+      methodSetting: '設定',
+      methodSettingTip: 'ユーザーがツール設定を入力する',
+      methodParameter: 'LLM入力',
+      methodParameterTip: 'LLM は推論中に入力されます',
+      label: 'ラベル',
+      labelPlaceholder: 'ラベルを選択します(オプション)',
+      description: '説明',
+      descriptionPlaceholder: 'パラメータの意味の説明',
+    },
     customDisclaimer: 'カスタム免責事項',
     customDisclaimerPlaceholder: 'カスタム免責事項を入力してください',
+    confirmTitle: '保存しますか?',
+    confirmTip: '新しバージョン保存すると、このツールを使用されているアプリは影響を受けます',
     deleteToolConfirmTitle: 'このツールを削除しますか?',
-    deleteToolConfirmContent: 'ツールの削除は取り消しできません。ユーザーはもうあなたのツールにアクセスできません。',
+    deleteToolConfirmContent: 'ツールの削除は取り消しできません。ユーザーはもうあなたのツールにアクセスできません。',
   },
   test: {
     title: 'テスト',
@@ -114,6 +146,8 @@ const translation = {
   toolRemoved: 'ツールが削除されました',
   notAuthorized: 'ツールが認可されていません',
   howToGet: '取得方法',
+  openInStudio: 'スタジオで開く',
+  toolNameUsageTip: 'ツール呼び出し名、エージェントの推論とプロンプトの単語に使用されます',
 }
 
 export default translation

+ 1 - 1
web/i18n/zh-Hans/dataset-creation.ts

@@ -62,7 +62,7 @@ const translation = {
       run: '运行',
       firecrawlTitle: '使用 🔥Firecrawl 提取网页内容',
       firecrawlDoc: 'Firecrawl 文档',
-      firecrawlDocLink: 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/sync_from_website',
+      firecrawlDocLink: 'https://docs.dify.ai/v/zh-hans/guides/knowledge-base/sync-from-website',
       options: '选项',
       crawlSubPage: '爬取子页面',
       limit: '限制数量',