Android strings.xml — Những điều cần phải nhớ
strings.xml hẳn là điều khá cơ bản và tầm thường trong một ứng dụng Android, nhưng làm sao để sử dụng nó tối ưu và làm chủ nó thì chưa hẳn ai cũng biết. Hãy cùng theo dõi những quy tắc dưới đây để làm việc tốt hơn với strings.xml nhé I. Hạn chế tái sử dụng Không sử dụng cùng một strings cho ...
strings.xml hẳn là điều khá cơ bản và tầm thường trong một ứng dụng Android, nhưng làm sao để sử dụng nó tối ưu và làm chủ nó thì chưa hẳn ai cũng biết. Hãy cùng theo dõi những quy tắc dưới đây để làm việc tốt hơn với strings.xml nhé
I. Hạn chế tái sử dụng
Không sử dụng cùng một strings cho các màn hình khác nhau
- Thử tưởng tượng bạn có một hộp thoại hiển thị trạng thái đang tải dữ liệu trên màn hình Sign In và Sign Up. Bạn quyết định sử dụng chung một string là R.string.loading
Sau đó bạn lại muộn thay đổi string hiển thị này cho một trong 2 màn hình kia, lúc này bạn sẽ phải tạo ra 2 strings mới và chỉnh sửa lại trong java code. Nếu bạn tạo ngay 2 string từ ban đầu thì bạn chỉ phải việc sửa trong duy nhất file strings.xml mà không cần động đến java code
- Bạn có thể không biết trước được ứng dụng của mình hỗ trợ những ngôn ngữ nào. Trong một ngôn ngữ bạn có thể dùng cùng một từ tại các ngữ cảnh khác nhau, nhưng với một ngôn ngữ khác bạn phải dùng một từ khác
II. Tách, phân chia
Chia strings riêng biệt ra theo màn hình bằng cách để tiền tố tên và ghi chú
- Thêm tiền tố vào tên của mối string giúp ta phát hiện ra ngay lập tức string này thuộc về màn hình nào
- Định nghĩa rõ ràng strings.xml giúp dễ dàng bảo trì và dịch sang ngôn ngữ khác
Chia nhỏ strings.xml cho mỗi màn hình
Nếu bạn muốn tạo file strings.xml cho mỗi màn hình -setting-strings.xml, profile-string.xml... Nhưng một ứng dụng thường xuyên có từ 10 đến 20 màn hình thì việc bạn phải thêm 10-20 file strings.xml cho mỗi thư mục ngôn ngữ thì nó sinh ra khá nhiều nội dung
III. Định dạng
Sử dụng Resources#getString(int id, Object… formatArgs) để định dạng dữ strings
Đừng bao giờ sử dụng "+" để nối strings, bởi vì trong một vài ngôn ngữ thứ tự của các từ có thể khác nhau
Sử dụng cách với Resources#getString(int id, Object… formatArgs).
IV. Số nhiều
Sử dung Resources#getQuantityString (int id, int quantity) để làm việc với string có liên quan đến số nhiều
Dừng bao giờ giải quyết việc hiển thị số nhiều trong java code, bởi vì sự khác nhau về ngôn ngữ sẽ tạo ra sự khác biệt về các luật trong ngữ pháp hiển thị số lượng
Dưới đây là cách ta thường làm
Cách làm đúng với Resources#getQuantityString (int id, int quantity)
V. Làm nổi bật các từ
Sử dụng html để làm nổi bật từ
Nếu bạn muốn thay đổi màu của một vài từ trong TextView- ForegroundColorSpan không phải là sự lựa chọn tốt nhất, bởi vì việc làm nổi bật từ thực hiện qua chỉ số của từ và nó không an toàn khi làm việc với đa ngôn ngữ.Thay vào đó ta nên sử dụng html với thẻ <font> bên trong file strings.xml của bạn
Thử tượng tượng bạn có từ " “Discover and play games.” và bạn muốn làm nổi bật từ “Discover” và "play" với màu xanh
Nguồn: google-developer-experts