diff --git a/core/assets/bundles/bundle_vi.properties b/core/assets/bundles/bundle_vi.properties
index 3a189aa84f..dbe3992435 100644
--- a/core/assets/bundles/bundle_vi.properties
+++ b/core/assets/bundles/bundle_vi.properties
@@ -5,26 +5,26 @@ discord = Tham gia Mindustry Discord!
link.discord.description = The official Mindustry Discord chatroom
link.reddit.description = The Mindustry subreddit
link.github.description = Mã nguồn trò chơi
-link.changelog.description = List of update changes
+link.changelog.description = Danh sách các thay đổi.
link.dev-builds.description = Các bản dựng phát triển không ổn định
link.trello.description = Official Trello board for planned features
link.itch.io.description = itch.io page with PC downloads
link.google-play.description = Google Play store listing
link.f-droid.description = F-Droid listing
-link.wiki.description = Official Mindustry wiki
+link.wiki.description = Mindustry wiki chính thức
link.suggestions.description = Đề xuất các tính năng mới
-linkfail = Failed to open link!\nThe URL has been copied to your clipboard.
+linkfail = Không mở được liên kết!\nURL đã được sao chép vào bộ nhớ tạm.
screenshot = Ảnh chụp màn hình được lưu vào {0}
-screenshot.invalid = Map too large, potentially not enough memory for screenshot.
+screenshot.invalid = Bản đồ quá lớn, có khả năng không đủ bộ nhớ để chụp ảnh màn hình.
gameover = Game Over
gameover.disconnect = Ngắt kết nối
-gameover.pvp = The[accent] {0}[] team is victorious!
-gameover.waiting = [accent]Waiting for next map...
-highscore = [accent]New highscore!
+gameover.pvp = Đội[accent] {0}[] chiến thắng!
+gameover.waiting = [accent]Đang đợi bản đồ tiếp theo...
+highscore = [accent]Điểm cao mới!
copied = Đã sao chép.
indev.popup = [accent]v6[] hiện đang ở phiên bản [accent]beta[].\n[lightgray]Điều này có nghĩa là:[]\n[scarlet]- Chiến dịch chưa hoàn thiện[]\n- Mọi thứ bạn thấy có thể thay đổi hoặc bị xóa.\n\nBáo cáo lỗi hoặc sự cố trên [accent]Github[].
indev.notready = Phần này của trò chơi chưa sẵn sàng
-indev.campaign = [accent]You've reached the end of the campaign![]\n\nThis is as far as the content goes. Interplanetary travel will be added in future updates.
+indev.campaign = [accent]Bạn đã đến cuối chiến dịch![]\n\nDu hành liên hành tinh sẽ được bổ sung trong các bản cập nhật tương lai.
load.sound = Âm thanh
load.map = Bản đồ
@@ -34,7 +34,7 @@ load.system = Hệ thống
load.mod = Mods
load.scripts = Scripts
-be.update = A new Bleeding Edge build is available:
+be.update = Đã tìm thấy bản cập nhật mới:
be.update.confirm = Tải xuống và khởi động lại ngay bây giờ?
be.updating = Đang cập nhật...
be.ignore = Bỏ qua
@@ -44,45 +44,45 @@ be.check = Kiểm tra các bản cập nhật.
schematic = Schematic
schematic.add = Lưu Schematic...
schematics = Schematics
-schematic.replace = A schematic by that name already exists. Replace it?
-schematic.exists = A schematic by that name already exists.
-schematic.import = Import Schematic...
-schematic.exportfile = Export File
-schematic.importfile = Import File
-schematic.browseworkshop = Browse Workshop
-schematic.copy = Copy to Clipboard
-schematic.copy.import = Import from Clipboard
-schematic.shareworkshop = Share on Workshop
-schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic
-schematic.saved = Schematic saved.
-schematic.delete.confirm = This schematic will be utterly eradicated.
+schematic.replace = Schematics có tên đó đã tồn tại. Thay thế nó?
+schematic.exists = Schematics có tên đó đã tồn tại.
+schematic.import = Nhập Schematic...
+schematic.exportfile = Xuất tệp
+schematic.importfile = Nhập tệp
+schematic.browseworkshop = Duyệt qua Workshop
+schematic.copy = Sao chép vào bộ nhớ tạm
+schematic.copy.import = Nhập từ bộ nhớ tạm
+schematic.shareworkshop = Chia sẻ từ Workshop
+schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Lật Schematic
+schematic.saved = Đã lưu Schematic.
+schematic.delete.confirm = Schematic này sẽ bị xóa hoàn toàn.
schematic.rename = Đổi tên Schematic
-schematic.info = {0}x{1}, {2} blocks
-schematic.disabled = [scarlet]Schematics disabled[]\nYou are not allowed to use schematics on this [accent]map[] or [accent]server.
+schematic.info = {0}x{1}, {2} khối
+schematic.disabled = [scarlet]Tính năng Schematics đã bị tắt[]\nBạn không được sử dụng schematic trong [accent]bản đồ[] hoặc [accent]máy chủ.
-stats = Stats
+stats = Thống kê
stat.wave = Waves Defeated:[accent] {0}
-stat.enemiesDestroyed = Enemies Destroyed:[accent] {0}
-stat.built = Buildings Built:[accent] {0}
-stat.destroyed = Buildings Destroyed:[accent] {0}
-stat.deconstructed = Buildings Deconstructed:[accent] {0}
-stat.delivered = Resources Launched:
-stat.playtime = Time Played:[accent] {0}
-stat.rank = Final Rank: [accent]{0}
+stat.enemiesDestroyed = Kẻ thù bị tiêu diệt:[accent] {0}
+stat.built = Số công trình đã xây dựng:[accent] {0}
+stat.destroyed = Số công trình đã bị phá:[accent] {0}
+stat.deconstructed = Số công trình được xây dựng lại:[accent] {0}
+stat.delivered = Lượng tài nguyên được phóng:
+stat.playtime = Thời gian chơi:[accent] {0}
+stat.rank = Xếp hạng: [accent]{0}
globalitems = [accent]Global Items
-map.delete = Are you sure you want to delete the map "[accent]{0}[]"?
-level.highscore = High Score: [accent]{0}
-level.select = Level Select
-level.mode = Gamemode:
+map.delete = Bạn có chắc chắn muốn xóa bản đồ "[accent]{0}[]"?
+level.highscore = Điểm cao nhất: [accent]{0}
+level.select = Chọn cấp độ
+level.mode = Chế độ:
coreattack = < Căn cứ đang bị tấn công! >
nearpoint = [[ [scarlet]LEAVE DROP POINT IMMEDIATELY[] ]\nannihilation imminent
-database = Core Database
-savegame = Save Game
-loadgame = Load Game
-joingame = Join Game
-customgame = Custom Game
-newgame = New Game
+database = Cơ sở dữ liệu căn cứ
+savegame = Lưu trò chơi
+loadgame = Tải trò chơi
+joingame = Tham gia trò chơi
+customgame = Tùy chỉnh
+newgame = Trò chơi mới
none =
minimap = Bản đồ mini
position = Vị trí
@@ -91,10 +91,10 @@ website = Website
quit = Thoát
save.quit = Lưu & Thoát
maps = Maps
-maps.browse = Browse Maps
+maps.browse = Duyệt bản đồ
continue = Tiếp tục
-maps.none = [lightgray]No maps found!
-invalid = Invalid
+maps.none = [lightgray]Không có bản đồ nào được tìm thấy!
+invalid = Không hợp lệ
pickcolor = Chọn màu
preparingconfig = Preparing Config
preparingcontent = Preparing Content
@@ -106,31 +106,31 @@ feature.unsupported = Thiết bị của bạn không hỗ trợ tính năng nà
mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub.
mods = Mods
-mods.none = [lightgray]No mods found!
-mods.guide = Modding Guide
-mods.report = Report Bug
-mods.openfolder = Open Folder
-mods.reload = Reload
-mods.reloadexit = The game will now exit, to reload mods.
+mods.none = [lightgray]Không có mod nào được tìm thấy!
+mods.guide = Hướng dẫn mod
+mods.report = Báo lỗi
+mods.openfolder = Mở thư mục
+mods.reload = Tải lại
+mods.reloadexit = Trò chơi sẽ đóng để tải lại mod.
mod.display = [gray]Mod:[orange] {0}
mod.enabled = [lightgray]Đã Bật
mod.disabled = [scarlet]Đã Tắt
mod.disable = Tắt
mod.content = Nội dung:
-mod.delete.error = Unable to delete mod. File may be in use.
+mod.delete.error = Không thể xóa mod. Tệp có thể đang được sử dụng.
mod.requiresversion = [scarlet]Cần phiên bản tối thiểu: [accent]{0}
-mod.outdated = [scarlet]Not compatible with V6 (no minGameVersion: 105)
-mod.missingdependencies = [scarlet]Missing dependencies: {0}
+mod.outdated = [scarlet]Không tương thích với V6 (no minGameVersion: 105)
+mod.missingdependencies = [scarlet]Thiếu phụ thuộc: {0}
mod.erroredcontent = [scarlet]Lỗi nội dung
-mod.errors = Errors have occurred loading content.
+mod.errors = Đã xảy ra lỗi khi tải nội dung.
mod.noerrorplay = [scarlet]You have mods with errors.[] Either disable the affected mods or fix the errors before playing.
mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled.
mod.enable = Bật
mod.requiresrestart = The game will now close to apply the mod changes.
mod.reloadrequired = [scarlet]Restart Required
-mod.import = Import Mod
-mod.import.file = Import File
-mod.import.github = Import From GitHub
+mod.import = Nhập Mod
+mod.import.file = Nhập tệp
+mod.import.github = Nhập từ GitHub
mod.jarwarn = [scarlet]JAR mods are inherently unsafe.[]\nMake sure you're importing this mod from a trustworthy source!
mod.item.remove = This item is part of the[accent] '{0}'[] mod. To remove it, uninstall that mod.
mod.remove.confirm = This mod will be deleted.
@@ -143,21 +143,21 @@ mod.scripts.disable = Your device does not support mods with scripts. You must d
about.button = Thông tin
name = Tên:
noname = Pick a[accent] player name[] first.
-planetmap = Planet Map
-launchcore = Launch Core
+planetmap = Bản đồ hành tinh
+launchcore = Phóng căn cứ
filename = Tên tệp:
-unlocked = New content unlocked!
+unlocked = Đã mở khóa nội dung mới!
completed = [accent]Hoàn tất
techtree = Tech Tree
-research.list = [lightgray]Research:
+research.list = [lightgray]Nghiên cứu:
research = Nghiên cứu
-researched = [lightgray]{0} researched.
-research.progress = {0}% complete
+researched = [lightgray]{0} đã nghiên cứu.
+research.progress = {0}% hoàn thành
players = {0} người chơi
players.single = {0} người chơi
players.search = tìm kiếm
-players.notfound = [gray]no players found
-server.closing = [accent]Closing server...
+players.notfound = [gray]không tìm thấy người chơi
+server.closing = [accent]Đang đóng máy chủ...
server.kicked.kick = You have been kicked from the server!
server.kicked.whitelist = You are not whitelisted here.
server.kicked.serverClose = Máy chủ đã đóng.
@@ -221,7 +221,7 @@ confirmvotekick = Are you sure you want to vote-kick "{0}[white]"?
confirmunban = Are you sure you want to unban this player?
confirmadmin = Are you sure you want to make "{0}[white]" an admin?
confirmunadmin = Are you sure you want to remove admin status from "{0}[white]"?
-joingame.title = Join Game
+joingame.title = Tham gia trò chơi
joingame.ip = Địa chỉ:
disconnect = Ngắt kết nối.
disconnect.error = Lỗi kết nối.
@@ -260,10 +260,10 @@ off = Tắt
save.autosave = Autosave: {0}
save.map = Map: {0}
save.wave = Wave {0}
-save.mode = Gamemode: {0}
+save.mode = Chế độ: {0}
save.date = Last Saved: {0}
-save.playtime = Playtime: {0}
-warning = Warning.
+save.playtime = Thời gian chơi: {0}
+warning = Cảnh báo.
confirm = Xác nhận
delete = Xóa
view.workshop = View In Workshop
@@ -272,22 +272,22 @@ ok = OK
open = Mở
customize = Customize Rules
cancel = Hủy
-openlink = Open Link
-copylink = Copy Link
+openlink = Mở link
+copylink = Sao chép link
back = Quay lại
crash.export = Export Crash Logs
crash.none = No crash logs found.
crash.exported = Crash logs exported.
-data.export = Export Data
-data.import = Import Data
-data.openfolder = Open Data Folder
-data.exported = Data exported.
+data.export = Xuất dữ liệu
+data.import = Nhập dữ liệu
+data.openfolder = Mở thư mục dữ liệu
+data.exported = Dữ liệu đã được xuất.
data.invalid = This isn't valid game data.
data.import.confirm = Importing external data will overwrite[scarlet] all[] your current game data.\n[accent]This cannot be undone![]\n\nOnce the data is imported, your game will exit immediately.
-quit.confirm = Are you sure you want to quit?
+quit.confirm = Bạn có chắc muốn thoát?
quit.confirm.tutorial = Are you sure you know what you're doing?\nThe tutorial can be re-taken in[accent] Settings->Game->Re-Take Tutorial.[]
loading = [accent]Đang tải...
-reloading = [accent]Reloading Mods...
+reloading = [accent]Đang tải lại Mods...
saving = [accent]Đang lưu...
respawn = [accent][[{0}][] to respawn in core
cancelbuilding = [accent][[{0}][] to clear plan
@@ -307,8 +307,8 @@ wave.enemycore = [accent]{0}[lightgray] Căn cứ địch
wave.enemy = [lightgray]{0} Kẻ địch còn lại
wave.guardianwarn = Guardian approaching in [accent]{0}[] waves.
wave.guardianwarn.one = Guardian approaching in [accent]{0}[] wave.
-loadimage = Load Image
-saveimage = Save Image
+loadimage = Tải hình ảnh
+saveimage = Lưu hình ảnh
unknown = Không xác định
custom = Tùy chỉnh
builtin = Built-In