Skip to content

Commit 0f490de

Browse files
authored
Merge branch 'main' into patch-5
2 parents 1c12b1d + aaeb440 commit 0f490de

File tree

9 files changed

+358
-2
lines changed

9 files changed

+358
-2
lines changed

app/components/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ const Main: FC = () => {
199199
if (calculatedIntroduction && calculatedPromptVariables)
200200
calculatedIntroduction = replaceVarWithValues(calculatedIntroduction, promptConfig?.prompt_variables || [], calculatedPromptVariables)
201201

202-
const openstatement = {
202+
const openStatement = {
203203
id: `${Date.now()}`,
204204
content: calculatedIntroduction,
205205
isAnswer: true,

i18n/i18next-config.ts

+12
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ import commonEn from './lang/common.en'
55
import commonEs from './lang/common.es'
66
import commonZh from './lang/common.zh'
77
import commonVi from './lang/common.vi'
8+
import commonJa from './lang/common.ja'
89
import appEn from './lang/app.en'
910
import appEs from './lang/app.es'
1011
import appZh from './lang/app.zh'
1112
import appVi from './lang/app.vi'
13+
import appJa from './lang/app.ja'
1214
import toolsEn from './lang/tools.en'
1315
import toolsZh from './lang/tools.zh'
1416
import toolsVi from './lang/tools.vi'
17+
import toolsJa from './lang/tools.ja'
18+
1519
import type { Locale } from '.'
1620

1721
const resources = {
@@ -45,6 +49,14 @@ const resources = {
4549
tools: toolsVi,
4650
},
4751
}
52+
'ja': {
53+
translation: {
54+
common: commonJa,
55+
app: appJa,
56+
// tools
57+
tools: toolsJa,
58+
},
59+
},
4860
}
4961

5062
i18n.use(initReactI18next)

i18n/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export const i18n = {
22
defaultLocale: 'en',
3-
locales: ['en', 'es', 'zh-Hans'],
3+
locales: ['en', 'es', 'zh-Hans', 'ja'],
44
} as const
55

66
export type Locale = typeof i18n['locales'][number]

i18n/lang/app.ja.ts

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const translation = {
2+
common: {
3+
welcome: 'ご利用いただきありがとうございます',
4+
appUnavailable: 'アプリは利用できません',
5+
appUnkonwError: 'アプリは利用できません',
6+
},
7+
chat: {
8+
newChat: '新しいチャット',
9+
newChatDefaultName: '新しい会話',
10+
openingStatementTitle: 'オープニングステートメント',
11+
powerBy: '提供元',
12+
prompt: 'プロンプト',
13+
privatePromptConfigTitle: '会話設定',
14+
publicPromptConfigTitle: '初期プロンプト',
15+
configStatusDes: '開始前に、会話設定を変更できます',
16+
configDisabled:
17+
'前回のセッション設定がこのセッションで使用されています。',
18+
startChat: '開始',
19+
privacyPolicyLeft:
20+
'ご利用前に、',
21+
privacyPolicyMiddle:
22+
'プライバシーポリシー',
23+
privacyPolicyRight:
24+
' をお読みください。',
25+
},
26+
errorMessage: {
27+
valueOfVarRequired: '変数の値は空にできません',
28+
waitForResponse:
29+
'前のメッセージの応答が完了するまでお待ちください。',
30+
},
31+
variableTable: {
32+
optional: '任意',
33+
},
34+
}
35+
36+
export default translation

i18n/lang/common.ja.ts

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const translation = {
2+
api: {
3+
success: '成功',
4+
saved: '保存しました',
5+
create: '作成しました',
6+
},
7+
operation: {
8+
confirm: '確認',
9+
cancel: 'キャンセル',
10+
clear: 'クリア',
11+
save: '保存',
12+
edit: '編集',
13+
refresh: '再起動',
14+
search: '検索',
15+
send: '送信',
16+
lineBreak: '改行',
17+
like: 'いいね',
18+
dislike: 'よくないね',
19+
ok: 'OK',
20+
},
21+
imageUploader: {
22+
uploadFromComputer: 'コンピューターからアップロード',
23+
uploadFromComputerReadError: '画像の読み込みに失敗しました。もう一度お試しください。',
24+
uploadFromComputerUploadError: '画像のアップロードに失敗しました。もう一度アップロードしてください。',
25+
uploadFromComputerLimit: 'アップロードする画像は{{size}} MBを超えてはいけません',
26+
pasteImageLink: '画像リンクを貼り付け',
27+
pasteImageLinkInputPlaceholder: 'ここに画像リンクを貼り付けてください',
28+
pasteImageLinkInvalid: '無効な画像リンクです',
29+
imageUpload: '画像アップロード',
30+
},
31+
}
32+
33+
export default translation

i18n/lang/common.vi.ts

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const translation = {
2+
api: {
3+
success: 'Thành công',
4+
saved: 'Đã lưu',
5+
create: 'Đã tạo',
6+
},
7+
operation: {
8+
confirm: 'Xác nhận',
9+
cancel: 'Hủy',
10+
clear: 'Xóa',
11+
save: 'Lưu',
12+
edit: 'Chỉnh sửa',
13+
refresh: 'Khởi động lại',
14+
search: 'Tìm kiếm',
15+
send: 'Gửi',
16+
lineBreak: 'Xuống dòng',
17+
like: 'thích',
18+
dislike: 'không thích',
19+
ok: 'OK',
20+
},
21+
imageUploader: {
22+
uploadFromComputer: 'Tải lên từ máy tính',
23+
uploadFromComputerReadError: 'Đọc ảnh thất bại, vui lòng thử lại.',
24+
uploadFromComputerUploadError: 'Tải ảnh lên thất bại, vui lòng tải lại.',
25+
uploadFromComputerLimit: 'Ảnh tải lên không được vượt quá {{size}} MB',
26+
pasteImageLink: 'Dán liên kết ảnh',
27+
pasteImageLinkInputPlaceholder: 'Dán liên kết ảnh vào đây',
28+
pasteImageLinkInvalid: 'Liên kết ảnh không hợp lệ',
29+
imageUpload: 'Tải ảnh lên',
30+
},
31+
}
32+
33+
export default translation;

i18n/lang/i18n/lang/app.vi.ts

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
const translation = {
2+
common: {
3+
welcome: 'Chào mừng bạn sử dụng',
4+
appUnavailable: 'Ứng dụng không khả dụng',
5+
appUnkonwError: 'Ứng dụng không khả dụng',
6+
},
7+
chat: {
8+
newChat: 'Cuộc trò chuyện mới',
9+
newChatDefaultName: 'Cuộc trò chuyện mới',
10+
openingStatementTitle: 'Lời mở đầu',
11+
powerBy: 'Được hỗ trợ bởi',
12+
prompt: 'Nhắc nhở',
13+
privatePromptConfigTitle: 'Cài đặt cuộc trò chuyện',
14+
publicPromptConfigTitle: 'Nhắc nhở ban đầu',
15+
configStatusDes: 'Trước khi bắt đầu, bạn có thể chỉnh sửa cài đặt cuộc trò chuyện',
16+
configDisabled:
17+
'Cài đặt của phiên trước đã được sử dụng cho phiên này.',
18+
startChat: 'Bắt đầu trò chuyện',
19+
privacyPolicyLeft:
20+
'Vui lòng đọc ',
21+
privacyPolicyMiddle:
22+
'chính sách bảo mật',
23+
privacyPolicyRight:
24+
' được cung cấp bởi nhà phát triển ứng dụng.',
25+
},
26+
errorMessage: {
27+
valueOfVarRequired: 'Giá trị của biến không thể để trống',
28+
waitForResponse:
29+
'Vui lòng đợi phản hồi từ tin nhắn trước khi gửi tin nhắn mới.',
30+
},
31+
variableTable: {
32+
optional: 'Tùy chọn',
33+
},
34+
}
35+
36+
export default translation;

i18n/lang/i18n/lang/tools.vi.ts

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
const translation = {
2+
title: 'Công cụ',
3+
createCustomTool: 'Tạo công cụ tùy chỉnh',
4+
type: {
5+
all: 'Tất cả',
6+
builtIn: 'Có sẵn',
7+
custom: 'Tùy chỉnh',
8+
},
9+
contribute: {
10+
line1: 'Tôi quan tâm đến việc ',
11+
line2: 'đóng góp công cụ cho Dify.',
12+
viewGuide: 'Xem hướng dẫn',
13+
},
14+
author: 'Bởi',
15+
auth: {
16+
unauthorized: 'Chưa ủy quyền',
17+
authorized: 'Đã ủy quyền',
18+
setup: 'Thiết lập ủy quyền để sử dụng',
19+
setupModalTitle: 'Thiết lập ủy quyền',
20+
setupModalTitleDescription: 'Sau khi cấu hình thông tin xác thực, tất cả các thành viên trong không gian làm việc đều có thể sử dụng công cụ này khi sắp xếp các ứng dụng.',
21+
},
22+
includeToolNum: 'Bao gồm {{num}} công cụ',
23+
addTool: 'Thêm công cụ',
24+
createTool: {
25+
title: 'Tạo công cụ tùy chỉnh',
26+
editAction: 'Cấu hình',
27+
editTitle: 'Chỉnh sửa công cụ tùy chỉnh',
28+
name: 'Tên',
29+
toolNamePlaceHolder: 'Nhập tên công cụ',
30+
schema: 'Schema',
31+
schemaPlaceHolder: 'Nhập schema OpenAPI của bạn tại đây',
32+
viewSchemaSpec: 'Xem đặc tả OpenAPI-Swagger',
33+
importFromUrl: 'Nhập từ URL',
34+
importFromUrlPlaceHolder: 'https://...',
35+
urlError: 'Vui lòng nhập URL hợp lệ',
36+
examples: 'Ví dụ',
37+
exampleOptions: {
38+
json: 'Thời tiết(JSON)',
39+
yaml: 'Cửa hàng thú cưng(YAML)',
40+
blankTemplate: 'Mẫu trống',
41+
},
42+
availableTools: {
43+
title: 'Công cụ có sẵn',
44+
name: 'Tên',
45+
description: 'Mô tả',
46+
method: 'Phương thức',
47+
path: 'Đường dẫn',
48+
action: 'Hành động',
49+
test: 'Kiểm tra',
50+
},
51+
authMethod: {
52+
title: 'Phương thức ủy quyền',
53+
type: 'Loại ủy quyền',
54+
types: {
55+
none: 'Không có',
56+
api_key: 'API Key',
57+
},
58+
key: 'Khóa',
59+
value: 'Giá trị',
60+
},
61+
privacyPolicy: 'Chính sách bảo mật',
62+
privacyPolicyPlaceholder: 'Vui lòng nhập chính sách bảo mật',
63+
},
64+
test: {
65+
title: 'Kiểm tra',
66+
parametersValue: 'Tham số & Giá trị',
67+
parameters: 'Tham số',
68+
value: 'Giá trị',
69+
testResult: 'Kết quả kiểm tra',
70+
testResultPlaceholder: 'Kết quả kiểm tra sẽ hiển thị ở đây',
71+
},
72+
thought: {
73+
using: 'Đang sử dụng',
74+
used: 'Đã sử dụng',
75+
requestTitle: 'Yêu cầu đến',
76+
responseTitle: 'Phản hồi từ',
77+
},
78+
setBuiltInTools: {
79+
info: 'Thông tin',
80+
setting: 'Cài đặt',
81+
toolDescription: 'Mô tả công cụ',
82+
parameters: 'tham số',
83+
string: 'chuỗi',
84+
number: 'số',
85+
required: 'Bắt buộc',
86+
infoAndSetting: 'Thông tin & Cài đặt',
87+
},
88+
noCustomTool: {
89+
title: 'Không có công cụ tùy chỉnh!',
90+
content: 'Thêm và quản lý các công cụ tùy chỉnh của bạn tại đây để xây dựng các ứng dụng AI.',
91+
createTool: 'Tạo công cụ',
92+
},
93+
noSearchRes: {
94+
title: 'Xin lỗi, không tìm thấy kết quả!',
95+
content: 'Chúng tôi không thể tìm thấy bất kỳ công cụ nào phù hợp với tìm kiếm của bạn.',
96+
reset: 'Đặt lại tìm kiếm',
97+
},
98+
builtInPromptTitle: 'Nhắc nhở',
99+
toolRemoved: 'Công cụ đã được xóa',
100+
notAuthorized: 'Công cụ chưa được ủy quyền',
101+
}
102+
103+
export default translation;

i18n/lang/tools.ja.ts

+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
const translation = {
2+
title: 'ツール',
3+
createCustomTool: 'カスタムツールの作成',
4+
type: {
5+
all: 'すべて',
6+
builtIn: '内蔵',
7+
custom: 'カスタム',
8+
},
9+
contribute: {
10+
line1: '興味があります ',
11+
line2: 'Difyにツールを貢献すること。',
12+
viewGuide: 'ガイドを見る',
13+
},
14+
author: '作成者',
15+
auth: {
16+
unauthorized: '認証が必要',
17+
authorized: '認証済み',
18+
setup: '使用するために認証を設定',
19+
setupModalTitle: '認証設定',
20+
setupModalTitleDescription: '資格情報を設定すると、ワークスペース内のすべてのメンバーがアプリケーションを編成する際にこのツールを使用できるようになります。',
21+
},
22+
includeToolNum: '{{num}} のツールが含まれています',
23+
addTool: 'ツールを追加',
24+
createTool: {
25+
title: 'カスタムツールの作成',
26+
editAction: '設定',
27+
editTitle: 'カスタムツールの編集',
28+
name: '名前',
29+
toolNamePlaceHolder: 'ツール名を入力してください',
30+
schema: 'スキーマ',
31+
schemaPlaceHolder: 'ここにOpenAPIスキーマを入力してください',
32+
viewSchemaSpec: 'OpenAPI-Swagger仕様を見る',
33+
importFromUrl: 'URLからインポート',
34+
importFromUrlPlaceHolder: 'https://...',
35+
urlError: '有効なURLを入力してください',
36+
examples: '例',
37+
exampleOptions: {
38+
json: '天気予報(JSON)',
39+
yaml: 'ペットストア(YAML)',
40+
blankTemplate: '空のテンプレート',
41+
},
42+
availableTools: {
43+
title: '利用可能なツール',
44+
name: '名前',
45+
description: '説明',
46+
method: 'メソッド',
47+
path: 'パス',
48+
action: 'アクション',
49+
test: 'テスト',
50+
},
51+
authMethod: {
52+
title: '認証方法',
53+
type: '認証タイプ',
54+
types: {
55+
none: 'なし',
56+
api_key: 'APIキー',
57+
},
58+
key: 'キー',
59+
value: '値',
60+
},
61+
privacyPolicy: 'プライバシーポリシー',
62+
privacyPolicyPlaceholder: 'プライバシーポリシーを入力してください',
63+
},
64+
test: {
65+
title: 'テスト',
66+
parametersValue: 'パラメータと値',
67+
parameters: 'パラメータ',
68+
value: '値',
69+
testResult: 'テスト結果',
70+
testResultPlaceholder: 'テスト結果はここに表示されます',
71+
},
72+
thought: {
73+
using: '使用中',
74+
used: '使用済み',
75+
requestTitle: 'リクエスト先',
76+
responseTitle: 'レスポンス元',
77+
},
78+
setBuiltInTools: {
79+
info: '情報',
80+
setting: '設定',
81+
toolDescription: 'ツールの説明',
82+
parameters: 'パラメータ',
83+
string: '文字列',
84+
number: '数値',
85+
required: '必須',
86+
infoAndSetting: '情報と設定',
87+
},
88+
noCustomTool: {
89+
title: 'カスタムツールがありません!',
90+
content: 'ここでカスタムツールを追加および管理して、AIアプリを構築します。',
91+
createTool: 'ツールの作成',
92+
},
93+
noSearchRes: {
94+
title: '申し訳ありません、結果が見つかりません!',
95+
content: '検索条件に一致するツールは見つかりませんでした。',
96+
reset: '検索をリセット',
97+
},
98+
builtInPromptTitle: 'プロンプト',
99+
toolRemoved: 'ツールが削除されました',
100+
notAuthorized: 'ツールが認証されていません',
101+
}
102+
103+
export default translation

0 commit comments

Comments
 (0)