2010-01-15 29 views
7

Hãy để tôi tiểu bang đầu tiên những gì tôi đang cố gắng để đạt được:Vị trí chính xác trong hệ điều hành Android là văn bản được hiển thị?

Để tạo một bản vá cho hệ điều hành Android để kích hoạt nó để hiển thị Arabic/Hebrew một cách chính xác. Cả hai ngôn ngữ này là Từ phải sang trái (RTL) và tập lệnh của chúng liên quan đến các chữ cái được kết nối/glyphs (không giống như bảng chữ cái Latinh có các chữ cái rời rạc).

Ví dụ:

Từ tiếng Ả Rập cho "xe" là:

سيارة

Các chữ rời rạc giống như thế này:

س ي ا ر ة

Như bạn có thể thấy, mỗi chữ cái kết nối với nhau theo các cách khác nhau tùy thuộc vào cái gì đứng trước nó & cái gì theo sau nó. Ok, đủ với các bài học ngôn ngữ :) Câu hỏi của tôi là:

Tôi cần sử dụng lớp nhị phân/lớp nào trong Android để kích hoạt chức năng này?

Một cách khác để đặt; nếu bạn muốn mọi thể hiện "x" được hiển thị là "y", toàn hệ thống, bạn cần can thiệp vào lớp nhị phân/lớp nào?

Mã nguồn có thể xem được ở GitHub: http://github.com/android/

Tôi nghĩ rằng nó có thể là ở đâu đó dưới C/C++ platform_system_core, hoặc của họ tùy chỉnh JVM platfom_dalvik.

Chỉ cần rõ ràng, phông chữ không phải là vấn đề vì bạn có thể thả phông chữ tiếng Ả Rập/Hebrew thành phông chữ bị xóa và chúng sẽ hiển thị, mặc dù ở dạng rời rạc.

sự giúp đỡ của bạn sẽ được nhiều đánh giá cao :)

Trả lời

0
+0

Cảm ơn sự giúp đỡ. Liên kết mà bạn cung cấp sẽ hiển thị chính xác văn bản trong một ứng dụng, tuy nhiên nó là một phần của giải pháp. Tôi muốn thực hiện điều này ở cấp hệ thống - để nó hiển thị chính xác TRƯỚC KHI đạt hoặc SAU khởi hành bất kỳ cuộc gọi ứng dụng nào. –

+1

Wow !! .. Khi bạn làm điều đó, xin vui lòng trở lại và gửi câu trả lời của riêng bạn? Nghe có vẻ cực kỳ thú vị – OscarRyz

+0

Điều này liên quan đến việc sửa đổi gói platform/base.git, biên dịch lại hiệu quả nhất hệ thống Android. Kết quả là thực tế là một mod của hệ thống Android (như CyanogenMod), trừ khi bạn biết những gì các thư viện jar để thay thế. –

1

thấy bên ngoài/skia trong một cây nguồn check-out. đó là thư viện đồ họa skia và đó là trách nhiệm cuối cùng cho việc hiển thị phông chữ.

1

Hãy nhớ rằng sự cố phức tạp hơn việc sửa đổi công cụ đồ họa cơ bản.

Nếu bạn áp dụng định hình lại trong Skia, bạn có thể gặp sự cố nếu độ rộng của đường thay đổi (xảy ra khi لا thay thế ل theo sau là ا). Điều này là do việc định hình lại tiếng Ả Rập có thể thay đổi thứ tự các chữ cái và Skia, như tôi thấy, cố gắng hành động thụ động liên quan đến nội dung của văn bản. Nó chỉ đơn giản là kết quả đầu ra các chữ cái để các thiết bị hiển thị như đang có.

Hiện tại, sự cố tồi tệ hơn thực sự ở chính Android.Tiếng Ả Rập/tiếng Do Thái yêu cầu đặt lại văn bản của BiDi, rất câm trong Android và không thể xử lý các vấn đề cơ bản.

Tin xấu hơn? Phông chữ của Android, Droid, không chứa chữ cái tiếng Ả Rập hoặc tiếng Do Thái. Trừ khi chúng tôi nhổ tận gốc thiết bị và thay thế bằng một phông chữ khác, các ô vuông được hiển thị thay cho các chữ cái arabic :)

Toàn bộ nền tảng vẫn còn xa để có thể đối phó với bất kỳ ngôn ngữ RTL nào, đặc biệt là tiếng Ả Rập.

Như bạn thấy, sửa đổi chính xác cho ngôn ngữ RTL không chỉ ở Skia ....

Các vấn đề liên quan