From 01b03f57efd544f53e30167c996192bb202755ee Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Wed, 6 Nov 2024 20:53:45 +0900 Subject: [PATCH 01/11] =?UTF-8?q?refactor:=20=EB=B2=88=EC=97=AD=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 고용주 마이페이지, 내 회사 페이지, 지원자 목록 페이지, 외국인 번호 및 비자 발급 일자 등록 페이지 번역 데이터 수정 --- .../translator/Applicants/applicantsData.ts | 32 +++++++++++++++++++ src/assets/translator/Applicants/ko.ts | 14 -------- src/assets/translator/Applicants/ve.ts | 14 -------- .../EmployerMyPage/EmployerMyPageData.ts | 18 +++++++++++ src/assets/translator/EmployerMyPage/ko.ts | 7 ---- src/assets/translator/EmployerMyPage/ve.ts | 7 ---- .../translator/MyCompany/MyCompanyData.ts | 30 +++++++++++++++++ src/assets/translator/MyCompany/ko.ts | 13 -------- src/assets/translator/MyCompany/ve.ts | 13 -------- .../RegisterVisa/RegisterVisaData.ts | 20 ++++++++++++ src/assets/translator/RegisterVisa/ko.ts | 8 ----- src/assets/translator/RegisterVisa/ve.ts | 8 ----- .../Recruitments/RecruitmentInfo.tsx | 2 +- .../Recruitments/RecruitmentsTable.tsx | 2 +- 14 files changed, 102 insertions(+), 86 deletions(-) create mode 100644 src/assets/translator/Applicants/applicantsData.ts delete mode 100644 src/assets/translator/Applicants/ko.ts delete mode 100644 src/assets/translator/Applicants/ve.ts create mode 100644 src/assets/translator/EmployerMyPage/EmployerMyPageData.ts delete mode 100644 src/assets/translator/EmployerMyPage/ko.ts delete mode 100644 src/assets/translator/EmployerMyPage/ve.ts create mode 100644 src/assets/translator/MyCompany/MyCompanyData.ts delete mode 100644 src/assets/translator/MyCompany/ko.ts delete mode 100644 src/assets/translator/MyCompany/ve.ts create mode 100644 src/assets/translator/RegisterVisa/RegisterVisaData.ts delete mode 100644 src/assets/translator/RegisterVisa/ko.ts delete mode 100644 src/assets/translator/RegisterVisa/ve.ts diff --git a/src/assets/translator/Applicants/applicantsData.ts b/src/assets/translator/Applicants/applicantsData.ts new file mode 100644 index 0000000..c4e365e --- /dev/null +++ b/src/assets/translator/Applicants/applicantsData.ts @@ -0,0 +1,32 @@ +import { Languages } from '../Languages'; + +export const applicantsData = { + [Languages.KO]: { + APPLICANT_LIST: '지원자 목록', + TOTAL_APPLICANTS: (count: number) => `총 ${count}명`, + VIEW_DETAILS: '자세히 보러가기', + TABLE_HEADERS: { + NAME: '이름', + NATION: '국적', + KOREAN_LANGUAGE_LEVEL: '한국어 실력', + }, + BUTTONS: { + VIEW_RESUME: '지원서', + CREATE_CONTRACT: '계약하기', + }, + }, + [Languages.VE]: { + APPLICANT_LIST: 'Danh sách ứng viên', + TOTAL_APPLICANTS: (count: number) => `Tổng cộng ${count} người`, + VIEW_DETAILS: 'Xem chi tiết', + TABLE_HEADERS: { + NAME: 'Tên', + NATION: 'Quốc tịch', + KOREAN_LANGUAGE_LEVEL: 'Trình độ tiếng Hàn', + }, + BUTTONS: { + VIEW_RESUME: 'Hồ sơ ứng tuyển', + CREATE_CONTRACT: 'Ký hợp đồng', + }, + }, +}; diff --git a/src/assets/translator/Applicants/ko.ts b/src/assets/translator/Applicants/ko.ts deleted file mode 100644 index a3ab2f9..0000000 --- a/src/assets/translator/Applicants/ko.ts +++ /dev/null @@ -1,14 +0,0 @@ -export const Applicants = { - APPLICANT_LIST: '지원자 목록', - TOTAL_APPLICANTS: (count: number) => `총 ${count}명`, - VIEW_DETAILS: '자세히 보러가기', - TABLE_HEADERS: { - NAME: '이름', - NATION: '국적', - KOREAN_LANGUAGE_LEVEL: '한국어 실력', - }, - BUTTONS: { - VIEW_RESUME: '지원서', - CREATE_CONTRACT: '계약하기', - }, -}; diff --git a/src/assets/translator/Applicants/ve.ts b/src/assets/translator/Applicants/ve.ts deleted file mode 100644 index 009b210..0000000 --- a/src/assets/translator/Applicants/ve.ts +++ /dev/null @@ -1,14 +0,0 @@ -export const Applicants = { - APPLICANT_LIST: 'Danh sách ứng viên', - TOTAL_APPLICANTS: (count: number) => `Tổng cộng ${count} người`, - VIEW_DETAILS: 'Xem chi tiết', - TABLE_HEADERS: { - NAME: 'Tên', - NATION: 'Quốc tịch', - KOREAN_LANGUAGE_LEVEL: 'Trình độ tiếng Hàn', - }, - BUTTONS: { - VIEW_RESUME: 'Hồ sơ ứng tuyển', - CREATE_CONTRACT: 'Ký hợp đồng', - }, -}; diff --git a/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts b/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts new file mode 100644 index 0000000..093680c --- /dev/null +++ b/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts @@ -0,0 +1,18 @@ +import { Languages } from '../Languages'; + +export const EmployerMyPageData = { + [Languages.KO]: { + GREETING: '사장님, 안녕하세요!', + REGISTER_SIGN: '사인 등록', + MY_COMPANIES: '내 회사', + TOTAL_COMPANIES: (count: number) => `총 ${count} 곳`, + COMPANY_INFO: '회사 정보', + }, + [Languages.VE]: { + GREETING: 'Chủ doanh nghiệp, xin chào!', + REGISTER_SIGN: 'Đăng ký chữ ký', + MY_COMPANIES: 'Công ty của tôi', + TOTAL_COMPANIES: (count: number) => `Tổng cộng ${count} công ty`, + COMPANY_INFO: 'Thông tin công ty', + }, +}; diff --git a/src/assets/translator/EmployerMyPage/ko.ts b/src/assets/translator/EmployerMyPage/ko.ts deleted file mode 100644 index 257c548..0000000 --- a/src/assets/translator/EmployerMyPage/ko.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const EmployerMyPage = { - GREETING: '사장님, 안녕하세요!', - REGISTER_SIGN: '사인 등록', - MY_COMPANIES: '내 회사', - TOTAL_COMPANIES: (count: number) => `총 ${count} 곳`, - COMPANY_INFO: '회사 정보', -}; diff --git a/src/assets/translator/EmployerMyPage/ve.ts b/src/assets/translator/EmployerMyPage/ve.ts deleted file mode 100644 index d753486..0000000 --- a/src/assets/translator/EmployerMyPage/ve.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const EmployerMyPage = { - GREETING: 'Chủ doanh nghiệp, xin chào!', - REGISTER_SIGN: 'Đăng ký chữ ký', - MY_COMPANIES: 'Công ty của tôi', - TOTAL_COMPANIES: (count: number) => `Tổng cộng ${count} công ty`, - COMPANY_INFO: 'Thông tin công ty', -}; diff --git a/src/assets/translator/MyCompany/MyCompanyData.ts b/src/assets/translator/MyCompany/MyCompanyData.ts new file mode 100644 index 0000000..3246bb3 --- /dev/null +++ b/src/assets/translator/MyCompany/MyCompanyData.ts @@ -0,0 +1,30 @@ +import { Languages } from '../Languages'; + +export const MyCompanyData = { + [Languages.KO]: { + MY_RECRUITMENTS: '내 공고글', + TOTAL_RECRUITMENTS: (count: number) => `총 ${count}건`, + TABLE_HEADERS: { + LOCATION: '근무지', + TITLE: '공고 제목', + }, + BUTTONS: { + VIEW_APPLICANTS: '지원자 보러가기', + CLOSE_RECRUITMENT: '마감하기', + CLOSED_RECRUITMENT: '마감완료', + }, + }, + [Languages.VE]: { + MY_RECRUITMENTS: 'Thông báo tuyển dụng của tôi', + TOTAL_RECRUITMENTS: (count: number) => `Tổng cộng ${count} bài`, + TABLE_HEADERS: { + LOCATION: 'Nơi làm việc', + TITLE: 'Tiêu đề thông báo', + }, + BUTTONS: { + VIEW_APPLICANTS: 'Xem người ứng tuyển', + CLOSE_RECRUITMENT: 'Đóng tuyển dụng', + CLOSED_RECRUITMENT: 'Đã đóng tuyển dụng', + }, + }, +}; diff --git a/src/assets/translator/MyCompany/ko.ts b/src/assets/translator/MyCompany/ko.ts deleted file mode 100644 index b5d488e..0000000 --- a/src/assets/translator/MyCompany/ko.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const MyCompany = { - MY_RECRUITMENTS: '내 공고글', - TOTAL_RECRUITMENTS: (count: number) => `총 ${count}건`, - TABLE_HEADERS: { - LOCATION: '근무지', - TITLE: '공고 제목', - }, - BUTTONS: { - VIEW_APPLICANTS: '지원자 보러가기', - CLOSE_RECRUITMENT: '마감하기', - CLOSED_RECRUITMENT: '마감완료', - }, -}; diff --git a/src/assets/translator/MyCompany/ve.ts b/src/assets/translator/MyCompany/ve.ts deleted file mode 100644 index e78fea3..0000000 --- a/src/assets/translator/MyCompany/ve.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const MyCompany = { - MY_RECRUITMENTS: 'Thông báo tuyển dụng của tôi', - TOTAL_RECRUITMENTS: (count: number) => `Tổng cộng ${count} bài`, - TABLE_HEADERS: { - LOCATION: 'Nơi làm việc', - TITLE: 'Tiêu đề thông báo', - }, - BUTTONS: { - VIEW_APPLICANTS: 'Xem người ứng tuyển', - CLOSE_RECRUITMENT: 'Đóng tuyển dụng', - CLOSED_RECRUITMENT: 'Đã đóng tuyển dụng', - }, -}; diff --git a/src/assets/translator/RegisterVisa/RegisterVisaData.ts b/src/assets/translator/RegisterVisa/RegisterVisaData.ts new file mode 100644 index 0000000..7f3eda2 --- /dev/null +++ b/src/assets/translator/RegisterVisa/RegisterVisaData.ts @@ -0,0 +1,20 @@ +import { Languages } from '../Languages'; + +export const RegisterVisaData = { + [Languages.KO]: { + TITLE: '외국인 번호 및 비자 발급 일자 등록', + LABELS: { + FOREIGNER_NUMBER: '외국인 번호', + VISA_GENERATE_DATE: '비자 발급 일자', + }, + SUBMIT: '등록하기', + }, + [Languages.VE]: { + TITLE: 'Đăng ký số người nước ngoài và ngày cấp thị thực', + LABELS: { + FOREIGNER_NUMBER: 'Số người nước ngoài', + VISA_GENERATE_DATE: 'Ngày cấp thị thực', + }, + SUBMIT: 'Đăng ký', + }, +}; diff --git a/src/assets/translator/RegisterVisa/ko.ts b/src/assets/translator/RegisterVisa/ko.ts deleted file mode 100644 index 87226fe..0000000 --- a/src/assets/translator/RegisterVisa/ko.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const RegisterVisa = { - TITLE: '외국인 번호 및 비자 발급 일자 등록', - LABELS: { - FOREIGNER_NUMBER: '외국인 번호', - VISA_GENERATE_DATE: '비자 발급 일자', - }, - SUBMIT: '등록하기', -}; diff --git a/src/assets/translator/RegisterVisa/ve.ts b/src/assets/translator/RegisterVisa/ve.ts deleted file mode 100644 index 6e500fe..0000000 --- a/src/assets/translator/RegisterVisa/ve.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const RegisterVisa = { - TITLE: 'Đăng ký số người nước ngoài và ngày cấp thị thực', - LABELS: { - FOREIGNER_NUMBER: 'Số người nước ngoài', - VISA_GENERATE_DATE: 'Ngày cấp thị thực', - }, - SUBMIT: 'Đăng ký', -}; diff --git a/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx b/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx index bbe4f07..897c7e2 100644 --- a/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx +++ b/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx @@ -29,7 +29,7 @@ export default function RecruitmentInfo({ }: Props) { const { language } = useLanguage(); const navigate = useNavigate(); - const title = language === 'korean' ? koreanTitle : vietnameseTitle; + const title = language === 'ko' ? koreanTitle : vietnameseTitle; const goToRecruitmentDetails = (recruitmentId: number) => { navigate(ROUTE_PATH.RECRUIT.replace(':recruitmentId', recruitmentId.toString())); diff --git a/src/pages/myCompanyPage/Recruitments/RecruitmentsTable.tsx b/src/pages/myCompanyPage/Recruitments/RecruitmentsTable.tsx index 8db95ed..c1def15 100644 --- a/src/pages/myCompanyPage/Recruitments/RecruitmentsTable.tsx +++ b/src/pages/myCompanyPage/Recruitments/RecruitmentsTable.tsx @@ -56,7 +56,7 @@ export default function RecruitmentsTable({ recruitmentList }: Props) { {recruitment.companyName} - {language === 'vietnamese' ? recruitment.vietnameseTitle : recruitment.koreanTitle} + {language === 've' ? recruitment.vietnameseTitle : recruitment.koreanTitle} From e59cdd283194cb230d895100c3fa1b2224ec2941 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Wed, 6 Nov 2024 21:46:48 +0900 Subject: [PATCH 02/11] =?UTF-8?q?feat:=20=EA=B3=A0=EC=9A=A9=EC=A3=BC=20?= =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmployerMyPage/EmployerMyPageData.ts | 22 +++++++++---------- src/assets/translator/index.ts | 11 ++++++++-- .../employer/Companies/CompaniesTable.tsx | 4 +++- .../myPage/employer/Companies/CompanyList.tsx | 7 ++++-- src/pages/myPage/employer/EmPloyerMyPage.tsx | 6 +++-- 5 files changed, 32 insertions(+), 18 deletions(-) diff --git a/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts b/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts index 093680c..9d45438 100644 --- a/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts +++ b/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts @@ -1,18 +1,18 @@ import { Languages } from '../Languages'; -export const EmployerMyPageData = { +export const employerMyPageData = { [Languages.KO]: { - GREETING: '사장님, 안녕하세요!', - REGISTER_SIGN: '사인 등록', - MY_COMPANIES: '내 회사', - TOTAL_COMPANIES: (count: number) => `총 ${count} 곳`, - COMPANY_INFO: '회사 정보', + greeting: '사장님, 안녕하세요!', + register_sign: '사인 등록', + my_companies: '내 회사', + total_companies: '총 {{count}} 곳', + company_info: '회사 정보', }, [Languages.VE]: { - GREETING: 'Chủ doanh nghiệp, xin chào!', - REGISTER_SIGN: 'Đăng ký chữ ký', - MY_COMPANIES: 'Công ty của tôi', - TOTAL_COMPANIES: (count: number) => `Tổng cộng ${count} công ty`, - COMPANY_INFO: 'Thông tin công ty', + greeting: 'Chủ doanh nghiệp, xin chào!', + register_sign: 'Đăng ký chữ ký', + my_companies: 'Công ty của tôi', + total_companies: 'Tổng cộng {{count}} công ty', + company_info: 'Thông tin công ty', }, }; diff --git a/src/assets/translator/index.ts b/src/assets/translator/index.ts index 4e74f12..7ea218d 100644 --- a/src/assets/translator/index.ts +++ b/src/assets/translator/index.ts @@ -1,6 +1,13 @@ +import { employerMyPageData } from './EmployerMyPage/EmployerMyPageData'; import { Languages } from './Languages'; import { resumeData } from './Resume/resumeData'; -export const KO = { resume: { ...resumeData[Languages.KO] } }; +export const KO = { + resume: { ...resumeData[Languages.KO] }, + employerMyPage: { ...employerMyPageData[Languages.KO] }, +}; -export const VE = { resume: { ...resumeData[Languages.VE] } }; +export const VE = { + resume: { ...resumeData[Languages.VE] }, + employerMyPage: { ...employerMyPageData[Languages.VE] }, +}; diff --git a/src/pages/myPage/employer/Companies/CompaniesTable.tsx b/src/pages/myPage/employer/Companies/CompaniesTable.tsx index 781ff61..707a6ae 100644 --- a/src/pages/myPage/employer/Companies/CompaniesTable.tsx +++ b/src/pages/myPage/employer/Companies/CompaniesTable.tsx @@ -4,6 +4,7 @@ import CompanyInfo from '@/pages/myPage/employer/Companies/CompanyInfo'; import { cellStyle, imageSize, imageStyle } from './CompaniesTable.styles'; import { useNavigate } from 'react-router-dom'; import ROUTE_PATH from '@/routes/path'; +import { useTranslation } from 'react-i18next'; type Props = { companyList: CompanyData[]; @@ -11,6 +12,7 @@ type Props = { export default function CompaniesTable({ companyList }: Props) { const navigate = useNavigate(); + const { t } = useTranslation(); const goToMyCompany = (companyId: number) => { navigate(ROUTE_PATH.MY_COMPANY.replace(':companyId', companyId.toString())); @@ -20,7 +22,7 @@ export default function CompaniesTable({ companyList }: Props) { - + diff --git a/src/pages/myPage/employer/Companies/CompanyList.tsx b/src/pages/myPage/employer/Companies/CompanyList.tsx index 3975af0..844fe5a 100644 --- a/src/pages/myPage/employer/Companies/CompanyList.tsx +++ b/src/pages/myPage/employer/Companies/CompanyList.tsx @@ -1,20 +1,23 @@ import { Flex, Typo } from '@/components/common'; import CompaniesTable from './CompaniesTable'; import { CompanyData } from '@/types'; +import { useTranslation } from 'react-i18next'; type Props = { companyList: CompanyData[]; }; export default function CompanyList({ companyList }: Props) { + const { t } = useTranslation(); + return ( - 내 회사 + {t('employerMyPage.my_companies')} - 총 {companyList.length}곳 + {t('employerMyPage.total_companies', { count: companyList.length })} diff --git a/src/pages/myPage/employer/EmPloyerMyPage.tsx b/src/pages/myPage/employer/EmPloyerMyPage.tsx index 27a3072..9940156 100644 --- a/src/pages/myPage/employer/EmPloyerMyPage.tsx +++ b/src/pages/myPage/employer/EmPloyerMyPage.tsx @@ -5,9 +5,11 @@ import { flexStyle, innerContainerStyle, signButtonStyle, spinnerFlexStyle, typo import { useGetMyCompanies } from '@/apis/companies/hooks/useGetMyCompanies'; import { useNavigate } from 'react-router-dom'; import ROUTE_PATH from '@/routes/path'; +import { useTranslation } from 'react-i18next'; export default function EmployerMyPage() { const { data: companyList, isLoading } = useGetMyCompanies(); + const { t } = useTranslation(); const navigate = useNavigate(); const goToSignPage = () => { @@ -21,12 +23,12 @@ export default function EmployerMyPage() { - 사장님, 안녕하세요! + {t('employerMyPage.greeting')}
회사 정보{t('employerMyPage.company_info')}
- - + + @@ -61,7 +63,7 @@ export default function RecruitmentsTable({ recruitmentList }: Props) { From 360ef91e003f6dafdd3827c8983d144f1113efc8 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Wed, 6 Nov 2024 22:33:53 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20=EC=A7=80=EC=9B=90=EC=9E=90=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../translator/Applicants/applicantsData.ts | 42 ++++++++++--------- src/assets/translator/index.ts | 3 ++ .../ApplicantList/ApplicantsTable.tsx | 12 +++--- .../applicantsPage/ApplicantList/index.tsx | 7 +++- .../Recruitments/RecruitmentInfo.tsx | 8 +++- 5 files changed, 43 insertions(+), 29 deletions(-) diff --git a/src/assets/translator/Applicants/applicantsData.ts b/src/assets/translator/Applicants/applicantsData.ts index c4e365e..246877b 100644 --- a/src/assets/translator/Applicants/applicantsData.ts +++ b/src/assets/translator/Applicants/applicantsData.ts @@ -2,31 +2,33 @@ import { Languages } from '../Languages'; export const applicantsData = { [Languages.KO]: { - APPLICANT_LIST: '지원자 목록', - TOTAL_APPLICANTS: (count: number) => `총 ${count}명`, - VIEW_DETAILS: '자세히 보러가기', - TABLE_HEADERS: { - NAME: '이름', - NATION: '국적', - KOREAN_LANGUAGE_LEVEL: '한국어 실력', + salary: '시급', + applicant_list: '지원자 목록', + total_applicants: '총 {{count}}명', + view_details: '자세히 보러가기', + table_headers: { + name: '이름', + nation: '국적', + korean_language_level: '한국어 실력', }, - BUTTONS: { - VIEW_RESUME: '지원서', - CREATE_CONTRACT: '계약하기', + buttons: { + view_resume: '지원서', + create_contract: '계약하기', }, }, [Languages.VE]: { - APPLICANT_LIST: 'Danh sách ứng viên', - TOTAL_APPLICANTS: (count: number) => `Tổng cộng ${count} người`, - VIEW_DETAILS: 'Xem chi tiết', - TABLE_HEADERS: { - NAME: 'Tên', - NATION: 'Quốc tịch', - KOREAN_LANGUAGE_LEVEL: 'Trình độ tiếng Hàn', + salary: 'Lương theo giờ', + applicant_list: 'Danh sách ứng viên', + total_applicants: 'Tổng cộng {{count}} người', + view_details: 'Xem chi tiết', + table_headers: { + name: 'Tên', + nation: 'Quốc tịch', + korean_language_level: 'Trình độ tiếng Hàn', }, - BUTTONS: { - VIEW_RESUME: 'Hồ sơ ứng tuyển', - CREATE_CONTRACT: 'Ký hợp đồng', + buttons: { + view_resume: 'Hồ sơ ứng tuyển', + create_contract: 'Ký hợp đồng', }, }, }; diff --git a/src/assets/translator/index.ts b/src/assets/translator/index.ts index a80c985..bd7ea18 100644 --- a/src/assets/translator/index.ts +++ b/src/assets/translator/index.ts @@ -1,3 +1,4 @@ +import { applicantsData } from './Applicants/applicantsData'; import { employerMyPageData } from './EmployerMyPage/employerMyPageData'; import { Languages } from './Languages'; import { myCompanyData } from './MyCompany/myCompanyData'; @@ -7,10 +8,12 @@ export const KO = { resume: { ...resumeData[Languages.KO] }, employerMyPage: { ...employerMyPageData[Languages.KO] }, myCompany: { ...myCompanyData[Languages.KO] }, + applicants: { ...applicantsData[Languages.KO] }, }; export const VE = { resume: { ...resumeData[Languages.VE] }, employerMyPage: { ...employerMyPageData[Languages.VE] }, myCompany: { ...myCompanyData[Languages.VE] }, + applicants: { ...applicantsData[Languages.VE] }, }; diff --git a/src/pages/applicantsPage/ApplicantList/ApplicantsTable.tsx b/src/pages/applicantsPage/ApplicantList/ApplicantsTable.tsx index 4720909..50ca2a7 100644 --- a/src/pages/applicantsPage/ApplicantList/ApplicantsTable.tsx +++ b/src/pages/applicantsPage/ApplicantList/ApplicantsTable.tsx @@ -5,6 +5,7 @@ import { ApplicantData } from '@/types'; import { buttonGroupStyle, buttonsCellStyle, buttonStyle } from './ApplicantsTable.styles'; import ApplicantProfile from '../ApplicantList/ApplicantProfile'; import useToggle from '@/hooks/useToggle'; +import { useTranslation } from 'react-i18next'; type IdProps = { resumeId: number; @@ -20,6 +21,7 @@ export default function ApplicantsTable({ applicantList }: Props) { const [selectedUserId, setSelectedUserId] = useState(null); const [isToggle, toggle] = useToggle(); const [selectedApplyId, setSelectedApplyId] = useState(null); + const { t } = useTranslation(); const openModal = (userId: number, applyId: number) => { setSelectedUserId(userId); @@ -42,9 +44,9 @@ export default function ApplicantsTable({ applicantList }: Props) {
근무지공고 제목{t('myCompany.table_headers.location')}{t('myCompany.table_headers.title')}
- - - + + + @@ -62,10 +64,10 @@ export default function ApplicantsTable({ applicantList }: Props) { onClick={() => profileOpenModal({ resumeId: applicant.resumeId, applyId: applicant.applyId })} css={buttonStyle} > - 지원서 + {t('applicants.buttons.view_resume')} diff --git a/src/pages/applicantsPage/ApplicantList/index.tsx b/src/pages/applicantsPage/ApplicantList/index.tsx index 4b6d3e2..a4e83ce 100644 --- a/src/pages/applicantsPage/ApplicantList/index.tsx +++ b/src/pages/applicantsPage/ApplicantList/index.tsx @@ -1,20 +1,23 @@ import { Flex, Typo } from '@/components/common'; import ApplicantsTable from './ApplicantsTable'; import { ApplicantData } from '@/types'; +import { useTranslation } from 'react-i18next'; type Props = { applicantList: ApplicantData[]; }; export default function ApplicantList({ applicantList }: Props) { + const { t } = useTranslation(); + return ( - 지원자 목록 + {t('applicants.applicant_list')} - 총 {applicantList.length}명 + {t('applicants.total_applicants', { count: applicantList.length })} diff --git a/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx b/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx index 897c7e2..2da0a2d 100644 --- a/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx +++ b/src/pages/myCompanyPage/Recruitments/RecruitmentInfo.tsx @@ -15,6 +15,7 @@ import { import { useLanguage } from '@/components/providers/Language.provider'; import { useNavigate } from 'react-router-dom'; import ROUTE_PATH from '@/routes/path'; +import { useTranslation } from 'react-i18next'; type Props = Omit; @@ -30,6 +31,7 @@ export default function RecruitmentInfo({ const { language } = useLanguage(); const navigate = useNavigate(); const title = language === 'ko' ? koreanTitle : vietnameseTitle; + const { t } = useTranslation(); const goToRecruitmentDetails = (recruitmentId: number) => { navigate(ROUTE_PATH.RECRUIT.replace(':recruitmentId', recruitmentId.toString())); @@ -52,14 +54,16 @@ export default function RecruitmentInfo({ - 시급 {salary} + + {t('applicants.salary')} {salary} + {isModalOpen && ( 확인} + textChildren={t('registerVisa.complete_message')} + buttonChildren={} onClose={closeModal} /> )} diff --git a/src/pages/registerVisa/RegisterVisa.styles.ts b/src/pages/registerVisa/RegisterVisa.styles.ts index 318aed3..a0f19c7 100644 --- a/src/pages/registerVisa/RegisterVisa.styles.ts +++ b/src/pages/registerVisa/RegisterVisa.styles.ts @@ -1,7 +1,6 @@ import { palettes } from '@/assets/styles/global/palettes'; import { responsiveStyle } from '@/utils/responsive'; import { css } from '@emotion/react'; -import styled from '@emotion/styled'; export const innerContainerStyle = css` ${responsiveStyle({ @@ -22,16 +21,12 @@ export const innerContainerStyle = css` `; export const titleStyle = { - fontWeight: 'bold', -}; - -export const BreakableText = styled.span` - ${responsiveStyle({ + ...responsiveStyle({ default: { - display: 'inline', + fontWeight: 'bold', }, mobile: { - display: 'block', + padding: '0 50px', }, - })} -`; + }), +}; diff --git a/src/pages/registerVisa/RegisterVisa.tsx b/src/pages/registerVisa/RegisterVisa.tsx index 2df9e07..9339257 100644 --- a/src/pages/registerVisa/RegisterVisa.tsx +++ b/src/pages/registerVisa/RegisterVisa.tsx @@ -1,9 +1,12 @@ import { Flex, InnerContainer, Typo } from '@/components/common'; import Layout from '@/features/layout'; import VisaRegistrationForm from '@/features/registerVisa/VisaRegistrationForm'; -import { BreakableText, innerContainerStyle, titleStyle } from './RegisterVisa.styles'; +import { innerContainerStyle, titleStyle } from './RegisterVisa.styles'; +import { useTranslation } from 'react-i18next'; export default function RegisterVisa() { + const { t } = useTranslation(); + return (
@@ -16,7 +19,7 @@ export default function RegisterVisa() { css={{ height: '100%' }} > - 외국인 번호 및 비자 발급 일자 등록 + {t('registerVisa.title')} From 078733abdb0570e01998cf7c51e665d324cf39c5 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Thu, 7 Nov 2024 00:35:15 +0900 Subject: [PATCH 06/11] =?UTF-8?q?feat:=20=EA=B3=84=EC=95=BD=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=ED=8C=9D=EC=97=85=EC=B0=BD=20=EB=B2=88=EC=97=AD=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractModal/contractModalData.ts | 35 +++++++++++++++++ src/assets/translator/index.ts | 3 ++ .../ApplicantList/Contract/ModalButtons.tsx | 6 ++- .../ApplicantList/Contract/ModalText.tsx | 39 +++++++++++-------- 4 files changed, 64 insertions(+), 19 deletions(-) create mode 100644 src/assets/translator/Applicants/ContractModal/contractModalData.ts diff --git a/src/assets/translator/Applicants/ContractModal/contractModalData.ts b/src/assets/translator/Applicants/ContractModal/contractModalData.ts new file mode 100644 index 0000000..814ae04 --- /dev/null +++ b/src/assets/translator/Applicants/ContractModal/contractModalData.ts @@ -0,0 +1,35 @@ +import { Languages } from '../../Languages'; + +export const contractModalData = { + [Languages.KO]: { + title: '고용주님께 드리는 주의사항', + warning: '불법 체류자를 고용할 시 최대 200만원의 범칙금이 부과될 수 있습니다.', + applicant_info: '지원자 정보', + foreigner_number: '외국인 등록 번호', + visa_generate_date: '비자 발급 일자', + message: { + part1: '이 지원자의 정보를 활용하여 <0>Hi Korea에서 지원자에 대한 불법 체류 여부를 검증할 수 있습니다.', + part2: '안전한 고용을 위해 확인 후 진행하는 것을 권장합니다.', + }, + buttons: { + confirm: '확인하였습니다.', + cancel: '취소', + }, + }, + [Languages.VE]: { + title: 'Lời khuyên dành cho nhà tuyển dụng', + warning: 'Nếu thuê người lưu trú bất hợp pháp, bạn có thể bị phạt tối đa 2 triệu won.', + applicant_info: 'Thông tin ứng viên', + foreigner_number: 'Số đăng ký người nước ngoài', + visa_generate_date: 'Ngày cấp visa', + message: { + part1: + 'Bạn có thể sử dụng thông tin của người này để kiểm tra tình trạng cư trú bất hợp pháp tại <0>Hi Korea.', + part2: 'Chúng tôi khuyến nghị bạn kiểm tra kỹ trước khi tiến hành để đảm bảo an toàn trong việc tuyển dụng.', + }, + buttons: { + confirm: 'Tôi đã hiểu', + cancel: 'Hủy bỏ', + }, + }, +}; diff --git a/src/assets/translator/index.ts b/src/assets/translator/index.ts index 1a378e7..08cb42c 100644 --- a/src/assets/translator/index.ts +++ b/src/assets/translator/index.ts @@ -1,4 +1,5 @@ import { applicantsData } from './Applicants/applicantsData'; +import { contractModalData } from './Applicants/ContractModal/contractModalData'; import { employerMyPageData } from './EmployerMyPage/employerMyPageData'; import { Languages } from './Languages'; import { myCompanyData } from './MyCompany/myCompanyData'; @@ -11,6 +12,7 @@ export const KO = { myCompany: { ...myCompanyData[Languages.KO] }, applicants: { ...applicantsData[Languages.KO] }, registerVisa: { ...registerVisaData[Languages.KO] }, + contractModal: { ...contractModalData[Languages.KO] }, }; export const VE = { @@ -19,4 +21,5 @@ export const VE = { myCompany: { ...myCompanyData[Languages.VE] }, applicants: { ...applicantsData[Languages.VE] }, registerVisa: { ...registerVisaData[Languages.VE] }, + contractModal: { ...contractModalData[Languages.VE] }, }; diff --git a/src/pages/applicantsPage/ApplicantList/Contract/ModalButtons.tsx b/src/pages/applicantsPage/ApplicantList/Contract/ModalButtons.tsx index 0837f78..9a3b9f1 100644 --- a/src/pages/applicantsPage/ApplicantList/Contract/ModalButtons.tsx +++ b/src/pages/applicantsPage/ApplicantList/Contract/ModalButtons.tsx @@ -2,6 +2,7 @@ import { Button, Flex, Icon, Typo } from '@/components/common'; import { buttonTextStyle, customButtonStyle } from './ModalButtons.styles'; import { useNavigate } from 'react-router-dom'; import ROUTE_PATH from '@/routes/path'; +import { useTranslation } from 'react-i18next'; interface ModalButtonsProps { applyId: number; @@ -10,6 +11,7 @@ interface ModalButtonsProps { export default function ModalButtons({ applyId, onClose }: ModalButtonsProps) { const navigate = useNavigate(); + const { t } = useTranslation(); const goToEmployer = () => { navigate(ROUTE_PATH.CONTRACT.EMPLOYER.replace(':applyId', applyId.toString())); @@ -17,11 +19,11 @@ export default function ModalButtons({ applyId, onClose }: ModalButtonsProps) { return ( - + ) : ( <> {user.type === 'employer' && ( )} )} From ee475cb1919ee92a6cb145f7d2bad1ca2c19c585 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Thu, 7 Nov 2024 01:22:09 +0900 Subject: [PATCH 08/11] =?UTF-8?q?refactor:=20CompanyInfo=20=EB=B0=98?= =?UTF-8?q?=EC=9D=91=ED=98=95=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/myCompanyPage/MyCompany.tsx | 11 +++-------- .../myPage/employer/Companies/CompanyInfo.styles.ts | 8 ++------ 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/pages/myCompanyPage/MyCompany.tsx b/src/pages/myCompanyPage/MyCompany.tsx index db22a68..4020b10 100644 --- a/src/pages/myCompanyPage/MyCompany.tsx +++ b/src/pages/myCompanyPage/MyCompany.tsx @@ -1,7 +1,7 @@ import Layout from '@/features/layout'; import { Flex, InnerContainer, Image } from '@/components/common'; import CompanyInfo from '@/pages/myPage/employer/Companies/CompanyInfo'; -import { imageStyle, innerContainerStyle } from './MyCompany.styles'; +import { companyWrapperStyle, imageStyle, innerContainerStyle } from './MyCompany.styles'; import RecruitmentList from '@/pages/myCompanyPage/Recruitments/RecruitmentList'; import { CompanyData, RecruitmentItem } from '@/types'; @@ -15,14 +15,9 @@ export default function MyCompany({ companyData, recruitmentsData }: MyCompanyPr
- + {companyData && ( - + diff --git a/src/pages/myPage/employer/Companies/CompanyInfo.styles.ts b/src/pages/myPage/employer/Companies/CompanyInfo.styles.ts index f6f9fc0..190deb5 100644 --- a/src/pages/myPage/employer/Companies/CompanyInfo.styles.ts +++ b/src/pages/myPage/employer/Companies/CompanyInfo.styles.ts @@ -32,14 +32,10 @@ export const infoStyle = css` gap: '30px', }, tablet: { - flexDirection: 'row', - justifyContent: 'center', - width: '100%', - gap: '10px', - }, - mobile: { flexDirection: 'column', + justifyContent: 'center', alignItems: 'center', + width: '100%', gap: '10px', }, })} From 704f5a3dd8eaf2f43129937ef554add1dacc5828 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Thu, 7 Nov 2024 01:45:58 +0900 Subject: [PATCH 09/11] =?UTF-8?q?fix:=20=EB=8C=80=EC=86=8C=EB=AC=B8?= =?UTF-8?q?=EC=9E=90=20=EC=9D=B8=EC=8B=9D=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{EmployerMyPageData.ts => employerMyPageData.ts} | 0 .../translator/MyCompany/{MyCompanyData.ts => myCompanyData.ts} | 0 .../RegisterVisa/{RegisterVisaData.ts => registerVisaData.ts} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/assets/translator/EmployerMyPage/{EmployerMyPageData.ts => employerMyPageData.ts} (100%) rename src/assets/translator/MyCompany/{MyCompanyData.ts => myCompanyData.ts} (100%) rename src/assets/translator/RegisterVisa/{RegisterVisaData.ts => registerVisaData.ts} (100%) diff --git a/src/assets/translator/EmployerMyPage/EmployerMyPageData.ts b/src/assets/translator/EmployerMyPage/employerMyPageData.ts similarity index 100% rename from src/assets/translator/EmployerMyPage/EmployerMyPageData.ts rename to src/assets/translator/EmployerMyPage/employerMyPageData.ts diff --git a/src/assets/translator/MyCompany/MyCompanyData.ts b/src/assets/translator/MyCompany/myCompanyData.ts similarity index 100% rename from src/assets/translator/MyCompany/MyCompanyData.ts rename to src/assets/translator/MyCompany/myCompanyData.ts diff --git a/src/assets/translator/RegisterVisa/RegisterVisaData.ts b/src/assets/translator/RegisterVisa/registerVisaData.ts similarity index 100% rename from src/assets/translator/RegisterVisa/RegisterVisaData.ts rename to src/assets/translator/RegisterVisa/registerVisaData.ts From 6cb193a75025903615228b2f2effde765c08ac47 Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Thu, 7 Nov 2024 01:55:57 +0900 Subject: [PATCH 10/11] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=82=AD=EC=A0=9C=20=EB=B0=8F?= =?UTF-8?q?=20Header=EC=9D=98=20=ED=83=9C=EB=B8=94=EB=A6=BF=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EB=84=88=EB=B9=84=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/layout/Header/index.styles.ts | 3 ++- src/pages/myCompanyPage/MyCompany.styles.ts | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/features/layout/Header/index.styles.ts b/src/features/layout/Header/index.styles.ts index f96922c..f2ecfad 100644 --- a/src/features/layout/Header/index.styles.ts +++ b/src/features/layout/Header/index.styles.ts @@ -74,11 +74,12 @@ export const Nav = styled.nav` ${responsiveStyle({ tablet: { - width: '100%', + width: '80%', justifyContent: 'center', marginTop: '10px', }, mobile: { + width: '100%', flexDirection: 'column', alignItems: 'stretch', textAlign: 'center', diff --git a/src/pages/myCompanyPage/MyCompany.styles.ts b/src/pages/myCompanyPage/MyCompany.styles.ts index f94139b..0f63f94 100644 --- a/src/pages/myCompanyPage/MyCompany.styles.ts +++ b/src/pages/myCompanyPage/MyCompany.styles.ts @@ -24,9 +24,6 @@ export const companyWrapperStyle = css` gap: '15px', width: '100%', }, - mobile: { - flexDirection: 'column', - }, })} `; From 7ddde2e97c9b1d3bd746a9e3e89aa66241a4791c Mon Sep 17 00:00:00 2001 From: KimJi-An Date: Thu, 7 Nov 2024 09:47:20 +0900 Subject: [PATCH 11/11] =?UTF-8?q?feat:=20=EA=B3=A0=EC=9A=A9=EC=A3=BC=20?= =?UTF-8?q?=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=20?= =?UTF-8?q?=ED=9A=8C=EC=82=AC=20=EB=93=B1=EB=A1=9D=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmployerMyPage/employerMyPageData.ts | 2 + src/pages/myPage/employer/EmPloyerMyPage.tsx | 39 ++++++++++++++----- .../myPage/employer/EmployerMyPage.styles.ts | 20 +++++++++- 3 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/assets/translator/EmployerMyPage/employerMyPageData.ts b/src/assets/translator/EmployerMyPage/employerMyPageData.ts index 9d45438..1c06e65 100644 --- a/src/assets/translator/EmployerMyPage/employerMyPageData.ts +++ b/src/assets/translator/EmployerMyPage/employerMyPageData.ts @@ -3,6 +3,7 @@ import { Languages } from '../Languages'; export const employerMyPageData = { [Languages.KO]: { greeting: '사장님, 안녕하세요!', + register_company: '회사 등록', register_sign: '사인 등록', my_companies: '내 회사', total_companies: '총 {{count}} 곳', @@ -10,6 +11,7 @@ export const employerMyPageData = { }, [Languages.VE]: { greeting: 'Chủ doanh nghiệp, xin chào!', + register_company: 'Đăng ký công ty', register_sign: 'Đăng ký chữ ký', my_companies: 'Công ty của tôi', total_companies: 'Tổng cộng {{count}} công ty', diff --git a/src/pages/myPage/employer/EmPloyerMyPage.tsx b/src/pages/myPage/employer/EmPloyerMyPage.tsx index 9940156..40381c6 100644 --- a/src/pages/myPage/employer/EmPloyerMyPage.tsx +++ b/src/pages/myPage/employer/EmPloyerMyPage.tsx @@ -1,7 +1,14 @@ import { Button, Flex, Icon, InnerContainer, Spinner, Typo } from '@/components/common'; import Layout from '@/features/layout'; import CompanyList from '@/pages/myPage/employer/Companies/CompanyList'; -import { flexStyle, innerContainerStyle, signButtonStyle, spinnerFlexStyle, typoStyle } from './EmployerMyPage.styles'; +import { + flexStyle, + innerContainerStyle, + buttonStyle, + spinnerFlexStyle, + typoStyle, + buttonGroupStyle, +} from './EmployerMyPage.styles'; import { useGetMyCompanies } from '@/apis/companies/hooks/useGetMyCompanies'; import { useNavigate } from 'react-router-dom'; import ROUTE_PATH from '@/routes/path'; @@ -16,6 +23,10 @@ export default function EmployerMyPage() { navigate(ROUTE_PATH.REGISTERSIGN); }; + const goToRegisterCompanyPage = () => { + navigate(ROUTE_PATH.REGISTERCOMPANY); + }; + return (
@@ -25,14 +36,24 @@ export default function EmployerMyPage() { {t('employerMyPage.greeting')} - + + + + {isLoading ? ( diff --git a/src/pages/myPage/employer/EmployerMyPage.styles.ts b/src/pages/myPage/employer/EmployerMyPage.styles.ts index 55667b9..22568ab 100644 --- a/src/pages/myPage/employer/EmployerMyPage.styles.ts +++ b/src/pages/myPage/employer/EmployerMyPage.styles.ts @@ -44,7 +44,25 @@ export const typoStyle = { }), }; -export const signButtonStyle = css` +export const buttonGroupStyle = css` + ${responsiveStyle({ + default: { + maxWidth: '650px', + }, + tablet: { + flexDirection: 'column', + alignItems: 'flex-end', + gap: '15px', + maxWidth: '320px', + }, + mobile: { + alignItems: 'center', + gap: '10px', + }, + })} +`; + +export const buttonStyle = css` width: 300px; padding: 25px; border-radius: 8px;
이름국적한국어 실력{t('applicants.table_headers.name')}{t('applicants.table_headers.nation')}{t('applicants.table_headers.korean_language_level')}