Tôi đã thấy một số ứng dụng và mẫu mã của Google sử dụng thẻ XLIFF để bao bọc các biến. Tôi thấy một số lợi thế lớn trong việc này, đặc biệt là để thay thế các đối số định dạng không mô tả như %1$s
.Cải thiện tài nguyên chuỗi Android bằng XLIFF
Thật không may, XLIFF dường như không tích hợp tốt vào ADT. Lấy nguồn chuỗi sau, ví dụ:
<resources
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"
xmlns:tools="http://schemas.android.com/tools">
<string name="share_with_application">
Share your score of <xliff:g id="score" example="1337">%1$s</xliff:g>
with <xliff:g id="application_name" example="Bluetooth">%2$s</xliff:g>!
</string>
</resources>
Trong ví dụ trên, các chuỗi được cắt ngắn sau khi <xliff>
thẻ đầu tiên. Bạn cũng có thể mong đợi thuộc tính example
được sử dụng, kết quả là bản xem trước đồ họa hiển thị:
Chia sẻ điểm số của bạn là 1337 với Bluetooth!
Hiện tại có bất kỳ giá trị nào khi sử dụng thẻ XLIFF trong tài nguyên chuỗi của tôi không?
"Tôi đã nhìn thấy một số ứng dụng và mã Google các mẫu sử dụng thẻ XLIFF để bọc biến "- nếu bạn có ví dụ về một số dự án Android, không tính ứng dụng AOSP, sử dụng XLIFF, hãy chỉ cho chúng tôi biết. Các ứng dụng AOSP có quy trình xây dựng riêng của mình có thể tích hợp XLIFF. Việc sử dụng XLIFF không được ghi nhận là được hỗ trợ bởi Android SDK. – CommonsWare
Cảm ơn sự thấu hiểu. Có vẻ như các mẫu 'strings.xml' trong thư mục SDK chỉ có khai báo vùng tên XLIFF và không thực sự sử dụng các thẻ. Bạn có thể cung cấp thêm thông tin chi tiết về các quy trình xây dựng tùy chỉnh này không? Họ có phải là plugin của Jenkins không? –
"Bạn có thể cung cấp thêm thông tin chi tiết về các quy trình xây dựng tùy chỉnh này không?" - những ứng dụng này được xây dựng như một phần của quá trình tạo chương trình cơ sở đầy đủ (ví dụ: 'bữa trưa'), nhưng tôi chưa bao giờ thực hiện xây dựng phần mềm hoàn chỉnh, hãy để một mình mổ xẻ tất cả chi tiết về những gì nó làm. "Chúng có phải là các plugin của Jenkins không?" -- Tôi rât nghi ngơ điêu đo; ít nhất, bạn không cần Jenkins để xây dựng firmware. – CommonsWare