]> git.openstreetmap.org Git - rails.git/blobdiff - config/locales/vi.yml
Merge branch 'pull/5155'
[rails.git] / config / locales / vi.yml
index 205ffe5a908d8a0827fc50225ad6d97d9b443eaa..c3cfc76f05d46dcc81e01d0f0ff13d748bc5c6c1 100644 (file)
@@ -21,6 +21,7 @@
 # Author: Phjtieudoc
 # Author: Ruila
 # Author: Trần Nguyễn Minh Huy
 # Author: Phjtieudoc
 # Author: Ruila
 # Author: Trần Nguyễn Minh Huy
+# Author: Trọng Đặng
 # Author: Vinhtantran
 # Author: 予弦
 # Author: 神樂坂秀吉
 # Author: Vinhtantran
 # Author: 予弦
 # Author: 神樂坂秀吉
@@ -63,6 +64,11 @@ vi:
       messages:
         invalid_email_address: hình như không phải là địa chỉ thư điện tử hợp lệ
         email_address_not_routable: không thể gửi đến
       messages:
         invalid_email_address: hình như không phải là địa chỉ thư điện tử hợp lệ
         email_address_not_routable: không thể gửi đến
+        display_name_is_user_n: không thể là user_n trừ khi n là số người dùng của
+          bạn
+      models:
+        user_mute:
+          is_already_muted: đã bị tắt tiếng
     models:
       acl: Danh sách Điều khiển Truy cập
       changeset: Bộ thay đổi
     models:
       acl: Danh sách Điều khiển Truy cập
       changeset: Bộ thay đổi
@@ -155,7 +161,6 @@ vi:
         auth_provider: Nhà cung cấp Xác thực
         auth_uid: Định dạng Duy nhất Xác thực
         email: Thư điện tử
         auth_provider: Nhà cung cấp Xác thực
         auth_uid: Định dạng Duy nhất Xác thực
         email: Thư điện tử
-        email_confirmation: Xác nhận Thư điện tử
         new_email: Địa chỉ Thư điện tử Mới
         active: Tích cực
         display_name: Tên Hiển thị
         new_email: Địa chỉ Thư điện tử Mới
         active: Tích cực
         display_name: Tên Hiển thị
@@ -236,6 +241,7 @@ vi:
         reopened_at_by_html: Được %{user} mở lại %{when}
       rss:
         title: Ghi chú OpenStreetMap
         reopened_at_by_html: Được %{user} mở lại %{when}
       rss:
         title: Ghi chú OpenStreetMap
+        description_all: Danh sách các ghi chú được báo cáo, bình luận, hoặc đóng
         description_area: Danh sách các ghi chú được mở, bình luận, hoặc đóng trong
           khu vực của bạn [(%{min_lat}|%{min_lon}) – (%{max_lat}|%{max_lon})]
         description_item: Nguồn cấp RSS của ghi chú %{id}
         description_area: Danh sách các ghi chú được mở, bình luận, hoặc đóng trong
           khu vực của bạn [(%{min_lat}|%{min_lon}) – (%{max_lat}|%{max_lon})]
         description_item: Nguồn cấp RSS của ghi chú %{id}
@@ -271,6 +277,8 @@ vi:
         retain_changeset_discussions: Các cuộc thảo luận về bộ thay đổi của bạn (nếu
           có) sẽ được giữ lại.
         retain_email: Địa chỉ thư điện tử của bạn sẽ được giữ lại.
         retain_changeset_discussions: Các cuộc thảo luận về bộ thay đổi của bạn (nếu
           có) sẽ được giữ lại.
         retain_email: Địa chỉ thư điện tử của bạn sẽ được giữ lại.
+        recent_editing_html: Không thể xóa tài khoản của bạn vì bạn mới thực hiện
+          sửa đổi gần đây. Có thể xóa tài khoản sau %{time}.
         confirm_delete: Bạn có chắc không?
         cancel: Hủy bỏ
   accounts:
         confirm_delete: Bạn có chắc không?
         cancel: Hủy bỏ
   accounts:
@@ -303,7 +311,16 @@ vi:
       delete_account: Xóa Tài khoản…
     go_public:
       heading: Sửa đổi công khai
       delete_account: Xóa Tài khoản…
     go_public:
       heading: Sửa đổi công khai
+      currently_not_public: Hiện tại các sửa đổi của bạn là vô danh và người ta không
+        thể gửi thư cho bạn hoặc xem vị trí của bạn. Để hiển thị những gì bạn đã sửa
+        đổi và cho phép người ta liên lạc với bạn qua trang mạng này, hãy bấm nút
+        bên dưới.
+      only_public_can_edit: Kể từ khi chuyển đổi sang phiên bản API 0.6, chỉ có những
+        người dùng công cộng mới có thể sửa đổi dữ liệu bản đồ.
       find_out_why: tìm hiểu tại sao
       find_out_why: tìm hiểu tại sao
+      email_not_revealed: Địa chỉ thư điện tử của bạn sẽ không được tiết lộ công khai.
+      not_reversible: Không thể hoàn nguyên hành động này. Tất cả mọi người dùng mới
+        hiện ở chế độ công khai theo mặc định.
       make_edits_public_button: Phát hành công khai các sửa đổi của tôi
     update:
       success_confirm_needed: Đã cập nhật thông tin cá nhân thành công. Kiểm tra thư
       make_edits_public_button: Phát hành công khai các sửa đổi của tôi
     update:
       success_confirm_needed: Đã cập nhật thông tin cá nhân thành công. Kiểm tra thư
@@ -315,6 +332,7 @@ vi:
     deleted_ago_by_html: Xóa %{time_ago} bởi %{user}
     edited_ago_by_html: Sửa đổi %{time_ago} bởi %{user}
     version: Phiên bản
     deleted_ago_by_html: Xóa %{time_ago} bởi %{user}
     edited_ago_by_html: Sửa đổi %{time_ago} bởi %{user}
     version: Phiên bản
+    redacted_version: Phiên bản Ẩn
     in_changeset: Bộ thay đổi
     anonymous: vô danh
     no_comment: (không miêu tả)
     in_changeset: Bộ thay đổi
     anonymous: vô danh
     no_comment: (không miêu tả)
@@ -325,7 +343,10 @@ vi:
       other: '%{count} lối'
     download_xml: Tải về XML
     view_history: Xem Lịch sử
       other: '%{count} lối'
     download_xml: Tải về XML
     view_history: Xem Lịch sử
+    view_unredacted_history: Xem Lịch sử Ẩn
     view_details: Xem Chi tiết
     view_details: Xem Chi tiết
+    view_redacted_data: Xem Dữ liệu Ẩn
+    view_redaction_message: Xem Thông điệp Ẩn Dữ liệu
     location: 'Vị trí:'
     node:
       title_html: 'Nốt: %{name}'
     location: 'Vị trí:'
     node:
       title_html: 'Nốt: %{name}'
@@ -402,6 +423,28 @@ vi:
       introduction: Nhấn chuột vào bản đồ để tìm những yếu tố lân cận.
       nearby: Yếu tố lân cận
       enclosing: Yếu tố bao gồm
       introduction: Nhấn chuột vào bản đồ để tìm những yếu tố lân cận.
       nearby: Yếu tố lân cận
       enclosing: Yếu tố bao gồm
+  old_nodes:
+    not_found:
+      sorry: 'Rất tiếc, không tìm thấy nốt #%{id} phiên bản %{version}.'
+  old_ways:
+    not_found:
+      sorry: 'Rất tiếc, không tìm thấy lối #%{id} phiên bản %{version}.'
+  old_relations:
+    not_found:
+      sorry: 'Rất tiếc, không tìm thấy #%{id} phiên bản %{version}.'
+  changeset_comments:
+    feeds:
+      comment:
+        comment: 'Nhận xét mới về bộ thay đổi #%{changeset_id} của %{author}'
+        commented_at_by_html: Được %{user} cập nhật %{when}
+      comments:
+        comment: 'Nhận xét mới về bộ thay đổi #%{changeset_id} của %{author}'
+      show:
+        title_all: Thảo luận về bộ thay đổi tại OpenStreetMap
+        title_particular: 'Thảo luận về bộ thay đổi #%{changeset_id} tại OpenStreetMap'
+      timeout:
+        sorry: Rất tiếc, việc lấy danh sách lời tóm lược bộ thay đổi tốn quá nhiều
+          thì giờ.
   changesets:
     changeset_paging_nav:
       showing_page: Trang %{page}
   changesets:
     changeset_paging_nav:
       showing_page: Trang %{page}
@@ -411,12 +454,6 @@ vi:
       anonymous: Vô danh
       no_edits: (không có thay đổi)
       view_changeset_details: Xem chi tiết của bộ thay đổi
       anonymous: Vô danh
       no_edits: (không có thay đổi)
       view_changeset_details: Xem chi tiết của bộ thay đổi
-    changesets:
-      id: ID
-      saved_at: Lưu vào lúc
-      user: Người dùng
-      comment: Tóm lược
-      area: Vùng
     index:
       title: Bộ thay đổi
       title_user: Những bộ thay đổi bởi %{user}
     index:
       title: Bộ thay đổi
       title_user: Những bộ thay đổi bởi %{user}
