feat(i18n): add Russian (ru) localization support (#798)
This commit is contained in:
committed by
GitHub
Unverified
parent
fc9e37c4a3
commit
66b2ddb2dc
92
tests/e2e/language-russian.spec.ts
Normal file
92
tests/e2e/language-russian.spec.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import { closeElectronApp, expect, getStableWindow, test } from './fixtures/electron';
|
||||
|
||||
test.describe('Russian language localization', () => {
|
||||
test('shows Russian language option in setup wizard', async ({ launchElectronApp }) => {
|
||||
const app = await launchElectronApp();
|
||||
|
||||
try {
|
||||
const page = await getStableWindow(app);
|
||||
|
||||
// Should see the setup wizard
|
||||
await expect(page.getByTestId('setup-page')).toBeVisible();
|
||||
|
||||
// Should have Russian language button visible
|
||||
const russianButton = page.locator('button', { hasText: 'Русский' });
|
||||
await expect(russianButton).toBeVisible();
|
||||
} finally {
|
||||
await closeElectronApp(app);
|
||||
}
|
||||
});
|
||||
|
||||
test('can switch to Russian language in setup wizard', async ({ launchElectronApp }) => {
|
||||
const app = await launchElectronApp();
|
||||
|
||||
try {
|
||||
const page = await getStableWindow(app);
|
||||
|
||||
await expect(page.getByTestId('setup-page')).toBeVisible();
|
||||
|
||||
// Click Russian language button
|
||||
const russianButton = page.locator('button', { hasText: 'Русский' });
|
||||
await russianButton.click();
|
||||
|
||||
// Verify UI renders in Russian by checking for Russian-only text
|
||||
// "Добро пожаловать" is unique to Russian and won't appear in English
|
||||
await expect(page.locator('h2')).toContainText('Добро пожаловать');
|
||||
} finally {
|
||||
await closeElectronApp(app);
|
||||
}
|
||||
});
|
||||
|
||||
test('Russian language persists after skipping setup', async ({ launchElectronApp }) => {
|
||||
const app = await launchElectronApp();
|
||||
|
||||
try {
|
||||
const page = await getStableWindow(app);
|
||||
|
||||
await expect(page.getByTestId('setup-page')).toBeVisible();
|
||||
|
||||
// Switch to Russian
|
||||
const russianButton = page.locator('button', { hasText: 'Русский' });
|
||||
await russianButton.click();
|
||||
|
||||
// Skip setup
|
||||
await page.getByTestId('setup-skip-button').click();
|
||||
await expect(page.getByTestId('main-layout')).toBeVisible();
|
||||
|
||||
// Navigate to Settings to verify language persistence
|
||||
await page.getByTestId('sidebar-nav-settings').click();
|
||||
await expect(page.getByTestId('settings-page')).toBeVisible();
|
||||
|
||||
// Verify sidebar shows Russian text (not English)
|
||||
// "Настройки" is Russian-only, English is "Settings"
|
||||
await expect(page.getByTestId('sidebar-nav-settings')).toContainText('Настройки');
|
||||
} finally {
|
||||
await closeElectronApp(app);
|
||||
}
|
||||
});
|
||||
|
||||
test('can switch to Russian in Settings page', async ({ launchElectronApp }) => {
|
||||
const app = await launchElectronApp({ skipSetup: true });
|
||||
|
||||
try {
|
||||
const page = await getStableWindow(app);
|
||||
|
||||
await expect(page.getByTestId('main-layout')).toBeVisible();
|
||||
|
||||
// Navigate to Settings (in English by default after skipSetup)
|
||||
await page.getByTestId('sidebar-nav-settings').click();
|
||||
await expect(page.getByTestId('settings-page')).toBeVisible();
|
||||
|
||||
// Click Russian language button
|
||||
const russianButton = page.locator('button', { hasText: 'Русский' });
|
||||
await russianButton.click();
|
||||
|
||||
// Verify sidebar switched to Russian
|
||||
// "Настройки" is Russian-only, English is "Settings"
|
||||
await expect(page.getByTestId('sidebar-nav-settings')).toContainText('Настройки');
|
||||
} finally {
|
||||
await closeElectronApp(app);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user