Skip to content

Commit 602a132

Browse files
committed
Added Chinese (Simplified)
1 parent 6ff2f93 commit 602a132

File tree

7 files changed

+230
-1
lines changed

7 files changed

+230
-1
lines changed

app/pkg/i18n/i18n.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var localeToPlurals = map[string]string{
2828
"sk": "sk",
2929
"it": "it",
3030
"tr": "tr",
31+
"zh-CN": "zh",
3132
}
3233

3334
type Params map[string]any

locale/locales.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ const locales: { [key: string]: Locale } = {
4545
ar: {
4646
text: "Arabic",
4747
},
48+
"zh-CN": {
49+
text: "Chinese (Simplified)",
50+
},
4851
}
4952

5053
export default locales

locale/zh-CN/client.json

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
{
2+
"action.cancel": "取消",
3+
"action.change": "修改",
4+
"action.close": "关闭",
5+
"action.confirm": "确认",
6+
"action.copylink": "复制链接",
7+
"action.delete": "删除",
8+
"action.edit": "编辑",
9+
"action.markallasread": "将全部标记为已读",
10+
"action.ok": "确定",
11+
"action.respond": "回复/标记",
12+
"action.save": "保存",
13+
"action.signin": "登录",
14+
"action.submit": "提交",
15+
"enum.poststatus.completed": "完成",
16+
"enum.poststatus.declined": "拒绝",
17+
"enum.poststatus.deleted": "删除",
18+
"enum.poststatus.duplicate": "重复",
19+
"enum.poststatus.open": "开启",
20+
"enum.poststatus.planned": "计划中",
21+
"enum.poststatus.started": "进行中",
22+
"error.expired.text": "您点击的链接已过期.",
23+
"error.expired.title": "过期",
24+
"error.forbidden.text": "您无权查看此页面.",
25+
"error.forbidden.title": "被禁止的",
26+
"error.internalerror.text": "发生错误,我们正在努力解决问题!我们很快就会投入运行.",
27+
"error.internalerror.title": "哇!好吧,这太出乎意料了…",
28+
"error.pagenotfound.text": "您点击的链接可能已断开,或者页面可能已被删除.",
29+
"error.pagenotfound.title": "未找到页面",
30+
"error.unauthorized.text": "您无权查看此页面.",
31+
"error.unauthorized.title": "未经授权",
32+
"home.form.defaultinvitation": "在此处输入您的建议...",
33+
"home.form.defaultwelcomemessage": "我们很想听听你在想什么。\n\n我们能做得更好吗?这是您投票、讨论和分享想法的地方.",
34+
"home.lonely.suggestion": "建议您在共享此网站之前,在此处创建<0>至少3个</0>建议。初始内容对于开始吸引观众很重要.",
35+
"home.lonely.text": "尚未创建任何帖子.",
36+
"home.postfilter.label.view": "看板",
37+
"home.postfilter.option.mostdiscussed": "讨论最多",
38+
"home.postfilter.option.mostwanted": "投票最多",
39+
"home.postfilter.option.myvotes": "我的投票",
40+
"home.postfilter.option.recent": "最近",
41+
"home.postfilter.option.trending": "趋势",
42+
"home.postinput.description.placeholder": "描述你的建议(可选)",
43+
"home.postscontainer.label.noresults": "没有与您的搜索匹配的结果,请尝试其他搜索.",
44+
"home.postscontainer.label.viewmore": "查看更多帖子",
45+
"home.postscontainer.query.placeholder": "搜索",
46+
"home.similar.subtitle": "考虑对现有内容进行投票.",
47+
"home.similar.title": "类似帖子",
48+
"home.tagsfilter.label.with": "关于",
49+
"home.tagsfilter.selected.none": "任何标签",
50+
"label.actions": "行动",
51+
"label.avatar": "Avatar",
52+
"label.custom": "自定义",
53+
"label.description": "说明",
54+
"label.discussion": "讨论",
55+
"label.email": "邮箱",
56+
"label.gravatar": "Gravatar",
57+
"label.letter": "稍后",
58+
"label.moderation": "管理",
59+
"label.name": "名称",
60+
"label.none": "None",
61+
"label.notifications": "通知",
62+
"label.or": "或者",
63+
"label.subscribe": "订阅",
64+
"label.tags": "标签",
65+
"label.unread": "未读",
66+
"label.unsubscribe": "取消订阅",
67+
"label.voters": "投票者",
68+
"legal.agreement": "我已阅读并同意 <0/> 和 <1/>.",
69+
"legal.notice": "登录即表示您同意 <0/> and <1/>.",
70+
"legal.privacypolicy": "隐私政策",
71+
"legal.termsofservice": "服务条款",
72+
"menu.administration": "管理",
73+
"menu.mysettings": "我的设置",
74+
"menu.signout": "退出",
75+
"menu.sitesettings": "站点设置",
76+
"modal.changeemail.header": "确认你的新邮箱",
77+
"modal.changeemail.text": "我们刚刚向发送了一个确认链接 <0>{0}</0>. <1/> 点击链接更新您的电子邮件.",
78+
"modal.completeprofile.header": "填写您的个人资料",
79+
"modal.completeprofile.name.placeholder": "名称",
80+
"modal.completeprofile.text": "因为这是您第一次登录,请输入您的姓名.",
81+
"modal.deleteaccount.header": "删除帐户",
82+
"modal.deleteaccount.text": "<0>当您选择删除您的帐户时,我们将永远删除您的所有个人信息。您发布的内容将保留,但将匿名.</0><1>这个过程是不可逆转的. <2>你确定吗?</2></1>",
83+
"modal.deletecomment.header": "删除评论",
84+
"modal.deletecomment.text": "这个过程是不可逆转的. <0>你确定吗?</0>",
85+
"modal.notifications.nonew": "无新通知",
86+
"modal.notifications.previous": "以前的通知",
87+
"modal.notifications.unread": "未读通知",
88+
"modal.showvotes.message.zeromatches": "未找到匹配的用户 <0>{0}</0>.",
89+
"modal.showvotes.query.placeholder": "按名称搜索用户...",
90+
"modal.signin.header": "登录参与投票",
91+
"mynotifications.label.readrecently": "过去30天阅读.",
92+
"mynotifications.message.nounread": "无未读通知.",
93+
"mynotifications.page.subtitle": "及时了解正在发生的事情",
94+
"mynotifications.page.title": "通知",
95+
"mysettings.apikey.documentation": "要了解如何使用API,请阅读 <0>官方文档</0>.",
96+
"mysettings.apikey.generate": "重新生成API密钥",
97+
"mysettings.apikey.newkey": "您的新API密钥是: <0>{0}</0>",
98+
"mysettings.apikey.newkeynotice": "将其安全地存储在服务器上,切勿将其存储在应用程序的客户端.",
99+
"mysettings.apikey.notice": "API密钥仅在生成时显示。如果您的密钥丢失或已被泄露,请生成一个新的密钥并记录下来.",
100+
"mysettings.apikey.title": "API 密钥",
101+
"mysettings.dangerzone.delete": "删除我的帐户",
102+
"mysettings.dangerzone.notice": "这个过程是不可逆转的. 请确定.",
103+
"mysettings.dangerzone.text": "当您选择删除您的帐户时,我们将永远删除您的所有个人信息。您发布的内容将保留,但将匿名.",
104+
"mysettings.dangerzone.title": "删除帐户",
105+
"mysettings.message.avatar.custom": "我们接受小于100KB、纵横比为1:1、最小尺寸为50x50像素的JPG、GIF和PNG图像.",
106+
"mysettings.message.avatar.gravatar": "一个 <0>Gravatar</0> 将根据您的电子邮件使用。如果你没有Gravatar,系统会为你生成一个基于你首字母的字母头像.",
107+
"mysettings.message.avatar.letter": "根据您的首字母为您生成一个字母头像.",
108+
"mysettings.message.noemail": "您的帐户没有电子邮件.",
109+
"mysettings.message.privateemail": "您的电子邮件是私人的,永远不会公开显示.",
110+
"mysettings.notification.channelemail": "电子邮件",
111+
"mysettings.notification.channelweb": "网站",
112+
"mysettings.notification.event.discussion": "讨论",
113+
"mysettings.notification.event.discussion.staff": "对所有帖子发表评论,除非单独取消订阅",
114+
"mysettings.notification.event.discussion.visitors": "对您订阅的帖子的评论",
115+
"mysettings.notification.event.newpost": "新帖子",
116+
"mysettings.notification.event.newpost.staff": "本网站上的新帖子",
117+
"mysettings.notification.event.newpost.visitors": "本网站上的新帖子",
118+
"mysettings.notification.event.statuschanged": "状态已更改",
119+
"mysettings.notification.event.statuschanged.staff": "除非单独取消订阅,否则所有帖子的状态都会发生变化",
120+
"mysettings.notification.event.statuschanged.visitors": "您订阅的帖子的状态更改",
121+
"mysettings.notification.message.emailonly": "您将收到 <0>电子邮件</0> 相关的通知 {about}.",
122+
"mysettings.notification.message.none": "您将 <0>不会</0> 收到有关此事件的任何通知.",
123+
"mysettings.notification.message.webandemail": "您将收到关于以下内容的<0>网络</0>和<1>电子邮件</1>通知 {about}.",
124+
"mysettings.notification.message.webonly": "您将收到有关以下内容的<0>网络</0>通知 {about}.",
125+
"mysettings.notification.title": "使用以下面板选择要接收通知的事件",
126+
"mysettings.page.subtitle": "管理您的个人资料设置",
127+
"mysettings.page.title": "设置",
128+
"page.backhome": "带我回到<0>{0}</0>主页.",
129+
"page.notinvited.text": "我们找不到您电子邮件地址的帐户.",
130+
"page.notinvited.title": "未被邀请",
131+
"page.pendingactivation.text": "我们向您发送了一封确认电子邮件,其中包含激活您账户的网站链接.",
132+
"page.pendingactivation.text2": "请检查您的收件箱以激活它.",
133+
"page.pendingactivation.title": "您的帐户正在等待激活",
134+
"showpost.comment.copylink.error": "复制评论链接失败,请复制页面URL",
135+
"showpost.comment.copylink.success": "评论链接已复制到剪贴板",
136+
"showpost.comment.unknownhighlighted": "无效的评论ID #{id}",
137+
"showpost.commentinput.placeholder": "发表评论",
138+
"showpost.discussionpanel.emptymessage": "还没有人发表评论.",
139+
"showpost.label.author": "发表者 <0/> · <1/>",
140+
"showpost.message.nodescription": "未提供描述.",
141+
"showpost.moderationpanel.text.help": "此操作<0>无法撤消</0>.",
142+
"showpost.moderationpanel.text.placeholder": "你为什么要删除这篇内容?(可选)",
143+
"showpost.notificationspanel.message.subscribed": "您正在收到有关此帖子活动的通知.",
144+
"showpost.notificationspanel.message.unsubscribed": "您将不会收到有关此帖子的任何通知.",
145+
"showpost.postsearch.numofvotes": "{0} 投票",
146+
"showpost.postsearch.query.placeholder": "搜索原始帖子...",
147+
"showpost.responseform.message.mergedvotes": "此帖子的投票将合并到原始帖子中.",
148+
"showpost.responseform.text.placeholder": "这篇文章怎么了?让你的用户知道你的计划是什么...",
149+
"showpost.votespanel.more": "+{extraVotesCount} 更多",
150+
"showpost.votespanel.seedetails": "查看详细信息",
151+
"signin.message.email": "输入您的电子邮件地址以登录",
152+
"signin.message.emaildisabled": "管理员已禁用电子邮件身份验证。如果您有管理员帐户并且需要绕过此限制,请 <0>点击这里</0>.",
153+
"signin.message.emailsent": "我们刚刚向发送了一个确认链接 <0>{email}</0>. 单击链接,您将登录.",
154+
"signin.message.locked.text": "要重新激活此网站,请使用管理员帐户登录并更新所需的设置.",
155+
"signin.message.locked.title": "<0>{0}</0> 当前已锁定.",
156+
"signin.message.onlyadmins": "目前只允许登录管理员帐户",
157+
"signin.message.private.text": "如果您有帐户或邀请,您可以使用以下选项登录.",
158+
"signin.message.private.title": "<0>{0}</0> 这是一个私人空间,您必须登录才能参与和投票.",
159+
"{count, plural, one {# tag} other {# tags}}": "{count, plural, one {# tag} other {# tags}}"
160+
}

