Skip to content

Commit

Permalink
🌐 style: Add Vietnamese files and add the vi-VN option in the General…
Browse files Browse the repository at this point in the history
… Settings (lobehub#860)

* 🔨 chore: Add vi-VN locale to language setting option

* 🔨 chore: Add all Vietnamese files for the UI

* ✨ feat: add SpeedInsights and change local port to 4010

* 🔨 chore: remove SpeedInsight and revert local port number

* 🔨 chore: remove Vercel SpeedInsights package

* 🔨 chore: Update the vi-VN folder using i18nrc.js and add the missing string "downloading"
  • Loading branch information
CongLeSolutionX authored Jan 3, 2024
1 parent e801dbe commit c2e5606
Show file tree
Hide file tree
Showing 26 changed files with 839 additions and 0 deletions.
1 change: 1 addition & 0 deletions .i18nrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ module.exports = defineConfig({
'it-IT',
'nl-NL',
'pl-PL',
'vi-VN',
],
temperature: 0,
modelName: 'gpt-3.5-turbo-1106',
Expand Down
1 change: 1 addition & 0 deletions locales/de-DE/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Automatisch generieren",
"downloading": "Die von DallE3 generierten Bildlinks sind nur 1 Stunde lang gültig. Das Bild wird lokal zwischengespeichert...",
"generate": "Generieren",
"generating": "Generiert",
"images": "Bilder:"
Expand Down
1 change: 1 addition & 0 deletions locales/en-US/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Auto Generate",
"downloading": "The image links generated by DALL·E3 are only valid for 1 hour, caching the images locally...",
"generate": "Generate",
"generating": "Generating...",
"images": "Images:"
Expand Down
1 change: 1 addition & 0 deletions locales/es-ES/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Auto-generar",
"downloading": "El enlace de la imagen generada por DALL·E 3 solo es válido durante 1 hora, descargando la imagen al dispositivo local...",
"generate": "Generar",
"generating": "Generando...",
"images": "Imágenes:"
Expand Down
1 change: 1 addition & 0 deletions locales/fr-FR/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Auto-générer",
"downloading": "Les liens d'image générés par DallE3 ne sont valides que pendant 1 heure. Le téléchargement de l'image est en cours...",
"generate": "Générer",
"generating": "En cours de génération...",
"images": "Images :"
Expand Down
1 change: 1 addition & 0 deletions locales/it-IT/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Auto-generato",
"downloading": "Il link dell'immagine generata da DALL·E3 è valido solo per 1 ora, sta scaricando l'immagine in locale...",
"generate": "Genera",
"generating": "Generazione in corso...",
"images": "Immagini:"
Expand Down
1 change: 1 addition & 0 deletions locales/ja-JP/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "自動生成",
"downloading": "DallE3 で生成された画像リンクは有効期間が1時間しかありません。画像をローカルにキャッシュしています...",
"generate": "生成する",
"generating": "生成中...",
"images": "画像:"
Expand Down
1 change: 1 addition & 0 deletions locales/ko-KR/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "자동 생성",
"downloading": "DallE3로 생성된 이미지 링크는 1시간 동안 유효하며, 로컬에 이미지를 캐시하는 중입니다...",
"generate": "생성",
"generating": "생성 중...",
"images": "이미지:"
Expand Down
1 change: 1 addition & 0 deletions locales/nl-NL/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Automatisch genereren",
"downloading": "De link naar de afbeelding gegenereerd door DallE3 is slechts 1 uur geldig. De afbeelding wordt lokaal in de cache opgeslagen...",
"generate": "Genereren",
"generating": "Bezig met genereren...",
"images": "Afbeeldingen:"
Expand Down
1 change: 1 addition & 0 deletions locales/pl-PL/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Automatyczne generowanie",
"downloading": "Linki do obrazów wygenerowanych przez DallE3 są ważne tylko przez 1 godzinę. Trwa pobieranie obrazów do lokalnego bufora...",
"generate": "Generuj",
"generating": "Generowanie...",
"images": "Obrazy:"
Expand Down
1 change: 1 addition & 0 deletions locales/pt-BR/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Auto gerar",
"downloading": "O link da imagem gerada pelo DALL·E3 é válido apenas por 1 hora, está baixando a imagem para o armazenamento local...",
"generate": "Gerar",
"generating": "Gerando...",
"images": "Imagens:"
Expand Down
1 change: 1 addition & 0 deletions locales/ru-RU/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Автогенерация",
"downloading": "Ссылка на изображение, созданное DALL·E3, действительна только в течение 1 часа. Идет кэширование изображения локально...",
"generate": "Создать",
"generating": "Создание...",
"images": "Изображения:"
Expand Down
1 change: 1 addition & 0 deletions locales/tr-TR/tool.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"dalle": {
"autoGenerate": "Otomatik Oluştur",
"downloading": "DallE3 tarafından oluşturulan resim bağlantıları sadece 1 saat geçerlidir, resim yerel olarak önbelleğe alınıyor...",
"generate": "Oluştur",
"generating": "Oluşturuluyor...",
"images": "Görseller:"
Expand Down
77 changes: 77 additions & 0 deletions locales/vi-VN/chat.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"agentDefaultMessage": "Xin chào, tôi là **{{name}}**, bạn có thể bắt đầu trò chuyện với tôi ngay lập tức, hoặc đến [Cài đặt trợ lý](/chat/settings#session={{id}}) để hoàn thiện thông tin của tôi.",
"agentDefaultMessageWithSystemRole": "Xin chào, tôi là **{{name}}**, {{systemRole}}. Hãy bắt đầu trò chuyện ngay!",
"backToBottom": "Quay về dưới cùng",
"clearCurrentMessages": "Xóa tin nhắn hiện tại",
"confirmClearCurrentMessages": "Bạn sắp xóa tin nhắn hiện tại. Hành động này không thể hoàn tác, vui lòng xác nhận.",
"confirmRemoveSessionItemAlert": "Bạn sắp xóa trợ lý này. Hành động này không thể hoàn tác, vui lòng xác nhận.",
"defaultAgent": "Trợ lý mặc định",
"defaultSession": "Trợ lý mặc định",
"historyRange": "Phạm vi lịch sử",
"inbox": {
"defaultMessage": "Xin chào, tôi là trợ lý thông minh của bạn, bạn có thể hỏi tôi bất kỳ câu hỏi nào và tôi sẽ cố gắng trả lời. Nếu bạn cần một trợ lý chuyên nghiệp hoặc tùy chỉnh hơn, hãy nhấn `+` để tạo trợ lý tùy chỉnh.",
"desc": "Kích hoạt cụm não, khơi dậy tia lửa tư duy. Trợ lý thông minh của bạn, ở đây để trò chuyện với bạn về mọi thứ.",
"title": "Chuyện phiếm"
},
"newAgent": "Tạo trợ lý mới",
"noDescription": "Chưa có mô tả",
"pin": "Ghim",
"pinOff": "Bỏ ghim",
"regenerate": "Tạo lại",
"roleAndArchive": "Vai trò và lưu trữ",
"searchAgentPlaceholder": "Tìm kiếm trợ lý và cuộc trò chuyện...",
"send": "Gửi",
"sendPlaceholder": "Nhập nội dung trò chuyện...",
"sessionList": "Danh sách trợ lý",
"shareModal": {
"download": "Tải xuống ảnh chụp màn hình",
"imageType": "Định dạng ảnh",
"screenshot": "Ảnh chụp màn hình",
"settings": "Cài đặt xuất",
"shareToShareGPT": "Tạo liên kết chia sẻ ShareGPT",
"withBackground": "Bao gồm hình nền",
"withFooter": "Bao gồm chân trang",
"withPluginInfo": "Bao gồm thông tin plugin",
"withSystemRole": "Bao gồm thiết lập vai trò trợ lý"
},
"stop": "Dừng",
"stt": {
"action": "Nhập bằng giọng nói",
"loading": "Đang nhận dạng...",
"prettifying": "Đang tinh chỉnh..."
},
"temp": "Tạm thời",
"tokenDetail": "Thiết lập vai trò: {{systemRoleToken}} · Tin nhắn cuộc trò chuyện: {{chatsToken}} · Thiết lập công cụ: {{toolsToken}}",
"tokenTag": {
"overload": "Vượt quá giới hạn",
"remained": "Còn lại",
"used": "Đã sử dụng"
},
"topic": {
"confirmRemoveAll": "Bạn sắp xóa tất cả chủ đề. Hành động này không thể hoàn tác, vui lòng xác nhận.",
"confirmRemoveTopic": "Bạn sắp xóa chủ đề này. Hành động này không thể hoàn tác, vui lòng xác nhận.",
"confirmRemoveUnstarred": "Bạn sắp xóa các chủ đề chưa được đánh dấu. Hành động này không thể hoàn tác, vui lòng xác nhận.",
"defaultTitle": "Chủ đề mặc định",
"openNewTopic": "Mở chủ đề mới",
"removeAll": "Xóa tất cả chủ đề",
"removeUnstarred": "Xóa chủ đề chưa được đánh dấu",
"saveCurrentMessages": "Lưu cuộc trò chuyện hiện tại thành chủ đề",
"searchPlaceholder": "Tìm kiếm chủ đề...",
"title": "Danh sách chủ đề"
},
"translate": {
"action": "Dịch",
"clear": "Xóa dịch"
},
"tts": {
"action": "Đọc bằng giọng nói",
"clear": "Xóa giọng nói"
},
"updateAgent": "Cập nhật thông tin trợ lý",
"upload": {
"actionTooltip": "Tải lên hình ảnh",
"dragDesc": "Kéo và thả tệp vào đây, hỗ trợ tải lên nhiều hình ảnh. Giữ phím Shift để gửi hình ảnh trực tiếp",
"dragTitle": "Tải lên hình ảnh"
},
"warp": "Xuống dòng"
}
113 changes: 113 additions & 0 deletions locales/vi-VN/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"about": "Giới thiệu",
"advanceSettings": "Cài đặt nâng cao",
"agentMaxToken": "Số ký tự tối đa của phiên",
"agentModel": "Mô hình",
"agentProfile": "Hồ sơ trợ lý",
"appInitializing": "LobeChat đang khởi động, vui lòng chờ...",
"archive": "Lưu trữ",
"autoGenerate": "Tự động tạo",
"autoGenerateTooltip": "Tự động hoàn thành mô tả trợ lý dựa trên từ gợi ý",
"cancel": "Hủy",
"changelog": "Nhật ký cập nhật",
"close": "Đóng",
"confirmRemoveSessionItemAlert": "Bạn sắp xóa trợ lý này. Sau khi xóa, bạn sẽ không thể khôi phục. Vui lòng xác nhận hành động của bạn",
"copy": "Sao chép",
"copySuccess": "Sao chép thành công",
"defaultAgent": "Trợ lý mặc định",
"defaultSession": "Phiên mặc định",
"delete": "Xóa",
"edit": "Chỉnh sửa",
"export": "Xuất cấu hình",
"exportType": {
"agent": "Xuất cấu hình trợ lý",
"agentWithMessage": "Xuất trợ lý và tin nhắn",
"all": "Xuất cài đặt toàn cầu và tất cả dữ liệu trợ lý",
"allAgent": "Xuất tất cả cấu hình trợ lý",
"allAgentWithMessage": "Xuất tất cả trợ lý và tin nhắn",
"globalSetting": "Xuất cài đặt toàn cầu"
},
"feedback": "Phản hồi và đề xuất",
"historyRange": "Phạm vi lịch sử",
"import": "Nhập cấu hình",
"importModal": {
"finish": {
"onlySettings": "Nhập cài đặt hệ thống thành công",
"start": "Bắt đầu sử dụng",
"subTitle": "Dữ liệu đã được nhập thành công, mất {{duration}} giây. Chi tiết nhập như sau:",
"title": "Hoàn tất nhập dữ liệu"
},
"loading": "Đang nhập dữ liệu, vui lòng chờ...",
"result": {
"added": "Nhập thành công",
"errors": "Lỗi nhập",
"messages": "Tin nhắn",
"sessions": "Trợ lý",
"skips": "Bỏ qua trùng lặp",
"topics": "Chủ đề",
"type": "Loại dữ liệu"
},
"title": "Nhập dữ liệu"
},
"lang": {
"bn": "Tiếng Bengal",
"cs-CZ": "Tiếng Séc",
"da-DK": "Tiếng Đan Mạch",
"de-DE": "Tiếng Đức",
"el-GR": "Tiếng Hy Lạp",
"en": "Tiếng Anh",
"en-US": "Tiếng Anh (Mỹ)",
"es-ES": "Tiếng Tây Ban Nha",
"fi-FI": "Tiếng Phần Lan",
"fr-FR": "Tiếng Pháp",
"hi-IN": "Tiếng Hin-ddi",
"hu-HU": "Tiếng Hungary",
"id-ID": "Tiếng Indonesia",
"it-IT": "Tiếng Ý",
"ja-JP": "Tiếng Nhật",
"ko-KR": "Tiếng Hàn",
"nl-NL": "Tiếng Hà Lan",
"no-NO": "Tiếng Na Uy",
"pl-PL": "Tiếng Ba Lan",
"pt-BR": "Tiếng Bồ Đào Nha (Braxin)",
"pt-PT": "Tiếng Bồ Đào Nha (Bồ Đào Nha)",
"ro-RO": "Tiếng Romania",
"ru-RU": "Tiếng Nga",
"sk-SK": "Tiếng Slovak",
"sr-RS": "Tiếng Serbia",
"sv-SE": "Tiếng Thụy Điển",
"th-TH": "Tiếng Thái",
"tr-TR": "Tiếng Thổ Nhĩ Kỳ",
"uk-UA": "Tiếng Ukraina",
"vi-VN": "Tiếng Việt",
"zh": "Tiếng Trung",
"zh-CN": "Tiếng Trung (giản thể)",
"zh-TW": "Tiếng Trung (phồn thể)"
},
"layoutInitializing": "Đang tải bố cục...",
"noDescription": "Chưa có mô tả",
"ok": "Đồng ý",
"password": "Mật khẩu",
"pin": "Ghim",
"pinOff": "Bỏ ghim",
"regenerate": "Tạo lại",
"rename": "Đổi tên",
"reset": "Đặt lại",
"retry": "Thử lại",
"send": "Gửi",
"setting": "Cài đặt",
"share": "Chia sẻ",
"stop": "Dừng",
"tab": {
"chat": "Trò chuyện",
"market": "Thị trường",
"setting": "Cài đặt"
},
"temp": "Tạm thời",
"updateAgent": "Cập nhật thông tin trợ lý",
"upgradeVersion": {
"action": "Nâng cấp",
"hasNew": "Có bản cập nhật mới",
"newVersion": "Có phiên bản mới: {{version}}"
}
}
6 changes: 6 additions & 0 deletions locales/vi-VN/empty.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"topic": {
"desc": "Nhấn vào nút bên trái để lưu cuộc trò chuyện hiện tại như một chủ đề lịch sử và bắt đầu một cuộc trò chuyện mới",
"title": "Danh sách chủ đề"
}
}
53 changes: 53 additions & 0 deletions locales/vi-VN/error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"pluginSettings": {
"desc": "Hoàn thành cấu hình sau để bắt đầu sử dụng plugin này",
"title": "Cấu hình Plugin {{name}}"
},
"response": {
"400": "Xin lỗi, máy chủ không hiểu yêu cầu của bạn, vui lòng xác nhận tham số yêu cầu của bạn có đúng không",
"401": "Xin lỗi, máy chủ từ chối yêu cầu của bạn, có thể do quyền hạn của bạn không đủ hoặc không cung cấp xác thực danh tính hợp lệ",
"403": "Xin lỗi, máy chủ từ chối yêu cầu của bạn, bạn không có quyền truy cập nội dung này",
"404": "Xin lỗi, máy chủ không tìm thấy trang hoặc tài nguyên bạn yêu cầu, vui lòng xác nhận URL của bạn có đúng không",
"405": "Xin lỗi, máy chủ không hỗ trợ phương thức yêu cầu bạn đang sử dụng, vui lòng xác nhận phương thức yêu cầu của bạn có đúng không",
"429": "Xin lỗi, yêu cầu của bạn quá nhiều, máy chủ hơi mệt, vui lòng thử lại sau",
"500": "Xin lỗi, máy chủ có vẻ gặp một số khó khăn, tạm thời không thể hoàn thành yêu cầu của bạn, vui lòng thử lại sau",
"502": "Xin lỗi, máy chủ có vẻ lạc đường, tạm thời không thể cung cấp dịch vụ, vui lòng thử lại sau",
"503": "Xin lỗi, máy chủ hiện không thể xử lý yêu cầu của bạn, có thể do quá tải hoặc đang bảo trì, vui lòng thử lại sau",
"504": "Xin lỗi, máy chủ không đợi được phản hồi từ máy chủ upstream, vui lòng thử lại sau",
"InvalidAccessCode": "Mật khẩu không đúng hoặc trống, vui lòng nhập mật khẩu truy cập đúng, hoặc thêm Khóa API OpenAI tùy chỉnh",
"NoAPIKey": "Khóa API OpenAI trống, vui lòng thêm Khóa API OpenAI tùy chỉnh",
"OpenAIBizError": "Yêu cầu dịch vụ OpenAI gặp lỗi, vui lòng xác minh hoặc thử lại dựa trên thông tin dưới đây",
"PluginApiNotFound": "Xin lỗi, không có API nào trong tệp mô tả plugin, vui lòng kiểm tra phương thức yêu cầu của bạn có khớp với API mô tả plugin không",
"PluginApiParamsError": "Xin lỗi, kiểm tra tham số đầu vào yêu cầu của plugin không thông qua, vui lòng kiểm tra tham số đầu vào có khớp với thông tin mô tả API không",
"PluginGatewayError": "Xin lỗi, cổng plugin gặp lỗi, vui lòng kiểm tra cấu hình cổng plugin có đúng không",
"PluginManifestInvalid": "Xin lỗi, kiểm tra mô tả plugin không thông qua, vui lòng kiểm tra định dạng mô tả có đúng không",
"PluginManifestNotFound": "Xin lỗi, máy chủ không tìm thấy tệp mô tả plugin (manifest.json), vui lòng kiểm tra địa chỉ tệp mô tả plugin có đúng không",
"PluginMarketIndexInvalid": "Xin lỗi, kiểm tra chỉ mục plugin không thông qua, vui lòng kiểm tra định dạng tệp chỉ mục có đúng không",
"PluginMarketIndexNotFound": "Xin lỗi, máy chủ không tìm thấy chỉ mục plugin, vui lòng kiểm tra xem địa chỉ chỉ mục có đúng không",
"PluginMetaInvalid": "Xin lỗi, kiểm tra thông tin cấu hình plugin không thông qua, vui lòng kiểm tra định dạng thông tin cấu hình có đúng không",
"PluginMetaNotFound": "Xin lỗi, không tìm thấy thông tin cấu hình plugin trong chỉ mục",
"PluginOpenApiInitError": "Xin lỗi, khởi tạo khách hàng OpenAPI thất bại, vui lòng kiểm tra thông tin cấu hình OpenAPI có đúng không",
"PluginServerError": "Lỗi trả về từ máy chủ plugin, vui lòng kiểm tra tệp mô tả plugin, cấu hình plugin hoặc triển khai máy chủ theo thông tin lỗi dưới đây",
"PluginSettingsInvalid": "Plugin cần phải được cấu hình đúng trước khi sử dụng, vui lòng kiểm tra cấu hình của bạn có đúng không"
},
"stt": {
"responseError": "Yêu cầu dịch vụ thất bại, vui lòng kiểm tra cấu hình hoặc thử lại"
},
"tts": {
"responseError": "Yêu cầu dịch vụ thất bại, vui lòng kiểm tra cấu hình hoặc thử lại"
},
"unlock": {
"apikey": {
"addProxyUrl": "Thêm địa chỉ proxy OpenAI (tùy chọn)",
"description": "Nhập OpenAI API Key của bạn để bắt đầu phiên làm việc. Ứng dụng sẽ không lưu API Key của bạn",
"title": "Sử dụng API Key tùy chỉnh"
},
"closeMessage": "Đóng thông báo",
"confirm": "Xác nhận và thử lại",
"password": {
"description": "Quản trị viên đã kích hoạt mã hóa ứng dụng. Nhập mật khẩu ứng dụng để mở khóa. Chỉ cần nhập mật khẩu một lần",
"placeholder": "Nhập mật khẩu",
"title": "Nhập mật khẩu để mở khóa ứng dụng"
}
}
}
30 changes: 30 additions & 0 deletions locales/vi-VN/market.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"addAgent": "Thêm trợ lý",
"guide": {
"func1": {
"desc1": "Trong cửa sổ trò chuyện, nhấp vào cài đặt ở góc trên bên phải để vào trang cài đặt trợ lý bạn muốn gửi;",
"desc2": "Nhấp vào nút gửi đến thị trường trợ lý ở góc trên bên phải.",
"tag": "Phương pháp một",
"title": "Gửi thông qua LobeChat"
},
"func2": {
"button": "Đi đến kho trợ lý trên Github",
"desc": "Nếu bạn muốn thêm trợ lý vào chỉ mục, hãy sử dụng agent-template.json hoặc agent-template-full.json để tạo mục nhập trong thư mục plugins, viết mô tả ngắn gọn và đánh dấu phù hợp, sau đó tạo một yêu cầu kéo.",
"tag": "Phương pháp hai",
"title": "Gửi thông qua Github"
}
},
"search": {
"placeholder": "Tìm kiếm tên trợ lý, giới thiệu hoặc từ khóa..."
},
"sidebar": {
"comment": "Diễn đàn",
"prompt": "Gợi ý",
"title": "Chi tiết trợ lý"
},
"submitAgent": "Gửi trợ lý",
"title": {
"allAgents": "Tất cả trợ lý",
"recentSubmits": "Gần đây thêm mới"
}
}
Loading

0 comments on commit c2e5606

Please sign in to comment.