feat: i18n control, Gitea auto-update CI, license-gated updater, fixes

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Ivan Fontosh
2026-05-11 22:20:14 +08:00
parent 36776f4c5d
commit f462e65581
23 changed files with 2049 additions and 440 deletions
@@ -0,0 +1,30 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { inferEditorLocaleFromSystem, normalizeEditorLocale } from './editorMessages';
void test('inferEditorLocaleFromSystem: en-* wins when listed first', () => {
assert.equal(inferEditorLocaleFromSystem(['en-GB', 'ru-RU']), 'en');
});
void test('inferEditorLocaleFromSystem: ru-* wins when listed first', () => {
assert.equal(inferEditorLocaleFromSystem(['ru-RU', 'en-US']), 'ru');
});
void test('inferEditorLocaleFromSystem: unknown tags fall back to ru', () => {
assert.equal(inferEditorLocaleFromSystem(['de-DE', 'fr']), 'ru');
});
void test('inferEditorLocaleFromSystem: empty list → ru', () => {
assert.equal(inferEditorLocaleFromSystem([]), 'ru');
});
void test('normalizeEditorLocale: trims stored en/ru', () => {
assert.equal(normalizeEditorLocale(' EN '), 'en');
assert.equal(normalizeEditorLocale('ru '), 'ru');
});
void test('normalizeEditorLocale: blank or invalid defers to infer (explicit list)', () => {
assert.equal(normalizeEditorLocale(''), inferEditorLocaleFromSystem([]));
assert.equal(normalizeEditorLocale('xx'), inferEditorLocaleFromSystem([]));
});