계정 권한 메뉴 이름에 다국어 지원 추가
- PermItem 타입에 menuNameEng 속성 추가 - 메뉴 권한 목록/아이템/페이지에서 현재 언어에 따라 메뉴 이름 선택 - 영어 번역 파일에 사용자 삭제 관련 번역 키 추가 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,11 @@ export interface UserAccountAuthWrapProps {
|
||||
};
|
||||
export interface PermItem {
|
||||
menuId?: number;
|
||||
parent?: number;
|
||||
menuName?: string;
|
||||
menuNameEng?: string;
|
||||
iconFilePath?: string;
|
||||
programPath?: string;
|
||||
subMenu?: Array<PermItem>;
|
||||
};
|
||||
export interface UserAccountAuthPermListProps {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { PATHS } from '@/shared/constants/paths';
|
||||
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
|
||||
import { UserAccountAuthPermItemProps } from '../model/types';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
|
||||
export const UserAccountAuthPermItem = ({
|
||||
mid,
|
||||
@@ -13,8 +14,16 @@ export const UserAccountAuthPermItem = ({
|
||||
menuGrants,
|
||||
}: UserAccountAuthPermItemProps) => {
|
||||
const { navigate } = useNavigate();
|
||||
const { i18n } = useTranslation();
|
||||
const isEnglish = i18n.language === 'en';
|
||||
|
||||
const onClickToNavigation = () => {
|
||||
// 현재 언어에 맞게 서브메뉴도 변환
|
||||
const localizedSubMenu = subMenu.map(sub => ({
|
||||
...sub,
|
||||
menuName: isEnglish ? (sub.menuNameEng || sub.menuName) : sub.menuName
|
||||
}));
|
||||
|
||||
navigate(PATHS.account.user.menuAuth, {
|
||||
state: {
|
||||
mid: mid,
|
||||
@@ -23,7 +32,7 @@ export const UserAccountAuthPermItem = ({
|
||||
status: status,
|
||||
menuId: menuId,
|
||||
menuName: menuName,
|
||||
subMenu: subMenu,
|
||||
subMenu: localizedSubMenu,
|
||||
menuGrants: menuGrants,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { UserAccountAuthPermListProps } from '../model/types';
|
||||
import { UserAccountAuthPermItem } from './user-account-auth-perm-item';
|
||||
|
||||
@@ -9,6 +10,9 @@ export const UserAccountAuthPermList = ({
|
||||
menuItems,
|
||||
menuGrants,
|
||||
}: UserAccountAuthPermListProps) => {
|
||||
const { i18n } = useTranslation();
|
||||
const isEnglish = i18n.language === 'en';
|
||||
|
||||
return (
|
||||
<div className="perm-list">
|
||||
{menuItems.map((item, index) => {
|
||||
@@ -18,6 +22,9 @@ export const UserAccountAuthPermList = ({
|
||||
subMenuIds.includes(grant.menuId)
|
||||
);
|
||||
|
||||
// 현재 언어에 맞는 메뉴 이름 선택
|
||||
const menuName = isEnglish ? (item.menuNameEng ?? item.menuName ?? '') : (item.menuName ?? '');
|
||||
|
||||
return (
|
||||
<UserAccountAuthPermItem
|
||||
key={`perm-${item.menuId || index}`}
|
||||
@@ -26,7 +33,7 @@ export const UserAccountAuthPermList = ({
|
||||
idCL={idCL}
|
||||
status={status}
|
||||
menuId={item.menuId}
|
||||
menuName={item.menuName ?? ''}
|
||||
menuName={menuName}
|
||||
subMenu={item.subMenu ?? []}
|
||||
menuGrants={relevantGrants}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user