@@ -436,8 +473,24 @@ vi:
         created: Tạo
         closed: Đóng
         belongs_to: Tác giả
         created: Tạo
         closed: Đóng
         belongs_to: Tác giả
+    subscribe:
+      heading: Theo dõi cuộc thảo luận về bộ thay đổi sau đây?
+      button: Theo dõi cuộc thảo luận
+    unsubscribe:
+      heading: Ngừng theo dõi cuộc thảo luận về bộ thay đổi sau đây?
+      button: Ngừng theo dõi cuộc thảo luận
+    heading:
+      title: Bộ thay đổi %{id}
+      created_by_html: Được %{link_user} tạo %{created}.
+    no_such_entry:
+      title: Không tìm thấy bộ thay đổi
+      heading: 'Không tìm thấy mục có số: %{id}'
+      body: Rất tiếc, không có bộ thay đổi với số %{id}. Xin hãy kiểm tra chính tả,
+        hoặc có lẽ bạn đã theo một liên kết sai.
     show:
       title: 'Bộ thay đổi: %{id}'
     show:
       title: 'Bộ thay đổi: %{id}'
+      created: 'Lúc tạo: %{when}'
+      closed: 'Lúc đóng: %{when}'
       created_ago_html: Tạo %{time_ago}
       closed_ago_html: Đóng %{time_ago}
       created_ago_by_html: Tạo %{time_ago} bởi %{user}
       created_ago_html: Tạo %{time_ago}
       closed_ago_html: Đóng %{time_ago}
       created_ago_by_html: Tạo %{time_ago} bởi %{user}
@@ -446,8 +499,13 @@ vi:
       join_discussion: Đăng nhập để tham gia thảo luận
       still_open: Bộ thay đổi đang mở – có thể thảo luận sau khi bộ thay đổi được
         đóng.
       join_discussion: Đăng nhập để tham gia thảo luận
       still_open: Bộ thay đổi đang mở – có thể thảo luận sau khi bộ thay đổi được
         đóng.
+      subscribe: Theo dõi
+      unsubscribe: Không theo dõi
       comment_by_html: Nhận xét của %{user} từ %{time_ago}
       hidden_comment_by_html: Nhận xét ẩn của %{user} từ %{time_ago}
       comment_by_html: Nhận xét của %{user} từ %{time_ago}
       hidden_comment_by_html: Nhận xét ẩn của %{user} từ %{time_ago}
+      hide_comment: ẩn
+      unhide_comment: bỏ ẩn
+      comment: Bình luận
       changesetxml: Bộ thay đổi XML
       osmchangexml: osmChange XML
     paging_nav:
       changesetxml: Bộ thay đổi XML
       osmchangexml: osmChange XML
     paging_nav:
@@ -459,18 +517,6 @@ vi:
       relations_paginated: Các quan hệ (%{x}–%{y} trên %{count})
     timeout:
       sorry: Rất tiếc, việc lấy danh sách bộ thay đổi tốn quá nhiều thì giờ.
       relations_paginated: Các quan hệ (%{x}–%{y} trên %{count})
     timeout:
       sorry: Rất tiếc, việc lấy danh sách bộ thay đổi tốn quá nhiều thì giờ.
-  changeset_comments:
-    comment:
-      comment: 'Nhận xét mới về bộ thay đổi #%{changeset_id} của %{author}'
-      commented_at_by_html: Được %{user} cập nhật %{when}
-    comments:
-      comment: 'Nhận xét mới về bộ thay đổi #%{changeset_id} của %{author}'
-    index:
-      title_all: Thảo luận về bộ thay đổi tại OpenStreetMap
-      title_particular: 'Thảo luận về bộ thay đổi #%{changeset_id} tại OpenStreetMap'
-    timeout:
-      sorry: Rất tiếc, việc lấy danh sách lời tóm lược bộ thay đổi tốn quá nhiều thì
-        giờ.
   dashboards:
     contact:
       km away: cách %{count} km
   dashboards:
     contact:
       km away: cách %{count} km
@@ -509,6 +555,7 @@ vi:
       new_title: Soạn thảo mục mới trong nhật ký của tôi
       my_diary: Nhật ký của Tôi
       no_entries: Chưa có mục nhật ký
       new_title: Soạn thảo mục mới trong nhật ký của tôi
       my_diary: Nhật ký của Tôi
       no_entries: Chưa có mục nhật ký
+    page:
       recent_entries: Mục nhật ký gần đây
       older_entries: Mục cũ hơn
       newer_entries: Mục mới hơn
       recent_entries: Mục nhật ký gần đây
       older_entries: Mục cũ hơn
       newer_entries: Mục mới hơn
@@ -518,6 +565,9 @@ vi:
     show:
       title: Nhật ký của %{user} | %{title}
       user_title: Nhật ký của %{user}
     show:
       title: Nhật ký của %{user} | %{title}
       user_title: Nhật ký của %{user}
+      discussion: Thảo luận
+      subscribe: Theo dõi
+      unsubscribe: Ngừng theo dõi
       leave_a_comment: Để lại nhận xét
       login_to_leave_a_comment_html: '%{login_link} để nhận xét'
       login: Đăng nhập
       leave_a_comment: Để lại nhận xét
       login_to_leave_a_comment_html: '%{login_link} để nhận xét'
       login: Đăng nhập
@@ -533,6 +583,7 @@ vi:
       reply_link: Nhắn tin cho tác giả
       comment_count:
         other: '%{count} bình luận'
       reply_link: Nhắn tin cho tác giả
       comment_count:
         other: '%{count} bình luận'
+      no_comments: Không có bình luận
       edit_link: Sửa đổi mục này
       hide_link: Ẩn mục này
       unhide_link: Bỏ ẩn mục này
       edit_link: Sửa đổi mục này
       hide_link: Ẩn mục này
       unhide_link: Bỏ ẩn mục này
@@ -558,30 +609,78 @@ vi:
       all:
         title: Các mục nhật ký OpenStreetMap
         description: Những mục nhật ký gần đây từ người dùng OpenStreetMap
       all:
         title: Các mục nhật ký OpenStreetMap
         description: Những mục nhật ký gần đây từ người dùng OpenStreetMap
-    comments:
+    subscribe:
+      heading: Theo dõi cuộc thảo luận về mục nhật ký sau đây?
+      button: Theo dõi cuộc thảo luận
+    unsubscribe:
+      heading: Ngừng theo dõi cuộc thảo luận về mục nhật ký sau đây?
+      button: Ngừng theo dõi cuộc thảo luận
+  diary_comments:
+    index:
       title: Bình luận Nhật ký do %{user} Đăng
       heading: Bình luận Nhật ký của %{user}
       subheading_html: Bình luận Nhật ký do %{user} Đăng
       no_comments: Không có bình luận nhật ký
       title: Bình luận Nhật ký do %{user} Đăng
       heading: Bình luận Nhật ký của %{user}
       subheading_html: Bình luận Nhật ký do %{user} Đăng
       no_comments: Không có bình luận nhật ký
+    page:
       post: Mục nhật ký
       when: Lúc đăng
       comment: Nhận xét
       newer_comments: Các Nhận xét Mới hơn
       older_comments: Các Nhận xét Cũ hơn
   doorkeeper:
       post: Mục nhật ký
       when: Lúc đăng
       comment: Nhận xét
       newer_comments: Các Nhận xét Mới hơn
       older_comments: Các Nhận xét Cũ hơn
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Máy chủ cấp quyền yêu cầu lựa chọn tài khoản người
+          dùng cuối
+        consent_required: Máy chủ cấp quyền yêu cầu người dùng cuối đồng thuận
+        interaction_required: Máy chủ cấp quyền yêu cầu người dùng cuối tương tác
+        login_required: Máy chủ cấp quyền yêu cầu người dùng cuối xác thực
     flash:
       applications:
         create:
           notice: Ứng dụng được đăng ký.
     flash:
       applications:
         create:
           notice: Ứng dụng được đăng ký.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Lỗi do Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner
+            thiếu cấu hình.
+          reauthenticate_resource_owner_not_configured: Lỗi do Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner
+            thiếu cấu hình.
+          resource_owner_from_access_token_not_configured: Lỗi do Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token
+            thiếu cấu hình.
+          select_account_for_resource_owner_not_configured: Lỗi do Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner
+            thiếu cấu hình.
+          subject_not_configured: Không thể tạo dấu hiệu ID do Doorkeeper::OpenidConnect.configure.subject
+            thiếu cấu hình.
+    scopes:
+      address: Xem địa chỉ thực của bạn
+      email: Xem địa chỉ thư điện tử của bạn
+      openid: Xác thực tài khoản của bạn
+      phone: Xem số điện thoại của bạn
+      profile: Xem thông tin hồ sơ của bạn
   errors:
     contact:
   errors:
     contact:
+      contact_url_title: Giải thích các phương cách liên lạc
       contact: liên lạc
       contact: liên lạc
+      contact_the_community_html: Xin vui lòng %{contact_link} cộng đồng OpenStreetMap
+        nếu bạn gặp liên kết hỏng hoặc lỗi phần mềm. Hãy ghi nhớ địa chỉ URL chính
+        xác của yêu cầu máy chủ.
+    bad_request:
+      title: Yêu cầu hỏng
+      description: Bạn đã yêu cầu tác vụ không hợp lệ trên máy chủ OpenStreetMap (HTTP
+        400)
     forbidden:
       title: Cấm
     forbidden:
       title: Cấm
