fix(addons): drop the repeated title from the Voice and Face pages

The add-on shell already titles the page, so the recognition pages showed the name twice: "Voice" above "Voices", "Face" above "Faces". Keep the supporting line and the model picker, as the Studio page does, and remove the unused title strings.

Assisted-by: Claude Code:claude-sonnet-5-5 node playwright
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
Ettore Di Giacinto committed 2026-10-21 10:08:32 +00:00
1 parent 4df9d3fb01
commit 479b402661
5 files changed
+5 -5

No files matched your search

+2 -1
View File
@@ -80,8 +80,9 @@ export function createFaceRecognition(ctx, api, identity) {
return (
<main className="page idn-page" data-testid="faces-page">
{/* The add-on shell already titles the page "Face", so this header
carries the supporting line and the model picker only. */}
<ui.PageHeader
title={t('faces.title')}
supporting={t('faces.lede')}
actions={!needModel ? (
<div className="idn-modelpick">
-1
View File
@@ -1,6 +1,5 @@
// Generated once from the host locale files; edit by hand from here on.
export default {
"faces.title": "Faces",
"faces.lede": "Find out whose face is in a photo, or whether two photos show the same person. Photos go only to the model running on this server.",
"tool.aria": "Recognition tool",
"tool.sameTab": "Same person?",
+1 -1
View File
@@ -64,7 +64,7 @@ test('recognition: the bundle has the face canvas, the face strings and no host
const js = readFileSync(join(dir, 'ui/face.js'), 'utf8')
assert.match(js, /biometrics-bbox/)
assert.doesNotMatch(js, /from ['"]react(-dom)?/)
assert.match(js, /faces\.title/)
assert.match(js, /faces\.lede/)
})
test('recognition: every translation key the sources read is in the Face bundle', async () => {
+2 -1
View File
@@ -79,8 +79,9 @@ export function createVoiceRecognition(ctx, api, identity) {
return (
<main className="page idn-page" data-testid="voices-page">
{/* The add-on shell already titles the page "Voice", so this header
carries the supporting line and the model picker only. */}
<ui.PageHeader
title={t('voices.title')}
supporting={t('voices.lede')}
actions={tab === 'speakers' && !needModel ? (
<div className="idn-modelpick">
-1
View File
@@ -12,7 +12,6 @@ export default {
"speech.generate": "Generate speech",
"speech.result": "Result",
"speech.noAccess": "Your account has no access to text-to-speech. The server will refuse the request.",
"voices.title": "Voices",
"voices.lede": "Recognise who is speaking, and keep voices that text-to-speech can use.",
"voices.tabs": "Voices sections",
"voices.tab.recognition": "Recognition",