29 lines
1.1 KiB
JavaScript
29 lines
1.1 KiB
JavaScript
import en from '../src/lib/i18n/catalogs/en.js';
|
||
import ru from '../src/lib/i18n/catalogs/ru.js';
|
||
import fs from 'node:fs';
|
||
import path from 'node:path';
|
||
import { fileURLToPath } from 'node:url';
|
||
|
||
const forbidden = [
|
||
['English catalog', /\bworkspace(?:s)?\b/i],
|
||
['Russian catalog', /рабоч(?:ее|ие|ем|его|их)\s+пространств(?:о|а|е)?/i],
|
||
];
|
||
|
||
for (const [name, pattern] of forbidden) {
|
||
const violations = Object.entries(name === 'English catalog' ? en : ru)
|
||
.filter(([, value]) => pattern.test(value));
|
||
if (violations.length) {
|
||
throw new Error(`${name} still exposes workspace terminology: ${violations.map(([key]) => key).join(', ')}`);
|
||
}
|
||
}
|
||
|
||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||
const overview = fs.readFileSync(path.join(root, 'src/lib/shell/TodaySurface.svelte'), 'utf8');
|
||
for (const phrase of ['Workspace opened', 'Workspace activity', 'Workspace overview note']) {
|
||
if (overview.includes(phrase)) {
|
||
throw new Error(`Overview exposes workspace terminology: ${phrase}`);
|
||
}
|
||
}
|
||
|
||
console.log('desktop user terminology uses Deal/Дело');
|