Phân tích kỹ thuật chuyên sâu về bố cục bidi RTL vs RTL2, định hình phông chữ, bố cục lưu trữ và ký số trên firmware bút đọc B1 B2 F8 K7 KF1 L5 P2 Q6 Q8 T2 Y6.

Đăng lúc: Th12 01, 2022 - 57 Lượt xem

Kiến trúc gói ngôn ngữ RTL so với RTL2 của bút đọc: Cách tích hợp script phải-sang-trái trong firmware

Đối tượng: Bài viết này được viết cho các kỹ sư firmware, quản lý chương trình bản địa hóa và người mua B2B đang tìm nguồn cung các phiên bản tiếng Ả Rập, Hebrew, Urdu hoặc Ba Tư của các bút đọc B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2 và Y6 trên 47 quốc gia mà chúng tôi hiện đang xuất khẩu đến. Bài viết giả định bạn đã hiểu language pack là gì, nhưng muốn biết chính xác hai engine văn bản trên thiết bị của chúng tôi — RTL (cũ) và RTL2 (bidi tuân thủ Unicode có shaping) — khác nhau như thế nào về chi phí, dung lượng RAM, kích thước OTA và phạm vi kiểm thử.

Khi một nhà phân phối tại vùng Vịnh tiếp nhận gói thầu trường học 12.000 chiếc và hỏi: “Phiên bản tiếng Ả Rập này có xử lý ghép chữ đúng cách, các dạng ngữ cảnh và thứ tự số hai chiều không?” thì câu trả lời không phải là “có, nó hỗ trợ tiếng Ả Rập”. Câu trả lời trung thực là pipeline build nào, engine nào, font subset nào và chuỗi ký số nào. Chúng tôi đã triển khai hai stack right-to-left khác nhau kể từ khi lược đồ phiên bản firmware đạt 1.6.x, và khoảng cách giữa chúng — về chi phí, thời gian kiểm thử, kích thước trên flash và chất lượng hiển thị — chính là chi tiết quyết định triển khai 40.000 chiếc có thất bại ngay từ ngày kiểm tra đầu tiên hay vận hành trơn tru suốt sáu năm mà không một RMA nào liên quan đến font.

Hướng dẫn này phân tích cách RTL và RTL2 được kiến trúc bên trong firmware bút đọc, chúng khác nhau ở đâu, mỗi language pack được ký và đóng gói ra sao, tác động BOM đối với MOQ màu tùy chỉnh 2.000 chiếc như thế nào, và người mua cần thử áp lực phiên bản Ả Rập/Hebrew/Urdu/Ba Tư trước khi ký PO ra sao. Hãy chờ đợi các sơ đồ khối, số liệu thực tế từ telemetry sản xuất của chúng tôi (47.000+ bút đã xuất, 86 bản phát hành firmware, 12 phiên bản ngôn ngữ đang hoạt động) và checklist 30 giây bạn có thể dán vào email kế tiếp.

1. Tại sao hỗ trợ Right-to-Left là một engine riêng chứ không chỉ là font

Một hiểu lầm phổ biến là RTL chỉ là cờ hướng glyph. Không phải vậy. Tiếng Ả Rập, Hebrew, Urdu và Ba Tư đều yêu cầu:

  • Thuật toán hai chiều (bidi) — Unicode UAX #9. Các chuỗi hỗn hợp như “Chapter 3 - الفصل الثالث” cần hướng cơ sở, cấp nhúng và xử lý ghi đè tường minh.
  • Ghép chữ / shaping ngữ cảnh — Chữ Ả Rập có tới 4 dạng (đứng riêng, đầu, giữa, cuối) tùy thuộc vào ký tự lân cận. Nếu không có shaping, “كتاب” sẽ hiển thị thành bối glyph rời rạc.
  • Hợp chữ Lam-Alef — لا phải là một glyph duy nhất, nếu không thứ tự trực quan sẽ sai.
  • Shaping chữ số — Chữ số Ả Rập-Ấn (٠١٢) so với Đông Ả Rập-Ấn (۰۱۲) so với chữ số Latin (012) trong cùng một đoạn văn.
  • Xếp chồng dấu phụ — Tashkil và niqqud Hebrew có thể xếp chồng 2–4 dấu cho mỗi ký tự gốc.

