Skip to content

Update Chinese translations for Snap! v12.1 - #3560

Open
Ayist14 wants to merge 36 commits into
jmoenig:devfrom
Ayist14:Chinese-Translations
Open

Update Chinese translations for Snap! v12.1#3560
Ayist14 wants to merge 36 commits into
jmoenig:devfrom
Ayist14:Chinese-Translations

Conversation

@Ayist14

@Ayist14 Ayist14 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

For Jens:
If you would like to have a experience of these changes, please use the Snap! editor I depend on (GitHub Pages). It's also public at Ayist14's first announcement for Snappers and Scratchers in bilibili (哔哩哔哩).

I must explain it carefully because it includes some important but might changes.

Changes

1. Translated the rest of libraries or so

By now, I finished a huge translations update for libraries again. These screenshots shows the result of this update:

Screenshots about the result 屏幕截图 2026-08-12 104238 屏幕截图 2026-08-12 104304 屏幕截图 2026-08-12 104331 屏幕截图 2026-08-12 104414

For libraries that are not translated yet or not translated completely, I labeled "(翻译未覆盖)" (It's not translated yet) or "(翻译未完全覆盖)" (It's not translated completely) into these descriptions.

2. Adjusted descriptions of 4 libraries which they're similar with Sennoma-Nn's problem

As the advice I mentioned in Sennoma-Nn's PR, I adjusted Chinese descriptions of "3D Beetle Geometry", "Words, sentences", "Just Words" and "Continuations" Library. Here are the descriptions now:

Name descriptions in Chinese translations in English
3D Beetle Grometry 在三维空间中沿路径绘制点、线或多边形,以生成3D几何图形。
本自制积木库的原型是Snap!改版Bettle Blocks,因服务器数据丢失,导致其于Snap! 10作为自制积木库引入。
Generate 3D geometry by extruding points, lines or polygons along a path in 3D space.
The library is made from Beetle Blocks (Snap! mod)'s new blocks. Because the server datas lost, It's introduced as a library in Snap! 10.
Words, sentences 用来处理英文单词和句子的库 The library that processes English words and sentences.
Continuations 用call/cc(全称“call-with-the-current-continuation”)动态获取程序的当前状态(即延续),来实现更多控制流。例如“循环、函数迭代和组合”库里的“非本地跳转”积木、协程(Coroutine)和生成器(Generator) Capture runtime continuations by using call/cc (call-with-the-current-continuation), to build more control structures. E.g.: "non-local exits" block ("catch" and "throw" block) in "Iteration, composition" Library, coroutines and generators.

3. Adjusted options in some libraries, to avoid confusion with another meanings

Since I created the second PR at Snap! and it's merged, the Chinese translations has been different , fantastic and surprising (Especially, it's the first Chinese translation update for libraries). For translating them completely, I make a lot of drop-down menus' options translatable by inserting "$_" at the beginning of them.

But it also takes some problems about translations after I did it.
For example:

  • "running" option means a kind of stitches in Embroidery Library. But in "is process [process] [state] ?" block, it means a state of process;
  • "lines" option means list items directly as strings in "[attribute] of [list]" block. But in Frequency Distribution Analysis Library, it means line chart (折线图);
  • ……

So I adjust the similar options, to avoid the solutions above, and to make translations more exactly. I also keep their values same to avoid breaking some projects (tl;dr: "$_option=value"). Including libraries below:

  • labeled "(stitches)" after "running" option in Embroidery Library;
  • labeled "(align)" after "left", "center" and "right"options in (EDC) Fancy text Library and (EDC) Fancy Stage Writing Library;
  • added "finger" word after "index", "middle" and "ring" options in blocks of Edge Computer Vision Category in Edge Computer Vision Library;
  • replaced "lines" option with "line chart" in Frequency Distribution Analysis Library;
  • replaced "step" option with "step(s)" in Embroidery Library

4. Others

  • Translate categories of new costumes menu into Chinese
  • Translate blocks and options for First-Class Processes

