2010-08-18 27 views
5

Tôi đã có một ứng dụng iPhone cần được bản địa hóa. Không có vấn đề với chuỗi, nhưng, tôi đang gặp rắc rối với tài nguyên: Tôi cần tải các trang HTML được bản địa hóa. Các tệp này giống như: presentation.htm Các tệp được thêm vào dự án với thư mục chứa chúng (html /) và thêm nhóm được gọi là thư mục.Không thể tự động tải các tài nguyên được bản địa hóa với pathForResource

tôi tải các trang html với mã này:

NSString *pathPresentation = [[NSBundle mainBundle] pathForResource:@"presentation" ofType:@"htm"]; 

if(!pathPresentation) { 
    NSLog(@"Could not find presentation.htm"); 
} 
NSURL *url = [NSURL fileURLWithPath:pathPresentation]; 
NSLog(@"-> path presentation.htm : %@", pathPresentation); 
UIWebView *webViewPresentation = [[UIWebView alloc] init]; 
NSData *htmlData = [NSData dataWithContentsOfFile:pathPresentation]; 
if (htmlData) { 
    [webViewPresentation loadData:htmlData MIMEType:@"text/html" textEncodingName:@"Latin-1" baseURL:url]; 
} 

Hãy thử đầu tiên:

Tôi đã theo các chỉ dẫn của trang web này I Can Localize, kể từ khi có được nêu ra cục bộ nguồn lực trong ứng dụng. Các thư mục có tên: en.lprojfr.lproj.

tôi thử nó trên mô phỏng, nhưng nó đã không thành công:

  • nhật ký cho thấy rằng con đường là: (...)/myapp.app/presentation.htm
  • file được tải trong trình mô phỏng bằng tiếng Pháp, trong khi trình mô phỏng bằng tiếng Anh.

Second Hãy thử:

Sau đó, tôi xóa các nguồn lực và tái thêm chúng vào thư mục nhóm của họ (Resource/html /). Tôi nhấn nút Info và chọn "Make file localizable". Tệp được thêm vào thư mục English.lproj. Sau đó, tôi chọn "Thêm nội địa hóa" và "Tiếng Pháp".

tôi thử nó trên mô phỏng, nhưng nó đã không thành công (Tôi có sạch sẽ xây dựng trước khi thử nghiệm):

  • nhật ký cho thấy rằng con đường là: (...)/myapp.app /presentation.htm
  • tệp được tải trong trình mô phỏng bằng tiếng Pháp, trong khi trình mô phỏng bằng tiếng Anh.

Third Hãy thử:

Sau khi đọc this page về tài nguyên tải cục bộ trên iPhone OS 4.0, tôi đã thay đổi các nguồn lực trong các thư mục cục bộ (xóa tài nguyên, và đổi tên thư mục trong en_UK. lprojfr_FR.lproj

Tôi thử trên trình giả lập, nhưng nó không thành công (tôi đã làm sạch bản dựng trước khi thử nghiệm) :

  • nhật ký cho thấy rằng con đường là: (...)/myapp.app/presentation.htm
  • tập tin được tải trong mô phỏng là ở Pháp, trong khi mô phỏng là bằng tiếng Anh.

Trợ giúp?

Bất kỳ ý tưởng nào? Tôi biết có chức năng: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

Nhưng tôi muốn nó tự động nhất có thể và sửa những thứ như Directory hoặc localizationName có thể ngăn ứng dụng của tôi tự động.

+0

Sau khi loại bỏ ứng dụng từ trình mô phỏng, nó không hoạt động, nhưng đường dẫn đã thay đổi. Bây giờ nó là: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD

Trả lời

16

Giải pháp là: ứng dụng

  1. remove từ mô phỏng (hoặc thiết bị)
  2. sử dụng đơn giản thư mục cục bộ, như: en.lproj
  3. sạch build
+1

Làm điều này! Sau khi thử tất cả các giải pháp không có hiệu lực, tất nhiên các thiết lập lại cứng làm việc. –

+0

Tôi ước gì tôi đã tìm thấy bài đăng này trước khi tôi đã dành hai giờ. Đối với tôi, "xóa ứng dụng" là thủ thuật. Tôi đoán nó bị lẫn lộn. – Walter

+1

Tôi đặt lại trình mô phỏng của mình rồi nhận kết quả chính xác! – sunkehappy

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