locale/zh-CN/server.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"property.avatarType": "头像类型",
3+
"property.name": "名称",
4+
"property.image": "图片",
5+
"property.customdomain": "自定义域名",
6+
"property.key": "密码",
7+
"property.email": "电子邮件",
8+
"property.title": "标题",
9+
"property.comment": "评论",
10+
"property.status": "状态",
11+
"validation.required": "{name} 是必需的.",
12+
"validation.invalid": "{name} 无效.",
13+
"validation.invalidvalue": "{name} 具有无效值 '{value}'.",
14+
"validation.maxstringlen": "{name} 必须小于 {len} 字符.",
15+
"validation.custom.maxattachments": "每篇帖子允许添加最多 {number} 个附件.",
16+
"validation.custom.differentemail": "选择其他电子邮件.",
17+
"validation.custom.emailtaken": "此电子邮件已被其他人使用",
18+
"validation.custom.descriptivetitle": "标题需要更具描述性.",
19+
"validation.custom.duplicatetitle": "这已经发布过了.",
20+
"validation.custom.selfduplicate": "不能与自身重复.",
21+
"validation.custom.originalpostnotfound": "未找到原始帖子.",
22+
"validation.custom.cannotdeleteduplicatepost": "无法删除此帖子,因为它被重复的帖子引用.",
23+
"validation.custom.unknownsettings": "未知的设置 '{name}'",
24+
"validation.custom.invalidemail": "'{email}' 不是有效的电子邮件地址.",
25+
"validation.custom.invalidurl": "'{url}' 不是有效的URL.",
26+
"validation.custom.invalidcustomdomain": "'{domain}' 不是有效的自定义域.",
27+
"validation.custom.customdomaintaken": "此自定义域已被其他人使用.",
28+
"validation.custom.unsupportedfileformat": "不支持此文件格式.",
29+
"validation.custom.minimagedimensions": "图像的最小尺寸必须为 {width}x{height} 像素.",
30+
"validation.custom.imagesquareratio": "图像的纵横比必须为 1:1.",
31+
"validation.custom.maximagesize": "图像大小必须小于 {kilobytes}KB.",
32+
"enum.poststatus.open": "打开",
33+
"enum.poststatus.started": "启动",
34+
"enum.poststatus.completed": "完成",
35+
"enum.poststatus.declined": "拒绝",
36+
"enum.poststatus.planned": "计划中",
37+
"enum.poststatus.duplicate": "重复",
38+
"enum.poststatus.deleted": "删除",
39+
"email.change_emailaddress.subject": "确认您的新电子邮件",
40+
"email.change_emailaddress.request": "您已请求更改电子邮件 {oldEmail} 为 {newEmail}.",
41+
"email.subscription.view": "在浏览器上查看",
42+
"email.subscription.change": "更改您的通知首选项",
43+
"email.subscription.unsubscribe": "取消订阅",
44+
"email.greetings": "Hello!",
45+
"email.greetings_name": "Hello, {name}!",
46+
"email.operation_confirmation": "单击下面的链接确认此操作.",
47+
"email.footer.noreply": "此电子邮件是从无法接受传入电子邮件的仅通知地址发送的。请不要回复此消息.",
48+
"email.change_status.duplicate": "<strong>{title} ({postLink})</strong> 已作为一个已关闭的 <strong>复制品</strong> 关于 {duplicate}.",
49+
"email.change_status.others": "状态 <strong>{title} ({postLink})</strong> 已更改为 <strong>{status}</strong>.",
50+
"email.delete_post.text": "<strong>{title}</strong> 已经 <strong>删除了</strong>.",
51+
"email.new_comment.text": "<strong>{userName}</strong> 发表评论 <strong>{title} ({postLink})</strong>.",
52+
"email.new_post.text": "<strong>{userName}</strong> 创建了一个新帖子 <strong>{title} ({postLink})</strong>.",
53+
"email.signin_email.subject": "登录到 {siteName}",
54+
"email.signin_email.text": "您要求我们向您发送登录链接,现在是.",
55+
"email.signin_email.confirmation": "单击下面的链接登录 <strong>{siteName}</strong>.",
56+
"email.signup_email.subject": "您的新 Fider 网站",
57+
"email.signup_email.text": "您距离激活 Fider 网站仅一步之遥.",
58+
"email.signup_email.confirmation": "通过下面的链接,您可以验证您的电子邮件地址并完成激活过程.",
59+
"email.footer.subscription_notice": "您收到此电子邮件是因为您订阅了此帖子。你可以 {view}, {unsubscribe} 或者 {change}.",
60+
"email.footer.subscription_notice2": "您收到此电子邮件是因为您订阅了此帖子。你可以 {change}.",
61+
"email.footer.subscription_notice3": "您收到此电子邮件是因为您订阅了此帖子。你可以 {view} 或者 {change}."
62+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@
8989
"sk",
9090
"tr",
9191
"it",
92+
"zh-CN",
9293
"el"
9394
]
9495
},

