Tôi có một dự án sử dụng một thư viện tĩnh (SL). Trong SL đó, có một vài chuỗi mà tôi muốn bản địa hóa và dự án bao gồm tất cả các tệp bản địa hóa. Bản địa hóa hoạt động tốt khi lưu trữ tất cả các bản dịch văn bản trong cùng một tệp. Vấn đề là tôi muốn tách các chuỗi SL ra khỏi các chuỗi khác. Tôi đã cố gắng để đặt hai tập tin * .strings khác nhau (Localizable.strings và Localizable2.strings) trong thư mục ngôn ngữ quan tâm nhưng điều đó không hoạt động. Tôi cũng đã cố gắng sử dụng hai tập tin * .strings có cùng tên (Localizable.strings) nhưng với các đường dẫn khác nhau. Nó cũng không hoạt động. Có vẻ như chỉ có một tệp bản địa hóa được hỗ trợ, đúng không? Bất cứ ai có thể đề xuất một cách tốt để làm điều này? Tôi đang sử dụng SDK 3.2 beta 2.Nội địa hóa các chuỗi trong lib tĩnh
Trả lời
Không thể gộp nó trong một lib tĩnh, nhưng bạn có thể tạo gói mới như "MyStaticLibraryName.bundle", đặt bên trong tất cả các bản địa hóa và sử dụng mã bên dưới để thay thế "NSLocalizedString()". Tất cả những gì bạn cần làm: thêm một thư viện tĩnh và gói tài nguyên.
NSString *MyLocalizedString(NSString* key, NSString* comment) {
static NSBundle* bundle = nil;
if (!bundle) {
NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MyStaticLibraryName.bundle"];
bundle = [[NSBundle bundleWithPath:path] retain];
}
return [bundle localizedStringForKey:key value:key table:nil];
}
Tạo chuỗi địa phương cho thư viện tĩnh, sau đó đặt tệp chuỗi đó vào thư mục "YourLibraryResource". Đổi tên thư mục "YourLibraryResource.bundle".
Bây giờ bạn cũng bao gồm gói này trong dự án cùng với thư viện. Sau đó sử dụng mã được đưa ra bởi abuharsky.
Đặt các tệp có cùng tên giới thiệu một dự án không bao giờ hoạt động, bởi vì trong ứng dụng kết quả, chúng kết thúc tất cả trong cùng một vị trí. (. Xcode không duy trì cấu trúc thư mục của bạn)
Nhưng bạn có thể đặt một phần của nội địa hóa của bạn vào Localizable2.strings và sau đó sử dụng:
NSLocalizedStringFromTable (@ "chìa khóa", @ "Localizable2", @ "")
Vâng, đó chính xác là giải pháp đúng! – slatvick
- 1. Java: Địa phương hóa chuỗi tĩnh
- 2. về nội địa hóa iOS
- 3. Cách xử lý nội địa hóa trong các tệp JavaScript?
- 4. nội địa hóa dữ liệu động
- 5. Nội dung bản địa hóa + Bảng phân cảnh + .strings -> không bản địa hóa
- 6. java String.format: số có nội địa hóa
- 7. Nội địa hóa và bản vẽ
- 8. Cách xử lý nội địa hóa trong knockout.js?
- 9. Nội địa hóa cho tiếng Nga trong Android
- 10. Cách triển khai nội địa hóa trong web.sitemap
- 11. Bản địa hóa chuỗi "Tất cả các tệp" của JFileChooser
- 12. Thử nghiệm đơn vị các chuỗi được bản địa hóa
- 13. Bản địa hóa các chuỗi được nối hoặc động
- 14. .địa phương hóa nội mạng cho không dây
- 15. Làm thế nào để vô hiệu hóa nội địa hoá của các lỗi trong Visual Studio?
- 16. Bảng phân cảnh + nội dung bản địa hóa + tệp .strings không bản địa hóa tại thời gian chạy
- 17. Chuỗi liên tục dưới dạng Chuỗi được bản địa hóa
- 18. Nội địa hóa của Spring không chuyển đổi ngôn ngữ
- 19. Javascript Số lượng và nội địa hóa tệ
- 20. Nội địa hóa WinForms .NET - thay thế ComponentResourceManager
- 21. Cách bản địa hóa Nội dung của ứng dụng Django
- 22. Silverlight ValidatesOnException nội địa hóa nhắn mặc định
- 23. Bàn điều khiển psql không chấp nhận nội địa hóa
- 24. Locbaml nội địa hóa .net ứng dụng wpf4
- 25. ASP.NET: rõ ràng so với nội địa hóa ẩn?
- 26. cách bản địa hóa các chuỗi nhãn trong ios cho người mới bắt đầu
- 27. Cách tốt nhất để cung cấp nội địa hóa cho Enums là gì?
- 28. Các chuỗi tĩnh dài trong các đối tượng sống ngắn
- 29. Chuỗi nhiều dòng trong chuỗi chuỗi được bản địa hóa mục tiêu c
- 30. Cách xử lý các bản địa hóa trang động?
Đối với chuỗi gen để làm việc với thiết lập này tham số -s phải được sử dụng. – hariseldon78