From 4650337f8eaefedcd608fc016cb268be7d70fa98 Mon Sep 17 00:00:00 2001
From: Khang <42975512+khangquangtran@users.noreply.github.com>
Date: Sat, 2 Dec 2023 01:21:40 -0600
Subject: [PATCH 1/5] Fixed typo and Updated link to API docs.
---
CONTRIBUTINGfr.md | 2 +-
README.md | 2 +-
READMEde.md | 2 +-
READMEes.md | 2 +-
READMEfr.md | 2 +-
READMEgr.md | 2 +-
READMEja.md | 2 +-
READMEnl.md | 2 +-
READMEpl.md | 2 +-
READMEru.md | 2 +-
READMEsv.md | 2 +-
READMEtr.md | 2 +-
READMEuk.md | 2 +-
13 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/CONTRIBUTINGfr.md b/CONTRIBUTINGfr.md
index 73907b27..f6ee2fbd 100644
--- a/CONTRIBUTINGfr.md
+++ b/CONTRIBUTINGfr.md
@@ -1,5 +1,5 @@
-Lisez ceci dans d'autres langues : [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), Nederlands](CONTRIBUTINGnl.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Lisez ceci dans d'autres langues : [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
# Bienvenue dans le guide de contribution à Return YouTube Dislikes
diff --git a/README.md b/README.md
index cd3761e5..c93ebd4d 100644
--- a/README.md
+++ b/README.md
@@ -74,7 +74,7 @@ Wrong formed YouTube ID will return _400_ "Bad Request".
## API documentation
You can view all documentation on our website.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Contributing
diff --git a/READMEde.md b/READMEde.md
index a738d82a..f4ab91c2 100644
--- a/READMEde.md
+++ b/READMEde.md
@@ -72,7 +72,7 @@ Falsch geformte YouTube IDs werden den Statuscode _400_ "Bad Request" zurückgeb
## API Dokumentation
Sie können die gesamte Dokumentation auf unserer Website einsehen.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Beitragen
diff --git a/READMEes.md b/READMEes.md
index 64fddb4f..5c659d0b 100644
--- a/READMEes.md
+++ b/READMEes.md
@@ -72,7 +72,7 @@ Un ID de YouTube mal estructurado mostrará el código _400_ "Bad Request" (soli
## Documentación de la API
Puedes ver toda la documentación en nuestra página web.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Contribuciones
diff --git a/READMEfr.md b/READMEfr.md
index 2b1c18ae..4834c4e1 100644
--- a/READMEfr.md
+++ b/READMEfr.md
@@ -72,7 +72,7 @@ Un ID YouTube invalide renverra le code d'erreur _400_ "Bad Request".
## Documentation de l'API
Vous pouvez consulter toute la documentation sur notre site web.
-[https://returnyoutubedislike.com/docs](https://returnyoutubedislike.com/docs) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Contribution
diff --git a/READMEgr.md b/READMEgr.md
index 59a79c5c..dbff6091 100644
--- a/READMEgr.md
+++ b/READMEgr.md
@@ -72,7 +72,7 @@ https://returnyoutubedislikeapi.com/swagger/index.html
## API documentation
You can view all documentation on our website.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Συνεισφορά
diff --git a/READMEja.md b/READMEja.md
index 75f976b7..ae5b1125 100644
--- a/READMEja.md
+++ b/READMEja.md
@@ -74,7 +74,7 @@ API を利用して YouTube video ID から評価を取得する例です:
## API ドキュメント
APIの完全なドキュメントは公式サイトを参照してください。
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## 貢献する
diff --git a/READMEnl.md b/READMEnl.md
index a6582390..102317c8 100644
--- a/READMEnl.md
+++ b/READMEnl.md
@@ -72,7 +72,7 @@ Verkeerd gevormde YouTube-ID retourneert _400_ "Slecht verzoek".
## API documentation
You can view all documentation on our website.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Bijdragen
diff --git a/READMEpl.md b/READMEpl.md
index 6b64eb64..e46afa25 100644
--- a/READMEpl.md
+++ b/READMEpl.md
@@ -71,7 +71,7 @@ Niepoprawnie sformatowany ID filmu zwróci _400_ "Bad Request".
## API documentation
Cała dokumentacja jest dostępna na naszej stronie.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Współtworzenie
diff --git a/READMEru.md b/READMEru.md
index 273216a1..621feb4f 100644
--- a/READMEru.md
+++ b/READMEru.md
@@ -72,7 +72,7 @@ https://returnyoutubedislikeapi.com/swagger/index.html
## Документация по API
Вы можете просмотреть всю документацию на нашем веб-сайте.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Участие/помощь в разработке
diff --git a/READMEsv.md b/READMEsv.md
index 93cfce83..de3d96b2 100644
--- a/READMEsv.md
+++ b/READMEsv.md
@@ -71,7 +71,7 @@ Felaktigt formade YouTube-ID returnerar _400_ "Bad Request".
## API Dokumentation
Du kommer åt all dokumentation på vår webbplats.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Bidra
diff --git a/READMEtr.md b/READMEtr.md
index 54ebcfe7..22241469 100644
--- a/READMEtr.md
+++ b/READMEtr.md
@@ -72,7 +72,7 @@ Yanlış oluşturulmuş bir YouTube ID'si _400_ "Bad Request" durum kodunu dönd
## API Belgelemesi
Tüm belgelemeleri sitemizden inceleyebilirsiniz.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Katkıda Bulunma
diff --git a/READMEuk.md b/READMEuk.md
index 90140348..9790d3c3 100644
--- a/READMEuk.md
+++ b/READMEuk.md
@@ -72,7 +72,7 @@ YouTube ID у невірному форматі видасть код помил
## Документація API
Ви можете переглянути всю документацію на нашому сайті.
-[https://returnyoutubedislike.com/documentation/](https://returnyoutubedislike.com/documentation/) -->
+[https://returnyoutubedislike.com/docs/](https://returnyoutubedislike.com/docs/) -->
## Взяти участь у розробці
From 6f89e4d22add3edf61c460707ed0dec8b38d9a5e Mon Sep 17 00:00:00 2001
From: Khang <42975512+khangquangtran@users.noreply.github.com>
Date: Sat, 2 Dec 2023 03:12:30 -0600
Subject: [PATCH 2/5] Added Vietnamese translation.
Initial Vietnamese translation.
Added Vietnamese README.
Added links to the Vietnamese README in the other README translations.
Added Vietnamese CONTRIBUTING.
Added links to the Vietnamese CONTRIBUTING in the other CONTRIBUTING translations.
Added Vietnamese extension-description-store.
---
CONTRIBUTING.md | 2 +-
CONTRIBUTINGfr.md | 2 +-
CONTRIBUTINGnl.md | 2 +-
CONTRIBUTINGpl.md | 2 +-
CONTRIBUTINGru.md | 2 +-
CONTRIBUTINGtr.md | 2 +-
CONTRIBUTINGuk.md | 2 +-
CONTRIBUTINGvi.md | 68 +++++++++++++++
README.md | 2 +-
READMEcn.md | 2 +-
READMEde.md | 2 +-
READMEes.md | 2 +-
READMEfr.md | 2 +-
READMEgr.md | 2 +-
READMEja.md | 2 +-
READMEnl.md | 2 +-
READMEpl.md | 2 +-
READMEru.md | 2 +-
READMEsv.md | 2 +-
READMEtr.md | 2 +-
READMEuk.md | 2 +-
READMEvi.md | 97 ++++++++++++++++++++++
extension-description-store-Vietnamese.txt | 21 +++++
23 files changed, 206 insertions(+), 20 deletions(-)
create mode 100644 CONTRIBUTINGvi.md
create mode 100644 READMEvi.md
create mode 100644 extension-description-store-Vietnamese.txt
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 3ecd6b78..1e2f3f54 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-Read this in other languages: [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Read this in other languages: [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Welcome To Return YouTube Dislikes contributing guide
diff --git a/CONTRIBUTINGfr.md b/CONTRIBUTINGfr.md
index f6ee2fbd..e7eb6ce2 100644
--- a/CONTRIBUTINGfr.md
+++ b/CONTRIBUTINGfr.md
@@ -1,5 +1,5 @@
-Lisez ceci dans d'autres langues : [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Lisez ceci dans d'autres langues : [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Bienvenue dans le guide de contribution à Return YouTube Dislikes
diff --git a/CONTRIBUTINGnl.md b/CONTRIBUTINGnl.md
index 66a5aab4..3c83e7a0 100644
--- a/CONTRIBUTINGnl.md
+++ b/CONTRIBUTINGnl.md
@@ -1,4 +1,4 @@
-Lees dit in andere talen: [English](CONTRIBUTINGen.md), [русский](CONTRIBUTINGru.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Lees dit in andere talen: [English](CONTRIBUTINGen.md), [русский](CONTRIBUTINGru.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Welkom bij de YouTube Dislikes bijdragengids
diff --git a/CONTRIBUTINGpl.md b/CONTRIBUTINGpl.md
index 4ef5e54a..b84164c8 100644
--- a/CONTRIBUTINGpl.md
+++ b/CONTRIBUTINGpl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md)
+Read this in other languages: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Witamy w przewodniku współtworzenia Return YouTube Dislike
diff --git a/CONTRIBUTINGru.md b/CONTRIBUTINGru.md
index 6b1afd63..545cef29 100644
--- a/CONTRIBUTINGru.md
+++ b/CONTRIBUTINGru.md
@@ -1,4 +1,4 @@
-Прочитать на других языках: [English](CONTRIBUTING.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Прочитать на других языках: [English](CONTRIBUTING.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Добро пожаловать в руководство по внесению вклада Return YouTube Dislikes
diff --git a/CONTRIBUTINGtr.md b/CONTRIBUTINGtr.md
index c7493106..fecc5999 100644
--- a/CONTRIBUTINGtr.md
+++ b/CONTRIBUTINGtr.md
@@ -1,4 +1,4 @@
-Bunu diğer dillerde okuyun: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+Bunu diğer dillerde okuyun: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# "YouTube Dislike Sayısını Geri Getir"in katkı kılavuzuna Hoş Geldiniz
diff --git a/CONTRIBUTINGuk.md b/CONTRIBUTINGuk.md
index 26b16777..8ef4443f 100644
--- a/CONTRIBUTINGuk.md
+++ b/CONTRIBUTINGuk.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [Polski](CONTRIBUTINGpl.md)
+Read this in other languages: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [Polski](CONTRIBUTINGpl.md), [Tiếng Việt](CONTRIBUTINGvi.md)
# Вітаємо у посібнику внеску в Return YouTube Dislikes
diff --git a/CONTRIBUTINGvi.md b/CONTRIBUTINGvi.md
new file mode 100644
index 00000000..fb7e9d4c
--- /dev/null
+++ b/CONTRIBUTINGvi.md
@@ -0,0 +1,68 @@
+Đọc bằng các ngôn ngữ khác: [English](CONTRIBUTING.md), [русский](CONTRIBUTINGru.md), [Nederlands](CONTRIBUTINGnl.md), [Français](CONTRIBUTINGfr.md), [Türkçe](CONTRIBUTINGtr.md), [українська](CONTRIBUTINGuk.md), [Polski](CONTRIBUTINGpl.md)
+
+
+# Chào mừng tới Hướng dẫn Đóng góp của Return YouTube Dislike (Trả lại số lượt Không thích trên YouTube)
+
+Cảm ơn bạn đã dành thời gian để đóng góp cho dự án của chúng tôi! Tất cả các thay đổi của bạn sẽ được hiển thị trong phiên bản tiếp theo của tiện ích mở rộng này (hoặc của [trang mạng](https://www.returnyoutubedislike.com/)).
+
+## Bắt đầu
+
+Hãy dùng [Prettier](https://prettier.io/) với thiết lập mặc định để định dạng mã.
+
+#### Yêu cầu sơ bộ
+
+Bạn cần phải cài **node** và **npm** để tạo bản đóng gói của mã nguồn.
+
+Các phiên bản được dùng khi cài đặt:
+
+- node: 12.18.4
+- npm: 6.14.6
+
+Dể có thể tạo tệp `bundled-content-script.js`, trong đó có chứa hầu hết các lôgic kinh doanh của tiện ích mở rộng này, trước tiên bạn phải cài các đối tượng phụ thuộc.
+
+1. Tới thư mục gốc của kho mã nguồn và chạy lệnh:
+
+```
+npm install
+```
+
+2. Chạy lệnh dưới đây để tạo `bundled-content-script.js`, sẽ dùng tới trong `manifest.json`
+
+```
+npm start // để tạo (các) tệp xây dựng và khởi chạy một trình quan sát tập tin, đảm nhiệm việc tự động tải lại dự án khi có thay đổi được lưu
+
+// hoặc
+
+npm run build // để tạo (các) tệp xây dựng chỉ một lần
+```
+
+Chúc mừng! Bạn đã sẵn sàng để phát triển chương trình!
+
+Nếu bạn chưa bao giờ phát triển tiện ích mở rộng cho Chrome hoặc cần sự trợ giúp, hãy xem [hướng dẫn này trên YouTube](https://www.youtube.com/watch?v=mdOj6HYE3_0)
+
+### Vấn đề
+
+#### Tạo một vấn đề mới
+
+Nếu bạn có bất kì vấn đề gì với tiện ích mở rộng này, trước tiên hãy đọc qua danh sách các vấn đề đang có. Nếu vấn đề của bạn không có trong danh sách các vấn đề, hãy [tạo một vấn đề](https://github.com/Anarios/return-youtube-dislike/issues/new?assignees=&labels=bug&template=bug.yml&title=%28Bug%29%3A+). Dùng mẫu đơn vấn đề nếu có thể, nhưng không bắt buộc.
+
+#### Giải quyết một vấn đề
+
+Nếu bạn cảm thấy có thể giải quyết một vấn đề nào đó, đừng ngần ngại. Hãy tạo một [yêu cầu kéo](https://github.com/Anarios/return-youtube-dislike/pulls) cho sự thay đổi của bạn và nhớ hãy ghi tên lỗi mà bạn giải quyết.
+
+### Yêu cầu Tính năng
+
+#### Tạo một yêu cầu tính năng mới
+
+Nếu bạn có một ý tưởng dành cho tiện ích mở rộng này, hãy mạnh dạn [tạo một yêu cầu chức năng](https://github.com/Anarios/return-youtube-dislike/issues/new?assignees=&labels=enhancement&template=feature-request.yml&title=%28Feature+Request%29%3A+), nhưng hãy chắc rằng bạn đã tìm và không thấy yêu cầu tính năng y hệt trong danh sách yêu cầu tính năng. Dùng mẫu đơn yêu cầu tính năng nếu có thể, nhưng không bắt buộc.
+
+#### Thực hiện một yêu cầu tính năng
+
+Nếu bạn cảm thấy có thể thực hiện một tính năng nào đó, đừng ngần ngại. Hãy tạo một [yêu cầu kéo](https://github.com/Anarios/return-youtube-dislike/pulls) cho sự thay đổi của bạn và nhớ hãy ghi tên tính năng mà bạn thực hiện.
+
+### Những yêu cầu kéo mà chúng tôi chấp nhận?
+
+- Giải quyết vấn đề.
+- Thực hiện tính năng.
+- Sửa lỗi chính tả hoặc đề xuất cách dùng từ tốt hơn.
+- Đóng góp cho trang mạng.
diff --git a/README.md b/README.md
index c93ebd4d..703e8eb5 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Read this in other languages: [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Read this in other languages: [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
diff --git a/READMEcn.md b/READMEcn.md
index 11d4d987..af37b0db 100644
--- a/READMEcn.md
+++ b/READMEcn.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-阅读其他语言版本:[English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md)
+阅读其他语言版本:[English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEde.md b/READMEde.md
index f4ab91c2..9f28c5d8 100644
--- a/READMEde.md
+++ b/READMEde.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Lesen sie dies in anderen Sprachen: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Lesen sie dies in anderen Sprachen: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEes.md b/READMEes.md
index 5c659d0b..28adaf7c 100644
--- a/READMEes.md
+++ b/READMEes.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Leer en otros idiomas: [English](README.md), [русский](READMEru.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Leer en otros idiomas: [English](README.md), [русский](READMEru.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEfr.md b/READMEfr.md
index 4834c4e1..1d85011c 100644
--- a/READMEfr.md
+++ b/READMEfr.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](LICENSE)
-Lisez ceci dans d'autres langues : [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md),[日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Lisez ceci dans d'autres langues : [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md),[日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEgr.md b/READMEgr.md
index dbff6091..7ea6cba0 100644
--- a/READMEgr.md
+++ b/READMEgr.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Διαθέσιμο στις παρακάτω γλώσσες: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Διαθέσιμο στις παρακάτω γλώσσες: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEja.md b/READMEja.md
index ae5b1125..b83fc357 100644
--- a/READMEja.md
+++ b/READMEja.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-別の言語: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+別の言語: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEnl.md b/READMEnl.md
index 102317c8..e20d0e59 100644
--- a/READMEnl.md
+++ b/READMEnl.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Lees dit in andere talen: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Lees dit in andere talen: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEpl.md b/READMEpl.md
index e46afa25..06cb5cfb 100644
--- a/READMEpl.md
+++ b/READMEpl.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Read this in other languages: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md)
+Read this in other languages: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEru.md b/READMEru.md
index 621feb4f..71cc7e7f 100644
--- a/READMEru.md
+++ b/READMEru.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Прочитать на других языках: [English](README.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Прочитать на других языках: [English](README.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEsv.md b/READMEsv.md
index de3d96b2..a7070e0d 100644
--- a/READMEsv.md
+++ b/READMEsv.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Läs detta på andra språk: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md)
+Läs detta på andra språk: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEtr.md b/READMEtr.md
index 22241469..51c203b6 100644
--- a/READMEtr.md
+++ b/READMEtr.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![Lisans](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Bunu diğer dillerde okuyun: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Français](READMEfr.md), [Nederlands](READMEnl.md), [日本語](READMEja.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Bunu diğer dillerde okuyun: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Français](READMEfr.md), [Nederlands](READMEnl.md), [日本語](READMEja.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# YouTube Dislike Sayısını Geri Getir
diff --git a/READMEuk.md b/READMEuk.md
index 9790d3c3..ddb9004a 100644
--- a/READMEuk.md
+++ b/READMEuk.md
@@ -7,7 +7,7 @@
[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg?style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
-Read this in other languages: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+Read this in other languages: [English](README.md), [Español](READMEes.md), [русский](READMEru.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md), [Tiếng Việt](READMEvi.md)
# Return YouTube Dislike
diff --git a/READMEvi.md b/READMEvi.md
new file mode 100644
index 00000000..32170a30
--- /dev/null
+++ b/READMEvi.md
@@ -0,0 +1,97 @@
+[![Cửa hàng Chrome Trực tuyến](https://img.shields.io/chrome-web-store/stars/gebbhagfogifgggkldgodflihgfeippi?label=Đánh%20giá%20Chrome&style=flat&logo=google)](https://chrome.google.com/webstore/detail/youtube-dislike-button/gebbhagfogifgggkldgodflihgfeippi/?hl=vi)
+[![Người dùng trên Cửa hàng Chrome Trực tuyến](https://img.shields.io/chrome-web-store/users/gebbhagfogifgggkldgodflihgfeippi?label=Người%20dùng%20Chrome&style=flat&logo=google)](https://chrome.google.com/webstore/detail/youtube-dislike-button/gebbhagfogifgggkldgodflihgfeippi/?hl=vi)
+[![Đánh giá trên Mozilla](https://img.shields.io/amo/stars/return-youtube-dislikes?label=Đánh%20giá%20Firefox&style=flat&logo=firefox)](https://addons.mozilla.org/vi/firefox/addon/return-youtube-dislikes/)
+[![Lượt tải trên Mozilla](https://img.shields.io/amo/users/return-youtube-dislikes?label=Người%20dùng%20Firefox&style=flat&logo=firefox)](https://addons.mozilla.org/vi/firefox/addon/return-youtube-dislikes/)
+[![Commit rate](https://img.shields.io/github/commit-activity/m/Anarios/return-youtube-dislike?label=Commits&style=flat)](https://github.com/Anarios/return-youtube-dislike/commits/main)
+[![Issues](https://img.shields.io/github/issues/Anarios/return-youtube-dislike?style=flat&label=Issues)](https://github.com/Anarios/return-youtube-dislike/issues)
+[![Discord](https://img.shields.io/discord/909435648170160229?label=Discord&style=flat&logo=discord)](https://discord.gg/UMxyMmCgfF)
+[![Giấy phép](https://img.shields.io/badge/License-GPLv3-blue.svg?label=Giấy%20phép&style=flat)](https://github.com/Anarios/return-youtube-dislike/blob/main/LICENSE)
+
+
+Đọc bằng các ngôn ngữ khác: [English](README.md), [русский](READMEru.md), [Español](READMEes.md), [Nederlands](READMEnl.md), [Français](READMEfr.md), [日本語](READMEja.md), [Türkçe](READMEtr.md), [українська](READMEuk.md), [Deutsch](READMEde.md), [Ελληνικά](READMEgr.md), [Svenska](READMEsv.md), [中文](READMEcn.md), [Polski](READMEpl.md)
+
+
+
+# Return YouTube Dislike (Trả lại số lượt Không thích trên YouTube)
+
+
+ Return YouTube Dislike (Trả lại số lượt Không thích trên YouTube) là một tiện ích mở rộng mã nguồn mở nhằm phục hồi số lượt "không thích" trên YouTube.
+ Tiện ích mở rộng dành cho Chrome và Firefox.
+ Cũng có thể dùng như một JS Userscript (Tập lệnh người dùng JS) trong các trình duyệt khác.
+
+
+
+## Căn nguyên
+
+Vào ngày 10 tháng 11 năm 2021, Google [thông báo](https://blog.youtube/news-and-events/update-to-youtube/) về việc loại bỏ số lượt "không thích" trên YouTube.
+
+Thêm vào đó, vào ngày 13 tháng 12 năm 2021, Google [loại bỏ](https://support.google.com/youtube/thread/134791097/update-to-youtube-dislike-counts) trường `dislike` trong API của YouTube, do đó tước mất khả năng đánh giá chất lượng nội dung vi-đê-ô trước khi xem của người dùng.
+
+## Cách thức hoạt động
+
+Với việc số liệu thống kê "không thích" bị loại bỏ khỏi API của YouTube, đầu sau của chúng tôi chuyển sang sử dụng kết hợp số liệu "không thích" thu thập được và ước tính ngoại suy từ dữ liệu người dùng của tiện ích.
+
+[Câu Hỏi Thường Gặp](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/FAQvn.md)
+
+## Tại sao số lượt Không thích lại quan trọng
+
+Bạn có thể tìm hiểu thêm tại trang mạng: [returnyoutubedislike.com](https://www.returnyoutubedislike.com/)
+
+## Tài liệu API
+
+Bên thứ ba được phép sử dụng API mở này, với các hạn chế sau:
+
+- **Ghi công**: Phải ghi công dự án này rõ ràng bằng đường dẫn [returnyoutubedislike.com](https://returnyoutubedislike.com/).
+- **Giới hạn Truy vấn**: Giới hạn truy vấn cho mỗi khách là 100 lần mỗi phút và 10.000 lần mỗi ngày. Mã trạng thái _429_ "Quá Nhiều Yêu cầu" sẽ được trả về khi khách đạt tới giới hạn trên.
+
+API có thể được truy cập với đường dẫn cơ sở sau:
+https://returnyoutubedislikeapi.com
+
+Danh sách các vĩ tố được liệt kê ở đây:
+https://returnyoutubedislikeapi.com/swagger/index.html
+
+### Truy vấn đánh giá
+
+Ví dụ cách truy vấn đánh giá với một ID của một vi-đê-ô trên YouTube:
+`<Đường dẫn cơ sở>/votes?videoId=kxOuG8jMIgI`
+
+```json
+{
+ "id": "kxOuG8jMIgI",
+ "dateCreated": "2021-12-20T12:25:54.418014Z",
+ "likes": 27326,
+ "dislikes": 498153,
+ "rating": 1.212014408444885,
+ "viewCount": 3149885,
+ "deleted": false
+}
+```
+
+Trong trường hợp ID không tồn tại, mã trạng thái _404_ "Không Tìm thấy" sẽ được trả về.
+Trong trường hợp ID có định dạng không hợp lệ, mã trạng thái _400_ "Yêu cầu Không hợp lệ" sẽ được trả về.
+
+
+
+## Đóng góp
+
+Vui lòng đọc [hướng dẫn đóng góp](https://github.com/Anarios/return-youtube-dislike/blob/main/CONTRIBUTINGvn.md).
+
+## Hỗ trợ dự án!
+
+Bạn có thể hỗ trợ dự án này bằng cách quyên góp cho chúng tôi theo đường dẫn bên dưới:
+
+[Quyên góp](https://returnyoutubedislike.com/donate)
+
+## Tài trợ
+
+[Piepacker](https://piepacker.com)
+
+[Seed4.Me VPN](https://www.seed4.me/users/register?gift=ReturnYoutubeDislike)
+
+[PocketTube](https://yousub.info/?utm_source=returnyoutubedislike)
+
+[Trở thành nhà tài trợ](https://www.patreon.com/join/returnyoutubedislike/checkout?rid=8008601)
diff --git a/extension-description-store-Vietnamese.txt b/extension-description-store-Vietnamese.txt
new file mode 100644
index 00000000..95a345f4
--- /dev/null
+++ b/extension-description-store-Vietnamese.txt
@@ -0,0 +1,21 @@
+Return YouTube Dislike (Trả lại số lượt Không thích trên YouTube) là một tiện ích mở rộng nhằm khôi phục chức năng hiển thị số lượt "không thích" trên YouTube.
+
+Nếu tiện ích này không hoạt động: Mở thẻ Tiện ích (chrome://extensions/), tắt tiện ích này và bật lại.
+Chromium có một lỗi có thể phá hỏng tiện ích này trong một số trường hợp. Cách làm nêu trên có thể giải quyết hầu hết các vấn đề do lỗi này gây ra. Hi vọng rằng nhóm phát triển Chromium sẽ sớm khắc phục lỗi này.
+
+Kể từ ngày 13 tháng 12 năm 2021, YouTube đã loại bỏ chức năng hiển thị số lượt "không thích" khỏi API của họ.
+Tiện ích mở rộng này nhằm mục đích phục hồi quyền lợi của người dùng bằng việc hiển thị số lượt đánh giá một cách chính xác nhất, nhờ vào việc kết hợp dữ liệu về số lượt "thích" và "không thích" đã được lưu trữ với số lượt "thích" và "không thích" từ người dùng của tiện ích.
+
+Tiện ích này hiện có dữ liệu được lưu trữ trước ngày 13 tháng 12 năm 2021 về số lượt "thích" và "không thích" của hơn 200 triệu vi-đê-ô.
+
+Tiện ích này đang được phát triển tích cực và duy trì cập nhật đối với các đăng tải sau ngày 13 tháng 12 năm 2021.
+
+Tiện ích này càng có nhiều người sử dụng, thì độ chính xác sẽ càng cao.
+
+Với những vi-đê-ô được đăng tải sau ngày 13 tháng 12 năm 2021, dữ liệu của những vi-đê-ô không phổ biến có thể kém chính xác so với dữ liệu của những vi-đê-ô phổ biến.
+
+Tiện ích này hiện đang được phát triển tích cực, vì vậy vui lòng báo cáo bất kì vấn đề nào bạn gặp phải bằng trang GitHub hoặc máy chủ Discord.
+
+Nhiều tính năng sắp được bổ sung!
+
+https://github.com/Anarios/return-youtube-dislike
From 4ea103c7450d13b8200875ec086038e22375d2fc Mon Sep 17 00:00:00 2001
From: Khang <42975512+khangquangtran@users.noreply.github.com>
Date: Sat, 2 Dec 2023 16:41:35 -0600
Subject: [PATCH 3/5] Added Vietnamese translation.
Added Vietnamese translation for website.
Fixed typo.
Changed word used in Vietnamese translation.
---
READMEvi.md | 2 +-
Website/README.md | 2 +-
Website/READMEnl.md | 2 +-
Website/READMEtr.md | 2 +-
Website/READMEvi.md | 89 +++++++++++++++++++++++++++
Website/_locales/vi.ts | 119 ++++++++++++++++++++++++++++++++++++
Website/layouts/default.vue | 1 +
Website/nuxt.config.js | 3 +-
Website/pages/links.vue | 4 ++
Website/store/README.md | 2 +-
Website/store/READMEnl.md | 2 +-
Website/store/READMEtr.md | 2 +-
Website/store/READMEvi.md | 12 ++++
13 files changed, 234 insertions(+), 8 deletions(-)
create mode 100644 Website/READMEvi.md
create mode 100644 Website/_locales/vi.ts
create mode 100644 Website/store/READMEvi.md
diff --git a/READMEvi.md b/READMEvi.md
index 32170a30..a9ef4e96 100644
--- a/READMEvi.md
+++ b/READMEvi.md
@@ -47,7 +47,7 @@ Bên thứ ba được phép sử dụng API mở này, với các hạn chế s
API có thể được truy cập với đường dẫn cơ sở sau:
https://returnyoutubedislikeapi.com
-Danh sách các vĩ tố được liệt kê ở đây:
+Danh sách các hậu tố được liệt kê ở đây:
https://returnyoutubedislikeapi.com/swagger/index.html
### Truy vấn đánh giá
diff --git a/Website/README.md b/Website/README.md
index abd5c2b5..af6c481c 100644
--- a/Website/README.md
+++ b/Website/README.md
@@ -1,4 +1,4 @@
-Read this in other languages: [Nederlands](READMEnl.md), [Türkçe](READMEtr.md)
+Read this in other languages: [Nederlands](READMEnl.md), [Türkçe](READMEtr.md), [Tiếng Việt](READMEvi.md)
# return-youtube-dislike-site
diff --git a/Website/READMEnl.md b/Website/READMEnl.md
index ceaeb0f3..7700c88a 100644
--- a/Website/READMEnl.md
+++ b/Website/READMEnl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](README.md), [Türkçe](READMEtr.md)
+Read this in other languages: [English](README.md), [Türkçe](READMEtr.md), [Tiếng Việt](READMEvi.md)
# return-youtube-dislike-site
diff --git a/Website/READMEtr.md b/Website/READMEtr.md
index 06d0bbcb..d6f0a7d0 100644
--- a/Website/READMEtr.md
+++ b/Website/READMEtr.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](README.md), [Nederlands](READMEnl.md)
+Read this in other languages: [English](README.md), [Nederlands](READMEnl.md), [Tiếng Việt](READMEvi.md)
# youtube-dislike-sayısını-geri-getir-site
diff --git a/Website/READMEvi.md b/Website/READMEvi.md
new file mode 100644
index 00000000..95fb2e6f
--- /dev/null
+++ b/Website/READMEvi.md
@@ -0,0 +1,89 @@
+Đọc bằng các ngôn ngữ khác: [English](README.md), [Nederlands](READMEnl.md), [Türkçe](READMEtr.md)
+
+# return-youtube-dislike-site
+
+## Thiết lập Xây dựng
+
+```bash
+# cài đặt các đối tượng phụ thuộc
+$ npm install
+
+# chạy với tự động tải lại tại localhost:3000
+$ npm run dev
+
+# chạy lint với những thay đổi của bạn
+$ npm run lint
+
+# xây dựng ra thành phẩm và khởi động máy chủ
+$ npm run build
+$ npm run start
+
+# tạo dự án tĩnh
+$ npm run generate
+```
+
+Để biết thêm thông tin chi tiết về cách mọi thứ hoạt động, hãy xem [tài liệu](https://nuxtjs.org).
+
+## Cài đặt VSCode được khuyến nghị
+
+- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) `ext install dbaeumer.vscode-eslint`
+- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) `ext install esbenp.prettier-vscode`
+- [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur)
+
+> `Ctrl(Cmd)` + `Shift` + `P` > Mở Thiết lập Mặc định (JSON)
+
+```
+"editor.formatOnSave": true,
+"editor.codeActionsOnSave": {
+ "source.fixAll.eslint": true
+}
+"vetur.validation.template": false,
+```
+
+## Các Thư mục Đặc biệt
+
+Bạn có thể tạo các thư mục thêm dưới đây, một vài thư mục trong số đó có chức năng đặc biệt. Chỉ thư mục `pages` là bắt buộc; bạn có thể xóa các thư mục còn lại nếu bạn không muốn sử dụng chức năng của chúng.
+
+### `assets`
+
+Thư mục assets chứa các tệp tài nguyên không được biên dịch như các tệp Stylus và Sass, hình ảnh, hoặc phông chữ.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/assets).
+
+### `components`
+
+Thư mục components chứa các thành phần Vue.js. Các thành phần này tạo nên các phần của trang và có thể được tái sử dụng và được nhập vào các trang, bố cục và kể cả thành phần khác.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/components).
+
+### `layouts`
+
+Bố cục rất hữu dụng khi bạn cần thay đổi giao diện của ứng dụng Nuxt, ví dụ như thêm thanh bên hay tạo bố cục riêng biệt cho thiết bị di động và máy tính để bàn.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/layouts).
+
+### `pages`
+
+Thư mục này chứa các giao diện và tuyến ứng dụng. Nuxt sẽ đọc tất cả tệp có dạng `*.vue` trong thư mục này và tự động thiết lập Bộ định tuyến Vue.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/get-started/routing).
+
+### `plugins`
+
+Thư mục này chứa các trình bổ trợ JavaScript được dùng để chạy trước khi khởi tạo ứng dụng Vue.js gốc. Đây là nơi để thêm các trình bổ trợ Vue và các hàm hoặc hằng số. Mỗi khi bạn muốn dùng hàm `Vue.use()`, bạn cần tạo một tệp trong thư mục `plugins/` và thêm đường dẫn tới trình bổ trợ này vào trong tệp `nuxt.config.js`.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/plugins).
+
+### `static`
+
+Thư mục này chứa các tệp tĩnh của bạn. Mỗi tệp trong thư mục này sẽ được gán đường dẫn `/`.
+
+Ví dụ: `/static/robots.txt` được gán thành `/robots.txt`.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/static).
+
+### `store`
+
+Thư mục này chứa các tệp Vuex store. Tạo một tệp trong thư mục này sẽ tự động kích hoạt Vuex.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/docs/2.x/directory-structure/store).
diff --git a/Website/_locales/vi.ts b/Website/_locales/vi.ts
new file mode 100644
index 00000000..81e549ec
--- /dev/null
+++ b/Website/_locales/vi.ts
@@ -0,0 +1,119 @@
+import { vi } from "vuetify/src/locale";
+
+export default {
+ ...vi,
+ home: {
+ name: "Trang Chủ",
+ title: "Return YouTube Dislike",
+ subtitle: 'Tiện ích mở rộng cho trình duyệt và API hiển thị số lượt "Không thích" trên YouTube',
+ ukraine: "Ủng hộ U-crai-na",
+ sponsors: "Tài trợ",
+ },
+ install: {
+ name: "Cài Đặt",
+ title: "Chọn Nền tảng",
+ subtitle: "Tương thích với trình duyệt Firefox và tất cả các trình duyệt Chromium",
+ title2: "Nền tảng Khác",
+ subtitle2: "Nếu trình duyệt của bạn chưa được hỗ trợ, hãy thử dùng Tập lệnh Người dùng",
+ title3: "Thực hiện bởi Bên Thứ ba",
+ subtitle3: "Nhóm phát triển không chịu trách nhiệm cho bất kì rủi ro nào bạn gặp phải khi sử dụng",
+ },
+ api: {
+ name: "API",
+ title: "Chào mừng tới tài liệu RYD chính thức!",
+ subtitle: "Để bắt đầu, hãy chọn một mục trong danh sách.",
+ rights: {
+ title: "Quyền Sử dụng",
+ subtitle:
+ "Bên thứ ba được phép sử dụng API mở này, với các hạn chế sau:",
+ bullet1: "Ghi công: ",
+ bullet1text:
+ "Phải ghi công dự án này rõ ràng bằng đường dẫn tới kho mã nguồn hoặc đường dẫn tới trang returnyoutubedislike.com",
+ bullet2: "Giới hạn Truy vấn: ",
+ bullet2text:
+ 'Giới hạn truy vấn cho mỗi khách là 100 lần mỗi phút và 10.000 lần mỗi ngày. Mã trạng thái 429 "Quá Nhiều Yêu cầu" sẽ được trả về khi khách đạt tới giới hạn trên.',
+ },
+ url: {
+ title: "Thông tin Đường dẫn",
+ subtitle: "API có thể được truy cập với đường dẫn cơ sở sau: ",
+ },
+ endpoints: {
+ title: "Các Hậu tố",
+ subtitle: "Danh sách các hậu tố được liệt kê ở đây: ",
+ },
+ fetching: {
+ title: "Hướng dẫn Truy vấn Cơ bản",
+ subtitle: "Ví dụ cách truy vấn đánh giá với một ID của một vi-đê-ô trên YouTube: ",
+ title2: "Truy vấn Ví dụ: ",
+ url: "Đường dẫn Truy vấn: ",
+ method: "Phương thức Truy vấn: ",
+ headers: "Phần đầu: ",
+ response: "Phản hồi: ",
+ error1: 'Nếu ID không tồn tại, mã trạng thái 404 "Không Tìm thấy" sẽ được trả về"',
+ error2:
+ 'Nếu ID có định dạng không hợp lệ, mã trạng thái 400 "Yêu cầu Không hợp lệ" sẽ được trả về',
+ },
+ },
+ help: {
+ name: "Trợ Giúp",
+ title: "Khắc phục Sự cố",
+ bullet1: "Hãy kiểm tra phiên bản của tiện ích mở rộng. Phiên bản mới nhất là: ",
+ bullet11: "",
+ bullet2:
+ "Thử gỡ bỏ và cài lại tiện ích mở rộng, rồi tắt và mở lại trình duyệt (tắt toàn bộ cửa sổ của trình duyệt, không phải tắt chỉ một thẻ)",
+ bullet3: "Kiểm tra xem bạn có truy cập theo đường dẫn này được không: ",
+ bullet31: "và nếu truy cập được, kiểm tra xem bạn có thấy đoạn văn bản thô tương tự đoạn văn bản dưới đây hay không: ",
+ bullet4: "Nếu các bước trên không khắc phục được sự cố, hãy gửi báo cáo sự cố của bạn tới kênh",
+ bullet41: "trên",
+ bullet4a: "Cung cấp thông tin Hệ điều hành, Tên Trình duyệt và Phiên bản Trình duyệt (xem thông tin bên dưới)",
+ bullet4b:
+ "Tại trang có sự cố (ví dụ như trang phát vi-đê-ô trên YouTube), mở bảng điều khiển (nhấn nút ",
+ bullet4b1: ") và chụp màn hình. Xem hình ví dụ ở bên dưới.",
+ bullet4c:
+ "Mở trang quản lí tiện ích mở rộng trong trình duyệt mà bạn cài tiện ích mở rộng này.",
+ bullet4c1: "Để mở trang quản lí tiện ích, nhập nội dung sau vào thanh địa chỉ: ",
+ firefox: "đối với trình duyệt Firefox",
+ chrome: "đối với các trình duyệt Chrome, Edge, Brave, Opera, và Vivaldi",
+ },
+ faq: {
+ name: "Hỏi-Đáp",
+ title: "Câu hỏi Thường gặp",
+ subtitle: "Bạn vẫn còn điều gì cần giải đáp? Hãy tham gia Discord của chúng tôi!",
+ bullet1: "Tiện ích mở rộng này lấy dữ liệu từ đâu?",
+ bullet1text:
+ 'Dữ liệu của tiện ích này bao gồm dữ liệu được lưu trữ trước khi YouTube loại bỏ số lượt "không thích" khỏi API chính thức và các ước tính ngoại suy từ hành vi của người dùng.',
+ bullet2: 'Tại sao số lượt "không thích" không được cập nhật?',
+ bullet2text:
+ 'Hiện tại, số lượt "không thích" được lưu vào cơ sở dữ liệu và số lượt được hiển thị không được cập nhật liên tục. Việc cập nhật số lượt được hiển thị tùy thuộc vào độ phổ biến của vi-đê-ô, có thể mất vài giờ tới vài ngày để cập nhật.',
+ bullet3: "Cách thức hoạt đọng của tiện ích mở rộng này?",
+ bullet3text:
+ 'Tiện ích này thu thập ID của vi-đê-ô mà bạn xem, rồi sử dụng API của chúng tôi để truy vấn số lượt "không thích" (cùng với các thông tin khác như lượt xem, số lượt "thích", v.v.). Sau đó, tiện ích sẽ hiển thị số lượt "không thích" và tỉ lệ "thích"/"không thích". Nếu bạn đánh giá "thích" hay "không thích" một vi-đê-ô, đánh giá này sẽ được ghi lại và gửi vào cơ sở dữ liệu, nhờ đó số lượt "không thích" có thể được ngoại suy chính xác.',
+ bullet4: 'Tôi có thể chia sẻ số lượt "không thích" của mình cho nhóm phát triển không?',
+ bullet4text:
+ 'Tính năng này sẽ sớm có. Chúng tôi đang tìm hiểu cách dùng Oauth hay API chỉ-đọc với phạm vi giới hạn để các nhà sáng tạo nội dung có thể chia sẻ lượt "không thích" của mình.',
+ bullet5: "Dữ liệu nào được tiện ích này thu thập và dữ liệu này được dùng ra sao?",
+ bullet5text:
+ 'Tiện ích này chỉ thu thập dữ liệu cần thiết để hoạt động chính xác, bao gồm địa chỉ IP và ID của vi-đê-ô mà bạn xem. Dữ liệu của bạn không bị bán cho bên thứ ba. Nếu bạn muốn biết thêm về cách chúng tôi đảm bảo tính bảo mật và quyền riêng tư, vui lòng tham khảo những câu hỏi thường gặp về bảo mật.',
+ bullet6: "API/Đầu sau hoạt động ra sao?",
+ bullet6text:
+ 'Đầu cuối sử dụng dữ liệu được lưu trữ từ thời API của YoutTube vẫn còn cung cấp số lượt "không thích", số lượt "thích"/"không thích" từ người dùng và ước tính ngoại suy. Trong tương lai gần, tiện ích sẽ cho phép các nhà sáng tạo nội dung gửi số lượt "không thích" về cho nhóm phát triển một cách dễ dàng và bảo mật và chúng tôi cũng sẽ gộp dữ liệu của ArchiveTeam (4,56 triệu vi-đê-ô) vào cơ sở dữ liệu của chúng tôi. Bạn có thể xem vi-đê-ô về chủ đề này để biết thêm thông tin.',
+ bullet7: "Tại sao nút \"Không thích\" hiện nội dung 'Chủ kênh đã Tắt Đánh giá'?",
+ bullet7text:
+ "Đôi khi vi-đê-ô mới được đăng tải sẽ hiển thị nút đánh giá với nội dung 'Chủ kênh đã Tắt Đánh giá' mặc dù chủ kênh không hề tắt chức năng đánh giá. Việc này là do cách thức mà tiện ích này xác định việc tắt đánh giá. Tình trạng này có thể sẽ biến mất sau vài giờ hoặc sau khi bạn đánh giá \"thích\" hay \"không thích\" vi-đê-ô này kèm theo việc tải lại trang.",
+ },
+ donate: {
+ name: "Quyên Góp",
+ subtitle:
+ "Bằng cách quyên góp, bạn có thể hỗ trợ nỗ lực của chúng tôi trong việc giữ cho Internet được miễn phí!",
+ },
+ links: {
+ name: "Đường Dẫn",
+ title: "Các Đường dẫn của Dự án",
+ subtitle: "Đường dẫn tới dự án và nhóm phát triển",
+ contact: "Thông tin Liên lạc",
+ translators: "Người dịch",
+ coolProjects: "Các Dự án Thú vị",
+ sponsorBlockDescription: "Lướt qua quảng cáo được chèn trong nội dung vi-đê-ô",
+ filmotDescription: "Tìm vi-đê-ô YouTube bằng phụ đề",
+ },
+};
diff --git a/Website/layouts/default.vue b/Website/layouts/default.vue
index 1fb3518c..cccdb8be 100644
--- a/Website/layouts/default.vue
+++ b/Website/layouts/default.vue
@@ -110,6 +110,7 @@ export default {
{ name: "Українська", locale: "uk" },
{ name: "한국어", locale: "ko" },
{ name: "Polski", locale: "pl"},
+ { name: "Tiếng Việt", locale: "vi"},
],
alert: {
show: false,
diff --git a/Website/nuxt.config.js b/Website/nuxt.config.js
index b4013236..6e9b7b51 100644
--- a/Website/nuxt.config.js
+++ b/Website/nuxt.config.js
@@ -8,6 +8,7 @@ import fr from "./_locales/fr";
import uk from "./_locales/uk";
import ko from "./_locales/ko";
import pl from "./_locales/pl";
+import vi from "./_locales/vi";
// import de from "./_locales/de";
// ...
export default {
@@ -53,7 +54,7 @@ export default {
// Vuetify module configuration: https://go.nuxtjs.dev/config-vuetify
vuetify: {
lang: {
- locales: { en, es, tr, ru, cs, ja, fr, uk, ko, pl /* de, ...*/ },
+ locales: { en, es, tr, ru, cs, ja, fr, uk, ko, pl, vi /* de, ...*/ },
current: "en",
},
theme: {
diff --git a/Website/pages/links.vue b/Website/pages/links.vue
index d0d4c34e..97169303 100644
--- a/Website/pages/links.vue
+++ b/Website/pages/links.vue
@@ -120,6 +120,10 @@ export default {
{
tag: "itsbudyn#6502",
lang: "Polski",
+ },
+ {
+ tag: "khangquangtran",
+ lang: "Tiếng Việt",
}
],
coolProjects: [
diff --git a/Website/store/README.md b/Website/store/README.md
index 2cc89d1e..08e712d0 100644
--- a/Website/store/README.md
+++ b/Website/store/README.md
@@ -1,4 +1,4 @@
-Read this in other languages: [Nederlands](READMEnl.md), [Türkçe](READMEtr.md)
+Read this in other languages: [Nederlands](READMEnl.md), [Türkçe](READMEtr.md), [Tiếng Việt](READMEvi.md)
# STORE
diff --git a/Website/store/READMEnl.md b/Website/store/READMEnl.md
index 3006a01f..80ef1a24 100644
--- a/Website/store/READMEnl.md
+++ b/Website/store/READMEnl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](READMEen.md), [Türkçe](READMEtr.md)
+Read this in other languages: [English](README.md), [Türkçe](READMEtr.md), [Tiếng Việt](READMEvi.md)
# OPSLAAN
diff --git a/Website/store/READMEtr.md b/Website/store/READMEtr.md
index 24128db1..2b189661 100644
--- a/Website/store/READMEtr.md
+++ b/Website/store/READMEtr.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](README.md), [Nederlands](READMEnl.md)
+Read this in other languages: [English](README.md), [Nederlands](READMEnl.md), [Tiếng Việt](READMEvi.md)
# MAĞAZA
diff --git a/Website/store/READMEvi.md b/Website/store/READMEvi.md
new file mode 100644
index 00000000..f7aa3cbd
--- /dev/null
+++ b/Website/store/READMEvi.md
@@ -0,0 +1,12 @@
+Đọc bằng các ngôn ngữ khác: [English](README.md), [Nederlands](READMEnl.md), [Türkçe](READMEtr.md), [Tiếng Việt](READMEvi.md)
+
+# STORE
+
+**Thư mục này không bắt buộc có. Bạn có thể xóa thư mục này nếu bạn không muốn dùng tới.**
+
+Thư mục này chứa các tệp Vuex Store.
+Tùy chọn Vuex Store được thực hiện trong khung Nuxt.js.
+
+Tạo một tệp trong thư mục này sẽ tự động kích hoạt tùy chọn này trong khung.
+
+Thông tin về cách dùng thư mục này trong [tài liệu](https://nuxtjs.org/guide/vuex-store).
From 3ff6ce1209eb813b41c77459d5f9b63b37a9b5de Mon Sep 17 00:00:00 2001
From: Khang <42975512+khangquangtran@users.noreply.github.com>
Date: Sat, 2 Dec 2023 16:55:35 -0600
Subject: [PATCH 4/5] Added Vietnamese translation.
Added Vietnamese translation for extension.
---
Extensions/combined/_locales/vi/messages.json | 134 ++++++++++++++++++
1 file changed, 134 insertions(+)
create mode 100644 Extensions/combined/_locales/vi/messages.json
diff --git a/Extensions/combined/_locales/vi/messages.json b/Extensions/combined/_locales/vi/messages.json
new file mode 100644
index 00000000..398c9708
--- /dev/null
+++ b/Extensions/combined/_locales/vi/messages.json
@@ -0,0 +1,134 @@
+{
+ "extensionName": {
+ "message": "Return YouTube Dislike"
+ },
+ "extensionNameBeta": {
+ "message": "Return YouTube Dislike Beta"
+ },
+ "extensionDesc": {
+ "message": "Phục hồi chức năng hiển thị số lượt \"không thích\""
+ },
+ "textDeveloper": {
+ "message": "bởi Dmitry Selivanov và Cộng đồng"
+ },
+ "linkWebsite": {
+ "message": "Trang mạng"
+ },
+ "linkFAQ": {
+ "message": "Hỏi-Đáp"
+ },
+ "linkDonate": {
+ "message": "Quyên góp"
+ },
+ "linkHelp": {
+ "message": "Trợ giúp"
+ },
+ "linkChangelog": {
+ "message": "Ghi chép Thay đổi"
+ },
+ "legendSettings": {
+ "message": "Cài đặt"
+ },
+ "textSettings": {
+ "message": "Tắt chức năng gửi đánh giá"
+ },
+ "textLikesDisabled": {
+ "message": "Chủ kênh đã Tắt Đánh giá"
+ },
+ "textSettingsHover": {
+ "message": "Ngừng đếm đánh giá của tôi."
+ },
+ "textRoundingNumbers": {
+ "message": "Làm tròn số lượt đánh giá (hành vi mặc định của YouTube)"
+ },
+ "textRoundingNumbersHover": {
+ "message": "Hiện số lượt đánh giá đã làm tròn."
+ },
+ "textConsistentFormat": {
+ "message": "Đồng bộ định dạng đánh giá \"thích\" và \"không thích\""
+ },
+ "textConsistentFormatHover": {
+ "message": "Định dạng lại số lượt đánh giá."
+ },
+ "textNumberFormat": {
+ "message": "Định dạng số:"
+ },
+ "textColorizeRatioBar": {
+ "message": "Tô màu thanh tỉ lệ đánh giá"
+ },
+ "textColorizeRatioBarHover": {
+ "message": "Dùng màu tùy chọn cho thanh tỉ lệ đánh giá."
+ },
+ "textColorizeThumbs": {
+ "message": "Tô màu nút đánh giá"
+ },
+ "textColorizeThumbsHover": {
+ "message": "Dùng màu tùy chọn cho nút đánh giá."
+ },
+ "textColorTheme": {
+ "message": "Chủ đề màu:"
+ },
+ "textColorTheme1": {
+ "message": "Cổ điển"
+ },
+ "textColorTheme2": {
+ "message": "Mù màu"
+ },
+ "textColorTheme3": {
+ "message": "Sáng chói"
+ },
+ "textTempUnavailable": {
+ "message": "Tạm thời Không sử dụng được"
+ },
+ "textUpdate": {
+ "message": "Cập nhật"
+ },
+ "version30installed": {
+ "message": "Đã cài Phiên bản 3.0.0.13"
+ },
+ "whatsnew": {
+ "message": "Điểm Mới"
+ },
+ "shortsSupport": {
+ "message": "Có hỗ trợ YouTube Shorts"
+ },
+ "customColors": {
+ "message": "Màu tùy chọn cho nút đánh giá và thanh tỉ lệ đánh giá"
+ },
+ "customNumberFormats": {
+ "message": "Định dạng số tùy chỉnh"
+ },
+ "considerDonating": {
+ "message": "Sự quyên góp của bạn giúp tiện ích mở rộng này duy trì hoạt động. Mong bạn hỗ trợ dự án này."
+ },
+ "roundNumbers": {
+ "message": "Hiện số lượt đánh giá đã làm tròn"
+ },
+ "roundNumbersHover": {
+ "message": "Làm tròn số lượt đánh giá (hành vi mặc định của YouTube)."
+ },
+ "reformatLikes": {
+ "message": "Định dạng lại số lượt đánh giá"
+ },
+ "reformatLikesHover": {
+ "message": "Đồng bộ định dạng đánh giá \"thích\" và \"không thích\"."
+ },
+ "numberFormat": {
+ "message": "Định dạng số:"
+ },
+ "colorizeRatio": {
+ "message": "Tô màu thanh tỉ lệ đánh giá"
+ },
+ "colorizeRatioHover": {
+ "message": "Dùng màu tùy chọn cho thanh tỉ lệ đánh giá."
+ },
+ "colorizeThumbs": {
+ "message": "Tô màu nút đánh giá"
+ },
+ "colorizeThumbsHover": {
+ "message": "Dùng màu tùy chọn cho nút đánh giá."
+ },
+ "colorTheme": {
+ "message": "Chủ đề màu:"
+ }
+}
From f78bd7708afeba7095b01497cbc282e69d3be88a Mon Sep 17 00:00:00 2001
From: Khang <42975512+khangquangtran@users.noreply.github.com>
Date: Sat, 2 Dec 2023 23:23:37 -0600
Subject: [PATCH 5/5] Added Vietnamese translation.
Added Vietnamese Docs/readme translation.
Added links to the Vietnamese Docs/readme in the other Docs/readme translations.
Added Vietnamese Privacy Policy translation.
Added Vietnamese FAQ translation.
Added links to the Vietnamese FAQ in the other FAQ translations.
Added Vietnamese SECURITY-FAQ translation.
Added links to the Vietnamese FAQ in the other SECURITY-FAQ translations.
Added placeholder for Vietnamese Guide__Installing translation.
Added placeholder for Vietnamese Guide__Troubleshooting translation.
Fixed typos.
---
Docs/FAQ.md | 2 +-
Docs/FAQfr.md | 2 +-
Docs/FAQnl.md | 2 +-
Docs/FAQpl.md | 2 +-
Docs/FAQru.md | 2 +-
Docs/FAQtr.md | 2 +-
Docs/FAQuk.md | 2 +-
Docs/FAQvi.md | 62 ++++++
Docs/Guide__Installingvi.md | 320 +++++++++++++++++++++++++++++++
Docs/Guide__Troubleshootingvi.md | 184 ++++++++++++++++++
Docs/Privacy Policy | 2 +-
Docs/Privacy Policyvi | 7 +
Docs/SECURITY-FAQ.md | 2 +-
Docs/SECURITY-FAQfr.md | 2 +-
Docs/SECURITY-FAQnl.md | 2 +-
Docs/SECURITY-FAQpl.md | 2 +-
Docs/SECURITY-FAQru.md | 2 +-
Docs/SECURITY-FAQtr.md | 2 +-
Docs/SECURITY-FAQuk.md | 2 +-
Docs/SECURITY-FAQvi.md | 32 ++++
Docs/readme.md | 2 +-
Docs/readmefr.md | 2 +-
Docs/readmenl.md | 2 +-
Docs/readmetr.md | 2 +-
Docs/readmevi.md | 39 ++++
Website/_locales/vi.ts | 2 +-
26 files changed, 664 insertions(+), 20 deletions(-)
create mode 100644 Docs/FAQvi.md
create mode 100644 Docs/Guide__Installingvi.md
create mode 100644 Docs/Guide__Troubleshootingvi.md
create mode 100644 Docs/Privacy Policyvi
create mode 100644 Docs/SECURITY-FAQvi.md
create mode 100644 Docs/readmevi.md
diff --git a/Docs/FAQ.md b/Docs/FAQ.md
index ade89bed..a9270a3b 100644
--- a/Docs/FAQ.md
+++ b/Docs/FAQ.md
@@ -1,4 +1,4 @@
-Read this in other languages: [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+Read this in other languages: [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Tiếng Việt](FAQvi.md)
# Frequently Asked Questions
diff --git a/Docs/FAQfr.md b/Docs/FAQfr.md
index 131858cb..b7d8f31e 100644
--- a/Docs/FAQfr.md
+++ b/Docs/FAQfr.md
@@ -1,4 +1,4 @@
-Lisez ceci dans d'autres langues : [English](FAQ.md), [русский](FAQru.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+Lisez ceci dans d'autres langues : [English](FAQ.md), [русский](FAQru.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Tiếng Việt](FAQvi.md)
# Foire Aux Questions
diff --git a/Docs/FAQnl.md b/Docs/FAQnl.md
index e8f3052d..779f950a 100644
--- a/Docs/FAQnl.md
+++ b/Docs/FAQnl.md
@@ -1,4 +1,4 @@
-Lees dit in andere talen: [Engels](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+Lees dit in andere talen: [Engels](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Tiếng Việt](FAQvi.md)
# Veel Gestelde Vragen
diff --git a/Docs/FAQpl.md b/Docs/FAQpl.md
index e9482623..76696cce 100644
--- a/Docs/FAQpl.md
+++ b/Docs/FAQpl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md)
+Read this in other languages: [English](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Tiếng Việt](FAQvi.md)
# Często zadawane pytania
diff --git a/Docs/FAQru.md b/Docs/FAQru.md
index 422ca9d8..d7bcf44b 100644
--- a/Docs/FAQru.md
+++ b/Docs/FAQru.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](FAQ.md), [Nederlands](FAQnl.md), Français](FAQfr.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+Read this in other languages: [English](FAQ.md), [Nederlands](FAQnl.md), Français](FAQfr.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Tiếng Việt](FAQvi.md)
# Часто задаваемые вопросы
diff --git a/Docs/FAQtr.md b/Docs/FAQtr.md
index f731a981..d5275b2a 100644
--- a/Docs/FAQtr.md
+++ b/Docs/FAQtr.md
@@ -1,4 +1,4 @@
-Bunu diğer dillerde okuyun: [English](FAQ.md), [русский](FAQru.md), ), [Nederlands](FAQnl.md), [Français](FAQfr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+Bunu diğer dillerde okuyun: [English](FAQ.md), [русский](FAQru.md), ), [Nederlands](FAQnl.md), [Français](FAQfr.md), [українська](FAQuk.md), [Polski](FAQpl.md), [Tiếng Việt](FAQvi.md)
# Sıkça Sorulan Sorular
diff --git a/Docs/FAQuk.md b/Docs/FAQuk.md
index 0c4812a6..b2d99aa9 100644
--- a/Docs/FAQuk.md
+++ b/Docs/FAQuk.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Türkçe](FAQtr.md)
+Read this in other languages: [English](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Türkçe](FAQtr.md), [Tiếng Việt](FAQvi.md)
# Часті питання
diff --git a/Docs/FAQvi.md b/Docs/FAQvi.md
new file mode 100644
index 00000000..f122a3e3
--- /dev/null
+++ b/Docs/FAQvi.md
@@ -0,0 +1,62 @@
+Đọc bằng các ngôn ngữ khác: [English](FAQ.md), [русский](FAQru.md), [Français](FAQfr.md), [Nederlands](FAQnl.md), [Türkçe](FAQtr.md), [українська](FAQuk.md), [Polski](FAQpl.md)
+
+
+# Câu Hỏi Thường Gặp
+
+## Trước khi đưa ra bất kì câu hỏi nào trên GitHub hay trên Discord, vui lòng đọc hết trang này.
+
+
+
+### **1. Tiện ích mở rộng này lấy dữ liệu từ đâu?**
+
+Kết hợp dữ liệu lấy từ API của Google và dữ liệu thu thập được.
+
+Chúng tôi lưu giữ tất cả dữ liệu mà chúng tôi có được vào cơ sở dữ liệu của chúng tôi, kể từ khi Google loại bỏ số lượt đánh giá "không thích" khỏi API của họ.
+
+
+
+### **2. Số lượt "không thích" không được cập nhật**
+
+Hiện tại, các lượt đánh giá "không thích" sẽ được lưu lại và số lượt đánh giá tổng được hiển thị không được cập nhật thường xuyên. Thông thường, cứ mỗi 2 đến 3 ngày, chứ không ngắn hơn.
+
+Đồng ý rằng điều này không đáng mong chờ, nhưng hiện tại thì tiện ích hoạt động như vậy. Chúng tôi đang cố gắng cải thiện tần suất nhật số lượt đánh giá.
+
+
+
+### **3. Cách thức hoạt động của tiện ích mở rộng này?**
+
+Tiện ích này thu thập ID của vi-đê-ô mà bạn đang xem, truy vấn đánh giá của vi-đê-ô (bao gồm số lượt "không thích", số lượt "thích", số lượt xem, v.v.) bằng API của chúng tôi. Nếu đây là đầu tiên diễn ra truy vấn tới API của chúng tôi đối với vi-đê-ô này, tiện ích sẽ sử dụng API của YouTube sẽ truy vấn các thông tin cần thiết, sau đó lưu trữ các thông tin này vào cơ sở dữ liệu cho mục đích truy vấn nhanh (trong vòng 2 đến 3 ngày) và cho mục đích lưu trữ và sẽ trả kết quả truy vấn về cho bạn. Lúc này, tiện ích sẽ hiện thị số lượt đánh giá "không thích" cho bạn xem.
+
+
+
+### **4. Việc gì sẽ diễn ra sau khi API của YouTube ngừng cung cấp số lượt "không thích"?**
+
+Đầu sau của tiện ích sẽ chuyển sang sử dụng kết hợp dữ liệu đã được lưu trữ về số lượt đánh giá "không thích", những ước tính ngoại suy từ dữ liệu người dùng của tiện ích và những ước tính dựa trên tỉ lệ lượt xem/lượt "thích" đối với những vi-đê-ô chưa lưu được số lượt "không thích" và đối với các kho lưu trữ số lượt "không thích" lỗi thời.
+
+
+
+### **5. Số lượt đánh giá "không thích" được tính như thế nào?**
+
+RYD sử dụng đánh giá từ người dùng để ngoại suy số lượt đánh giá "không thích".
+
+- Nếu vi-đê-ô được đăng tải sau khi API của YouTube loại bỏ trường `dislike`:
+
+ $$ \textup{Số lượt "Không thích" của RYD} = \left( \frac{\textup{Số lượt "Không thích" từ Người dùng của RYD}}{\textup{Số lượt "Thích" từ Người dùng của RYD}} \right) \times \textup{Số lượt "Thích" từ API của YouTube} $$
+
+- Nếu cơ sở dữ liệu của RYD có được số lượt đánh giá "thích" và "không thích" thực (được cung cấp bởi chủ vi-đê-ô hay từ kho lưu trữ), số lượt đánh giá "không thích" sẽ được tính dựa trên đồng thời (1) đánh giá từ người dùng của tiện ích và (2) số liệu được lưu trữ. Số liệu được lưu trữ sẽ càng ngày càng kém quan trọng trong việc tính toán số lượt đánh giá.
+
+
+
+---
+
+Vi-đê-ô thông tin về Return YouTube Dislike:
+
+[Giải thích về Return YouTube Dislike (Tiếng Anh)](https://www.youtube.com/watch?v=GSmmtv-0yYQ)
+
+---
+
+
+
+## Tôi có thắc mắc về tính bảo mật / quyền riêng tư
+
+Vui lòng tham khảo [trang này](SECURITY-FAQvi.md) để biết thêm thông tin.
diff --git a/Docs/Guide__Installingvi.md b/Docs/Guide__Installingvi.md
new file mode 100644
index 00000000..aadcb9aa
--- /dev/null
+++ b/Docs/Guide__Installingvi.md
@@ -0,0 +1,320 @@
+**Mục lục**
+
+- [Downloading](#downloading)
+ - [Desktop (all OS supported by these browsers)](#desktop-all-os-supported-by-these-browsers)
+ - [Chromium Based Browsers](#chromium-based-browsers)
+ - [Firefox Based Browsers](#firefox-based-browsers)
+ - [Mobile](#mobile)
+ - [Android](#android)
+ - [iOS](#ios)
+ - [Userscript](#userscript)
+- [Installation](#installation)
+ - [Desktop](#desktop)
+ - [**Chromium based browsers**](#chromium-based-browsers-1)
+ - [From Chrome Webstore](#from-chrome-webstore)
+ - [From crx/zip file](#from-crxzip-file)
+ - [From unzipped folder](#from-unzipped-folder)
+ - [**Firefox Based Browsers**](#firefox-based-browsers-1)
+ - [From addon store](#from-addon-store)
+ - [From xpi/jar/zip file](#from-xpijarzip-file)
+ - [Mobile](#mobile-1)
+ - [Android](#android-1)
+ - [App from Play Store](#app-from-play-store)
+ - [On Firefox](#on-firefox)
+ - [iOS](#ios-1)
+- [Using](#using)
+- [Updating](#updating)
+ - [Extension / Addon](#extension--addon)
+- [Miscellaneous](#miscellaneous)
+ - [Using YouTube website as an app with an extension](#using-youtube-website-as-an-app-with-an-extension)
+ - [Desktop](#desktop-1)
+ - [Chromium Based Browsers](#chromium-based-browsers-2)
+ - [Firefox Based Browsers](#firefox-based-browsers-2)
+ - [Mobile](#mobile-2)
+ - [Firefox Based Browsers](#firefox-based-browsers-3)
+ - [Chromium Based Browsers](#chromium-based-browsers-3)
+
+
+
+
+
+## Downloading
+
+### Desktop (all OS supported by these browsers)
+
+
+
+#### [Chromium Based Browsers][4]
+
+This extension has been tested to work on these browsers.
+
+- [Google Chrome][1]
+- [Microsoft Edge][1]
+- [Brave][1]
+- [Opera][1]
+
+It should be able to work on [all Chromium-based browsers (list here)][4]. But that isn't guaranteed.
+
+
+
+#### [Firefox Based Browsers][5]
+
+- [Firefox][2]
+- This addon should be able to run on most of the [Firefox-based browsers][5]. But isn't guaranteed.
+
+
+
+### Mobile
+
+#### Android
+
+1. **F-Droid Store**
+
+- [Show Youtube Dislikes](https://f-droid.org/en/packages/com.jesperh.showyoutubedislikes/)
+
+ [Download from here (Click here)](https://f-droid.org/en/packages/com.jesperh.showyoutubedislikes/)
+
+ The source code is available at [github.com/jesperbakhandskemager/view-youtube-dislike](https://github.com/jesperbakhandskemager/view-youtube-dislike)
+
+ You can download the apk file from
+ [https://github.com/jesperbakhandskemager/view-youtube-dislike/releases/](https://github.com/jesperbakhandskemager/view-youtube-dislike/releases/)
+
+ **Note: This app is NOT made by the original author of the extension**.
+
+2. [**Firefox Nightly**][2]
+
+- This addon should be able to run on most of the [Firefox-based browsers][5]. But isn't guaranteed.
+
+3. [**Chromium Based browsers**][4]
+
+Most [**Chromium Based browsers**][4] **don't support extensions on Android or iOS**
+
+However, [Kiwi Browser](https://kiwibrowser.com/) does. You can refer to this video - [Google Chrome Extensions on Android with Kiwi Browser!](https://youtu.be/T6J0T_-oim4)
+
+
+
+#### iOS
+
+No Support on Firefox
+
+You can have a look at these pages for more information (the reason why it's not available on Firefox):
+
+- [https://support.mozilla.org/en-US/kb/add-ons-firefox-ios]
+- [https://support.mozilla.org/en-US/questions/1101350]
+
+For now, you can try this
+
+- [For Jailbroken iOS - **WE TAKE NO RESPONSIBILITY. USE AT YOUR OWN RISK**](https://chariz.com/get/return-youtube-dislike)
+
+ This is an iOS port [**developed by a separate team**](https://github.com/PoomSmart/Return-YouTube-Dislikes) not related to the owner of github.com/Anarios/return-youtube-dislike
+
+#### Userscript
+
+[Download from here](https://returnyoutubedislike.com/install)
+
+
+
+
+
+## Installation
+
+### Desktop
+
+
+
+#### [**Chromium based browsers**][4]
+
+
+
+##### From Chrome Webstore
+
+1. [Go to website (click here)][1]
+2. Click install
+3. Wait for the extension to download and
+4. 🙂 Installed !!
+
+
+
+##### From crx/zip file
+
+1. Download the crx/zip file.
+2. Type [`chrome://extensions`][6] in address bar
+3. Search for the "Developer Mode" switch and turn it on.
+4. Open the folder and the browser side by side.
+5. Drag and drop the crx/zip file in [chrome://extensions][6] tab
+6. Click on "Add extension"
+7. Installation Completed 🎉
+8. Remember to **turn off the "developer mode"** if not needed
+
+
+
+##### From unzipped folder
+
+1. Download the crx/zip file.
+2. Go to [`chrome://extensions`][6]
+3. Search for the "Developer Mode" switch and turn it on.
+4. Click on "Load Unpacked"
+5. Navigate to the folder & select it
+6. The extension should be installed 🎉
+7. Remember to **turn off the "developer mode"** if not needed
+
+
+
+#### [**Firefox Based Browsers**][5]
+
+##### From addon store
+
+1. Go to the addon store and find the extension or [click here][2].
+2. Click on `Add to Firefox`
+3. Done 🎉 The extension should be installed.
+
+
+
+##### From xpi/jar/zip file
+
+1. Type `about:addons` in the address bar and press "Enter". Alternatively, You can use
+ `Ctrl` + `Shift` + `A` on Windows and
+ `Cmd` + `Shift` + `A` on Mac and
+2. Click on the Setting Gear icon `⚙`.
+3. Click on `Install Add-on From File...`
+4. Locate and click on the .xpi/.jar/.zip file.
+5. Select and click to open it.
+6. Done 🎉 The extension should be installed.
+
+
+
+### Mobile
+
+#### Android
+
+##### App from Play Store
+
+- Although app(s) which use this API exist, they aren't official.
+
+##### On Firefox
+
+1. Install Firefox Nightly. Refer to this blog post for the procedure: [Expanded extension support in Firefox for Android Nightly](https://blog.mozilla.org/addons/2020/09/29/expanded-extension-support-in-firefox-for-android-nightly/)
+2. Install the extension in it from [addon store][2]
+3. If you want - install the site as an app. For that procedure [go here](#firefox-based-browsers-3).
+
+#### iOS
+
+- [For iOS click here](#ios)
+- Only available on Firefox-based browsers because Chromium-based browsers for the Android platform don't support installing extensions.
+
+
+
+
+
+## Using
+
+No more steps are required, it should start working right away.
+
+If required you can restart your browser.
+
+**🎉 🎊 Congratulations** 🥳 🎊
+
+
+
+
+
+## Updating
+
+### Extension / Addon
+
+On [Chromium based browsers][4]
+
+- [from webstore][1]
+- sideloading from [crx/zip file](#from-crxzip-file) or [unzipped folder](#from-unzipped-folder)
+
+On [Firefox based browsers][5]
+
+- [from addon store][2]
+- [sideloading from xpi/jar/zip file](#from-xpijarzip-file)
+
+On [Firefox based browsers][5] for mobile
+
+- [from addon store][2]
+
+
+
+
+
+## Miscellaneous
+
+### Using YouTube website as an app with an extension
+
+#### Desktop
+
+##### Chromium Based Browsers
+
+0. Go to YouTube
+1. Tap on menu button (`☰` / `⋯` / `⋮`)
+2. Click on "Install YouTube"
+3. 🎉Done!
+
+
+
+##### Firefox Based Browsers
+
+**⚠ Doesn't work on newer versions.**
+
+1. Type [`about:config`](about:config) in address bar & press `Enter` key.
+2. When warned `Proceed with Caution` click on `Accept the Risk and Continue`
+3. Locate and click on the search bar on the page.
+4. Type `browser.ssb.enable`.
+5. click on `⇋` and make sure the state is set to `true`.
+6. Restart the browser and Open YouTube.
+7. Click on `⋮` located in the upper right corner
+8. Click `Install this website as an app` or `Install this website as an app` which depends on the version you are using.
+9. Done! 🎉 You should be able to see the site's app in the start menu.
+
+You can also refer here (for pictures):
+
+[How to Enable the Site-Specific Browser (SSB) in Firefox - Make Tech Easier](https://www.maketecheasier.com/enable-site-specific-browser-firefox)
+
+
+
+#### Mobile
+
+##### Firefox Based Browsers
+
+0. Install the extension
+1. Go to YouTube
+2. Tap on the three dots `⋮` located at the bottom right corner of the screen.
+3. Turn on "Desktop Site".
+4. Refresh the page.
+5. Wait for it to completely load.
+6. Tap again on the three dots `⋮` located at the bottom right corner of the screen.
+7. You will see an option as `Install`. Tap on it.
+8. Tap - `Add` when asked `Add to Home screen?`
+9. Enjoy the YT site as a Firefox nightly app !!
+
+
+
+##### [Chromium Based Browsers][4]
+
+But still - here are the steps:
+
+1. Go to YouTube
+2. Tap on the three dots `⋮` located at the bottom right corner of the screen.
+3. Turn on "Desktop Site".
+4. Refresh the page and wait for it to completely load.
+5. Tap again on the three dots `⋮` located at the bottom right corner of the screen.
+6. You will see an option as `Install`. Tap on it.
+7. When asked `Install App` tap on `Yes`
+8. Tap - `Add` when asked `Add to Home screen?`
+9. Enjoy the YT site as an app !!
+
+
+
+
+
+
+
+[1]: https://chrome.google.com/webstore/detail/return-youtube-dislike/gebbhagfogifgggkldgodflihgfeippi
+[2]: https://addons.mozilla.org/en-US/firefox/addon/return-youtube-dislikes/
+[3]: https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js
+[4]: https://en.wikipedia.org/wiki/Chromium_(web_browser)#Browsers_based_on_Chromium
+[5]: https://en.wikipedia.org/wiki/Category:Web_browsers_based_on_Firefox
+[6]: chrome://extensions
diff --git a/Docs/Guide__Troubleshootingvi.md b/Docs/Guide__Troubleshootingvi.md
new file mode 100644
index 00000000..ed86420e
--- /dev/null
+++ b/Docs/Guide__Troubleshootingvi.md
@@ -0,0 +1,184 @@
+Hướng dẫn Khắc phục Sự cố
+
+**Mục lục**
+
+- [Extension](#extension)
+ - [Basic checks](#basic-checks)
+ - [Check API status](#check-api-status)
+ - [Install certificates](#install-certificates)
+ - [Check for logs in the console](#check-for-logs-in-the-console)
+ - [In Chromium Based browsers](#in-chromium-based-browsers)
+ - [In Firefox Based Browsers](#in-firefox-based-browsers)
+ - [Check for conflicting extensions](#check-for-conflicting-extensions)
+ - [Known conflicts](#known-conflicts)
+- [iOS app](#ios-app)
+- [YouTube Vanced app](#youtube-vanced--app)
+- [Contact in Discord Server](#contact-in-discord-server)
+- [Useful Links](#useful-links)
+
+
+
+## Extension
+
+(for Windows & Macs)
+
+### Basic checks
+
+1. Make sure you have the latest version of the extension installed. ([Click Here to check](https://chrome.google.com/webstore/detail/return-youtube-dislike/gebbhagfogifgggkldgodflihgfeippi#:~:text=Report%20abuse-,Version,-2.0.0.3))
+2. Close all the tabs & restart your browser
+3. Reinstall the extension.
+4. [Check API status](#check-api-status)
+5. [Check Cloudflare status](https://www.cloudflarestatus.com/)
+6. [If you are on Windows 7 read this](#install-certificates)
+
+
+
+### Check API status
+
+If the basic checks didn't resolve anything
+
+[See if you get any response from this link (click here)](https://returnyoutubedislikeapi.com/votes?videoId=QOFEgexls14)
+
+- If you **don't see something like** this, then the **API is down** and **everything is fine on your side**.
+ `{"id":"QOFEgexls14","dateCreated":"2021-12-28T02:53:20.995329Z","likes":2968,"dislikes":204,"rating":4.725047080979285,"viewCount":29157,"deleted":false}`
+- If you see some responses but not in the above format (with likes and dislikes) then probably you are being rate-limited. It is done to prevent bot attacks and database vandalization. It depends on IP (its hash - which is never stored in non-volatile storage) for its countermeasures. If many people are accessing the server from the same IP (as in the case of public/institutional Wi-Fi) then it's possible that the IP is being rate-limited. If that's the case, there's no way for us to differentiate you from a bot/attacker.
+
+**If you see "Certificate error" and [if you are on Windows 7 (or earlier) read this](#install-certificates)**
+
+
+
+### Install certificates
+
+**Applies for Windows 7 (and earlier) only**
+
+and only for [Chromium Based Browsers][1]
+
+- [Chromium-based browsers][1] don't have their own certificate manager.
+- They use Windows' certificates manager.
+- Microsoft has officially dropped the support for Windows 7
+
+You will have to install the latest certificates for that.
+
+You can follow this guide:
+
+[Fix error NET::ERR CERT DATE INVALID - Your connection is not private - Windows 7 - 2021](https://youtu.be/JYZLxP2Z8G4)
+
+If you don't want to install the certificate from Google Drive
+
+- Here is the official link to the certificate [**x1.i.lencr.org**](http://x1.i.lencr.org/).
+- **You will have to close all the tabs** before downloading this certificate.
+
+**The thumbprint of real certificate is `cabd2a79a1076a31f21d253635cb039d4329a5e8`**
+
+**To make sure that you have installed the correct certificate, you should consider checking if the thumbprints match.** To do this you can follow this guide: [How to check a certificate's thumbprint](https://knowledge.digicert.com/solution/SO9840.html)
+
+
+
+### Check for logs in the console
+
+#### [In Chromium Based browsers][1]
+
+1. In Developer tools, go to [`console` panel](https://developer.chrome.com/docs/devtools/open/#console).
+ - For Windows press `Ctrl` + `Shift` + `J` all at once
+ - For Mac press `Cmd` + `Option` + `J` all at once
+2. Find `filter` box in the newly appeared window.
+3. Type `Return`.
+4. Check the [Check API Status](#check-api-status) and see if you get similar responses.
+5. If you see any errors in red [please contact us][4] and report them in our [discord server][3]
+
+
+
+
+
+#### [In Firefox Based Browsers][2]
+
+1. Open Browser Console
+ - For standard keyboard layout press `Ctrl` + `Shift` + `K` all at once
+ - For Mac keyboard layout press `Cmd` + `Option` + `K` all at once
+ - For Android refer to this article: [Remotely debugging Firefox <36 for Android](https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android)
+2. Find `Filter Output` box in the newly appeared window.
+3. Type `Return`.
+4. If you see any errors in red [please contact us][4] and report them in our [discord server][3]
+
+
+
+### Check for conflicting extensions
+
+Some privacy and/or security-focused extensions such as ad- or script-blockers, as well as YouTube customization plugins might prevent the extension from working correctly.
+Try to disable all other extensions and test whether the extension works.
+If it does, find the extension(s) preventing RYD from working correctly and re-configure them in a way that'd stop them from interfering.
+
+
+
+### Known conflicts
+
+> ### scriptSafe
+>
+> **Solution:** Trust `returnyoutubedislikeapi.com` manually
+>
+> ![trust returnyoutubedislikeapi.com manually](https://cdn.discordapp.com/attachments/821116437720334397/929814357708247060/unknown.png)
+
+
+
+> ### uMatrix
+>
+> **Solution:** Allow XHR for `returnyoutubedislikeapi.com` manually
+>
+> ![Allow XHR for `returnyoutubedislikeapi.com` manually](https://media.discordapp.net/attachments/821116437720334397/929813724238336141/unknown.png)
+
+
+
+
+
+## iOS app
+
+Coming soon. Please have patience.
+
+
+
+
+
+## YouTube Vanced app
+
+Coming soon. Please have patience.
+
+
+
+
+
+## Contact in Discord Server
+
+**Only if nothing mentioned above helped and you still have a problem.**
+
+[Discord server link: https://discord.gg/mYnESY4Md5][3]
+
+0. Join the discord server if you haven't already
+1. Go to the #Bugs-and-problems channel
+2. There, thoroughly describe:
+ - your problem
+ - what you have tried and what didn't work
+ - results of the troubleshooting steps
+
+
+
+
+
+
+
+## Useful Links
+
+[List of Chromium Based Browsers][1]
+
+[List of Firefox Based Browsers][2]
+
+[Return-YouTube-Dislike Discord Server][3]
+
+
+
+[1]: https://en.wikipedia.org/wiki/Chromium_(web_browser)#Browsers_based_on_Chromium
+[2]: https://en.wikipedia.org/wiki/Category:Web_browsers_based_on_Firefox
+[3]: https://discord.gg/mYnESY4Md5
+[4]: #contact-in-discord-server
diff --git a/Docs/Privacy Policy b/Docs/Privacy Policy
index 5dfbca3e..c573154a 100644
--- a/Docs/Privacy Policy
+++ b/Docs/Privacy Policy
@@ -4,4 +4,4 @@ No personal info, account name or watch history is collected or saved.
Users are identified by a random user ID, which is not directly linked to any of their accounts, the only purpose of this user ID is to make voting process possible.
-None of the saved data is shared with any third parties,
+None of the saved data is shared with any third parties.
diff --git a/Docs/Privacy Policyvi b/Docs/Privacy Policyvi
new file mode 100644
index 00000000..2984a455
--- /dev/null
+++ b/Docs/Privacy Policyvi
@@ -0,0 +1,7 @@
+Dữ liệu duy nhất được thu nhập: số lượt đánh giá "thích" và "không thích" trong thời gian tiện ích mở rộng này được cài.
+
+Dữ liệu không được thu thập cũng như không lưu trữ: thông tin cá nhân, tên tài khoản, lịch sử xem vi-đê-ô.
+
+Người dùng được gán cho một ID người dùng ngẫu nhiên. ID người dùng này không có bất kì mối liên hệ nào tới những tài khoản của người dùng. Mục đích duy nhất của việc dùng ID người dùng là để thực hiện chức năng đánh giá vi-đê-ô.
+
+Dữ liệu được lưu trữ không được chia sẻ với bất kì bên thứ ba nào.
diff --git a/Docs/SECURITY-FAQ.md b/Docs/SECURITY-FAQ.md
index 6caadbbd..36160efa 100644
--- a/Docs/SECURITY-FAQ.md
+++ b/Docs/SECURITY-FAQ.md
@@ -1,4 +1,4 @@
-Read this in other languages: [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md)
+Read this in other languages: [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Security
diff --git a/Docs/SECURITY-FAQfr.md b/Docs/SECURITY-FAQfr.md
index ecac0270..1c5ee068 100644
--- a/Docs/SECURITY-FAQfr.md
+++ b/Docs/SECURITY-FAQfr.md
@@ -1,4 +1,4 @@
-Lisez ceci dans d'autres langues : [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), Nederlands](SECURITY_FAQnl.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md)
+Lisez ceci dans d'autres langues : [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Sécurité
diff --git a/Docs/SECURITY-FAQnl.md b/Docs/SECURITY-FAQnl.md
index 034f1c8f..f876a9d1 100644
--- a/Docs/SECURITY-FAQnl.md
+++ b/Docs/SECURITY-FAQnl.md
@@ -1,4 +1,4 @@
-Lees dit in andere talen: [English](SECURITY_FAQ.md), [русский](SECURITY-FAQru.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md)
+Lees dit in andere talen: [English](SECURITY_FAQ.md), [русский](SECURITY-FAQru.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Veiligheid
diff --git a/Docs/SECURITY-FAQpl.md b/Docs/SECURITY-FAQpl.md
index b77960ef..f1d81066 100644
--- a/Docs/SECURITY-FAQpl.md
+++ b/Docs/SECURITY-FAQpl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md)
+Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Security
diff --git a/Docs/SECURITY-FAQru.md b/Docs/SECURITY-FAQru.md
index 4762016c..d97c1434 100644
--- a/Docs/SECURITY-FAQru.md
+++ b/Docs/SECURITY-FAQru.md
@@ -1,4 +1,4 @@
-Прочитать на других языках: [English](SECURITY-FAQ.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md)
+Прочитать на других языках: [English](SECURITY-FAQ.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Безопасность
diff --git a/Docs/SECURITY-FAQtr.md b/Docs/SECURITY-FAQtr.md
index 3830c0e9..69b9607e 100644
--- a/Docs/SECURITY-FAQtr.md
+++ b/Docs/SECURITY-FAQtr.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md)
+Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Güvenlik
diff --git a/Docs/SECURITY-FAQuk.md b/Docs/SECURITY-FAQuk.md
index 64545d60..31ab7e6e 100644
--- a/Docs/SECURITY-FAQuk.md
+++ b/Docs/SECURITY-FAQuk.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [Polski](SECURITY-FAQpl.md)
+Read this in other languages: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
# Безпека
diff --git a/Docs/SECURITY-FAQvi.md b/Docs/SECURITY-FAQvi.md
new file mode 100644
index 00000000..c6f86b1e
--- /dev/null
+++ b/Docs/SECURITY-FAQvi.md
@@ -0,0 +1,32 @@
+Đọc bằng các ngôn ngữ khác: [English](SECURITY-FAQ.md), [русский](SECURITY-FAQru.md), [Nederlands](SECURITY_FAQnl.md), [Français](SECURITY-FAQfr.md), [Türkçe](SECURITY-FAQtr.md), [українська](SECURITY-FAQuk.md), [Polski](SECURITY-FAQpl.md), [Tiếng Việt](SECURITY-FAQvi.md)
+
+
+# Tính Bảo mật
+
+### Tiện ích mở rộng này có theo dõi lịch sử xem vi-đê-ô của tôi không?
+
+Không. Mã nguồn của tiện ích mở rộng này được cung cấp công khai và bạn có thể kiểm tra mã nguồn nếu muốn. Thông tin duy nhất được tiện ích này gửi đi là ID của vi-đê-ô vì việc truy vấn số lượt đánh giá "không thích" cần ID của vi-đê-ô. Không thông tin nào khác được gửi đi. Ở lớp truyền tải, máy chủ sẽ biết được địa chỉ IP của bạn cũng như thời điểm mà truy vấn được tạo. Tuy nhiên, những thông tin này không thể định danh chính xác bạn. Giả sử với môi trường bất tín, chúng tôi cùng lắm chỉ có thể biết được địa chỉ IP động. Địa chỉ IP động là của bạn ngày hôm nay, nhưng sẽ là của người khác vào ngày mai. Nếu bạn lo lắng rằng địa chỉ IP của mình bị theo dõi, bạn có thể sử dụng mạng riêng ảo.
+
+### Nhóm phát triển có thể định danh chính xác tôi không nếu như tôi có đánh giá "không thích"?
+
+Có. Khi bạn đưa ra đánh giá "không thích" với một vi-đê-ô, chúng tội sẽ tạo ra một số định danh duy nhất ngẫu nhiên cho bạn, nhưng số định danh này không có bất kì mối liên hệ nào với tài khoản Google của bạn. Việc tạo số định danh là nhằm tránh người dùng bot. Không có bất kì cách nào để liên hệ số định danh này với bạn hay với tài khoản YouTube của bạn.
+
+### Chính xác thì thông tin nào được thu thập?
+
+Chỉ có ID của vi-đê-ô sẽ được thu thập. Bình luận của bạn, không. Tên người dùng của bạn, không. Thông tin của người mà bạn chia sẻ vi-đê-ô, không. Siêu dữ liệu khác, không. Không có bất kì thông tin nào khác được thu thập. Chỉ duy nhất ID của vi-đê-ô.
+
+### Địa chỉ IP của tôi được lưu trữ ra sao?
+
+Đầu sau chỉ giữ địa chỉ IP không được băm trong bộ nhớ khả biến (RAM). Những địa chỉ này không được lưu vào bộ nhớ bất biến (như ổ đĩa cứng) và như vậy không bị ghi chép lại. Chúng tôi băm địa chỉ IP rồi mới lưu lại những địa chỉ đã băm. Việc lưu địa chỉ đã băm là nhằm tránh việc phá hoại cơ sở dữ liệu.
+
+### Tôi có bắt gặp một số cuộc thảo luận về OAuth cũng như về việc truy cập tài khoản YouTube của tôi!
+
+Tính năng sắp có này là tùy chọn. Nếu bạn là nhà sáng tạo nội dung trên YouTube và bạn mong muốn chia sẽ số liệu đánh giá "không thích" với chúng tôi, chúng tôi rất hoan nghênh. Cách thức hoạt động của [OAuth](https://en.wikipedia.org/wiki/OAuth#:~:text=but%20without%20giving%20them%20the%20passwords.) giúp đảm bảo tính bảo mật. Bạn có thể hủy bỏ các truy cập vào tài khoản của bạn bất cứ lúc nào bạn muốn và cũng như có thể đưa ra bất kì sự cho phép cụ thể nào. Chúng tôi sẽ không đòi hỏi bất kì sự cho phép nào không cần thiết. Chúng tôi chỉ xin được cấp phép để xem số liệu về vi-đê-ô của bạn.
+
+### Số lượt đánh giá "không thích" có đáng tin cậy không?
+
+Chúng tôi đã và đang thực hiện nhiều biện pháp phòng chống việc tấn công từ người dùng bot và sẽ tiếp duy trì việc tăng cường tính hiệu quả của hệ thống phòng chống bot: Điều này sẽ giúp chúng tôi đảm bảo rằng số lượt đánh giá "không thích" của tiện ích phản ánh đúng số lượt đánh giá thực. Tất nhiên là không thể đảm bảo chính xác hoàn toàn, cho nên tùy thuộc vào bạn có muốn tin hay không.
+
+### Tại sao mã nguồn của đầu sau không được chia sẻ?
+
+Chúng tôi sẽ chia sẻ mã nguồn của đầu sau trong tương lại. Nhưng không có lí do gì thực sự cấp thiết để phải chia sẻ mã nguồn vào thời điểm hiện nay. Việc chia sẻ mã nguồn sẽ tạo ra sự an tâm hão huyền vì trong môi trường bất tín, chúng tôi có thể chia sẻ mã nguồn này nhưng lại dùng mã nguồn khác. Có nhiều lí do để giữ bí mật mã nguồn, trong đó có việc chống tương tác rác. Che giấu/Làm rối mã xử lý tương tác rác là biện pháp tiêu chuẩn.
diff --git a/Docs/readme.md b/Docs/readme.md
index e014fe8f..306f49bd 100644
--- a/Docs/readme.md
+++ b/Docs/readme.md
@@ -1,4 +1,4 @@
-Read this in other languages: [Nederlands](readmenl.md), [Français](readmefr.md), [Türkçe](readmetr.md)
+Read this in other languages: [Nederlands](readmenl.md), [Français](readmefr.md), [Türkçe](readmetr.md), [Tiếng Việt](readmevi.md)
**Contents**
diff --git a/Docs/readmefr.md b/Docs/readmefr.md
index 2b3440a9..1d4285bd 100644
--- a/Docs/readmefr.md
+++ b/Docs/readmefr.md
@@ -1,4 +1,4 @@
-Lisez ceci dans d'autres langues : [English](readme.md), [Nederlands](readmenl.md), [Türkçe](readmetr.md)
+Lisez ceci dans d'autres langues : [English](readme.md), [Nederlands](readmenl.md), [Türkçe](readmetr.md), [Tiếng Việt](readmevi.md)
**Contenu**
diff --git a/Docs/readmenl.md b/Docs/readmenl.md
index bef479d6..837ce569 100644
--- a/Docs/readmenl.md
+++ b/Docs/readmenl.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](readme.md), [Français](readmefr.md), [Türkçe](readmetr.md)
+Read this in other languages: [English](readme.md), [Français](readmefr.md), [Türkçe](readmetr.md), [Tiếng Việt](readmevi.md)
**Inhoud**
diff --git a/Docs/readmetr.md b/Docs/readmetr.md
index 49145023..332991f9 100644
--- a/Docs/readmetr.md
+++ b/Docs/readmetr.md
@@ -1,4 +1,4 @@
-Read this in other languages: [English](readme.md), [Nederlands](readmenl.md), [Français](readmefr.md)
+Read this in other languages: [English](readme.md), [Nederlands](readmenl.md), [Français](readmefr.md), [Tiếng Việt](readmevi.md)
**İçerikler**
diff --git a/Docs/readmevi.md b/Docs/readmevi.md
new file mode 100644
index 00000000..f1a82c0d
--- /dev/null
+++ b/Docs/readmevi.md
@@ -0,0 +1,39 @@
+Đọc bằng các ngôn ngữ khác: [English](readme.md), [Nederlands](readmenl.md), [Français](readmefr.md), [Türkçe](readmetr.md)
+
+**Mục lục**
+
+- [Hướng dẫn](#guides)
+- [Hỏi-Đáp](#faqs)
+
+
+
+
+## Hướng dẫn
+
+- [Tải, Cài đặt & Sử dụng](https://github.com/Anarios/return-youtube-dislike/wiki/Tải,-Cài-đặt-&-Sử-dụng)
+- [Khắc phục Sự cố](https://github.com/Anarios/return-youtube-dislike/wiki/Hướng-dẫn-Khắc-phục-Sự-cố)
+
+
+
+
+
+## Hỏi-Đáp
+
+- [Tổng quát](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/FAQvi.md)
+- [Bảo mật](https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/SECURITY-FAQvi.md)
+
+
diff --git a/Website/_locales/vi.ts b/Website/_locales/vi.ts
index 81e549ec..375a5c3f 100644
--- a/Website/_locales/vi.ts
+++ b/Website/_locales/vi.ts
@@ -85,7 +85,7 @@ export default {
bullet2: 'Tại sao số lượt "không thích" không được cập nhật?',
bullet2text:
'Hiện tại, số lượt "không thích" được lưu vào cơ sở dữ liệu và số lượt được hiển thị không được cập nhật liên tục. Việc cập nhật số lượt được hiển thị tùy thuộc vào độ phổ biến của vi-đê-ô, có thể mất vài giờ tới vài ngày để cập nhật.',
- bullet3: "Cách thức hoạt đọng của tiện ích mở rộng này?",
+ bullet3: "Cách thức hoạt động của tiện ích mở rộng này?",
bullet3text:
'Tiện ích này thu thập ID của vi-đê-ô mà bạn xem, rồi sử dụng API của chúng tôi để truy vấn số lượt "không thích" (cùng với các thông tin khác như lượt xem, số lượt "thích", v.v.). Sau đó, tiện ích sẽ hiển thị số lượt "không thích" và tỉ lệ "thích"/"không thích". Nếu bạn đánh giá "thích" hay "không thích" một vi-đê-ô, đánh giá này sẽ được ghi lại và gửi vào cơ sở dữ liệu, nhờ đó số lượt "không thích" có thể được ngoại suy chính xác.',
bullet4: 'Tôi có thể chia sẻ số lượt "không thích" của mình cho nhóm phát triển không?',