+      description: Tác vụ đuợc yêu cầu trên máy chủ OpenStreetMap chỉ khả dụng đối
+        với các quản trị viên (HTTP 403)
     internal_server_error:
       title: Lỗi ứng dụng
     internal_server_error:
       title: Lỗi ứng dụng
+      description: Máy chủ OpenStreetMap gặp phải tình trạng không mong đợi khiến
+        máy chủ không thể thực hiện yêu cầu (HTTP 500)
     not_found:
       title: Không tìm thấy tập tin
     not_found:
       title: Không tìm thấy tập tin
+      description: Không thể tìm thấy thao tác tập tin/thư mục/API có tên đó trên
+        máy chủ OpenStreetMap (HTTP 404)
   friendships:
     make_friend:
       heading: Kết bạn với %{user}?
   friendships:
     make_friend:
       heading: Kết bạn với %{user}?
@@ -1304,24 +1403,26 @@ vi:
       not_updated: Không được Cập nhật
       search: Tìm kiếm
       search_guidance: 'Tìm kiếm Vấn đề:'
       not_updated: Không được Cập nhật
       search: Tìm kiếm
       search_guidance: 'Tìm kiếm Vấn đề:'
+      link_to_reports: Xem Báo cáo
+      states:
+        ignored: Bỏ qua
+        open: Mở
+        resolved: Giải quyết
+    page:
       user_not_found: Người dùng không tồn tại
       issues_not_found: Không tìm thấy vấn đề
       status: Trạng thái
       reports: Báo cáo
       last_updated: Lần Cập nhật Cuối
       last_updated_time_ago_user_html: '%{time_ago} bởi %{user}'
       user_not_found: Người dùng không tồn tại
       issues_not_found: Không tìm thấy vấn đề
       status: Trạng thái
       reports: Báo cáo
       last_updated: Lần Cập nhật Cuối
       last_updated_time_ago_user_html: '%{time_ago} bởi %{user}'
-      link_to_reports: Xem Báo cáo
       reports_count:
         other: '%{count} Báo cáo'
       reported_item: Mục Báo cáo
       reports_count:
         other: '%{count} Báo cáo'
       reported_item: Mục Báo cáo
-      states:
-        ignored: Bỏ qua
-        open: Mở
-        resolved: Giải quyết
     show:
       title: 'Vấn đề %{status} #%{issue_id}'
       reports:
         other: '%{count} báo cáo'
     show:
       title: 'Vấn đề %{status} #%{issue_id}'
       reports:
         other: '%{count} báo cáo'
+      no_reports: Không có báo cáo
       report_created_at_html: Báo cáo lần đầu tiên vào %{datetime}
       last_resolved_at_html: Giải quyết lần cuối cùng vào %{datetime}
       last_updated_at_html: Cập nhật lần cuối cùng vào %{datetime} bởi %{displayname}
       report_created_at_html: Báo cáo lần đầu tiên vào %{datetime}
       last_resolved_at_html: Giải quyết lần cuối cùng vào %{datetime}
       last_updated_at_html: Cập nhật lần cuối cùng vào %{datetime} bởi %{displayname}
@@ -1406,14 +1507,16 @@ vi:
     gps_traces: Tuyến GPS
     gps_traces_tooltip: Quản lý tuyến đường GPS
     user_diaries: Nhật ký
     gps_traces: Tuyến GPS
     gps_traces_tooltip: Quản lý tuyến đường GPS
     user_diaries: Nhật ký
-    user_diaries_tooltip: Đọc các nhật ký cá nhân
     edit_with: Sửa đổi dùng %{editor}
     tag_line: Bản đồ Thế giới trên Wiki Mở
     intro_header: Chào mừng đến với OpenStreetMap!
     intro_text: OpenStreetMap là bản đồ thế giới do những người như bạn xây dựng và
       cho phép sử dụng thoải mái theo một giấy phép nguồn mở.
     intro_2_create_account: Mở tài khoản mới
     edit_with: Sửa đổi dùng %{editor}
     tag_line: Bản đồ Thế giới trên Wiki Mở
     intro_header: Chào mừng đến với OpenStreetMap!
     intro_text: OpenStreetMap là bản đồ thế giới do những người như bạn xây dựng và
       cho phép sử dụng thoải mái theo một giấy phép nguồn mở.
     intro_2_create_account: Mở tài khoản mới
+    hosting_partners_2024_html: Dịch vụ lưu trữ nhờ sự hỗ trợ của %{fastly}, %{corpmembers},
+      và %{partners} khác.
     partners_fastly: Fastly
     partners_fastly: Fastly
+    partners_corpmembers: các thành viên công ty Quỹ OSM
     partners_partners: các công ty bảo trợ
     tou: Điều khoản sử dụng
     osm_offline: Cơ sở dữ liệu OpenStreetMap đang ngoại tuyến trong lúc đang thực
     partners_partners: các công ty bảo trợ
     tou: Điều khoản sử dụng
     osm_offline: Cơ sở dữ liệu OpenStreetMap đang ngoại tuyến trong lúc đang thực
@@ -1428,13 +1531,11 @@ vi:
     community: Cộng đồng
     community_blogs: Các Blog của Cộng đồng
     community_blogs_title: Các blog của thành viên cộng đồng OpenStreetMap
     community: Cộng đồng
     community_blogs: Các Blog của Cộng đồng
     community_blogs_title: Các blog của thành viên cộng đồng OpenStreetMap
-    make_a_donation:
-      title: Quyên góp tiền để hỗ trợ OpenStreetMap
-      text: Quyên góp
     learn_more: Tìm hiểu Thêm
     more: Thêm
   user_mailer:
     diary_comment_notification:
     learn_more: Tìm hiểu Thêm
     more: Thêm
   user_mailer:
     diary_comment_notification:
+      description: 'Mục Nhật ký OpenStreetMap #%{id}'
       subject: '[OpenStreetMap] %{user} đã bình luận về mục nhật ký'
       hi: Chào %{to_user},
       header: '%{from_user} đã bình luận về mục nhật ký gần đây tại OpenStreetMap
       subject: '[OpenStreetMap] %{user} đã bình luận về mục nhật ký'
       hi: Chào %{to_user},
       header: '%{from_user} đã bình luận về mục nhật ký gần đây tại OpenStreetMap
@@ -1445,16 +1546,18 @@ vi:
         hoặc nhắn tin cho tác giả tại %{replyurl}
       footer_html: Bạn cũng có thể đọc bình luận tại %{readurl}, bình luận tại %{commenturl},
         hoặc nhắn tin cho tác giả tại %{replyurl}
         hoặc nhắn tin cho tác giả tại %{replyurl}
       footer_html: Bạn cũng có thể đọc bình luận tại %{readurl}, bình luận tại %{commenturl},
         hoặc nhắn tin cho tác giả tại %{replyurl}
+      footer_unsubscribe: Bạn có thể ngừng theo dõi cuộc thảo luận tại %{unsubscribeurl}
+      footer_unsubscribe_html: Bạn có thể ngừng theo dõi cuộc thảo luận tại %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Chào %{to_user},
       header: '%{from_user} đã gửi thư cho bạn dùng OpenStreetMap có tiêu đề %{subject}:'
       header_html: '%{from_user} đã gửi thư cho bạn dùng OpenStreetMap có tiêu đề
         %{subject}:'
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Chào %{to_user},
       header: '%{from_user} đã gửi thư cho bạn dùng OpenStreetMap có tiêu đề %{subject}:'
       header_html: '%{from_user} đã gửi thư cho bạn dùng OpenStreetMap có tiêu đề
         %{subject}:'
-      footer: Bạn cũng có thể đọc tin nhắn này tại %{readurl} và có thể nhắn tin cho
+      footer: Bạn cũng có thể đọc thư này tại %{readurl} và có thể nhắn tin cho tác
+        giả tại %{replyurl}
+      footer_html: Bạn cũng có thể đọc thư này tại %{readurl} và có thể nhắn tin cho
         tác giả tại %{replyurl}
         tác giả tại %{replyurl}
-      footer_html: Bạn cũng có thể đọc tin nhắn này tại %{readurl} và có thể nhắn
-        tin cho tác giả tại %{replyurl}
     friendship_notification:
       hi: Chào %{to_user},
       subject: '[OpenStreetMap] %{user} đã kết bạn với bạn'
     friendship_notification:
       hi: Chào %{to_user},
       subject: '[OpenStreetMap] %{user} đã kết bạn với bạn'
@@ -1479,6 +1582,8 @@ vi:
       hi: Chào %{to_user},
       loaded:
         other: tải thành công với %{trace_points} điểm trên tổng số %{count} điểm.
       hi: Chào %{to_user},
       loaded:
         other: tải thành công với %{trace_points} điểm trên tổng số %{count} điểm.