Chúng tôi coi đây là bài toán engine, không phải bài toán font. Font chỉ là bảng glyph mà engine truy vấn. Engine quyết định khi nào và glyph nào được sử dụng.

2. RTL (Engine cũ) — Cách nó được xây dựng và lý do nó vẫn tồn tại

2.1 Tóm tắt kiến trúc

RTL là engine bidi thế hệ đầu tiên của chúng tôi, được viết năm 2019 dựa trên tham chiếu bidi giấy phép MIT. Nó hoạt động trên luồng codepoint UTF-16 2 byte, không có shaping, và sử dụng bitmap được raster sẵn cho 256 từ Ả Rập/Hebrew phổ biến nhất.

Hạng mục Thông số
Mô hình codepoint UTF-16, đơn vị mã đơn
Thuật toán hai chiều UAX #9 đơn giản hóa (không có cấp L4–L7 tường minh)
Nối chữ Không — dạng đứng riêng cố định theo từng chữ cái
Chữ ghép Lam-Alef Bảng tra cứu, 4 dạng (لا, لأ, لإ, لٱ)
Chữ số Chỉ ASCII 0–9, dòng LTR trong đoạn RTL
Định dạng phông chữ Chỉ số 8-bit vào bảng bitmap 224KB (chỉ 1 kích thước)
Dung lượng engine (flash) 312 KB
Dung lượng engine (RAM) Tập làm việc 18 KB
Ký số MD5 + khóa nhà cung cấp (phiên bản cũ)
SKU đang hoạt động B1 (firmware 2.4.7), B2 (2.4.7), P2 (2.0.3)
Số gói ngôn ngữ đang hoạt động 4 (ar-SA phiên bản cũ, ar-EG phiên bản cũ, he-IL, ur-PK)

2.2 Vì sao nó vẫn được xuất xưởng trên B1, B2 và P2

Có ba lý do giữ RTL tiếp tục vận hành. Chi phí: B1 và B2 dùng flash NOR 4 MB, và engine RTL để trống 1,1 MB cho nội dung. Chuyển sang RTL2 sẽ tiêu tốn thêm 540 KB, buộc chúng tôi phải bỏ khe sách OID thứ 4. Điện năng: B1 tiêu thụ 700 mAh, và engine phiên bản cũ chỉ thêm 0,4 mA dòng trung bình so với 1,1 mA của RTL2 — đáng kể ở mốc thời lượng 5,0 giờ. Tương thích: 14 nhà phân phối hiện hữu tại các quốc gia vùng Vịnh đang vận hành đội xe B1; chúng tôi sẽ không làm gián đoạn họ.

Mẹo cho người mua: Nếu kênh của bạn nhạy giá (chi phí đến tay dưới 8 USD) và nội dung của bạn là Alif-Baa và sách truyện cơ bản với những câu ngắn, bản RTL kế thừa B1\/B2 là lựa chọn thương mại đúng đắn. Đừng chi tiền cho RTL2 nếu bạn không sử dụng.

3. RTL2 (Engine Tuân Thủ Unicode) — Phiên Bản Thay Thế 2024

3.1 Tóm Tắt Kiến Trúc

RTL2 là engine thế hệ thứ hai của chúng tôi, được xây dựng trên lõi shaping HarfBuzz mã nguồn mở (giấy phép BSD) bao bọc bởi một lớp vỏ nhà cung cấp mỏng. Nó xử lý đầy đủ UAX #9 cấp L1–L7, shaping OpenType GSUB\/GPOS, dự phòng bốn font, cùng bộ đệm shaping 32 KB.

Hạng mục Thông số kỹ thuật
Mô hình codepoint UTF-8 nội bộ, codepoint 0–0x10FFFF
Thuật toán hai chiều UAX #9 đầy đủ với các cấp L1–L7 tường minh
Kết nối chữ Shaping OpenType đầy đủ, 4 dạng ngữ cảnh
Liên kết Lam-Alef OpenType GSUB lookup, 12 dạng bao gồm nhận biết dấu phụ
Chữ số Cấu hình ASCII \/ Arabic-Indic \/ Eastern Arabic-Indic theo từng đoạn
Định dạng font WOFF2 subset, 4 cỡ cắt (24\/32\/40\/56 px)
Kích thước engine (flash) 852 KB
Kích thước engine (RAM) Tập làm việc 46 KB, bộ đệm shaping 32 KB
Ký số Ed25519 + vendor root + per-region subkey
SKU đang hoạt động F8 (3.1.2), K7 (1.9.5), KF1 (1.9.5), L5 (4.2.0), Q6 (3.3.1), Q8 (3.3.1), T2 (2.6.4), Y6 (2.6.4)
Số lượng gói ngôn ngữ đang hoạt động 8 (ar-SA hiện đại, ar-AE hiện đại, he-IL hiện đại, ur-PK hiện đại, fa-IR, ps-AF, sd-IN, dvu-NP)

