NSLocalizedString ()의 두 번째 매개 변수는 무엇입니까?


123

*comment매개 변수 는 무엇입니까?

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

이렇게하면 :

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

두 가지 버전의 Localizable.strings (영어 및 스페인어)가있는 경우 각각 항목이 필요합니까?

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

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

영어가 중복되지 않습니까?

답변:


72

주석 문자열은 응용 프로그램에서 무시됩니다. 응용 프로그램에서 발견되는 키의 문맥 사용에 의미를 추가하기 위해 번역가의 이익을 위해 사용됩니다.

예를 들어, 해당 언어 ( "What 's up World", "Yo World", "Good Day World"등)에서 구가 Hello_World_Key얼마나 형식적이거나 비공식적인지에 따라 특정 언어에서 키 값이 다를 수 있습니다 Hello World.

주석 필드에 문자열을 추가하여이 사용법을 번역자에게 힌트 할 수 있습니다. 번역자에게 응용 프로그램을 더 잘 현지화 할 수 있습니다.


277

두 번째 매개 변수는 소스 코드를 스캔하여 문자열 파일을 생성 할 수 있는 genstrings 명령 줄 유틸리티 를 사용하는 경우 문자열 파일에 자동으로 표시되는 주석입니다 .

주석은 로컬 라이저에게 유용합니다. 예를 들면 :

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

genstring을 실행하면 다음과 같이 Localizable.strings 파일에 항목이 생성됩니다.

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

@JuandelaTorre :이 질문은 몇 년 전입니다. 아마도 4thSpace (질문을 한 사람)는 답변 중 하나를 수락 한 이후로 자신의 질문을 보지 않았습니다.
Manni

또한 지정한 식별자와 일치하는 항목이 문자열 파일에 포함되지 않은 경우에 사용됩니다.
오스카

4
아니요,이 경우 주석이 아닌 키가 사용됩니다.
Nick Lockwood

요점이 뭐야? 예, 짧은 ID ( "id" - "word";예와 같이)에 유용 "Save" = "Save";하지만 더 긴 항목을 수동으로 추가해야합니다"id" - "word 1 word 2 word 3";
user924

주석 (두 번째 매개 변수)은 지역화를위한 것입니다. 다른 언어로 앱에 문자열을 추가하는 사람은 적용 할 번역을 알기 위해 컨텍스트가 필요합니다. 첫 번째 매개 변수는 지역화 문자열 파일의 키를 지정하기 만하면 문자열 파일은 실제로 UI에 표시 할 텍스트를 저장하는 것입니다.
Rob Keniger 2018

0

번역에 대한 개발자 이해를위한 것입니다. 즉, 해당 문자열 파일에서 해당 문자열을 가져 오는 키를 제공합니다.

댓글 매개 변수를 사용하면 개발자가 키가 나타내는 내용을 이해할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.