Hello,
This is my 28th contribution to Node.js. I’m currently translating this project into Spanish, along with an awesome group of translators and moderators from Utopian + Da Vinci, we are doing our best to do everything correctly. If you are interested in open-source projects, I encourage you to keep reading.
Node.js is a very extensive project, it may seem impossible to translate it completely, but the Spanish team is working really and we are slowly making progress. It’s currently at 49% on Crowdin, which is awesome considering the fact that Node.js contains 1,048,272 words.
Repository
https://github.com/nodejs/i18n
Project Details
Node.js is an open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser. It achieves low latency and high throughput by taking a “non-blocking” approach to serving requests. Basically, Node.js can open, create, read, write, close and delete files on a server, using JavaScript. It also includes tasks that will be executed on certain servers.
I know it can be a bit confusing at first, so let me explain it to you in simpler words:
Let’s say you want to build a software to keep record of your company’s earnings. A feature where viewing your monthly earnings is updated live can be very useful. In that way, if one of your sales employees is busy, another employee could still be seeing the updates live, without reloading the page.
This has been done before using another technologies. However, Node.js is way faster and better. So, yes it is the best option for developers who want to build real-time applications where both the server and the client can exchange data freely with no restrictions.
Contribution Specifications
Being such an important project, Node.js is being translated to several languages so it can reach many people around the world. As it for me, I am contributing to the Spanish language.
Translation Overview
During this contribution I finished working on the folder dns.md inside the version 6.
In simple words, the DNS module provides a way of performing name resolutions, which is the linking of identifiers within the programming environment to the actual program components that they represent.
The functions inside this module can be split into two categories:
Inside this folder I only had a couple of paragraphs left to translate they explained the implementation considerations of the functions: [dns.lookup()][], dns.resolve(), dns.resolve*() and dns.reverse(). Although they have the same goal of associating a network name with a network address (or vice versa), their behavior is quite different. These differences can have subtle but significant consequences on the behavior of Node.js programs.
For example, dns.resolve() and dns.resolve*() do not use libuv's threadpool, while [dns.lookup()][] runs on libuv's threadpool. In case you’re wondering, a threadpool is a software design pattern that reuses previously created threads to execute current tasks and offers a solution to the problem of thread cycle overhead and resource thrashing.
After I finished with dns.md I started working on a folder called n-api.md.
N-API is an API for building native Addons. It is independent from the underlying JavaScript runtime and is maintained as part of Node.js itself.
In essence, N-API can be used to build NodeJS Addons using C or C++. And the addons built using this would not break across different implementations or versions of NodeJS. It is intended to insulate Addons from changes in the underlying JavaScript engine. Let’s remember that an add-on is a software extension that adds extra features to a program.
APIs exposed by N-API are generally used to create and manipulate JavaScript values. Concepts and operations generally map to ideas specified in the ECMA262 Language Specification.
What does ECMA262 mean?
ECMAScript (European Computer Manufacturers Association Script), is a scripting language based on JavaScript. The same association developed the official standard for ECMAScript, often known as ECMA-262. This standard helps in defining the ECMAScript language and also ensures the consistency between web script implementations.
This API will be Application Binary Interface (ABI) stable across versions of Node.js.
What is the difference between API and ABI?
An API defines the interfaces by which one piece of software communicates with another at the source level. Whereas an API defines a source interface, it defines how an application interacts with itself, how an application interacts with the kernel, and how an application interacts with libraries.
Inside this folder I translated the basic N-API data types: napi_status, napi_extended_error_info, napi_env, napi_value. As well as the N-API memory management types: napi_handle_scope, napi_escapable_handle_scope and napi_ref
These were the sites I used as references: 1, 2, 3, 4
Other translation samples:
English:
Spanish:
English:
Spanish:
Some words and code values were left untranslated on purpose, otherwise, their true meaning would be lost in the translation.
Languages
Source Language: English
Translated Language: Spanish
I have worked as a translator for the project Da Vinci Polyglot and I am currently working as a language moderator for the Utopian + Da Vinci translation category.
And of course, I am part of the Spanish team!
Word Count
I translated 1225 words on this contribution.
- 1st contribution
- 2nd contribution
- 3rd contribution
- 4th contribution
- 5th contribution
- 6th contribution
- 7th contribution
- 8th contribution
- 9th contribution
- 10th contribution
- 11th contribution
- 12th contribution
- 13th contribution
- 14th contribution
- 15th contribution
- 16th contribution
- 17th contribution
- 18th contribution
- 19th contribution
- 20th contribution
- 21st contribution
- 22nd contribution
- 23rd contribution
- 24th contribution
- 25th contribution
- 26th contribution
- 27th contribution
Greetings, @marugy99. Thanks for submitting your contribution!
Congratulations on this contribution!
Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.
To view those questions and the relevant answers related to your post, click here.
Chat with us on Discord
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for your review, @alejohannes! Keep up the good work!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi @marugy99!
Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @marugy99! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :
Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word
STOP
To support your work, I also upvoted your post!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @marugy99! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit