23 lines
1.1 KiB
TypeScript
23 lines
1.1 KiB
TypeScript
import { test } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { translate, validLocale } from '../src/i18n';
|
|
import english from '../src/locales/en.json';
|
|
import traditional from '../src/locales/zh-Hant.json';
|
|
test('locale dictionaries match and preserve monetary values and the required confirmation phrase', () => {
|
|
assert.deepEqual(Object.keys(english), Object.keys(traditional));
|
|
assert.equal(translate('账户', 'en'), 'Accounts');
|
|
assert.equal(translate('账户', 'zh-Hant'), '賬戶');
|
|
assert.equal(translate('Accounts', 'zh-Hans'), '账户');
|
|
assert.equal(translate('借入到账', 'en'), 'Receive a loan');
|
|
for (const locale of ['en', 'zh-Hans', 'zh-Hant'] as const) {
|
|
assert.equal(translate('确定清空', locale), '确定清空');
|
|
assert.equal(translate('9999999999999999.98765432', locale), '9999999999999999.98765432');
|
|
}
|
|
assert.equal(
|
|
translate('fee: 手续费优惠不能超过转出金额', 'en'),
|
|
'fee: The discount cannot exceed the payment amount.',
|
|
);
|
|
assert.equal(validLocale('en'), true);
|
|
assert.equal(validLocale('fr'), false);
|
|
});
|