public/services/i18n.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { i18n, I18n } from "@lingui/core"
2-
import { en, pt, fr, el, de, se, pl, ru, sk, nl, es, tr, it } from "make-plural/plurals"
2+
import { en, pt, fr, el, de, se, pl, ru, sk, nl, es, tr, it, zh } from "make-plural/plurals"
33

44
export function activateI18NSync(locale: string, messages?: any): I18n {
55
i18n.loadLocaleData("en", { plurals: en })
@@ -15,6 +15,7 @@ export function activateI18NSync(locale: string, messages?: any): I18n {
1515
i18n.loadLocaleData("ru", { plurals: ru })
1616
i18n.loadLocaleData("sk", { plurals: sk })
1717
i18n.loadLocaleData("tr", { plurals: tr })
18+
i18n.loadLocaleData("zh-CH", { plurals: zh })
1819
i18n.load(locale, messages)
1920
i18n.activate(locale)
2021
return i18n

public/ssr.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const messages: { [key: string]: any } = {
1414
"sv-SE": require(`../locale/sv-SE/client`),
1515
it: require(`../locale/it/client`),
1616
"es-ES": require(`../locale/es-ES/client`),
17+
"zh-CN": require(`../locale/zh-CN/client`),
1718
el: require(`../locale/el/client`),
1819
nl: require(`../locale/nl/client`),
1920
de: require(`../locale/de/client`),

0 commit comments

Comments
 (0)