+      all_your_traces_html: Bạn có thể truy cập tất cả các tuyến GPX mà bạn đã tải
+        lên thành công tại %{url}.
       subject: '[OpenStreetMap] Nhập GPX thành công'
     signup_confirm:
       subject: '[OpenStreetMap] Chào mừng bạn đã tham gia OpenStreetMap'
       subject: '[OpenStreetMap] Nhập GPX thành công'
     signup_confirm:
       subject: '[OpenStreetMap] Chào mừng bạn đã tham gia OpenStreetMap'
@@ -1504,6 +1609,7 @@ vi:
       click_the_link: Nếu bạn là người đó, xin hãy nhấn chuột vào liên kết ở dưới
         để đặt lại mật khẩu.
     note_comment_notification:
       click_the_link: Nếu bạn là người đó, xin hãy nhấn chuột vào liên kết ở dưới
         để đặt lại mật khẩu.
     note_comment_notification:
+      description: 'Ghi chú OpenStreetMap #%{id}'
       anonymous: Người dùng vô danh
       greeting: Chào bạn,
       commented:
       anonymous: Người dùng vô danh
       greeting: Chào bạn,
       commented:
@@ -1540,9 +1646,10 @@ vi:
           chú gần %{place}.'
         commented_note_html: '%{commenter} đã mở lại một ghi chú mà bạn đã bình luận,
           ghi chú gần %{place}.'
           chú gần %{place}.'
         commented_note_html: '%{commenter} đã mở lại một ghi chú mà bạn đã bình luận,
           ghi chú gần %{place}.'
-      details: Xem chi tiết về ghi chú tại %{url}.
-      details_html: Xem chi tiết về ghi chú tại %{url}.
+      details: Trả lời hoặc tìm hiểu thêm về ghi chú tại %{url}.
+      details_html: Trả lời hoặc tìm hiểu thêm về ghi chú tại %{url}.
     changeset_comment_notification:
     changeset_comment_notification:
+      description: 'Bộ thay đổi OpenStreetMap #%{id}'
       hi: Chào %{to_user},
       greeting: Chào bạn,
       commented:
       hi: Chào %{to_user},
       greeting: Chào bạn,
       commented:
@@ -1561,12 +1668,11 @@ vi:
         partial_changeset_with_comment: với lời bình luận “%{changeset_comment}”
         partial_changeset_with_comment_html: với lời bình luận “%{changeset_comment}”
         partial_changeset_without_comment: không có lời bình luận
         partial_changeset_with_comment: với lời bình luận “%{changeset_comment}”
         partial_changeset_with_comment_html: với lời bình luận “%{changeset_comment}”
         partial_changeset_without_comment: không có lời bình luận
-      details: Xem chi tiết về bộ thay đổi tại %{url}.
-      details_html: Xem chi tiết về bộ thay đổi tại %{url}.
-      unsubscribe: Để ngừng nhận các thông báo về bộ thay đổi này, mở %{url} và bấm
-        “Không theo dõi”.
-      unsubscribe_html: Để ngừng nhận các thông báo về bộ thay đổi này, mở %{url}
-        và bấm “Không theo dõi”.
+      details: Trả lời hoặc tìm hiểu thêm về bộ thay đổi tại %{url}.
+      details_html: Trả lời hoặc tìm hiểu thêm về bộ thay đổi tại %{url}.
+      unsubscribe: Bạn có thể ngừng nhận các thông báo về bộ thay đổi này tại %{url}.
+      unsubscribe_html: Bạn có thể ngừng nhận các thông báo về bộ thay đổi này tại
+        %{url}.
   confirmations:
     confirm:
       heading: Hãy kiểm tra hộp thư điện tử!
   confirmations:
     confirm:
       heading: Hãy kiểm tra hộp thư điện tử!
@@ -1578,6 +1684,7 @@ vi:
       success: Đã xác nhận tài khoản của bạn. Cám ơn bạn đã mở tài khoản!
       already active: Tài khoản này đã được xác nhận rồi.
       unknown token: Dấu hiệu xác nhận này đã hết hạn hoặc không tồn tại.
       success: Đã xác nhận tài khoản của bạn. Cám ơn bạn đã mở tài khoản!
       already active: Tài khoản này đã được xác nhận rồi.
       unknown token: Dấu hiệu xác nhận này đã hết hạn hoặc không tồn tại.
+      resend_html: Nếu bạn cần chúng tôi gửi lại thư điện tử xác nhận, %{reconfirm_link}.
       click_here: nhấn chuột tại đây
     confirm_resend:
       failure: Không tìm thấy người dùng %{name}.
       click_here: nhấn chuột tại đây
     confirm_resend:
       failure: Không tìm thấy người dùng %{name}.
@@ -1614,6 +1721,7 @@ vi:
       read_button: Đánh dấu là đã đọc
       reply_button: Trả lời
       destroy_button: Xóa
       read_button: Đánh dấu là đã đọc
       reply_button: Trả lời
       destroy_button: Xóa
+      unmute_button: Chuyển vào Hộp thư đến
     new:
       title: Gửi thư
       send_message_to_html: Gửi thư mới cho %{name}
     new:
       title: Gửi thư
       send_message_to_html: Gửi thư mới cho %{name}
@@ -1633,6 +1741,10 @@ vi:
       no_sent_messages_html: Bạn chưa gửi thư cho người nào. Hãy thử liên lạc với
         %{people_mapping_nearby_link}?
       people_mapping_nearby: những người ở gần
       no_sent_messages_html: Bạn chưa gửi thư cho người nào. Hãy thử liên lạc với
         %{people_mapping_nearby_link}?
       people_mapping_nearby: những người ở gần
+    muted:
+      title: Thư bị Tắt tiếng
+      messages:
+        other: Bạn có %{count} thư bị tắt tiếng
     reply:
       wrong_user: Bạn đã đăng nhập dùng tài khoản “%{user}” nhưng vừa yêu cầu trả
         lời một thư không được gửi đến bạn. Xin hãy đăng nhập với nhận diện chính
     reply:
       wrong_user: Bạn đã đăng nhập dùng tài khoản “%{user}” nhưng vừa yêu cầu trả
         lời một thư không được gửi đến bạn. Xin hãy đăng nhập với nhận diện chính
@@ -1651,9 +1763,13 @@ vi:
     heading:
       my_inbox: Hộp thư đến
       my_outbox: Hộp thư gửi
     heading:
       my_inbox: Hộp thư đến
       my_outbox: Hộp thư gửi
+      muted_messages: Thư bị Tắt tiếng
     mark:
       as_read: Thư đã đọc
       as_unread: Thư chưa đọc
     mark:
       as_read: Thư đã đọc
       as_unread: Thư chưa đọc
+    unmute:
+      notice: Thư đã được chuyển vào Hộp thư đến
+      error: Không thể chuyển thư vào Hộp thư đến.
     destroy:
       destroyed: Đã xóa thư
   passwords:
     destroy:
       destroyed: Đã xóa thư
   passwords:
@@ -1664,6 +1780,10 @@ vi:
       new password button: Đặt lại mật khẩu
       help_text: Nhập địa chỉ thư điện tử mà bạn đã dùng để mở tài khoản, rồi chúng
         tôi sẽ gửi liên kết cho địa chỉ đó để cho bạn đặt lại mật khẩu.
       new password button: Đặt lại mật khẩu
       help_text: Nhập địa chỉ thư điện tử mà bạn đã dùng để mở tài khoản, rồi chúng
         tôi sẽ gửi liên kết cho địa chỉ đó để cho bạn đặt lại mật khẩu.
+    create:
+      send_paranoid_instructions: Nếu địa chỉ thư điện tử của bạn tồn tại trong cơ
+        sở dữ liệu của chúng tôi, bạn sẽ nhận được liên kết khôi phục mật khẩu tại
+        địa chỉ thư điện tử sau vài phút nữa.
     edit:
       title: Đặt lại mật khẩu
       heading: Đặt lại Mật khẩu của %{user}
     edit:
       title: Đặt lại mật khẩu
       heading: Đặt lại Mật khẩu của %{user}
@@ -1671,6 +1791,7 @@ vi:
       flash token bad: Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?
     update:
       flash changed: Mật khẩu của bạn đã được thay đổi.
       flash token bad: Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?
     update:
       flash changed: Mật khẩu của bạn đã được thay đổi.
+      flash token bad: Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?
   preferences:
     show:
       title: Tùy chỉnh
   preferences:
     show:
       title: Tùy chỉnh
@@ -1715,42 +1836,17 @@ vi:
   sessions:
     new:
       title: Đăng nhập
   sessions:
     new:
       title: Đăng nhập
-      heading: Đăng nhập
+      tab_title: Đăng nhập
+      login_to_authorize_html: Đăng nhập vào OpenStreetMap để truy cập %{client_app_name}.
       email or username: Địa chỉ Thư điện tử hoặc Tên người dùng
       password: Mật khẩu
       remember: Nhớ tôi
       lost password link: Quên mất Mật khẩu?
       login_button: Đăng nhập
       register now: Mở tài khoản ngay
       email or username: Địa chỉ Thư điện tử hoặc Tên người dùng
       password: Mật khẩu
       remember: Nhớ tôi
       lost password link: Quên mất Mật khẩu?
       login_button: Đăng nhập
       register now: Mở tài khoản ngay
