Tham số thứ hai của NSLocalizedString () là gì?


123

Là gì *commenttham số trong:

NSString *NSLocalizedString(NSString *key, NSString *comment)

Nếu tôi làm điều này:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

và có hai phiên bản của Localizable.strings (tiếng Anh và tiếng Tây Ban Nha), mỗi phiên bản cần có mục:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

Không phải là tiếng Anh dư thừa?

Câu trả lời:


72

Chuỗi nhận xét bị bỏ qua bởi ứng dụng. Nó được sử dụng cho lợi ích của người dịch, để thêm ý nghĩa cho việc sử dụng theo ngữ cảnh của khóa nơi nó được tìm thấy trong ứng dụng của bạn.

Ví dụ: Hello_World_Keykhóa có thể nhận các giá trị khác nhau trong một ngôn ngữ nhất định, tùy thuộc vào mức độ chính thức hoặc không chính thức của Hello Worldcụm từ cần có trong ngôn ngữ đó ("Thế giới gì", "Thế giới Yo", "Thế giới ngày tốt lành", v.v.).

Bạn có thể thêm một chuỗi trong trường nhận xét để gợi ý cách sử dụng này cho người dịch, người sẽ (người ta sẽ đoán) có thể bản địa hóa ứng dụng của bạn tốt hơn.


277

Tham số thứ hai là một nhận xét sẽ tự động xuất hiện trong tệp chuỗi nếu bạn sử dụng tiện ích dòng lệnh genstrings , có thể tạo tệp chuỗi cho bạn bằng cách quét mã nguồn của bạn.

Nhận xét rất hữu ích cho người bản địa hóa của bạn. Ví dụ:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

Khi bạn chạy genstrings, điều này sẽ tạo ra một mục trong tệp Localizable.strings như thế này:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";

@JuandelaTorre: Câu hỏi này đã có tuổi, có lẽ 4thSpace (người hỏi câu hỏi) đã không xem xét câu hỏi của anh ấy vì anh ấy chấp nhận một trong những câu trả lời.
Manni

Đó cũng là những gì sẽ được sử dụng nếu tệp chuỗi không chứa mục nhập khớp với mã định danh bạn đã chỉ định.
Oscar

4
Không, chìa khóa được sử dụng trong trường hợp đó, không phải bình luận.
Nick Lockwood

điểm là gì vâng, nó rất hữu ích cho id ngắn ( "id" - "word";như trong ví dụ của bạn "Save" = "Save";), nhưng bạn phải thêm thủ công một cái gì đó dài hơn"id" - "word 1 word 2 word 3";
user924

Nhận xét (tham số thứ hai) là dành cho người bản địa hóa. Một người nào đó đang thêm chuỗi cho ứng dụng của bạn bằng ngôn ngữ khác cần ngữ cảnh để biết nên áp dụng bản dịch nào. Tham số đầu tiên chỉ xác định khóa trong tệp chuỗi nội địa hóa, tệp chuỗi là thứ thực sự lưu trữ văn bản để hiển thị trong giao diện người dùng.
Rob Keniger

0

Đó chỉ là sự hiểu biết của nhà phát triển về bản dịch, đó là bạn đang đưa ra một khóa để nhận chuỗi tương ứng từ tệp chuỗi tương ứng.

Tham số nhận xét cho phép nhà phát triển hiểu khóa đại diện cho điều gì ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.