Skip to content

Conversation

@op200
Copy link

@op200 op200 commented Mar 19, 2025

Update Simple Chinese (zh-CN) translation

msgmerge pot(this branch)->po from branch feature (arch1t3cht), manual confirmation is correct

The translations of all functional options have been tested by me to ensure accuracy

  • Complete the translation
    (The newly added part or untranslated part)

    e.g.
    Open Recent -> 最近打开
    Visual Typesetting Tools Alpha -> 可视化绘图工具透明度
    Skip over whitespace -> 跳过空行

  • Revise a small amount of translations to use more contemporary language
    Standardize inconsistent translations throughout
    Uniform punctuation usage

    e.g.
    热键 -> 快捷键
    偏好 -> 首选项
    -> :

@oborozuk1
Copy link
Contributor

oborozuk1 commented Mar 19, 2025

It looks like you added some personal annotations rather than strictly following the original text. Anyway, before discussing the content, I have a couple of questions:

  • Why did you use the translation from version 3.2 as the base instead of 3.4?
  • What is the purpose of using half-width punctuation instead of full-width in Chinese?
  • Is it necessary to include the branch-related content (though it’s commented out)?

你的英语水平过关吗

@EL-File4138
Copy link
Contributor

EL-File4138 commented Mar 19, 2025

I will provide some review suggestions later, for now, I'm seeing:

  • “时间轴” is roughly simplified to “时轴” (from a self-explanatory term to a dictionary entries style term);
  • “计时” becomes “时轴” (covering "timing" with a more general "timestamp", which loses semantics precision);
  • “特效标签” becomes "tag" (regression);
  • Inconsistent "cursor": “文本光标”, “文本编辑光标”, “游标”
  • Mixed zh-Hant term: framerate - “影格率”
  • Commenting term from source language: “粗体版本(bold variant)”
  • Incoherent proofreading: “在文本光标处分割 行” (one excessive space)

some from your example:

  • "Skip over whitespace": only “空行”(empty line), or what the code intends to do, “空白” (which includes inline whitespace character sector)?

… also, as long as you're still using “喔唷,Aegisub娘崩溃啦!”, I feel it's still not very proper to remove the contribution remark from Vmoe Fansub.

Overall still a solid job, but it could use some more polish. Would be grateful if you could later respond to review comments.

@op200
Copy link
Author

op200 commented Mar 19, 2025

It looks like you added some personal annotations rather than strictly following the original text. Anyway, before discussing the content, I have a couple of questions:

* Why did you use the translation from version 3.2 as the base instead of 3.4?

* What is the purpose of using half-width punctuation instead of full-width in Chinese?

* Is it necessary to include the branch-related content (though it’s commented out)?

你的英语水平过关吗

  1. branch master 提交比 branch 3.4 提前,为啥你说 master 是 3.2 ?package 里的版本号都是 3.4,我也是根据 master 生成的 pot
    我不清楚 Aegisub 的项目结构
  2. 只有个别标点统一为了半角,有利于对齐
  3. 子集 po 通过超集 po + 对应分支的 pot 生成,根本不需要关心注释

我的英语水平一坨,可喜可贺的是英语水平一坨翻译的句子能让新手一眼看懂,而不是原来某些

动名词都分不清的翻译 
一句话用两句都表意不清的废话文学 

并且我能找到的、且需要翻译的功能,我都使用了一遍,原文本身就含有大量的表意不清,须按照实际含义翻译,否则新手根本看不懂

@oborozuk1
Copy link
Contributor

oborozuk1 commented Mar 19, 2025

branch master 提交比 branch 3.4 提前,为啥你说 master 是 3.2 ?

我是说你的翻译用的是旧的(3.2 版本),而不是 3.4 修订过的

我最后那句话没有任何批评的意思,只是说你的 PR 我差点没看懂

@op200
Copy link
Author

op200 commented Mar 19, 2025

I will provide some review suggestions later, for now, I'm seeing:

* “时间轴” is roughly simplified to “时轴” (from a self-explanatory term to a dictionary entries style term);

* “计时” becomes “时轴” (covering "timing" with a more general "timestamp", which loses semantics precision);

* “特效标签” becomes "tag" (regression);

* Inconsistent "cursor": “文本光标”, “文本编辑光标”, “游标”

* Mixed zh-Hant term: framerate - “影格率”

* Commenting term from source language: “粗体版本(bold variant)”

