Repository
Github: https://github.com/nodejs/i18n
Crowdin link: https://crowdin.com/project/nodejs
Simplified Chinese page: https://crowdin.com/project/nodejs/zh-CN#
Project Details
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Node.js is a free, cross-platform, open source server environment to execute JavaScript outside of a browser. Traditionally, JavaScript is used for client side scripting and runs by a JavaScript engine embedded within a browser. With Node.js, JavaScript can be used to write command line programs or server side scripting. By this way, developers only need to learn a single programming language to do both server side and client side programming.
Node.js is built on Chrome’s V8 JavaScript execution engine which was initially built for Google Chrome. Instead of interpreting JavaScript in real time, V8 compiles JavaScript code to native binary machine code to improve the performance. Node.js has an event driven architecture which makes it suitable for web applications with many I/O operations. That is why Node.js is very fast compared to similar technologies. libuv is used to handle asynchronous events across operating systems.
Contribution Specifications
I have used Node.js in a few small projects but never got a chance to see a whole picture of this amazing and popular framework. I am very exciting to start translating Node.js and very looking forward to my new learning journey!
Translation overview
The whole project consists of 1,048,272 words. victory622 has started working on this project. Since this project is extremely large therefore collaborations are required. I will be concentrating on the translation of v8.x folder which has 353,483 words to translate.
This submission
In this contribution, I have been translating Buffer.md. To me, the most interesting part is the discussion about the different ways to allocate a buffer, the potential performance/safety problem associated with it, and the proposed solutions for the problem. There are different ways to allocate a buffer in Node.js, for example, by using "Buffer.allocUnsafe()" means the new allocated buffer won't be initialized therefore it may contain some sensitive data from old buffer(s). The problem can be fixed by calling "buf.fill(0);" afterwards or by passing a "--zero-fill-buffers" command line argument to Node.js. The alternative solution is to use "Buffer.alloc()" to allocate a buffer and initialize the new buffer immediately, but the performance is affected.
In terms of the translation in this submission, because I fully understand the context, getting the accurate translation is not difficult to me. However, since there are lots of long sentences in the source string, my focus was to make my translation fluent and easy to understand by Chinese readers. Therefore, I spend some extra time to double check my translation before submitting. Here are some examples of how my translation has been refined during my "pre-proofreading":
Languages
I translate Node.js from English to Simplified Chinese.
Word Count
Regarding the number of words, this is my sixth contribution to Node.js project and I have translated 1267 words in this submission.
Before:
I have been working on the api folder and have translated 6209 words before this submission.
After:
The number of words being translated becomes 7476.
Total: 7476-6209 = 1267 words
Proof of Authorship
My translation activities can be viewed in my Crowdin profile: https://crowdin.com/profile/aafeng/activity