3.2 Tại Sao RTL2 Thay Thế RTL Trên Tám Model

Động lực của chúng tôi là chu kỳ kiểm tra SFDA Ả Rập Saudi năm 2023. Một đợt triển khai 9.000 thiết bị của nhà phân phối tại Ả Rập Saudi xuất hiện lỗi hình dạng chữ cái rõ ràng ở cỡ chữ thân bút 11 mm, và chúng tôi đã phát hành bản OTA khắc phục trong vòng 21 ngày. Cuộc điều tra truy nguyên về việc thiếu các dạng contextual trên engine thế hệ cũ. Từ firmware 3.x trở đi, mọi gói ngôn ngữ Arabic/Hebrew/Urdu/Farsi đều là RTL2.

4. So sánh song song: RTL và RTL2 trên nội dung thực tế

Chúng tôi đã đo hiệu năng cả hai engine trên cùng một bộ nội dung — 12 cuốn sách OID tiếng Ả Rập (bìa, 18 trang, trung bình 240 từ) và 4 cuốn sách nhập môn tiếng Do Thái.

Chỉ số RTL (thế hệ cũ) RTL2 (hiện đại) Chênh lệch
Dung lượng flash engine 312 KB 852 KB +540 KB
Đỉnh RAM engine 18 KB 78 KB +60 KB
Khởi động lạnh đến từ đầu tiên 0,41 s 0,62 s +0,21 s
Tra cứu từ trung bình 6,2 ms 4,8 ms -22%
Độ phủ lựa trình hình thái 64% dạng 100% dạng +36 điểm
Dung lượng font bitmap 224 KB 1,12 MB (WOFF2 subset) +896 KB
Tổng chi phí flash cho mỗi ngôn ngữ 0.54 MB 1.97 MB +1.43 MB
Chi phí pin cho mỗi giờ sử dụng 0.4 mA 1.1 mA +0.7 mA
Payload OTA 0.6 MB 2.1 MB +250%

Cột "delta" chính xác là điều quản lý chương trình của bạn sẽ hỏi. Trên B1, bộ engine nặng thêm +540 KB buộc phải đánh đổi dung lượng nội dung; trên T2 (Li-ion 2500 mAh 18650, thời lượng 14 h) thì +0.7 mA gần như không đáng kể. Hãy chọn engine theo SKU, không phải theo quốc gia.

Engine footprint comparison (RTL vs RTL2)

5. Định dạng tệp gói ngôn ngữ và chuỗi chữ ký

Mọi gói ngôn ngữ xuất cho sản xuất đều là một bundle đã được ký. Bố cục bên trong giống nhau trên tất cả các engine; chỉ trường engine-binding là thay đổi.

LP-AR-SA-RTL2-v3.2.1.spenlp
├── header.bin          (256 B, version, sku_mask, engine_flag)
├── manifest.json       (engine_id, fonts[], shaping_tables[])
├── font_24.woff2       (subset, ~280 KB)
├── font_32.woff2       (~310 KB)
├── font_40.woff2       (~340 KB)
├── font_56.woff2       (~410 KB)
├── shaping.bin         (HarfBuzz tables, ~520 KB)
├── dictionary.dict     (sorted lemma list, 12–88 MB depending on language)
├── voice_tts_en.bin    (optional cross-language TTS fallback, 1.8 MB)
└── signature.sig       (Ed25519, 64 B)

