23 lines
1.1 KiB
TypeScript
23 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { translate } from './translate';
|
|
|
|
describe('translate', () => {
|
|
it('returns translated strings for supported locales', () => {
|
|
expect(translate('settings.general.language.auto', undefined, 'en_us')).toBe('Auto');
|
|
expect(translate('settings.general.language.auto', undefined, 'fr_fr')).toBe('Auto');
|
|
expect(translate('settings.general.language.auto', undefined, 'zh_cn')).toBe('自动');
|
|
});
|
|
|
|
it('falls back to English when a locale key is missing', () => {
|
|
expect(translate('toolbar.button.new', undefined, 'zh_cn')).toBe('新建');
|
|
expect(translate('nonexistent.key', undefined, 'fr_fr')).toBe('nonexistent.key');
|
|
expect(translate('nonexistent.key', undefined, 'zh_cn')).toBe('nonexistent.key');
|
|
});
|
|
|
|
it('interpolates params', () => {
|
|
expect(translate('toolbar.status.bpmChanged', { value: 120 }, 'en_us')).toBe('BPM changed to 120');
|
|
expect(translate('toolbar.status.bpmChanged', { value: 120 }, 'fr_fr')).toBe('BPM changé à 120');
|
|
expect(translate('toolbar.status.bpmChanged', { value: 120 }, 'zh_cn')).toBe('BPM 已改为 120');
|
|
});
|
|
});
|