-      with external: 'Hoặc đăng nhập qua dịch vụ bên thứ ba:'
-      no account: Chưa có tài khoản?
+      with external: hoặc đăng nhập qua dịch vụ bên thứ ba
+      or: hoặc
       auth failure: Rất tiếc, không thể đăng nhập với những chi tiết đó.
       auth failure: Rất tiếc, không thể đăng nhập với những chi tiết đó.
-      openid_logo_alt: Đăng nhập dùng OpenID
-      auth_providers:
-        openid:
-          title: Đăng nhập qua OpenID
-          alt: Đăng nhập dùng URL OpenID
-        google:
-          title: Đăng nhập qua Google
-          alt: Đăng nhập dùng OpenID của Google
-        facebook:
-          title: Đăng nhập qua Facebook
-          alt: Đăng nhập dùng tài khoản Facebook
-        microsoft:
-          title: Đăng nhập qua Microsoft
-          alt: Đăng nhập dùng Tài khoản Microsoft
-        github:
-          title: Đăng nhập qua GitHub
-          alt: Đăng nhập dùng tài khoản GitHub
-        wikipedia:
-          title: Đăng nhập qua Wikipedia
-          alt: Đăng nhập qua Tài khoản Wikipedia
-        wordpress:
-          title: Đăng nhập qua WordPress
-          alt: Đăng nhập dùng OpenID của WordPress
-        aol:
-          title: Đăng nhập qua AOL
-          alt: Đăng nhập dùng OpenID của AOL
     destroy:
       title: Đăng xuất
       heading: Đăng xuất OpenStreetMap
     destroy:
       title: Đăng xuất
       heading: Đăng xuất OpenStreetMap
@@ -1825,6 +1921,7 @@ vi:
       legal_2_2_registered_trademarks: nhãn hiệu đăng ký của OSMF
       partners_title: Nhà bảo trợ
     copyright:
       legal_2_2_registered_trademarks: nhãn hiệu đăng ký của OSMF
       partners_title: Nhà bảo trợ
     copyright:
+      title: Bản quyền và Giấy phép
       foreign:
         title: Thông tin về bản dịch này
         html: Trong trường hợp có xung đột giữa trang dịch và trang %{english_original_link},
       foreign:
         title: Thông tin về bản dịch này
         html: Trong trường hợp có xung đột giữa trang dịch và trang %{english_original_link},
@@ -1837,7 +1934,6 @@ vi:
         native_link: bản dịch tiếng Việt
         mapping_link: bắt đầu vẽ bản đồ
       legal_babble:
         native_link: bản dịch tiếng Việt
         mapping_link: bắt đầu vẽ bản đồ
       legal_babble:
-        title_html: Bản quyền và Giấy phép
         introduction_1_html: |-
           OpenStreetMap%{registered_trademark_link} là %{open_data} được %{osm_foundation_link} (OSMF) phát hành theo
           %{odc_odbl_link} (ODbL).
         introduction_1_html: |-
           OpenStreetMap%{registered_trademark_link} là %{open_data} được %{osm_foundation_link} (OSMF) phát hành theo
           %{odc_odbl_link} (ODbL).
@@ -1918,6 +2014,9 @@ vi:
         contributors_fi_finland: Phần Lan
         contributors_fi_nlsfi_license: Giấy phép NLSFI
         contributors_fr_france: Pháp
         contributors_fi_finland: Phần Lan
         contributors_fi_nlsfi_license: Giấy phép NLSFI
         contributors_fr_france: Pháp
+        contributors_hr_croatia: Croatia
+        contributors_hr_dgu: Cơ quan Quản lý Trắc địa Nhà nước Croatia
+        contributors_hr_open_data_portal: Cổng Dữ liệu Mở Quốc gia
         contributors_nl_credit_html: '%{netherlands}: Chứa dữ liệu © AND, 2007
           (%{and_link})'
         contributors_nl_netherlands: Hà Lan
         contributors_nl_credit_html: '%{netherlands}: Chứa dữ liệu © AND, 2007
           (%{and_link})'
         contributors_nl_netherlands: Hà Lan
@@ -1928,6 +2027,8 @@ vi:
         contributors_nz_linz_data_service: Dịch vụ Dữ liệu LINZ
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_serbia: Serbia
         contributors_nz_linz_data_service: Dịch vụ Dữ liệu LINZ
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_serbia: Serbia
+        contributors_rs_rgz: Cơ quan Trắc địa Serbia
+        contributors_rs_open_data_portal: Cổng Dữ liệu Mở Quốc gia
         contributors_si_slovenia: Slovenia
         contributors_es_spain: Tây Ban Nha
         contributors_es_cc_by: CC BY 4.0
         contributors_si_slovenia: Slovenia
         contributors_es_spain: Tây Ban Nha
         contributors_es_cc_by: CC BY 4.0
@@ -1951,9 +2052,6 @@ vi:
     index:
       js_1: Hoặc trình duyệt của bạn không hỗ trợ JavaScript, hoặc bạn đã tắt JavaScript.
       js_2: OpenStreetMap sử dụng JavaScript cho chức năng bản đồ trơn.
     index:
       js_1: Hoặc trình duyệt của bạn không hỗ trợ JavaScript, hoặc bạn đã tắt JavaScript.
       js_2: OpenStreetMap sử dụng JavaScript cho chức năng bản đồ trơn.
-      permalink: Liên kết Thường trực
-      shortlink: Liên kết Ngắn gọn
-      createnote: Thêm ghi chú
       license:
         copyright: Bản quyền của OpenStreetMap và những người đóng góp, được phát
           hành theo giấy phép mở
       license:
         copyright: Bản quyền của OpenStreetMap và những người đóng góp, được phát
           hành theo giấy phép mở
@@ -1966,8 +2064,6 @@ vi:
       user_page_link: trang cá nhân
       anon_edits_link_text: Tại sao vậy?
       id_not_configured: iD chưa được cấu hình
       user_page_link: trang cá nhân
       anon_edits_link_text: Tại sao vậy?
       id_not_configured: iD chưa được cấu hình
-      no_iframe_support: Tính năng này cần trình duyệt hỗ trợ khung nội bộ (iframe)
-        trong HTML.
     export:
       title: Xuất
       manually_select: Chọn vùng khác thủ công
     export:
       title: Xuất
       manually_select: Chọn vùng khác thủ công
@@ -2191,7 +2287,14 @@ vi:
         tag: Thẻ
       rules:
         title: Quy định!
         tag: Thẻ
       rules:
         title: Quy định!
+        para_1_html: OpenStreetMap có ít quy tắc chính thức nhưng yêu cầu mọi người
+          muốn tham gia phải cộng tác và liên lạc với cộng đồng. Nếu bạn đang tính
+          thực hiện tác vụ nào không phải sửa đổi thủ công, xin vui lòng đọc và tuân
+          theo các hướng dẫn tại %{imports_link} và %{automated_edits_link}.
+        imports: Nhập Dữ liệu
+        automated_edits: Sửa đổi Tự động
       start_mapping: Bắt đầu Đóng góp
       start_mapping: Bắt đầu Đóng góp
+      continue_authorization: Tiếp tục Cấp quyền
       add_a_note:
         title: Không có Thì giờ Sửa đổi? Thêm một Ghi chú!
         para_1: Nếu bạn chỉ muốn sửa một chi tiết nhỏ và không có thì giờ tập sửa
       add_a_note:
         title: Không có Thì giờ Sửa đổi? Thêm một Ghi chú!
         para_1: Nếu bạn chỉ muốn sửa một chi tiết nhỏ và không có thì giờ tập sửa
@@ -2276,9 +2379,6 @@ vi:
       trace_not_found: Không tìm thấy tuyến đường!
       visibility: 'Mức độ truy cập:'
       confirm_delete: Xóa tuyến đường này?
       trace_not_found: Không tìm thấy tuyến đường!
       visibility: 'Mức độ truy cập:'
       confirm_delete: Xóa tuyến đường này?
-    trace_paging_nav:
-      older: Tuyến đường Cũ hơn
-      newer: Tuyến đường Mới hơn
     trace:
       pending: CHƯA XỬ
       count_points:
     trace:
       pending: CHƯA XỬ
       count_points:
@@ -2291,20 +2391,27 @@ vi:
       identifiable: NHẬN RA ĐƯỢC
       private: RIÊNG
       trackable: THEO DÕI ĐƯỢC
       identifiable: NHẬN RA ĐƯỢC
       private: RIÊNG
       trackable: THEO DÕI ĐƯỢC
-      by: bởi
-      in: trong
+      details_with_tags_html: '%{time_ago} bởi %{user} trong %{tags}'
+      details_without_tags_html: '%{time_ago} bởi %{user}'
     index:
       public_traces: Tuyến đường GPS công khai
       my_gps_traces: Tuyến GPS của Tôi
       public_traces_from: Tuyến đường GPS công khai của %{user}
       description: Xem những tuyến đường GPS được tải lên gần đây
       tagged_with: ' có thẻ %{tags}'
     index:
       public_traces: Tuyến đường GPS công khai
       my_gps_traces: Tuyến GPS của Tôi
       public_traces_from: Tuyến đường GPS công khai của %{user}
       description: Xem những tuyến đường GPS được tải lên gần đây
       tagged_with: ' có thẻ %{tags}'