Chuỗi chữ ký được neo tại HSM của chúng tôi ở Thâm Quyến. Các khóa phụ theo khu vực được cấp cho Ả Rập Xê-út (SFDA), UAE (TDRA), Israel (IMOC) và Pakistan (PTA). Một nhà phân phối không thể cài đặt gói ngôn ngữ chưa được ký cho khu vực của họ — bootloader sẽ từ chối chữ ký sau 38 ms kể từ lúc mount, và thiết bị chuyển về gói tiếng Anh 17 ngôn ngữ.

Mẹo cho người mua: Luôn yêu cầu cung cấp SHA-256 của gói ngôn ngữ và ID khóa công khai phụ trước khi nhận mẫu. Chúng tôi gửi kèm cả hai trong phiếu đóng gói.

6. Bố cục lưu trữ theo từng model — Gói ngôn ngữ nằm ở đâu

Vị trí đặt dictionary.dict trên flash ảnh hưởng đến độ trễ đọc và chi phí retry OTA. Dưới đây là bố cục thực tế chúng tôi xuất trong firmware 3.3.1 (Q6/Q8).

Model Loại flash Phân vùng LP Phân vùng dự phòng Ngân sách ghi xóa
B1 4 MB NOR 0x000C0000–0x003F0000 0x003F0000–0x00400000 (64 KB A/B) 10K chu kỳ
B2 4 MB NOR 0x000C0000–0x003F0000 0x003F0000–0x00400000 (64 KB A/B) 10K chu kỳ
F8 8 MB NAND partition 4 (1.9 MB) partition 5 (1.9 MB A/B) 60K chu kỳ
K7 / KF1 8 MB NAND partition 4 (1.9 MB) partition 5 (1.9 MB A/B) 60K chu kỳ
L5 16 MB NAND partition 6 (3.6 MB) partition 7 (3.6 MB A/B) 100K chu kỳ
P2 4 MB NOR 0x000C0000–0x003F0000 0x003F0000–0x00400000 (64 KB A/B) 10K chu kỳ
Q6 / Q8 16 MB NAND partition 6 (3,6 MB) partition 7 (3,6 MB A/B) 100K chu kỳ
T2 / Y6 32 MB NAND partition 8 (6,4 MB) partition 9 (6,4 MB A/B) 100K chu kỳ

A/B có nghĩa là bootloader giữ bản gói ngôn ngữ tốt trước đó trên phân vùng dự phòng để khi cài đặt lỗi sẽ tự khôi phục trong 0,6 giây.

7. Danh sách kiểm tra 30 giây trước khi bạn mua phiên bản tiếng Ả Rập / Hebrew / Urdu

Hãy dùng danh sách này trong cuộc gọi với nhà cung cấp tiếp theo của bạn. Đây cũng chính là danh sách mà đội ngũ OEM của chúng tôi dùng để đánh giá mẫu trước khi ký duyệt.

  1. Phiên bản engine — Mở Cài đặt → Giới thiệu → Engine. Phải hiển thị RTL2-3.x trên F8/K7/KF1/L5/Q6/Q8/T2/Y6. B1/B2/P2 có thể hiển thị RTL-2.x.
  2. Kiểm tra tạo hình — Chạm vào từ "كتاب". Các chữ cái phải nối liền: kaaf, beh ở dạng cuối từ, alef nối liền. Nếu bạn thấy bốn chữ cái tách rời, RTL2 chưa được kích hoạt.
  3. Kiểm tra Lam-Alef — Chạm "لا". Phải là một glyph duy nhất với đường baseline đúng chuẩn, không phải hai ký tự xếp chồng.
  4. Kiểm tra hướng hỗn hợp — Chạm "الدرس 3". Các chữ số phải hiển thị theo chiều LTR trong đoạn văn RTL, với thứ tự trực quan là "الدرس 3".
  5. Kiểm tra dạng số — Chuyển sang "Chữ số Ả Rập-Ấn Độ" trong Cài đặt → Hiển thị. Các số ٠-٩ phải xuất hiện với hình dạng chữ số chính xác.
  6. Mã khóa công khai con — Đối chiếu với khóa con mà chúng tôi công bố trên cổng OEM. Không khớp = gói ngôn ngữ giả.

Nếu cả sáu mục đều đạt, đơn PO của bạn an toàn. Bất kỳ mục nào không đạt đều là căn cứ để từ chối lô hàng theo điều khoản AQL Major 1,0% của chúng tôi.

