Skip to content

Add Simplified Chinese localization - #3354

Merged
Freika merged 7 commits into
Freika:devfrom
AwHsR15:feat/simplified-chinese-locale
Sep 5, 2026
Merged

Freika merged 7 commits into
Freika:devfrom
AwHsR15:feat/simplified-chinese-locale

Conversation

@AwHsR15

@AwHsR15 AwHsR15 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Register :zh and add complete Simplified Chinese application, Devise, and Rails framework locales.
  • Run a dedicated Chinese-language review across all 3,512 application strings and 47 Devise strings; correct terminology, fragmented UI strings, calendar labels, account/security copy, and Rails validation wording.
  • Extend the Rails locale with current framework keys that were previously absent, including comparison validation messages and pluralized storage units.
  • Keep a regression spec that verifies English-key coverage plus interpolation, markup, URL, and template-token parity.

Verification

  • The application TSV and its eight review chunks agree exactly on all 3,512 application keys.
  • Strict YAML parsing passed for all three Chinese locale files (including duplicate-key detection).
  • Locale coverage check: 3,559 English leaves, 0 missing Chinese leaves, 0 type mismatches, and 0 interpolation/markup/URL/template-token mismatches.
  • The reviewed import was checked item-by-item: 3,512 application strings, 47 Devise strings, and 159 directly corresponding Rails leaves. One legacy Rails byte scalar was intentionally upgraded to the current one/other schema.
  • git diff --check passed.
  • Ruby/Bundler are unavailable locally and the Docker daemon is stopped, so the RSpec suite could not be run in this environment.

The initial draft was machine-assisted, followed by a dedicated Simplified Chinese linguistic review and static validation. This PR is now ready for maintainer review; please merge it into dev if it fits the project's localization conventions.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 8dd30638-1e4c-4df4-9b0b-cde41ca84ef1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AwHsR15

AwHsR15 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

Language QA update complete: the full Simplified Chinese corpus has received a dedicated review, the fragile UI fragments and framework wording were corrected, and static coverage/token checks pass. The branch now contains commit 12f0eda and is ready for maintainer review and merge into dev if it meets the project's localization conventions. Note: Ruby/Bundler are unavailable locally and the Docker daemon is stopped, so I could not run the RSpec suite in this environment.

turmacar added a commit to turmacar/dawarich that referenced this pull request Aug 18, 2026
AwHsR15 and others added 4 commits August 23, 2026 23:50
places.drawer.on 在 en.yml 中正确加了引号 ('on': 'on'),
但 zh.yml 里写成裸键 on:,会被 YAML 1.1 解析为布尔值 true,
导致 I18n.t('places.drawer.on') 查找失败。
- README.zh-CN.md:完整中文版 README,README.md 顶部加语言切换链接
- docs/zh-CN/:Docker/群晖/K8s 安装指南、反向代理配置、照片 GPS 提取指南的中文翻译
- 对应英文文档顶部加回链,方便互相跳转
Merges dev, keeping pl and ca in available_locales alongside the new zh,
and fills the 153 en keys added since the branch was cut — the geocoding
and integrations settings, the Video Studio, and the tiled rendering
copy.

Adds helpers.page_entries_info, which en.yml does not define because
kaminari ships the English copy; without it the points page renders a
missing translation. Drops date.order from rails.zh.yml: it was the only
locale file holding Ruby symbols, and the coverage specs safe_load the
whole glob, so it failed the German and Spanish specs rather than its
own. Rails already orders year, month, day.

Keeps the Place::DEFAULT_NAME sentinel untranslated in the place name
lock copy, since a translated one never unlocks the place.

Registers zh in the two specs that name every shipped locale, and takes
the flag count from available_locales so it cannot drift again.
@Freika

Freika commented Aug 27, 2026

Copy link
Copy Markdown
Owner

@AwHsR15 can I ask you to review my commit? ebbc19f

If it's all good, I'll merge the branch, thank you!

@Freika
Freika merged commit 6e14026 into Freika:dev Sep 5, 2026
1 check passed
@AwHsR15

AwHsR15 commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed your commit ebbc19f — looks good.

One note on the place_name_locked change: reverting 建议地点 back to the literal Suggested place was the right call. Place::DEFAULT_NAME is the hardcoded string 'Suggested place', so a Chinese user following the translated instruction would have typed a name the code does not recognise.

Happy to keep reviewing the Chinese strings you add in future releases — just ping me on the PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants