-
Notifications
You must be signed in to change notification settings - Fork 12.4k
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
Chinese-to-English (Help Wanted) #914
Comments
Check out the following PR for more clarity on the workflow: |
Hi! I don't know Chinese, but can I contribute to this? I have formal background in CS. Thank you! |
Welcome! I think you can engage in the PR reviewing, focusing on optimizing fluency and authenticity, if you’re proficient in English. Is English your first language? |
Not really, but I'm quite proficient. |
@thisisdilmurod Great! Please add my WeChat: |
Thank you! But I'm afraid the link to Discord above looks expired. Can you send it again, please? |
Sorry for the inconvenience. Please try this link: https://discord.gg/nvspS56295 |
Hello, I hope I can help. |
Hello, I am willing to help. |
Hey I'm happy to help too. |
@frankliuao Thanks for your interest and kind words about this book! Could you contact me via WeChat or Discord to discuss the details further? |
Hi Krahets (@krahets), Thank you for this awesome project. I'm happy to help too. I've been studying in the US since 2015 and I'm currently a Ph.D. student in Computer Science at George Mason University. My research interests include trustworthy machine learning and software security. I can assist with manual translations, proofreading, and AI translation comparison (using ChatGPT and ClaudeAI). Thank you for your time. |
Hi, @MENG2010, thanks for your interest! Welcome to join us! Could you please add my WeChat: |
hello! Thank for this opportunity to collaborate with you guys. I am a third-year computer science bachelor's student. Although English is not my first language, I am proficient in it. In addition, I work as a front-end developer and content writer, having written several articles for other people's blogs. I believe my skills will be useful for this project. In git hub, I also provide a leetcode-feedback. |
Hello 👋 Hope to join you on this project as well. I can assist with proofreading and fine-tuning text to be more in line with standard documentation. |
Hi, discord link expired again. |
@Huilin-Li Updated |
Welcome @tinatsina @umer77jahangir! Do you use WeChat? If so, please add me |
no i did not use it. Please send a link which is not expired |
Hey! I don't know Chinese, but can I still contribute to this? I know English and have a good grasp of CS. |
Is there any way to keep track of the translation status? 👀 I used this script to quickly compare the number of lines in each file under the 'docs' directory for both the Chinese and English versions of the content. While line count is not an ideal metric for translation progress, it provides a rough estimate of differences between the two versions. #!/bin/bash
# Function to get file counts
get_file_counts() {
cd "$1" || exit
find . -name "*.md" -print0 | xargs -0 wc -l | sort -n
cd - > /dev/null || exit
}
# Get counts for both directories
en_counts=$(get_file_counts "./en/docs")
zh_counts=$(get_file_counts "./docs")
# Combine and format as a markdown table, showing only differences
echo "| File | ZH Lines | EN Lines | Difference |"
echo "| ---- | -------- | -------- | ---------- |"
awk '
BEGIN {FS="\n"; RS=""}
{
for (i=1; i<=NF; i++) {
split($i, a, " ")
file = a[2]
sub(/^\.\//, "", file)
if (NR == 1) {
zh_files[file] = a[1]
} else {
en_files[file] = a[1]
}
}
}
END {
for (file in zh_files) {
if (file in en_files) {
diff = zh_files[file] - en_files[file]
if (diff != 0) {
printf "| %s | %s | %s | %d |\n", file, zh_files[file], en_files[file], diff
}
} else {
printf "| %s | %s | - | %s |\n", file, zh_files[file], zh_files[file]
}
}
for (file in en_files) {
if (!(file in zh_files)) {
printf "| %s | - | %s | -%s |\n", file, en_files[file], en_files[file]
}
}
}
' <(echo "$zh_counts") <(echo "$en_counts") | sort -t '|' -k5 -n
# Print totals
zh_total=$(echo "$zh_counts" | tail -n 1 | awk '{print $1}')
en_total=$(echo "$en_counts" | tail -n 1 | awk '{print $1}')
total_diff=$((zh_total - en_total)) The result of that script is a markdown table like this:
Then we can inspect by file using something like this: diff \
--width="$COLUMNS" \
--side-by-side \
--color=always \
--expand-tabs \
en/docs/chapter_array_and_linkedlist/summary.md \
docs/chapter_array_and_linkedlist/summary.md Now we can get to see were the # Summary | # 小结
### Key review | ### 重点回顾
- Arrays and linked lists are two basic data structures | - 数组和链表是两种基本的数据结构,分�
- Arrays support random access and use less memory; how | - 数组支持随机访问、占用内存较少;但�
- Linked lists implement efficient node insertion and d | - 链表通过更改引用(指针)实现高效的�
- Common types of linked lists include singly linked li | - 列表是一种支持增删查改的元素有序集�
- Lists are ordered collections of elements that suppor | - 列表的出现大幅提高了数组的实用性,�
- The advent of lists significantly enhanced the practi | - 程序运行时,数据主要存储在内存中。�
- During program execution, data is mainly stored in me | - 缓存通过缓存行、预取机制以及空间局�
- Caches provide fast data access to CPUs through mecha | - 由于数组具有更高的缓存命中率,因此�
- Due to higher cache hit rates, arrays are generally m <
### Q & A ### Q & A
**Q**: Does storing arrays on the stack versus the heap | **Q**:数组存储在栈上和存储在堆上,对�
Arrays stored on both the stack and heap are stored in | 存储在栈上和堆上的数组都被存储在连续�
1. Allocation and release efficiency: The stack is a sm | 1. 分配和释放效率:栈是一块较小的内存�
2. Size limitation: Stack memory is relatively small, w | 2. 大小限制:栈内存相对较小,堆的大小�
3. Flexibility: The size of arrays on the stack needs t | 3. 灵活性:栈上的数组的大小需要在编译�
**Q**: Why do arrays require elements of the same type, | **Q**:为什么数组要求相同类型的元素,�
Linked lists consist of nodes connected by references ( | 链表由节点组成,节点之间通过引用(指�
In contrast, array elements must be of the same type, a | 相对地,数组元素则必须是相同类型的,�
```shell ```shell
# Element memory address = array memory address + eleme | # 元素内存地址 = 数组内存地址(首元素�
``` ```
**Q**: After deleting a node, is it necessary to set `P | **Q**:删除节点 `P` 后,是否需要把 `P.next`
Not modifying `P.next` is also acceptable. From the per | 不修改 `P.next` 也可以。从该链表的角度看
From a garbage collection perspective, for languages wi | 从数据结构与算法(做题)的角度看,不�
**Q**: In linked lists, the time complexity for inserti | **Q**:在链表中插入和删除操作的时间复�
If an element is searched first and then deleted, the t | 如果是先查找元素、再删除元素,时间复�
**Q**: In the figure "Linked List Definition and Storag | **Q**:图“链表定义与存储方式”中,浅�
The figure is just a qualitative representation; quanti | 该示意图只是定性表示,定量表示需要根�
- Different types of node values occupy different amoun | - 不同类型的节点值占用的空间是不同的�
- The memory space occupied by pointer variables depend | - 指针变量占用的内存空间大小根据所使�
**Q**: Is adding elements to the end of a list always ` | **Q**:在列表末尾添加元素是否时时刻刻�
If adding an element exceeds the list length, the list | 如果添加元素时超出列表长度,则需要先�
**Q**: The statement "The emergence of lists greatly im | **Q**:“列表的出现极大地提高了数组的�
The space wastage here mainly refers to two aspects: on | 这里的空间浪费主要有两方面含义:一方�
**Q**: In Python, after initializing `n = [1, 2, 3]`, t | **Q**:在 Python 中初始化 `n = [1, 2, 3]` 后,�
If we replace list elements with linked list nodes `n = | 假如把列表元素换成链表节点 `n = [n1, n2, n
Unlike many languages, in Python, numbers are also wrap | 与许多语言不同,Python 中的数字也被包装
**Q**: The `std::list` in C++ STL has already implement | **Q**:C++ STL 里面的 `std::list` 已经实现了�
On the one hand, we often prefer to use arrays to imple | 一方面,我们往往更青睐使用数组实现算�
- Space overhead: Since each element requires two addit | - 空间开销:由于每个元素需要两个额外�
- Cache unfriendly: As the data is not stored continuou | - 缓存不友好:由于数据不是连续存放的�
On the other hand, linked lists are primarily necessary | 另一方面,必要使用链表的情况主要是二�
**Q**: Does initializing a list `res = [0] * self.size( | **Q**:初始化列表 `res = [0] * self.size()` 操�
No. However, this issue arises with two-dimensional arr | 不会。但二维数组会有这个问题,例如初�
<
**Q**: In deleting a node, is it necessary to break the <
<
From the perspective of data structures and algorithms < In my humble opinion, it makes sense to have a side-by-side translation (with an equal number of lines) because of the significant differences between 普通话 and English. By the way, excellent book! I can't wait to read the English PDF/EPUB3 ASAP! Footnotes
|
Hi @ofou, sorry I didn't notice your comment. The analysis is great! Indeed, synchronizing the English and Chinese versions is not an easy task. Would you like to join us? I hope we can discuss this in detail. |
Hey @krahets, thanks for reaching out! I'd love to contribute to this project, but I barely know basic Mandarin. However, I can help with the English version and ensure that the content is well-aligned with the original Chinese version. |
@ofou Welcome on board! We hope to involve native English speakers to make the English version more authentic. The task of synchronizing the Chinese and English versions will be handled by other Chinese translators. Do you use wechat? Please add me: krahets-jyd , I will invite you to the group chat. |
@krahets I added you, mine is omarnomad I'm a noob using WeChat but let's do it |
Contributing guidelines for Chinese-to-English
We are working on translating "Hello Algo" from Chinese to English with the following approach:
2.
and3.
for further improvements.Join us
We're seeking contributors who meet the following criteria.
That is, our contributors are computer scientists, engineers, and students from different linguistic backgrounds, and their objectives have different focal points:
Don't hesitate to join us via WeChat
krahets-jyd
or on Discord!Contributing guideline
Please visit en/CONTRIBUTING.md for more details.
The text was updated successfully, but these errors were encountered: