Yuki Takei 1 год назад
Родитель
Сommit
87391498a6

+ 6 - 0
apps/app/public/static/locales/en_US/translation.json

@@ -484,6 +484,12 @@
     "latest_revision": "theirs",
     "selected_editable_revision": "Selected Page Body (Editable)"
   },
+  "modal_aichat": {
+    "title": "Knowledge Assistant",
+    "title_beta_label": "(Beta)",
+    "placeholder": "Ask me anything.",
+    "caution_against_hallucination": "Please verify the information and check the sources."
+  },
   "link_edit": {
     "edit_link": "Edit Link",
     "set_link_and_label": "Set link and label",

+ 6 - 0
apps/app/public/static/locales/fr_FR/translation.json

@@ -478,6 +478,12 @@
     "latest_revision": "les autres",
     "selected_editable_revision": "Corps de page sélectionné (Modifiable)"
   },
+  "modal_aichat": {
+    "title": "Assistant de Connaissance",
+    "title_beta_label": "(Bêta)",
+    "placeholder": "Demandez-moi n'importe quoi.",
+    "caution_against_hallucination": "Veuillez vérifier les informations et consulter les sources."
+  },
   "link_edit": {
     "edit_link": "Modifier lien",
     "set_link_and_label": "Ajouter lien et étiquette",

+ 6 - 0
apps/app/public/static/locales/ja_JP/translation.json

@@ -517,6 +517,12 @@
     "latest_revision": "最新の本文",
     "selected_editable_revision": "保存するページ本文(編集可能)"
   },
+  "modal_aichat": {
+    "title": "ナレッジアシスタント",
+    "title_beta_label": "(ベータ)",
+    "placeholder": "ききたいことを入力してください",
+    "caution_against_hallucination": "情報が正しいか出典を確認しましょう"
+  },
   "link_edit": {
     "edit_link": "リンク編集",
     "set_link_and_label": "リンク情報",

+ 6 - 0
apps/app/public/static/locales/zh_CN/translation.json

@@ -473,6 +473,12 @@
     "latest_revision": "最新页面正文",
     "selected_editable_revision": "选定的可编辑页面正文"
   },
+  "modal_aichat": {
+    "title": "知识助手",
+    "title_beta_label": "(测试版)",
+    "placeholder": "问我任何问题。",
+    "caution_against_hallucination": "请核实信息并检查来源。"
+  },
   "link_edit": {
     "edit_link": "Edit Link",
     "set_link_and_label": "Set link and label",

+ 9 - 4
apps/app/src/features/openai/chat/components/AiChatModal/AiChatModal.tsx

@@ -2,6 +2,7 @@ import type { KeyboardEvent } from 'react';
 import React, { useCallback, useEffect, useState } from 'react';
 
 import { useForm, Controller } from 'react-hook-form';
+import { useTranslation } from 'react-i18next';
 import {
   Modal, ModalBody, ModalFooter, ModalHeader,
 } from 'reactstrap';
@@ -32,6 +33,8 @@ type FormData = {
 
 const AiChatModalSubstance = (): JSX.Element => {
 
+  const { t } = useTranslation();
+
   const form = useForm<FormData>({
     defaultValues: {
       input: '',
@@ -166,7 +169,7 @@ const AiChatModalSubstance = (): JSX.Element => {
           { messageLogs.length > 0 && (
             <div className="d-flex justify-content-center">
               <span className="bg-body-tertiary text-body-secondary rounded-pill px-3 py-1" style={{ fontSize: 'smaller' }}>
-                情報が正しいか出典を確認しましょう
+                {t('modal_aichat.caution_against_hallucination')}
               </span>
             </div>
           )}
@@ -185,7 +188,7 @@ const AiChatModalSubstance = (): JSX.Element => {
                 className="form-control textarea-ask"
                 style={{ resize: 'none' }}
                 rows={1}
-                placeholder="ききたいことを入力してください"
+                placeholder={t('modal_aichat.placeholder')}
                 onKeyDown={keyDownHandler}
               />
             )}
@@ -210,6 +213,8 @@ const AiChatModalSubstance = (): JSX.Element => {
 
 export const AiChatModal = (): JSX.Element => {
 
+  const { t } = useTranslation();
+
   const { data: ragSearchModalData, close: closeRagSearchModal } = useRagSearchModal();
 
   const isOpened = ragSearchModalData?.isOpened ?? false;
@@ -219,8 +224,8 @@ export const AiChatModal = (): JSX.Element => {
 
       <ModalHeader tag="h4" toggle={closeRagSearchModal} className="pe-4">
         <span className="material-symbols-outlined growi-ai-chat-icon me-3">chat</span>
-        <span className="fw-bold">GROWI Assistant</span>
-        <span className="fs-5 text-body-secondary ms-3">(Beta)</span>
+        <span className="fw-bold">{t('modal_aichat.title')}</span>
+        <span className="fs-5 text-body-secondary ms-3">{t('modal_aichat.title_beta_label')}</span>
       </ModalHeader>
 
       { isOpened && (