Ayist14 added 30 commits June 19, 2026 08:53
I clean up the rest of the similar texts of translations from `LIBRARIES.json` and few libraries. This is the last update before the Zhongkao in Guizhou (June 20 to June 22)

我删除了`LIBRARIES.json`和部分库的类似内容。这是我参加贵州中考(6月20日至6月22日)前的最后一次更新
…and the true meanings

I noticed that the "fill" and "close" label in draw path block , is easy to be confused with "填充" and "关闭" in Chinese translations. So I filled "?" after two labels to translate them exactly. I also added the new translations for 2 labels in lang-zh_CN.js.
I noticed that Jens (Snap! developer) created a new development version called 12.1.0, and imported "First-Class Processes" (A process can be passed as a data now, and can be merged freely by user) and Processes Library. They're too great to doubt because you can make the Snap! project faster by using them.

But I found a similar translating mistake from the library ("running"'s translation is confused with the same one in Embroidery Library). So I adjust it to divide them into different words, and to make translations more exact.

I also deal with the similar ones, adjust others, and insert "(翻译未覆盖)" label into descriptions of few libraries.

(p.s.: Jens is developing the version at the "dev" branch, not at the "master" branch. I must find a way to solve the sudden solution)
@jmoenig

jmoenig commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Thank you! This is great but also ... overwhelming. The problem with this pull request is that you've bundled a Chinese translation update with some structural changes inside the libraries themselves. I understand that these are mostly about adding a "$_" prefix to certain strings to make them translatable in the first place, but still, this requires me to 1) track the changes, 2) test them invidually and 3) check with all other translations. Another problem is that sometimes changing such a string or an input breaks the library elsewhere. I have tools that let me track that, but it takes enormous effort to apply them to an overwhelming multitude of proposed changes.

Instead it would help me a lot if you could separate your pull-requests into

a) mere translation updates - and again separate these into
(a1) updates to the general localization file and
(a2) updates to individual libraries
b) structural changes to libraries - individually per library

In general it would be better for me if you made smaller PRs that only affect one or three files at a time. That way I could, for example, pull your changes to the general localization file instantly, and it would go into the minor release coming up next week.

The way it is now I first need to check everything before I either pull or reject your PR. I need to spend several days of work on this, and I don't have that time right now. So I will have to leave this open until well after the release, because I might only find the required time somewhere in October.

Again, thank you so much. I am not rejecting this PR, but I need to put it off until I can muster a couple of days to work on it.

[edit:]

Oh, I just realized that I might have encouraged you to divide this PR up into dozens of smaller ones. Please don't, because that, too, would overwhelm me and probably delay the legitimate fixes.

So, when you come across a string in a library that is untranslatable and would benefit from a translation prefix ("$_") what would really help me isn't a PR but if you opened an issue here that reports the library and block that you'd like to change, and you suggested change. It's totally fine if you bundle all your findings into a single issue, no need to file one per string. That way I can go through that list myself - as I will need to do anyway when I check a PR - and conduct these changes myself. That way I can make sure that nothing else breaks (and if it does anyway, the blame's on me ^^).

Cheers!

@Ayist14

Ayist14 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the advice! I’ve realized that the PR is so huge and it’s in a mess since I read your comment. So I’m thinking about dealing with the huge PR now.

I'm going to open a new issue to report the most necessary changes for Snap! v12.1 tomorrow. Because in China, some Scratchers also care about translation problems of Snap!, even though they prefer using TurboWarp (a popular Scratch mod) or its fantastic Chinese mods (02Engine, AstraEditor, etc.).

The reason is also why I began to translate Snap! into Chinese from this year — Chinese Scratchers regard Snap! as a powerful editor by community, not as a very serious language for CS educations. So they support me in their hearts because I’m trying my best to make Chinese translations natural and friendly for Scratchers.

(p.s.: It doesn't mean I'm a Chinese Scratcher now. Instead, I'm a Chinese Snapper that has a account at snap.berkeley.edu)

Ayist14 added a commit to Ayist14/Snap that referenced this pull request Aug 13, 2026
This is the first commit to deal with PR jmoenig#3560. I'll opened a new PR that only contains itself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants