Jaki jest drugi parametr metody NSLocalizedString ()?

123

Jaki jest *commentparametr w:

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

Jeśli to zrobię:

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

i mają dwie wersje Localizable.strings (angielską i hiszpańską), czy każda z nich wymaga wpisu:

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

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

Czy angielski nie jest zbędny?

4thSpace
źródło

Odpowiedzi:

72

Ciąg komentarza jest ignorowany przez aplikację. Jest używany z korzyścią dla tłumacza, aby nadać znaczenie kontekstowemu użyciu klucza, w którym znajduje się on w aplikacji.

Na przykład Hello_World_Keyklucz może przybierać różne wartości w danym języku, w zależności od tego, jak formalne lub nieformalne Hello Worldmusi być wyrażenie w tym języku („What's up World”, „Yo World”, „Good Day World” itp.).

Możesz dodać ciąg w polu komentarza, aby wskazać to zastosowanie tłumaczowi, który (można by przypuszczać) będzie w stanie lepiej zlokalizować twoją aplikację.

Alex Reynolds
źródło
277

Drugi parametr to komentarz, który automatycznie pojawi się w pliku ciągów znaków, jeśli użyjesz narzędzia wiersza poleceń genstrings , które może utworzyć plik ciągów za Ciebie, skanując kod źródłowy.

Komentarz jest przydatny dla twoich lokalizatorów. Na przykład:

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

Po uruchomieniu genstrings spowoduje to utworzenie wpisu w pliku Localizable.strings w następujący sposób:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
Rob Keniger
źródło
@JuandelaTorre: To pytanie ma już kilka lat, być może 4thSpace (osoba, która je zadała) nie spojrzała na jego pytanie, ponieważ zaakceptowała jedną z odpowiedzi.
Manni
To również zostanie użyte, jeśli plik ciągów nie zawiera wpisu pasującego do podanego identyfikatora.
Oscar
4
Nie, w tym przypadku używany jest klucz, a nie komentarz.
Nick Lockwood
o co chodzi? tak, przydaje się do short id ( "id" - "word";jak w twoim przykładzie "Save" = "Save";), ale musisz ręcznie dodać coś dłuższego"id" - "word 1 word 2 word 3";
user924
Komentarz (drugi parametr) dotyczy lokalizatorów. Ktoś, kto dodaje ciągi znaków do Twojej aplikacji w innym języku, potrzebuje kontekstu, aby wiedzieć, jakie tłumaczenie zastosować. Pierwszy parametr po prostu określa klucz w pliku ciągów lokalizacji, plik ciągów jest tym, co faktycznie przechowuje tekst do wyświetlenia w interfejsie użytkownika.
Rob Keniger,
0

Służy to tylko zrozumieniu tłumaczenia przez programistów, to znaczy podajesz klucz do uzyskania odpowiedniego ciągu z odpowiedniego pliku ciągów.

Parametr komentarza umożliwia programiście zrozumienie, co reprezentuje klucz ...

Shanmugaraja G
źródło