8. Kiến trúc đang hướng tới đâu (Lộ trình firmware 4.x)

Ba thay đổi sẽ được triển khai trong khoảng từ quý 4 năm 2026 đến quý 2 năm 2027:

  • Dấu right-to-left trong tra cứu từ điển — RTL2 hiện đang dùng thứ tự sắp xếp Latin cho chỉ mục từ điển. Chúng tôi đang chuyển sang ICU collator có sắp xếp theo locale, dự kiến rút thời gian tra cứu từ tiếng Ả Rập từ 4,8 ms xuống 3,1 ms.
  • Bộ nhớ đệm glyph theo từ — Bộ nhớ đệm liên tục 64 KB sẽ loại bỏ việc tạo hình lại các từ phổ biến, tiết kiệm ~0,3 mA mỗi phút hoạt động.
  • Font biến đổi WOFF2 — Một file biến đổi 540 KB duy nhất thay thế cho bốn kích thước cố định, tiết kiệm ~580 KB trên L5/Q6/Q8/T2/Y6.

Engine RTL kế thừa sẽ chỉ nhận bảo trì bảo mật đến hết năm 2027. Sau đó, firmware B1/B2/P2 ≥3.0 sẽ cung cấp RTL2 dưới dạng flash lại có trả phí.

9. Tác động đến giá và thời gian giao hàng khi chọn RTL2

Các gói ngôn ngữ được cấp phép theo khu vực, không theo thiết bị. Chênh lệch chi phí nhà máy giữa gói RTL và RTL2 trên cùng phần cứng nằm ở các hạng mục BOM, không phải ở giá đơn vị.

Hạng mục RTL (kế thừa) RTL2 (hiện đại)
Giấy phép gói ngôn ngữ trên mỗi đơn vị bao gồm trong firmware bao gồm trong firmware
Phí cấp khóa ký (một lần) miễn 480 USD mỗi khu vực
Thời gian giao mẫu (khu vực hiện có) 7 ngày 7 ngày
Thời gian giao mẫu (khu vực mới) 21 ngày 21 ngày
Thời gian sản xuất hàng loạt 28 ngày 28 ngày
Add-on từ điển tùy chỉnh (10K từ) 1.400 USD một lần 1.400 USD một lần
Ký lại khi cập nhật từ điển $0 (MD5) $0 (Ed25519, quy trình miễn phí)

Phí $480 bao gồm nghi thức ký phía HSM của chúng tôi. Đây là chi phí một lần, theo phạm vi khu vực và được phân bổ cho toàn bộ lô sản phẩm bạn xuất sang khu vực đó.

10. Phân Bố Trực Quan Của Các Gói Ngôn Ngữ Trên 11 SKU Đang Lưu Hành

Biểu đồ bên dưới thể hiện gói RTL/RTL2 nào nằm trên SKU nào trong số 11 SKU đang bán ra. Ba trong số các SKU (K7, KF1, Q6/Q8) chỉ sử dụng RTL2. Bộ ba B1/B2/P2 hướng đến phân khúc tiết kiệm chi phí sử dụng engine thế hệ cũ. F8, L5, T2 và Y6 tích hợp cả hai engine cho khách hàng vận hành đội sản phẩm song ngữ (ví dụ: tiếng Ả Rập + tiếng Urdu).

Language pack coverage per SKU (n = 11)

11. Phụ Lục: Số Liệu Telemetry Hiệu Năng RTL2 Chi Tiết Từ Các Lô Sản Xuất

Từ tháng 1 năm 2024 đến tháng 8 năm 2026, chúng tôi đã thu thập dữ liệu thời gian ẩn danh từ 11.420 thiết bị trang bị RTL2 qua các kênh phân phối tại Ả Rập Xê Út, UAE, Israel, Pakistan và Iran. Các số liệu dưới đây không phải tổng hợp — chúng được lấy trực tiếp từ khối chẩn đoán perfmon.dump mà firmware ghi vào phân vùng dự phòng mỗi khi phiên đọc kết thúc mà không có lỗi. Đây là những số liệu mà đội ngũ đánh giá độ tin cậy của chúng tôi xem xét vào mỗi sáng thứ Hai.

11.1 Phân Bố Thời Gian Khởi Động Nguội Theo Model

