2012-04-30 61 views
6

Tôi đang cố gắng dịch ứng dụng của mình và tôi cảm thấy khó dịch khi có một nửa trình giữ chỗ. Tôi cần phải xác định vị trí đoạn mã sau:Trình giữ chỗ và NSLocalizedString

[textView1 insertText:[NSString stringWithFormat:@"%@ è il %i/%i/%i. Il giorno delle settimana è %@. La Festa è compresa nel calcolo. \n", nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 

tôi đặt trong file localizable.string (tiếng Anh):

"festaCompresa" = @"%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n"; 

Sau đó, tôi thay đổi nội dung các đoạn mã:

[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaW, @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 

Nó không hoạt động.

+0

thế nào chính xác nó không hoạt động? – hamstergene

+0

Màn hình hiển thị không chính xác vì so sánh từ: festaCompresaW – Andrea

+0

Ngoài ra còn có lỗi trong tệp. chuỗi: Xác thực không thành công: dữ liệu không thể đọc được vì nó đã bị hỏng. – Andrea

Trả lời

4

Bạn đã sao chép và dán mã? Hay bạn đã gõ lại nó? Bởi vì nếu bạn sao chép-dán nó vấn đề là ở đó:

[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaW, @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 

Tôi cho rằng nó phải được

[textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 

Vì vậy, về cơ bản một " thay vì W.

Ngoài ra, trong Localizable.strings bạn không đặt @ ở phía trước của dấu ngoặc kép, vì vậy đây:

"festaCompresa" = @"%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n"; 

phải được điều này:

"festaCompresa" = "%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n"; 

Hy vọng nó giúp

6

tập tin chuỗi của bạn đã một lỗi nhỏ, bạn đã bao gồm một @ như chuỗi như một hằng số NSString - định dạng file sử dụng các chuỗi trong dấu ngoặc kép:

"festaCompresa" = "%@ is the %i/%i/%i. the day of the week is %@. The holidays is included in the calculation. \n"; 

BTW: khi tạo chuỗi định dạng cho nội địa hóa bạn có thể cần phải sử dụng định dạng vị trí trong đó mỗi đặc điểm định dạng bao gồm số đối số. Ví dụ:

"festaCompresa" = "%[email protected] is the %2$i/%3$i/%4$i. the day of the week is %@. The holidays is included in the calculation. \n"; 

Điều này rõ ràng là không bắt buộc trong chuỗi ở trên vì các đối số được bao gồm theo thứ tự chúng được cung cấp. Tuy nhiên trong một số ngôn ngữ, họ có thể cần phải theo một thứ tự khác và đây là cách nó được thực hiện.

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