NSLocalizedString () 'in ikinci parametresi nedir?


123

İçindeki *commentparametre nedir :

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

Bunu yaparsam:

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

ve Localizable.strings'in (İngilizce ve İspanyolca) iki sürümü varsa, her birinin girişe ihtiyacı var:

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

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

İngiliz olan gereksiz değil mi?

Yanıtlar:


72

Yorum dizisi uygulama tarafından yok sayılır. Bir çevirmenin yararı için, uygulamanızda bulunduğu anahtarın bağlamsal kullanımına anlam katmak için kullanılır.

Örneğin, söz konusu Hello_World_Keydilde ne kadar resmi veya gayri resmi olması gerektiğine bağlı olarak anahtar, belirli bir dilde farklı değerler alabilir Hello World("What's up World", "Yo World", "Good Day World", vb.).

Uygulamanızı daha iyi yerelleştirebilecek (varsayılabilir) çevirmene bu kullanımı ipucu vermek için yorum alanına bir dize ekleyebilirsiniz.


277

İkinci parametre, kaynak kodunuzu tarayarak sizin için dizeler dosyasını oluşturabilen genstrings komut satırı yardımcı programını kullanırsanız, dizeler dosyasında otomatik olarak görünecek bir yorumdur .

Yorum, yerelleştiricileriniz için yararlıdır. Örneğin:

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

Genstrings'i çalıştırdığınızda, bu Localizable.strings dosyasında şu şekilde bir girdi oluşturur:

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

@JuandelaTorre: Bu soru bir kaç yaşında, belki 4thSpace (soruyu soran kişi) cevaplardan birini kabul ettiği için sorusuna bakmamış olabilir.
Manni

Ayrıca, dizeler dosyası belirttiğiniz tanımlayıcıyla eşleşen bir giriş içermiyorsa kullanılacak olan da budur.
Oscar

4
Hayır, bu durumda yorum değil anahtar kullanılır.
Nick Lockwood

amaç ne? evet kısa kimlik için kullanışlıdır ( "id" - "word";, örneğinizdeki gibi "Save" = "Save";), ancak manuel olarak daha uzun bir şey eklemeniz gerekir"id" - "word 1 word 2 word 3";
kullanıcı924

Yorum (ikinci parametre) yerelleştiriciler içindir. Uygulamanız için başka bir dilde dizeler ekleyen bir kişinin hangi çevirinin uygulanacağını bilmesi için bağlama ihtiyacı vardır. İlk parametre yalnızca yerelleştirme dizeleri dosyasındaki anahtarı belirtir; dizeler dosyası, kullanıcı arabiriminde görüntülenecek metni gerçekten depolayan dosyadır.
Rob Keniger

0

Bu sadece geliştiricinin çeviriyi anlaması içindir, yani karşılık gelen dizeler dosyasından karşılık gelen dizeyi almak için bir anahtar veriyorsunuz.

Yorum parametresi, geliştiricinin anahtarın neyi temsil ettiğini anlamasını sağlar ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.