+      empty_title: Chưa có gì ở đây
+      empty_upload_html: '%{upload_link} hoặc tìm hiểu thêm về việc tạo tuyến đường
+        GPS tại %{wiki_link}.'
+      upload_new: Tải lên tuyến đường mới
       wiki_page: trang wiki
       upload_trace: Tải lên tuyến đường
       all_traces: Tất cả các Tuyến đường
       my_traces: Tuyến đường của Tôi
       traces_from: Tuyến đường Công khai của %{user}
       remove_tag_filter: Loại bỏ Bộ lọc Thẻ
       wiki_page: trang wiki
       upload_trace: Tải lên tuyến đường
       all_traces: Tất cả các Tuyến đường
       my_traces: Tuyến đường của Tôi
       traces_from: Tuyến đường Công khai của %{user}
       remove_tag_filter: Loại bỏ Bộ lọc Thẻ
+    page:
+      older: Tuyến đường Cũ hơn
+      newer: Tuyến đường Mới hơn
     destroy:
       scheduled_for_deletion: Tuyến đường chờ được xóa
     make_public:
     destroy:
       scheduled_for_deletion: Tuyến đường chờ được xóa
     make_public:
@@ -2325,8 +2432,6 @@ vi:
     require_cookies:
       cookies_needed: Hình như đã tắt cookie. Xin hãy bật lên chức năng cookie trong
         trình duyệt để tiếp tục.
     require_cookies:
       cookies_needed: Hình như đã tắt cookie. Xin hãy bật lên chức năng cookie trong
         trình duyệt để tiếp tục.
-    require_admin:
-      not_an_admin: Chỉ các quản lý viên có quyền thực hiện tác vụ đó.
     setup_user_auth:
       blocked_zero_hour: Bạn có tin nhắn mới rất quan trọng tại trang OpenStreetMap.
         Bạn phải đọc tin nhắn này trước khi được phép lưu thêm thay đổi.
     setup_user_auth:
       blocked_zero_hour: Bạn có tin nhắn mới rất quan trọng tại trang OpenStreetMap.
         Bạn phải đọc tin nhắn này trước khi được phép lưu thêm thay đổi.
@@ -2337,35 +2442,30 @@ vi:
         các điều khoản nhưng ít nhất phải đọc chúng.
     settings_menu:
       account_settings: Thiết lập Tài khoản
         các điều khoản nhưng ít nhất phải đọc chúng.
     settings_menu:
       account_settings: Thiết lập Tài khoản
-      oauth1_settings: Thiết lập OAuth 1
       oauth2_applications: Ứng dụng OAuth 2
       oauth2_authorizations: Ủy quyền OAuth 2
       oauth2_applications: Ứng dụng OAuth 2
       oauth2_authorizations: Ủy quyền OAuth 2
+      muted_users: Người dùng bị Tắt tiếng
+    auth_providers:
+      openid_login_button: Tiếp tục
+      openid:
+        title: Đăng nhập qua OpenID
+        alt: Biểu trưng OpenID
+      google:
+        title: Đăng nhập qua Google
+        alt: Biểu trưng Google
+      facebook:
+        title: Đăng nhập qua Facebook
+        alt: Biểu trưng Facebook
+      microsoft:
+        title: Đăng nhập qua Microsoft
+        alt: Biểu trưng Microsoft
+      github:
+        title: Đăng nhập qua GitHub
+        alt: Biểu trưng GitHub
+      wikipedia:
+        title: Đăng nhập qua Wikipedia
+        alt: Biểu trưng Wikipedia
   oauth:
   oauth:
-    authorize:
-      title: Cho phép truy cập tài khoản của bạn
-      request_access_html: Chương trình %{app_name} xin phép truy cập tài khoản của
-        bạn, %{user}. Xin hãy chọn những khả năng mà bạn muốn cấp cho chương trình
-        này. Bạn có thể chọn nhiều hay ít khả năng tùy ý.
-      allow_to: 'Cho phép trình khách:'
-      allow_read_prefs: truy cập tùy chọn cá nhân.
-      allow_write_prefs: thay đổi tùy chọn cá nhân.
-      allow_write_diary: tạo mục trong nhật ký, bình luận, và kết bạn.
-      allow_write_api: sửa đổi bản đồ.
-      allow_read_gpx: truy cập các tuyến đường GPS bí mật của bạn.
-      allow_write_gpx: tải lên tuyến đường GPS.
-      allow_write_notes: thay đổi ghi chú.
-      grant_access: Cấp phép Truy cập
-    authorize_success:
-      title: Yêu cầu cho phép được chấp nhận
-      allowed_html: Bạn đã cho phép ứng dụng %{app_name} truy cập tài khoản của bạn.
-      verification: Mã xác minh là %{code}.
-    authorize_failure:
-      title: Yêu cầu cho phép bị thất bại
-      denied: Bạn đã từ chối ứng dụng %{app_name} không được phép truy cập tài khoản
-        của bạn.
-      invalid: Dấu hiệu cho phép không hợp lệ.
-    revoke:
-      flash: Bạn đã thu hồi dấu của %{application}
     permissions:
       missing: Bạn chưa cấp phép cho ứng dụng sử dụng chức năng này
     scopes:
     permissions:
       missing: Bạn chưa cấp phép cho ứng dụng sử dụng chức năng này
     scopes:
@@ -2377,49 +2477,11 @@ vi:
       read_gpx: Đọc tuyến đường GPS riêng tư
       write_gpx: Tải lên tuyến đường GPS
       write_notes: Thay đổi ghi chú
       read_gpx: Đọc tuyến đường GPS riêng tư
       write_gpx: Tải lên tuyến đường GPS
       write_notes: Thay đổi ghi chú
+      write_redactions: Ẩn dữ liệu bản đồ
       read_email: Đọc địa chỉ thư điện tử của người dùng
       skip_authorization: Tự động chấp nhận đơn xin
       read_email: Đọc địa chỉ thư điện tử của người dùng
       skip_authorization: Tự động chấp nhận đơn xin
-  oauth_clients:
-    new:
-      title: Đăng ký chương trình mới
-    edit:
-      title: Sửa đổi chương trình của bạn
-    show:
-      title: Chi tiết OAuth của %{app_name}
-      key: 'Từ khóa Tiêu dùng:'
-      secret: 'Mật khẩu Tiêu dùng:'
-      url: 'URL của Dấu Yêu cầu:'
-      access_url: 'URL của Dấu Truy cập:'
-      authorize_url: 'Cho phép URL:'
-      support_notice: Chúng tôi hỗ trợ các chữ ký HMAC-SHA1 (khuyên dùng) và RSA-SHA1.
-      edit: Sửa đổi Chi tiết
-      delete: Xóa Trình khách
-      confirm: Bạn có chắc không?
-      requests: 'Yêu cầu các khả năng của người dùng ở dưới:'
-    index:
-      title: Chi tiết OAuth của Tôi
-      my_tokens: Chương trình Tôi Cho phép
-      list_tokens: 'Các dấu ở dưới được gửi cho chương trình dùng tên của bạn:'
-      application: Tên Chương trình
-      issued_at: Lúc Cho phép
-      revoke: Thu hồi!
-      my_apps: Trình khách của Tôi
-      no_apps_html: Bạn có muốn đăng ký chương trình của bạn với chúng tôi dùng tiêu
-        chuẩn %{oauth}? Bạn cần phải đăng ký chương trình Web trước khi gửi yêu cầu
-        OAuth được.
-      oauth: OAuth
-      registered_apps: 'Các trình khá ở dưới đã được đăng ký:'
-      register_new: Đăng ký chương trình của bạn
-    form:
-      requests: 'Yêu cầu các khả năng của người dùng ở dưới:'
-    not_found:
-      sorry: Rất tiếc, không tìm thấy %{type} đó.
-    create:
-      flash: Đã đăng ký thông tin thành công
-    update:
-      flash: Đã cập nhật thông tin trình khách thành công
-    destroy:
-      flash: Đã xóa đăng ký trình khách
+    for_roles:
+      moderator: Chỉ có điều hành viên có quyền thực hiện tác vụ này
   oauth2_applications:
     index:
       title: Ứng dụng khách của tôi
   oauth2_applications:
     index:
       title: Ứng dụng khách của tôi
@@ -2465,6 +2527,7 @@ vi:
       title: Ứng dụng tôi cho phép
       application: Ứng dụng
       permissions: Quyền
       title: Ứng dụng tôi cho phép
       application: Ứng dụng
       permissions: Quyền
+      last_authorized: Cấp quyền Lần cuối
       no_applications_html: Bạn chưa cấp phép cho ứng dụng %{oauth2} nào.
     application:
       revoke: Rút quyền Truy cập
       no_applications_html: Bạn chưa cấp phép cho ứng dụng %{oauth2} nào.
     application:
       revoke: Rút quyền Truy cập
@@ -2472,31 +2535,46 @@ vi:
   users:
     new:
       title: Mở tài khoản
   users:
     new:
       title: Mở tài khoản
