chore: time from now i18n support (#26328)

This commit is contained in:
非法操作
2025-09-28 13:37:42 +08:00
committed by GitHub
parent 87c41c88a3
commit 36406cd62f
5 changed files with 50 additions and 24 deletions

View File

@@ -11,9 +11,6 @@ import cn from '@/utils/classnames'
import { useHover } from 'ahooks'
import { RiFileTextFill, RiMoreFill, RiRobot2Fill } from '@remixicon/react'
import Tooltip from '@/app/components/base/tooltip'
import { useGetLanguage } from '@/context/i18n'
import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime'
import { checkIsUsedInApp, deleteDataset } from '@/service/datasets'
import RenameDatasetModal from '../../rename-modal'
import Confirm from '@/app/components/base/confirm'
@@ -24,7 +21,7 @@ import AppIcon from '@/app/components/base/app-icon'
import CornerLabel from '@/app/components/base/corner-label'
import { DOC_FORM_ICON_WITH_BG, DOC_FORM_TEXT } from '@/models/datasets'
import { useExportPipelineDSL } from '@/service/use-pipeline'
dayjs.extend(relativeTime)
import { useFormatTimeFromNow } from '@/hooks/use-format-time-from-now'
const EXTERNAL_PROVIDER = 'external'
@@ -87,10 +84,7 @@ const DatasetCard = ({
return t('dataset.partialEnabled', { count: dataset.document_count, num: availableDocCount })
}, [t, dataset.document_count, dataset.total_available_documents])
const language = useGetLanguage()
const formatTimeFromNow = useCallback((time: number) => {
return dayjs(time * 1_000).locale(language === 'zh_Hans' ? 'zh-cn' : language.replace('_', '-')).fromNow()
}, [language])
const { formatTimeFromNow } = useFormatTimeFromNow()
const openRenameModal = useCallback(() => {
setShowRenameModal(true)
@@ -269,7 +263,7 @@ const DatasetCard = ({
</Tooltip>
)}
<span className='system-xs-regular text-divider-deep'>/</span>
<span className='system-xs-regular'>{`${t('dataset.updated')} ${formatTimeFromNow(dataset.updated_at)}`}</span>
<span className='system-xs-regular'>{`${t('dataset.updated')} ${formatTimeFromNow(dataset.updated_at * 1000)}`}</span>
</div>
<div className='absolute right-2 top-2 z-[5] hidden group-hover:block'>
<CustomPopover

View File

@@ -21,7 +21,6 @@ import {
import Button from '@/app/components/base/button'
import {
useChecklistBeforePublish,
useFormatTimeFromNow,
} from '@/app/components/workflow/hooks'
import Divider from '@/app/components/base/divider'
import { getKeyboardKeyCodeBySystem, getKeyboardKeyNameBySystem } from '@/app/components/workflow/utils'
@@ -47,6 +46,7 @@ import { SparklesSoft } from '@/app/components/base/icons/src/public/common'
import { useModalContextSelector } from '@/context/modal-context'
import Link from 'next/link'
import { useDatasetApiAccessUrl } from '@/hooks/use-api-access-url'
import { useFormatTimeFromNow } from '@/hooks/use-format-time-from-now'
const PUBLISH_SHORTCUT = ['ctrl', '⇧', 'P']

View File

@@ -22,4 +22,3 @@ export * from './use-DSL'
export * from './use-inspect-vars-crud'
export * from './use-set-workflow-vars-with-value'
export * from './use-workflow-search'
export * from './use-format-time-from-now'

View File

@@ -1,12 +0,0 @@
import dayjs from 'dayjs'
import { useCallback } from 'react'
import { useI18N } from '@/context/i18n'
export const useFormatTimeFromNow = () => {
const { locale } = useI18N()
const formatTimeFromNow = useCallback((time: number) => {
return dayjs(time).locale(locale === 'zh-Hans' ? 'zh-cn' : locale).fromNow()
}, [locale])
return { formatTimeFromNow }
}