Kaynağa Gözat

fix: move hardcoded text to language settings (#16990) (#17133)

tags/1.2.0
Perfecto 7 ay önce
ebeveyn
işleme
16c722d1d8
No account linked to committer's email address

+ 5
- 1
api/core/rag/retrieval/dataset_retrieval.py Dosyayı Görüntüle

@@ -52,6 +52,7 @@ from core.rag.retrieval.template_prompts import (
METADATA_FILTER_USER_PROMPT_2,
METADATA_FILTER_USER_PROMPT_3,
)
from core.tools.entities.common_entities import I18nObject
from core.tools.utils.dataset_retriever.dataset_retriever_base_tool import DatasetRetrieverBaseTool
from extensions.ext_database import db
from libs.json_in_md_parser import parse_and_check_json_markdown
@@ -294,7 +295,10 @@ class DatasetRetrieval:
for dataset in available_datasets:
description = dataset.description
if not description:
description = "useful for when you want to answer queries about the " + dataset.name
description = I18nObject(
en_US="useful for when you want to answer queries about the " + dataset.name,
zh_Hans="用于回答关于 " + dataset.name + " 的查询",
)

description = description.replace("\n", "").replace("\r", "")
message_tool = PromptMessageTool(

+ 5
- 1
api/core/tools/utils/dataset_retriever/dataset_retriever_tool.py Dosyayı Görüntüle

@@ -6,6 +6,7 @@ from core.rag.datasource.retrieval_service import RetrievalService
from core.rag.entities.context_entities import DocumentContext
from core.rag.models.document import Document as RetrievalDocument
from core.rag.retrieval.retrieval_methods import RetrievalMethod
from core.tools.entities.common_entities import I18nObject
from core.tools.utils.dataset_retriever.dataset_retriever_base_tool import DatasetRetrieverBaseTool
from extensions.ext_database import db
from models.dataset import Dataset
@@ -38,7 +39,10 @@ class DatasetRetrieverTool(DatasetRetrieverBaseTool):
def from_dataset(cls, dataset: Dataset, **kwargs):
description = dataset.description
if not description:
description = "useful for when you want to answer queries about the " + dataset.name
description = I18nObject(
en_US="useful for when you want to answer queries about the " + dataset.name,
zh_Hans="用于回答关于 " + dataset.name + " 的查询",
)

description = description.replace("\n", "").replace("\r", "")
return cls(

+ 5
- 1
api/services/dataset_service.py Dosyayı Görüntüle

@@ -21,6 +21,7 @@ from core.plugin.entities.plugin import ModelProviderID
from core.rag.index_processor.constant.built_in_field import BuiltInField
from core.rag.index_processor.constant.index_type import IndexType
from core.rag.retrieval.retrieval_methods import RetrievalMethod
from core.tools.entities.common_entities import I18nObject
from events.dataset_event import dataset_was_deleted
from events.document_event import document_was_deleted
from extensions.ext_database import db
@@ -1378,7 +1379,10 @@ class DocumentService:
cut_length = 18
cut_name = documents[0].name[:cut_length]
dataset.name = cut_name + "..."
dataset.description = "useful for when you want to answer queries about the " + documents[0].name
dataset.description = I18nObject(
en_US="useful for when you want to answer queries about the " + documents[0].name,
zh_Hans="用于回答关于 " + documents[0].name + " 的查询",
)
db.session.commit()

return dataset, documents, batch

+ 2
- 0
web/app/(commonLayout)/datasets/Container.tsx Dosyayı Görüntüle

@@ -38,6 +38,8 @@ const Container = () => {
const { showExternalApiPanel, setShowExternalApiPanel } = useExternalApiPanel()
const [includeAll, { toggle: toggleIncludeAll }] = useBoolean(false)

document.title = `${t('dataset.knowledge')} - Dify`

const options = useMemo(() => {
return [
{ value: 'dataset', text: t('dataset.datasets') },

+ 0
- 4
web/app/(commonLayout)/datasets/page.tsx Dosyayı Görüntüle

@@ -4,8 +4,4 @@ const AppList = async () => {
return <Container />
}

export const metadata = {
title: 'Datasets - Dify',
}

export default AppList

+ 0
- 4
web/app/(commonLayout)/plugins/page.tsx Dosyayı Görüntüle

@@ -13,8 +13,4 @@ const PluginList = async () => {
)
}

export const metadata = {
title: 'Plugins - Dify',
}

export default PluginList

+ 5
- 3
web/app/components/base/app-icon-picker/ImageInput.tsx Dosyayı Görüntüle

@@ -4,6 +4,7 @@ import type { ChangeEvent, FC } from 'react'
import { createRef, useEffect, useState } from 'react'
import Cropper, { type Area, type CropperProps } from 'react-easy-crop'
import classNames from 'classnames'
import { useTranslation } from 'react-i18next'

import { ImagePlus } from '../icons/src/vender/line/images'
import { useDraggableUploader } from './hooks'
@@ -26,6 +27,7 @@ const ImageInput: FC<UploaderProps> = ({
cropShape,
onImageInput,
}) => {
const { t } = useTranslation()
const [inputImage, setInputImage] = useState<{ file: File; url: string }>()
const [isAnimatedImage, setIsAnimatedImage] = useState<boolean>(false)
useEffect(() => {
@@ -103,8 +105,8 @@ const ImageInput: FC<UploaderProps> = ({
? <>
<ImagePlus className="pointer-events-none mb-3 h-[30px] w-[30px]" />
<div className="mb-[2px] text-sm font-medium">
<span className="pointer-events-none">Drop your image here, or&nbsp;</span>
<button className="text-components-button-primary-bg" onClick={() => inputRef.current?.click()}>browse</button>
<span className="pointer-events-none">{t('common.imageInput.dropImageHere')}&nbsp;</span>
<button className="text-components-button-primary-bg" onClick={() => inputRef.current?.click()}>{t('common.imageInput.browse')}</button>
<input
ref={inputRef} type="file" className="hidden"
onClick={e => ((e.target as HTMLInputElement).value = '')}
@@ -112,7 +114,7 @@ const ImageInput: FC<UploaderProps> = ({
onChange={handleLocalFileInput}
/>
</div>
<div className="pointer-events-none text-xs">Supports PNG, JPG, JPEG, WEBP and GIF</div>
<div className="pointer-events-none">{t('common.imageInput.supportedFormats')}</div>
</>
: handleShowImage()
}

+ 2
- 0
web/app/components/plugins/plugin-page/index.tsx Dosyayı Görüntüle

@@ -56,6 +56,8 @@ const PluginPage = ({
const searchParams = useSearchParams()
const { replace } = useRouter()

document.title = `${t('plugin.metadata.title')} - Dify`

// just support install one package now
const packageId = useMemo(() => {
const idStrings = searchParams.get(PACKAGE_IDS_KEY)

+ 5
- 0
web/i18n/en-US/common.ts Dosyayı Görüntüle

@@ -649,6 +649,11 @@ const translation = {
pagination: {
perPage: 'Items per page',
},
imageInput: {
dropImageHere: 'Drop your image here, or',
browse: 'browse',
supportedFormats: 'Supports PNG, JPG, JPEG, WEBP and GIF',
},
}

export default translation

+ 3
- 0
web/i18n/en-US/plugin.ts Dosyayı Görüntüle

@@ -1,4 +1,7 @@
const translation = {
metadata: {
title: 'Plugins',
},
category: {
all: 'All',
models: 'Models',

+ 5
- 0
web/i18n/zh-Hans/common.ts Dosyayı Görüntüle

@@ -649,6 +649,11 @@ const translation = {
pagination: {
perPage: '每页显示',
},
imageInput: {
dropImageHere: '将图片拖放到此处,或',
browse: '浏览',
supportedFormats: '支持PNG、JPG、JPEG、WEBP和GIF格式',
},
}

export default translation

+ 3
- 0
web/i18n/zh-Hans/plugin.ts Dosyayı Görüntüle

@@ -1,4 +1,7 @@
const translation = {
metadata: {
title: '插件',
},
category: {
all: '全部',
models: '模型',

Loading…
İptal
Kaydet