diff --git a/po/vi.po b/po/vi.po
index 3a54f0bac8c..5017ae6d177 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -34,19 +34,19 @@ msgstr "Bản Dịch"
#: src/SUMMARY.md src/cargo.md
msgid "Using Cargo"
-msgstr ""
+msgstr "Sử Dụng Cargo"
#: src/SUMMARY.md
msgid "Rust Ecosystem"
-msgstr ""
+msgstr "Hệ Sinh Thái Rust"
#: src/SUMMARY.md
msgid "Code Samples"
-msgstr ""
+msgstr "Code Mẫu"
#: src/SUMMARY.md
msgid "Running Cargo Locally"
-msgstr ""
+msgstr "Chạy Cargo Trong Máy Của Bạn"
#: src/SUMMARY.md
msgid "Day 1: Morning"
@@ -1980,14 +1980,19 @@ msgid ""
"Cargo is and how it fits into the wider ecosystem and how it fits into this "
"training."
msgstr ""
+"Khi bạn bắt đầu đọc về Rust, bạn sẽ rất nhanh chóng được thấy [Cargo]"
+"(https://doc.rust-lang.org/cargo/), một công cụ tiêu chuẩn xây dựng và chạy "
+"ứng dụng Rust, nằm trong hệ sinh thái của Rust. Trong phần này, chúng tôi sẽ "
+"tóm tắt ngắn gọn Cargo là gì, nó phù hợp với hệ sinh thái rộng lớn hơn ra "
+"sao, và nó phù hợp với khóa đào tạo như thế nào."
#: src/cargo.md
msgid "Installation"
-msgstr ""
+msgstr "Cài đặt"
#: src/cargo.md
msgid "**Please follow the instructions on .**"
-msgstr ""
+msgstr "**Vui lòng tuân theo hướng dẫn cài đặt tại .**"
#: src/cargo.md
msgid ""
@@ -1995,6 +2000,9 @@ msgid ""
"(`rustc`). You will also get `rustup`, a command line utility that you can "
"use to install to different compiler versions."
msgstr ""
+"Bạn sẽ nhận được công cụ xây dựng Cargo (`cargo`) và trình biên dịch Rust "
+"(`rustc`). Bạn cũng sẽ có `rustup`, một tiện ích dòng lệnh mà bạn có thể sử "
+"dụng để cài đặt các phiên bản khác nhau cho trình biên dịch."
#: src/cargo.md
msgid ""
@@ -2006,6 +2014,14 @@ msgid ""
"analyzer.github.io/manual.html#vimneovim), and many others. There is also a "
"different IDE available called [RustRover](https://www.jetbrains.com/rust/)."
msgstr ""
+"Sau khi cài đặt Rust thành công, bạn nên cấu hình trình Text Editor hoặc IDE "
+"của bạn để hoạt động với Rust. Hầu hết các Text Editor như [VS Code](https://"
+"code.visualstudio.com/), [Emacs](https://rust-analyzer.github.io/manual."
+"html#emacs), [Vim/Neovim](https://rust-analyzer.github.io/manual."
+"html#vimneovim), v.v... đều áp dụng [rust-analyzer](https://rust-analyzer."
+"github.io/) để thực hiện tính năng auto-completion và jump-to-definition. "
+"Bên cạnh đó, vẫn còn một IDE khác khá phổ biến được phát triển bởi JetBrains "
+"là [RustRover](https://www.jetbrains.com/rust/)."
#: src/cargo.md
msgid ""
@@ -2014,21 +2030,29 @@ msgid ""
"gets you an outdated rust version and may lead to unexpected behavior. The "
"command would be:"
msgstr ""
+"Trong hệ máy Debian/Ubuntu, bạn còn có thể tự cài đặt Cargo, mã nguồn của "
+"Rust, và [Rust Formatter](https://github.com/rust-lang/rustfmt) bằng `apt`. "
+"Tuy nhiên, bạn sẽ chỉ cài được phiên bản đã bị quá hạn và có thể dẫn tới "
+"những lỗi không mong muốn. Câu lệnh để cài sẽ là như sau:"
#: src/cargo/rust-ecosystem.md
msgid "The Rust Ecosystem"
-msgstr ""
+msgstr "Hệ Sinh Thái Rust"
#: src/cargo/rust-ecosystem.md
msgid ""
"The Rust ecosystem consists of a number of tools, of which the main ones are:"
msgstr ""
+"Hệ sinh thái của Rust bao gồm một số lượng đáng kể các công cụ, trong đó nổi "
+"bật nhất như là:"
#: src/cargo/rust-ecosystem.md
msgid ""
"`rustc`: the Rust compiler which turns `.rs` files into binaries and other "
"intermediate formats."
msgstr ""
+"`rustc`: trình biên dịch Rust, thứ mà sẽ \"dịch\" các file `.rs` sang dạng "
+"nhị phân hoặc các formats bậc trung khác."
#: src/cargo/rust-ecosystem.md
msgid ""
@@ -2037,6 +2061,10 @@ msgid ""
"pass them to `rustc` when building your project. Cargo also comes with a "
"built-in test runner which is used to execute unit tests."
msgstr ""
+"`cargo`: trình quản lý các gói phụ thuộc và công cụ xây dựng cho Rust. Cargo "
+"sẽ tải các gói phụ thuộc, thường được lưu trữ trên , rồi "
+"đưa chúng cho `rustc` khi bạn xây dựng dự án. Cargo còn có các trình chạy "
+"kiểm thử được cài sẵn phục vụ cho việc thực thi các đơn vị kiểm thử."
#: src/cargo/rust-ecosystem.md
msgid ""
@@ -2046,13 +2074,18 @@ msgid ""
"standard library. You can have multiple versions of Rust installed at once "
"and `rustup` will let you switch between them as needed."
msgstr ""
+"`rustup`: bộ công cụ cài đặt và cập nhật cho Rust. Công cụ này được sử dụng "
+"để cài đặt và cập nhật `rustc` và `cargo` khi các phiên bản mới của Rust "
+"được phát hành. Thêm vào đó, `rustup` còn có thể tải các tài liệu cho thư "
+"viện tiêu chuẩn. Bạn có thể cài đặt nhiều phiên bản Rust cùng lúc và "
+"`rustup` sẽ cho bạn chuyển đổi các phiên bản với nhau khi cần."
#: src/cargo/rust-ecosystem.md src/types-and-values/hello-world.md
#: src/references/exclusive.md src/pattern-matching/destructuring.md
#: src/memory-management/move.md src/error-handling/try.md src/android/setup.md
#: src/async/async-await.md
msgid "Key points:"
-msgstr ""
+msgstr "Các điểm chính:"
#: src/cargo/rust-ecosystem.md
msgid ""
@@ -2060,53 +2093,72 @@ msgid ""
"weeks. New releases maintain backwards compatibility with old releases --- "
"plus they enable new functionality."
msgstr ""
+"Rust có một lịch phát hành phiên bản mới dày đặc với một phiên bản mới mỗi "
+"sáu tuần. Các phiên bản mới bảo toàn tính tương thích với các phiên bản cũ "
+"--- cùng với đó chúng kích hoạt thêm các chức năng mới."
#: src/cargo/rust-ecosystem.md
msgid ""
"There are three release channels: \"stable\", \"beta\", and \"nightly\"."
-msgstr ""
+msgstr "Có tổng cộng ba kênh phát hành: \"stable\", \"beta\", và \"nightly\"."
#: src/cargo/rust-ecosystem.md
msgid ""
"New features are being tested on \"nightly\", \"beta\" is what becomes "
"\"stable\" every six weeks."
msgstr ""
+"Các tính năng mới dang được thử nghiệm trên \"nightly\", còn \"beta\" sẽ trở "
+"thành \"stable\" sau mỗi sáu tuần."
#: src/cargo/rust-ecosystem.md
msgid ""
"Dependencies can also be resolved from alternative [registries](https://doc."
"rust-lang.org/cargo/reference/registries.html), git, folders, and more."
msgstr ""
+"Các gói phụ thuộc cũng có thể được phân giải từ các [hệ thống đăng ký]"
+"(https://doc.rust-lang.org/cargo/reference/registries.html) thay thế, git, "
+"các thư mục, v.v..."
#: src/cargo/rust-ecosystem.md
msgid ""
"Rust also has [editions](https://doc.rust-lang.org/edition-guide/): the "
"current edition is Rust 2021. Previous editions were Rust 2015 and Rust 2018."
msgstr ""
+"Rust còn có nhiều [phiên bản lớn](https://doc.rust-lang.org/edition-guide/): "
+"Rust 2021 là bản hiện tại, Rust 2018, và Rust 2015."
#: src/cargo/rust-ecosystem.md
msgid ""
"The editions are allowed to make backwards incompatible changes to the "
"language."
msgstr ""
+"Các phiên bản lớn được cho phép thực hiện các thay đổi không tương thích đối "
+"với ngôn ngữ."
#: src/cargo/rust-ecosystem.md
msgid ""
"To prevent breaking code, editions are opt-in: you select the edition for "
"your crate via the `Cargo.toml` file."
msgstr ""
+"Để phòng trừ phá vỡ cấu trúc mã, các phiên bản lớn sẽ được chọn cho crate "
+"của bạn thông qua file `Cargo.toml`."
#: src/cargo/rust-ecosystem.md
msgid ""
"To avoid splitting the ecosystem, Rust compilers can mix code written for "
"different editions."
msgstr ""
+"Nhằm tránh hệ sinh thái bị chia nhỏ ra, trình biên dịch Rust có thể trộn lẫn "
+"các đoạn mã được viết dưới các phiên bản lớn khác nhau."
#: src/cargo/rust-ecosystem.md
msgid ""
"Mention that it is quite rare to ever use the compiler directly not through "
"`cargo` (most users never do)."
msgstr ""
+"Hãy đề cập với người học rằng việc sử dụng trình biên dịch trực tiếp mà "
+"không thông qua `cargo` là việc rất hiếm (hầu hết người dùng không bao giờ "
+"làm như vậy)."
#: src/cargo/rust-ecosystem.md
msgid ""
@@ -2114,45 +2166,55 @@ msgid ""
"comprehensive tool. It is capable of many advanced features including but "
"not limited to:"
msgstr ""
+"Nói không ngoa bản thân Cargo là một công cụ cự kỳ mạnh mẽ và toàn diện. Nó "
+"có khả năng bao gồm nhưng không giới hạn tới nhiều tính năng mở rộng sau:"
#: src/cargo/rust-ecosystem.md
msgid "Project/package structure"
-msgstr ""
+msgstr "Cấu trúc dự án/bộ phần mềm."
#: src/cargo/rust-ecosystem.md
msgid "[workspaces](https://doc.rust-lang.org/cargo/reference/workspaces.html)"
msgstr ""
+"[Workspaces](https://doc.rust-lang.org/cargo/reference/workspaces.html)."
#: src/cargo/rust-ecosystem.md
msgid "Dev Dependencies and Runtime Dependency management/caching"
msgstr ""
+"Các Dev Dependencies và trình quản lý/bộ nhớ đệm cho Runtime Dependency."
#: src/cargo/rust-ecosystem.md
msgid ""
"[build scripting](https://doc.rust-lang.org/cargo/reference/build-scripts."
"html)"
msgstr ""
+"[Build scripting](https://doc.rust-lang.org/cargo/reference/build-scripts."
+"html)."
#: src/cargo/rust-ecosystem.md
msgid ""
"[global installation](https://doc.rust-lang.org/cargo/commands/cargo-install."
"html)"
msgstr ""
+"[Cài đặt trên toàn môi trường](https://doc.rust-lang.org/cargo/commands/"
+"cargo-install.html)."
#: src/cargo/rust-ecosystem.md
msgid ""
"It is also extensible with sub command plugins as well (such as [cargo "
"clippy](https://github.com/rust-lang/rust-clippy))."
msgstr ""
+"Nó còn có khả năng mở rộng được với các lệnh con dưới dạng plugins (như là "
+"[cargo clippy](https://github.com/rust-lang/rust-clippy))."
#: src/cargo/rust-ecosystem.md
msgid ""
"Read more from the [official Cargo Book](https://doc.rust-lang.org/cargo/)"
-msgstr ""
+msgstr "Tham khảo thêm tại [The Cargo Book](https://doc.rust-lang.org/cargo/)."
#: src/cargo/code-samples.md
msgid "Code Samples in This Training"
-msgstr ""
+msgstr "Code Mẫu Trong Khóa Đào Tạo"
#: src/cargo/code-samples.md
msgid ""
@@ -2160,6 +2222,10 @@ msgid ""
"which can be executed through your browser. This makes the setup much easier "
"and ensures a consistent experience for everyone."
msgstr ""
+"Với khóa đào tạo này, chúng ta sẽ hầu như khám phá ngôn ngữ Rust qua các ví "
+"dụ có thể thực thi được ngay trên trình duyệt của mình. Việc này giúp cho "
+"việc chuẩn bị được thực hiện dễ dàng hơn và đảm bảo trải nghiệm đồng nhất "
+"với mọi người."
#: src/cargo/code-samples.md
msgid ""
@@ -2167,34 +2233,42 @@ msgid ""
"the exercises. On the last day, we will do a larger exercise which shows you "
"how to work with dependencies and for that you need Cargo."
msgstr ""
+"Cài đặt Cargo vẫn được khuyến khích: nó sẽ giúp bạn làm các bài thực hành dễ "
+"hơn. Trong ngày học cuối cùng, chúng tôi sẽ làm một bài tập lớn để cho bạn "
+"thấy cách làm việc với các gói phụ thuộc và bạn sẽ cần Cargo để làm nó."
#: src/cargo/code-samples.md
msgid "The code blocks in this course are fully interactive:"
-msgstr ""
+msgstr "Các khối code trong khóa học này hoàn toàn tương tác được:"
#: src/cargo/code-samples.md src/cargo/running-locally.md
msgid "\"Edit me!\""
-msgstr ""
+msgstr "\"Chỉnh sửa tôi đê!\""
#: src/cargo/code-samples.md
msgid "You can use "
-msgstr ""
+msgstr "Bạn có thể sử dụng "
#: src/cargo/code-samples.md
msgid " to execute the code when focus is in the text box."
-msgstr ""
+msgstr " để thực thi khối code đang chứa con trỏ soạn thảo của bạn."
#: src/cargo/code-samples.md
msgid ""
"Most code samples are editable like shown above. A few code samples are not "
"editable for various reasons:"
msgstr ""
+"Hầu hết các đoạn code mẫu đều có thể chỉnh sửa được như trên. Nhưng có một "
+"ít các đoạn mẫu lại không chỉnh sửa được vì vài lý do sau:"
#: src/cargo/code-samples.md
msgid ""
"The embedded playgrounds cannot execute unit tests. Copy-paste the code and "
"open it in the real Playground to demonstrate unit tests."
msgstr ""
+"Các Playgrounds được nhúng không thể thực thi được các đơn vị kiểm thử. Hãy "
+"copy-paste đoạn code và mở nó trong một Playground thực sự để minh họa các "
+"thử nghiệm."
#: src/cargo/code-samples.md
msgid ""
@@ -2202,10 +2276,13 @@ msgid ""
"the page! This is the reason that the students should solve the exercises "
"using a local Rust installation or via the Playground."
msgstr ""
+"Các Playgrounds được nhúng bị mất trạng thái tạm thời ở thời điểm bạn chuyển "
+"sang trang khác! Vì lý do này, các học sinh nên giải các bài thực hành sử "
+"dụng Rust đã được cài đặt trong máy tính riêng hoặc qua Playground thực sự."
#: src/cargo/running-locally.md
msgid "Running Code Locally with Cargo"
-msgstr ""
+msgstr "Chạy Cargo Trong Máy Tính Của Bạn"
#: src/cargo/running-locally.md
msgid ""
@@ -2215,42 +2292,57 @@ msgid ""
"should give you a working `rustc` and `cargo`. At the time of writing, the "
"latest stable Rust release has these version numbers:"
msgstr ""
+"Nếu bạn muốn thử nghiệm code trong hệ thống riêng của bạn, vậy thì trước hết "
+"bạn cần phải cài đặt Rust. Hãy tuân theo [các hướng dẫn trong Rust Book]"
+"(https://doc.rust-lang.org/book/ch01-01-installation.html). Bạn sẽ học được "
+"cách sử dụng `rustc` và `cargo` ở đây. Tại thời điểm bài này được viết, "
+"phiên bản ổn định mới nhất của Rust có các số phiên bản sau:"
#: src/cargo/running-locally.md
msgid ""
"You can use any later version too since Rust maintains backwards "
"compatibility."
msgstr ""
+"Bạn cũng có thể sử dụng bất kỳ phiên bản nào ra sau đó vì Rust luôn bảo trì "
+"khả năng tương thích ngược của nó."
#: src/cargo/running-locally.md
msgid ""
"With this in place, follow these steps to build a Rust binary from one of "
"the examples in this training:"
msgstr ""
+"Sau khi cài xong, tuân theo các bước sau đây để xây dựng tệp nhị phân Rust "
+"từ một trong các ví dụ trong khóa đào tạo:"
#: src/cargo/running-locally.md
msgid "Click the \"Copy to clipboard\" button on the example you want to copy."
-msgstr ""
+msgstr "Nhấn vào nút \"Copy to clipboard\" trong ví dụ mà bạn muốn copy."
#: src/cargo/running-locally.md
msgid ""
"Use `cargo new exercise` to create a new `exercise/` directory for your code:"
msgstr ""
+"Sử dụng `cargo new exercise` để tạo một thư mục `exercise/` mới cho code của "
+"bạn:"
#: src/cargo/running-locally.md
msgid ""
"Navigate into `exercise/` and use `cargo run` to build and run your binary:"
msgstr ""
+"Điều hướng tới `exercise/` và sử dụng `cargo run` để build và chạy tệp nhị "
+"phân của bạn:"
#: src/cargo/running-locally.md
msgid ""
"Replace the boiler-plate code in `src/main.rs` with your own code. For "
"example, using the example on the previous page, make `src/main.rs` look like"
msgstr ""
+"Thay thế khung code trong `src/main.rs` với code riêng của bạn. Chẳng hạn, "
+"sử dụng ví dụ ở trang trước, viết `src/main.rs` sao cho thành như sau"
#: src/cargo/running-locally.md
msgid "Use `cargo run` to build and run your updated binary:"
-msgstr ""
+msgstr "Sử dụng `cargo run` để build và chạy tệp nhị phân vừa được cập nhật:"
#: src/cargo/running-locally.md
msgid ""
@@ -2259,6 +2351,10 @@ msgid ""
"debug/` for a normal debug build. Use `cargo build --release` to produce an "
"optimized release build in `target/release/`."
msgstr ""
+"Sử dụng `cargo check` để kiểm tra nhanh dự án của bạn, sử dụng `cargo build` "
+"để biên dịch nó mà không chạy nó luôn. Bạn có thể tìm các tệp được tạo ra ở "
+"`target/debug/` cho debug build thông thường. Sử dụng `cargo build --"
+"release` để xuất ra bản build tối ưu cho việc xuất bản ở `target/release/`."
#: src/cargo/running-locally.md
msgid ""
@@ -2266,6 +2362,9 @@ msgid ""
"run `cargo` commands, it will automatically download and compile missing "
"dependencies for you."
msgstr ""
+"Bạn có thể thêm các gói phụ thuộc vào dự án của bạn bằng cách chỉnh sửa file "
+"`Cargo.toml`. Khi bạn chạy các lệnh `cargo`, nó sẽ tự động tải về và biên "
+"dịch các gói phụ thuộc bị thiếu cho bạn."
#: src/cargo/running-locally.md
msgid ""
@@ -2273,6 +2372,9 @@ msgid ""
"editor. It will make their life easier since they will have a normal "
"development environment."
msgstr ""
+"Hãy cố gắng khuyến khích các học viên cài đặt Cargo và sử dụng trong Text "
+"Editor ở máy riêng. Điều này sẽ giúp cuộc sống của họ dễ thở hơn một tý vì "
+"họ sẽ được làm việc trong một môi trường phát triển bình thường."
#: src/welcome-day-1.md
msgid "Welcome to Day 1"