From 28a12d90647f3b0155986e5acf884f3f938f885f Mon Sep 17 00:00:00 2001 From: Zhu Ziqi Date: Sat, 31 Aug 2024 23:08:08 +0800 Subject: [PATCH 1/3] Added Chinese translation --- messages/en-US.json | 3 +- messages/fi.json | 3 +- messages/zh-CN.json | 384 ++++++++++++++++++++++++++++++++++++++++++++ src/i18n.ts | 2 +- 4 files changed, 389 insertions(+), 3 deletions(-) create mode 100644 messages/zh-CN.json diff --git a/messages/en-US.json b/messages/en-US.json index 8a7d5cdc..11d91547 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -298,7 +298,8 @@ "fi": "Suomi", "fr-FR": "Français", "es": "Español", - "de-DE": "Deutsch" + "de-DE": "Deutsch", + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "Share", diff --git a/messages/fi.json b/messages/fi.json index 6b4784f5..2e5c585b 100644 --- a/messages/fi.json +++ b/messages/fi.json @@ -298,7 +298,8 @@ "fi": "Suomi", "fr-FR": "Français", "es": "Español", - "de-DE": "Deutsch" + "de-DE": "Deutsch", + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "Jaa", diff --git a/messages/zh-CN.json b/messages/zh-CN.json new file mode 100644 index 00000000..8309511a --- /dev/null +++ b/messages/zh-CN.json @@ -0,0 +1,384 @@ +{ + "Header": { + "groups": "群组" + }, + "Footer": { + "madeIn": "Made in Montréal, Québec 🇨🇦", + "builtBy": "由 Sebastien Castiel 以及 社区贡献者们 共同构建" + }, + "Expenses": { + "title": "消费", + "description": "这里有你为你的群组创建的消费。", + "create": "创建消费", + "createFirst": "创建首个消费", + "noExpenses": "你的群组内目前没有任何消费。", + "exportJson": "导出到JSON", + "searchPlaceholder": "查找消费……", + "ActiveUserModal": { + "title": "你是哪位?", + "description": "告诉我们你在群组中的身份,以便定制你的信息呈现方式。", + "nobody": "我不想选择任何人", + "save": "保存变更", + "footer": "此项设定之后可以在群组设定中修改。" + }, + "Groups": { + "upcoming": "即将到来", + "thisWeek": "本周", + "earlierThisMonth": "本月早些时候", + "lastMonth": "上个月", + "earlierThisYear": "本年早些时候", + "lastYera": "去年", + "older": "更早" + } + }, + "ExpenseCard": { + "paidBy": "{paidBy} 支付。", + "receivedBy": "{paidBy} 接收。", + "yourBalance": "你的余额:" + }, + "Groups": { + "myGroups": "我的群组", + "create": "创建", + "loadingRecent": "加载最近的群组……", + "NoRecent": { + "description": "你最近没有访问任何群组。", + "create": "创建一个群组", + "orAsk": "或者让你的朋友发给你现有群组的链接。" + }, + "recent": "最近的群组", + "starred": "已收藏的群组", + "archived": "已归档的群组", + "archive": "归档群组", + "unarchive": "取消归档群组", + "removeRecent": "从最近的群组中删除", + "RecentRemovedToast": { + "title": "群组已删除", + "description": "群组已从你的最近群组列表中删除。", + "undoAlt": "撤销群组删除", + "undo": "撤销" + }, + "AddByURL": { + "button": "使用URL添加", + "title": "使用URL添加一个群组", + "description": "如果你被分享了一个群组,你可以将群组的URL粘贴到这里以添加这个群组。", + "error": "哎呀,我们没办法根据你的URL找到相应的群组……" + }, + "NotFound": { + "text": "该群组不存在。", + "link": "跳转到最近访问过的群组" + } + }, + "GroupForm": { + "title": "群组信息", + "NameField": { + "label": "群组名", + "placeholder": "暑假", + "description": "为你的群组输入一个名字。" + }, + "InformationField": { + "label": "群组信息", + "placeholder": "哪些信息与群组成员有关?" + }, + "CurrencyField": { + "label": "货币标志", + "placeholder": "$, €, £…", + "description": "我们根据这个显示相应的货币金额。" + }, + "Participants": { + "title": "群组成员", + "description": "输入每位成员的名字。", + "protectedParticipant": "群组成员是消费的一部分,不可删除。", + "new": "新建", + "add": "添加群组成员", + "John": "John", + "Jane": "Jane", + "Jack": "Jack" + }, + "Settings": { + "title": "本地设定", + "description": "这些设定是按设备设定的,用于定制你的使用体验。", + "ActiveUserField": { + "label": "当前用户", + "placeholder": "选择一个群组成员", + "none": "无", + "description": "用于支付消费的默认用户。" + }, + "save": "保存", + "saving": "保存中……", + "create": "创建", + "creating": "创建中", + "cancel": "取消" + } + }, + "ExpenseForm": { + "Income": { + "create": "创建收入", + "edit": "编辑收入", + "TitleField": { + "label": "收入标题", + "placeholder": "周一晚上的餐厅", + "description": "描述这个收入。" + }, + "DateField": { + "label": "收入日期", + "description": "输入收到这笔收入的日期。" + }, + "categoryFieldDescription": "选择收入类别。", + "paidByField": { + "label": "接收到", + "description": "选择接收到这笔收入的群组成员。" + }, + "paidFor": { + "title": "接收给", + "description": "选择收入是为谁而收。" + }, + "splitModeDescription": "选择如何划分这笔收入。", + "attachDescription": "查看并为这笔收入附加收据。" + }, + "Expense": { + "create": "创建消费", + "edit": "编辑消费", + "TitleField": { + "label": "消费标题", + "placeholder": "周一晚上的餐厅", + "description": "描述这个消费。" + }, + "DateField": { + "label": "消费日期", + "description": "输入支付这笔消费的日期。" + }, + "categoryFieldDescription": "选择消费类别。", + "paidByField": { + "label": "支付自", + "description": "选择支付这笔消费的群组成员。" + }, + "paidFor": { + "title": "支付给", + "description": "选择消费是为谁而支出。" + }, + "splitModeDescription": "选择如何划分这笔消费。", + "attachDescription": "查看并为这笔消费附加收据。" + }, + "amountField": { + "label": "金额" + }, + "isReimbursementField": { + "label": "这是一笔报销款" + }, + "categoryField": { + "label": "类别" + }, + "notesField": { + "label": "附注" + }, + "selectNone": "取消选中", + "selectAll": "全选", + "shares": "份额", + "advancedOptions": "高级分账选项……", + "SplitModeField": { + "label": "分账模式", + "evenly": "平均分配", + "byShares": "按份额分配", + "byPercentage": "按百分比分配", + "byAmount": "按金额分配", + "saveAsDefault": "保存为默认分账设置" + }, + "DeletePopup": { + "label": "删除", + "title": "要删除这项消费吗?", + "description": "你真的确定要删除这项消费吗?此行动不可撤销。", + "yes": "确定", + "cancel": "取消" + }, + "attachDocuments": "附加文档", + "create": "创建", + "creating": "创建中……", + "save": "保存", + "saving": "保存中……", + "cancel": "取消" + }, + "ExpenseDocumentsInput": { + "TooBigToast": { + "title": "文件过大", + "description": "可上传的最大文件大小为{maxSize},你的文件为${size}。" + }, + "ErrorToast": { + "title": "上传文档时发生错误", + "description": "上传文档时发生了一些错误。请稍后重试或更换文件。", + "retry": "重试" + } + }, + "CreateFromReceipt": { + "Dialog": { + "triggerTitle": "从收据中创建消费", + "title": "从收据中创建", + "description": "从收据照片上提取消费信息。", + "body": "上传收据的图片,我们会尽可能地从中扫描出消费信息。", + "selectImage": "选择图片……", + "titleLabel": "标题:", + "categoryLabel": "类别:", + "amountLabel": "金额:", + "dateLabel": "日期:", + "editNext": "你之后可以修改消费的信息。", + "continue": "继续" + }, + "unknown": "未知", + "TooBigToast": { + "title": "文件过大", + "description": "可上传的最大文件大小为{maxSize},你的文件为${size}。" + }, + "ErrorToast": { + "title": "上传文档时发生错误", + "description": "上传文档时发生了一些错误。请稍后重试或更换文件。", + "retry": "重试" + } + }, + "Balances": { + "title": "余额", + "description": "这是每位群组成员支付或被支付的金额。", + "Reimbursements": { + "title": "建议报销", + "description": "这里是优化群组成员之间报销的建议。", + "noImbursements": "看起来你的群组不需要任何报销😁", + "owes": "{from}{to}", + "markAsPaid": "标记为已支付" + } + }, + "Stats": { + "title": "统计", + "Totals": { + "title": "总计", + "description": "整个群组的花费合计。", + "groupSpendings": "群组总计开销", + "groupEarnings": "群组总计收入", + "yourSpendings": "你的总计开销", + "yourEarnings": "你的总计收入", + "yourShare": "你的总计份额" + } + }, + "Activity": { + "title": "活动", + "description": "该群组所有活动总览", + "noActivity": "你的群组目前没有任何活动。", + "someone": "某人", + "settingsModified": "群组设定已被{participant}更改。", + "expenseCreated": "消费 {expense}{participant} 创建。", + "expenseUpdated": "消费 {expense}{participant} 更新。", + "expenseDeleted": "消费 {expense}{participant} 删除。", + "Groups": { + "today": "今天", + "yesterday": "昨天", + "earlierThisWeek": "这周早些时候", + "lastWeek": "上周", + "earlierThisMonth": "这月早些时候", + "lastMonth": "上月", + "earlierThisYear": "这年早些时候", + "lastYear": "上年", + "older": "更早" + } + }, + "Information": { + "title": "信息", + "description": "使用此处以添加与群组成员相关的任何信息。", + "empty": "当前没有群组信息。" + }, + "Settings": { + "title": "设定" + }, + "Locale": { + "en-US": "English", + "zh-CN": "Chinese (Simplified)", + "fi": "Suomi" + }, + "Share": { + "title": "分享", + "description": "请将此URL分享给其他群组成员,以使其可以查看群组并添加消费。", + "warning": "警告!", + "warningHelp": "任何持有群组URL的个体都有能够查看并编辑消费。请谨慎分享!" + }, + "SchemaErrors": { + "min1": "输入至少1个字符。", + "min2": "输入至少2个字符。", + "max5": "输入至少5个字符。", + "max50": "输入至少50个字符。", + "duplicateParticipantName": "此名字已被另一位群组成员占用。", + "titleRequired": "请输入标题。", + "invalidNumber": "无效数值。", + "amountRequired": "你必须输入一个金额。", + "amountNotZero": "金额不可以为0。", + "amountTenMillion": "金额必须小于10,000,000。", + "paidByRequired": "你必须选择一个群组成员。", + "paidForMin1": "这项消费必须支付给至少1名群组成员。", + "noZeroShares": "所有份额必须大于0。", + "amountSum": "金额之和必须等于消费的金额。", + "percentageSum": "百分比之和必须等于100。" + }, + "Categories": { + "search": "搜寻类别……", + "noCategory": "未找到类别。", + "Uncategorized": { + "heading": "未分类", + "General": "一般", + "Payment": "支付" + }, + "Entertainment": { + "heading": "娱乐", + "Entertainment": "娱乐", + "Games": "游戏", + "Movies": "电影", + "Music": "音乐", + "Sports": "运动" + }, + "Food and Drink": { + "heading": "饮食", + "Food and Drink": "饮食", + "Dining Out": "下馆子", + "Groceries": "便利店", + "Liquor": "酒水" + }, + "Home": { + "heading": "居家", + "Home": "居家", + "Electronics": "电费", + "Furniture": "家具", + "Household Supplies": "家庭日用品", + "Maintenance": "维护", + "Mortgage": "贷款", + "Pets": "宠物", + "Rent": "租金", + "Services": "服务" + }, + "Life": { + "heading": "生活", + "Childcare": "儿童保育", + "Clothing": "衣物", + "Education": "教育", + "Gifts": "礼物", + "Insurance": "保险", + "Medical Expenses": "医疗支出", + "Taxes": "税" + }, + "Transportation": { + "heading": "交通", + "Transportation": "交通", + "Bicycle": "自行车", + "Bus/Train": "巴士/列车", + "Car": "汽车", + "Gas/Fuel": "燃料", + "Hotel": "旅馆", + "Parking": "停车", + "Plane": "飞机", + "Taxi": "出租车" + }, + "Utilities": { + "heading": "日常账单", + "Utilities": "日常账单", + "Cleaning": "清洁费", + "Electricity": "电费", + "Heat/Gas": "暖气/瓦斯", + "Trash": "垃圾", + "TV/Phone/Internet": "电视/手机/互联网", + "Water": "水" + } + } +} diff --git a/src/i18n.ts b/src/i18n.ts index 11ef139c..77e619d6 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,7 +1,7 @@ import { getRequestConfig } from 'next-intl/server' import { getUserLocale } from './lib/locale' -export const locales = ['en-US', 'fi', 'fr-FR', 'es', 'de-DE'] as const +export const locales = ['en-US', 'fi', 'fr-FR', 'es', 'de-DE', 'zh-CN'] as const export type Locale = (typeof locales)[number] export type Locales = ReadonlyArray export const defaultLocale: Locale = 'en-US' From aefae3951ff50373ddb8843e6845f9dd60624492 Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Sat, 28 Sep 2024 18:14:34 -0400 Subject: [PATCH 2/3] Add home page translation --- messages/zh-CN.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 8309511a..91d39d0f 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -1,4 +1,12 @@ { + "Homepage": { + "title": "与朋友和家人共享开支", + "description": "欢迎使用你的全新Spliit实例!", + "button": { + "groups": "前往群组", + "github": "GitHub" + } + }, "Header": { "groups": "群组" }, @@ -287,7 +295,7 @@ }, "Locale": { "en-US": "English", - "zh-CN": "Chinese (Simplified)", + "zh-CN": "Chinese (Simplified)", "fi": "Suomi" }, "Share": { From 2df0106dcea688827e235e72d5dbaff0f4380194 Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Sat, 28 Sep 2024 18:17:28 -0400 Subject: [PATCH 3/3] Fix translations --- messages/de-DE.json | 7 +++++-- messages/es.json | 3 ++- messages/fr-FR.json | 4 +++- messages/zh-CN.json | 7 +++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 4e13c80e..46363d57 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -294,9 +294,12 @@ "title": "Einstellungen" }, "Locale": { - "en-US": "Englisch", + "en-US": "English", + "fi": "Suomi", + "fr-FR": "Français", + "es": "Español", "de-DE": "Deutsch", - "fi": "Finnisch" + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "Teilen", diff --git a/messages/es.json b/messages/es.json index e2422f2b..21987697 100644 --- a/messages/es.json +++ b/messages/es.json @@ -298,7 +298,8 @@ "fi": "Suomi", "fr-FR": "Français", "es": "Español", - "de-DE": "Deutsch" + "de-DE": "Deutsch", + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "Compartir", diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 078c6f37..26a6872d 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -297,7 +297,9 @@ "en-US": "English", "fi": "Suomi", "fr-FR": "Français", - "es": "Español" + "es": "Español", + "de-DE": "Deutsch", + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "Partager", diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 91d39d0f..a1b2a56e 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -295,8 +295,11 @@ }, "Locale": { "en-US": "English", - "zh-CN": "Chinese (Simplified)", - "fi": "Suomi" + "fi": "Suomi", + "fr-FR": "Français", + "es": "Español", + "de-DE": "Deutsch", + "zh-CN": "Chinese (Simplified)" }, "Share": { "title": "分享",