* Incoherent proofreading: “在文本光标处分割 行” (one excessive space)

some from your example:

* "Skip over whitespace": only “空行”(empty line), or what the code intends to do, “空白” (which includes inline whitespace character sector)?

… also, as long as you're still using “喔唷,Aegisub娘崩溃啦!”, I feel it's still not very proper to remove the contribution remark from Vmoe Fansub.

Overall still a solid job, but it could use some more polish. Would be grateful if you could later respond to review comments.

I did not delete any info about Vmoe, I even kept the header info intact in the comments for possible future restoration

About original text, I think there are many unreasonable aspects: whitespace appeared in the 翻译助手, it will enter the next line when submitting

If you open the option Skip over whitespace, it will skip empty line

The original text have a large number of similar thing (bugs), so that's why feature based translation is needed instead of original text based translation

@op200
Copy link
Author

op200 commented Mar 19, 2025

branch master 提交比 branch 3.4 提前,为啥你说 master 是 3.2 ?

我是说你的翻译用的是旧的(3.2 版本),而不是 3.4 修订过的

我最后那句话没有任何批评的意思,只是说你的 PR 我差点没看懂

几乎无法直接合并,用 pot 重新生成 po 后,文本对比功能也废了,所以我手动跟 3.4 的 po 对比了一个多小时……

例如 karaoke timing 我原本的 po 就是 3.2 版本的 xxx 计时,我看到 3.4 的修改后,才修改的,我选择直接删除了这句翻译

关于 计时 时轴 时间 之类的翻译,原文是 time timing timer,非常混乱,例如我会把 timer (原译 计时器)翻译成 时轴,这是因为这个字符串出现的位置是顶部工具栏,这里的 时轴 泛指整个 时间轴处理 相关概念(功能),且整个工具栏除了 自动化 都是两个字,看起来也舒服

timing 就难以分清具体指代了,甚至连词性都无法从原文看出来,karaoke timing 我根本找不到在哪出现,也看不懂源码,所以为了防止错译就暂时删除了(未翻译的行直接能搜出来,错译的就麻烦了)

@EL-File4138
Copy link
Contributor

EL-File4138 commented Mar 19, 2025

whitespace appeared in the 翻译助手, it will enter the next line when submitting

So your understanding of what the toggle is doing is a bit off.
Skipping empty line is what the toggle additionally do, as the toggle is exactly made for "white space".

Please try:

  • Enclose 2 part of text on one line with ass tag;
  • Leave some space (character) between the groups;
  • Try to translate using the tool; Switch the toggle on and off, see whether the whitespace part got picked up.

