Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/pages/test/frontend/fixtures.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { test as base, expect } from '@playwright/test'
import { createBrowserDiagnostics, waitForLocaleCycle } from 'fount/scripts/test/playwright/browser_diagnostics.mjs'
import { installCdnResponseCache } from 'fount/scripts/test/playwright/cdn_cache.mjs'
import { requireTestBaseUrl } from 'fount/scripts/test/playwright/env.mjs'
import { assertAriaIgnoreIssues } from 'fount/scripts/test/playwright/github_issue.mjs'

/**
* Pages 前端 E2E fixture:`baseUrl` + 已注入 `fount.test.enabled` 的 `context` / `page`。
Expand Down Expand Up @@ -46,6 +47,14 @@ export function createPagesFixtures(options = {}) {
globalThis.fount.test ??= {}
globalThis.fount.test.enabled = true
})
const hubUrl = (process.env.FOUNT_TEST_HUB_URL || '').trim()
if (hubUrl)
await context.addInitScript(url => {
globalThis.fount ??= {}
globalThis.fount.test ??= {}
globalThis.fount.test.hubUrl = url
}, hubUrl)

await use(context)
await context.close()
},
Expand All @@ -61,6 +70,7 @@ export function createPagesFixtures(options = {}) {
await use(page)
// 收尾:中日英脚本检查 + 每语种一轮 a11y;未挂载 test_watch 则跳过
await waitForLocaleCycle(page).catch(() => { /* 未挂载 test_watch 则跳过 */ })
await assertAriaIgnoreIssues(page)
diagnostics.flushNetworkDiagnostics()
expect(diagnostics.pageErrors, 'unexpected browser page errors').toEqual([])
expect(diagnostics.testWatchErrors, 'unexpected test_watch console output').toEqual([])
Expand Down
1 change: 0 additions & 1 deletion .github/pages/test/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
"triggers": [
".github/pages/**",
"src/public/pages/scripts/**",
"src/public/locales/**",
"imgs/**",
"src/scripts/test/playwright/**",
".esh/commands/pages-server.mjs"
Expand Down
12 changes: 12 additions & 0 deletions src/decl/locale_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3631,6 +3631,9 @@ export type LocaleData = {
}
}
configTitle: string
jsonEditor: {
'aria-label': string
}
needsConfigReminder: string
needsConfigLink: string
subtypeSelect: {
Expand Down Expand Up @@ -3759,6 +3762,9 @@ export type LocaleData = {
botToken: string
config: string
}
jsonEditor: {
'aria-label': string
}
botTokenInput: {
placeholder: string
}
Expand Down Expand Up @@ -3839,6 +3845,9 @@ export type LocaleData = {
apiKey: string
config: string
}
jsonEditor: {
'aria-label': string
}
apiKeyInput: {
placeholder: string
}
Expand Down Expand Up @@ -3918,6 +3927,9 @@ export type LocaleData = {
botToken: string
config: string
}
jsonEditor: {
'aria-label': string
}
apiBaseUrlInput: {
placeholder: string
}
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/ar-SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "تكوين مصدر الخدمة",
"jsonEditor": {
"aria-label": "محرر JSON لتكوين مصدر الخدمة"
},
"needsConfigReminder": "بعد تكوين مصدر الخدمة، تحتاج عمومًا إلى ملء اسم مصدر الخدمة في الحقل المقابل في تكوين المكون الذي يستخدم مصدر الخدمة هذا.",
"needsConfigLink": "انتقل إلى تكوين القطعة",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "رمز بوت Telegram",
"config": "تهيئة"
},
"jsonEditor": {
"aria-label": "محرر JSON لتكوين البوت"
},
"botTokenInput": {
"placeholder": "الرجاء إدخال رمز بوت Telegram"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "مفتاح API لـ Discord",
"config": "تهيئة"
},
"jsonEditor": {
"aria-label": "محرر JSON لتكوين البوت"
},
"apiKeyInput": {
"placeholder": "الرجاء إدخال مفتاح API"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "رمز iLink Bot",
"config": "الإعدادات"
},
"jsonEditor": {
"aria-label": "محرر JSON لتكوين البوت"
},
"apiBaseUrlInput": {
"placeholder": "اتركه فارغًا للقيمة الافتراضية https://ilinkai.weixin.qq.com"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/de-DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "Konfiguration der Dienstquelle",
"jsonEditor": {
"aria-label": "JSON-Editor für die Dienstquellenkonfiguration"
},
"needsConfigReminder": "Nachdem die Dienstquelle konfiguriert wurde, müssen Sie im Allgemeinen den Namen der Dienstquelle in das entsprechende Feld in der Konfiguration der Komponente eingeben, die diese Dienstquelle verwendet.",
"needsConfigLink": "Gehen Sie zur Widget-Konfiguration",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "Telegram Bot-Token",
"config": "Konfiguration"
},
"jsonEditor": {
"aria-label": "JSON-Editor für die Bot-Konfiguration"
},
"botTokenInput": {
"placeholder": "Telegram Bot-Token eingeben"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "Discord API-Schlüssel",
"config": "Konfiguration"
},
"jsonEditor": {
"aria-label": "JSON-Editor für die Bot-Konfiguration"
},
"apiKeyInput": {
"placeholder": "API-Schlüssel eingeben"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "iLink-Bot-Token",
"config": "Konfiguration"
},
"jsonEditor": {
"aria-label": "JSON-Editor für die Bot-Konfiguration"
},
"apiBaseUrlInput": {
"placeholder": "Leer lassen für Standard https://ilinkai.weixin.qq.com"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/emoji.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "🚰⚙️",
"jsonEditor": {
"aria-label": "📝🚰⚙️"
},
"needsConfigReminder": "🚰✅ ➡️ 📝🚰📛 ➡️ 🧩⚙️",
"needsConfigLink": "➡️🧩⚙️",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "🔑",
"config": "⚙️"
},
"jsonEditor": {
"aria-label": "📝🤖⚙️"
},
"botTokenInput": {
"placeholder": "✍️🔑"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "🔑",
"config": "⚙️"
},
"jsonEditor": {
"aria-label": "📝🤖⚙️"
},
"apiKeyInput": {
"placeholder": "✍️🔑"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "🔑",
"config": "⚙️"
},
"jsonEditor": {
"aria-label": "📝🤖⚙️"
},
"apiBaseUrlInput": {
"placeholder": "⬜️↩️ 🌐🔗"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/en-UK.json
Original file line number Diff line number Diff line change
Expand Up @@ -3654,6 +3654,9 @@
}
},
"configTitle": "Service source configuration",
"jsonEditor": {
"aria-label": "Service source configuration JSON editor"
},
"needsConfigReminder": "After the service source is configured, you generally need to fill in the service source name in the corresponding field in the configuration of the component that uses this service source.",
"needsConfigLink": "Go to widget configuration",
"subtypeSelect": {
Expand Down Expand Up @@ -3782,6 +3785,9 @@
"botToken": "Telegram Bot Token",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Bot configuration JSON editor"
},
"botTokenInput": {
"placeholder": "Enter Telegram Bot Token"
},
Expand Down Expand Up @@ -3862,6 +3868,9 @@
"apiKey": "Discord API Key",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Bot configuration JSON editor"
},
"apiKeyInput": {
"placeholder": "Enter API Key"
},
Expand Down Expand Up @@ -3941,6 +3950,9 @@
"botToken": "iLink Bot token",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Bot configuration JSON editor"
},
"apiBaseUrlInput": {
"placeholder": "Leave blank for default https://ilinkai.weixin.qq.com"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/es-ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "Configuración de la fuente de servicio",
"jsonEditor": {
"aria-label": "Editor JSON de configuración de la fuente de servicio"
},
"needsConfigReminder": "Una vez configurada la fuente de servicio, generalmente debe completar el nombre de la fuente de servicio en el campo correspondiente en la configuración del componente que utiliza esta fuente de servicio.",
"needsConfigLink": "Ir a configuración de widgets",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "Token de Bot de Telegram",
"config": "Configuración"
},
"jsonEditor": {
"aria-label": "Editor JSON de configuración del bot"
},
"botTokenInput": {
"placeholder": "Introduce el Token de Bot de Telegram"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "Clave de API de Discord",
"config": "Configuración"
},
"jsonEditor": {
"aria-label": "Editor JSON de configuración del bot"
},
"apiKeyInput": {
"placeholder": "Introduce la clave de API de Discord"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "Token iLink Bot",
"config": "Configuración"
},
"jsonEditor": {
"aria-label": "Editor JSON de configuración del bot"
},
"apiBaseUrlInput": {
"placeholder": "En blanco para usar https://ilinkai.weixin.qq.com por defecto"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/fr-FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "Configuration des sources de services",
"jsonEditor": {
"aria-label": "Éditeur JSON de configuration de la source de service"
},
"needsConfigReminder": "Une fois la source de service configurée, vous devez généralement renseigner le nom de la source de service dans le champ correspondant dans la configuration du composant qui utilise cette source de service.",
"needsConfigLink": "Aller à la configuration des widgets",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "Jeton du bot Telegram",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Éditeur JSON de configuration du bot"
},
"botTokenInput": {
"placeholder": "Saisissez le jeton du bot Telegram"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "Clé API Discord",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Éditeur JSON de configuration du bot"
},
"apiKeyInput": {
"placeholder": "Saisir la clé API"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "Jeton iLink Bot",
"config": "Configuration"
},
"jsonEditor": {
"aria-label": "Éditeur JSON de configuration du bot"
},
"apiBaseUrlInput": {
"placeholder": "Laisser vide pour https://ilinkai.weixin.qq.com par défaut"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/hi-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "सेवा स्रोत विन्यास",
"jsonEditor": {
"aria-label": "सेवा स्रोत कॉन्फ़िगरेशन JSON संपादक"
},
"needsConfigReminder": "सेवा स्रोत कॉन्फ़िगर होने के बाद, आपको आम तौर पर इस सेवा स्रोत का उपयोग करने वाले घटक के कॉन्फ़िगरेशन में संबंधित फ़ील्ड में सेवा स्रोत का नाम भरना होगा।",
"needsConfigLink": "विजेट कॉन्फ़िगरेशन पर जाएं",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "टेलीग्राम बॉट टोकन",
"config": "कॉन्फ़िगरेशन"
},
"jsonEditor": {
"aria-label": "बॉट कॉन्फ़िगरेशन JSON संपादक"
},
"botTokenInput": {
"placeholder": "टेलीग्राम बॉट टोकन दर्ज करें"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "डिस्कॉर्ड API कुंजी",
"config": "कॉन्फ़िगरेशन"
},
"jsonEditor": {
"aria-label": "बॉट कॉन्फ़िगरेशन JSON संपादक"
},
"apiKeyInput": {
"placeholder": "API कुंजी दर्ज करें"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "iLink बॉट टोकन",
"config": "कॉन्फ़िगरेशन"
},
"jsonEditor": {
"aria-label": "बॉट कॉन्फ़िगरेशन JSON संपादक"
},
"apiBaseUrlInput": {
"placeholder": "डिफ़ॉल्ट https://ilinkai.weixin.qq.com के लिए खाली छोड़ें"
},
Expand Down
12 changes: 12 additions & 0 deletions src/public/locales/is-IS.json
Original file line number Diff line number Diff line change
Expand Up @@ -3659,6 +3659,9 @@
}
},
"configTitle": "Uppsetning þjónustugjafa",
"jsonEditor": {
"aria-label": "JSON-stillingaritill þjónustugjafa"
},
"needsConfigReminder": "Eftir að þjónustugjafinn hefur verið stilltur þarftu almennt að fylla út heiti þjónustugjafans í samsvarandi reit í uppsetningu íhlutans sem notar þennan þjónustugjafa.",
"needsConfigLink": "Farðu í stillingar græju",
"subtypeSelect": {
Expand Down Expand Up @@ -3787,6 +3790,9 @@
"botToken": "Telegram Bot Token",
"config": "Stillingar"
},
"jsonEditor": {
"aria-label": "JSON-stillingaritill bots"
},
"botTokenInput": {
"placeholder": "Sláðu inn Telegram Bot Token"
},
Expand Down Expand Up @@ -3867,6 +3873,9 @@
"apiKey": "Discord API lykill",
"config": "Stillingar"
},
"jsonEditor": {
"aria-label": "JSON-stillingaritill bots"
},
"apiKeyInput": {
"placeholder": "Sláðu inn API lykil"
},
Expand Down Expand Up @@ -3946,6 +3955,9 @@
"botToken": "iLink Bot-teikn",
"config": "Stillingar"
},
"jsonEditor": {
"aria-label": "JSON-stillingaritill bots"
},
"apiBaseUrlInput": {
"placeholder": "Skildu autt fyrir sjálfgefna https://ilinkai.weixin.qq.com"
},
Expand Down
Loading
Loading