Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions worklenz-frontend/public/locales/zh-TW/404-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"doesNotExistText": "抱歉,您訪問的頁面不存在。",
"backHomeButton": "返回首頁"
}
213 changes: 213 additions & 0 deletions worklenz-frontend/public/locales/zh-TW/account-setup.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
{
"continue": "繼續",
"setupYourAccount": "設定您的 Worklenz 賬戶。",
"organizationStepTitle": "命名您的組織",
"organizationStepWelcome": "歡迎使用 Worklenz!",
"organizationStepDescription": "讓我們從設定您的組織開始。這將是您團隊的主要工作空間。",
"organizationStepLabel": "組織名稱",
"organizationStepPlaceholder": "例如:Acme 公司",
"organizationStepTooltip": "此名稱將顯示在您的工作區,並可在設定中更改。",
"organizationStepNeedIdeas": "需要靈感?",
"organizationStepUseDetected": "檢測到使用:",
"organizationStepCharacters": "字元",
"organizationStepGoodLength": "長度合適",
"organizationStepTooShort": "太短",
"organizationStepNamingTips": "命名建議",
"organizationStepTip1": "保持簡單且易記",
"organizationStepTip2": "體現您的行業或價值觀",
"organizationStepTip3": "考慮未來發展",
"organizationStepTip4": "使其獨特且有品牌感",
"organizationStepSuggestionsTitle": "名稱建議",
"organizationStepCategory1": "科技公司",
"organizationStepCategory2": "創意機構",
"organizationStepCategory3": "諮詢公司",
"organizationStepCategory4": "初創企業",
"organizationStepSuggestionsNote": "這些只是幫助您入門的示例。請選擇能代表您組織的名稱。",
"organizationStepPrivacyNote": "您的組織名稱是私有的,僅團隊成員可見。",

"projectStepTitle": "建立您的第一個專案",
"projectStepLabel": "您現在正在做什麼專案?",
"projectStepPlaceholder": "例如:營銷計劃",

"tasksStepTitle": "建立您的第一個任務",
"tasksStepLabel": "輸入您將在其中完成的幾個任務",
"tasksStepAddAnother": "新增另一個",

Comment on lines +32 to +35

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Split the duplicated onboarding keys.

tasksStepTitle and previousToolsPlaceholder are each declared twice in this flat object. JSON will keep only the last value, so the earlier strings are silently shadowed and one set of onboarding copy is lost.

Also applies to: 85-87, 123-127, 155-157

🧰 Tools
🪛 Biome (2.5.1)

[error] 32-32: The key tasksStepTitle was already declared.

(lint/suspicious/noDuplicateObjectKeys)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@worklenz-frontend/public/locales/zh-TW/account-setup.json` around lines 32 -
35, The onboarding locale object has duplicate keys that overwrite earlier
strings, so split the repeated entries in the zh-TW account-setup JSON into
distinct unique keys or merge the duplicated onboarding copy sections so each
string is preserved. Check the repeated `tasksStepTitle` and
`previousToolsPlaceholder` entries in the account setup translations and rename
or relocate them so the flat object contains no duplicate property names.

Source: Linters/SAST tools

"emailPlaceholder": "電子郵件地址",
"invalidEmail": "請輸入有效的電子郵件地址",
"or": "或",
"templateButton": "從模板匯入",
"goBack": "返回",
"cancel": "取消",
"create": "建立",
"templateDrawerTitle": "從模板中選擇",
"step3InputLabel": "透過電子郵件邀請",
"addAnother": "新增另一個",
"skipForNow": "暫時跳過",
"skipping": "跳過中...",
"formTitle": "建立您的第一個任務。",
"step3Title": "邀請您的團隊一起工作",
"maxMembers": "(您最多可以邀請 5 名成員)",
"maxTasks": "(您最多可以建立 5 個任務)",

"membersStepTitle": "邀請您的團隊",
"membersStepDescription": "將團隊成員新增到 \"{{organizationName}}\" 並開始協作",
"memberPlaceholder": "團隊成員 {{index}} - 輸入電子郵件地址",
"validEmailAddress": "有效的電子郵件地址",
"addAnotherTeamMember": "新增另一個團隊成員 ({{current}}/{{max}})",
"canInviteLater": "您可以稍後邀請團隊成員",
"skipStepDescription": "沒有準備好電子郵件地址?沒關係!您可以跳過此步驟,稍後從專案面板邀請團隊成員。",

"orgCategoryTech": "科技公司",
"orgCategoryCreative": "創意機構",
"orgCategoryConsulting": "諮詢公司",
"orgCategoryStartups": "初創企業",
"namingTip1": "保持簡單且易記",
"namingTip2": "體現您的行業或價值觀",
"namingTip3": "考慮未來發展",
"namingTip4": "使其獨特且有品牌感",

"aboutYouTitle": "告訴我們關於您的資訊",
"aboutYouDescription": "幫助我們個性化您的體驗",
"orgTypeQuestion": "哪項最能描述您的組織?",
"userRoleQuestion": "您的角色是什麼?",

"yourNeedsTitle": "您的主要需求是什麼?",
"yourNeedsDescription": "請選擇所有適用項,幫助我們設定您的工作區",
"yourNeedsQuestion": "您主要如何使用 Worklenz?",
"useCaseTaskOrg": "組織和跟蹤任務",
"useCaseTeamCollab": "團隊協作",
"useCaseResourceMgmt": "管理時間和資源",
"useCaseClientComm": "與客戶保持聯絡",
"useCaseTimeTrack": "監控專案工時",
"useCaseOther": "其他",
"selectedText": "已選擇",
"previousToolsQuestion": "您之前用過哪些工具?(可選)",
"previousToolsPlaceholder": "例如:Asana、Trello、Jira、Monday.com 等",

"discoveryTitle": "最後一個問題……",
"discoveryDescription": "幫助我們瞭解您是如何發現 Worklenz 的",
"discoveryQuestion": "您是如何聽說我們的?",
"allSetTitle": "一切就緒!",
"allSetDescription": "讓我們建立您的第一個專案並開始使用 Worklenz 吧",
"surveyCompleteTitle": "謝謝!",
"surveyCompleteDescription": "您的反饋有助於我們為所有人改進 Worklenz",
"aboutYouStepName": "關於您",
"yourNeedsStepName": "您的需求",
"discoveryStepName": "發現",
"stepProgress": "第 {step} 步,共 3 步:{title}",

"projectStepHeader": "讓我們建立您的第一個專案",
"projectStepSubheader": "從頭開始或使用模板更快上手",
"startFromScratch": "從頭開始",
"templateSelected": "已選擇模板如下",
"quickSuggestions": "快速建議:",
"orText": "或",
"startWithTemplate": "從模板開始",
"clearToSelectTemplate": "請先清空上方專案名稱以選擇模板",
"templateHeadStart": "使用預設專案結構快速開始",
"browseAllTemplates": "瀏覽所有模板",
"templatesAvailable": "15+ 行業專用模板可用",
"chooseTemplate": "選擇與您的專案型別匹配的模板",
"createProject": "建立專案",

"templateSoftwareDev": "軟體開發",
"templateSoftwareDesc": "敏捷衝刺、缺陷跟蹤、版本釋出",
"templateMarketing": "市場營銷活動",
"templateMarketingDesc": "活動策劃、內容日曆",
"templateConstruction": "建設專案",
"templateConstructionDesc": "階段、許可、承包商",
"templateStartup": "初創啟動",
"templateStartupDesc": "MVP 開發、融資、增長",

"tasksStepTitle": "新增您的第一個任務",
"tasksStepDescription": "將 \"{{projectName}}\" 拆分為可執行任務以開始",
"taskPlaceholder": "任務 {{index}} - 例如:需要做什麼?",
"addAnotherTask": "新增另一個任務 ({{current}}/{{max}})",

"surveyStepTitle": "告訴我們關於您的資訊",
"surveyStepLabel": "透過回答幾個問題幫助我們個性化您的 Worklenz 體驗。",

"organizationType": "哪項最能描述您的組織?",
"organizationTypeFreelancer": "自由職業者",
"organizationTypeStartup": "初創公司",
"organizationTypeSmallMediumBusiness": "中小企業",
"organizationTypeAgency": "代理機構",
"organizationTypeEnterprise": "企業",
"organizationTypeOther": "其他",

"userRole": "您的角色是什麼?",
"userRoleFounderCeo": "創始人 / CEO",
"userRoleProjectManager": "專案經理",
"userRoleSoftwareDeveloper": "軟體開發者",
"userRoleDesigner": "設計師",
"userRoleOperations": "運營",
"userRoleOther": "其他",

"mainUseCases": "您主要將 Worklenz 用於什麼?",
"mainUseCasesTaskManagement": "任務管理",
"mainUseCasesTeamCollaboration": "團隊協作",
"mainUseCasesResourcePlanning": "資源規劃",
"mainUseCasesClientCommunication": "客戶溝通與報告",
"mainUseCasesTimeTracking": "時間跟蹤",
"mainUseCasesOther": "其他",

"previousTools": "在使用 Worklenz 之前您用過哪些工具?",
"previousToolsPlaceholder": "例如:Trello、Asana、Monday.com",

"howHeardAbout": "您是如何瞭解 Worklenz 的?",
"howHeardAboutGoogleSearch": "Google 搜尋",
"howHeardAboutTwitter": "Twitter",
"howHeardAboutLinkedin": "LinkedIn",
"howHeardAboutFriendColleague": "朋友或同事",
"howHeardAboutBlogArticle": "部落格或文章",
"howHeardAboutOther": "其他",

"aboutYouStepTitle": "告訴我們關於您的資訊",
"aboutYouStepDescription": "幫助我們個性化您的體驗",
"yourNeedsStepTitle": "您的主要需求是什麼?",
"yourNeedsStepDescription": "選擇所有適用的選項,幫助我們設定您的工作空間",
"selected": "已選擇",
"previousToolsLabel": "您之前使用過哪些工具?(可選)",

"roleSuggestions": {
"designer": "UI/UX、圖形、創意",
"developer": "前端、後端、全棧",
"projectManager": "規劃、協調",
"marketing": "內容、社交媒體、增長",
"sales": "業務發展、客戶關係",
"operations": "行政、人力資源、財務"
},

"languages": {
"en": "English",
"es": "Español",
"pt": "Português",
"de": "Deutsch",
"alb": "Shqip",
"zh": "簡體中文"
},

"orgSuggestions": {
"tech": ["TechCorp", "DevStudio", "CodeCraft", "PixelForge"],
"creative": ["Creative Hub", "Design Studio", "Brand Works", "Visual Arts"],
"consulting": ["Strategy Group", "Business Solutions", "Expert Advisors", "Growth Partners"],
"startup": ["Innovation Labs", "Future Works", "Venture Co", "Next Gen"]
},

"projectSuggestions": {
"freelancer": ["客戶專案", "作品集更新", "個人品牌"],
"startup": ["MVP開發", "產品釋出", "市場調研"],
"agency": ["客戶活動", "品牌策略", "網站重設計"],
"enterprise": ["系統遷移", "流程最佳化", "團隊培訓"]
},

"useCaseDescriptions": {
"taskManagement": "組織和跟蹤任務",
"teamCollaboration": "無縫協作",
"resourcePlanning": "管理時間和資源",
"clientCommunication": "與客戶保持聯絡",
"timeTracking": "監控專案時間",
"other": "其他"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"title": "賬單",
"currentBill": "當前賬單",
"configuration": "配置",
"currentPlanDetails": "當前計劃詳情",
"upgradePlan": "升級計劃",
"cardBodyText01": "免費試用",
"cardBodyText02": "(您的試用計劃將在1個月19天后到期)",
"redeemCode": "兌換碼",
"accountStorage": "賬戶儲存",
"used": "已用:",
"remaining": "剩餘:",
"charges": "費用",
"tooltip": "當前賬單週期的費用",
"description": "描述",
"billingPeriod": "賬單週期",
"billStatus": "賬單狀態",
"perUserValue": "每使用者費用",
"users": "使用者",
"amount": "金額",
"invoices": "發票",
"transactionId": "交易ID",
"transactionDate": "交易日期",
"paymentMethod": "支付方式",
"status": "狀態",
"ltdUsers": "您最多可以新增{{ltd_users}}名使用者。",
"totalSeats": "總席位",
"availableSeats": "可用席位",
"addMoreSeats": "新增更多席位",
"drawerTitle": "兌換碼",
"label": "兌換碼",
"drawerPlaceholder": "輸入您的兌換碼",
"redeemSubmit": "提交",
"modalTitle": "為您的團隊選擇最佳計劃",
"seatLabel": "席位數量",
"freePlan": "免費計劃",
"startup": "初創",
"business": "商業",
"tag": "最受歡迎",
"enterprise": "企業",
"freeSubtitle": "永遠免費",
"freeUsers": "最適合個人使用",
"freeText01": "100MB儲存",
"freeText02": "3個專案",
"freeText03": "5名團隊成員",
"startupSubtitle": "固定費率/月",
"startupUsers": "最多15名使用者",
"startupText01": "25GB儲存",
"startupText02": "無限活躍專案",
"startupText03": "日程",
"startupText04": "報告",
"startupText05": "訂閱專案",
"businessSubtitle": "每使用者/月",
"businessUsers": "16 - 200名使用者",
"enterpriseUsers": "200 - 500+名使用者",
"footerTitle": "請提供一個我們可以聯絡您的電話號碼。",
"footerLabel": "聯絡電話",
"footerButton": "聯絡我們",
"redeemCodePlaceHolder": "輸入您的兌換碼",
"submit": "提交",
"trialPlan": "免費試用",
"trialExpireDate": "有效期至{{trial_expire_date}}",
"trialExpired": "您的免費試用已於{{trial_expire_string}}到期",
"trialInProgress": "您的免費試用將在{{trial_expire_string}}到期",
"required": "此欄位為必填項",
"invalidCode": "無效的程式碼",
"selectPlan": "為您的團隊選擇最佳計劃",
"changeSubscriptionPlan": "更改您的訂閱計劃",
"noOfSeats": "席位數量",
"annualPlan": "專業 - 年度",
"monthlyPlan": "專業 - 月度",
"freeForever": "永遠免費",
"bestForPersonalUse": "最適合個人使用",
"storage": "儲存",
"projects": "專案",
"teamMembers": "團隊成員",
"unlimitedTeamMembers": "無限團隊成員",
"unlimitedActiveProjects": "無限活躍專案",
"schedule": "日程",
"reporting": "報告",
"subscribeToProjects": "訂閱專案",
"billedAnnually": "按年計費",
"billedMonthly": "按月計費",
"pausePlan": "暫停計劃",
"resumePlan": "恢復計劃",
"changePlan": "更改計劃",
"cancelPlan": "取消計劃",
"perMonthPerUser": "每使用者/月",
"viewInvoice": "檢視發票",
"switchToFreePlan": "切換到免費計劃",
"expirestoday": "今天",
"expirestomorrow": "明天",
"expiredDayAgo": "{{days}}天前",
"expiredDaysAgo": "{{days}}天前",
"continueWith": "繼續使用{{plan}}",
"changeToPlan": "更改為{{plan}}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"overview": "概覽",
"name": "組織名稱",
"owner": "組織所有者",
"admins": "組織管理員",
"contactNumber": "新增聯絡電話",
"edit": "編輯"
}
12 changes: 12 additions & 0 deletions worklenz-frontend/public/locales/zh-TW/admin-center/projects.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"membersCount": "成員數量",
"createdAt": "建立於",
"projectName": "專案名稱",
"teamName": "團隊名稱",
"refreshProjects": "重新整理專案",
"searchPlaceholder": "按專案名稱搜尋",
"deleteProject": "您確定要刪除此專案嗎?",
"confirm": "確認",
"cancel": "取消",
"delete": "刪除專案"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"overview": "概覽",
"users": "使用者",
"teams": "團隊",
"billing": "賬單",
"projects": "專案",
"adminCenter": "管理中心"
}
33 changes: 33 additions & 0 deletions worklenz-frontend/public/locales/zh-TW/admin-center/teams.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"title": "團隊",
"subtitle": "團隊",
"tooltip": "重新整理團隊",
"placeholder": "按名稱搜尋",
"addTeam": "新增團隊",
"team": "團隊",
"membersCount": "成員數量",
"members": "成員",
"drawerTitle": "建立新團隊",
"label": "團隊名稱",
"drawerPlaceholder": "名稱",
"create": "建立",
"delete": "刪除",
"settings": "設定",
"popTitle": "您確定嗎?",
"message": "請輸入名稱",
"teamSettings": "團隊設定",
"teamName": "團隊名稱",
"teamDescription": "團隊描述",
"teamMembers": "團隊成員",
"teamMembersCount": "團隊成員數量",
"teamMembersPlaceholder": "按名稱搜尋",
"addMember": "新增成員",
"add": "新增",
"update": "更新",
"teamNamePlaceholder": "團隊名稱",
"user": "使用者",
"role": "角色",
"owner": "所有者",
"admin": "管理員",
"member": "成員"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"title": "使用者",
"subTitle": "使用者",
"placeholder": "按名稱搜尋",
"user": "使用者",
"email": "電子郵件",
"lastActivity": "最後活動",
"refresh": "重新整理使用者"
}
Loading