(I'll supplement a video later)

Please do not assume the source language is "faulty" before you can confidently support your acclaim with proper understanding of the functionality.

@oborozuk1
Copy link
Contributor

oborozuk1 commented Mar 19, 2025

几乎无法直接合并,用 pot 重新生成 po 后,文本对比功能也废了,所以我手动跟 3.4 的 po 对比了一个多小时……

或许你可以参考 git 的提交。

但 3.4 版本大部分新翻译都被改回去了,这部分还是有不少改进的,请见 #210

karaoke timing 我根本找不到在哪出现

在 编辑 > 撤销,还有一处 combining 也是在这,原本翻译是错的。

@oborozuk1
Copy link
Contributor

Translating "recombine" as "合并" may cause confusion with "join," as their behaviors are different.

@op200
Copy link
Author

op200 commented Mar 19, 2025

whitespace appeared in the 翻译助手, it will enter the next line when submitting

So your understanding of what the toggle is doing is a bit off. Skipping empty line is what the toggle additionally do, as the toggle is exactly made for "white space".

Please try:

* Enclose 2 part of text on one line with ass tag;

* Leave some space (character) between the groups;

* Try to translate using the tool; Switch the toggle on and off, see whether the whitespace part got picked up.

(I'll supplement a video later)

Please do not assume the source language is "faulty" before you can confidently support your acclaim with proper understanding of the functionality.

text close open
{some tags} skip skip
not skip
text not not

Now I understand your means, thank you for your reminder

Firstly, I had never noticed before that it treats tags as empty

Secondly, I know before that its function is to skip whitespace, 空行 != empty string. There was indeed an issue with my response above, it was my mistake

A few months ago, I translated it as 跳过空行 that has no problem, I don't know why I gave this translation as an e.g. in PR
Maybe my brain went down after not sleeping all night

@op200
Copy link
Author

op200 commented Mar 19, 2025

几乎无法直接合并,用 pot 重新生成 po 后,文本对比功能也废了,所以我手动跟 3.4 的 po 对比了一个多小时……

或许你可以参考 git 的提交。

但 3.4 版本大部分新翻译都被改回去了,这部分还是有不少改进的,请见 #210

karaoke timing 我根本找不到在哪出现

在 编辑 > 撤销,还有一处 combining 也是在这,原本翻译是错的。

等我睡一觉后再核对一遍😭

已经感觉快4了

@op200
Copy link
Author

op200 commented Mar 19, 2025

Translating "recombine" as "合并" may cause confusion with "join," as their behaviors are different.

我想起来了,我可以先把 3.4 的 po 生成新 po,然后再做文本比较

唉woc😭白白浪费一两个小时

@op200
Copy link
Author

op200 commented Mar 19, 2025

Already fully cmp the 3.4 po

I thought that could finish soon, but it still took over an hour😭

Fortunately, made many necessary modifications to the translation

zh_CN.zip

org po + pot -> new 3.4 po
used for cmp

@oborozuk1
Copy link
Contributor

oborozuk1 commented Mar 19, 2025

Is that so? I still see some differences—were they intentional?

  • 强制以 X 的比例显示视频画面强制视频为X宽高比
  • 退格:解除最后的连结空格: 解除最后的连结 (This is incorrect. And you changed the translation of "link" from "连结" to "配对", but these instructions were left unchanged.)
  • 字体没有正确的unicode映射时有用字体没有合适的unicode映射时有用

@op200
Copy link
Author

op200 commented Mar 19, 2025

Is that so? I still see some differences—were they intentional?

* `强制以 X 的比例显示视频画面` → `强制视频为X宽高比`

* `退格:解除最后的连结` → `空格: 解除最后的连结` (This is incorrect. And you changed the translation of "link" from "连结" to "配对", but these instructions were left unchanged.)

* `字体没有正确的unicode映射时有用` → `字体没有合适的unicode映射时有用`

第一个 ratio 作为比值(系数)翻译,所以不写 :1,和后面的 msgid "Force video to a custom aspect ratio" msgstr "强制视频为自定义宽高比" 对应

第二个那一大段我没注意到……改了,连结 也都统一成 3.4 中使用的 配对 了(我说怎么按空格没反应捏)

第三个改成 "文字编码,仅当使用unicode时,字体没有正确的unicode映射时生效"

@oborozuk1
Copy link
Contributor

Alright, now we've finally reached the first step, which is reviewing the translation. I agree with @EL-File4138's opinion. I'll go through your translation later again.

Copy link
Contributor

@oborozuk1 oborozuk1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've reviewed these for now. I think we should discuss whether some annotations are really necessary or if we should follow the original text instead.

Copy link
Contributor

@EL-File4138 EL-File4138 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of Change (1/3)

This review covers the first 2000 lines of only the changing part. The inherited part will be done separately.

Co-authored-by: Matrew File <elfile4138@elfile4138.moe>
@arch1t3cht
Copy link
Member

I'm slowly getting back to Aegisub development after being busy with personal projects for a few months. What's the status of this language PR? I see some unresolved review comments, does everyone here agree this is ready to merge, or are there still disagreements?

@EL-File4138
Copy link
Contributor

I would suggest putting it on hold if there isn't a recent plan to release a new version. I'm still consulting with a variety of zh-CN communities for feedback.

@op200
Copy link
Author

op200 commented May 18, 2025

I will resolve it when free
within 3 months at the latest

@op200
Copy link
Author

op200 commented Nov 20, 2025

我目前将 Video/Audio/Subtitle provider 翻译为 视频/音频/字幕 服务后端,原翻译是 视频/音频/字幕 来源视频/音频/字幕 来自

我觉得 服务后端 还是有些词不达意,可能 模块 组件​ 之类的翻译更好?

不知大家有没有什么更好的想法

arch1t3cht and others added 23 commits November 22, 2025 15:53
File saving is handled through a RAII handle class `Save`,
so errors on saving result in exceptions being thrown from that class's
destructor.
Since TextFileWriter held the Save handle inside a std::unique_ptr
(whose destructor is noexcept) this would cause a crash.

Destructors that throw are a big footgun for exactly these reasons, but
fixing this would require quite a big refactor. For now we can just take
the Save handle out of the unique_ptr.

Fixes TypesettingTools#476.
Without it, Aegisub is identified as an iOS app in System Info, rather than Apple Silicon
This is only intended for the C++ code, not for actual Lua scripts.
(In theory it's accessible from Lua, but it's a private function
that could be renamed or removed at any time. Lua scripts can show
warnings using aegisub.log or dialogs.)

The main purpose of such warnings at the moment is deprecating
utility modules. This is why it's possible to raise warnings both during
initial loading (such warnings are added to the script error list
and visible in the automation script list) and during execution
(whether that be a macro or filter invocation or some status function
like validation - such warnings just show dialogs directly).
Keep the library available in Lua for now, but show a warning when
scripts try to import it.

Luabins is a vendored dependency in Aegisub and is no longer maintained
upstream. It is not directly used anywhere by Aegisub itself; it was
only added as a convenience library for automation scripts, especially
for serializing tables to save as line extradata. However, I am not
aware of any automation script that actually uses it. (Scripts that do
need to serialize data to extradata use the json library for this.)

So, at the moment luabins causes some headaches in the build process for
what seems to be no gain at all, which is why it is now being
deprecated. If no users complain about desperately needing luabins for
their script for the next release cycle, luabins will be removed
entirely afterwards.

Fixes TypesettingTools#382.
Use an ad-hoc signature unless another signature is specified via the
environment variable AEGISUB_BUNDLE_SIGNATURE.
aegisublocale.cpp -- Make dialog window translatable
auto4_base.cpp -- Make warning logs translatable
auto4_lua.cpp -- Make descriptions used in the Create() function translatable
dialog_attachments.cpp -- Make file types translatable --> I also noticed that the file extraction dialog only has one file type ("Font Files"), so I added two new types: "All Supported Formats" and "Graphic Files"
dialog_automation.cpp -- Make warning log translatable
dialog_dummy_video.cpp -- Make resolution names translatable
dialog_export.cpp -- Make message boxes translatable
dialog_properties.cpp -- Make "YCbCr Matrix:" string translatable
dialog_spellchecker.cpp -- Make message boxes translatable
dialog_style_manager.cpp -- Make message boxes translatable
main.cpp -- Make message boxes translatable
preferences.cpp -- Make FFmpegSource's log levels, search bar and columns' titles of hotkey table translatable
project.cpp -- Make message boxes translatable
subs_controller.cpp -- Make "Untitled" string filename and messages translatable
subs_preview.cpp -- Make message box translatable
video_provider_manager.cpp -- Make error strings translatable
macro-2-mkfullwitdh.lua -- Make script metadata translatable
timecode.cpp -- Fix file types names
video.cpp -- Fix descriptions of "video play" commands: "video/play" -> fixed grammar; "video/play/line" -> made description slightly more verbose to prevent it from fetching translation from "audio/play/line"'s STR_DISP (or STR_MENU, idk) 
vis_tool.cpp -- Remove suffixes from visual vector tools
The `wxDEFAULT_FRAME_STYLE` macro already includes `wxCLIP_CHILDREN`.
Removing this redundant flag leaves the position, size, and style
arguments matching their default values, allowing them to be omitted.

https://github.com/wxWidgets/wxWidgets/blob/d6af1f50caafcbc00a38f13213fefc3a1e713f8a/include/wx/toplevel.h#L77-L85
6f7e314 made the FFMS2 log levels
translatable. Translating dropdown choices in the preferences dialog
worked fine for int options, but not for string options.
To keep these strings translatable but not break compatibility by
turning the option into an int option, make the OptionChoice function
able to translate string options itself, while storing the untranslated
values in the options.

This is quite a lot of added code just to make one niche option
translatable, but it allows turning more options into string options in
the future, which behave better when better when choices are added.
(On the other hand, int options behave better when choices are renamed,
but either way the upshot is that choices for string options can now be
translated.)
@op200
Copy link
Author

op200 commented Dec 7, 2025

@0tkl 请问这个 pr 能否合并?

我之前 fork 了 arch1t3cht 的库,GitHub 不允许我从 TypesettingTools fork,我打算等这个 pr 合并后删除库重新 fork,不然我每次得手动拉取并解决冲突

@0tkl
Copy link
Contributor

0tkl commented Dec 7, 2025

你可以参考 https://github.com/orgs/community/discussions/22103#discussioncomment-14468953 把自己仓库的上游从 arch1t3cht 那里改成 TypesettingTools 这里

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.