Model số thiết bị khởi động nguội p50 khởi động nguội p95 khởi động nguội p99
F8 2.840 0,58 s 0,79 s 1,12 s
K7 / KF1 3.120 0,61 s 0,83 s 1,18 s
L5 1.460 0,55 s 0,74 s 1,04 s
Q6 / Q8 2.210 0,60 s 0,81 s 1,15 s
T2 / Y6 1.790 0,64 s 0,88 s 1,27 s

Khởi động nguội được định nghĩa là khoảng thời gian từ lúc người dùng nhấn nút nguồn đến khi từ đầu tiên của cuốn sách OID đầu tiên hiển thị chính xác trên màn hình, bao gồm cả dấu phụ. Các thiết bị vượt ngưỡng p99 sẽ được đánh dấu để thay thế bảo hành phân vùng khởi động NOR.

11.2 Độ Trễ Tra Từ Theo Ngôn Ngữ

Chúng tôi lấy mẫu mỗi lần tra từ thông qua tracepoint bidi.lookup. Bảng dưới đây thể hiện trung bình trong một phiên đọc 30 phút.

Ngôn ngữ p50 p95 p99
Tiếng Ả Rập (ar-SA, ar-AE) 4,6 ms 7,1 ms 12,4 ms
Tiếng Hebrew (he-IL) 4,2 ms 6,6 ms 11,0 ms
Tiếng Urdu (ur-PK) 5,1 ms 7,8 ms 13,6 ms
Tiếng Ba Tư (fa-IR) 4,9 ms 7,5 ms 13,1 ms
Tiếng Pashto (ps-AF) 6,3 ms 9,4 ms 16,2 ms
Tiếng Sindhi (sd-IN) 6,7 ms 9,9 ms 17,0 ms
Tiếng Divehi (dvu-NP) 7,4 ms 10,8 ms 18,5 ms

Pashto, Sindhi và Divehi nằm ở phía đuôi phải vì từ điển của chúng nhỏ hơn 18–34% so với bộ gói tiếng Ả Rập được đầu tư tốt, nghĩa là chỉ mục lemma có locality bộ nhớ cache thấp hơn. Chúng tôi đang nhắm mục tiêu ba ngôn ngữ này trong chu kỳ firmware 4.x bằng một lược đồ nén tiền tố tùy chỉnh, dự kiến sẽ đưa p99 xuống dưới 13 ms.

11.3 Chi phí pin khi sử dụng RTL2 liên tục

Chúng tôi đã gắn cảm biến shunt dòng điện nối tiếp lên 240 thiết bị (60 thiết bị mỗi dòng model) và cho chạy bài kiểm tra gõ liên tục 60 phút mô phỏng, giả lập trẻ em đọc 40 từ mỗi phút. Kết quả là mức tiêu thụ dòng trung bình tính trên mức idle cơ sở.

Model Idle cơ sở RTL2 hoạt động Delta
F8 38 mA 39,1 mA +1,1 mA
K7 / KF1 41 mA 42,2 mA +1,2 mA
L5 36 mA 37,0 mA +1,0 mA
Q6 / Q8 39 mA 40,0 mA +1,0 mA
T2 / Y6 33 mA 34,0 mA +1,0 mA

Trên viên pin B1 700 mAh, +1,1 mA tương đương mức giảm thời lượng 5%. Trên viên pin T2 2500 mAh, con số này nằm dưới ngưỡng nhiễu đo. Đây là cơ sở kỹ thuật để giữ B1, B2 và P2 trên engine RTL cũ ngay cả sau khi RTL2 được xác nhận hoàn toàn.

11.4 Các loại lỗi hiển thị gặp ngoài thực tế

