Removed namespaces from messages (#23205)

This commit is contained in:
Erik Jan de Wit 2023-09-14 11:01:15 +02:00 committed by GitHub
parent 658c0ef19f
commit f4c8ded5f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
243 changed files with 982 additions and 1028 deletions

View file

@ -1,7 +1,7 @@
import ModalUtils from "../../../../util/ModalUtils"; import ModalUtils from "../../../../util/ModalUtils";
export default class MoveGroupModal extends ModalUtils { export default class MoveGroupModal extends ModalUtils {
private moveButton = "groups:moveHere-button"; private moveButton = "moveHere-button";
private title = ".pf-c-modal-box__title"; private title = ".pf-c-modal-box__title";
clickRow(groupName: string) { clickRow(groupName: string) {

View file

@ -43,7 +43,7 @@ export default class UserRegistration {
} }
export class GroupPickerDialog { export class GroupPickerDialog {
private addButton = "common:add-button"; private addButton = "add-button";
private title = ".pf-c-modal-box__title"; private title = ".pf-c-modal-box__title";
clickRow(groupName: string) { clickRow(groupName: string) {

View file

@ -63,7 +63,7 @@
"testConnection": "Test connection", "testConnection": "Test connection",
"name": "Name", "name": "Name",
"role": "Role", "role": "Role",
"description": "description", "description": "Description",
"type": "Type", "type": "Type",
"category": "Category", "category": "Category",
"priority": "Priority", "priority": "Priority",
@ -3273,6 +3273,12 @@
"clientScopesRolesScope": "If there is no role scope mapping defined, each user is permitted to use this client scope. If there are role scope mappings defined, the user must be a member of at least one of the roles.", "clientScopesRolesScope": "If there is no role scope mapping defined, each user is permitted to use this client scope. If there are role scope mappings defined, the user must be a member of at least one of the roles.",
"scopeNameHelp": "Name of the client scope. Must be unique in the realm. Name should not contain space characters as it is used as value of scope parameter", "scopeNameHelp": "Name of the client scope. Must be unique in the realm. Name should not contain space characters as it is used as value of scope parameter",
"scopeDescriptionHelp": "Description of the client scope", "scopeDescriptionHelp": "Description of the client scope",
"clientScopeTypes": {
"default": "Default",
"optional": "Optional",
"none": "None"
},
"realmNameTitle": "{{name}} realm",
"scopeTypeHelp": "Client scopes, which will be added as default scopes to each created client", "scopeTypeHelp": "Client scopes, which will be added as default scopes to each created client",
"clientDescriptionHelp": "Specifies description of the client. For example 'My Client for TimeSheets'. Supports keys for localized values as well. For example: ${my_client_description}", "clientDescriptionHelp": "Specifies description of the client. For example 'My Client for TimeSheets'. Supports keys for localized values as well. For example: ${my_client_description}",
"clientsClientTypeHelp": "'OpenID Connect' allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server.'SAML' enables web-based authentication and authorization scenarios including cross-domain single sign-on (SSO) and uses security tokens containing assertions to pass information.", "clientsClientTypeHelp": "'OpenID Connect' allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server.'SAML' enables web-based authentication and authorization scenarios including cross-domain single sign-on (SSO) and uses security tokens containing assertions to pass information.",

View file

@ -924,6 +924,7 @@
"titleUsers": "ユーザー", "titleUsers": "ユーザー",
"titleSessions": "セッション", "titleSessions": "セッション",
"authenticationAliasHelp": "この設定の名前を設定します。", "authenticationAliasHelp": "この設定の名前を設定します。",
"clientScopeTypes": { "default": "DEFAULT" },
"authenticationFlowTypeHelp": "どの種類のフォームかを設定します。", "authenticationFlowTypeHelp": "どの種類のフォームかを設定します。",
"scopeNameHelp": "クライアント・スコープの名前。レルム内でユニークでなければなりません。スコープ・パラメーターの値として使用されるため、名前には空白文字を含めないでください", "scopeNameHelp": "クライアント・スコープの名前。レルム内でユニークでなければなりません。スコープ・パラメーターの値として使用されるため、名前には空白文字を含めないでください",
"scopeDescriptionHelp": "クライアント・スコープの説明", "scopeDescriptionHelp": "クライアント・スコープの説明",

View file

@ -3246,6 +3246,8 @@
"orderChangeErrorUserFed": "由于{{error}},无法更改用户联盟供应商的优先顺序。", "orderChangeErrorUserFed": "由于{{error}},无法更改用户联盟供应商的优先顺序。",
"authenticationAliasHelp": "配置名称", "authenticationAliasHelp": "配置名称",
"authenticationFlowTypeHelp": "它是一种什么样的形式?", "authenticationFlowTypeHelp": "它是一种什么样的形式?",
"clientScopeTypes": { "default": "默认", "optional": "非必需", "none": "无" },
"realmNameTitle": "{{name}} 领域",
"authenticationCreateFlowHelp": "创建流程", "authenticationCreateFlowHelp": "创建流程",
"scopeNameHelp": "客户端作用域的名称。在领域中必须是唯一的。名称不应包含空格字符,因为它用作作用域参数的值。", "scopeNameHelp": "客户端作用域的名称。在领域中必须是唯一的。名称不应包含空格字符,因为它用作作用域参数的值。",
"scopeDescriptionHelp": "客户作用域说明", "scopeDescriptionHelp": "客户作用域说明",

View file

@ -137,7 +137,7 @@ export default function AuthenticationSection() {
<strong>{{ flow: selectedFlow ? selectedFlow.alias : "" }}</strong>. <strong>{{ flow: selectedFlow ? selectedFlow.alias : "" }}</strong>.
</Trans> </Trans>
), ),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -234,7 +234,7 @@ export default function AuthenticationSection() {
...(!data.builtIn && !data.usedBy ...(!data.builtIn && !data.usedBy
? [ ? [
{ {
title: t("common:delete"), title: t("delete"),
onClick: () => { onClick: () => {
setSelectedFlow(data); setSelectedFlow(data);
toggleDeleteDialog(); toggleDeleteDialog();
@ -258,7 +258,7 @@ export default function AuthenticationSection() {
}, },
{ {
name: "description", name: "description",
displayKey: "common:description", displayKey: "description",
}, },
]} ]}
emptyState={ emptyState={

View file

@ -58,7 +58,7 @@ export const BindFlowDialog = ({ flowAlias, onClose }: BindFlowDialogProps) => {
onClose={onClose} onClose={onClose}
actions={[ actions={[
<Button key="confirm" data-testid="save" type="submit" form="bind-form"> <Button key="confirm" data-testid="save" type="submit" form="bind-form">
{t("common:save")} {t("save")}
</Button>, </Button>,
<Button <Button
data-testid="cancel" data-testid="cancel"
@ -66,7 +66,7 @@ export const BindFlowDialog = ({ flowAlias, onClose }: BindFlowDialogProps) => {
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={onClose} onClick={onClose}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
isOpen isOpen

View file

@ -96,7 +96,7 @@ export const DuplicateFlowModal = ({
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={toggleDialog} onClick={toggleDialog}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
isOpen isOpen

View file

@ -61,7 +61,7 @@ export const EditFlowModal = ({ flow, toggleDialog }: EditFlowModalProps) => {
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={() => toggleDialog()} onClick={() => toggleDialog()}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
isOpen isOpen

View file

@ -81,7 +81,7 @@ export default function FlowDetails() {
const flows = await adminClient.authenticationManagement.getFlows(); const flows = await adminClient.authenticationManagement.getFlows();
const flow = flows.find((f) => f.id === id); const flow = flows.find((f) => f.id === id);
if (!flow) { if (!flow) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
const executions = const executions =
@ -206,7 +206,7 @@ export default function FlowDetails() {
<strong>{{ name: selectedExecution?.displayName }}</strong>. <strong>{{ name: selectedExecution?.displayName }}</strong>.
</Trans> </Trans>
), ),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -229,7 +229,7 @@ export default function FlowDetails() {
<strong>{{ flow: flow?.alias || "" }}</strong>. <strong>{{ flow: flow?.alias || "" }}</strong>.
</Trans> </Trans>
), ),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -275,7 +275,7 @@ export default function FlowDetails() {
key="delete" key="delete"
onClick={() => toggleDeleteFlow()} onClick={() => toggleDeleteFlow()}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: []), : []),
@ -377,7 +377,7 @@ export default function FlowDetails() {
onDragFinish={(order) => { onDragFinish={(order) => {
const withoutHeaderId = order.slice(1); const withoutHeaderId = order.slice(1);
setLiveText( setLiveText(
t("common:onDragFinish", { list: dragged?.displayName }), t("onDragFinish", { list: dragged?.displayName }),
); );
const change = executionList.getChange( const change = executionList.getChange(
dragged!, dragged!,
@ -387,9 +387,7 @@ export default function FlowDetails() {
}} }}
onDragStart={(id) => { onDragStart={(id) => {
const item = executionList.findExecution(id)!; const item = executionList.findExecution(id)!;
setLiveText( setLiveText(t("onDragStart", { item: item.displayName }));
t("common:onDragStart", { item: item.displayName }),
);
setDragged(item); setDragged(item);
if (!item.isCollapsed) { if (!item.isCollapsed) {
item.isCollapsed = true; item.isCollapsed = true;
@ -397,11 +395,9 @@ export default function FlowDetails() {
} }
}} }}
onDragMove={() => onDragMove={() =>
setLiveText( setLiveText(t("onDragMove", { item: dragged?.displayName }))
t("common:onDragMove", { item: dragged?.displayName }),
)
} }
onDragCancel={() => setLiveText(t("common:onDragCancel"))} onDragCancel={() => setLiveText(t("onDragCancel"))}
itemOrder={[ itemOrder={[
"header", "header",
...executionList.order().map((ex) => ex.id!), ...executionList.order().map((ex) => ex.id!),

View file

@ -135,12 +135,12 @@ export const RequiredActions = () => {
}, },
{ {
name: "enabled", name: "enabled",
displayKey: "common:enabled", displayKey: "enabled",
cellRenderer: (row) => ( cellRenderer: (row) => (
<Switch <Switch
id={`enable-${toKey(row.name)}`} id={`enable-${toKey(row.name)}`}
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={row.enabled} isChecked={row.enabled}
onChange={() => { onChange={() => {
updateAction(row.data, "enabled"); updateAction(row.data, "enabled");
@ -156,9 +156,9 @@ export const RequiredActions = () => {
cellRenderer: (row) => ( cellRenderer: (row) => (
<Switch <Switch
id={`default-${toKey(row.name)}`} id={`default-${toKey(row.name)}`}
label={t("common:on")} label={t("on")}
isDisabled={!row.enabled} isDisabled={!row.enabled}
labelOff={!row.enabled ? t("disabledOff") : t("common:off")} labelOff={!row.enabled ? t("disabledOff") : t("off")}
isChecked={row.defaultAction} isChecked={row.defaultAction}
onChange={() => { onChange={() => {
updateAction(row.data, "defaultAction"); updateAction(row.data, "defaultAction");

View file

@ -45,7 +45,7 @@ export const AddFlowDropdown = ({
); );
return ( return (
<Tooltip content={t("common:add")}> <Tooltip content={t("add")}>
<> <>
<Dropdown <Dropdown
isPlain isPlain
@ -53,7 +53,7 @@ export const AddFlowDropdown = ({
data-testid={`${execution.displayName}-edit-dropdown`} data-testid={`${execution.displayName}-edit-dropdown`}
isOpen={open} isOpen={open}
toggle={ toggle={
<DropdownToggle onToggle={setOpen} aria-label={t("common:add")}> <DropdownToggle onToggle={setOpen} aria-label={t("add")}>
<PlusIcon /> <PlusIcon />
</DropdownToggle> </DropdownToggle>
} }

View file

@ -45,11 +45,11 @@ export const EditFlow = ({ execution, onRowChange }: EditFlowProps) => {
return ( return (
<> <>
<Tooltip content={t("common:edit")}> <Tooltip content={t("edit")}>
<Button <Button
variant="plain" variant="plain"
data-testid={`${execution.id}-edit`} data-testid={`${execution.id}-edit`}
aria-label={t("common:edit")} aria-label={t("edit")}
onClick={toggle} onClick={toggle}
> >
<PencilAltIcon /> <PencilAltIcon />
@ -76,7 +76,7 @@ export const EditFlow = ({ execution, onRowChange }: EditFlowProps) => {
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={toggle} onClick={toggle}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
isOpen isOpen
@ -87,9 +87,9 @@ export const EditFlow = ({ execution, onRowChange }: EditFlowProps) => {
isHorizontal isHorizontal
> >
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="name" fieldId="name"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.displayName errors.displayName
? ValidatedOptions.error ? ValidatedOptions.error
@ -113,7 +113,7 @@ export const EditFlow = ({ execution, onRowChange }: EditFlowProps) => {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
fieldId="kc-description" fieldId="kc-description"
labelIcon={ labelIcon={
<HelpItem <HelpItem
@ -139,7 +139,7 @@ export const EditFlow = ({ execution, onRowChange }: EditFlowProps) => {
{...register("description", { {...register("description", {
maxLength: { maxLength: {
value: 255, value: 255,
message: t("common:maxLength", { length: 255 }), message: t("maxLength", { length: 255 }),
}, },
})} })}
/> />

View file

@ -113,10 +113,10 @@ export const ExecutionConfigModal = ({
return ( return (
<> <>
<Tooltip content={t("common:settings")}> <Tooltip content={t("settings")}>
<Button <Button
variant="plain" variant="plain"
aria-label={t("common:settings")} aria-label={t("settings")}
onClick={() => setShow(true)} onClick={() => setShow(true)}
> >
<CogIcon /> <CogIcon />
@ -133,7 +133,7 @@ export const ExecutionConfigModal = ({
<FormGroup <FormGroup
label={t("alias")} label={t("alias")}
fieldId="alias" fieldId="alias"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.alias ? ValidatedOptions.error : ValidatedOptions.default errors.alias ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -165,7 +165,7 @@ export const ExecutionConfigModal = ({
</FormProvider> </FormProvider>
<ActionGroup> <ActionGroup>
<Button data-testid="save" variant="primary" type="submit"> <Button data-testid="save" variant="primary" type="submit">
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="cancel" data-testid="cancel"
@ -174,7 +174,7 @@ export const ExecutionConfigModal = ({
setShow(false); setShow(false);
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
{config && ( {config && (
<Button <Button
@ -189,7 +189,7 @@ export const ExecutionConfigModal = ({
setShow(false); setShow(false);
}} }}
> >
{t("common:clear")} <TrashIcon /> {t("clear")} <TrashIcon />
</Button> </Button>
)} )}
</ActionGroup> </ActionGroup>

View file

@ -16,7 +16,7 @@ export const FlowHeader = () => {
<DataListItemRow> <DataListItemRow>
<DataListDragButton <DataListDragButton
className="keycloak__authentication__header-drag-button" className="keycloak__authentication__header-drag-button"
aria-label={t("common:disabled")} aria-label={t("disabled")}
/> />
<DataListItemCells <DataListItemCells
className="keycloak__authentication__header" className="keycloak__authentication__header"

View file

@ -65,7 +65,7 @@ export const FlowRow = ({
aria-labelledby={execution.id} aria-labelledby={execution.id}
> >
<DataListControl> <DataListControl>
<DataListDragButton aria-label={t("common-help:dragHelp")} /> <DataListDragButton aria-label={t("dragHelp")} />
</DataListControl> </DataListControl>
{hasSubList && ( {hasSubList && (
<DataListToggle <DataListToggle
@ -116,11 +116,11 @@ export const FlowRow = ({
</> </>
)} )}
{!builtIn && ( {!builtIn && (
<Tooltip content={t("common:delete")}> <Tooltip content={t("delete")}>
<Button <Button
variant="plain" variant="plain"
data-testid={`${execution.displayName}-delete`} data-testid={`${execution.displayName}-delete`}
aria-label={t("common:delete")} aria-label={t("delete")}
onClick={() => onDelete(execution)} onClick={() => onDelete(execution)}
> >
<TrashIcon /> <TrashIcon />

View file

@ -75,7 +75,7 @@ const UsedByModal = ({ id, isSpecificClient, onClose }: UsedByModalProps) => {
key="cancel" key="cancel"
onClick={onClose} onClick={onClose}
> >
{t("common:close")} {t("close")}
</Button>, </Button>,
]} ]}
> >
@ -83,7 +83,7 @@ const UsedByModal = ({ id, isSpecificClient, onClose }: UsedByModalProps) => {
loader={loader} loader={loader}
isPaginated isPaginated
ariaLabelKey="usedBy" ariaLabelKey="usedBy"
searchPlaceholderKey="common:search" searchPlaceholderKey="search"
columns={[ columns={[
{ {
name: "name", name: "name",

View file

@ -114,7 +114,7 @@ export const AddStepModal = ({ name, type, onSelect }: AddStepModalProps) => {
key="add" key="add"
onClick={() => onSelect(value)} onClick={() => onSelect(value)}
> >
{t("common:add")} {t("add")}
</Button>, </Button>,
<Button <Button
data-testid="cancel" data-testid="cancel"
@ -125,7 +125,7 @@ export const AddStepModal = ({ name, type, onSelect }: AddStepModalProps) => {
onSelect(); onSelect();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >
@ -141,7 +141,7 @@ export const AddStepModal = ({ name, type, onSelect }: AddStepModalProps) => {
setMax(max); setMax(max);
}} }}
inputGroupName="search" inputGroupName="search"
inputGroupPlaceholder={t("common:search")} inputGroupPlaceholder={t("search")}
inputGroupOnEnter={setSearch} inputGroupOnEnter={setSearch}
> >
<AuthenticationProviderList <AuthenticationProviderList

View file

@ -77,7 +77,7 @@ export const AddSubFlowModal = ({
type="submit" type="submit"
form="sub-flow-form" form="sub-flow-form"
> >
{t("common:add")} {t("add")}
</Button>, </Button>,
<Button <Button
key="cancel" key="cancel"
@ -85,16 +85,16 @@ export const AddSubFlowModal = ({
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={onCancel} onClick={onCancel}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
isOpen isOpen
> >
<Form id="sub-flow-form" onSubmit={handleSubmit(onConfirm)} isHorizontal> <Form id="sub-flow-form" onSubmit={handleSubmit(onConfirm)} isHorizontal>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="name" fieldId="name"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -113,7 +113,7 @@ export const AddSubFlowModal = ({
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
fieldId="description" fieldId="description"
labelIcon={ labelIcon={
<HelpItem <HelpItem

View file

@ -65,7 +65,7 @@ export default function CreateFlow() {
<FlowType /> <FlowType />
<ActionGroup> <ActionGroup>
<Button data-testid="create" type="submit"> <Button data-testid="create" type="submit">
{t("common:create")} {t("create")}
</Button> </Button>
<Button <Button
data-testid="cancel" data-testid="cancel"
@ -74,7 +74,7 @@ export default function CreateFlow() {
<Link {...props} to={toAuthentication({ realm })}></Link> <Link {...props} to={toAuthentication({ realm })}></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -17,9 +17,9 @@ export const NameDescription = () => {
return ( return (
<> <>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="kc-name" fieldId="kc-name"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.alias ? ValidatedOptions.error : ValidatedOptions.default errors.alias ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -38,7 +38,7 @@ export const NameDescription = () => {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
fieldId="kc-description" fieldId="kc-description"
labelIcon={ labelIcon={
<HelpItem <HelpItem
@ -62,7 +62,7 @@ export const NameDescription = () => {
{...register("description", { {...register("description", {
maxLength: { maxLength: {
value: 255, value: 255,
message: t("common:maxLength", { length: 255 }), message: t("maxLength", { length: 255 }),
}, },
})} })}
/> />

View file

@ -154,23 +154,23 @@ export const CibaPolicy = ({ realm, realmUpdated }: CibaPolicyProps) => {
{...register("attributes.cibaExpiresIn", { {...register("attributes.cibaExpiresIn", {
min: { min: {
value: CIBA_EXPIRES_IN_MIN, value: CIBA_EXPIRES_IN_MIN,
message: t("common:greaterThan", { message: t("greaterThan", {
value: CIBA_EXPIRES_IN_MIN, value: CIBA_EXPIRES_IN_MIN,
}), }),
}, },
max: { max: {
value: CIBA_EXPIRES_IN_MAX, value: CIBA_EXPIRES_IN_MAX,
message: t("common:lessThan", { value: CIBA_EXPIRES_IN_MAX }), message: t("lessThan", { value: CIBA_EXPIRES_IN_MAX }),
}, },
required: { required: {
value: true, value: true,
message: t("common:required"), message: t("required"),
}, },
})} })}
validated={errors.attributes?.cibaExpiresIn ? "error" : "default"} validated={errors.attributes?.cibaExpiresIn ? "error" : "default"}
/> />
<InputGroupText variant="plain"> <InputGroupText variant="plain">
{t("common:times:seconds")} {t("times:seconds")}
</InputGroupText> </InputGroupText>
</InputGroup> </InputGroup>
</FormGroup> </FormGroup>
@ -196,23 +196,23 @@ export const CibaPolicy = ({ realm, realmUpdated }: CibaPolicyProps) => {
{...register("attributes.cibaInterval", { {...register("attributes.cibaInterval", {
min: { min: {
value: CIBA_INTERVAL_MIN, value: CIBA_INTERVAL_MIN,
message: t("common:greaterThan", { message: t("greaterThan", {
value: CIBA_INTERVAL_MIN, value: CIBA_INTERVAL_MIN,
}), }),
}, },
max: { max: {
value: CIBA_INTERVAL_MAX, value: CIBA_INTERVAL_MAX,
message: t("common:lessThan", { value: CIBA_INTERVAL_MAX }), message: t("lessThan", { value: CIBA_INTERVAL_MAX }),
}, },
required: { required: {
value: true, value: true,
message: t("common:required"), message: t("required"),
}, },
})} })}
validated={errors.attributes?.cibaInterval ? "error" : "default"} validated={errors.attributes?.cibaInterval ? "error" : "default"}
/> />
<InputGroupText variant="plain"> <InputGroupText variant="plain">
{t("common:times:seconds")} {t("times:seconds")}
</InputGroupText> </InputGroupText>
</InputGroup> </InputGroup>
</FormGroup> </FormGroup>
@ -247,14 +247,14 @@ export const CibaPolicy = ({ realm, realmUpdated }: CibaPolicyProps) => {
type="submit" type="submit"
isDisabled={!isValid || !isDirty} isDisabled={!isValid || !isDirty}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="reload" data-testid="reload"
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={() => setupForm({ ...realm })} onClick={() => setupForm({ ...realm })}
> >
{t("common:reload")} {t("reload")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -360,8 +360,8 @@ export const OtpPolicy = ({ realm, realmUpdated }: OtpPolicyProps) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="otpPolicyCodeReusable" id="otpPolicyCodeReusable"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
/> />
@ -377,14 +377,14 @@ export const OtpPolicy = ({ realm, realmUpdated }: OtpPolicyProps) => {
type="submit" type="submit"
isDisabled={!isValid || !isDirty} isDisabled={!isValid || !isDirty}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="reload" data-testid="reload"
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={() => reset({ ...realm })} onClick={() => reset({ ...realm })}
> >
{t("common:reload")} {t("reload")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -164,14 +164,14 @@ export const PasswordPolicy = ({
type="submit" type="submit"
isDisabled={!isDirty} isDisabled={!isDirty}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="reload" data-testid="reload"
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={() => setupForm(realm)} onClick={() => setupForm(realm)}
> >
{t("common:reload")} {t("reload")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -22,7 +22,7 @@ export const Policies = () => {
async () => { async () => {
const realm = await adminClient.realms.findOne({ realm: realmName }); const realm = await adminClient.realms.findOne({ realm: realmName });
if (!realm) { if (!realm) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return realm; return realm;
}, },

View file

@ -38,7 +38,7 @@ export const PolicyRow = ({
label={displayName} label={displayName}
fieldId={id!} fieldId={id!}
isRequired isRequired
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors[id!] ? ValidatedOptions.error : ValidatedOptions.default errors[id!] ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -93,8 +93,8 @@ export const PolicyRow = ({
{!configType && ( {!configType && (
<Switch <Switch
id={id!} id={id!}
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked isChecked
isDisabled isDisabled
aria-label={displayName} aria-label={displayName}
@ -107,7 +107,7 @@ export const PolicyRow = ({
variant="link" variant="link"
className="keycloak__policies_authentication__minus-icon" className="keycloak__policies_authentication__minus-icon"
onClick={() => onRemove(id)} onClick={() => onRemove(id)}
aria-label={t("common:remove")} aria-label={t("remove")}
> >
<MinusCircleIcon /> <MinusCircleIcon />
</Button> </Button>

View file

@ -212,7 +212,7 @@ export const WebauthnPolicy = ({
<FormGroup <FormGroup
label={t("webAuthnPolicyRpEntityName")} label={t("webAuthnPolicyRpEntityName")}
fieldId="webAuthnPolicyRpEntityName" fieldId="webAuthnPolicyRpEntityName"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.webAuthnPolicyRpEntityName ? "error" : "default"} validated={errors.webAuthnPolicyRpEntityName ? "error" : "default"}
isRequired isRequired
labelIcon={ labelIcon={
@ -324,8 +324,8 @@ export const WebauthnPolicy = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="webAuthnPolicyAvoidSameAuthenticatorRegister" id="webAuthnPolicyAvoidSameAuthenticatorRegister"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("webAuthnPolicyAvoidSameAuthenticatorRegister")} aria-label={t("webAuthnPolicyAvoidSameAuthenticatorRegister")}
@ -358,14 +358,14 @@ export const WebauthnPolicy = ({
type="submit" type="submit"
isDisabled={!isDirty} isDisabled={!isDirty}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="reload" data-testid="reload"
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={() => setupForm(realm)} onClick={() => setupForm(realm)}
> >
{t("common:reload")} {t("reload")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -154,7 +154,7 @@ export default function ClientScopesSection() {
name: selectedScopes[0]?.name, name: selectedScopes[0]?.name,
}), }),
messageKey: "deleteConfirmClientScopes", messageKey: "deleteConfirmClientScopes",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -258,7 +258,7 @@ export default function ClientScopesSection() {
setKebabOpen(false); setKebabOpen(false);
}} }}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
]} ]}
/> />
@ -267,7 +267,7 @@ export default function ClientScopesSection() {
} }
actions={[ actions={[
{ {
title: t("common:delete"), title: t("delete"),
onRowClick: (clientScope) => { onRowClick: (clientScope) => {
setSelectedScopes([clientScope]); setSelectedScopes([clientScope]);
toggleDeleteDialog(); toggleDeleteDialog();

View file

@ -34,7 +34,7 @@ export default function CreateClientScope() {
}); });
if (!scope) { if (!scope) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
await changeScope({ ...clientScope, id: scope.id }, clientScope.type); await changeScope({ ...clientScope, id: scope.id }, clientScope.type);

View file

@ -63,7 +63,7 @@ export default function EditClientScope() {
const clientScope = await adminClient.clientScopes.findOne({ id }); const clientScope = await adminClient.clientScopes.findOne({ id });
if (!clientScope) { if (!clientScope) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return { return {
@ -132,7 +132,7 @@ export default function EditClientScope() {
name: clientScope?.name, name: clientScope?.name,
}), }),
messageKey: "deleteConfirmClientScopes", messageKey: "deleteConfirmClientScopes",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -195,9 +195,9 @@ export default function EditClientScope() {
mappers as ProtocolMapperRepresentation[], mappers as ProtocolMapperRepresentation[],
); );
refresh(); refresh();
addAlert(t("common:mappingCreatedSuccess"), AlertVariant.success); addAlert(t("mappingCreatedSuccess"), AlertVariant.success);
} catch (error) { } catch (error) {
addError("common:mappingCreatedError", error); addError("mappingCreatedError", error);
} }
} }
}; };
@ -208,10 +208,10 @@ export default function EditClientScope() {
id: clientScope!.id!, id: clientScope!.id!,
mapperId: mapper.id!, mapperId: mapper.id!,
}); });
addAlert(t("common:mappingDeletedSuccess"), AlertVariant.success); addAlert(t("mappingDeletedSuccess"), AlertVariant.success);
refresh(); refresh();
} catch (error) { } catch (error) {
addError("common:mappingDeletedError", error); addError("mappingDeletedError", error);
} }
return true; return true;
}; };
@ -227,7 +227,7 @@ export default function EditClientScope() {
titleKey={clientScope.name!} titleKey={clientScope.name!}
dropdownItems={[ dropdownItems={[
<DropdownItem key="delete" onClick={toggleDeleteDialog}> <DropdownItem key="delete" onClick={toggleDeleteDialog}>
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
]} ]}
badges={[{ text: clientScope.protocol }]} badges={[{ text: clientScope.protocol }]}
@ -239,7 +239,7 @@ export default function EditClientScope() {
<Tab <Tab
id="settings" id="settings"
data-testid="settings" data-testid="settings"
title={<TabTitleText>{t("common:settings")}</TabTitleText>} title={<TabTitleText>{t("settings")}</TabTitleText>}
{...settingsTab} {...settingsTab}
> >
<PageSection variant="light"> <PageSection variant="light">
@ -249,7 +249,7 @@ export default function EditClientScope() {
<Tab <Tab
id="mappers" id="mappers"
data-testid="mappers" data-testid="mappers"
title={<TabTitleText>{t("common:mappers")}</TabTitleText>} title={<TabTitleText>{t("mappers")}</TabTitleText>}
{...mappersTab} {...mappersTab}
> >
<MapperList <MapperList

View file

@ -82,7 +82,7 @@ export const AddMapperDialog = (props: AddMapperDialogProps) => {
const isBuiltIn = !!props.filter; const isBuiltIn = !!props.filter;
const header = [t("common:name"), t("common:description")]; const header = [t("name"), t("description")];
return ( return (
<Modal <Modal
@ -122,7 +122,7 @@ export const AddMapperDialog = (props: AddMapperDialogProps) => {
props.toggleDialog(); props.toggleDialog();
}} }}
> >
{t("common:add")} {t("add")}
</Button>, </Button>,
<Button <Button
id="modal-cancel" id="modal-cancel"
@ -133,7 +133,7 @@ export const AddMapperDialog = (props: AddMapperDialogProps) => {
props.toggleDialog(); props.toggleDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
] ]
: [] : []
@ -188,20 +188,20 @@ export const AddMapperDialog = (props: AddMapperDialogProps) => {
onSelect={setSelectedRows} onSelect={setSelectedRows}
canSelectAll canSelectAll
ariaLabelKey="addPredefinedMappers" ariaLabelKey="addPredefinedMappers"
searchPlaceholderKey="common:searchForMapper" searchPlaceholderKey="searchForMapper"
columns={[ columns={[
{ {
name: "id", name: "id",
displayKey: "common:name", displayKey: "name",
}, },
{ {
name: "description", name: "description",
displayKey: "common:description", displayKey: "description",
}, },
]} ]}
emptyState={ emptyState={
<ListEmptyState <ListEmptyState
message={t("common:emptyMappers")} message={t("emptyMappers")}
instructions={t("emptyBuiltInMappersInstructions")} instructions={t("emptyBuiltInMappersInstructions")}
/> />
} }

View file

@ -106,7 +106,7 @@ export const MapperList = ({
key={key} key={key}
loader={loader} loader={loader}
ariaLabelKey="clientScopeList" ariaLabelKey="clientScopeList"
searchPlaceholderKey="common:searchForMapper" searchPlaceholderKey="searchForMapper"
toolbarItem={ toolbarItem={
<Dropdown <Dropdown
onSelect={() => setMapperAction(false)} onSelect={() => setMapperAction(false)}
@ -117,7 +117,7 @@ export const MapperList = ({
onToggle={() => setMapperAction(!mapperAction)} onToggle={() => setMapperAction(!mapperAction)}
toggleIndicator={CaretDownIcon} toggleIndicator={CaretDownIcon}
> >
{t("common:addMapper")} {t("addMapper")}
</DropdownToggle> </DropdownToggle>
} }
isOpen={mapperAction} isOpen={mapperAction}
@ -139,7 +139,7 @@ export const MapperList = ({
} }
actions={[ actions={[
{ {
title: t("common:delete"), title: t("delete"),
onRowClick: onDelete, onRowClick: onDelete,
} as Action<Row>, } as Action<Row>,
]} ]}
@ -160,11 +160,11 @@ export const MapperList = ({
]} ]}
emptyState={ emptyState={
<ListEmptyState <ListEmptyState
message={t("common:emptyMappers")} message={t("emptyMappers")}
instructions={t("common:emptyMappersInstructions")} instructions={t("emptyMappersInstructions")}
secondaryActions={[ secondaryActions={[
{ {
text: t("common:emptyPrimaryAction"), text: t("emptyPrimaryAction"),
onClick: () => toggleAddMapperDialog(true), onClick: () => toggleAddMapperDialog(true),
}, },
{ {

View file

@ -78,7 +78,7 @@ export default function MappingDetails() {
}); });
} }
if (!data) { if (!data) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
const mapperTypes = serverInfo.protocolMapperTypes![data!.protocol!]; const mapperTypes = serverInfo.protocolMapperTypes![data!.protocol!];
@ -99,7 +99,7 @@ export default function MappingDetails() {
? await adminClient.clientScopes.findOne({ id }) ? await adminClient.clientScopes.findOne({ id })
: await adminClient.clients.findOne({ id }); : await adminClient.clients.findOne({ id });
if (!model) { if (!model) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
const protocolMappers = const protocolMappers =
serverInfo.protocolMapperTypes![model.protocol!]; serverInfo.protocolMapperTypes![model.protocol!];
@ -107,7 +107,7 @@ export default function MappingDetails() {
(mapper) => mapper.id === mapperId, (mapper) => mapper.id === mapperId,
); );
if (!mapping) { if (!mapping) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return { return {
mapping, mapping,
@ -129,9 +129,9 @@ export default function MappingDetails() {
); );
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: "common:deleteMappingTitle", titleKey: "deleteMappingTitle",
messageKey: "common:deleteMappingConfirm", messageKey: "deleteMappingConfirm",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -146,10 +146,10 @@ export default function MappingDetails() {
mapperId, mapperId,
}); });
} }
addAlert(t("common:mappingDeletedSuccess"), AlertVariant.success); addAlert(t("mappingDeletedSuccess"), AlertVariant.success);
navigate(toDetails()); navigate(toDetails());
} catch (error) { } catch (error) {
addError("common:mappingDeletedError", error); addError("mappingDeletedError", error);
} }
}, },
}); });
@ -173,9 +173,9 @@ export default function MappingDetails() {
? await adminClient.clientScopes.addProtocolMapper({ id }, mapping) ? await adminClient.clientScopes.addProtocolMapper({ id }, mapping)
: await adminClient.clients.addProtocolMapper({ id }, mapping); : await adminClient.clients.addProtocolMapper({ id }, mapping);
} }
addAlert(t(`common:mapping${key}Success`), AlertVariant.success); addAlert(t(`mapping${key}Success`), AlertVariant.success);
} catch (error) { } catch (error) {
addError(`common:mapping${key}Error`, error); addError(`mapping${key}Error`, error);
} }
}; };
@ -183,7 +183,7 @@ export default function MappingDetails() {
<> <>
<DeleteConfirm /> <DeleteConfirm />
<ViewHeader <ViewHeader
titleKey={isUpdating ? mapping?.name! : t("common:addMapper")} titleKey={isUpdating ? mapping?.name! : t("addMapper")}
subKey={isUpdating ? mapperId : "addMapperExplain"} subKey={isUpdating ? mapperId : "addMapperExplain"}
dropdownItems={ dropdownItems={
isUpdating isUpdating
@ -193,7 +193,7 @@ export default function MappingDetails() {
value="delete" value="delete"
onClick={toggleDeleteDialog} onClick={toggleDeleteDialog}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -205,7 +205,7 @@ export default function MappingDetails() {
onSubmit={handleSubmit(save)} onSubmit={handleSubmit(save)}
role="manage-clients" role="manage-clients"
> >
<FormGroup label={t("common:mapperType")} fieldId="mapperType"> <FormGroup label={t("mapperType")} fieldId="mapperType">
<KeycloakTextInput <KeycloakTextInput
type="text" type="text"
id="mapperType" id="mapperType"
@ -215,7 +215,7 @@ export default function MappingDetails() {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
labelIcon={ labelIcon={
<HelpItem helpText={t("mapperName")} fieldLabelId="name" /> <HelpItem helpText={t("mapperName")} fieldLabelId="name" />
} }
@ -224,7 +224,7 @@ export default function MappingDetails() {
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
> >
<KeycloakTextInput <KeycloakTextInput
id="name" id="name"
@ -243,13 +243,13 @@ export default function MappingDetails() {
</FormProvider> </FormProvider>
<ActionGroup> <ActionGroup>
<Button variant="primary" type="submit"> <Button variant="primary" type="submit">
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
component={(props) => <Link {...props} to={toDetails()} />} component={(props) => <Link {...props} to={toDetails()} />}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -88,7 +88,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
isHorizontal isHorizontal
> >
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
labelIcon={ labelIcon={
<HelpItem helpText={t("scopeNameHelp")} fieldLabelId="name" /> <HelpItem helpText={t("scopeNameHelp")} fieldLabelId="name" />
} }
@ -96,7 +96,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
isRequired isRequired
> >
<KeycloakTextInput <KeycloakTextInput
@ -141,7 +141,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
</FormProvider> </FormProvider>
)} )}
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
labelIcon={ labelIcon={
<HelpItem <HelpItem
helpText={t("scopeDescriptionHelp")} helpText={t("scopeDescriptionHelp")}
@ -152,7 +152,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
validated={ validated={
errors.description ? ValidatedOptions.error : ValidatedOptions.default errors.description ? ValidatedOptions.error : ValidatedOptions.default
} }
helperTextInvalid={t("common:maxLength", { length: 255 })} helperTextInvalid={t("maxLength", { length: 255 })}
> >
<KeycloakTextInput <KeycloakTextInput
id="kc-description" id="kc-description"
@ -253,8 +253,8 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="kc-display-on-consent-screen" id="kc-display-on-consent-screen"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
/> />
@ -302,8 +302,8 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="kc-include-in-token-scope" id="kc-include-in-token-scope"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
/> />
@ -340,7 +340,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
type="submit" type="submit"
isDisabled={!isDirty || !isValid} isDisabled={!isDirty || !isValid}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
@ -348,7 +348,7 @@ export const ScopeForm = ({ clientScope, save }: ScopeFormProps) => {
<Link {...props} to={toClientScopes({ realm })}></Link> <Link {...props} to={toClientScopes({ realm })}></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -111,8 +111,8 @@ export const SearchToolbar = ({
isOpen={open} isOpen={open}
selections={[ selections={[
type === AllClientScopes.none type === AllClientScopes.none
? t("common:allTypes") ? t("allTypes")
: t(`common:clientScope.${type}`), : t(`clientScopeTypes.${type}`),
]} ]}
onSelect={(_, value) => { onSelect={(_, value) => {
onType(value as AllClientScopes); onType(value as AllClientScopes);
@ -120,7 +120,7 @@ export const SearchToolbar = ({
}} }}
> >
<SelectOption value={AllClientScopes.none}> <SelectOption value={AllClientScopes.none}>
{t("common:allTypes")} {t("allTypes")}
</SelectOption> </SelectOption>
<>{clientScopeTypesSelectOptions(t)}</> <>{clientScopeTypesSelectOptions(t)}</>
</Select> </Select>

View file

@ -14,7 +14,7 @@ const MappingDetails = lazy(() => import("../details/MappingDetails"));
export const MapperRoute: AppRouteObject = { export const MapperRoute: AppRouteObject = {
path: "/:realm/client-scopes/:id/mappers/:mapperId", path: "/:realm/client-scopes/:id/mappers/:mapperId",
element: <MappingDetails />, element: <MappingDetails />,
breadcrumb: (t) => t("common:mappingDetails"), breadcrumb: (t) => t("mappingDetails"),
handle: { handle: {
access: "view-clients", access: "view-clients",
}, },

View file

@ -17,23 +17,23 @@ export const ClientDescription = ({
<FormAccess role="manage-clients" fineGrainedAccess={configure} unWrap> <FormAccess role="manage-clients" fineGrainedAccess={configure} unWrap>
<TextControl <TextControl
name="clientId" name="clientId"
label={t("common:clientId")} label={t("clientId")}
labelIcon={t("clientIdHelp")} labelIcon={t("clientIdHelp")}
rules={{ required: { value: true, message: t("common:required") } }} rules={{ required: { value: true, message: t("required") } }}
/> />
<TextControl <TextControl
name="name" name="name"
label={t("common:name")} label={t("name")}
labelIcon={t("clientNameHelp")} labelIcon={t("clientNameHelp")}
/> />
<TextAreaControl <TextAreaControl
name="description" name="description"
label={t("common:description")} label={t("description")}
labelIcon={t("clientDescriptionHelp")} labelIcon={t("clientDescriptionHelp")}
rules={{ rules={{
maxLength: { maxLength: {
value: 255, value: 255,
message: t("common:maxLength", { length: 255 }), message: t("maxLength", { length: 255 }),
}, },
}} }}
/> />

View file

@ -96,7 +96,7 @@ const ClientDetailHeader = ({
const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({ const [toggleDisableDialog, DisableConfirm] = useConfirmDialog({
titleKey: "disableConfirmTitle", titleKey: "disableConfirmTitle",
messageKey: "disableConfirm", messageKey: "disableConfirm",
continueButtonLabel: "common:disable", continueButtonLabel: "disable",
onConfirm: () => { onConfirm: () => {
onChange(!value); onChange(!value);
save(); save();
@ -136,7 +136,7 @@ const ClientDetailHeader = ({
{t("downloadAdapterConfig")} {t("downloadAdapterConfig")}
</DropdownItem>, </DropdownItem>,
<DropdownItem key="export" onClick={() => exportClient(client)}> <DropdownItem key="export" onClick={() => exportClient(client)}>
{t("common:export")} {t("export")}
</DropdownItem>, </DropdownItem>,
...(!isRealmClient(client) && isManager ...(!isRealmClient(client) && isManager
? [ ? [
@ -146,7 +146,7 @@ const ClientDetailHeader = ({
key="delete" key="delete"
onClick={toggleDeleteDialog} onClick={toggleDeleteDialog}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: []), : []),
@ -275,7 +275,7 @@ export default function ClientDetails() {
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: "clientDeleteConfirmTitle", titleKey: "clientDeleteConfirmTitle",
messageKey: "clientDeleteConfirm", messageKey: "clientDeleteConfirm",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -306,7 +306,7 @@ export default function ClientDetails() {
() => adminClient.clients.findOne({ id: clientId }), () => adminClient.clients.findOne({ id: clientId }),
(fetchedClient) => { (fetchedClient) => {
if (!fetchedClient) { if (!fetchedClient) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
setClient(cloneDeep(fetchedClient)); setClient(cloneDeep(fetchedClient));
setupForm(fetchedClient); setupForm(fetchedClient);
@ -372,8 +372,8 @@ export default function ClientDetails() {
return ( return (
<> <>
<ConfirmDialogModal <ConfirmDialogModal
continueButtonLabel="common:yes" continueButtonLabel="yes"
cancelButtonLabel="common:no" cancelButtonLabel="no"
titleKey={t("changeAuthenticatorConfirmTitle", { titleKey={t("changeAuthenticatorConfirmTitle", {
clientAuthenticatorType: clientAuthenticatorType, clientAuthenticatorType: clientAuthenticatorType,
})} })}
@ -422,7 +422,7 @@ export default function ClientDetails() {
<Tab <Tab
id="settings" id="settings"
data-testid="clientSettingsTab" data-testid="clientSettingsTab"
title={<TabTitleText>{t("common:settings")}</TabTitleText>} title={<TabTitleText>{t("settings")}</TabTitleText>}
{...settingsTab} {...settingsTab}
> >
<ClientSettings <ClientSettings
@ -581,9 +581,7 @@ export default function ClientDetails() {
<Tab <Tab
id="permissions" id="permissions"
data-testid="authorizationPermissions" data-testid="authorizationPermissions"
title={ title={<TabTitleText>{t("permissions")}</TabTitleText>}
<TabTitleText>{t("common:permissions")}</TabTitleText>
}
{...authorizationPermissionsTab} {...authorizationPermissionsTab}
> >
<AuthorizationPermissions clientId={clientId} /> <AuthorizationPermissions clientId={clientId} />
@ -599,7 +597,7 @@ export default function ClientDetails() {
<Tab <Tab
id="export" id="export"
data-testid="authorizationExport" data-testid="authorizationExport"
title={<TabTitleText>{t("common:export")}</TabTitleText>} title={<TabTitleText>{t("export")}</TabTitleText>}
{...authorizationExportTab} {...authorizationExportTab}
> >
<AuthorizationExport /> <AuthorizationExport />
@ -630,7 +628,7 @@ export default function ClientDetails() {
<Tab <Tab
id="permissions" id="permissions"
data-testid="permissionsTab" data-testid="permissionsTab"
title={<TabTitleText>{t("common:permissions")}</TabTitleText>} title={<TabTitleText>{t("permissions")}</TabTitleText>}
{...permissionsTab} {...permissionsTab}
> >
<PermissionsTab id={client.id!} type="clients" /> <PermissionsTab id={client.id!} type="clients" />

View file

@ -52,7 +52,7 @@ const ClientDetailLink = (client: ClientRepresentation) => {
{client.clientId} {client.clientId}
{!client.enabled && ( {!client.enabled && (
<Badge key={`${client.id}-disabled`} isRead className="pf-u-ml-sm"> <Badge key={`${client.id}-disabled`} isRead className="pf-u-ml-sm">
{t("common:disabled")} {t("disabled")}
</Badge> </Badge>
)} )}
</Link> </Link>
@ -147,7 +147,7 @@ export default function ClientsSection() {
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: t("clientDelete", { clientId: selectedClient?.clientId }), titleKey: t("clientDelete", { clientId: selectedClient?.clientId }),
messageKey: "clientDeleteConfirm", messageKey: "clientDeleteConfirm",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -196,7 +196,7 @@ export default function ClientsSection() {
const client: ClientRepresentation = rowData.data; const client: ClientRepresentation = rowData.data;
const actions: Action<ClientRepresentation>[] = [ const actions: Action<ClientRepresentation>[] = [
{ {
title: t("common:export"), title: t("export"),
onClick() { onClick() {
exportClient(client); exportClient(client);
}, },
@ -208,7 +208,7 @@ export default function ClientsSection() {
(isManager || client.access?.configure) (isManager || client.access?.configure)
) { ) {
actions.push({ actions.push({
title: t("common:delete"), title: t("delete"),
onClick() { onClick() {
setSelectedClient(client); setSelectedClient(client);
toggleDeleteDialog(); toggleDeleteDialog();
@ -221,26 +221,26 @@ export default function ClientsSection() {
columns={[ columns={[
{ {
name: "clientId", name: "clientId",
displayKey: "common:clientId", displayKey: "clientId",
transforms: [cellWidth(20)], transforms: [cellWidth(20)],
cellRenderer: ClientDetailLink, cellRenderer: ClientDetailLink,
}, },
{ {
name: "clientName", name: "clientName",
displayKey: "common:clientName", displayKey: "clientName",
transforms: [cellWidth(20)], transforms: [cellWidth(20)],
cellRenderer: ClientName, cellRenderer: ClientName,
}, },
{ {
name: "protocol", name: "protocol",
displayKey: "common:type", displayKey: "type",
transforms: [cellWidth(10)], transforms: [cellWidth(10)],
cellRenderer: (client) => cellRenderer: (client) =>
getProtocolName(t, client.protocol ?? "openid-connect"), getProtocolName(t, client.protocol ?? "openid-connect"),
}, },
{ {
name: "description", name: "description",
displayKey: "common:description", displayKey: "description",
transforms: [cellWidth(30)], transforms: [cellWidth(30)],
cellRenderer: ClientDescription, cellRenderer: ClientDescription,
}, },

View file

@ -59,8 +59,8 @@ export const CapabilityConfig = ({
<Switch <Switch
data-testid="authentication" data-testid="authentication"
id="kc-authentication-switch" id="kc-authentication-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={!field.value} isChecked={!field.value}
onChange={(value) => { onChange={(value) => {
field.onChange(!value); field.onChange(!value);
@ -99,8 +99,8 @@ export const CapabilityConfig = ({
<Switch <Switch
data-testid="authorization" data-testid="authorization"
id="kc-authorization-switch" id="kc-authorization-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value && !clientAuthentication} isChecked={field.value && !clientAuthentication}
onChange={(value) => { onChange={(value) => {
field.onChange(value); field.onChange(value);
@ -293,8 +293,8 @@ export const CapabilityConfig = ({
<Switch <Switch
data-testid="encrypt" data-testid="encrypt"
id="kc-encrypt" id="kc-encrypt"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("encryptAssertions")} aria-label={t("encryptAssertions")}
@ -323,8 +323,8 @@ export const CapabilityConfig = ({
<Switch <Switch
data-testid="client-signature" data-testid="client-signature"
id="kc-client-signature" id="kc-client-signature"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("clientSignature")} aria-label={t("clientSignature")}

View file

@ -50,14 +50,14 @@ export const LoginSettingsPanel = ({ access }: { access?: boolean }) => {
field.onChange(value.toString()); field.onChange(value.toString());
setLoginThemeOpen(false); setLoginThemeOpen(false);
}} }}
selections={field.value || t("common:choose")} selections={field.value || t("choose")}
variant={SelectVariant.single} variant={SelectVariant.single}
aria-label={t("loginTheme")} aria-label={t("loginTheme")}
isOpen={loginThemeOpen} isOpen={loginThemeOpen}
> >
{[ {[
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...loginThemes.map((theme) => ( ...loginThemes.map((theme) => (
<SelectOption <SelectOption
@ -89,8 +89,8 @@ export const LoginSettingsPanel = ({ access }: { access?: boolean }) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="kc-consent-switch" id="kc-consent-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("consentRequired")} aria-label={t("consentRequired")}
@ -118,8 +118,8 @@ export const LoginSettingsPanel = ({ access }: { access?: boolean }) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="kc-display-on-client-switch" id="kc-display-on-client-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange("" + value)} onChange={(value) => field.onChange("" + value)}
isDisabled={!consentRequired} isDisabled={!consentRequired}

View file

@ -60,8 +60,8 @@ export const LogoutPanel = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="kc-frontchannelLogout-switch" id="kc-frontchannelLogout-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("frontchannelLogout")} aria-label={t("frontchannelLogout")}
@ -169,8 +169,8 @@ export const LogoutPanel = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="backchannelLogoutSessionRequired" id="backchannelLogoutSessionRequired"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("backchannelLogoutSessionRequired")} aria-label={t("backchannelLogoutSessionRequired")}
@ -198,8 +198,8 @@ export const LogoutPanel = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="backchannelLogoutRevokeOfflineSessions" id="backchannelLogoutRevokeOfflineSessions"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("backchannelLogoutRevokeOfflineSessions")} aria-label={t("backchannelLogoutRevokeOfflineSessions")}

View file

@ -144,7 +144,7 @@ export default function NewClientForm() {
forward(onNext); forward(onNext);
}} }}
> >
{isFinalStep() ? t("common:save") : t("common:next")} {isFinalStep() ? t("save") : t("next")}
</Button> </Button>
<Button <Button
variant="secondary" variant="secondary"
@ -155,14 +155,14 @@ export default function NewClientForm() {
}} }}
isDisabled={activeStep.name === t("generalSettings")} isDisabled={activeStep.name === t("generalSettings")}
> >
{t("common:back")} {t("back")}
</Button> </Button>
<Button <Button
data-testid="cancel" data-testid="cancel"
variant="link" variant="link"
onClick={onClose} onClick={onClose}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</> </>
)} )}

View file

@ -42,8 +42,8 @@ export const Toggle = ({ name, label }: ToggleProps) => {
<Switch <Switch
id={name!} id={name!}
data-testid={label} data-testid={label}
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t(label)} aria-label={t(label)}

View file

@ -67,7 +67,7 @@ export const AddHostDialog = ({
form="add-host-form" form="add-host-form"
isDisabled={!isDirty || !isValid} isDisabled={!isDirty || !isValid}
> >
{t("common:save")} {t("save")}
</Button>, </Button>,
<Button <Button
key="cancel" key="cancel"
@ -75,7 +75,7 @@ export const AddHostDialog = ({
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={onClose} onClick={onClose}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -160,8 +160,8 @@ export const AdvancedSettings = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="oAuthMutual-switch" id="oAuthMutual-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange("" + value)} onChange={(value) => field.onChange("" + value)}
aria-label={t("oAuthMutual")} aria-label={t("oAuthMutual")}
@ -190,8 +190,8 @@ export const AdvancedSettings = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="oAuthDPoP-switch" id="oAuthDPoP-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange("" + value)} onChange={(value) => field.onChange("" + value)}
aria-label={t("oAuthDPoP")} aria-label={t("oAuthDPoP")}
@ -227,11 +227,11 @@ export const AdvancedSettings = ({
field.onChange(value); field.onChange(value);
setOpen(false); setOpen(false);
}} }}
selections={[field.value || t("common:choose")]} selections={[field.value || t("choose")]}
> >
{["", "S256", "plain"].map((v) => ( {["", "S256", "plain"].map((v) => (
<SelectOption key={v} value={v}> <SelectOption key={v} value={v}>
{v || t("common:choose")} {v || t("choose")}
</SelectOption> </SelectOption>
))} ))}
</Select> </Select>
@ -257,8 +257,8 @@ export const AdvancedSettings = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="pushedAuthorizationRequestRequired" id="pushedAuthorizationRequestRequired"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("pushedAuthorizationRequestRequired")} aria-label={t("pushedAuthorizationRequestRequired")}
@ -305,10 +305,10 @@ export const AdvancedSettings = ({
onClick={save} onClick={save}
data-testid="OIDCAdvancedSave" data-testid="OIDCAdvancedSave"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button variant="link" onClick={reset} data-testid="OIDCAdvancedRevert"> <Button variant="link" onClick={reset} data-testid="OIDCAdvancedRevert">
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -46,7 +46,7 @@ export const AuthenticationOverrides = ({
filteredFlows = sortBy(filteredFlows, [(f) => f.alias]); filteredFlows = sortBy(filteredFlows, [(f) => f.alias]);
setFlows([ setFlows([
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...filteredFlows.map((flow) => ( ...filteredFlows.map((flow) => (
<SelectOption key={flow.id} value={flow.id}> <SelectOption key={flow.id} value={flow.id}>
@ -134,14 +134,14 @@ export const AuthenticationOverrides = ({
onClick={save} onClick={save}
data-testid="OIDCAuthFlowOverrideSave" data-testid="OIDCAuthFlowOverrideSave"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
onClick={reset} onClick={reset}
data-testid="OIDCAuthFlowOverrideRevert" data-testid="OIDCAuthFlowOverrideRevert"
> >
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -56,7 +56,7 @@ export const ClusteringPanel = ({
messageKey: t("deleteNodeBody", { messageKey: t("deleteNodeBody", {
node: selectedNode, node: selectedNode,
}), }),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -103,7 +103,7 @@ export const ClusteringPanel = ({
</SplitItem> </SplitItem>
<SplitItem> <SplitItem>
<Button variant={ButtonVariant.secondary} onClick={() => save()}> <Button variant={ButtonVariant.secondary} onClick={() => save()}>
{t("common:save")} {t("save")}
</Button> </Button>
</SplitItem> </SplitItem>
</Split> </Split>
@ -160,7 +160,7 @@ export const ClusteringPanel = ({
} }
actions={[ actions={[
{ {
title: t("common:delete"), title: t("delete"),
onRowClick: (node) => { onRowClick: (node) => {
setSelectedNode(node.host); setSelectedNode(node.host);
toggleDeleteNodeConfirm(); toggleDeleteNodeConfirm();

View file

@ -72,7 +72,7 @@ export const FineGrainOpenIdConnect = ({
const keyOptions = [ const keyOptions = [
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...sortProviders(clientSignatureProviders!).map((p) => ( ...sortProviders(clientSignatureProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -80,7 +80,7 @@ export const FineGrainOpenIdConnect = ({
]; ];
const cekManagementOptions = [ const cekManagementOptions = [
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...sortProviders(cekManagementProviders!).map((p) => ( ...sortProviders(cekManagementProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -96,7 +96,7 @@ export const FineGrainOpenIdConnect = ({
]; ];
const contentOptions = [ const contentOptions = [
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...sortProviders(contentEncryptionProviders!).map((p) => ( ...sortProviders(contentEncryptionProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -105,10 +105,10 @@ export const FineGrainOpenIdConnect = ({
const requestObjectOptions = [ const requestObjectOptions = [
<SelectOption key="any" value="any"> <SelectOption key="any" value="any">
{t("common:any")} {t("any")}
</SelectOption>, </SelectOption>,
<SelectOption key="none" value="none"> <SelectOption key="none" value="none">
{t("common:none")} {t("none")}
</SelectOption>, </SelectOption>,
...sortProviders(clientSignatureProviders!).map((p) => ( ...sortProviders(clientSignatureProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -117,7 +117,7 @@ export const FineGrainOpenIdConnect = ({
const requestObjectEncryptionOptions = [ const requestObjectEncryptionOptions = [
<SelectOption key="any" value="any"> <SelectOption key="any" value="any">
{t("common:any")} {t("any")}
</SelectOption>, </SelectOption>,
...sortProviders(cekManagementProviders!).map((p) => ( ...sortProviders(cekManagementProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -126,7 +126,7 @@ export const FineGrainOpenIdConnect = ({
const requestObjectEncodingOptions = [ const requestObjectEncodingOptions = [
<SelectOption key="any" value="any"> <SelectOption key="any" value="any">
{t("common:any")} {t("any")}
</SelectOption>, </SelectOption>,
...sortProviders(contentEncryptionProviders!).map((p) => ( ...sortProviders(contentEncryptionProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -135,7 +135,7 @@ export const FineGrainOpenIdConnect = ({
const authorizationSignedResponseOptions = [ const authorizationSignedResponseOptions = [
<SelectOption key="empty" value=""> <SelectOption key="empty" value="">
{t("common:choose")} {t("choose")}
</SelectOption>, </SelectOption>,
...sortProviders(signatureProviders!).map((p) => ( ...sortProviders(signatureProviders!).map((p) => (
<SelectOption key={p} value={p} /> <SelectOption key={p} value={p} />
@ -643,10 +643,10 @@ export const FineGrainOpenIdConnect = ({
</FormGroup> </FormGroup>
<ActionGroup> <ActionGroup>
<Button variant="secondary" id="fineGrainSave" onClick={save}> <Button variant="secondary" id="fineGrainSave" onClick={save}>
{t("common:save")} {t("save")}
</Button> </Button>
<Button id="fineGrainRevert" variant="link" onClick={reset}> <Button id="fineGrainRevert" variant="link" onClick={reset}>
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -69,10 +69,10 @@ export const FineGrainSamlEndpointConfig = ({
<ActionGroup> <ActionGroup>
<Button variant="tertiary" onClick={save} data-testid="fineGrainSave"> <Button variant="tertiary" onClick={save} data-testid="fineGrainSave">
{t("common:save")} {t("save")}
</Button> </Button>
<Button variant="link" onClick={reset} data-testid="fineGrainRevert"> <Button variant="link" onClick={reset} data-testid="fineGrainRevert">
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -46,8 +46,8 @@ export const OpenIdConnectCompatibilityModes = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="excludeSessionStateFromAuthenticationResponse-switch" id="excludeSessionStateFromAuthenticationResponse-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("excludeSessionStateFromAuthenticationResponse")} aria-label={t("excludeSessionStateFromAuthenticationResponse")}
@ -75,8 +75,8 @@ export const OpenIdConnectCompatibilityModes = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="excludeIssuerFromAuthenticationResponse-switch" id="excludeIssuerFromAuthenticationResponse-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("excludeIssuerFromAuthenticationResponse")} aria-label={t("excludeIssuerFromAuthenticationResponse")}
@ -104,8 +104,8 @@ export const OpenIdConnectCompatibilityModes = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="useRefreshTokens" id="useRefreshTokens"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("useRefreshTokens")} aria-label={t("useRefreshTokens")}
@ -133,8 +133,8 @@ export const OpenIdConnectCompatibilityModes = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="useRefreshTokenForClientCredentialsGrant" id="useRefreshTokenForClientCredentialsGrant"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("useRefreshTokenForClientCredentialsGrant")} aria-label={t("useRefreshTokenForClientCredentialsGrant")}
@ -162,8 +162,8 @@ export const OpenIdConnectCompatibilityModes = ({
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="useLowerCaseBearerType" id="useLowerCaseBearerType"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("useLowerCaseBearerType")} aria-label={t("useLowerCaseBearerType")}
@ -177,14 +177,14 @@ export const OpenIdConnectCompatibilityModes = ({
onClick={save} onClick={save}
data-testid="OIDCCompatabilitySave" data-testid="OIDCCompatabilitySave"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
onClick={reset} onClick={reset}
data-testid="OIDCCompatabilityRevert" data-testid="OIDCCompatabilityRevert"
> >
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -49,7 +49,7 @@ export const RevocationPanel = ({
if (date > 0) { if (date > 0) {
return formatDate(new Date(date * 1000), FORMAT_DATE_AND_TIME); return formatDate(new Date(date * 1000), FORMAT_DATE_AND_TIME);
} else { } else {
return t("common:none"); return t("none");
} }
}; };

View file

@ -50,7 +50,7 @@ export const AuthorizationDataModal = ({
key="cancel" key="cancel"
onClick={toggle} onClick={toggle}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -228,7 +228,7 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
} }
fieldId="realmRole" fieldId="realmRole"
validated={errors.roleIds ? "error" : "default"} validated={errors.roleIds ? "error" : "default"}
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
isRequired={user.length === 0} isRequired={user.length === 0}
> >
<Controller <Controller
@ -298,8 +298,8 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
> >
<Switch <Switch
id="applyToResource-switch" id="applyToResource-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={applyToResourceType} isChecked={applyToResourceType}
onChange={setApplyToResourceType} onChange={setApplyToResourceType}
aria-label={t("applyToResourceType")} aria-label={t("applyToResourceType")}
@ -340,7 +340,7 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
} }
fieldId="client" fieldId="client"
validated={errors.alias ? "error" : "default"} validated={errors.alias ? "error" : "default"}
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
> >
<KeycloakTextInput <KeycloakTextInput
id="alias" id="alias"
@ -412,7 +412,7 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
fieldLabelId={`contextualAttributes`} fieldLabelId={`contextualAttributes`}
/> />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
fieldId="contextualAttributes" fieldId="contextualAttributes"
> >
<KeyBasedAttributeInput <KeyBasedAttributeInput
@ -441,7 +441,7 @@ const AuthorizationEvaluateContent = ({ client }: Props) => {
variant="link" variant="link"
onClick={() => reset()} onClick={() => reset()}
> >
{t("common:revert")} {t("revert")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormProvider> </FormProvider>

View file

@ -88,7 +88,7 @@ export const AuthorizationExport = () => {
data-testid="authorization-export-download" data-testid="authorization-export-download"
onClick={() => exportAuthDetails()} onClick={() => exportAuthDetails()}
> >
{t("common:download")} {t("download")}
</Button> </Button>
<Button <Button
data-testid="authorization-export-copy" data-testid="authorization-export-copy"

View file

@ -44,7 +44,7 @@ export function DetailDescriptionLink<T>({
</span> </span>
); );
})} })}
{array?.length === 0 && <i>{t("common:none")}</i>} {array?.length === 0 && <i>{t("none")}</i>}
</DescriptionListDescription> </DescriptionListDescription>
</DescriptionListGroup> </DescriptionListGroup>
); );

View file

@ -51,7 +51,7 @@ export const ImportDialog = ({ onConfirm, closeDialog }: ImportDialogProps) => {
closeDialog(); closeDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >
@ -118,8 +118,8 @@ export const ImportDialog = ({ onConfirm, closeDialog }: ImportDialogProps) => {
> >
<Switch <Switch
id="allowRemoteResourceManagement" id="allowRemoteResourceManagement"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={imported.allowRemoteResourceManagement} isChecked={imported.allowRemoteResourceManagement}
isDisabled isDisabled
aria-label={t("allowRemoteResourceManagement")} aria-label={t("allowRemoteResourceManagement")}

View file

@ -113,8 +113,8 @@ const ValueInput = ({
name={`${name}.${rowIndex}.value`} name={`${name}.${rowIndex}.value`}
chipGroupProps={{ chipGroupProps={{
numChips: 1, numChips: 1,
expandedText: t("common:hide"), expandedText: t("hide"),
collapsedText: t("common:showRemaining"), collapsedText: t("showRemaining"),
}} }}
onToggle={(open) => toggleValueSelect(rowIndex, open)} onToggle={(open) => toggleValueSelect(rowIndex, open)}
isOpen={isValueOpenArray[rowIndex]} isOpen={isValueOpenArray[rowIndex]}
@ -138,7 +138,7 @@ const ValueInput = ({
className="value-input" className="value-input"
defaultValue={attribute.value} defaultValue={attribute.value}
data-testid="attribute-value-input" data-testid="attribute-value-input"
aria-label={t("common:value")} aria-label={t("value")}
{...register(`${name}.${rowIndex}.value`)} {...register(`${name}.${rowIndex}.value`)}
/> />
)} )}
@ -236,7 +236,7 @@ export const KeyBasedAttributeInput = ({
variant="link" variant="link"
className="kc-attributes__minus-icon" className="kc-attributes__minus-icon"
onClick={() => remove(rowIndex)} onClick={() => remove(rowIndex)}
aria-label={t("common:remove")} aria-label={t("remove")}
> >
<MinusCircleIcon /> <MinusCircleIcon />
</Button> </Button>

View file

@ -11,7 +11,5 @@ export const MoreLabel = ({ array }: MoreLabelProps) => {
if (!array || array.length <= 1) { if (!array || array.length <= 1) {
return null; return null;
} }
return ( return <Label color="blue">{t("more", { count: array.length - 1 })}</Label>;
<Label color="blue">{t("common:more", { count: array.length - 1 })}</Label>
);
}; };

View file

@ -56,8 +56,8 @@ export const NewPolicyDialog = ({
<TableComposable aria-label={t("policies")} variant="compact"> <TableComposable aria-label={t("policies")} variant="compact">
<Thead> <Thead>
<Tr> <Tr>
<Th>{t("common:name")}</Th> <Th>{t("name")}</Th>
<Th>{t("common:description")}</Th> <Th>{t("description")}</Th>
</Tr> </Tr>
</Thead> </Thead>
<Tbody> <Tbody>

View file

@ -91,7 +91,7 @@ export default function PermissionDetails() {
]); ]);
if (!permission) { if (!permission) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return { return {
@ -194,7 +194,7 @@ export default function PermissionDetails() {
data-testid="delete-resource" data-testid="delete-resource"
onClick={() => toggleDeleteDialog()} onClick={() => toggleDeleteDialog()}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -208,9 +208,9 @@ export default function PermissionDetails() {
> >
<FormProvider {...form}> <FormProvider {...form}>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
isRequired isRequired
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.name ? "error" : "default"} validated={errors.name ? "error" : "default"}
fieldId="name" fieldId="name"
labelIcon={ labelIcon={
@ -224,7 +224,7 @@ export default function PermissionDetails() {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
fieldId="description" fieldId="description"
labelIcon={ labelIcon={
<HelpItem <HelpItem
@ -241,7 +241,7 @@ export default function PermissionDetails() {
{...register("description", { {...register("description", {
maxLength: { maxLength: {
value: 255, value: 255,
message: t("common:maxLength", { length: 255 }), message: t("maxLength", { length: 255 }),
}, },
})} })}
/> />
@ -259,8 +259,8 @@ export default function PermissionDetails() {
<Switch <Switch
id="applyToResourceTypeFlag" id="applyToResourceTypeFlag"
name="applyToResourceTypeFlag" name="applyToResourceTypeFlag"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={applyToResourceTypeFlag} isChecked={applyToResourceTypeFlag}
onChange={setApplyToResourceTypeFlag} onChange={setApplyToResourceTypeFlag}
aria-label={t("applyToResourceTypeFlag")} aria-label={t("applyToResourceTypeFlag")}
@ -295,7 +295,7 @@ export default function PermissionDetails() {
fieldLabelId="resources" fieldLabelId="resources"
/> />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.resources ? "error" : "default"} validated={errors.resources ? "error" : "default"}
isRequired={permissionType !== "scope"} isRequired={permissionType !== "scope"}
> >
@ -325,7 +325,7 @@ export default function PermissionDetails() {
fieldLabelId="scopesSelect" fieldLabelId="scopesSelect"
/> />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.scopes ? "error" : "default"} validated={errors.scopes ? "error" : "default"}
isRequired isRequired
> >
@ -393,7 +393,7 @@ export default function PermissionDetails() {
type="submit" type="submit"
data-testid="save" data-testid="save"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
@ -410,7 +410,7 @@ export default function PermissionDetails() {
></Link> ></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</div> </div>
</ActionGroup> </ActionGroup>

View file

@ -267,10 +267,10 @@ export const AuthorizationPermissions = ({ clientId }: PermissionsProps) => {
<Thead> <Thead>
<Tr> <Tr>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
<Th>{t("common:name")}</Th> <Th>{t("name")}</Th>
<Th>{t("common:type")}</Th> <Th>{t("type")}</Th>
<Th>{t("associatedPolicy")}</Th> <Th>{t("associatedPolicy")}</Th>
<Th>{t("common:description")}</Th> <Th>{t("description")}</Th>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
</Tr> </Tr>
</Thead> </Thead>
@ -317,7 +317,7 @@ export const AuthorizationPermissions = ({ clientId }: PermissionsProps) => {
actions={{ actions={{
items: [ items: [
{ {
title: t("common:delete"), title: t("delete"),
onClick: async () => { onClick: async () => {
setSelectedPermission(permission); setSelectedPermission(permission);
toggleDeleteDialog(); toggleDeleteDialog();
@ -373,8 +373,8 @@ export const AuthorizationPermissions = ({ clientId }: PermissionsProps) => {
{noData && searching && ( {noData && searching && (
<ListEmptyState <ListEmptyState
isSearchVariant isSearchVariant
message={t("common:noSearchResults")} message={t("noSearchResults")}
instructions={t("common:noSearchResultsInstructions")} instructions={t("noSearchResultsInstructions")}
/> />
)} )}
</PageSection> </PageSection>

View file

@ -213,10 +213,10 @@ export const AuthorizationPolicies = ({ clientId }: PoliciesProps) => {
<Thead> <Thead>
<Tr> <Tr>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
<Th>{t("common:name")}</Th> <Th>{t("name")}</Th>
<Th>{t("common:type")}</Th> <Th>{t("type")}</Th>
<Th>{t("dependentPermission")}</Th> <Th>{t("dependentPermission")}</Th>
<Th>{t("common:description")}</Th> <Th>{t("description")}</Th>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
</Tr> </Tr>
</Thead> </Thead>
@ -258,7 +258,7 @@ export const AuthorizationPolicies = ({ clientId }: PoliciesProps) => {
actions={{ actions={{
items: [ items: [
{ {
title: t("common:delete"), title: t("delete"),
onClick: async () => { onClick: async () => {
setSelectedPolicy(policy); setSelectedPolicy(policy);
toggleDeleteDialog(); toggleDeleteDialog();
@ -308,8 +308,8 @@ export const AuthorizationPolicies = ({ clientId }: PoliciesProps) => {
{noData && searching && ( {noData && searching && (
<ListEmptyState <ListEmptyState
isSearchVariant isSearchVariant
message={t("common:noSearchResults")} message={t("noSearchResults")}
instructions={t("common:noSearchResultsInstructions")} instructions={t("noSearchResultsInstructions")}
/> />
)} )}
{noData && !searching && ( {noData && !searching && (

View file

@ -85,7 +85,7 @@ export default function ResourceDetails() {
]), ]),
([client, resource, permissions]) => { ([client, resource, permissions]) => {
if (!client) { if (!client) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
setClient(client); setClient(client);
setPermission(permissions); setPermission(permissions);
@ -176,7 +176,7 @@ export default function ResourceDetails() {
data-testid="delete-resource" data-testid="delete-resource"
onClick={() => toggleDeleteDialog()} onClick={() => toggleDeleteDialog()}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -204,12 +204,12 @@ export default function ResourceDetails() {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="name" fieldId="name"
labelIcon={ labelIcon={
<HelpItem helpText={t("resourceName")} fieldLabelId="name" /> <HelpItem helpText={t("resourceName")} fieldLabelId="name" />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -292,8 +292,8 @@ export default function ResourceDetails() {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="ownerManagedAccess" id="ownerManagedAccess"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("ownerManagedAccess")} aria-label={t("ownerManagedAccess")}
@ -322,7 +322,7 @@ export default function ResourceDetails() {
type="submit" type="submit"
data-testid="save" data-testid="save"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
@ -339,7 +339,7 @@ export default function ResourceDetails() {
></Link> ></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</div> </div>
</ActionGroup> </ActionGroup>

View file

@ -186,9 +186,9 @@ export const AuthorizationResources = ({ clientId }: ResourcesProps) => {
<Thead> <Thead>
<Tr> <Tr>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
<Th>{t("common:name")}</Th> <Th>{t("name")}</Th>
<Th>{t("displayName")}</Th> <Th>{t("displayName")}</Th>
<Th>{t("common:type")}</Th> <Th>{t("type")}</Th>
<Th>{t("owner")}</Th> <Th>{t("owner")}</Th>
<Th>{t("uris")}</Th> <Th>{t("uris")}</Th>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
@ -254,7 +254,7 @@ export const AuthorizationResources = ({ clientId }: ResourcesProps) => {
actions={{ actions={{
items: [ items: [
{ {
title: t("common:delete"), title: t("delete"),
onClick: async () => { onClick: async () => {
setSelectedResource(resource); setSelectedResource(resource);
setPermission( setPermission(
@ -293,8 +293,8 @@ export const AuthorizationResources = ({ clientId }: ResourcesProps) => {
{noData && searching && ( {noData && searching && (
<ListEmptyState <ListEmptyState
isSearchVariant isSearchVariant
message={t("common:noSearchResults")} message={t("noSearchResults")}
instructions={t("common:noSearchResultsInstructions")} instructions={t("noSearchResultsInstructions")}
/> />
)} )}
{noData && !searching && ( {noData && !searching && (

View file

@ -147,7 +147,7 @@ export const ResourcesPolicySelect = ({
const [toggleUnsavedChangesDialog, UnsavedChangesConfirm] = useConfirmDialog({ const [toggleUnsavedChangesDialog, UnsavedChangesConfirm] = useConfirmDialog({
titleKey: t("unsavedChangesTitle"), titleKey: t("unsavedChangesTitle"),
messageKey: t("unsavedChangesConfirm"), messageKey: t("unsavedChangesConfirm"),
continueButtonLabel: t("common:continue"), continueButtonLabel: t("continue"),
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: () => onUnsavedChangesConfirm?.(), onConfirm: () => onUnsavedChangesConfirm?.(),
}); });

View file

@ -55,7 +55,7 @@ export default function ScopeDetails() {
scopeId, scopeId,
}); });
if (!scope) { if (!scope) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return scope; return scope;
} }
@ -116,7 +116,7 @@ export default function ScopeDetails() {
data-testid="delete-resource" data-testid="delete-resource"
onClick={() => toggleDeleteDialog()} onClick={() => toggleDeleteDialog()}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -129,12 +129,12 @@ export default function ScopeDetails() {
onSubmit={handleSubmit(onSubmit)} onSubmit={handleSubmit(onSubmit)}
> >
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="name" fieldId="name"
labelIcon={ labelIcon={
<HelpItem helpText={t("scopeName")} fieldLabelId="name" /> <HelpItem helpText={t("scopeName")} fieldLabelId="name" />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -177,7 +177,7 @@ export default function ScopeDetails() {
type="submit" type="submit"
data-testid="save" data-testid="save"
> >
{t("common:save")} {t("save")}
</Button> </Button>
{!scope ? ( {!scope ? (
@ -195,7 +195,7 @@ export default function ScopeDetails() {
></Link> ></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
) : ( ) : (
<Button <Button
@ -203,7 +203,7 @@ export default function ScopeDetails() {
data-testid="revert" data-testid="revert"
onClick={() => reset({ ...scope })} onClick={() => reset({ ...scope })}
> >
{t("common:revert")} {t("revert")}
</Button> </Button>
)} )}
</div> </div>

View file

@ -66,8 +66,8 @@ export const ScopePicker = ({ clientId }: { clientId: string }) => {
variant={SelectVariant.typeaheadMulti} variant={SelectVariant.typeaheadMulti}
chipGroupProps={{ chipGroupProps={{
numChips: 3, numChips: 3,
expandedText: t("common:hide"), expandedText: t("hide"),
collapsedText: t("common:showRemaining"), collapsedText: t("showRemaining"),
}} }}
onToggle={setOpen} onToggle={setOpen}
isOpen={open} isOpen={open}

View file

@ -184,7 +184,7 @@ export const AuthorizationScopes = ({ clientId }: ScopesProps) => {
<Thead> <Thead>
<Tr> <Tr>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
<Th>{t("common:name")}</Th> <Th>{t("name")}</Th>
<Th>{t("displayName")}</Th> <Th>{t("displayName")}</Th>
<Th aria-hidden="true" /> <Th aria-hidden="true" />
<Th aria-hidden="true" /> <Th aria-hidden="true" />
@ -241,7 +241,7 @@ export const AuthorizationScopes = ({ clientId }: ScopesProps) => {
actions={{ actions={{
items: [ items: [
{ {
title: t("common:delete"), title: t("delete"),
onClick: () => { onClick: () => {
setSelectedScope(scope); setSelectedScope(scope);
toggleDeleteDialog(); toggleDeleteDialog();
@ -312,8 +312,8 @@ export const AuthorizationScopes = ({ clientId }: ScopesProps) => {
{noData && searching && ( {noData && searching && (
<ListEmptyState <ListEmptyState
isSearchVariant isSearchVariant
message={t("common:noSearchResults")} message={t("noSearchResults")}
instructions={t("common:noSearchResultsInstructions")} instructions={t("noSearchResultsInstructions")}
/> />
)} )}
</PageSection> </PageSection>

View file

@ -94,7 +94,7 @@ export const SearchDropdown = ({
className="keycloak__client_authentication__searchdropdown_form" className="keycloak__client_authentication__searchdropdown_form"
onSubmit={handleSubmit(submit)} onSubmit={handleSubmit(submit)}
> >
<FormGroup label={t("common:name")} fieldId="name"> <FormGroup label={t("name")} fieldId="name">
<KeycloakTextInput <KeycloakTextInput
id="name" id="name"
data-testid="searchdropdown_name" data-testid="searchdropdown_name"
@ -103,7 +103,7 @@ export const SearchDropdown = ({
</FormGroup> </FormGroup>
{isResource && ( {isResource && (
<> <>
<FormGroup label={t("common:type")} fieldId="type"> <FormGroup label={t("type")} fieldId="type">
<KeycloakTextInput <KeycloakTextInput
id="type" id="type"
data-testid="searchdropdown_type" data-testid="searchdropdown_type"
@ -143,7 +143,7 @@ export const SearchDropdown = ({
/> />
</FormGroup> </FormGroup>
{!isResource && ( {!isResource && (
<FormGroup label={t("common:type")} fieldId="type"> <FormGroup label={t("type")} fieldId="type">
<Controller <Controller
name="type" name="type"
defaultValue="" defaultValue=""
@ -159,7 +159,7 @@ export const SearchDropdown = ({
}} }}
selections={field.value || t("allTypes")} selections={field.value || t("allTypes")}
variant={SelectVariant.single} variant={SelectVariant.single}
aria-label={t("common:type")} aria-label={t("type")}
isOpen={typeOpen} isOpen={typeOpen}
> >
{typeOptions(field.value)} {typeOptions(field.value)}
@ -175,14 +175,14 @@ export const SearchDropdown = ({
data-testid="search-btn" data-testid="search-btn"
isDisabled={!isDirty} isDisabled={!isDirty}
> >
{t("common:search")} {t("search")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
data-testid="revert-btn" data-testid="revert-btn"
onClick={() => onSearch({})} onClick={() => onSearch({})}
> >
{t("common:clear")} {t("clear")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</Form> </Form>

View file

@ -160,8 +160,8 @@ export const AuthorizationSettings = ({ clientId }: { clientId: string }) => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="allowRemoteResourceManagement" id="allowRemoteResourceManagement"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value} isChecked={field.value}
onChange={field.onChange} onChange={field.onChange}
aria-label={t("allowRemoteResourceManagement")} aria-label={t("allowRemoteResourceManagement")}

View file

@ -92,14 +92,14 @@ export const Results = ({ evaluateResult, refresh, back }: ResultProps) => {
name={"inputGroupName"} name={"inputGroupName"}
id={"inputGroupName"} id={"inputGroupName"}
type="search" type="search"
aria-label={t("common:search")} aria-label={t("search")}
placeholder={t("common:search")} placeholder={t("search")}
onChange={setSearchInput} onChange={setSearchInput}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
/> />
<Button <Button
variant={ButtonVariant.control} variant={ButtonVariant.control}
aria-label={t("common:search")} aria-label={t("search")}
onClick={() => confirmSearchQuery()} onClick={() => confirmSearchQuery()}
> >
<SearchIcon /> <SearchIcon />
@ -170,15 +170,15 @@ export const Results = ({ evaluateResult, refresh, back }: ResultProps) => {
<Divider /> <Divider />
<ListEmptyState <ListEmptyState
isSearchVariant isSearchVariant
message={t("common:noSearchResults")} message={t("noSearchResults")}
instructions={t("common:noSearchResultsInstructions")} instructions={t("noSearchResultsInstructions")}
/> />
</> </>
)} )}
<Form> <Form>
<FixedButtonsGroup name="authorization"> <FixedButtonsGroup name="authorization">
<Button data-testid="authorization-eval" id="back-btn" onClick={back}> <Button data-testid="authorization-eval" id="back-btn" onClick={back}>
{t("common:back")} {t("back")}
</Button>{" "} </Button>{" "}
<Button <Button
data-testid="authorization-reevaluate" data-testid="authorization-reevaluate"

View file

@ -104,7 +104,7 @@ export const Group = () => {
type="selectMany" type="selectMany"
text={{ text={{
title: "addGroupsToGroupPolicy", title: "addGroupsToGroupPolicy",
ok: "common:add", ok: "add",
}} }}
onConfirm={(groups) => { onConfirm={(groups) => {
field.onChange([ field.onChange([

View file

@ -24,9 +24,9 @@ export const NameDescription = ({
return ( return (
<> <>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="kc-name" fieldId="kc-name"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -49,7 +49,7 @@ export const NameDescription = ({
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:description")} label={t("description")}
fieldId="kc-description" fieldId="kc-description"
labelIcon={ labelIcon={
<HelpItem <HelpItem
@ -60,7 +60,7 @@ export const NameDescription = ({
validated={ validated={
errors.description ? ValidatedOptions.error : ValidatedOptions.default errors.description ? ValidatedOptions.error : ValidatedOptions.default
} }
helperTextInvalid={t("common:maxLength", { length: 255 })} helperTextInvalid={t("maxLength", { length: 255 })}
> >
<KeycloakTextArea <KeycloakTextArea
isDisabled={isDisabled} isDisabled={isDisabled}

View file

@ -89,7 +89,7 @@ export default function PolicyDetails() {
]); ]);
if (!result[0]) { if (!result[0]) {
throw new Error(t("common:notFound")); throw new Error(t("notFound"));
} }
return { return {
@ -188,7 +188,7 @@ export default function PolicyDetails() {
data-testid="delete-policy" data-testid="delete-policy"
onClick={() => toggleDeleteDialog()} onClick={() => toggleDeleteDialog()}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -214,7 +214,7 @@ export default function PolicyDetails() {
type="submit" type="submit"
data-testid="save" data-testid="save"
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
@ -231,7 +231,7 @@ export default function PolicyDetails() {
/> />
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</div> </div>
</ActionGroup> </ActionGroup>

View file

@ -17,7 +17,7 @@ export const Regex = () => {
<FormGroup <FormGroup
label={t("targetClaim")} label={t("targetClaim")}
fieldId="targetClaim" fieldId="targetClaim"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.targetClaim ? "error" : "default"} validated={errors.targetClaim ? "error" : "default"}
isRequired isRequired
labelIcon={ labelIcon={
@ -45,7 +45,7 @@ export const Regex = () => {
} }
isRequired isRequired
validated={errors.pattern ? "error" : "default"} validated={errors.pattern ? "error" : "default"}
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
> >
<KeycloakTextInput <KeycloakTextInput
id="pattern" id="pattern"

View file

@ -143,7 +143,7 @@ const FromTo = ({ name, ...rest }: NumberControlProps) => {
<SplitItem> <SplitItem>
<NumberControl name={name} {...rest} /> <NumberControl name={name} {...rest} />
</SplitItem> </SplitItem>
<SplitItem>{t("common:to")}</SplitItem> <SplitItem>{t("to")}</SplitItem>
<SplitItem> <SplitItem>
<NumberControl name={`${name}End`} {...rest} /> <NumberControl name={`${name}End`} {...rest} />
</SplitItem> </SplitItem>
@ -208,7 +208,7 @@ export const Time = () => {
<HelpItem helpText={t("startTimeHelp")} fieldLabelId="startTime" /> <HelpItem helpText={t("startTimeHelp")} fieldLabelId="startTime" />
} }
isRequired isRequired
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.notBefore ? ValidatedOptions.error : ValidatedOptions.default errors.notBefore ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -222,7 +222,7 @@ export const Time = () => {
<HelpItem helpText={t("expireTimeHelp")} fieldLabelId="expireTime" /> <HelpItem helpText={t("expireTimeHelp")} fieldLabelId="expireTime" />
} }
isRequired isRequired
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.notOnOrAfter errors.notOnOrAfter
? ValidatedOptions.error ? ValidatedOptions.error

View file

@ -101,7 +101,7 @@ export const ClientSecret = ({ client, secret, toggle }: ClientSecretProps) => {
const [toggleInvalidateConfirm, InvalidateConfirm] = useConfirmDialog({ const [toggleInvalidateConfirm, InvalidateConfirm] = useConfirmDialog({
titleKey: "invalidateRotatedSecret", titleKey: "invalidateRotatedSecret",
messageKey: "invalidateRotatedSecretExplain", messageKey: "invalidateRotatedSecretExplain",
continueButtonLabel: "common:confirm", continueButtonLabel: "confirm",
onConfirm: async () => { onConfirm: async () => {
try { try {
await adminClient.clients.invalidateSecret({ await adminClient.clients.invalidateSecret({

View file

@ -108,8 +108,8 @@ export const Credentials = ({ client, save, refresh }: CredentialsProps) => {
const [toggleClientSecretConfirm, ClientSecretConfirm] = useConfirmDialog({ const [toggleClientSecretConfirm, ClientSecretConfirm] = useConfirmDialog({
titleKey: "confirmClientSecretTitle", titleKey: "confirmClientSecretTitle",
messageKey: "confirmClientSecretBody", messageKey: "confirmClientSecretBody",
continueButtonLabel: "common:yes", continueButtonLabel: "yes",
cancelButtonLabel: "common:no", cancelButtonLabel: "no",
onConfirm: regenerateClientSecret, onConfirm: regenerateClientSecret,
}); });
@ -125,8 +125,8 @@ export const Credentials = ({ client, save, refresh }: CredentialsProps) => {
const [toggleAccessTokenConfirm, AccessTokenConfirm] = useConfirmDialog({ const [toggleAccessTokenConfirm, AccessTokenConfirm] = useConfirmDialog({
titleKey: "confirmAccessTokenTitle", titleKey: "confirmAccessTokenTitle",
messageKey: "confirmAccessTokenBody", messageKey: "confirmAccessTokenBody",
continueButtonLabel: "common:yes", continueButtonLabel: "yes",
cancelButtonLabel: "common:no", cancelButtonLabel: "no",
onConfirm: regenerateAccessToken, onConfirm: regenerateAccessToken,
}); });
@ -196,7 +196,7 @@ export const Credentials = ({ client, save, refresh }: CredentialsProps) => {
{clientAuthenticatorType === "client-x509" && <X509 />} {clientAuthenticatorType === "client-x509" && <X509 />}
<ActionGroup> <ActionGroup>
<Button variant="primary" type="submit" isDisabled={!isDirty}> <Button variant="primary" type="submit" isDisabled={!isDirty}>
{t("common:save")} {t("save")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</CardBody> </CardBody>

View file

@ -35,8 +35,8 @@ export const X509 = () => {
render={({ field }) => ( render={({ field }) => (
<Switch <Switch
id="allowRegexComparison" id="allowRegexComparison"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(value.toString())} onChange={(value) => field.onChange(value.toString())}
aria-label={t("allowRegexComparison")} aria-label={t("allowRegexComparison")}
@ -50,7 +50,7 @@ export const X509 = () => {
labelIcon={ labelIcon={
<HelpItem helpText={t("subjectHelp")} fieldLabelId="subject" /> <HelpItem helpText={t("subjectHelp")} fieldLabelId="subject" />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.attributes?.[beerify("x509.subjectdn")] errors.attributes?.[beerify("x509.subjectdn")]
? ValidatedOptions.error ? ValidatedOptions.error

View file

@ -111,11 +111,11 @@ export default function ImportForm() {
id="realm-file" id="realm-file"
language={Language.json} language={Language.json}
extension=".json,.xml" extension=".json,.xml"
helpText={t("common-help:helpFileUploadClient")} helpText={t("helpFileUploadClient")}
onChange={handleFileChange} onChange={handleFileChange}
/> />
<ClientDescription hasConfigureAccess /> <ClientDescription hasConfigureAccess />
<FormGroup label={t("common:type")} fieldId="kc-type"> <FormGroup label={t("type")} fieldId="kc-type">
<KeycloakTextInput <KeycloakTextInput
id="kc-type" id="kc-type"
isReadOnly isReadOnly
@ -125,7 +125,7 @@ export default function ImportForm() {
<CapabilityConfig unWrap={true} /> <CapabilityConfig unWrap={true} />
<ActionGroup> <ActionGroup>
<Button variant="primary" type="submit"> <Button variant="primary" type="submit">
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
@ -133,7 +133,7 @@ export default function ImportForm() {
<Link {...props} to={toClients({ realm })} /> <Link {...props} to={toClients({ realm })} />
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormProvider> </FormProvider>

View file

@ -132,7 +132,7 @@ export default function CreateInitialAccessToken() {
data-testid="save" data-testid="save"
isDisabled={!isValid} isDisabled={!isValid}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="cancel" data-testid="cancel"
@ -144,7 +144,7 @@ export default function CreateInitialAccessToken() {
/> />
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -39,7 +39,7 @@ export const InitialAccessTokenList = () => {
const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({ const [toggleDeleteDialog, DeleteConfirm] = useConfirmDialog({
titleKey: "tokenDeleteConfirmTitle", titleKey: "tokenDeleteConfirmTitle",
messageKey: t("tokenDeleteConfirm", { id: token?.id }), messageKey: t("tokenDeleteConfirm", { id: token?.id }),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -69,12 +69,12 @@ export const InitialAccessTokenList = () => {
<Link {...props} to={toCreateInitialAccessToken({ realm })} /> <Link {...props} to={toCreateInitialAccessToken({ realm })} />
)} )}
> >
{t("common:create")} {t("create")}
</Button> </Button>
} }
actions={[ actions={[
{ {
title: t("common:delete"), title: t("delete"),
onRowClick: (token) => { onRowClick: (token) => {
setToken(token); setToken(token);
toggleDeleteDialog(); toggleDeleteDialog();
@ -84,7 +84,7 @@ export const InitialAccessTokenList = () => {
columns={[ columns={[
{ {
name: "id", name: "id",
displayKey: "common:id", displayKey: "id",
}, },
{ {
name: "timestamp", name: "timestamp",
@ -115,7 +115,7 @@ export const InitialAccessTokenList = () => {
<ListEmptyState <ListEmptyState
message={t("noTokens")} message={t("noTokens")}
instructions={t("noTokensInstructions")} instructions={t("noTokensInstructions")}
primaryActionText={t("common:create")} primaryActionText={t("create")}
onPrimaryAction={() => onPrimaryAction={() =>
navigate(toCreateInitialAccessToken({ realm })) navigate(toCreateInitialAccessToken({ realm }))
} }

View file

@ -61,7 +61,7 @@ export const ExportSamlKeyDialog = ({
type="submit" type="submit"
form="export-saml-key-form" form="export-saml-key-form"
> >
{t("common:export")} {t("export")}
</Button>, </Button>,
<Button <Button
id="modal-cancel" id="modal-cancel"
@ -72,7 +72,7 @@ export const ExportSamlKeyDialog = ({
close(); close();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -195,7 +195,7 @@ export const GenerateKeyDialog = ({
toggleDialog(); toggleDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -84,7 +84,7 @@ export const ImportKeyDialog = ({
toggleDialog(); toggleDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -156,8 +156,8 @@ export const Keys = ({ clientId, save, hasConfigureAccess }: KeysProps) => {
<Switch <Switch
data-testid="useJwksUrl" data-testid="useJwksUrl"
id="useJwksUrl-switch" id="useJwksUrl-switch"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => field.onChange(`${value}`)} onChange={(value) => field.onChange(`${value}`)}
aria-label={t("useJwksUrl")} aria-label={t("useJwksUrl")}
@ -197,7 +197,7 @@ export const Keys = ({ clientId, save, hasConfigureAccess }: KeysProps) => {
onClick={save} onClick={save}
isDisabled={!isDirty} isDisabled={!isDirty}
> >
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
data-testid="generate" data-testid="generate"

View file

@ -108,8 +108,8 @@ const KeySection = ({
<Switch <Switch
data-testid={key} data-testid={key}
id={key} id={key}
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={field.value === "true"} isChecked={field.value === "true"}
onChange={(value) => { onChange={(value) => {
const v = value.toString(); const v = value.toString();
@ -143,7 +143,7 @@ const KeySection = ({
{t("importKey")} {t("importKey")}
</Button> </Button>
<Button variant="tertiary" onClick={toggleImportDialog}> <Button variant="tertiary" onClick={toggleImportDialog}>
{t("common:export")} {t("export")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</Form> </Form>
@ -207,8 +207,8 @@ export const SamlKeys = ({ clientId, save }: SamlKeysProps) => {
messageKey: t("disableSigningExplain", { messageKey: t("disableSigningExplain", {
key: t(key), key: t(key),
}), }),
continueButtonLabel: "common:yes", continueButtonLabel: "yes",
cancelButtonLabel: "common:no", cancelButtonLabel: "no",
onConfirm: () => { onConfirm: () => {
setValue(KEYS_MAPPING[selectedType!].name, "false"); setValue(KEYS_MAPPING[selectedType!].name, "false");
save(); save();
@ -218,8 +218,8 @@ export const SamlKeys = ({ clientId, save }: SamlKeysProps) => {
const [toggleReGenerateDialog, ReGenerateConfirm] = useConfirmDialog({ const [toggleReGenerateDialog, ReGenerateConfirm] = useConfirmDialog({
titleKey: "reGenerateSigning", titleKey: "reGenerateSigning",
messageKey: "reGenerateSigningExplain", messageKey: "reGenerateSigningExplain",
continueButtonLabel: "common:yes", continueButtonLabel: "yes",
cancelButtonLabel: "common:no", cancelButtonLabel: "no",
onConfirm: () => { onConfirm: () => {
generate(selectedType!); generate(selectedType!);
}, },

View file

@ -146,7 +146,7 @@ export const SamlKeysDialog = ({
variant={ButtonVariant.link} variant={ButtonVariant.link}
onClick={onCancel} onClick={onCancel}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
]} ]}
> >

View file

@ -29,7 +29,7 @@ export const StoreSettings = ({
labelIcon={ labelIcon={
<HelpItem helpText={t("keyAliasHelp")} fieldLabelId="keyAlias" /> <HelpItem helpText={t("keyAliasHelp")} fieldLabelId="keyAlias" />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.keyAlias ? "error" : "default"} validated={errors.keyAlias ? "error" : "default"}
> >
<KeycloakTextInput <KeycloakTextInput
@ -50,7 +50,7 @@ export const StoreSettings = ({
fieldLabelId="keyPassword" fieldLabelId="keyPassword"
/> />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.keyPassword ? "error" : "default"} validated={errors.keyPassword ? "error" : "default"}
> >
<PasswordInput <PasswordInput
@ -89,7 +89,7 @@ export const StoreSettings = ({
fieldLabelId="storePassword" fieldLabelId="storePassword"
/> />
} }
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={errors.storePassword ? "error" : "default"} validated={errors.storePassword ? "error" : "default"}
> >
<PasswordInput <PasswordInput

View file

@ -59,13 +59,11 @@ export const AddProviderDialog = ({
<DataListItem aria-label={t("headerName")} id="header"> <DataListItem aria-label={t("headerName")} id="header">
<DataListItemRow> <DataListItemRow>
<DataListItemCells <DataListItemCells
dataListCells={[t("common:name"), t("common:description")].map( dataListCells={[t("name"), t("description")].map((name) => (
(name) => (
<DataListCell style={{ fontWeight: 700 }} key={name}> <DataListCell style={{ fontWeight: 700 }} key={name}>
{name} {name}
</DataListCell> </DataListCell>
), ))}
)}
/> />
</DataListItemRow> </DataListItemRow>
</DataListItem> </DataListItem>

View file

@ -69,7 +69,7 @@ export const ClientRegistrationList = ({
messageKey: t("clientRegisterPolicyDeleteConfirm", { messageKey: t("clientRegisterPolicyDeleteConfirm", {
name: selectedPolicy?.name, name: selectedPolicy?.name,
}), }),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -115,7 +115,7 @@ export const ClientRegistrationList = ({
} }
actions={[ actions={[
{ {
title: t("common:delete"), title: t("delete"),
onRowClick: (policy) => { onRowClick: (policy) => {
setSelectedPolicy(policy); setSelectedPolicy(policy);
toggleDeleteDialog(); toggleDeleteDialog();
@ -125,7 +125,7 @@ export const ClientRegistrationList = ({
columns={[ columns={[
{ {
name: "name", name: "name",
displayKey: "common:name", displayKey: "name",
cellRenderer: DetailLink, cellRenderer: DetailLink,
}, },
{ {

View file

@ -101,7 +101,7 @@ export default function DetailProvider() {
messageKey: t("clientRegisterPolicyDeleteConfirm", { messageKey: t("clientRegisterPolicyDeleteConfirm", {
name: providerName, name: providerName,
}), }),
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -134,7 +134,7 @@ export default function DetailProvider() {
key="delete" key="delete"
onClick={toggleDeleteDialog} onClick={toggleDeleteDialog}
> >
{t("common:delete")} {t("delete")}
</DropdownItem>, </DropdownItem>,
] ]
: undefined : undefined
@ -156,9 +156,9 @@ export default function DetailProvider() {
/> />
</FormGroup> </FormGroup>
<FormGroup <FormGroup
label={t("common:name")} label={t("name")}
fieldId="kc-name" fieldId="kc-name"
helperTextInvalid={t("common:required")} helperTextInvalid={t("required")}
validated={ validated={
errors.name ? ValidatedOptions.error : ValidatedOptions.default errors.name ? ValidatedOptions.error : ValidatedOptions.default
} }
@ -184,7 +184,7 @@ export default function DetailProvider() {
</FormProvider> </FormProvider>
<ActionGroup> <ActionGroup>
<Button data-testid="save" type="submit"> <Button data-testid="save" type="submit">
{t("common:save")} {t("save")}
</Button> </Button>
<Button <Button
variant="link" variant="link"
@ -195,7 +195,7 @@ export default function DetailProvider() {
></Link> ></Link>
)} )}
> >
{t("common:cancel")} {t("cancel")}
</Button> </Button>
</ActionGroup> </ActionGroup>
</FormAccess> </FormAccess>

View file

@ -16,7 +16,7 @@ const MappingDetails = lazy(
export const MapperRoute: AppRouteObject = { export const MapperRoute: AppRouteObject = {
path: "/:realm/clients/:id/clientScopes/dedicated/mappers/:mapperId", path: "/:realm/clients/:id/clientScopes/dedicated/mappers/:mapperId",
element: <MappingDetails />, element: <MappingDetails />,
breadcrumb: (t) => t("common:mappingDetails"), breadcrumb: (t) => t("mappingDetails"),
handle: { handle: {
access: "view-clients", access: "view-clients",
}, },

View file

@ -151,7 +151,7 @@ export const AddScopeDialog = ({
}} }}
isDisabled={rows.length === 0} isDisabled={rows.length === 0}
> >
{t("common:add")} {t("add")}
</Button>, </Button>,
<Button <Button
id="modal-cancel" id="modal-cancel"
@ -163,7 +163,7 @@ export const AddScopeDialog = ({
toggleDialog(); toggleDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
] ]
: [ : [
@ -181,7 +181,7 @@ export const AddScopeDialog = ({
toggleIndicator={CaretUpIcon} toggleIndicator={CaretUpIcon}
id="add-scope-toggle" id="add-scope-toggle"
> >
{t("common:add")} {t("add")}
</DropdownToggle> </DropdownToggle>
} }
dropdownItems={clientScopeTypesDropdown(t, action)} dropdownItems={clientScopeTypesDropdown(t, action)}
@ -195,7 +195,7 @@ export const AddScopeDialog = ({
toggleDialog(); toggleDialog();
}} }}
> >
{t("common:cancel")} {t("cancel")}
</Button>, </Button>,
] ]
} }
@ -229,9 +229,7 @@ export const AddScopeDialog = ({
data-testid="filter-type-dropdown-item" data-testid="filter-type-dropdown-item"
key="filter-type" key="filter-type"
> >
{filterType === FilterType.Name {filterType === FilterType.Name ? t("protocol") : t("name")}
? t("protocol")
: t("common:name")}
</DropdownItem>, </DropdownItem>,
]} ]}
/> />
@ -260,14 +258,14 @@ export const AddScopeDialog = ({
data-testid="filter-type-dropdown-item" data-testid="filter-type-dropdown-item"
key="filter-type" key="filter-type"
> >
{t("common:name")} {t("name")}
</DropdownItem>, </DropdownItem>,
]} ]}
/> />
<Select <Select
variant={SelectVariant.single} variant={SelectVariant.single}
className="kc-protocolType-select" className="kc-protocolType-select"
aria-label={t("common:selectOne")} aria-label={t("selectOne")}
onToggle={toggleIsProtocolTypeDropdownOpen} onToggle={toggleIsProtocolTypeDropdownOpen}
onSelect={(_, value) => onSelect={(_, value) =>
onProtocolTypeDropdownSelect(value.toString()) onProtocolTypeDropdownSelect(value.toString())

View file

@ -196,7 +196,7 @@ export const ClientScopes = ({
name: selectedRows[0]?.name, name: selectedRows[0]?.name,
}), }),
messageKey: "deleteConfirmClientScopes", messageKey: "deleteConfirmClientScopes",
continueButtonLabel: "common:delete", continueButtonLabel: "delete",
continueButtonVariant: ButtonVariant.danger, continueButtonVariant: ButtonVariant.danger,
onConfirm: async () => { onConfirm: async () => {
try { try {
@ -313,7 +313,7 @@ export const ClientScopes = ({
} }
}} }}
> >
{t("common:remove")} {t("remove")}
</DropdownItem>, </DropdownItem>,
]} ]}
/> />
@ -350,7 +350,7 @@ export const ClientScopes = ({
isManager isManager
? [ ? [
{ {
title: t("common:remove"), title: t("remove"),
onRowClick: async (row) => { onRowClick: async (row) => {
setSelectedRows([row]); setSelectedRows([row]);
toggleDeleteDialog(); toggleDeleteDialog();

View file

@ -96,8 +96,8 @@ export const DedicatedScope = ({
> >
<Switch <Switch
id="fullScopeAllowed" id="fullScopeAllowed"
label={t("common:on")} label={t("on")}
labelOff={t("common:off")} labelOff={t("off")}
isChecked={client.fullScopeAllowed} isChecked={client.fullScopeAllowed}
onChange={update} onChange={update}
aria-label={t("fullScopeAllowed")} aria-label={t("fullScopeAllowed")}

View file

@ -69,9 +69,9 @@ export default function DedicatedScopes() {
mappers as ProtocolMapperRepresentation[], mappers as ProtocolMapperRepresentation[],
); );
setClient(await adminClient.clients.findOne({ id: client.id! })); setClient(await adminClient.clients.findOne({ id: client.id! }));
addAlert(t("common:mappingCreatedSuccess"), AlertVariant.success); addAlert(t("mappingCreatedSuccess"), AlertVariant.success);
} catch (error) { } catch (error) {
addError("common:mappingCreatedError", error); addError("mappingCreatedError", error);
} }
} }
}; };
@ -88,9 +88,9 @@ export default function DedicatedScopes() {
(m) => m.id !== mapper.id, (m) => m.id !== mapper.id,
), ),
}); });
addAlert(t("common:mappingDeletedSuccess"), AlertVariant.success); addAlert(t("mappingDeletedSuccess"), AlertVariant.success);
} catch (error) { } catch (error) {
addError("common:mappingDeletedError", error); addError("mappingDeletedError", error);
} }
return true; return true;
}; };

View file

@ -62,7 +62,7 @@ const ProtocolMappers = ({
columns={[ columns={[
{ {
name: "mapperName", name: "mapperName",
displayKey: "common:name", displayKey: "name",
}, },
{ {
name: "containerName", name: "containerName",
@ -70,11 +70,11 @@ const ProtocolMappers = ({
}, },
{ {
name: "type.category", name: "type.category",
displayKey: "common:category", displayKey: "category",
}, },
{ {
name: "type.priority", name: "type.priority",
displayKey: "common:priority", displayKey: "priority",
}, },
]} ]}
/> />

View file

@ -41,7 +41,7 @@ export const GroupBreadCrumbs = () => {
</Link> </Link>
)} )}
{isLastGroup && {isLastGroup &&
(group.id === "search" ? group.name : t("groups:groupDetails"))} (group.id === "search" ? group.name : t("groupDetails"))}
</BreadcrumbItem> </BreadcrumbItem>
); );
})} })}

Some files were not shown because too many files have changed in this diff Show more