+      tab_title: Mở tài khoản
+      signup_to_authorize_html: Mở tài khoản OpenStreetMap để truy cập %{client_app_name}.
       no_auto_account_create: Rất tiếc, chúng ta hiện không có khả năng tạo ra tài
         khoản tự động cho bạn.
       please_contact_support_html: Vui lòng liên hệ với %{support_link} để yêu cầu
         tạo tài khoản – chúng tôi sẽ cố gắng giải quyết yêu cầu nhanh nhất có thể.
       support: hỗ trợ
       about:
       no_auto_account_create: Rất tiếc, chúng ta hiện không có khả năng tạo ra tài
         khoản tự động cho bạn.
       please_contact_support_html: Vui lòng liên hệ với %{support_link} để yêu cầu
         tạo tài khoản – chúng tôi sẽ cố gắng giải quyết yêu cầu nhanh nhất có thể.
       support: hỗ trợ
       about:
-        header: Tự do sử dụng và sửa đổi
+        header: Tự do sử dụng và sửa đổi.
         paragraph_1: Không giống như với các bản đồ kia, OpenStreetMap được xây dựng
           hoàn toàn nhờ những người như bạn, và mọi người có thể tự do sửa chữa, cập
           nhật, tải về, và sử dụng miễn phí.
         paragraph_1: Không giống như với các bản đồ kia, OpenStreetMap được xây dựng
           hoàn toàn nhờ những người như bạn, và mọi người có thể tự do sửa chữa, cập
           nhật, tải về, và sử dụng miễn phí.
-        paragraph_2: Hãy mở tài khoản để bắt đầu đóng góp. Chúng tôi sẽ gửi thư điện
-          tử cho bạn để xác nhận tài khoản của bạn.
+        paragraph_2: Hãy mở tài khoản để bắt đầu đóng góp.
+        welcome: Chào mừng đến OpenStreetMap
+      duplicate_social_email: Nếu bạn đã có tài khoản OpenStreetMap và muốn sử dụng
+        nhà cung cấp danh tính bên thứ ba, xin vui lòng đăng nhập dùng mật khẩu của
+        bạn và thay đổi tùy chọn tài khoản.
       display name description: Tên người dùng của bạn được hiển thị công khai. Bạn
         có thể thay đổi tên này về sau trong tùy chọn.
       display name description: Tên người dùng của bạn được hiển thị công khai. Bạn
         có thể thay đổi tên này về sau trong tùy chọn.
+      by_signing_up:
+        html: Bằng cách mở tài khoản, bạn chấp nhận %{tou_link}, %{privacy_policy_link},
+          và %{contributor_terms_link} của chúng tôi.
+        privacy_policy: quy định về quyền riêng tư
+        privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về
+          địa chỉ thư điện tử
+        contributor_terms: các điều kiện đóng góp
+      tou: các điều khoản sử dụng
       external auth: 'Xác minh qua Dịch vụ Bên thứ ba:'
       external auth: 'Xác minh qua Dịch vụ Bên thứ ba:'
-      use external auth: Hoặc đăng nhập qua dịch vụ bên thứ ba
-      auth no password: Nếu xác minh qua dịch vụ bên thứ ba, bạn không cần nhập mật
-        khẩu, nhưng một số công cụ hoặc máy chủ khác có thể vẫn yêu cầu mật khẩu.
       continue: Mở tài khoản
       terms accepted: Cám ơn bạn đã chấp nhận các điều khoản đóng góp mới!
       continue: Mở tài khoản
       terms accepted: Cám ơn bạn đã chấp nhận các điều khoản đóng góp mới!
-      email_confirmation_help_html: Địa chỉ thư điện tử không được hiển thị công khai,
-        xem thêm thông tin trong %{privacy_policy_link} của chúng tôi.
-      privacy_policy: quy định về quyền riêng tư
-      privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về địa
-        chỉ thư điện tử
+      email_help:
+        privacy_policy: quy định về quyền riêng tư
+        privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về
+          địa chỉ thư điện tử
+        html: Địa chỉ thư điện tử không được hiển thị công khai, xem thêm thông tin
+          trong %{privacy_policy_link} của chúng tôi.
+      consider_pd_html: Tôi coi những đóng góp của mình thuộc về %{consider_pd_link}.
+      consider_pd: phạm vi công cộng
+      or: hoặc
+      use external auth: hoặc mở tài khoản qua dịch vụ bên thứ ba
     terms:
       title: Điều khoản
       heading: Điều khoản
     terms:
       title: Điều khoản
       heading: Điều khoản
@@ -2552,6 +2630,8 @@ vi:
       my_dashboard: Bảng điều khiển
       blocks on me: Tác vụ Cấm Tôi
       blocks by me: Tác vụ Cấm bởi Tôi
       my_dashboard: Bảng điều khiển
       blocks on me: Tác vụ Cấm Tôi
       blocks by me: Tác vụ Cấm bởi Tôi
+      create_mute: Tắt tiếng Người dùng Này
+      destroy_mute: Bật tiếng Người dùng Này
       edit_profile: Sửa đổi Hồ sơ
       send message: Gửi Thư
       diary: Nhật ký
       edit_profile: Sửa đổi Hồ sơ
       send message: Gửi Thư
       diary: Nhật ký
@@ -2561,6 +2641,8 @@ vi:
       remove as friend: Hủy Kết Bạn
       add as friend: Kết Bạn
       mapper since: 'Tham gia:'
       remove as friend: Hủy Kết Bạn
       add as friend: Kết Bạn
       mapper since: 'Tham gia:'
+      last map edit: 'Sửa đổi bản đồ cuối cùng:'
+      no activity yet: Chưa có hoạt động nào
       uid: 'Số người dùng:'
       ct status: 'Điều khoản đóng góp:'
       ct undecided: Chưa quyết định
       uid: 'Số người dùng:'
       ct status: 'Điều khoản đóng góp:'
       ct undecided: Chưa quyết định
@@ -2572,14 +2654,18 @@ vi:
       role:
         administrator: Người dùng này là quản lý viên
         moderator: Người dùng này là điều hành viên
       role:
         administrator: Người dùng này là quản lý viên
         moderator: Người dùng này là điều hành viên
+        importer: Người dùng này là người nhập dữ liệu
         grant:
           administrator: Cấp quyền quản lý viên
           moderator: Cấp quyền điều hành viên
         grant:
           administrator: Cấp quyền quản lý viên
           moderator: Cấp quyền điều hành viên
+          importer: Cấp quyền truy cập cho người nhập dữ liệu
         revoke:
           administrator: Rút quyền quản lý viên
           moderator: Rút quyền điều hành viên
         revoke:
           administrator: Rút quyền quản lý viên
           moderator: Rút quyền điều hành viên
+          importer: Rút quyền truy cập của người nhập dữ liệu
       block_history: Tác vụ Cấm Người Này
       moderator_history: Tác vụ Cấm bởi Người Này
       block_history: Tác vụ Cấm Người Này
       moderator_history: Tác vụ Cấm bởi Người Này
+      revoke_all_blocks: Bỏ cấm toàn bộ
       comments: Bình luận
       create_block: Cấm Người dùng Này
       activate_user: Kích hoạt Tài khoản Này
       comments: Bình luận
       create_block: Cấm Người dùng Này
       activate_user: Kích hoạt Tài khoản Này
@@ -2597,14 +2683,16 @@ vi:
     index:
       title: Người dùng
       heading: Người dùng
     index:
       title: Người dùng
       heading: Người dùng
-      showing:
-        one: Trang %{page} (%{first_item} trên tổng %{items})
-        other: Trang %{page} (%{first_item}–%{last_item} trên tổng %{items})
       summary_html: '%{name} do %{ip_address} mở ngày %{date}'
       summary_no_ip_html: '%{name} mở ngày %{date}'
       summary_html: '%{name} do %{ip_address} mở ngày %{date}'
       summary_no_ip_html: '%{name} mở ngày %{date}'
+      empty: Không tìm thấy người dùng.
+    page:
+      older: Người dùng Lâu hơn
+      newer: Người dùng Mới hơn
+      found_users:
+        other: Đã tìm thấy %{count} người dùng
       confirm: Xác nhận những Người dùng Được chọn
       hide: Ẩn những Người dùng Được chọn
       confirm: Xác nhận những Người dùng Được chọn
       hide: Ẩn những Người dùng Được chọn
-      empty: Không tìm thấy người dùng.
     suspended:
       title: Tài khoản bị Cấm
       heading: Tài khoản bị Cấm
     suspended:
       title: Tài khoản bị Cấm
       heading: Tài khoản bị Cấm
@@ -2639,15 +2727,11 @@ vi:
       heading: Xác nhận cấp vai trò
       are_you_sure: Bạn có chắc muốn cấp vai trò “%{role}” cho người dùng “%{name}”?
       confirm: Xác nhận
       heading: Xác nhận cấp vai trò
       are_you_sure: Bạn có chắc muốn cấp vai trò “%{role}” cho người dùng “%{name}”?
       confirm: Xác nhận
-      fail: Không thể cấp vai trò “%{role}” cho người dùng “%{name}”. Vui lòng kiểm
-        tra rằng tên người dùng và vai trò đều hợp lệ.
     revoke:
       title: Xác nhận rút vai trò
       heading: Xác nhận rút vai trò
       are_you_sure: Bạn có chắc muốn rút vai trò “%{role}” của người dùng “%{name}”?
       confirm: Xác nhận
     revoke:
       title: Xác nhận rút vai trò
       heading: Xác nhận rút vai trò
       are_you_sure: Bạn có chắc muốn rút vai trò “%{role}” của người dùng “%{name}”?
       confirm: Xác nhận
