2012-02-13 24 views
14

Tôi cần tạo một ứng dụng có nhiều ngôn ngữ, bao gồm ngôn ngữ RTL (từ phải sang trái). Tôi muốn biết trạng thái hiện tại của hỗ trợ RTL (Phải sang Trái) trên Android (ngay cả trên API mới nhất), ví dụ:Trạng thái của ngôn ngữ từ phải sang trái trên Android là gì?

  1. có thể kiểm tra động/tĩnh nếu ngôn ngữ hiện tại của thiết bị là Loại RTL? Tôi biết rằng có thể có được ngôn ngữ hiện tại, nhưng tôi cần một cách tổng quát hơn để kiểm tra nếu ngôn ngữ hiện tại là RTL. Ví dụ, đối với tiếng Anh và tiếng Pháp, nó sẽ trả về false, nhưng đối với tiếng Ả Rập và tiếng Do Thái, nó sẽ trả về true.

  2. có thể đặt bố cục tự động được nhân đôi cho ngôn ngữ RTL không? Ví dụ: nếu linearLayout (có hướng ngang) có con từ 1-> 2, giờ nó sẽ có 2 < -1 và trẻ em mới sẽ được tạo ở bên trái.

  3. có bộ định danh nào để thêm vào thư mục tài nguyên sẽ xử lý tất cả ngôn ngữ RTL không? Ví dụ: "res/layout" dành cho LTR (Left To Right) và "res/layout-rtl" dành cho ngôn ngữ RTL.

  4. Có vẻ như nội dung của nhật thực hỗ trợ đề xuất "android: layoutDirection" cho linearLayout và "android: textDirection" cho textView, nhưng khi tôi chọn chúng, tôi nhận được lỗi biên dịch không nhận ra chúng. Tôi cũng không thể tìm hiểu thêm thông tin trên internet về những thuộc tính đó. Ý của họ là gì và làm sao tôi không thể sử dụng chúng?

EDIT: có vẻ như Android 4.1 có một số cải thiện về ngôn ngữ RTL. Tự hỏi họ là gì và tôi có thể đọc về chúng ở đâu.

+1

RTL -> phải sang trái. LTR -> Trái sang Phải. Nó có thể là hiển nhiên đối với bạn nhưng có lẽ không dành cho tất cả mọi người :) –

+0

cảm ơn vì đã sửa đổi câu hỏi của tôi. –

+0

Câu trả lời cho # 3 là "không". – CommonsWare

Trả lời

4

Bắt đầu với Android 4.2, có biết thêm một chút hiểu biết về các thuộc tính của RTL đặc biệt, và thậm chí còn có một tùy chọn để phản ánh bố trí tự động cho các ngôn ngữ RTL.

Thông tin khác có thể được tìm thấy here.

Hy vọng rằng, họ sẽ thêm nhiều thông tin hơn về cách sử dụng, bao gồm một số mã mẫu và thậm chí có thể là thư viện hỗ trợ về vấn đề này.


EDIT: bây giờ họ đã thêm một số thông tin về cách sử dụng sự hỗ trợ RTL mới:

http://android-developers.blogspot.co.il/2013/03/native-rtl-support-in-android-42.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

Tôi tự hỏi mặc dù nếu NIKUD (Hebrew tương đương với nguyên âm, ngoại trừ việc họ là tùy chọn và chúng được hiển thị dưới dạng dấu chấm thay vì chữ cái) hoạt động tốt ngay bây giờ.

EDIT: Bây giờ tôi đã thử nghiệm nó, và nó thực sự hoạt động thực sự tốt (đây là chương đầu tiên của Kinh Thánh):

enter image description here

0
  1. Hỗ trợ RTL trong Android có một số cải tiến trong ICS. Trước đó trong bánh gừng, đó là thiết bị cụ thể, ví dụ: mỗi nhà sản xuất/nhà điều hành đã triển khai giải pháp BiDi của riêng họ gây ra một số mâu thuẫn trong các ứng dụng

  2. không cần thiết. Good BiDi biết cách phản chiếu chế độ xem văn bản và văn bản canvas.draw bằng mã utf8 chữ cái đầu tiên .. cho phép bạn lo lắng về BiDi và nhiều hơn nữa về ứng dụng của bạn. Chỉ cần không ép buộc trọng lực và điền vào bố mẹ trên màn hình văn bản

  3. Không, có vòng loại cho tiếng Ả Rập/tiếng Do Thái, vv .. nơi bạn có thể thay đổi thực tế mọi thứ. Nhưng việc triển khai thiết bị tốt sẽ không cần bất cứ điều gì ngoài bản dịch.

  4. điều đó có thể xảy ra nếu bạn cài đặt API cũ hoặc thiết bị cụ thể. Do đó, nó sẽ không hoạt động trên toàn bộ Android và gây ra lỗi biên dịch. Nhưng có nhiều lý do cho nó xảy ra ...


Nói chung tôi khuyên bạn nên bỏ qua những vấn đề BiDi vì hai lý do:

  1. người từ các nước có sử dụng rtl thường có thiết bị xử lý nó khá tốt nếu không thì đó là vấn đề của họ.

  2. sửa chữa BiDi của bạn cho một thiết bị sẽ khiến các thiết bị khác không tuân thủ. Và đó là một cái gì đó đã được thực hiện năm trước ..và may mắn là các nhà phát triển cuối cùng dừng lại làm sai lầm này

+0

1.tất cả bây giờ nó là xấu trên tất cả các thiết bị? làm thế nào tôi có thể dựa vào các nhà cung cấp dịch vụ và nhà sản xuất nếu mỗi hãng có triển khai riêng của họ? 2. ý bạn là gì không cần thiết? nếu (ví dụ) tôi có một biểu tượng bên cạnh văn bản bên cạnh biểu tượng khác, thứ tự sẽ được đảo ngược. 3. kể từ khi văn bản không phải là liên kết trên một số thiết bị, dịch thuật là không đủ. 4.well nó làm gì, và làm thế nào tôi có thể sử dụng nó? –

+0

1.không quá nhiều. ICS có hỗ trợ tích hợp sẵn. Nhiều bánh gừng cũng có. Và ít hack tồn tại để giải quyết it.2.in trường hợp đó bạn nên xây dựng bố trí riêng biệt theo rtl languahes .4. Tôi không chắc chắn tôi – skoperst

+0

1. thực sự? làm thế nào để bạn sử dụng nó trên ICS? 2. theo những gì bạn đã viết, không có một điều như vậy cho các nguồn lực. –

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