| 1 | { |
| 2 | "examples.actor.blurb": "Ai đã làm gì, bằng chữ: tên một người, hoặc tác tử và người mà nó thay mặt. Không huy hiệu, không biểu tượng.", |
| 3 | "examples.actor.states.an-agent-acting-for-a-person": "Tên của tác nhân, rồi đến người mà nó đã hành động thay. Khi chính ứng dụng làm việc gì đó, đừng hiển thị gì cả.", |
| 4 | "examples.api-tokens.blurb": "Trang mã thông báo API: phần hiển thị một lần, biểu mẫu tạo, danh sách và các nút thu hồi.", |
| 5 | "examples.api-tokens.states.four-tokens-two-of-them-live": "Các biểu mẫu thu hồi gửi đến /tokens/revoke, /tokens/revoke-agent và /tokens/revoke-all, dưới đường dẫn của chính trang. Hãy trỏ chúng tới nơi ứng dụng của bạn xử lý.", |
| 6 | "examples.api-tokens.states.just-created-the-secret-shown-once": "Hiển thị phần này ngay trong phản hồi cho biểu mẫu tạo, và đừng chuyển hướng nó: bí mật nằm trong phản hồi đó và không ở đâu khác.", |
| 7 | "examples.back-nav.blurb": "Liên kết lùi lên một cấp, đặt phía trên màn hình xem hoặc sửa.", |
| 8 | "examples.badge.blurb": "Một chip có viền, chữ in hoa, dùng cho những dấu hiệu nhỏ và cố định. Khác với status-pill, vốn là trạng thái của bản ghi.", |
| 9 | "examples.box.blurb": "Thẻ mục có đệm, và tiêu đề nằm bên ngoài nó.", |
| 10 | "examples.bulk-bar.blurb": "Dải đầu của chế độ chọn, thay cho thanh danh sách: số lượng, một liên kết mở rộng lựa chọn, và trình đơn hành động.", |
| 11 | "examples.bulk-bar.states.three-rows-selected": "Mục phá hủy nằm cuối cùng: mục đầu tiên mới là thứ biểu mẫu bao quanh chạy ngầm khi nhấn Enter.", |
| 12 | "examples.button.blurb": "Nút có bốn kiểu và ba cỡ, và một liên kết cũng có thể trông như nút. Về vòng quay mà biểu mẫu hiện khi đang gửi, xem form-foot.", |
| 13 | "examples.callout.blurb": "Bộ từ vựng cảnh báo duy nhất: dải có màu, biểu tượng sắc thái, tiêu đề in đậm tùy chọn, và một đoạn nội dung.", |
| 14 | "examples.callout.states.negative-announced-as-an-alert": "role=\"alert\" khiến trình đọc màn hình đọc nó ngay khi nó xuất hiện. Chỉ dùng cho những thông báo không thể chờ.", |
| 15 | "examples.choice-field.blurb": "Thẻ lựa chọn: dạng nhóm nút chọn hoặc hộp kiểm được ưa dùng. Tiêu đề giữ ngắn; phần mô tả để giải thích.", |
| 16 | "examples.confirm-form.blurb": "Hàng hành động của trang xác nhận. Hành động phá hủy có tuyến riêng chứ không phải một hộp thoại, nên chẳng có gì để viết kịch bản.", |
| 17 | "examples.confirm-form.states.ordinary-default-cancel-wording": "Liên kết hủy ghi Hủy, là cách nói thông thường. Hãy đổi khi chính lời của biểu mẫu rõ ràng hơn.", |
| 18 | "examples.detail-list.blurb": "Danh sách định nghĩa về một bản ghi trên màn hình chi tiết. Dấu mono dành cho các giá trị thiên về máy.", |
| 19 | "examples.dropdown.blurb": "Một khối bung mở không dùng chút JavaScript nào: một nút summary trên một bảng gồm các liên kết thường. Hãy đặt nó trong một hàng, cạnh thứ nó tác động tới, đừng bao giờ để nó đứng riêng một dòng.", |
| 20 | "examples.dropdown.states.menu-idiom": "Trình đơn details/summary nằm sau các trình đơn tràn ở đầu trang và bộ lọc của thanh danh sách, cùng một bộ lọc đã áp dụng dưới dạng chip gỡ được.", |
| 21 | "examples.empty-state.blurb": "Thẻ trạng thái trống. Trạng thái trống kèm lối vào cho các bước bắt đầu.", |
| 22 | "examples.error-page.blurb": "Toàn bộ phần thân của một phản hồi lỗi: mã trạng thái, một câu nói thật, một lối quay lại, và mã tham chiếu 500 mà quản trị viên dùng được.", |
| 23 | "examples.error-page.states.500-server-error": "500 là trạng thái duy nhất có mã tham chiếu: người vận hành có thể grep nó trong nhật ký.", |
| 24 | "examples.error-page.states.anything-else-the-generic-pair": "Bất kỳ trạng thái nào không có lời văn riêng đều nhận cặp chung này: một tiêu đề nói có gì đó không ổn và một đoạn nói hãy thử lại.", |
| 25 | "examples.field-check.blurb": "Cơ chế bật tắt duy nhất: một hộp kiểm thật khoác vẻ ngoài công tắc, bàn phím và trình đọc màn hình vẫn nguyên vẹn.", |
| 26 | "examples.field-date.blurb": "Một ô nhập ngày gốc, kèm hộp kết hợp hiểu ngôn ngữ tự nhiên mà datetime.js thêm vào khi ô nhập có data-rst-date. Hãy gõ \"ngày mai\" vào đó.", |
| 27 | "examples.field-date.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Những từ nó phân tích nằm trên data-rst-date-words, ở đây bằng ngôn ngữ của trang. i18n/<lang>.json có chúng bằng mười hai ngôn ngữ, nên ô nhập có thể phân tích bất kỳ ngôn ngữ nào mà trang đang dùng.", |
| 28 | "examples.field-date.states.plain-the-bare-native-input": "Không có thuộc tính tăng cường nào cả, nên datetime.js chẳng tìm thấy gì. Bộ chọn gốc vẫn mở được.", |
| 29 | "examples.field-daterange.blurb": "Một điểm bắt đầu và một điểm kết thúc trong cùng một fieldset có nhãn. Hãy cho mỗi ô nhập name và id riêng.", |
| 30 | "examples.field-daterange.states.date-and-time-seeded": "Chốt thời điểm bắt đầu khi phần kết thúc còn trống, datetime.js sẽ điền kết thúc là một giờ sau đó. Không có gì trong mã đánh dấu làm việc này; script làm.", |
| 31 | "examples.field-datetime.blurb": "Ngày và giờ trong một ô nhập, một giá trị.", |
| 32 | "examples.field-datetime.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Những từ nó phân tích nằm trên data-rst-date-words, ở đây bằng ngôn ngữ của trang. i18n/<lang>.json có chúng bằng mười hai ngôn ngữ, nên ô nhập có thể phân tích bất kỳ ngôn ngữ nào mà trang đang dùng.", |
| 33 | "examples.field-datetime.states.plain-the-bare-native-input": "Không có thuộc tính tăng cường nào cả, nên datetime.js chẳng tìm thấy gì. Bộ chọn gốc vẫn mở được.", |
| 34 | "examples.field-money.blurb": "Một khoản tiền bằng một loại tiền tệ. Mã tiền tệ hiện cạnh nhãn và được gửi cùng biểu mẫu, nên nếu tiền tệ đổi trong lúc ai đó đang gõ thì sẽ bị phát hiện khi lưu.", |
| 35 | "examples.field-select.blurb": "Phần bao của trường quanh một select gốc. Thêm data-rst-select và select.js biến nó thành hộp kết hợp có bộ lọc; thứ biểu mẫu gửi đi vẫn là select gốc. Đáng dùng từ khoảng mười lựa chọn trở lên.", |
| 36 | "examples.field-select.states.hand-written-with-optgroups": "Các lựa chọn theo nhóm là optgroup do bạn tự viết. select.js giữ lại các nhóm thay vì bỏ chúng đi; một select cũng có thể từ chối hẳn phần nâng cấp bằng data-rst-select=\"false\".", |
| 37 | "examples.field-select.states.twelve-options-the-filterable-combobox": "Thêm data-rst-select từ khoảng mười lựa chọn. Ít hơn thì bỏ đi: tìm kiếm trong một nhúm mục chỉ là đồ trang trí, không phải trợ giúp.", |
| 38 | "examples.field-text.blurb": "Một ô nhập văn bản có nhãn. Dấu sao của ký hiệu bắt buộc là aria-hidden; tín hiệu cho chương trình là thuộc tính required của ô nhập.", |
| 39 | "examples.field-text.states.the-headline-field": "Hãy cho trường chính của biểu mẫu, một tiêu đề hay một cái tên, rst-input=\"primary\" để ô nhập nổi bật hơn.", |
| 40 | "examples.field-textarea.blurb": "Lớp vỏ của field-text bọc quanh một textarea.", |
| 41 | "examples.field-time.blurb": "Cũng lớp vỏ ấy, lần này bọc quanh một ô nhập giờ gốc. Phần tăng cường đọc đồng hồ chứ không đọc lịch.", |
| 42 | "examples.field-url.blurb": "Một ô địa chỉ web nhận example.com có hoặc không có https://. Thứ đọc biểu mẫu phải tự thêm giao thức và kiểm tra địa chỉ.", |
| 43 | "examples.field.blurb": "Nhãn, ô nhập, gợi ý tuỳ chọn, trợ giúp và lỗi. Điều khiển dạng chữ thông thường, có ID rõ ràng.", |
| 44 | "examples.form-error.blurb": "Dòng tóm tắt lỗi của biểu mẫu, role=\"alert\". Bỏ nó đi khi không có lỗi.", |
| 45 | "examples.form-foot.blurb": "Hàng kết thúc của biểu mẫu: một nút gửi chính và một liên kết hủy tùy chọn. Hủy là một liên kết, vì rời khỏi biểu mẫu là chuyển trang.", |
| 46 | "examples.form-foot.states.idle-the-button-before-anything-happens": "Nút THAY ĐỔI một thứ gì đó có trạng thái đang tải; nút chỉ để lộ ra một thứ, ví dụ một phần mở rộng, một menu thả xuống, một thẻ, thì không. busy.js áp dụng quy tắc đó cho mọi nút gửi trong mọi biểu mẫu, không cần bật gì.", |
| 47 | "examples.form-foot.states.working-what-busy-js-writes-on-the-way-out": "Chỉ nút đã được bấm: mọi nút gửi khác trong biểu mẫu vẫn giữ name và value của chúng, và chính biểu mẫu được bảo vệ khỏi lần gửi thứ hai. data-busy=\"false\" để tắt, trên biểu mẫu hoặc trên một nút; data-busy-label thay chữ. Khi tắt script thì không điều gì trong số này xảy ra và biểu mẫu được gửi đúng như trước giờ, nên bắt lần gửi thứ hai vẫn là việc của ứng dụng bạn.", |
| 48 | "examples.form-layout.blurb": "Các thuộc tính cho biểu mẫu nhịp điệu và thanh lưu của nó. Chúng bao quanh một loạt trường do chính bạn sắp xếp.", |
| 49 | "examples.format-abbr.blurb": "Thẻ <abbr> hiện cách viết đầy đủ khi bạn rê chuột. Điều đó không hoạt động trên điện thoại, và trình đọc màn hình thường bỏ qua. Lần đầu tiên, hãy viết đầy đủ các từ ra luôn.", |
| 50 | "examples.format-addresses.blurb": "Thẻ <address> không dùng cho địa chỉ bưu chính. Nó dùng để cho biết ai đã viết trang này. Địa chỉ giao hàng là văn bản thường. Danh sách nhân sự là một danh sách.", |
| 51 | "examples.format-dates.blurb": "Đặt ngày trong thẻ <time>, kèm một dạng ngày mà máy tính đọc được. Còn ngày hiển thị thì viết theo cách người đọc của bạn quen nhìn. Fiesta sẽ không định dạng giúp bạn.", |
| 52 | "examples.format-durations.blurb": "Khoảng thời gian cũng dùng <time>. Dạng máy đọc trông lạ mắt: PT2H30M nghĩa là 2 giờ 30 phút.", |
| 53 | "examples.format-filesizes.blurb": "Hãy hiển thị kích thước đã làm tròn như 4 MB, và đặt số byte chính xác vào thẻ <data>. Trình đọc màn hình đọc phần hiển thị và bỏ qua thẻ, nên con số đã làm tròn phải tự nó đủ dùng.", |
| 54 | "examples.format-identifiers.blurb": "Đừng tách nhóm những thứ này. Đơn hàng 4471, không phải đơn hàng 4,471. Năm, số phiên bản và số cổng cũng vậy. Dùng rst-mono để chúng trông như mã, và đừng bao giờ đặt chúng vào thẻ <time>, kể cả khi trông giống ngày tháng.", |
| 55 | "examples.format-money.blurb": "Lưu mỗi khoản tiền dưới dạng số nguyên theo đơn vị nhỏ nhất của tiền tệ, như xu, kèm mã tiền tệ bên cạnh. Viết nó theo cách ngôn ngữ của người đọc vẫn viết. Tiền tệ luôn lấy từ dữ liệu của bạn, không bao giờ từ người đọc.", |
| 56 | "examples.format-numbers.blurb": "Hãy tách nhóm những con số dài để đọc được trong một cái liếc: 54,173 trong tiếng Anh, 54.173 trong tiếng Đức, ٥٤٬١٧٣ trong tiếng Ả Rập. Đừng bao giờ hiển thị số dài dưới dạng chữ số trần. Trong bảng, hãy dùng chữ số có cùng bề rộng để các cột thẳng hàng.", |
| 57 | "examples.format-output.blurb": "Khi trang của bạn cộng một thứ gì đó, hãy đặt kết quả vào thẻ <output>. Một tổng đang chạy, một mức giá đã quy đổi, một đồng hồ đếm ngược.", |
| 58 | "examples.format-people.blurb": "Tên có thể ở bất kỳ ngôn ngữ nào, kể cả những ngôn ngữ đọc từ phải sang trái. Khi một cái tên nằm giữa dòng, hãy bọc nó trong <bdi>, nếu không nó sẽ làm xáo trộn các từ xung quanh. Dùng person để hiển thị tên kèm một ảnh bên cạnh.", |
| 59 | "examples.format-ratios.blurb": "Dùng <meter> để cho biết một thứ đầy đến đâu. Dùng <progress> để cho biết một công việc đã đi được bao xa. Luôn in con số bên cạnh thanh. Một cái thanh trơ trọi chẳng nói gì với người không nhìn thấy nó.", |
| 60 | "examples.help.blurb": "Một dấu hỏi có viền, dẫn tới bài trợ giúp. Chú giải CSS của nó chỉ là trang trí; bản thân liên kết mang nhãn là một câu đầy đủ.", |
| 61 | "examples.job-status.blurb": "Tiến độ của một tác vụ nền: một vòng xoay, một dòng chữ và một thanh. Các thuộc tính data-poll cho biết trang có thể lấy bản mới từ đâu và bao lâu một lần. Fiesta không kèm script nào làm việc đó, nên bạn tự nối vào, và bỏ các thuộc tính khi tác vụ xong.", |
| 62 | "examples.job-status.states.running": "Các thuộc tính data-poll là nơi một script sẽ lấy bản mới, và bao lâu một lần. Không có gì trong Fiesta làm việc đó, nên trên trang này nó cứ ở trạng thái đang chạy.", |
| 63 | "examples.layout-column.blurb": "Trang đơn giản căn giữa mà một ứng dụng bắt đầu: một liên kết bỏ qua, một tiêu đề, cột nội dung và một hàng chân trang cho các menu ngôn ngữ và bảng màu.", |
| 64 | "examples.layout-console-page.blurb": "Một thanh ngang trên đỉnh và một dải điều hướng bên cạnh cùng lúc, hình dạng của phần lớn bảng điều khiển quản trị. Trên điện thoại, menu của thanh mở ra dưới dạng thẻ và dải điều hướng là một trang mục lục. Không cần JavaScript.", |
| 65 | "examples.layout-console.blurb": "Một thanh ngang trên đỉnh và một dải điều hướng bên cạnh cùng lúc, hình dạng của phần lớn bảng điều khiển quản trị. Trên điện thoại, menu của thanh mở ra dưới dạng thẻ và dải điều hướng là một trang mục lục. Không cần JavaScript.", |
| 66 | "examples.layout-sidebar-page.blurb": "Một dải điều hướng bên cạnh trang. Trên điện thoại, dải này là một trang mục lục và mọi trang khác đều có nút quay lại. Không cần JavaScript.", |
| 67 | "examples.layout-sidebar.blurb": "Một dải điều hướng bên cạnh trang. Trên điện thoại, dải này là một trang mục lục và mọi trang khác đều có nút quay lại. Không cần JavaScript.", |
| 68 | "examples.layout-stage.blurb": "Một thẻ duy nhất ở giữa nền phủ kín trang, dành cho màn hình đứng riêng một mình. Nó dành cho màn hình đăng nhập.", |
| 69 | "examples.layout-topbar.blurb": "Thương hiệu, điều hướng và trình đơn tài khoản chạy ngang phía trên, cùng một chân trang bên dưới.", |
| 70 | "examples.list-bar-search.blurb": "Biểu mẫu tìm kiếm đứng riêng, cho những danh sách chỉ tìm kiếm. Một biểu mẫu method=\"get\" thông thường.", |
| 71 | "examples.list-bar-search.states.empty-accessible-name-from-the-catalog": "Không có placeholder. Tên truy cập của ô nhập là aria-label của nó, do ứng dụng viết bằng ngôn ngữ của trang.", |
| 72 | "examples.list-bar-search.states.with-a-query": "Dấu ✕ là một liên kết đến cùng màn hình đã bỏ truy vấn. Bộ lọc trạng thái đi trong một ô nhập ẩn nên vẫn còn.", |
| 73 | "examples.list-bar-search.states.with-a-query-on-page-4": "Số trang đi trong một ô nhập ẩn, nên một lần tìm mới sẽ mang page=4 vào tập kết quả không còn đủ bốn trang. Liên kết ✕ bỏ nó đi: hãy trỏ nó tới trang đầu của danh sách.", |
| 74 | "examples.list-bar.blurb": "Thanh công cụ ở đầu thẻ danh sách, có tìm kiếm và bộ lọc.", |
| 75 | "examples.list-grid.blurb": "Bộ từ vựng thật của bảng dữ liệu: thẻ định các cột một lần, các hàng chỉ chọn ô.", |
| 76 | "examples.list-row-action.blurb": "Một hàng danh sách: tên bản ghi làm liên kết chính, một dòng thông tin phụ và một hành động phụ.", |
| 77 | "examples.list-row-action.states.a-short-status-beside-the-name": "rst-status=\"inline\" giữ một trạng thái ngắn trên dòng của tên trên điện thoại. Không có nó, trạng thái chuyển xuống dưới tên.", |
| 78 | "examples.list-search-submit.blurb": "Nút gửi thật của biểu mẫu tìm kiếm: ẩn khỏi mắt nhìn, vẫn nằm trong thứ tự Tab, và hiện ra khi nhận tiêu điểm bàn phím.", |
| 79 | "examples.list-search-submit.states.default-label": "Không có gì hiện ra ở đây cho đến khi bạn dùng phím Tab đi vào.", |
| 80 | "examples.locale-menu.blurb": "Bộ chuyển ngôn ngữ: một menu details gồm các biểu mẫu POST một trường, nên lựa chọn được gửi tới ứng dụng của bạn và người đọc vẫn ở cùng đường dẫn.", |
| 81 | "examples.locale-menu.states.twelve-languages-current-highlighted": "Mỗi ngôn ngữ là một biểu mẫu một trường, nên chọn một ngôn ngữ là một yêu cầu POST mà ứng dụng của bạn trả lời. Một trang tĩnh có thể dùng một menu liên kết thường thay thế.", |
| 82 | "examples.media-grid.blurb": "Một lưới các ô hình ảnh. Mỗi khung là 4:3, nên ảnh chụp màn hình cao và biểu ngữ rộng nằm gọn trong cùng một lưới đều.", |
| 83 | "examples.media-grid.states.screenshots-a-logo-and-a-banner": "Cho logo hoặc biểu ngữ rst-media-frame=\"contain\". Ảnh chụp màn hình giữ mặc định và hiện phần trên cùng. Ô không có mô tả sẽ ghi \"Không có mô tả\".", |
| 84 | "examples.media-grid.states.select-mode-one-tile-selected": "Bọc lưới và một bulk-bar trong cùng một biểu mẫu. Hộp kiểm của mỗi ô gửi giá trị của nó dưới tên \"id\"; đổi tên nếu ứng dụng của bạn mong một tên khác. Trong biểu mẫu, các mục menu phải là liên kết.", |
| 85 | "examples.meter.blurb": "Thanh dung lượng kèm con số.", |
| 86 | "examples.meter.states.over-budget": "Khi vượt ngân sách, thanh đầy và con số cho biết vượt bao nhiêu: viết value=\"100\" và để con số thật cho phần chữ.", |
| 87 | "examples.modal.blurb": "Hộp thoại là một URL riêng, không phải trạng thái phía trình duyệt: trang bên dưới được đánh dấu inert, tấm panel nằm trên, và đóng lại bằng một liên kết bình thường.", |
| 88 | "examples.notice.blurb": "Một dòng xác nhận sau khi chuyển hướng: một câu trong đoạn văn có role=\"status\". Bỏ nó đi khi không có gì để nói.", |
| 89 | "examples.page-header.blurb": "Thanh tiêu đề của màn hình: một h1, một phụ đề tuỳ chọn và một hành động chính.", |
| 90 | "examples.pagination.blurb": "Một dải liên kết thường có đánh số, để việc phân trang vẫn chạy khi tắt JavaScript.", |
| 91 | "examples.pagination.states.first-page-default-accessible-name": "aria-label của nav là từ đơn giản \"Phân trang\". Hãy nói nó phân trang cho danh sách nào khi một trang có nhiều hơn một.", |
| 92 | "examples.person.blurb": "Ảnh đại diện chữ cái đầu, tên và email. Giúp nhận ra nhanh các bản ghi về người.", |
| 93 | "examples.row-menu.blurb": "Các thao tác khác của một hàng, sau nút ⋮. Thao tác phá hủy liên kết tới trang xác nhận của nó.", |
| 94 | "examples.row-menu.states.links-a-form-and-a-destructive-item": "Đặt mục phá hủy ở cuối và kết thúc nhãn của nó bằng …. Nó mở một trang hỏi lại trước khi xóa bất cứ thứ gì.", |
| 95 | "examples.row-menu.states.links-only-for-a-list-inside-a-selection-form": "Bên trong một biểu mẫu, mọi mục phải là liên kết. Thao tác gửi dữ liệu đi qua một trang riêng của nó.", |
| 96 | "examples.scheme-menu.blurb": "Công tắc bảng màu: một menu details gồm các biểu mẫu POST một trường cho Sáng, Tối và Theo hệ thống. Khi gửi đi, lựa chọn tới ứng dụng của bạn; khi đứng riêng, fiesta.js ghi nhớ nó trong trình duyệt.", |
| 97 | "examples.scheme-menu.states.standalone": "Không có ứng dụng phía sau: các biểu mẫu không có action, và với data-rst-scheme-store=\"local\" trên phần tử <html>, fiesta.js ghi nhớ lựa chọn trong trình duyệt. Phần đầu trang của chính thư viện dùng cái này.", |
| 98 | "examples.scheme-menu.states.three-choices-dark-current": "Mỗi bảng màu là một biểu mẫu một trường, nên chọn một bảng màu là một yêu cầu POST mà ứng dụng của bạn trả lời, và trang quay lại với bảng màu đã chọn được đánh dấu là hiện tại.", |
| 99 | "examples.seg-tabs.blurb": "Một điều khiển phân đoạn gồm các liên kết hoặc nút. Liên kết hiện tại là aria-current; nút đang được nhấn là aria-pressed=\"true\".", |
| 100 | "examples.seg-tabs.states.buttons-that-switch-in-place": "Nút, cho một lựa chọn thay đổi trang ngay tại chỗ, như một kiểu xem. Script của bạn chuyển aria-pressed sang nút được nhấn.", |
| 101 | "examples.selbox.blurb": "Hộp kiểm chọn mà một hàng danh sách mang khi ở chế độ chọn. Nhãn của nó nhắc lại danh tính của hàng.", |
| 102 | "examples.shell-sidebar.blurb": "Bộ khung của shell sidebar trên một trang nội dung: trên điện thoại, đó là nút quay lại trang mục lục.", |
| 103 | "examples.shell-topbar.blurb": "Phần khung riêng của vỏ thanh trên cùng, dưới dạng mã đánh dấu. Trang hoàn chỉnh mà nó thuộc về là layout-topbar, trong mục Khung trang.", |
| 104 | "examples.side-nav.blurb": "Một thanh bên nằm trong một khung: một cột liên kết cạnh nội dung của khung. Trong khung hẹp, các liên kết thành một hàng cuộn ngang.", |
| 105 | "examples.side-nav.states.four-sections-the-first-open": "rst-side lấy chiều rộng từ phần tử cha. Trong một hàng flex, hãy đặt flex: 1 1 0 cho nó, nếu không nó có thể co lại đến mức biến mất.", |
| 106 | "examples.signin.blurb": "Màn hình đăng nhập ở mọi trạng thái nó trải qua: hỏi địa chỉ, khi quay lại, sau khi gửi liên kết, khi có gì đó trục trặc, và những cách vào khác.", |
| 107 | "examples.signin.states.a-passkey": "Cách vào nhanh nhất với người đã có, và không phải gõ gì cả. Hãy cung cấp thêm một cách thứ hai: người ta làm mất thiết bị, và một passkey không dùng được là một cánh cửa khoá.", |
| 108 | "examples.signin.states.after-the-link-is-sent": "Hiển thị lại đúng địa chỉ vừa nhập. Đó là cơ hội duy nhất để phát hiện lỗi gõ trước khi ngồi chờ một email không bao giờ tới.", |
| 109 | "examples.signin.states.after-the-link-is-sent-in-another-browser": "Khi địa chỉ không phải do trình duyệt này gửi, trang không đoán nó.", |
| 110 | "examples.signin.states.an-address-that-does-not-look-right": "Thông báo thuộc về ô nhập, và tiêu điểm bắt đầu ở đó.", |
| 111 | "examples.signin.states.asking-for-an-address": "Một ô nhập và một nút. Không có gì phải nhớ và không có gì để bị đánh cắp.", |
| 112 | "examples.signin.states.coming-back-with-an-email-link": "Địa chỉ nằm ngay trên nút, nên không phải gõ gì cả.", |
| 113 | "examples.signin.states.coming-back-with-keymail": "Cho người quay lại: địa chỉ họ dùng lần trước nằm trên nút, nên một lần chạm là gửi đi. Ghi nhớ địa chỉ đó, và kiểm tra lại nó, là việc của ứng dụng bạn.", |
| 114 | "examples.signin.states.email-and-password": "Nếu bạn vẫn dùng mật khẩu, hãy giữ nguyên bố cục một lối vào chính, và đặt cách đặt lại mật khẩu ngay dưới nút, đừng giấu đi.", |
| 115 | "examples.signin.states.google-apple-and-the-rest": "Chúng tôi cung cấp các nút, vẽ đúng theo yêu cầu của từng công ty. Chúng tôi không cung cấp phần đăng nhập: bạn tự nối nó tới nhà cung cấp mình dùng.", |
| 116 | "examples.signin.states.on-the-way-to-keymail": "Một trang chờ trong lúc ai đó được chuyển tiếp để đăng nhập. Ứng dụng của bạn tự chuyển trang đi; liên kết ở đó phòng khi nó không chuyển.", |
| 117 | "examples.signin.states.when-keymail-could-not-confirm-it": "Nút đổi sang gửi liên kết thay thế, để không ai bị kẹt.", |
| 118 | "examples.signin.states.when-keymail-was-offered-and-a-link-went-out": "Một dòng cho biết lần này đã gửi liên kết. Nó không đoán lý do.", |
| 119 | "examples.signin.warnings.email-and-password.body": "Người ta dùng lại chúng, chúng bị lộ, và bạn phải gánh việc lưu trữ chúng an toàn. Hãy dùng một liên kết trong email kèm khóa truy cập, hoặc chỉ khóa truy cập. Mã đánh dấu có ở đây vì một số sản phẩm vẫn cần nó.", |
| 120 | "examples.signin.warnings.email-and-password.title": "Chúng tôi không khuyến nghị mật khẩu", |
| 121 | "examples.snippet.blurb": "Một dòng mã để sao chép: mã nằm trong một khung, và nút Sao chép mà copy.js hiển thị ở trình duyệt có bộ nhớ tạm.", |
| 122 | "examples.stat-band.blurb": "Một hàng chỉ số chạy ngang phía trên bảng điều khiển.", |
| 123 | "examples.stat-band.states.two-to-a-line-on-a-phone": "rst-stats=\"pairs\" đặt hai chỉ số trên một dòng trên điện thoại. Không có nó, chúng xếp chồng mỗi dòng một chỉ số.", |
| 124 | "examples.stat.blurb": "Một con số trên bảng điều khiển, kèm nhãn và mức thay đổi.", |
| 125 | "examples.stat.states.a-shortened-number": "Hiển thị 4.1k thay vì 4120? Đặt số đầy đủ vào value của thẻ <data>. Trình đọc màn hình chỉ đọc những gì có trên màn hình, nên hãy giữ mọi thứ người dùng cần ngay trong con số.", |
| 126 | "examples.stat.states.a-smaller-number": "Bạn chỉ cần một nhãn và một con số. Mọi thứ khác đều tùy chọn.", |
| 127 | "examples.stat.states.the-big-number": "Cho một chỉ số trong hàng rst-stat=\"lead\" để làm nó to ra. Vẫn là thành phần đó, chỉ lớn hơn.", |
| 128 | "examples.stat.states.when-going-down-is-good": "Bạn đặt màu, không phải thành phần. Ở đây con số đã giảm và đó là tin tốt, nên mức thay đổi hiển thị màu xanh.", |
| 129 | "examples.stat.states.when-going-up-is-bad": "Ở đây con số đã tăng và đó là tin xấu, nên mức thay đổi hiển thị màu đỏ.", |
| 130 | "examples.stat.states.when-you-cannot-say": "Bỏ trống màu thì mức thay đổi sẽ là màu xám. Hãy làm vậy khi bạn không thể nói nó tốt hay xấu.", |
| 131 | "examples.status-pill.blurb": "Trạng thái bản ghi dưới dạng viên nhãn có màu, gồm màu và nhãn chữ.", |
| 132 | "examples.status-pill.states.neutral": "neutral là sắc thái mặc định, nên có thể bỏ rst-tone=\"neutral\".", |
| 133 | "examples.tblock.blurb": "Một thẻ có viền, phần thân chỉ hiện khi công tắc của nó đang bật, qua :has(). Công tắc mới là trạng thái thật; việc hiện ra chỉ là tiện lợi khi hiển thị.", |
| 134 | "families.choices-and-actions.blurb": "Các điều khiển để chọn từ các lựa chọn, và các hàng kết thúc một biểu mẫu. Mỗi cái nằm trong một rst-box có đệm, vì đó là tấm thẻ mà biểu mẫu nằm trong.", |
| 135 | "families.choices-and-actions.title": "Lựa chọn và thao tác", |
| 136 | "families.date-and-time.blurb": "Bốn trường mà datetime.js tăng cường, mỗi trường vẫn giữ ô nhập gốc bên dưới, để người đọc không có script nhận được điều khiển thuần chứ không phải một thứ hỏng.", |
| 137 | "families.date-and-time.title": "Ngày và giờ", |
| 138 | "families.display.blurb": "Những mẩu từ vựng nhỏ dùng ráp nên một màn hình: trạng thái, danh tính, tiến độ, và hình dạng cảnh báo duy nhất.", |
| 139 | "families.display.title": "Hiển thị", |
| 140 | "families.form.blurb": "Các trường mà người ta gõ vào, ở những trạng thái mà một biểu mẫu thật đặt chúng vào. Mỗi cái nằm trong một rst-box có đệm, vì đó là tấm thẻ mà biểu mẫu nằm trong.", |
| 141 | "families.form.title": "Biểu mẫu", |
| 142 | "families.formats.blurb": "Cách hiển thị ngày tháng, con số, tiền, tên và địa chỉ, và những thứ hay bị nhầm lẫn.", |
| 143 | "families.formats.title": "Ngày tháng, con số và tên", |
| 144 | "families.list-screen.blurb": "Màn hình danh sách thông thường: tiêu đề, thanh công cụ và các hàng, chạy được cả trên máy tính lẫn điện thoại.", |
| 145 | "families.list-screen.title": "Màn hình danh sách", |
| 146 | "families.primitives.blurb": "Những hình thù mà một thành phần không thể là, vì chúng bọc lấy một phần thân chỉ bên gọi mới biết: thẻ, lưới dữ liệu, menu, và khung riêng của các lớp vỏ.", |
| 147 | "families.primitives.title": "Nguyên thể giao diện", |
| 148 | "families.route.blurb": "Những mảnh vốn là cả một phản hồi, chứ không phải một phần của phản hồi.", |
| 149 | "families.route.title": "Tuyến", |
| 150 | "families.screens.blurb": "Những màn hình hoàn chỉnh dựng từ các thành phần. Hãy bắt đầu màn hình của bạn từ một trong số đó.", |
| 151 | "families.screens.title": "Màn hình", |
| 152 | "families.shells.blurb": "Các khung trang mà một ứng dụng được dựng trong đó: một cột, một thanh trên cùng, một thanh bên, một bảng điều khiển và một sân khấu. Mỗi cái mở ra toàn chiều rộng.", |
| 153 | "families.shells.title": "Khung trang", |
| 154 | "gallery.back": "Quay lại hệ thống thiết kế", |
| 155 | "gallery.brand": "Fiesta", |
| 156 | "gallery.copied": "Đã sao chép", |
| 157 | "gallery.copy": "Sao chép", |
| 158 | "gallery.copy.failed": "Không sao chép được. Hãy chọn đoạn mã và tự sao chép.", |
| 159 | "gallery.demo.callout.body": "Mỗi màn hình là một trang riêng, HTML thuần trong khung có thanh bên, và hoạt động y như vậy khi tắt JavaScript. Trên điện thoại, các mục là một danh sách và mỗi màn hình đều có đường quay lại.", |
| 160 | "gallery.demo.heading": "Ứng dụng demo", |
| 161 | "gallery.demo.lead": "Một ứng dụng chạy được, dựng chỉ từ hệ thống này: một bảng tổng quan, một danh sách, một bản ghi đang mở. Mỗi cái có địa chỉ riêng. Không JavaScript.", |
| 162 | "gallery.demo.open": "Mở ứng dụng demo", |
| 163 | "gallery.demos.app": "Ứng dụng demo", |
| 164 | "gallery.demos.modal": "Tuyến của hộp thoại", |
| 165 | "gallery.demos.shell": "Khung {shell}", |
| 166 | "gallery.example.html": "HTML hiển thị mã đánh dấu để sao chép.", |
| 167 | "gallery.example.live": "Mỗi ví dụ đều hoạt động thật, nhưng các liên kết trong đó không dẫn đến đâu.", |
| 168 | "gallery.filter": "Lọc", |
| 169 | "gallery.filter.empty": "Không có kết quả", |
| 170 | "gallery.frame.title": "{example}: {state}", |
| 171 | "gallery.html": "HTML", |
| 172 | "gallery.icons.kebab": "kebab và menu là cặp đáng phân biệt cho rõ: kebab là ba chấm nghĩa là «còn thao tác khác cho hàng này», còn menu là ba vạch nghĩa là điều hướng. Các shell dùng menu khi thu gọn.", |
| 173 | "gallery.icons.lead": "{total} biểu tượng từ Lucide, mỗi cái là một SVG nội tuyến lấy kích thước từ chữ bên cạnh qua chính quy tắc .icon của tokens.css, đó là kích thước hiển thị ở đây.", |
| 174 | "gallery.icons.lucide": "Toàn bộ bộ này ở {link}.", |
| 175 | "gallery.icons.names.body": "{renamed} trong số {total} khác với tên mà lucide.dev công bố. Chỗ nào dòng cuối dưới một biểu tượng không lặp lại tên của nó, đó là một trong số ấy. Tên vẫn giữ nguyên dù sau này bộ biểu tượng được vẽ từ đâu.", |
| 176 | "gallery.icons.names.heading": "Tên là của riêng Fiesta", |
| 177 | "gallery.icons.source": "Các hình vẽ đến từ đâu", |
| 178 | "gallery.icons.source.body": "Lucide, theo giấy phép ISC, được sao vào kho mã thay vì tải về. Bản phát hành có các SVG nội tuyến và một sprite; thư viện vẽ mỗi cái theo đúng cách một thành phần vẽ.", |
| 179 | "gallery.kind.getting-started": "Bắt đầu", |
| 180 | "gallery.kind.icons": "Biểu tượng", |
| 181 | "gallery.kind.overview": "Tổng quan", |
| 182 | "gallery.kind.tokens": "Token", |
| 183 | "gallery.language": "Ngôn ngữ", |
| 184 | "gallery.language.current": ", hiện là {language}", |
| 185 | "gallery.locale.name": "Tiếng Việt", |
| 186 | "gallery.modal.account": "Tài khoản", |
| 187 | "gallery.modal.billing": "Thanh toán", |
| 188 | "gallery.modal.body": "Cập nhật tên và ảnh hiển thị trên toàn bộ tài khoản.", |
| 189 | "gallery.modal.close": "Đóng phần cài đặt", |
| 190 | "gallery.modal.inapp": "Trong một ứng dụng thật, dấu ✕ sẽ đưa bạn về màn hình phía sau.", |
| 191 | "gallery.modal.nojs": "Liên kết đóng được làm để chạy được khi không có JS.", |
| 192 | "gallery.modal.notifications": "Thông báo", |
| 193 | "gallery.modal.own": "Hộp thoại có URL riêng của nó.", |
| 194 | "gallery.modal.profile": "Hồ sơ", |
| 195 | "gallery.modal.settings": "Cài đặt", |
| 196 | "gallery.modal.sub": "Trang mà hộp thoại đã mở đè lên. Nó được đánh dấu inert, nên khi tấm panel còn mở, không thứ gì ở đây nhận tiêu điểm hay đến được trình đọc màn hình.", |
| 197 | "gallery.nav.demos": "Bản demo", |
| 198 | "gallery.nav.overview": "Tổng quan", |
| 199 | "gallery.nav.overview.aria": "Tổng quan {section}", |
| 200 | "gallery.nav.sections": "Các mục và bản demo", |
| 201 | "gallery.newtab": "mở trong tab mới", |
| 202 | "gallery.overview.intro": "Fiesta là hệ thống thiết kế của Rastrillo dưới dạng một dự án riêng: các thành phần nhất quán, chỉn chu, dễ tiếp cận cho bất kỳ trang web hay ứng dụng nào, với bất kỳ nền tảng nào hoặc không cần nền tảng nào, không cần hoặc chỉ cần rất ít JavaScript, bằng mười hai ngôn ngữ, viết bằng HTML và CSS gọn gàng, hiện đại. Một tệp định kiểu là xong; mã đánh dấu là của bạn để sao chép và phối lại.", |
| 203 | "gallery.overview.next": "Đi tiếp đến đâu", |
| 204 | "gallery.prefs": "Cài đặt hiển thị", |
| 205 | "gallery.primitives.modal.live": "Xem nó chạy thật tại đúng URL của nó", |
| 206 | "gallery.primitives.sidebar.live": "Mở bản trình diễn khung có thanh bên, một trang xem trước riêng.", |
| 207 | "gallery.primitives.topbar.live": "Mở bản trình diễn khung có thanh trên, một trang xem trước riêng cho nó.", |
| 208 | "gallery.route.tokens": "Toàn bộ các thuộc tính tuỳ biến làm nên hệ thống: màu và kiểu chữ của chủ đề, cùng các thang cỡ, khoảng cách và bo góc.", |
| 209 | "gallery.routes": "Trong một ứng dụng, phần này sẽ đi tới {routes}. Ở đây các liên kết và biểu mẫu của nó không dẫn đến đâu.", |
| 210 | "gallery.routes.getting-started": "Những gì được phát hành: tệp định kiểu chỉ cần một liên kết, từng chủ đề, các script tuỳ chọn và các chuỗi, kèm dung lượng của từng tệp.", |
| 211 | "gallery.routes.icons": "Mọi slug biểu tượng ở kích thước mà các thành phần vẽ nó, kèm tệp để sao chép và tên của nó trên lucide.dev.", |
| 212 | "gallery.shell.open": "Mở khung {shell}", |
| 213 | "gallery.skip": "Đi tới nội dung", |
| 214 | "gallery.started.file.anchor-js": "Giữ menu của danh sách thả xuống trong màn hình trên các trình duyệt không có định vị neo CSS. Không làm gì ở nơi đã có: hãy xoá nó khi mọi trình duyệt bạn hỗ trợ đều có.", |
| 215 | "gallery.started.file.bundle": "Token và chủ đề {theme} trong một tệp: mọi lớp thành phần, mọi thang, và các màu, mỗi màu khai báo một lần dưới dạng cặp light-dark().", |
| 216 | "gallery.started.file.busy-js": "Quy tắc bận: trong lúc biểu mẫu đang gửi, nút của nó hiện vòng xoay ít nhất 650ms và từ chối lần gửi thứ hai, còn Quay lại trả nó về như cũ.", |
| 217 | "gallery.started.file.calendar-js": "Lưới tháng mà nút lịch của trường đó mở ra. Nằm im cho tới khi datetime.js hỏi xin một bảng, và xoá riêng được: thiếu nó, nút quay về bộ chọn của chính trình duyệt.", |
| 218 | "gallery.started.file.copy-js": "Nút Sao chép của snippet: sao chép đoạn mã, báo Đã sao chép, và vẫn ẩn ở trình duyệt không có bộ nhớ tạm. Xoá riêng được.", |
| 219 | "gallery.started.file.datetime-js": "Nhập ngày bằng ngôn ngữ tự nhiên. Nằm im cho tới khi một trường đăng ký bằng data-rst-date hoặc data-rst-time, và xoá riêng được.", |
| 220 | "gallery.started.file.fiesta-js": "Những nâng cấp mà hầu hết các trang cần: menu đóng khi bấm ra ngoài và khi nhấn Escape, kéo công tắc, trạng thái nhấn của iOS, và menu bảng màu. Hãy tải nó trước tiên.", |
| 221 | "gallery.started.file.light-js": "Ánh sáng mà các kiểu chiều sâu đọc: bóng đổ theo giờ, và một lớp ánh trên nút dưới con trỏ. Xoá nó để có thiết kế tĩnh.", |
| 222 | "gallery.started.file.select-js": "Combobox có tìm kiếm của field-select. Nằm im cho tới khi một select đăng ký bằng data-rst-select, và xoá riêng được.", |
| 223 | "gallery.started.file.shell-css": "Hiệu ứng trượt giữa các trang trên điện thoại, cho shell sidebar và console. Xoá được cùng với shell.js.", |
| 224 | "gallery.started.file.shell-js": "Điều hướng trên điện thoại cho shell sidebar và console: hiệu ứng trượt giữa các trang, nút Quay lại dùng lại lịch sử, và tiêu điểm trở về đúng mục bạn vừa rời. Xoá riêng được.", |
| 225 | "gallery.started.file.sprite": "Một sprite với một symbol cho mỗi biểu tượng, dành cho trang tự phục vụ bản sao Fiesta của mình. Nếu dùng từ CDN, hãy nhúng nội tuyến SVG từ icons/<slug>.svg thay vào đó.", |
| 226 | "gallery.started.file.strings": "Những từ mà select.js, datetime.js và copy.js hiển thị trên màn hình, bằng {language}. Hãy tải tệp khớp với lang của trang bạn.", |
| 227 | "gallery.started.file.theme": "Màu sắc, họ chữ và hình khối cho chủ đề {theme}: một khối :root duy nhất, mỗi màu khai báo một lần dưới dạng cặp light-dark().", |
| 228 | "gallery.started.file.tokens": "Cấu trúc: mọi lớp component, mọi thang đo, và không một giá trị màu nào. Cùng một tệp dưới mọi chủ đề.", |
| 229 | "gallery.started.file.transition-js": "Ngăn ghi lỗi khi hiệu ứng chuyển trang bị bỏ qua trên các trang column, stage và topbar. Hãy tải nó trước các stylesheet, không dùng defer. Các trang sidebar và console không cần tệp này.", |
| 230 | "gallery.started.lead": "Fiesta là một tệp định kiểu và một ít script tuỳ chọn. Mọi thứ đều chạy khi tắt script; các script là phần nâng cấp, mỗi cái một tệp riêng, nên bạn chỉ tải những cái trang của bạn dùng và không gì khác.", |
| 231 | "gallery.started.link.body": "Liên kết fiesta.css từ CDN là mã đánh dấu của bạn có kiểu ngay. /1/ là bản 1.x mới nhất; thay đổi nào làm hỏng mã đánh dấu sẵn có sẽ là một phiên bản chính mới. Hãy ghim đúng phiên bản khi bạn cần những byte không bao giờ đổi.", |
| 232 | "gallery.started.link.heading": "Một liên kết duy nhất", |
| 233 | "gallery.started.own.body": "Lấy tokens.css và một chủ đề, hoặc tệp đã gộp, từ một bản phát hành và phục vụ chúng cùng trang của bạn; các tệp dưới releases/<version>/ trong kho mã có kèm SHA256SUMS. Liên kết tokens.css trước.", |
| 234 | "gallery.started.own.heading": "Tự phục vụ bản sao của bạn", |
| 235 | "gallery.started.scripts": "Các tệp script", |
| 236 | "gallery.started.scripts.body": "fiesta.js đóng menu, cho phép kéo núm công tắc, cho iOS trạng thái nhấn và chạy menu bảng màu; hãy tải nó trước tiên. busy.js, light.js, anchor.js, shell.js, transition.js, copy.js, select.js, datetime.js và calendar.js đều không làm gì cho đến khi trang dùng thứ chúng nâng cấp, và mỗi cái xoá riêng được. Tải calendar.js sau cùng.", |
| 237 | "gallery.started.stylesheets": "Các tệp stylesheet", |
| 238 | "gallery.started.stylesheets.body": "fiesta.css là tokens.css và chủ đề Day gộp lại, đã bỏ chú thích, dưới 25 KiB khi nén gzip. Token chứa bố cục và hành vi của mọi thành phần; chủ đề tô màu cho chúng. fiesta-plain.css và fiesta-signal.css là cùng những token đó với chủ đề Plain và Signal. Trang nào dùng shell sidebar hoặc console thì liên kết thêm shell.css; ngoài ra không gì cần nó.", |
| 239 | "gallery.started.total": "Một trang liên kết fiesta.css và mọi script nhận {raw} CSS và JavaScript ở dạng gốc, {gzip} khi nén gzip.", |
| 240 | "gallery.started.upgrading": "Nâng cấp", |
| 241 | "gallery.started.upgrading.body": "Một trang dùng /1/ nhận mọi bản phát hành 1.x ngay ngày nó ra; nhật ký thay đổi cho biết đã đổi gì. Một trang ghim vào một phiên bản cụ thể chỉ thay đổi khi bạn đổi liên kết, không sớm hơn.", |
| 242 | "gallery.started.weight": "{raw} như khi viết · {gzip} khi nén gzip · {stripped} khi nén gzip và bỏ chú thích", |
| 243 | "gallery.started.weights": "Mỗi tệp nặng bao nhiêu", |
| 244 | "gallery.started.weights.note": "Kích thước tính bằng KiB. Khách truy cập tải về bản đã nén gzip.", |
| 245 | "gallery.step.next": "Tiếp: {page}", |
| 246 | "gallery.step.prev": "Trước: {page}", |
| 247 | "gallery.steps.label": "Trước và tiếp", |
| 248 | "gallery.theme.label": "Chủ đề", |
| 249 | "gallery.title": "{page} · Fiesta · {theme}", |
| 250 | "gallery.tokens.group.accent": "Màu nhấn", |
| 251 | "gallery.tokens.group.controls": "Điều khiển", |
| 252 | "gallery.tokens.group.depth": "Chiều sâu", |
| 253 | "gallery.tokens.group.radius": "Bo góc", |
| 254 | "gallery.tokens.group.spacing": "Khoảng cách", |
| 255 | "gallery.tokens.group.status-tones": "Sắc thái trạng thái", |
| 256 | "gallery.tokens.group.surfaces-and-lines": "Nền và đường kẻ", |
| 257 | "gallery.tokens.group.text": "Chữ", |
| 258 | "gallery.tokens.group.type-choices": "Lựa chọn kiểu chữ", |
| 259 | "gallery.tokens.group.type-family": "Họ chữ", |
| 260 | "gallery.tokens.group.type-scale": "Thang cỡ chữ", |
| 261 | "gallery.tokens.lead": "Các thuộc tính tuỳ biến mà mọi thành phần đọc. Màu, họ chữ và hình khối đến từ chủ đề, css/themes/{theme}.css. Thang cỡ chữ và các bước khoảng cách là cấu trúc, giống nhau ở mọi chủ đề, và đến từ css/tokens.css.", |
| 262 | "gallery.tokens.note": "Đang hiển thị giá trị sáng. Mỗi màu khai báo một lần dưới dạng cặp light-dark(), và các mẫu màu đi theo menu bảng màu phía trên. Ngưỡng WCAG 2.2 AA: 4.5:1 cho chữ, 3:1 cho viền điều khiển.", |
| 263 | "gallery.up": "Quay lại {name}", |
| 264 | "gallery.up.label": "Mục", |
| 265 | "gallery.view.desktop": "Máy tính", |
| 266 | "gallery.view.legend": "Xem trước", |
| 267 | "gallery.view.mobile": "Điện thoại", |
| 268 | "gallery.wrap": "Đặt đoạn này bên trong {wrapper}.", |
| 269 | "labels.actor.a-person": "Một người", |
| 270 | "labels.actor.an-agent-acting-for-a-person": "Một tác tử thay mặt một người", |
| 271 | "labels.api-tokens.four-tokens-two-of-them-live": "Bốn mã, hai trong số đó còn hiệu lực", |
| 272 | "labels.api-tokens.just-created-the-secret-shown-once": "Vừa tạo: bí mật, hiển thị một lần", |
| 273 | "labels.api-tokens.no-tokens-yet": "Chưa có mã thông báo nào", |
| 274 | "labels.back-nav.back-to-a-record": "Quay lại một bản ghi", |
| 275 | "labels.badge.negative": "negative", |
| 276 | "labels.badge.neutral": "neutral", |
| 277 | "labels.badge.no-tone-quiet-default": "Không có tông (mặc định trầm)", |
| 278 | "labels.badge.positive": "positive", |
| 279 | "labels.badge.warning": "warning", |
| 280 | "labels.bulk-bar.three-rows-selected": "Đã chọn ba hàng", |
| 281 | "labels.callout.info": "info", |
| 282 | "labels.callout.negative": "negative", |
| 283 | "labels.callout.negative-announced-as-an-alert": "negative, được đọc lên như một cảnh báo", |
| 284 | "labels.callout.positive": "positive", |
| 285 | "labels.callout.warning": "warning", |
| 286 | "labels.choice-field.pick-any": "Chọn bao nhiêu tùy ý", |
| 287 | "labels.choice-field.pick-one": "Chọn một", |
| 288 | "labels.confirm-form.destructive": "Hành động phá hủy", |
| 289 | "labels.confirm-form.ordinary-default-cancel-wording": "Trường hợp thường, chữ hủy theo mặc định", |
| 290 | "labels.detail-list.four-facts-one-machine-ish": "Bốn thông tin, một cái thiên về máy", |
| 291 | "labels.dropdown.a-filter-menu-with-one-choice-applied": "Trình đơn lọc đã áp dụng một lựa chọn", |
| 292 | "labels.empty-state.sentence-only": "Chỉ một câu", |
| 293 | "labels.empty-state.with-a-post-call-to-action": "Kèm một lời kêu gọi hành động bằng POST", |
| 294 | "labels.error-page.403-forbidden": "403: không có quyền", |
| 295 | "labels.error-page.404-not-found": "404: không tìm thấy", |
| 296 | "labels.error-page.422-unprocessable": "422: không xử lý được", |
| 297 | "labels.error-page.500-server-error": "500: lỗi máy chủ", |
| 298 | "labels.error-page.503-unavailable": "503: không khả dụng", |
| 299 | "labels.error-page.anything-else-the-generic-pair": "Mọi trường hợp khác: cặp chung", |
| 300 | "labels.field-check.disabled": "Bị vô hiệu", |
| 301 | "labels.field-check.off": "Tắt", |
| 302 | "labels.field-check.on": "Bật", |
| 303 | "labels.field-date.bounded": "Có giới hạn", |
| 304 | "labels.field-date.enhanced-input-type-tomorrow-or-in-3-weeks": "Ô nhập nâng cao: gõ \"ngày mai\" hoặc \"sau 3 tuần\"", |
| 305 | "labels.field-date.plain-the-bare-native-input": "Plain: ô nhập gốc để trơn", |
| 306 | "labels.field-date.required-with-an-error": "Bắt buộc, kèm lỗi", |
| 307 | "labels.field-daterange.date-and-time-seeded": "Ngày và giờ, đã điền sẵn", |
| 308 | "labels.field-daterange.dates-only-with-an-error-on-the-end": "Chỉ ngày, kèm lỗi ở phần kết thúc", |
| 309 | "labels.field-datetime.bounded": "Có giới hạn", |
| 310 | "labels.field-datetime.enhanced-input-type-tomorrow-or-in-3-weeks": "Ô nhập nâng cao: gõ \"ngày mai\" hoặc \"sau 3 tuần\"", |
| 311 | "labels.field-datetime.plain-the-bare-native-input": "Plain: ô nhập gốc để trơn", |
| 312 | "labels.field-datetime.required-with-an-error": "Bắt buộc, kèm lỗi", |
| 313 | "labels.field-money.bare": "Trơn", |
| 314 | "labels.field-money.with-a-hint": "Kèm một gợi ý", |
| 315 | "labels.field-money.with-an-error": "Kèm một lỗi", |
| 316 | "labels.field-select.hand-written-with-optgroups": "Viết tay, có optgroup", |
| 317 | "labels.field-select.required-with-an-error": "Bắt buộc, kèm lỗi", |
| 318 | "labels.field-select.three-options-a-native-select": "Ba lựa chọn: select gốc", |
| 319 | "labels.field-select.twelve-options-plain-the-enhancement-opted-out": "Mười hai lựa chọn, Plain: đã từ chối phần tăng cường", |
| 320 | "labels.field-select.twelve-options-the-filterable-combobox": "Mười hai lựa chọn: hộp chọn có lọc", |
| 321 | "labels.field-text.bare": "Trơn", |
| 322 | "labels.field-text.required": "Bắt buộc", |
| 323 | "labels.field-text.the-headline-field": "Trường chính", |
| 324 | "labels.field-text.with-a-hint": "Kèm một gợi ý", |
| 325 | "labels.field-text.with-an-error": "Kèm một lỗi", |
| 326 | "labels.field-textarea.bare": "Trơn", |
| 327 | "labels.field-textarea.required": "Bắt buộc", |
| 328 | "labels.field-textarea.with-a-hint": "Kèm một gợi ý", |
| 329 | "labels.field-textarea.with-an-error": "Kèm một lỗi", |
| 330 | "labels.field-time.bounded": "Có giới hạn", |
| 331 | "labels.field-time.enhanced-input-type-half-seven-or-noon": "Ô nhập nâng cao: gõ \"bảy rưỡi\" hoặc \"giữa trưa\"", |
| 332 | "labels.field-time.plain-the-bare-native-input": "Plain: ô nhập gốc để trơn", |
| 333 | "labels.field-time.required-with-an-error": "Bắt buộc, kèm lỗi", |
| 334 | "labels.field-url.bare": "Trơn", |
| 335 | "labels.field-url.with-a-hint": "Kèm một gợi ý", |
| 336 | "labels.field-url.with-an-error": "Kèm một lỗi", |
| 337 | "labels.field.bare": "Trơn", |
| 338 | "labels.field.required": "Bắt buộc", |
| 339 | "labels.field.short": "Ngắn", |
| 340 | "labels.field.the-headline-field": "Trường chính", |
| 341 | "labels.field.with-a-hint": "Kèm một gợi ý", |
| 342 | "labels.field.with-an-error": "Kèm một lỗi", |
| 343 | "labels.field.with-help-under-the-control": "Kèm trợ giúp bên dưới điều khiển", |
| 344 | "labels.form-error.a-rejected-submission": "Một lần gửi bị từ chối", |
| 345 | "labels.form-foot.idle-the-button-before-anything-happens": "Nghỉ: nút trước khi có chuyện gì xảy ra", |
| 346 | "labels.form-foot.save-and-cancel": "Lưu và hủy", |
| 347 | "labels.form-foot.submit-only": "Chỉ có nút gửi", |
| 348 | "labels.form-foot.working-what-busy-js-writes-on-the-way-out": "Đang xử lý: những gì busy.js ghi khi biểu mẫu được gửi đi", |
| 349 | "labels.job-status.failed": "Thất bại", |
| 350 | "labels.job-status.finished": "Đã xong", |
| 351 | "labels.job-status.running": "Đang chạy", |
| 352 | "labels.list-bar-search.empty-accessible-name-from-the-catalog": "Trống, tên trợ năng lấy từ danh mục", |
| 353 | "labels.list-bar-search.with-a-query": "Có truy vấn", |
| 354 | "labels.list-bar-search.with-a-query-on-page-4": "Có truy vấn, ở trang 4", |
| 355 | "labels.list-bar.search-with-a-filter-dropdown": "Tìm kiếm kèm trình đơn lọc", |
| 356 | "labels.list-row-action.a-short-status-beside-the-name": "Một trạng thái ngắn cạnh tên", |
| 357 | "labels.list-row-action.lead-marker-status-and-an-action": "Dấu dẫn đầu, trạng thái và một hành động", |
| 358 | "labels.list-row-action.name-and-meta-line-only": "Chỉ có tên và dòng thông tin phụ", |
| 359 | "labels.list-search-submit.default-label": "Nhãn mặc định", |
| 360 | "labels.locale-menu.twelve-languages-current-highlighted": "Mười hai ngôn ngữ, ngôn ngữ hiện tại được làm nổi.", |
| 361 | "labels.media-grid.screenshots-a-logo-and-a-banner": "Ảnh chụp màn hình, một logo và một biểu ngữ", |
| 362 | "labels.media-grid.select-mode-one-tile-selected": "Chế độ chọn, một ô được chọn", |
| 363 | "labels.meter.empty": "Trống", |
| 364 | "labels.meter.full": "Đầy", |
| 365 | "labels.meter.nearly-full": "Gần đầy", |
| 366 | "labels.meter.over-budget": "Vượt hạn mức", |
| 367 | "labels.meter.part-way": "Được một phần", |
| 368 | "labels.notice.a-saved-message": "Một thông báo đã lưu", |
| 369 | "labels.page-header.title-only": "Chỉ có tiêu đề", |
| 370 | "labels.page-header.title-subhead-and-a-primary-action": "Tiêu đề, tiêu đề phụ và một hành động chính", |
| 371 | "labels.pagination.first-page-default-accessible-name": "Trang đầu, tên trợ năng mặc định", |
| 372 | "labels.pagination.middle-of-a-long-list": "Giữa một danh sách dài", |
| 373 | "labels.person.large-the-show-header-size": "Cỡ lớn, kích thước cho đầu trang xem", |
| 374 | "labels.person.name-and-email": "Tên và email", |
| 375 | "labels.person.no-initial": "Không có chữ đầu", |
| 376 | "labels.row-menu.links-a-form-and-a-destructive-item": "Liên kết, một biểu mẫu và một mục phá hủy", |
| 377 | "labels.row-menu.links-only-for-a-list-inside-a-selection-form": "Chỉ liên kết, cho danh sách nằm trong biểu mẫu chọn", |
| 378 | "labels.scheme-menu.standalone": "Độc lập: trang ghi nhớ lựa chọn", |
| 379 | "labels.scheme-menu.three-choices-dark-current": "Ba lựa chọn, Tối đang được chọn.", |
| 380 | "labels.seg-tabs.buttons-that-switch-in-place": "Nút chuyển đổi ngay tại chỗ", |
| 381 | "labels.seg-tabs.two-sections": "Hai mục", |
| 382 | "labels.side-nav.four-sections-the-first-open": "Bốn mục, mục đầu đang mở", |
| 383 | "labels.signin.a-passkey": "Một passkey", |
| 384 | "labels.signin.after-the-link-is-sent": "Sau khi gửi liên kết", |
| 385 | "labels.signin.after-the-link-is-sent-in-another-browser": "Sau khi gửi liên kết, trên một trình duyệt khác", |
| 386 | "labels.signin.an-address-that-does-not-look-right": "Một địa chỉ trông không đúng", |
| 387 | "labels.signin.asking-for-an-address": "Hỏi địa chỉ", |
| 388 | "labels.signin.coming-back-with-an-email-link": "Quay lại bằng liên kết qua email", |
| 389 | "labels.signin.coming-back-with-keymail": "Quay lại bằng Keymail", |
| 390 | "labels.signin.email-and-password": "Email và mật khẩu", |
| 391 | "labels.signin.google-apple-and-the-rest": "Google, Apple và những cái khác", |
| 392 | "labels.signin.on-the-way-to-keymail": "Trên đường tới Keymail", |
| 393 | "labels.signin.when-keymail-could-not-confirm-it": "Khi Keymail không xác nhận được", |
| 394 | "labels.signin.when-keymail-was-offered-and-a-link-went-out": "Khi Keymail được đề xuất nhưng một liên kết được gửi đi", |
| 395 | "labels.snippet.a-line-to-copy": "Một dòng để sao chép", |
| 396 | "labels.stat-band.two-to-a-line-on-a-phone": "Hai mục một dòng trên điện thoại", |
| 397 | "labels.stat.a-shortened-number": "Một con số rút gọn", |
| 398 | "labels.stat.a-smaller-number": "Một con số nhỏ hơn", |
| 399 | "labels.stat.the-big-number": "Con số lớn", |
| 400 | "labels.stat.when-going-down-is-good": "Khi giảm là tốt", |
| 401 | "labels.stat.when-going-up-is-bad": "Khi tăng là xấu", |
| 402 | "labels.stat.when-you-cannot-say": "Khi không thể nói được", |
| 403 | "labels.status-pill.negative": "negative", |
| 404 | "labels.status-pill.neutral": "neutral", |
| 405 | "labels.status-pill.positive": "positive", |
| 406 | "labels.status-pill.warning": "warning", |
| 407 | "pages.idioms.box.body": "rst-list và rst-card cố ý không có đệm: chúng chứa một chuỗi hàng, và mỗi hàng tự đệm cho mình. Nhét thẳng vào đó một biểu mẫu, một đoạn văn, một dải liên kết hay bất cứ thứ gì không phải hàng thì nó sẽ dựng sát vào đường viền; chữ chạm mép chính là dấu hiệu. Thẻ có đệm dành cho nội dung bất kỳ là rst-box, với tiêu đề của nó là rst-box-head anh em đặt ngay trước.", |
| 408 | "pages.idioms.box.title": "Thẻ nào là thẻ nào", |
| 409 | "pages.idioms.list-grid.body": "Một màn hình là một cột: page-header, rồi section-header cùng thẻ, rồi section-header và thẻ tiếp theo, theo thứ tự đọc. Cách xếp ngang chỉ dành cho những lối viết vốn mang sẵn nó: rst-box-head, rst-field-row, rst-lbar, các ô rst-lrow, rst-seg-tabs.", |
| 410 | "pages.idioms.list-grid.title": "Màn hình xếp chồng theo chiều dọc" |
| 411 | } |
| 412 | |