From 0809d26610ae0d514ae6dfdc81ca9a98bacdd012 Mon Sep 17 00:00:00 2001 From: jing12345678910 Date: Wed, 4 Sep 2024 16:40:46 +0800 Subject: [PATCH 1/2] add_translation --- package.json | 2 +- .../add_account_title_modal.tsx | 1 - .../edit_account_title_modal.tsx | 1 - .../new_journal_form/new_journal_form.tsx | 5 +- .../pending_report_item.tsx | 6 +- .../pending_report_list.tsx | 6 +- .../preview_invoice_modal.tsx | 5 +- .../salary_book_confirm_modal.tsx | 28 ++++----- .../salary_record_form/salary_record_form.tsx | 58 +++++++++++-------- .../team_setting_modal/team_setting_modal.tsx | 17 +++--- .../transfer_company_modal.tsx | 15 ++--- src/locales/cn/common.json | 14 ++++- src/locales/cn/journal.json | 6 +- src/locales/cn/kyc.json | 5 +- src/locales/cn/report_401.json | 4 +- src/locales/cn/salary.json | 13 ++++- src/locales/cn/setting.json | 3 +- src/locales/en/common.json | 14 ++++- src/locales/en/journal.json | 6 +- src/locales/en/kyc.json | 5 +- src/locales/en/report_401.json | 4 +- src/locales/en/salary.json | 13 ++++- src/locales/en/setting.json | 3 +- src/locales/tw/common.json | 14 ++++- src/locales/tw/journal.json | 6 +- src/locales/tw/kyc.json | 5 +- src/locales/tw/report_401.json | 4 +- src/locales/tw/salary.json | 13 ++++- src/locales/tw/setting.json | 3 +- 29 files changed, 191 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index 42dee7235..1acc71f7c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iSunFA", - "version": "0.8.0+66", + "version": "0.8.0+67", "private": false, "scripts": { "dev": "next dev", diff --git a/src/components/add_account_title_modal/add_account_title_modal.tsx b/src/components/add_account_title_modal/add_account_title_modal.tsx index 726d31a63..2074cc821 100644 --- a/src/components/add_account_title_modal/add_account_title_modal.tsx +++ b/src/components/add_account_title_modal/add_account_title_modal.tsx @@ -239,7 +239,6 @@ const AddAccountTitleModal = ({ type="text" value={nameValue} onChange={handleNameChange} - // Info: (20240805 - Anna) placeholder="Enter name" placeholder={t('setting:SETTING.ENTER_NAME')} required className="rounded-md border border-input-stroke-input bg-transparent px-12px py-10px text-input-text-input-filled outline-none disabled:border-input-stroke-disable disabled:bg-input-surface-input-disable disabled:text-input-text-disable" diff --git a/src/components/edit_account_title_modal/edit_account_title_modal.tsx b/src/components/edit_account_title_modal/edit_account_title_modal.tsx index aeb6e79d1..bfed11f41 100644 --- a/src/components/edit_account_title_modal/edit_account_title_modal.tsx +++ b/src/components/edit_account_title_modal/edit_account_title_modal.tsx @@ -247,7 +247,6 @@ const EditAccountTitleModal = ({ type="text" value={nameValue} onChange={handleNameChange} - // Info: (20240805 - Anna) placeholder="Enter name" placeholder={t('setting:SETTING.ENTER_NAME')} className="rounded-md border border-input-stroke-input bg-transparent px-12px py-10px text-input-text-input-filled outline-none disabled:border-input-stroke-disable disabled:bg-input-surface-input-disable disabled:text-input-text-disable" /> diff --git a/src/components/new_journal_form/new_journal_form.tsx b/src/components/new_journal_form/new_journal_form.tsx index d5bca9ed8..4c78805f6 100644 --- a/src/components/new_journal_form/new_journal_form.tsx +++ b/src/components/new_journal_form/new_journal_form.tsx @@ -441,9 +441,8 @@ const NewJournalForm = () => { } else if (updateSuccess === false) { messageModalDataHandler({ messageType: MessageType.ERROR, - // ToDo: (20240902 - Shirley) i18n - title: 'Update Invoice Failed', - content: `Update Invoice failed: ${updateCode}`, + title: t('journal:JOURNAL.UPDATE_INVOICE_FAILED'), + content: t('journal:JOURNAL.UPDATE_INVOICE_FAILED_CODE', { updateCode }), submitBtnStr: t('common:COMMON.CLOSE'), submitBtnFunction: messageModalVisibilityHandler, }); diff --git a/src/components/pending_report_item/pending_report_item.tsx b/src/components/pending_report_item/pending_report_item.tsx index 3a745fd6f..63ea0e3f5 100644 --- a/src/components/pending_report_item/pending_report_item.tsx +++ b/src/components/pending_report_item/pending_report_item.tsx @@ -81,10 +81,8 @@ const PendingReportItem = ({ const deleteClickHandler = () => { messageModalDataHandler({ title: '', - // ToDo: (20240902 - Shirley) i18n - subtitle: 'Are you sure\n you want to delete the process?', - content: `It will take 30 - 40 minutes\n - if you want to apply it again.`, + subtitle: t('report_401:MY_REPORTS_SECTION.DELETE_PROCESS'), + content: t('report_401:MY_REPORTS_SECTION.APPLY_AGAIN'), submitBtnStr: t('report_401:PENDING_REPORT_ITEM.YES_DELETE_IT'), submitBtnFunction: deleteItem, messageType: MessageType.WARNING, diff --git a/src/components/pending_report_list/pending_report_list.tsx b/src/components/pending_report_list/pending_report_list.tsx index 1a7b049c9..47bd74f66 100644 --- a/src/components/pending_report_list/pending_report_list.tsx +++ b/src/components/pending_report_list/pending_report_list.tsx @@ -74,10 +74,8 @@ const PendingReportList = ({ reports }: IReportListProps) => { messageModalDataHandler({ title: '', - // ToDo: (20240902 - Shirley) i18n - subtitle: 'Are you sure\n you want to delete the process?', - content: `It will take 30 - 40 minutes\n - if you want to apply it again.`, + subtitle: t('report_401:MY_REPORTS_SECTION.DELETE_PROCESS'), + content: t('report_401:MY_REPORTS_SECTION.APPLY_AGAIN'), submitBtnStr: t('report_401:PENDING_REPORT_ITEM.YES_DELETE_IT'), submitBtnFunction: deleteSelectedReports, messageType: MessageType.WARNING, diff --git a/src/components/preview_invoice_modal/preview_invoice_modal.tsx b/src/components/preview_invoice_modal/preview_invoice_modal.tsx index 2003aa7fb..90a87c298 100644 --- a/src/components/preview_invoice_modal/preview_invoice_modal.tsx +++ b/src/components/preview_invoice_modal/preview_invoice_modal.tsx @@ -41,9 +41,8 @@ const PreviewInvoiceModal = ({ // Info: (20240508 - Julian) 下載 const downloadClickHandler = () => { messageModalDataHandler({ - // ToDo: (20240902 - Shirley) i18n - title: 'Download Selected Voucher', - content: 'Are you sure you want to download the selected items?', + title: t('journal:JOURNAL.DOWNLOAD_SELECTED_VOUCHER'), + content: t('journal:JOURNAL.DOWNLOAD_SELECTED_ITEMS'), messageType: MessageType.INFO, submitBtnStr: t('journal:JOURNAL.DOWNLOAD'), // ToDo: (20240508 - Julian) [Beta] 下載功能 diff --git a/src/components/salary_book_confirm_modal/salary_book_confirm_modal.tsx b/src/components/salary_book_confirm_modal/salary_book_confirm_modal.tsx index d4dce6a09..ee2b7bb2b 100644 --- a/src/components/salary_book_confirm_modal/salary_book_confirm_modal.tsx +++ b/src/components/salary_book_confirm_modal/salary_book_confirm_modal.tsx @@ -2,6 +2,7 @@ import { numberWithCommas, timestampToString } from '@/lib/utils/common'; import Image from 'next/image'; import { RxCross2 } from 'react-icons/rx'; import { Button } from '@/components/button/button'; +import { useTranslation } from 'next-i18next'; interface ISalaryBookConfirmModal { isModalVisible: boolean; @@ -15,6 +16,7 @@ const SalaryBookConfirmModal = ({ isModalVisible, modalVisibilityHandler, }: ISalaryBookConfirmModal) => { + const { t } = useTranslation(['common', 'salary']); // ToDo: (20240716 - Julian) [Beta] Replace with real data const type = 'Salary Bookkeeping'; const dateTimestamp = 1705646390; @@ -30,7 +32,6 @@ const SalaryBookConfirmModal = ({ modalVisibilityHandler(); }; - // ToDo: (20240902 - Shirley) 整個的 i18n const isDisplayedModal = isModalVisible ? (
@@ -56,49 +57,50 @@ const SalaryBookConfirmModal = ({
{/* Info: (20240716 - Julian) type */}
-

Type

+

{t('common:COMMON.TYPE')}

{type}

{/* Info: (20240716 - Julian) date */}
-

Date

+

{t('common:DATE_PICKER.DATE')}

{timestampToString(dateTimestamp).date}

{/* Info: (20240716 - Julian) Employee */}
-

Employee

+

{t('common:COMMON.EMPLOYEE')}

{employeeName}

{/* Info: (20240716 - Julian) Description */}
-

Description

+

{t('common:COMMON.DESCRIPTION')}

{description}

{/* Info: (20240716 - Julian) Total Price */}
-

Total Price

+

{t('common:COMMON.TOTAL_PRICE')}

- {numberWithCommas(totalPrice)} TWD + {numberWithCommas(totalPrice)}{' '} + {t('common:COMMON.TWD')}

{/* Info: (20240716 - Julian) Working hours */}
-

Working hours for the period

+

{t('salary:SALARY.WORKING_HOURS')}

{workingHours}

{/* Info: (20240716 - Julian) Insurance Payments */}
-

Insurance Payments

+

{t('salary:SALARY.INSURANCE_PAYMENTS')}

{numberWithCommas(insurancePayments)}{' '} - TWD + {t('common:COMMON.TWD')}

{/* Info: (20240716 - Julian) Payment Status */}
-

Payment Status

+

{t('common:COMMON.PAYMENT_STATUS')}

{paymentStatus}

@@ -110,7 +112,7 @@ const SalaryBookConfirmModal = ({ variant={null} onClick={modalVisibilityHandler} > - Cancel + {t('common:COMMON.CANCEL')}
diff --git a/src/components/salary_record_form/salary_record_form.tsx b/src/components/salary_record_form/salary_record_form.tsx index f7aaa43f7..092bcb38c 100644 --- a/src/components/salary_record_form/salary_record_form.tsx +++ b/src/components/salary_record_form/salary_record_form.tsx @@ -110,13 +110,12 @@ const SalaryRecordForm = () => { ); - // ToDo: (20240902 - Shirley) 整個 i18n const workingHoursPart = isRecordWorkingHours ? (
{/* Info: (20240715 - Julian) Working hours for the period */}

- Working hours for the period + {t('salary:SALARY.WORKING_HOURS')}

{ {/* Info: (20240715 - Julian) Number of Participating Projects */}

- Number of Participating Projects + {t('salary:SALARY.NUMBER_OF_PARTICIPATING_PROJECTS')}

{
{/* Info: (20240715 - Julian) iSunFA (hours) */}
-

iSunFA (hours)

+

+ {t('salary:SALARY.ISUNFA_HOURS')} +

{
{/* Info: (20240715 - Julian) Routine work (hours) */}
-

Routine work (hours)

+

+ {t('salary:SALARY.ROUTINE_WORK_HOURS')} +

{ ) : (
-

Working hours for the period : {workingHours} pts

+

{t('salary:SALARY.WORKING_HOURS_PERIOD', { workingHours })}

); @@ -174,7 +177,7 @@ const SalaryRecordForm = () => {
record_icon -

Create new payroll records

+

{t('salary:SALARY.CREATE_NEW_PAYROLL_RECORDS')}


@@ -195,7 +198,9 @@ const SalaryRecordForm = () => {
{/* Info: (20240715 - Julian) Departments */}
-

Departments

+

+ {t('common:COMMON.DEPARTMENTS')} +

{/* Info: (20240715 - Julian) Employee */}
-

Employee

+

+ {t('common:COMMON.EMPLOYEE')} +

@@ -226,7 +233,9 @@ const SalaryRecordForm = () => {
{/* Info: (20240715 - Julian) Salary */}
-

Salary

+

+ {t('salary:SALARY.SALARY')} +

{
{/* Info: (20240715 - Julian) Bonus */}
-

Bonus

+

+ {t('salary:SALARY.BONUS')} +

{
{/* Info: (20240715 - Julian) Third Column */}
-

Insurance Payments

+

+ {t('salary:SALARY.INSURANCE_PAYMENTS')} +

{
{/* Info: (20240715 - Julian) Fourth Column */}
-

Description

+

+ {t('common:COMMON.DESCRIPTION')} +

{
work_icon -

Working hours

+

{t('salary:SALARY.WORKING_HOURS_ALONE')}


@@ -304,7 +319,7 @@ const SalaryRecordForm = () => { {/* Info: (20240716 - Julian) Toggle */}
-

Record Working hours

+

{t('salary:SALARY.RECORD_WORKING_HOURS')}

{ />

- iSUNFA Working Hours enables you to accurately calculate employee working hours. By - entering the hours and calculating project labor costs based on percentages, you can - allocate work hours to specific projects. If no hours are entered, all work hours will - be recorded as regular work, and individual project costs cannot be calculated - separately. Regardless of whether hours are entered, an accounting voucher will be - issued. + {t('salary:SALARY.DESCRIPTION_OF_WORKING_HOURS')}

{/* Info: (20240716 - Julian) Inputs */} @@ -326,10 +336,10 @@ const SalaryRecordForm = () => { {/* Info: (20240715 - Julian) Hours */}
diff --git a/src/components/team_setting_modal/team_setting_modal.tsx b/src/components/team_setting_modal/team_setting_modal.tsx index 3fa28f4a1..2d30c1426 100644 --- a/src/components/team_setting_modal/team_setting_modal.tsx +++ b/src/components/team_setting_modal/team_setting_modal.tsx @@ -7,6 +7,7 @@ import { ICompany } from '@/interfaces/company'; // eslint-disable-next-line import/no-cycle import { useGlobalCtx } from '@/contexts/global_context'; import { ToastType } from '@/interfaces/toastify'; +import { useTranslation } from 'next-i18next'; interface ITeamSettingModal { isModalVisible: boolean; @@ -15,6 +16,7 @@ interface ITeamSettingModal { // ToDo: (20240822 - Julian) [Beta] i18n const TeamSettingModal = ({ isModalVisible, modalVisibilityHandler }: ITeamSettingModal) => { + const { t } = useTranslation(['common', 'setting']); const { selectedCompany, selectCompany } = useUserCtx(); const { toastHandler } = useGlobalCtx(); const [companyName, setCompanyName] = useState(selectedCompany?.name ?? ''); @@ -55,7 +57,7 @@ const TeamSettingModal = ({ isModalVisible, modalVisibilityHandler }: ITeamSetti toastHandler({ id: `update_team-${updateTeamCode}`, type: ToastType.ERROR, - content:

Fail to update company name. Code: {updateTeamCode}

, + content:

{t('setting:SETTING.FAIL_UPDATE_COMPANY_NAME', { updateTeamCode })}

, closeable: true, }); } @@ -67,12 +69,13 @@ const TeamSettingModal = ({ isModalVisible, modalVisibilityHandler }: ITeamSetti } }, [isModalVisible, selectedCompany]); - // ToDo: (20240902 - Shirley) 整個 i18n const isDisplayedRegisterModal = isModalVisible ? (
-
Settings
+
+ {t('common:COMMON.SETTINGS')} +
diff --git a/src/components/transfer_company_modal/transfer_company_modal.tsx b/src/components/transfer_company_modal/transfer_company_modal.tsx index 350341bf6..cafc47440 100644 --- a/src/components/transfer_company_modal/transfer_company_modal.tsx +++ b/src/components/transfer_company_modal/transfer_company_modal.tsx @@ -46,11 +46,10 @@ const TransferCompanyModal = ({ }) .then((res) => { if (res.data?.length ?? 0) { - // ToDo: (20240902 - Shirley) i18n messageModalDataHandler({ messageType: MessageType.SUCCESS, - title: 'Transfer Owner', - content: 'Transfer owner successfully', + title: t('kyc:KYC.TRANSFER_OWNER'), + content: t('kyc:KYC.TRANSFER_OWNER_SUCCESSFULLY'), submitBtnStr: t('project:PROJECT.OK'), hideCloseBtn: true, submitBtnFunction: () => { @@ -59,11 +58,10 @@ const TransferCompanyModal = ({ }, }); } else { - // ToDo: (20240902 - Shirley) i18n messageModalDataHandler({ messageType: MessageType.ERROR, - title: 'Transfer Owner', - content: 'Transfer owner failed', + title: t('kyc:KYC.TRANSFER_OWNER'), + content: t('kyc:KYC.TRANSFER_OWNER_FAILED'), submitBtnStr: t('project:PROJECT.OK'), hideCloseBtn: true, submitBtnFunction: () => { @@ -74,11 +72,10 @@ const TransferCompanyModal = ({ messageModalVisibilityHandler(); }) .catch(() => { - // ToDo: (20240902 - Shirley) i18n messageModalDataHandler({ messageType: MessageType.ERROR, - title: 'Transfer Owner', - content: 'Transfer owner failed', + title: t('kyc:KYC.TRANSFER_OWNER'), + content: t('kyc:KYC.TRANSFER_OWNER_FAILED'), submitBtnStr: t('project:PROJECT.OK'), hideCloseBtn: true, submitBtnFunction: () => { diff --git a/src/locales/cn/common.json b/src/locales/cn/common.json index 5c08f40b7..c296306bd 100644 --- a/src/locales/cn/common.json +++ b/src/locales/cn/common.json @@ -234,7 +234,19 @@ "PLEASE_READ_AND_AGREE_THE_FIRST_TIME_YOU_LOGIN": "第一次登录时,请阅读并同意", "AGREE_WITH_INFORMATION_COLLECTION_STATEMENT": "同意信息收集声明", "AGREE_WITH_TOS_N_PP": "同意服务条款和隐私政策", - "ALPHA_TEST_REMINDER": "Alpha 版本的资料只用于测试" + "ALPHA_TEST_REMINDER": "Alpha 版本的资料只用于测试", + "TYPE": "类型", + "EMPLOYEE": "员工", + "DESCRIPTION": "描述", + "TOTAL_PRICE": "总价", + "TWD": "新台币", + "PAYMENT_STATUS": "付款状态", + "CONFIRM": "确认", + "DEPARTMENTS": "部门", + "EMPLOYEE_NAME": "员工姓名", + "SETTINGS": "设置", + "COMPANY_NAME": "公司名称", + "YOUR_COMPANY_NAME": "您的公司名称" }, "DASHBOARD": { "PROFIT_CHANGE": "利润变化", diff --git a/src/locales/cn/journal.json b/src/locales/cn/journal.json index 903ca12d3..4d65365d1 100644 --- a/src/locales/cn/journal.json +++ b/src/locales/cn/journal.json @@ -129,7 +129,11 @@ "USE_AI": "您确定要使用Ai提供的资讯吗?", "TEXT_WILL_BE_REPLACED": "您输入的文字将被替换", "GET_JOURNAL_FAILED": "取得日记帐失败", - "GET_JOURNAL_DETAIL_FAILED": "取得日记帐详细资讯失败" + "GET_JOURNAL_DETAIL_FAILED": "取得日记帐详细资讯失败", + "UPDATE_INVOICE_FAILED": "更新发票失败", + "UPDATE_INVOICE_FAILED_CODE": "更新发票失败: {{updateCode}}", + "DOWNLOAD_SELECTED_VOUCHER": "下载传票", + "DOWNLOAD_SELECTED_ITEMS": "您确定要下载所选项目吗?" }, "JOURNAL_TYPES": { "ALL": "全部", diff --git a/src/locales/cn/kyc.json b/src/locales/cn/kyc.json index c7516591b..cb3b82812 100644 --- a/src/locales/cn/kyc.json +++ b/src/locales/cn/kyc.json @@ -103,7 +103,10 @@ "VERIFY_AGAIN": "请再次确认或联络公司管理员。", "VERIFICATION_CODE_HAS_EXPIRED": "邀请码已过期", "INVITATION_CODE_EXPIRY": "邀请码已过期", - "FAILED_TO_LIST_UPLOADED_FILES": "无法列出上传的文件: {{getCode}}" + "FAILED_TO_LIST_UPLOADED_FILES": "无法列出上传的文件: {{getCode}}", + "TRANSFER_OWNER": "转移拥有者", + "TRANSFER_OWNER_SUCCESSFULLY": "成功转移拥有者", + "TRANSFER_OWNER_FAILED": "转移拥有者失败" }, "COMPANY_INVITATION_MODAL": { "CONGRATULATIONS_YOU": "恭喜!您", diff --git a/src/locales/cn/report_401.json b/src/locales/cn/report_401.json index 62c43d35b..15833cbfb 100644 --- a/src/locales/cn/report_401.json +++ b/src/locales/cn/report_401.json @@ -145,7 +145,9 @@ "GENERATE_REPORT": "生成报告", "WE_RECEIVED_YOUR_APPLICATION": "我们已经收到您的申请", "TAKE_MINUTES": "AI产生报告需要30到40分钟,您可以稍后再回来查看。", - "FAILED_TO_FETCH_GENERATED_REPORTS": "无法取得产生的报告。错误代码: {{code}}" + "FAILED_TO_FETCH_GENERATED_REPORTS": "无法取得产生的报告。错误代码: {{code}}", + "DELETE_PROCESS": "您确定要删除吗?", + "APPLY_AGAIN": "如果您再次申请,则需要30到40分钟。" }, "REPORTS_HISTORY_ITEM": { "FROM": "从", diff --git a/src/locales/cn/salary.json b/src/locales/cn/salary.json index f9bacd50f..7582c6d9b 100644 --- a/src/locales/cn/salary.json +++ b/src/locales/cn/salary.json @@ -6,7 +6,18 @@ "ADD_NEW_EMPLOYEE": "新增员工", "ONE_CLICK_REMOVAL": "一键删除", "EMPTY": "无资料", - "SALARY_ISUNFA": "薪资 - iSunFA" + "SALARY_ISUNFA": "薪资 - iSunFA", + "WORKING_HOURS": "这段期间的工作时数", + "INSURANCE_PAYMENTS": "保险费", + "NUMBER_OF_PARTICIPATING_PROJECTS": "参与项目数量", + "ISUNFA_HOURS": "iSunFA(时数)", + "ROUTINE_WORK_HOURS": "日常工作(时数)", + "WORKING_HOURS_PERIOD": "这段期间的工作时数: {{workingHours}} 点", + "CREATE_NEW_PAYROLL_RECORDS": "建立新的薪资记录", + "BONUS": "奖金", + "WORKING_HOURS_ALONE": "工作时数", + "RECORD_WORKING_HOURS": "记录工作时间", + "DESCRIPTION_OF_WORKING_HOURS": "iSUNFA 工时系统能帮助您准确计算员工的工作时数。通过输入工作时数并依据百分比计算项目的劳动成本,您可以将工作时数分配到特定的项目。如果未输入任何工时,所有工作时数将被记录为常规工作,无法分别计算各个项目的成本。不论是否输入工时,系统都会生成一张会计凭证。" }, "LABOR_COST_CHART": { "ONBOARDING_PROJECTS": "入职项目", diff --git a/src/locales/cn/setting.json b/src/locales/cn/setting.json index 94b29f499..110d3c611 100644 --- a/src/locales/cn/setting.json +++ b/src/locales/cn/setting.json @@ -40,6 +40,7 @@ "REMOVE_THIS_ACCOUNTING_TITLE_CHECK": "您确定要删除这个会计科目吗?", "SUCCESSFULLY_UPDATED_ACCOUNT": "会计科目更新成功", "FAILED_TO_UPDATE_ACCOUNT": "更新科目失败,请稍后重试。", - "FAILED_TO_GET_ACCOUNT_DATA": "取得科目资料失败,请稍后重试。" + "FAILED_TO_GET_ACCOUNT_DATA": "取得科目资料失败,请稍后重试。", + "FAIL_UPDATE_COMPANY_NAME": "无法更新公司名称。错误代码:{{updateTeamCode}}" } } diff --git a/src/locales/en/common.json b/src/locales/en/common.json index 9cbeb59ea..99e2af495 100644 --- a/src/locales/en/common.json +++ b/src/locales/en/common.json @@ -234,7 +234,19 @@ "PLEASE_READ_AND_AGREE_THE_FIRST_TIME_YOU_LOGIN": "Please read and agree the first time you login", "AGREE_WITH_INFORMATION_COLLECTION_STATEMENT": "Agree with the Information Collection Statement", "AGREE_WITH_TOS_N_PP": "Agree with Terms of Service & Privacy Policy", - "ALPHA_TEST_REMINDER": "The data used in the Alpha version is for testing purposes only." + "ALPHA_TEST_REMINDER": "The data used in the Alpha version is for testing purposes only.", + "TYPE": "Type", + "EMPLOYEE": "Employee", + "DESCRIPTION": "Description", + "TOTAL_PRICE": "Total Price", + "TWD": "TWD", + "PAYMENT_STATUS": "Payment Status", + "CONFIRM": "Confirm", + "DEPARTMENTS": "Departments", + "EMPLOYEE_NAME": "Employee Name", + "SETTINGS": "Settings", + "COMPANY_NAME": "Company Name", + "YOUR_COMPANY_NAME": "your company name" }, "DASHBOARD": { "PROFIT_CHANGE": "Profit Change", diff --git a/src/locales/en/journal.json b/src/locales/en/journal.json index b50edb5eb..e6657cd04 100644 --- a/src/locales/en/journal.json +++ b/src/locales/en/journal.json @@ -129,7 +129,11 @@ "USE_AI": "Are you sure you want to use Ai information?", "TEXT_WILL_BE_REPLACED": "The text you entered will be replaced.", "GET_JOURNAL_FAILED": "Get Journal Failed", - "GET_JOURNAL_DETAIL_FAILED": "Get journal detail failed" + "GET_JOURNAL_DETAIL_FAILED": "Get journal detail failed", + "UPDATE_INVOICE_FAILED": "Update Invoice Failed", + "UPDATE_INVOICE_FAILED_CODE": "Update Invoice failed: {{updateCode}}", + "DOWNLOAD_SELECTED_VOUCHER": "Download Selected Voucher", + "DOWNLOAD_SELECTED_ITEMS": "Are you sure you want to download the selected items?" }, "JOURNAL_TYPES": { "ALL": "All", diff --git a/src/locales/en/kyc.json b/src/locales/en/kyc.json index a6a75d939..a84844ebf 100644 --- a/src/locales/en/kyc.json +++ b/src/locales/en/kyc.json @@ -103,7 +103,10 @@ "VERIFY_AGAIN": "Please verify again or contact the company administrator.", "VERIFICATION_CODE_HAS_EXPIRED": "Oops! This verification code has expired.", "INVITATION_CODE_EXPIRY": "Invitation Code Expiry", - "FAILED_TO_LIST_UPLOADED_FILES": "Failed to list uploaded files: {{getCode}}" + "FAILED_TO_LIST_UPLOADED_FILES": "Failed to list uploaded files: {{getCode}}", + "TRANSFER_OWNER": "Transfer Owner", + "TRANSFER_OWNER_SUCCESSFULLY": "Transfer owner successfully", + "TRANSFER_OWNER_FAILED": "Transfer owner failed" }, "COMPANY_INVITATION_MODAL": { "CONGRATULATIONS_YOU": "Congratulations! You", diff --git a/src/locales/en/report_401.json b/src/locales/en/report_401.json index 26add8985..584f0cad6 100644 --- a/src/locales/en/report_401.json +++ b/src/locales/en/report_401.json @@ -145,7 +145,9 @@ "GENERATE_REPORT": "Generate Report", "WE_RECEIVED_YOUR_APPLICATION": "We received your application", "TAKE_MINUTES": "It will take 30 to 40 minutes for the AI to generate the report, you can comeback and check it later.", - "FAILED_TO_FETCH_GENERATED_REPORTS": "Failed to fetch generated reports. Error code: {{code}}" + "FAILED_TO_FETCH_GENERATED_REPORTS": "Failed to fetch generated reports. Error code: {{code}}", + "DELETE_PROCESS": "Are you sure\n you want to delete the process?", + "APPLY_AGAIN": "It will take 30 - 40 minutes\n if you want to apply it again." }, "REPORTS_HISTORY_ITEM": { "FROM": "From", diff --git a/src/locales/en/salary.json b/src/locales/en/salary.json index b09a6d135..b9735a048 100644 --- a/src/locales/en/salary.json +++ b/src/locales/en/salary.json @@ -6,7 +6,18 @@ "ADD_NEW_EMPLOYEE": "Add New Employee", "ONE_CLICK_REMOVAL": "One-Click Removal", "EMPTY": "Empty", - "SALARY_ISUNFA": "Salary - iSunFA" + "SALARY_ISUNFA": "Salary - iSunFA", + "WORKING_HOURS": "Working hours for the period", + "INSURANCE_PAYMENTS": "Insurance Payments", + "NUMBER_OF_PARTICIPATING_PROJECTS": "Number of Participating Projects", + "ISUNFA_HOURS": "iSunFA (hours)", + "ROUTINE_WORK_HOURS": "Routine work (hours)", + "WORKING_HOURS_PERIOD": "Working hours for the period: {{workingHours}} pts", + "CREATE_NEW_PAYROLL_RECORDS": "Create new payroll records", + "BONUS": "Bonus", + "WORKING_HOURS_ALONE": "Working hours", + "RECORD_WORKING_HOURS": "Record Working hours", + "DESCRIPTION_OF_WORKING_HOURS": "iSUNFA Working Hours enables you to accurately calculate employee working hours. By entering the hours and calculating project labor costs based on percentages, you can allocate work hours to specific projects. If no hours are entered, all work hours will be recorded as regular work, and individual project costs cannot be calculated separately. Regardless of whether hours are entered, an accounting voucher will be issued." }, "LABOR_COST_CHART": { "ONBOARDING_PROJECTS": "Onboarding Projects", diff --git a/src/locales/en/setting.json b/src/locales/en/setting.json index f46042a49..d6805cfcd 100644 --- a/src/locales/en/setting.json +++ b/src/locales/en/setting.json @@ -40,6 +40,7 @@ "REMOVE_THIS_ACCOUNTING_TITLE_CHECK": "Are you sure you want to remove this accounting title?", "SUCCESSFULLY_UPDATED_ACCOUNT": "Successfully updated account: ", "FAILED_TO_UPDATE_ACCOUNT": "Failed to update account, please try again later.", - "FAILED_TO_GET_ACCOUNT_DATA": "Failed to get account data, please try again later." + "FAILED_TO_GET_ACCOUNT_DATA": "Failed to get account data, please try again later.", + "FAIL_UPDATE_COMPANY_NAME": "Fail to update company name. Code:{{updateTeamCode}}" } } diff --git a/src/locales/tw/common.json b/src/locales/tw/common.json index 730c8baed..3b4dcff15 100644 --- a/src/locales/tw/common.json +++ b/src/locales/tw/common.json @@ -234,7 +234,19 @@ "PLEASE_READ_AND_AGREE_THE_FIRST_TIME_YOU_LOGIN": "首次登錄時,請閱讀並同意", "AGREE_WITH_INFORMATION_COLLECTION_STATEMENT": "同意《信息收集聲明》", "AGREE_WITH_TOS_N_PP": "同意《服務條款》和《隱私政策》", - "ALPHA_TEST_REMINDER": "Alpha 版本的資料只用於測試" + "ALPHA_TEST_REMINDER": "Alpha 版本的資料只用於測試", + "TYPE": "類型", + "EMPLOYEE": "員工", + "DESCRIPTION": "描述", + "TOTAL_PRICE": "總價", + "TWD": "新台幣", + "PAYMENT_STATUS": "付款狀態", + "CONFIRM": "確認", + "DEPARTMENTS": "部門", + "EMPLOYEE_NAME": "員工姓名", + "SETTINGS": "設定", + "COMPANY_NAME": "公司名稱", + "YOUR_COMPANY_NAME": "您的公司名稱" }, "DASHBOARD": { "PROFIT_CHANGE": "利潤變化", diff --git a/src/locales/tw/journal.json b/src/locales/tw/journal.json index a10666e4e..802e9864d 100644 --- a/src/locales/tw/journal.json +++ b/src/locales/tw/journal.json @@ -129,7 +129,11 @@ "USE_AI": "您確定要使用Ai提供的資訊嗎?", "TEXT_WILL_BE_REPLACED": "您輸入的文字將被替換", "GET_JOURNAL_FAILED": "取得日記帳失敗", - "GET_JOURNAL_DETAIL_FAILED": "取得日記帳詳細資訊失敗" + "GET_JOURNAL_DETAIL_FAILED": "取得日記帳詳細資訊失敗", + "UPDATE_INVOICE_FAILED": "更新發票失敗", + "UPDATE_INVOICE_FAILED_CODE": "更新發票失敗: {{updateCode}}", + "DOWNLOAD_SELECTED_VOUCHER": "下載傳票", + "DOWNLOAD_SELECTED_ITEMS": "您確定要下載所選項目嗎?" }, "JOURNAL_TYPES": { "ALL": "全部", diff --git a/src/locales/tw/kyc.json b/src/locales/tw/kyc.json index 0bcd59a9f..cf97c231a 100644 --- a/src/locales/tw/kyc.json +++ b/src/locales/tw/kyc.json @@ -103,7 +103,10 @@ "VERIFY_AGAIN": "請再次確認或聯絡公司管理員。", "VERIFICATION_CODE_HAS_EXPIRED": "邀請碼已過期", "INVITATION_CODE_EXPIRY": "邀請碼已過期", - "FAILED_TO_LIST_UPLOADED_FILES": "無法列出上傳的文件: {{getCode}}" + "FAILED_TO_LIST_UPLOADED_FILES": "無法列出上傳的文件: {{getCode}}", + "TRANSFER_OWNER": "轉移擁有者", + "TRANSFER_OWNER_SUCCESSFULLY": "成功轉移擁有者", + "TRANSFER_OWNER_FAILED": "轉移擁有者失敗" }, "COMPANY_INVITATION_MODAL": { "CONGRATULATIONS_YOU": "恭喜!您", diff --git a/src/locales/tw/report_401.json b/src/locales/tw/report_401.json index d06fdf7ca..0b88c02df 100644 --- a/src/locales/tw/report_401.json +++ b/src/locales/tw/report_401.json @@ -145,7 +145,9 @@ "GENERATE_REPORT": "產生報告", "WE_RECEIVED_YOUR_APPLICATION": "我們已經收到您的申請", "TAKE_MINUTES": "AI產生報告需要30到40分鐘,您可以稍後再回來查看。", - "FAILED_TO_FETCH_GENERATED_REPORTS": "無法取得產生的報告。錯誤代碼: {{code}}" + "FAILED_TO_FETCH_GENERATED_REPORTS": "無法取得產生的報告。錯誤代碼: {{code}}", + "DELETE_PROCESS": "您確定要刪除嗎?", + "APPLY_AGAIN": "如果您再次申請,則需要30到40分鐘。" }, "REPORTS_HISTORY_ITEM": { "FROM": "從", diff --git a/src/locales/tw/salary.json b/src/locales/tw/salary.json index 1bdfac910..bf4172ed6 100644 --- a/src/locales/tw/salary.json +++ b/src/locales/tw/salary.json @@ -6,7 +6,18 @@ "ADD_NEW_EMPLOYEE": "新增員工", "ONE_CLICK_REMOVAL": "一鍵刪除", "EMPTY": "無資料", - "SALARY_ISUNFA": "薪資 - iSunFA" + "SALARY_ISUNFA": "薪資 - iSunFA", + "WORKING_HOURS": "這段期間的工作時數", + "INSURANCE_PAYMENTS": "保險費", + "NUMBER_OF_PARTICIPATING_PROJECTS": "參與專案數量", + "ISUNFA_HOURS": "iSunFA(時數)", + "ROUTINE_WORK_HOURS": "日常工作(時數)", + "WORKING_HOURS_PERIOD": "這段期間的工作時數: {{workingHours}} 點", + "CREATE_NEW_PAYROLL_RECORDS": "建立新的薪資記錄", + "BONUS": "獎金", + "WORKING_HOURS_ALONE": "工作時數", + "RECORD_WORKING_HOURS": "記錄工作時間", + "DESCRIPTION_OF_WORKING_HOURS": "iSUNFA 工時系統能幫助您準確計算員工的工作時數。透過輸入工作時數並依據百分比計算專案的勞動成本,您可以將工作時數分配到特定的專案。如果未輸入任何工時,所有工作時數將被記錄為常規工作,無法分別計算個別專案的成本。不論是否輸入工時,系統都會生成一張會計憑證。" }, "LABOR_COST_CHART": { "ONBOARDING_PROJECTS": "入職項目", diff --git a/src/locales/tw/setting.json b/src/locales/tw/setting.json index 81afae0af..e06de01fe 100644 --- a/src/locales/tw/setting.json +++ b/src/locales/tw/setting.json @@ -40,6 +40,7 @@ "REMOVE_THIS_ACCOUNTING_TITLE_CHECK": "您確定要刪除這個會計科目嗎?", "SUCCESSFULLY_UPDATED_ACCOUNT": "會計科目更新成功:", "FAILED_TO_UPDATE_ACCOUNT": "更新科目失敗,請稍後重試。", - "FAILED_TO_GET_ACCOUNT_DATA": "取得科目資料失敗,請稍後重試。" + "FAILED_TO_GET_ACCOUNT_DATA": "取得科目資料失敗,請稍後重試。", + "FAIL_UPDATE_COMPANY_NAME": "無法更新公司名稱。錯誤代碼:{{updateTeamCode}}" } } From 7a71cf346153e9ffdd7af10169322f686efa0a5b Mon Sep 17 00:00:00 2001 From: Luphia Chang Date: Wed, 4 Sep 2024 18:15:29 +0800 Subject: [PATCH 2/2] Update package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1acc71f7c..429e19708 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iSunFA", - "version": "0.8.0+67", + "version": "0.8.0+68", "private": false, "scripts": { "dev": "next dev",