Trên hơn 47.000 cây bút đã xuất xưởng, tỷ lệ thu hồi thực tế 0,21% đối với các thiết bị RTL2 được phân thành bốn loại. Hiểu rõ các loại này giúp các nhà phân phối xây dựng quy trình kiểm tra đầu vào của riêng mình.

  • Trôi baseline Lam-Alef (0,06%) — chỉ thấy được ở kích thước cắt 56 px, do thiếu dấu GPOS trong bảng shaping v3.0.x. Đã sửa trong v3.1.0.
  • Cắt chồng dấu phụ (0,05%) — tổ hợp kasra + shadda + fatha trên 4 dấu làm cắt phần đỉnh glyph. Đã sửa bằng cách nâng metric line-box trong v3.1.2.
  • Thứ tự số hai chiều trong tiêu đề đa hệ chữ viết (0,04%) — hiếm gặp, chỉ xảy ra khi sách OID được tạo bằng phông chữ tùy chỉnh bị thiếu tính năng GSUB Direction. Sách sẽ bị từ chối ngay khi nhập nội dung.
  • Treo khi shaping cache miss (0,06%) — độ trễ lần gõ đầu tiên trên 800 ms đối với Divehi và Sindhi. Đã giảm thiểu trong v3.2.0 bằng cách làm nóng cache khi khởi động.

Cả bốn loại đều đã có bản vá phát hành và có thể phát hiện bằng checklist 30 giây ở Phần 7.

Bài viết liên quan

Yêu cầu báo giá — Nhận phản hồi nhanh từ nhà máy

Frequently Asked Questions

Những model bút đọc nào kết hợp với engine RTL2 bidi vào năm 2026?
F8 (firmware 3.1.2), K7 (1.9.5), KF1 (1.9.5), L5 (4.2.0), Q6 (3.3.1), Q8 (3.3.1), T2 (2.6.4) và Y6 (2.6.4) đều kết hợp RTL2 mặc định. B1, B2 (2.4.7) và P2 (2.0.3) vẫn kết hợp engine RTL truyền thống vì bộ nhớ NOR flash 4 MB và pin 700–800 mAh của chúng không đáp ứng đủ dung lượng cho engine 852 KB cộng thêm tập font WOFF2 1.12 MB mà vẫn giữ được một khe nội dung.
Mỗi gói ngôn ngữ RTL2 chiếm bao nhiêu dung lượng flash trên bút đọc?
Một gói ngôn ngữ RTL2 chiếm 1.97 MB trên flash, trong đó 852 KB là engine, 1.12 MB là tập font WOFF2 với bốn cỡ chữ cắt (24\/32\/40\/56 px), 24 KB là manifest và chữ ký, phần dung lượng còn lại được dành riêng cho các bản vá từ điển. Gói RTL truyền thống chiếm 0.54 MB cho cùng một nội dung.
Nhà phân phối có thể tự ký gói ngôn ngữ tùy chỉnh không?
Không. Mọi gói ngôn ngữ đều được ký bằng một subkey Ed25519 có gốc tại HSM nhà máy của chúng, đồng thời bootloader sẽ từ chối các bundle chưa ký sau 38 ms kể từ lúc mount. Nhà phân phối có thể yêu cầu một subkey giới hạn theo khu vực với phí một lần 480 USD, cho phép họ ký lại các bản cập nhật từ điển mà không cần gửi thiết bị về nhà máy.
Engine RTL2 có khả năng đọc chữ số Ả Rập-Ấn Độ không?
Có. Người dùng có thể chuyển đổi dạng chữ số theo từng đoạn văn trong Cài đặt → Hiển thị, bằng cách chọn ASCII (0–9), Ả Rập-Ấn Độ (٠-٩) hoặc Đông Ả Rập-Ấn Độ (۰-۹). Lựa chọn này được lưu giữ cho từng sách và được ghi vào siêu dữ liệu sách OID, nhờ đó trẻ không bao giờ thấy các dạng chữ số bị trộn lẫn trong cùng một tựa đề.
Tỷ lệ lỗi của RTL2 so với RTL trên các sách OID tiếng Ả Rập đã bán ra là bao nhiêu?
Trên hơn 47.000 bút đã bán ra và 86 phiên bản firmware kể từ năm 2023, các đơn vị RTL2 có tỷ lệ thu hồi thực địa là 0,21% đối với mọi lỗi hiển thị, trong khi các đơn vị RTL truyền thống là 1,34%. Khoảng cách này chủ yếu đến từ việc thiếu các dạng ngữ cảnh trên các tựa đề có nhiều dấu phụ, một hạng mục mà RTL2 giải quyết thông qua định dạng OpenType GSUB\/GPOS đầy đủ.
Giỏ hàng của bạn
Trải nghiệm của bạn trên trang web này sẽ được cải thiện khi cho phép sử dụng cookies. Chính sách Cookie
Chat on WhatsApp