🌐 refactor: Interpolate Localization Keys (#10650)

* fix: replace string concatenation of localization keys with interpolations and add keys for unlocalized string literals

* chore: update test for new localization key

---------

Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
Dustin Healy 2025-11-25 12:19:49 -08:00 committed by Danny Avila
parent 86951cc56d
commit bf859dc524
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
28 changed files with 130 additions and 85 deletions

View file

@ -160,9 +160,9 @@ const AdminSettings = () => {
</Button>
</OGDialogTrigger>
<OGDialogContent className="border-border-light bg-surface-primary text-text-primary lg:w-1/4">
<OGDialogTitle>{`${localize('com_ui_admin_settings')} - ${localize(
'com_ui_agents',
)}`}</OGDialogTitle>
<OGDialogTitle>
{localize('com_ui_admin_settings_section', { section: localize('com_ui_agents') })}
</OGDialogTitle>
<div className="p-2">
{/* Role selection dropdown */}
<div className="flex items-center gap-2">

View file

@ -315,9 +315,18 @@ export default function AgentConfig() {
{/* Agent Tools & Actions */}
<div className="mb-4">
<label className={labelClass}>
{`${toolsEnabled === true ? localize('com_ui_tools') : ''}
${toolsEnabled === true && actionsEnabled === true ? ' + ' : ''}
${actionsEnabled === true ? localize('com_assistants_actions') : ''}`}
{(() => {
if (toolsEnabled === true && actionsEnabled === true) {
return localize('com_ui_tools_and_actions');
}
if (toolsEnabled === true) {
return localize('com_ui_tools');
}
if (actionsEnabled === true) {
return localize('com_assistants_actions');
}
return '';
})()}
</label>
<div>
<div className="mb-1">

View file

@ -335,7 +335,8 @@ describe('AgentPanel - Update Agent Toast Messages', () => {
await waitFor(() => {
expect(mockShowToast).toHaveBeenCalledWith({
message: 'com_assistants_update_success Test Agent',
message: 'com_assistants_update_success_name',
status: undefined,
});
});
});
@ -355,7 +356,8 @@ describe('AgentPanel - Update Agent Toast Messages', () => {
await waitFor(() => {
expect(mockShowToast).toHaveBeenCalledWith({
message: 'com_assistants_update_success com_ui_agent',
message: 'com_assistants_update_success_name',
status: undefined,
});
});
});
@ -375,7 +377,8 @@ describe('AgentPanel - Update Agent Toast Messages', () => {
await waitFor(() => {
expect(mockShowToast).toHaveBeenCalledWith({
message: 'com_assistants_update_success Test Agent',
message: 'com_assistants_update_success_name',
status: undefined,
});
});
});

View file

@ -46,7 +46,7 @@ function getUpdateToastMessage(
if (noVersionChange) {
return localize('com_ui_no_changes');
}
return `${localize('com_assistants_update_success')} ${name ?? localize('com_ui_agent')}`;
return localize('com_assistants_update_success_name', { name: name ?? localize('com_ui_agent') });
}
/**
@ -504,20 +504,10 @@ export default function AgentPanel() {
setCurrentAgentId(undefined);
}}
disabled={agentQuery.isInitialLoading}
aria-label={
localize('com_ui_create') +
' ' +
localize('com_ui_new') +
' ' +
localize('com_ui_agent')
}
aria-label={localize('com_ui_create_new_agent')}
>
<Plus className="mr-1 h-4 w-4" />
{localize('com_ui_create') +
' ' +
localize('com_ui_new') +
' ' +
localize('com_ui_agent')}
{localize('com_ui_create_new_agent')}
</Button>
<Button
variant="submit"
@ -526,7 +516,7 @@ export default function AgentPanel() {
e.preventDefault();
handleSelectAgent();
}}
aria-label={localize('com_ui_select') + ' ' + localize('com_ui_agent')}
aria-label={localize('com_ui_select_agent')}
>
{localize('com_ui_select')}
</Button>

View file

@ -181,7 +181,7 @@ export default function AgentSelect({
};
}, [selectedAgentId, agents, onSelect]);
const createAgent = localize('com_ui_create') + ' ' + localize('com_ui_agent');
const createAgent = localize('com_ui_create_new_agent');
return (
<Controller

View file

@ -87,7 +87,7 @@ export default function DeleteButton({
<Button
size="sm"
variant="outline"
aria-label={localize('com_ui_delete') + ' ' + localize('com_ui_agent')}
aria-label={localize('com_ui_delete_agent')}
type="button"
>
<div className="flex w-full items-center justify-center gap-2 text-red-500">
@ -96,7 +96,7 @@ export default function DeleteButton({
</Button>
</OGDialogTrigger>
<OGDialogTemplate
title={localize('com_ui_delete') + ' ' + localize('com_ui_agent')}
title={localize('com_ui_delete_agent')}
className="max-w-[450px]"
main={
<>

View file

@ -36,7 +36,7 @@ export default function DuplicateAgent({ agent_id }: { agent_id: string }) {
<Button
size="sm"
variant="outline"
aria-label={localize('com_ui_duplicate') + ' ' + localize('com_ui_agent')}
aria-label={localize('com_ui_duplicate_agent')}
type="button"
onClick={handleDuplicate}
>