mirror of
https://github.com/langgenius/dify.git
synced 2026-09-08 02:43:49 +08:00
Signed-off-by: kenwoodjw <blackxin55+@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: 起岚 <155608604+xiaoyaoqilan@users.noreply.github.com> Co-authored-by: Parman Mohammadalizadeh <prmma23@gmail.com> Co-authored-by: Escape0707 <tothesong@gmail.com> Co-authored-by: Xin Zhang <zhangxin@dify.ai> Co-authored-by: iridescentWen <66297467+iridescentWen@users.noreply.github.com> Co-authored-by: Bond Zhu <37842169+MRZHUH@users.noreply.github.com> Co-authored-by: KVOJJJin <jzongcode@gmail.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: 非法操作 <hjlarry@163.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com> Co-authored-by: Asuka Minato <i@asukaminato.eu.org> Co-authored-by: Chester <superdiao6@gmail.com> Co-authored-by: WH-2099 <wh2099@pm.me> Co-authored-by: Jony <619963502@qq.com> Co-authored-by: Jony <13896935+zyz619963502zyz@users.noreply.github.com> Co-authored-by: Harsh Kashyap <harsh.kashyap2001@gmail.com> Co-authored-by: Harsh Kashyap <Harsh23Kashyap@users.noreply.github.com> Co-authored-by: kenwoodjw <blackxin55+@gmail.com> Co-authored-by: csurong <csurong1@gmail.com> Co-authored-by: caosurong <surong.cao@thinkingdata.cn> Co-authored-by: Taranum Wasu <81034301+Taranum01@users.noreply.github.com> Co-authored-by: Taranum01 <50813317+Taranum01@users.noreply.github.com> Co-authored-by: Pranav Agarwal <agarwalpranav0711@gmail.com> Co-authored-by: Stephen Zhou <hi@hyoban.cc> Co-authored-by: zl86790 <marshal_li_b@163.com> Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com> Co-authored-by: yunlu.wen <yunlu.wen@dify.ai> Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
import type { SelectorParam } from 'i18next'
|
|
import { createInstance } from 'i18next'
|
|
import { describe, expect, it } from 'vitest'
|
|
import agentV2 from '../../i18n/en-US/agent-v-2.json'
|
|
import skill from '../../i18n/en-US/skill.json'
|
|
import { getInitOptions } from '../settings'
|
|
|
|
describe('i18n selector configuration', () => {
|
|
describe('Plural Keys', () => {
|
|
it('should select plural variants from an unsuffixed base key', async () => {
|
|
// Arrange
|
|
const instance = createInstance()
|
|
await instance.init({
|
|
...getInitOptions(),
|
|
lng: 'en-US',
|
|
resources: {
|
|
'en-US': {
|
|
app: {
|
|
'accessControlDialog.members_one': '{{count}} member',
|
|
'accessControlDialog.members_other': '{{count}} members',
|
|
},
|
|
},
|
|
},
|
|
})
|
|
const memberKey: SelectorParam<'app'> = ($) => $['accessControlDialog.members']
|
|
|
|
// Act
|
|
const singular = instance.t(memberKey, { count: 1 })
|
|
const plural = instance.t(memberKey, { count: 2 })
|
|
|
|
// Assert
|
|
expect(singular).toBe('1 member')
|
|
expect(plural).toBe('2 members')
|
|
})
|
|
|
|
it('should pluralize Skill upload failure copy in the skill namespace', async () => {
|
|
const instance = createInstance()
|
|
await instance.init({
|
|
...getInitOptions(),
|
|
lng: 'en-US',
|
|
resources: { 'en-US': { skill } },
|
|
})
|
|
const uploadFailureKey: SelectorParam<'skill'> = ($) =>
|
|
$['skillManagement.detail.uploadFilesFailedStatus']
|
|
|
|
expect(instance.t(uploadFailureKey, { count: 1, ns: 'skill' })).toBe('1 file upload failed.')
|
|
expect(instance.t(uploadFailureKey, { count: 2, ns: 'skill' })).toBe('2 file uploads failed.')
|
|
})
|
|
|
|
it('should pluralize Skill upload failure copy in the Agent V2 namespace', async () => {
|
|
const instance = createInstance()
|
|
await instance.init({
|
|
...getInitOptions(),
|
|
lng: 'en-US',
|
|
resources: { 'en-US': { agentV2 } },
|
|
})
|
|
const uploadFailureKey: SelectorParam<'agentV2'> = ($) =>
|
|
$['skillManagement.detail.uploadFilesFailedStatus']
|
|
|
|
expect(instance.t(uploadFailureKey, { count: 1, ns: 'agentV2' })).toBe(
|
|
'1 file upload failed.',
|
|
)
|
|
expect(instance.t(uploadFailureKey, { count: 2, ns: 'agentV2' })).toBe(
|
|
'2 file uploads failed.',
|
|
)
|
|
})
|
|
})
|
|
})
|