-      fail: Không thể rút vai trò “%{role}” của người dùng “%{name}”. Vui lòng kiểm
-        tra rằng tên người dùng và vai trò đều hợp lệ.
   user_blocks:
     model:
       non_moderator_update: Chỉ có các điều hành viên được phép cấm hay cập nhật tác
   user_blocks:
     model:
       non_moderator_update: Chỉ có các điều hành viên được phép cấm hay cập nhật tác
@@ -2660,16 +2744,12 @@ vi:
       title: Cấm %{name}
       heading_html: Cấm %{name}
       period: Thời gian cấm người dùng không được dùng API, bắt đầu từ lúc bây giờ.
       title: Cấm %{name}
       heading_html: Cấm %{name}
       period: Thời gian cấm người dùng không được dùng API, bắt đầu từ lúc bây giờ.
-      back: Xem tất cả tác vụ cấm
     edit:
       title: Sửa đổi tác vụ cấm %{name}
       heading_html: Sửa đổi tác vụ cấm %{name}
       period: Thời gian người dùng bị cấm không được dùng API, bắt đầu từ lúc bây
         giờ.
     edit:
       title: Sửa đổi tác vụ cấm %{name}
       heading_html: Sửa đổi tác vụ cấm %{name}
       period: Thời gian người dùng bị cấm không được dùng API, bắt đầu từ lúc bây
         giờ.
-      show: Xem tác vụ cấm này
-      back: Xem tất cả tác vụ cấm
     filter:
     filter:
-      block_expired: Không thể sửa đổi tác vụ cấm này vì nó đã hết hạn.
       block_period: Thời hạn cấm phải là một trong những giá trị từ danh sách kéo
         xuống.
     create:
       block_period: Thời hạn cấm phải là một trong những giá trị từ danh sách kéo
         xuống.
     create:
@@ -2682,14 +2762,15 @@ vi:
       title: Người dùng bị cấm
       heading: Danh sách người dùng đang bị cấm
       empty: Chưa ai bị cấm.
       title: Người dùng bị cấm
       heading: Danh sách người dùng đang bị cấm
       empty: Chưa ai bị cấm.
-    revoke:
-      title: Bỏ cấm %{block_on}
-      heading_html: Bỏ tác vụ cấm %{block_on} bởi %{block_by}
-      time_future_html: Tác vụ cấm này sẽ hết hạn cách đây %{time}.
-      past_html: Tác vụ cấm này đã hết hạn %{time} nên không bỏ được.
-      confirm: Bạn có chắc muốn bỏ cấm người này?
+    revoke_all:
+      title: Bỏ cấm tất cả vào %{block_on}
+      heading_html: Bỏ cấm tất cả vào %{block_on}
+      empty: '%{name} hiện không được cấm.'
+      confirm: Bạn có chắc chắn muốn bỏ %{active_blocks}?
+      active_blocks:
+        other: '%{count} tác vụ cấm hiện hành'
       revoke: Bỏ cấm!
       revoke: Bỏ cấm!
-      flash: Đã bỏ cấm.
+      flash: Đã bỏ tất cả các tác vụ cấm hiện hành.
     helper:
       time_future_html: Hết hạn %{time}.
       until_login: Có hiệu lực cho đến khi người dùng đăng nhập.
     helper:
       time_future_html: Hết hạn %{time}.
       until_login: Có hiệu lực cho đến khi người dùng đăng nhập.
@@ -2723,26 +2804,52 @@ vi:
       status: 'Trạng thái:'
       show: Hiện
       edit: Sửa đổi
       status: 'Trạng thái:'
       show: Hiện
       edit: Sửa đổi
-      revoke: Bỏ cấm!
       confirm: Bạn có chắc không?
       reason: 'Lý do cấm:'
       confirm: Bạn có chắc không?
       reason: 'Lý do cấm:'
-      back: Xem tất cả tác vụ cấm
       revoker: 'Người bỏ cấm:'
       needs_view: Người dùng cần phải đăng nhập trước khi bỏ cấm được.
     block:
       not_revoked: (không bị hủy)
       show: Hiện
       edit: Sửa đổi
       revoker: 'Người bỏ cấm:'
       needs_view: Người dùng cần phải đăng nhập trước khi bỏ cấm được.
     block:
       not_revoked: (không bị hủy)
       show: Hiện
       edit: Sửa đổi
-      revoke: Bỏ cấm!
     blocks:
       display_name: Người bị cấm
       creator_name: Người cấm
       reason: Lý do cấm
       status: Trạng thái
       revoker_name: Người bỏ cấm
     blocks:
       display_name: Người bị cấm
       creator_name: Người cấm
       reason: Lý do cấm
       status: Trạng thái
       revoker_name: Người bỏ cấm
-      showing_page: Trang %{page}
-      next: Sau »
-      previous: « Trước
+      older: Tác vụ Cấm Cũ hơn
+      newer: Tác vụ Cấm Mới hơn
+    navigation:
+      all_blocks: Tất cả các Tác vụ Cấm
+      blocks_on_me: Tác vụ Cấm Tôi
+      blocks_on_user: Tác vụ Cấm %{user}
+      blocks_by_me: Tác vụ Cấm bởi Tôi
+      blocks_by_user: Tác vụ Cấm bởi %{user}
+      block: Tác vụ cấm số %{id}
+  user_mutes:
+    index:
+      title: Người dùng bị Tắt tiếng
+      my_muted_users: Người dùng Tôi đã Tắt tiếng
+      you_have_muted_n_users:
+        other: Bạn đã tắt tiếng %{count} người dùng
+      user_mute_explainer: Các thư từ người dùng bị tắt tiếng được chuyển sang Hộp
+        thư điện riêng và bạn sẽ không nhận thông báo qua thư điện tử.
+      user_mute_admins_and_moderators: Bạn có thể tắt tiếng các Quản trị viên và Điều
+        phối viên nhưng các thông điệp của họ sẽ không bị tắt tiếng.
+      table:
+        thead:
+          muted_user: Người dùng bị Tắt tiếng
+          actions: Tác vụ
+        tbody:
+          unmute: Bật tiếng
+          send_message: Gửi thư
+    create:
+      notice: Bạn đã tắt tiếng %{name}.
+      error: Không thể tắt tiếng %{name}. %{full_message}.
+    destroy:
+      notice: Bạn đã bật tiếng %{name}.
+      error: Không thể bật tiếng người dùng. Vui lòng thử lại.
   notes:
     index:
       title: Các ghi chú do %{user} lưu hoặc bình luận
   notes:
     index:
       title: Các ghi chú do %{user} lưu hoặc bình luận
@@ -2792,6 +2899,10 @@ vi:
       intro: Bản đồ có thiếu gì hay sai lầm không? Hãy báo cho chúng tôi để chúng
         tôi sửa chữa bản đồ. Chỉ việc kéo ghim vào vị trí đúng và viết lời giải thích
         vấn đề.
       intro: Bản đồ có thiếu gì hay sai lầm không? Hãy báo cho chúng tôi để chúng
         tôi sửa chữa bản đồ. Chỉ việc kéo ghim vào vị trí đúng và viết lời giải thích
         vấn đề.
+      anonymous_warning_html: Bạn chưa đăng nhập. Để nhận được các thông báo về lời
+        ghi chú của bạn, xin vui lòng %{log_in} hoặc %{sign_up}.
+      anonymous_warning_log_in: đăng nhập
+      anonymous_warning_sign_up: mở tài khoản
       advice: Ghi chú của bạn được hiển thị công khai và có thể được sử dụng để cập
         nhật bản đồ. Xin đừng ghi thông tin cá nhân hoặc thông tin lấy từ bản đồ hay
         danh bạ có bản quyền.
       advice: Ghi chú của bạn được hiển thị công khai và có thể được sử dụng để cập
         nhật bản đồ. Xin đừng ghi thông tin cá nhân hoặc thông tin lấy từ bản đồ hay
         danh bạ có bản quyền.
@@ -2869,13 +2980,6 @@ vi:
       queryfeature_tooltip: Thăm dò yếu tố
       queryfeature_disabled_tooltip: Phóng to để thăm dò yếu tố
       embed_html_disabled: Chức năng nhúng HTML không có sẵn đối với lớp bản đồ này
       queryfeature_tooltip: Thăm dò yếu tố
       queryfeature_disabled_tooltip: Phóng to để thăm dò yếu tố
       embed_html_disabled: Chức năng nhúng HTML không có sẵn đối với lớp bản đồ này
-    changesets:
-      show:
-        comment: Bình luận
-        subscribe: Theo dõi
-        unsubscribe: Không theo dõi
-        hide_comment: ẩn
-        unhide_comment: bỏ ẩn
     edit_help: Di chuyển bản đồ và phóng to một vị trí mà bạn muốn sửa đổi, rồi nhấn
       chuột vào đây.
     directions:
     edit_help: Di chuyển bản đồ và phóng to một vị trí mà bạn muốn sửa đổi, rồi nhấn
       chuột vào đây.
     directions: