-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Added Simplified Chinese (zh-Hans) and Updated some wordings in zh and zh-Hant #25030
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughUpdated Traditional Chinese (zh-Hant) and Simplified Chinese (zh) localization JSON files: ghost.json, portal.json, comments.json, and signup-form.json. Changes populate many previously empty translations, adjust wording and spacing around placeholders, standardize terminology (notably “電子郵件” / email), and refine UI, notification, verification, subscription, and status strings. No new keys or runtime logic introduced; edits are confined to translation values and phrasing/formatting within existing keys. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🧠 Learnings (4)📓 Common learnings
📚 Learning: 2025-07-29T05:18:41.313Z
Applied to files:
📚 Learning: 2025-07-29T04:57:10.163Z
Applied to files:
📚 Learning: 2025-07-29T05:24:43.780Z
Applied to files:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 9
🧹 Nitpick comments (2)
ghost/i18n/locales/zh-Hant/ghost.json (1)
67-68
: Use full-width colons for Chinese labels.For Chinese punctuation, “時間:”/“地點:” should use “:” to read naturally. Please update both.
- "When:": "時間:", - "Where:": "地點:", + "When:": "時間:", + "Where:": "地點:",ghost/i18n/locales/zh/ghost.json (1)
67-68
: Switch to full-width colons in these labels.For Chinese copy we normally use “:”. Updating “时间:/地点:” keeps the typography consistent.
- "When:": "时间:", - "Where:": "地点:", + "When:": "时间:", + "Where:": "地点:",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
ghost/i18n/locales/zh-Hans/comments.json
(1 hunks)ghost/i18n/locales/zh-Hans/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hans/portal.json
(1 hunks)ghost/i18n/locales/zh-Hans/search.json
(1 hunks)ghost/i18n/locales/zh-Hans/signup-form.json
(1 hunks)ghost/i18n/locales/zh-Hant/comments.json
(3 hunks)ghost/i18n/locales/zh-Hant/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(6 hunks)ghost/i18n/locales/zh-Hant/signup-form.json
(1 hunks)ghost/i18n/locales/zh/ghost.json
(1 hunks)ghost/i18n/locales/zh/portal.json
(7 hunks)
🧰 Additional context used
🧠 Learnings (7)
📓 Common learnings
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/ghost.json
ghost/i18n/locales/zh-Hant/ghost.json
ghost/i18n/locales/zh-Hant/portal.json
ghost/i18n/locales/zh-Hans/ghost.json
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-01-29T15:27:29.391Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Applied to files:
ghost/i18n/locales/zh/ghost.json
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-05-20T21:08:21.026Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Applied to files:
ghost/i18n/locales/zh/ghost.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh-Hant/ghost.json
ghost/i18n/locales/zh-Hant/portal.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/zh-Hant/comments.json
📚 Learning: 2025-07-29T05:08:05.874Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:45-46
Timestamp: 2025-07-29T05:08:05.874Z
Learning: For Traditional Chinese localization in Ghost's comments.json, "Oldest" should be translated as "最早" (not "最初") when used in comment sorting selectors, as "最早" better conveys the temporal sorting context.
Applied to files:
ghost/i18n/locales/zh-Hant/comments.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Cursor Bugbot
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (1)
ghost/i18n/locales/zh-Hant/ghost.json (1)
75-75
: Restore the full-width colon at the end of the sentence.
繁體中文句末提示應以「:」結尾,避免半形冒號造成視覺不一致。-"You're one tap away from subscribing to {siteTitle} — please confirm your email address with this link:": "您離訂閱{siteTitle}只差一步 — 請透過此連結確認您的電子郵件地址:", +"You're one tap away from subscribing to {siteTitle} — please confirm your email address with this link:": "您離訂閱{siteTitle}只差一步 — 請透過此連結確認您的電子郵件地址:",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
ghost/i18n/locales/zh-Hans/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hans/portal.json
(1 hunks)ghost/i18n/locales/zh-Hant/ghost.json
(1 hunks)ghost/i18n/locales/zh/ghost.json
(1 hunks)ghost/i18n/locales/zh/portal.json
(7 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- ghost/i18n/locales/zh/ghost.json
- ghost/i18n/locales/zh-Hans/ghost.json
- ghost/i18n/locales/zh-Hans/portal.json
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-01-29T15:27:29.391Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Applied to files:
ghost/i18n/locales/zh-Hant/ghost.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
ghost/i18n/locales/zh-Hans/portal.json
(1 hunks)ghost/i18n/locales/zh-Hant/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(6 hunks)ghost/i18n/locales/zh/portal.json
(7 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- ghost/i18n/locales/zh-Hant/portal.json
- ghost/i18n/locales/zh-Hant/ghost.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/portal.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
ghost/i18n/locales/zh-Hans/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hans/portal.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(6 hunks)ghost/i18n/locales/zh/portal.json
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- ghost/i18n/locales/zh-Hans/ghost.json
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
ghost/i18n/locales/zh-Hant/portal.json (1)
152-152
: “Spam complaints” should reflect “complaints”.“垃圾郵件” alone misses “complaints”。
- "Spam complaints": "垃圾郵件", + "Spam complaints": "垃圾郵件檢舉",
♻️ Duplicate comments (1)
ghost/i18n/locales/zh/portal.json (1)
176-176
: Polish invite‑only and add missing punctuation.Make sentence complete and polite.
- "This site is invite-only, contact the owner for access.": "此网站仅限邀请,联系网站所有者以获取访问权限", + "This site is invite-only, contact the owner for access.": "此网站仅限邀请,请联系网站所有者以获取访问权限。", - "To continue to stay up to date, subscribe to {publication} below.": "如需持续获取最新资讯,请在下方订阅{publication}", + "To continue to stay up to date, subscribe to {publication} below.": "如需持续获取最新资讯,请在下方订阅{publication}。",Also applies to: 181-181
🧹 Nitpick comments (13)
ghost/i18n/locales/zh-Hant/portal.json (6)
14-14
: Standardize “inbox” term to 收件匣.Currently mixes 收件箱/收件匣/收件夾。Prefer zh‑Hant “收件匣”。
- "A login link has been sent ...": "登入連結已經發送到您的收件箱..." + "A login link has been sent ...": "登入連結已經發送到您的收件匣..." - "Check your inbox to verify email update": "請檢查您的收件箱確認更新電子郵件", + "Check your inbox to verify email update": "請檢查您的收件匣以確認電子郵件更新", - "Make sure emails ...": "...移至收件匣」。", + "Make sure emails ...": "...移至收件匣」。", - "Once resubscribed, ...": "...請檢查您的垃圾郵件匣。...", + "Once resubscribed, ...": "...請檢查您的垃圾郵件匣。...", - "Verification link sent, check your inbox": "驗證連結已寄出,請確認你的信箱", + "Verification link sent, check your inbox": "驗證連結已寄出,請確認您的收件匣", - "your inbox": "您的收件箱", + "your inbox": "您的收件匣",Also applies to: 35-35, 109-109, 124-124, 198-198, 219-219
70-71
: Use polite form consistently (“您/您的”).Mixed “你/您的” lowers tone. Unify to 您/您的.
- "Enter your email address": "輸入你的電子郵件", + "Enter your email address": "輸入您的電子郵件", - "Please contact {supportAddress} to adjust your complimentary subscription.": "請聯絡 {supportAddress} 來調整你的免費的訂閱。", + "Please contact {supportAddress} to adjust your complimentary subscription.": "請聯絡 {supportAddress} 以調整您的免費訂閱。", - "You're currently not receiving emails": "您目前不會收到電子郵件。", + "You're currently not receiving emails": "您目前無法收到電子郵件。", - "You're not receiving emails": "您當前不會收到電子郵件。", + "You're not receiving emails": "您目前無法收到電子郵件。",Also applies to: 130-130, 212-213
90-90
: Prefer zh‑Hant terms 聯絡/存取權限.Use zh‑Hant style; avoid Mainland “聯繫/訪問”。
- "Get in touch for help": "聯繫我們,獲取幫助", + "Get in touch for help": "聯絡我們以取得協助", - "We couldn't unsubscribe you as the email address was not found. Please contact the site owner.": "我們無法取消您的訂閱,因為找不到該電子郵箱地址。請聯繫網站擁有者。", + "We couldn't unsubscribe you as the email address was not found. Please contact the site owner.": "我們無法取消您的訂閱,因為找不到該電子郵件地址。請聯絡網站擁有者。", - "This site is invite-only, contact the owner for access.": "此網站僅限邀請,聯繫網站所有者以獲取訪問權限。", + "This site is invite-only, contact the owner for access.": "此網站僅限邀請,請聯絡網站擁有者以取得存取權限。",Also applies to: 201-201, 176-176
95-95
: Polish wording for mail terms (地址/用戶端).Use “電子郵件地址/用戶端”;remove redundant “中”。
- "...您的電子郵箱地址將自動停止接收該電子報..." + "...您的電子郵件地址將自動停止接收該電子報..." - "在您的電子郵件系統中將 {senderEmail} 加入您的聯絡人列表中。" + "在您的電子郵件用戶端將 {senderEmail} 加入聯絡人列表。"Also applies to: 103-103
112-112
: Adopt preferred phrasing for domain restrictions.Use the house style for email‑domain restrictions.
- "Memberships from this email domain are currently restricted.": "來自此電子郵件網域的會員資格目前受到限制。", + "Memberships from this email domain are currently restricted.": "目前不接受此 email 網域的會員申請。", - "Signups from this email domain are currently restricted.": "來自此電子郵件網域的註冊目前受到限制。", + "Signups from this email domain are currently restricted.": "目前不接受此 email 網域的新會員註冊。",Based on learnings
Also applies to: 148-148
18-18
: CTA and terminology tweaks (minor).Prefer “新增/備註” in zh‑Hant; current is Mainland‑leaning.
- "Add a personal note": "添加個人留言", + "Add a personal note": "新增個人備註", - "Code": "驗證碼", + "Code": "驗證碼",Also applies to: 42-42
ghost/i18n/locales/zh/portal.json (7)
85-85
: Unify “订阅” vs “会籍”.Use “订阅” throughout to match product terminology.
- "Failed to update subscription, please try again": "更新会籍失败,请重试", + "Failed to update subscription, please try again": "更新订阅失败,请重试", - "If you cancel your subscription now, you will continue to have access until {periodEnd}.": "如果现在取消订阅,当前会籍在{periodEnd}前依旧有效。", + "If you cancel your subscription now, you will continue to have access until {periodEnd}.": "如果现在取消订阅,您在{periodEnd}前仍可访问内容。", - "Your subscription will expire on {expiryDate}": "您的会籍将在{expiryDate}到期", + "Your subscription will expire on {expiryDate}": "您的订阅将于{expiryDate}到期", - "Your subscription will renew on {renewalDate}": "您的会籍将在{renewalDate}续费", + "Your subscription will renew on {renewalDate}": "您的订阅将于{renewalDate}续订", - "Your subscription will start on {subscriptionStart}": "您的会籍将于{subscriptionStart}开始", + "Your subscription will start on {subscriptionStart}": "您的订阅将于{subscriptionStart}开始",Also applies to: 97-97, 221-223
35-35
: Use “确认” (not 验证) for email update check.More natural here.
- "Check your inbox to verify email update": "请检查您的收件箱以验证电子邮件更新", + "Check your inbox to verify email update": "请检查您的收件箱以确认电子邮件更新",
100-100
: Tighten sentence structure.Make it natural Chinese.
- "If you're not receiving the email newsletter you've subscribed to, here are a few things to check.": "如果没有收到订阅了的新闻信,请检查以下事项。", + "If you're not receiving the email newsletter you've subscribed to, here are a few things to check.": "如果您没有收到已订阅的新闻信,请检查以下事项。",
102-102
: Mail delivery terminology and punctuation.Use “退信/永久失败”,and finish sentences with “。”
- "In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.": "当尝试发送新闻信时遇到永久错误,向该账户的发送邮件的功能将被禁用。", + "In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.": "若发送新闻信发生永久失败,该账户的邮件将被禁用。", - "Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce)": "您账户的新闻信被禁用的可能原因有两个:先前的电子邮件被标记为垃圾邮件,或者发送邮件遇到永久错误 (bounce)", + "Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce).": "您的账户可能因两种原因被禁用新闻信:先前邮件被标记为垃圾邮件,或发送邮件出现永久失败(退信)。", - "Permanent failure (bounce)": "永久错误 (bounce)", + "Permanent failure (bounce)": "永久失败(退信)", - "When an inbox fails to accept an email ...": "收件箱无法接收邮件时称为“反弹”。大多数时候这是临时的。但是某些情况下,无效或者不存在的邮件地址反弹的邮件会被认定为永久错误。", + "When an inbox fails to accept an email ...": "收件箱无法接收邮件时通常称为退信。多数情况下这是暂时的;但若地址无效或不存在,退信会被视为永久失败。",Also applies to: 119-119, 125-125, 206-206
112-112
: Clarify domain‑restricted message (memberships vs signups).Make it explicit it’s about member signups.
- "Memberships from this email domain are currently restricted.": "来自此电子邮件域名的注册目前受到限制。", + "Memberships from this email domain are currently restricted.": "来自此邮箱域名的会员注册目前受限。",
132-132
: Terminology: 必填项; 重新启用.More standard Mainland phrasing.
- "Please fill in required fields": "请填写必须项目", + "Please fill in required fields": "请填写必填项", - "Re-enable emails": "重启电子邮件", + "Re-enable emails": "重新启用电子邮件",Also applies to: 134-134
170-170
: Unify “账户/帐户”。Use “账户” consistently.
- "...在<button>帐户设置区域</button>中更新它。", + "...在<button>账户设置区域</button>中更新它。",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
ghost/i18n/locales/zh-Hans/portal.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(6 hunks)ghost/i18n/locales/zh/portal.json
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- ghost/i18n/locales/zh-Hans/portal.json
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
📚 Learning: 2025-07-29T05:28:28.664Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:143-144
Timestamp: 2025-07-29T05:28:28.664Z
Learning: In Ghost's Traditional Chinese localization, when translating signup/registration restriction messages, it's important to consider the specific context (e.g., member signup vs. general signup) to choose the most appropriate terminology. For member signup contexts, "新會員註冊" (new member registration) is more contextually accurate than just "註冊" (registration).
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/zh/portal.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
ghost/i18n/locales/zh-Hans/comments.json
(1 hunks)ghost/i18n/locales/zh-Hant/comments.json
(3 hunks)ghost/i18n/locales/zh/comments.json
(3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- ghost/i18n/locales/zh-Hans/comments.json
- ghost/i18n/locales/zh-Hant/comments.json
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/comments.json
📚 Learning: 2025-07-29T05:08:05.874Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:45-46
Timestamp: 2025-07-29T05:08:05.874Z
Learning: For Traditional Chinese localization in Ghost's comments.json, "Oldest" should be translated as "最早" (not "最初") when used in comment sorting selectors, as "最早" better conveys the temporal sorting context.
Applied to files:
ghost/i18n/locales/zh/comments.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
ghost/i18n/locales/zh/portal.json (2)
119-119
: Add the missing period at the end of the sentence.The translation ends without terminal punctuation, leaving the sentence hanging. Please append the full-width “。” after “永久错误 (bounce)” to keep the copy grammatical.
Apply this diff:
- "Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce)": "您账户的新闻信被禁用的可能原因有两个:先前的电子邮件被标记为垃圾邮件,或者发送邮件遇到永久错误 (bounce)", + "Newsletters can be disabled on your account for two reasons: A previous email was marked as spam, or attempting to send an email resulted in a permanent failure (bounce)": "您账户的新闻信被禁用的可能原因有两个:先前的电子邮件被标记为垃圾邮件,或者发送邮件遇到永久错误 (bounce)。",
176-176
: Restore the polite marker and closing punctuation.We previously standardised this string as “此网站仅限邀请,请联系网站所有者以获取访问权限。” Losing the “请” and final “。” makes the instruction abrupt and grammatically unfinished. Please revert to the full sentence.
Apply this diff:
- "This site is invite-only, contact the owner for access.": "此网站仅限邀请,联系网站所有者以获取访问权限", + "This site is invite-only, contact the owner for access.": "此网站仅限邀请,请联系网站所有者以获取访问权限。",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
ghost/i18n/locales/zh-Hans/comments.json
(1 hunks)ghost/i18n/locales/zh/comments.json
(3 hunks)ghost/i18n/locales/zh/portal.json
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- ghost/i18n/locales/zh/comments.json
- ghost/i18n/locales/zh-Hans/comments.json
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh/portal.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cursor Bugbot
Hi @tommywong-theinitium , @ninghuilulu, @imgarylai, @heybran I see that we have now this PR plus the one opened by Lulu (#24868 ). I know that Tommy and Lulu work together, so is this one intended to replace the other one? If so, then we'd want @imgarylai 's work reviewing on this PR, not the original, right? (And thank you, Gary!) A couple big picture questions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello, I'm Miya. I'm a native mandarin speaker from Taiwan and we use traditional chinese. Hope the review can help 💟 😸
(if the way I left comment is not ideal, please inform me since I'm new to contribute to open resource project, thank you so much!)
"Local resident": "本地居民", | ||
"Member discussion": "會員討論", | ||
"Name": "稱呼", | ||
"Neurosurgeon": "神經外科醫生", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
line 37 can be "王小明" for a fictional name
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good eye, @Miyaya! Our general goal is for Jamie Larson to be a recognizable name in each language, so @tommywong-theinitium , if you wanted to add a name (i.e. Miyaya's suggestion) to your PR, that'd be great. I note that it also appears in zh. Thanks!
Thanks @Miyaya for reviewing! Much appreciated! |
@cathysarisky our site is using lang="zh-Hans", does the ghost's portal is able to load the zh locale if zh-Hans data is not added? |
@tommywong-theinitium , your site currently is set to zh-Hant, but your theme switches between display the html lang as either zh-Hant or zh-Hans based on routing. Your theme triggers loading the portal as either zh or zh-Hant, depending on the page the user is on. If that's not the behavior you're seeing, let's get it fixed in the theme (and we can discuss the theme over on Slack). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
ghost/i18n/locales/zh-Hant/portal.json (1)
52-52
: Translate “session” as「工作階段」(duplicate of earlier feedback)
Use「工作階段」not「連線」 for “session”. Confirmed by reviewer Miyaya.-"Could not create stripe checkout session": "無法建立 Stripe 結帳的連線", +"Could not create stripe checkout session": "無法建立 Stripe 結帳工作階段",-"Unable to initiate checkout session": "無法建立結帳的連線", +"Unable to initiate checkout session": "無法啟動結帳工作階段",Also applies to: 191-191
🧹 Nitpick comments (18)
ghost/i18n/locales/zh-Hant/portal.json (8)
2-2
: Use “可省” instead of Mainland “立省” for zh‑Hant“立省” is Mainland usage; zh‑Hant prefers “可省”.
- "(save {highestYearlyDiscount}%)": "(立省 {highestYearlyDiscount}%)", + "(save {highestYearlyDiscount}%)": "(可省 {highestYearlyDiscount}%)",
14-14
: Prefer「收件匣」in zh‑HantSwitch 收件箱 → 收件匣 to match zh‑Hant usage.
-"A login link has been sent to your inbox. If it doesn't arrive in 3 minutes, be sure to check your spam folder.": "登入連結已經發送到您的收件箱。如果在 3 分鐘內未收到,請務必檢查您的垃圾郵件。", +"A login link has been sent to your inbox. If it doesn't arrive in 3 minutes, be sure to check your spam folder.": "登入連結已寄出至您的收件匣。若 3 分鐘內未收到,請務必檢查垃圾郵件匣。",
18-18
: Use zh‑Hant phrasing “新增…備註” (avoid “添加…留言”)Align with TW tone and UI terminology.
-"Add a personal note": "添加個人留言", +"Add a personal note": "新增個人備註",
124-124
: Use full‑width exclamation mark in zh‑HantChinese punctuation should use「!」.
-"Now check your email!": "立即檢查您的電子郵件!", +"Now check your email!": "立即檢查您的電子郵件!",
140-141
: Polish email CTA copy and provider sentenceMore natural zh‑Hant, less literal “可信任”.
-"Send an email and say hi!": "發送電子郵件打招呼!", -"Send an email to {senderEmail} and say hello. This can also help signal to your mail provider that emails to and from this address should be trusted.": "向 {senderEmail} 發送電子郵件並問好。這也有助於讓您的電子郵件供應商了解這個地址的郵件是可信任的。", +"Send an email and say hi!": "寄封電子郵件打招呼!", +"Send an email to {senderEmail} and say hello. This can also help signal to your mail provider that emails to and from this address should be trusted.": "寄信到 {senderEmail} 打聲招呼。這也可讓您的郵件服務供應商辨識此寄件地址為可信任來源。",
113-114
: Adopt preferred phrasing for domain restrictionsPer prior zh‑Hant guidance, use「目前不接受此 email 網域的會員申請」; aligns tone and flow. The second line already matches intended meaning.
Based on learnings
-"Memberships from this email domain are currently restricted.": "來自此電子郵件網域的會員資格目前受到限制。", +"Memberships from this email domain are currently restricted.": "目前不接受此 email 網域的會員申請。",
171-171
: Use an em dash for zh‑Hant typographyReplace ASCII hyphen with em dash「—」.
-"The email address we have for you is {memberEmail} — if that's not correct, you can update it in your <button>account settings area</button>.": "您的電子郵件地址是 {memberEmail} - 如果該郵箱不正確,您可以在<button>帳戶設置區域</button>中更新它。", +"The email address we have for you is {memberEmail} — if that's not correct, you can update it in your <button>account settings area</button>.": "您的電子郵件地址是 {memberEmail} — 若不正確,您可在<button>帳號設定</button>中更新。",
177-177
: Polish invite‑only message for zh‑Hant toneUse「請」「聯絡」「擁有者」「存取權限」。
-"This site is invite-only, contact the owner for access.": "此網站僅限邀請,聯繫網站所有者以獲取訪問權限。", +"This site is invite-only, contact the owner for access.": "此網站僅限邀請,請聯絡網站擁有者以取得存取權限。",ghost/i18n/locales/zh/portal.json (4)
113-113
: Differentiate “Memberships” vs “Signups” phrasingUse “会员申请/注册” precisely; current copy uses “注册” for both.
-"Memberships from this email domain are currently restricted.": "来自此电子邮件域名的注册目前受到限制。", +"Memberships from this email domain are currently restricted.": "来自此电子邮件域名的会员申请目前受限。", @@ -"Signups from this email domain are currently restricted.": "来自此电子邮件域名的注册目前受到限制。", +"Signups from this email domain are currently restricted.": "来自此电子邮件域名的新会员注册目前受限。",Based on learnings
Also applies to: 149-149
98-98
: Prefer “订阅” over “会籍” for consistency with product terminologyUnify to 订阅 to match other keys and UI wording.
-"If you cancel your subscription now, you will continue to have access until {periodEnd}.": "如果现在取消订阅,当前会籍在{periodEnd}前依旧有效。", +"If you cancel your subscription now, you will continue to have access until {periodEnd}.": "如果现在取消订阅,您仍可在 {periodEnd} 之前访问内容。", @@ -"Your subscription will expire on {expiryDate}": "您的会籍将在{expiryDate}到期", -"Your subscription will renew on {renewalDate}": "您的会籍将在{renewalDate}续费", -"Your subscription will start on {subscriptionStart}": "您的会籍将于{subscriptionStart}开始" +"Your subscription will expire on {expiryDate}": "您的订阅将于{expiryDate}到期", +"Your subscription will renew on {renewalDate}": "您的订阅将于{renewalDate}续订", +"Your subscription will start on {subscriptionStart}": "您的订阅将于{subscriptionStart}开始"Also applies to: 222-224
135-135
: Use “重新启用” (not “重启”) for re-enableMore accurate for toggling email delivery.
-"Re-enable emails": "重启电子邮件", +"Re-enable emails": "重新启用电子邮件",
103-103
: Polish permanent failure sentenceClarify subject and avoid awkward “向该账户的发送邮件的功能”.
-"In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.": "当尝试发送新闻信时遇到永久错误,向该账户的发送邮件的功能将被禁用。", +"In the event a permanent failure is received when attempting to send a newsletter, emails will be disabled on the account.": "当尝试发送新闻信时遇到永久性失败时,将为该账户禁用电子邮件。",ghost/i18n/locales/zh-Hant/ghost.json (6)
33-33
: Use polite “您” consistently (not “你”)Align tone with the rest of zh‑Hant file.
-"New reply to your comment on {siteTitle}": "對你在{siteTitle}上的評論的新回覆", +"New reply to your comment on {siteTitle}": "對您在{siteTitle}上的留言的新回覆", @@ -"You are receiving this because you are a <strong>%%{status}%% subscriber</strong> to {site}.": "你會收到此封電子報因為你是{site}的<strong>%%{status}%% 訂閱者</strong>。", +"You are receiving this because you are a <strong>%%{status}%% subscriber</strong> to {site}.": "您會收到這封電子報,因為您是 {site} 的<strong>%%{status}%% 訂閱者</strong>。", @@ -"You just tried to access your account from a new device.": "您剛嘗試從一個新裝置存取您的帳戶。", +"You just tried to access your account from a new device.": "您剛嘗試從新裝置存取您的帳戶。",Also applies to: 69-69, 72-72
44-44
: Tighten placeholder spacingRemove spaces around placeholders to match prior zh‑Hant conventions.
Based on learnings
-"Sign in to {siteTitle} with code {otc}": "請使用驗證碼 {otc} 登入 {siteTitle}", +"Sign in to {siteTitle} with code {otc}": "請使用驗證碼{otc}登入{siteTitle}", @@ -"Your verification code for {siteTitle}": "您在 {siteTitle} 的驗證碼" +"Your verification code for {siteTitle}": "您在{siteTitle}的驗證碼"Also applies to: 82-82
55-55
: Remove extra spaces around placeholders in ChineseUse contiguous placeholders for better typography.
-"This message was sent from {siteDomain} to {email}.": "此訊息由 {siteDomain} 寄送至 {email}。", +"This message was sent from {siteDomain} to {email}.": "此訊息由{siteDomain}寄送至{email}。",
63-63
: More natural “View in browser”Use “在瀏覽器中開啟”.
-"View in browser": "用瀏覽器打開", +"View in browser": "在瀏覽器中開啟",
32-32
: Use “留言” consistently (not “評論”)Earlier keys use「留言」; keep consistent.
-"New comment on {postTitle}": "{postTitle} 有新評論", +"New comment on {postTitle}": "{postTitle} 有新留言",
75-75
: Use full‑width colon in zh‑HantReplace ASCII “:” with “:”.
-"You're one tap away from subscribing to {siteTitle} — please confirm your email address with this link:": "您離訂閱{siteTitle}只差一步 — 請透過此連結確認您的電子郵件地址:", +"You're one tap away from subscribing to {siteTitle} — please confirm your email address with this link:": "您離訂閱{siteTitle}只差一步 — 請透過此連結確認您的電子郵件地址:",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
ghost/i18n/locales/zh-Hant/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(5 hunks)ghost/i18n/locales/zh/ghost.json
(1 hunks)ghost/i18n/locales/zh/portal.json
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- ghost/i18n/locales/zh/ghost.json
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/portal.json
ghost/i18n/locales/zh-Hant/portal.json
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh/portal.json
ghost/i18n/locales/zh-Hant/portal.json
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-07-29T05:28:28.664Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:143-144
Timestamp: 2025-07-29T05:28:28.664Z
Learning: In Ghost's Traditional Chinese localization, when translating signup/registration restriction messages, it's important to consider the specific context (e.g., member signup vs. general signup) to choose the most appropriate terminology. For member signup contexts, "新會員註冊" (new member registration) is more contextually accurate than just "註冊" (registration).
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
ghost/i18n/locales/zh-Hant/ghost.json
📚 Learning: 2025-10-01T20:13:20.920Z
Learnt from: tommywong-theinitium
PR: TryGhost/Ghost#25030
File: ghost/i18n/locales/zh/ghost.json:28-31
Timestamp: 2025-10-01T20:13:20.920Z
Learning: In Ghost's localization files, "More like this" and "Less like this" are labels for thumbs-up/thumbs-down feedback buttons at the bottom of email newsletters, not features to show similar content. Therefore, translations should reflect the "like/dislike" feedback action rather than "show more/less similar content".
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
🔇 Additional comments (3)
ghost/i18n/locales/zh/portal.json (2)
177-177
: Complete sentence and add polite particleAdd “请” and terminal “。”.
[suggest_minor_issue]-"This site is invite-only, contact the owner for access.": "此网站仅限邀请,联系网站所有者以获取访问权限", +"This site is invite-only, contact the owner for access.": "此网站仅限邀请,请联系网站所有者以获取访问权限。",
109-109
: Thumbs intent acknowledged; ensure cross‑locale consistencyThese map to thumbs down/up (“不喜欢/喜欢”), which aligns with the email footer UI. Consider aligning zh‑Hant equivalents for consistency across locales.
Also applies to: 117-117
ghost/i18n/locales/zh-Hant/portal.json (1)
21-21
: Register zh-Hans in the locales registry and confirm fallback behavior
I didn’t find any zh-Hans entries in the i18n locale registry—please add zh-Hans and verify that zh and zh-Hans fall back to each other per product requirements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (1)
ghost/i18n/locales/zh-Hant/portal.json (1)
52-52
: Fix mistranslated “checkout session”
“連線” describes a network connection, but the source strings refer to the Stripe checkout session. This was already called out earlier and the agreed correction was “結帳工作階段”. Please update both occurrences to match that wording.-"Could not create stripe checkout session": "無法建立 Stripe 結帳的連線", +"Could not create stripe checkout session": "無法建立 Stripe 結帳工作階段", … -"Unable to initiate checkout session": "無法建立結帳的連線", +"Unable to initiate checkout session": "無法啟動結帳工作階段",Also applies to: 191-191
🧹 Nitpick comments (1)
ghost/i18n/locales/zh/portal.json (1)
171-171
: Keep the character form consistent.这里用了“帐户”,但本文件其余处都使用“账户”。请统一为“账户设置区域”以维持一致的简体字形。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
ghost/i18n/locales/zh-Hant/ghost.json
(1 hunks)ghost/i18n/locales/zh-Hant/portal.json
(5 hunks)ghost/i18n/locales/zh-Hant/signup-form.json
(1 hunks)ghost/i18n/locales/zh/portal.json
(6 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- ghost/i18n/locales/zh-Hant/ghost.json
- ghost/i18n/locales/zh-Hant/signup-form.json
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
📚 Learning: 2025-01-29T15:27:29.391Z
Learnt from: cathysarisky
PR: TryGhost/Ghost#0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Applied to files:
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/zh/portal.json
ghost/i18n/locales/zh-Hant/portal.json
📚 Learning: 2025-07-29T04:57:10.163Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/comments.json:11-11
Timestamp: 2025-07-29T04:57:10.163Z
Learning: In Ghost's Traditional Chinese localization, the "Add your expertise" label appears as a link in comments when expertise is not yet provided, specifically to request additional professional background information from commenters. The translation should reflect this context of inviting additional information rather than just adding new information.
Applied to files:
ghost/i18n/locales/zh/portal.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
PR: TryGhost/Ghost#24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/zh/portal.json
ghost/i18n/locales/zh-Hant/portal.json
📚 Learning: 2025-10-01T20:13:20.920Z
Learnt from: tommywong-theinitium
PR: TryGhost/Ghost#25030
File: ghost/i18n/locales/zh/ghost.json:28-31
Timestamp: 2025-10-01T20:13:20.920Z
Learning: In Ghost's localization files, "More like this" and "Less like this" are labels for thumbs-up/thumbs-down feedback buttons at the bottom of email newsletters, not features to show similar content. Therefore, translations should reflect the "like/dislike" feedback action rather than "show more/less similar content".
Applied to files:
ghost/i18n/locales/zh-Hant/portal.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📋 My AI helper 🤖 left you a few comments. I always believe the human over the AI, so feel free to disregard them after you take a careful look!
Leave me a comment when you're satisfied with everything, please. :)
🤖 AI: Overall, the translations are accurate and reflect a friendly tone. I noticed a few small punctuation and phrasing spots where matching the original punctuation or choosing slightly more natural Chinese might help. Thank you for your careful work! 謝謝您!
Drafted with my new i18n tooling - feedback welcome
"Sign in verification": "", | ||
"Someone just replied to your comment": "", | ||
"Someone just replied to your comment on {postTitle}.": "", | ||
"Sign in to {siteTitle} with code {otc}": "請使用驗證碼{otc}登入{siteTitle}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: Consider adding a space around the variable for readability: “驗證碼 {otc}” instead of “驗證碼{otc}”.
"You can also copy & paste this URL into your browser:": "您也可以將此網址複製並貼上到您的瀏覽器中:", | ||
"You can unsubscribe from these notifications at {profileUrl}.": "", | ||
"You just tried to access your account from a new device.": "", | ||
"You can unsubscribe from these notifications at {profileUrl}.": "您可於 {profileUrl} 取消訂閱這些通知。", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: Similar here: please use a fullwidth colon “:” for “Where:”.
"Already a member?": "已经是会员?", | ||
"Anonymous": "匿名", | ||
"Are you sure?": "", | ||
"Are you sure?": "确认?", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: “確定?” is concise but might read more naturally as “您確定嗎?”. Could you consider expanding it?
"removed": "", | ||
"Replied to": "", | ||
"removed": "已移除", | ||
"Replied to": "回复", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: For “Replied to” you’ve used “回复”, which is identical to “Reply”. To match the English past tense, perhaps “已回复” would be clearer.
"When:": "", | ||
"Where:": "", | ||
"You are receiving this because you are a <strong>%%{status}%% subscriber</strong> to {site}.": "", | ||
"When:": "时间:", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: You’ve used an ASCII colon for “When:”. In Chinese it’s more common to use “:”.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(my AI helper may be picky today. I can't see the difference!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It has a slight difference, like:
- With ASCII colon: “您的验证码是:1234”
- With Chinese colon: “您的验证码是:1234” whereas you might see it have a space after the colon, but it actually doesn't have a space, the spacing was the default behavior of the Chinese colon
:
.
"Where:": "", | ||
"You are receiving this because you are a <strong>%%{status}%% subscriber</strong> to {site}.": "", | ||
"When:": "时间:", | ||
"Where:": "地点:", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 AI: Likewise for “Where:”, please use the fullwidth colon “:” instead of “:”.
"Local resident": "本地居民", | ||
"Member discussion": "會員討論", | ||
"Name": "稱呼", | ||
"Neurosurgeon": "神經外科醫生", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good eye, @Miyaya! Our general goal is for Jamie Larson to be a recognizable name in each language, so @tommywong-theinitium , if you wanted to add a name (i.e. Miyaya's suggestion) to your PR, that'd be great. I note that it also appears in zh. Thanks!
I think this is complete. Please review & tell me if there's any issue. Thanks!
Note
Adds full Simplified Chinese (zh-Hans) locales and improves/completes existing zh and zh-Hant translations across comments, ghost, portal, search, and signup-form.
zh-Hans
comments.json
,ghost.json
,portal.json
,search.json
,signup-form.json
with complete Simplified Chinese translations.zh-Hant
comments.json
,ghost.json
,portal.json
,signup-form.json
(e.g., add translations for "Best", "Newest/Oldest", verification flows; standardize terminology and punctuation).zh
comments.json
,ghost.json
,portal.json
(e.g., newsletter →新闻信
, validation/error messages, sign-in code texts).Written by Cursor Bugbot for commit 6a2d182. This will update automatically on new commits. Configure here.