Mac’inizde bir çevirinin yer tutucularını doğrulamak için her bağımsız değişkenin konumunu, türünü ve amaçlanan kullanımını kaynak iletiyle karşılaştırın. Xcode’un uyuşmazlık tanılamalarını kullanın, ardından çoğul ikamelerini inceleyin ve oluşturulan etiketi birbirinden farklı örnek değerlerle test edin.
Bu kılavuz, Xcode’da bir Mac uygulamasının yerelleştirilmiş etiketlerini gözden geçiren kişiler içindir. Amaç, bir iletiyi ve çevirilerini uygulamanın sağladığı değerlerle karşılaştırarak denetlemektir. Aşağıdaki tüm etiketler İngilizce ve yapay örneklerdir; gerçek çevirileri değil, biçimlendirme işleyişini gösterir.
Bir iletinin bağımsız değişken sözleşmesinde neler bulunur?
Bağımsız değişken sözleşmesi, bir iletinin aldığı değerleri; bunların konumlarını, biçimlendirme türlerini, anlamlarını ve beklenen kullanımlarını açıklayan bir inceleme kaydıdır. Ayrı bir Apple dosya biçimi değil, kaynak koddan ve katalogdan çıkarılan pratik bir kontrol listesidir.
Swift’in String.LocalizationValue türü, çalışma zamanında eklenen değerlerle yerelleştirilebilir dizeleri destekler. Belgeleri ayrıca kaynak metnin yerelleştirme anahtarı olarak kullanılmasını, ayrı bir anahtar ve varsayılan değer sağlamaktan ayırır. Bu nedenle tek başına bir tanımlayıcı iletinin bağımsız değişkenlerini göstermeyebilir: varsayılan kaynak metni ve çağrıldığı yeri inceleyin. String.LocalizationValue
Added %lld items to %@ biçim dizesini ele alalım. Bu örnekte uygulama önce bir tamsayı sayısı, ardından nesne tabanlı bir koleksiyon etiketi sağlar. Çeviriyi düzenlemeden önce sözleşmeyi kaydedin:
| Bağımsız değişken konumu | Anlamı | Beklenen biçim | Örnek değer |
|---|---|---|---|
| 1 | Eklenen öğe sayısı | %lld |
7 |
| 2 | Hedef koleksiyon etiketi | %@ |
Canvas |
Apple’ın biçim başvurusu %@ belirtimini nesne dönüşümü, %d belirtimini işaretli 32 bit tamsayı, %f belirtimini double dönüşümü ve ll ifadesini long long için tamsayı uzunluk belirteci olarak tanımlar. Ayrıca %1$@ gibi konum belirten biçimleri de belgeler. Tür bilgisinin tamamını koruyun; %lld belirtimini %d olarak değiştirmek beklenen tamsayı türünü değiştirir. Başvuru arşivlenmiştir; güncel katalog belgelerinin yanı sıra biçim sözdizimi için kullanın. String Format Specifiers
Türleri aynı olsa bile bağımsız değişkenlerin anlamlarını inceleme kaydına ekleyin. Moved %@ to %@ iletisinde tür denetimi, öğe etiketi ile hedef etiketini ayırt edemez. Sözdizimi doğru olsa bile değerlerle sözcükler arasındaki ilişkinin doğru olması gerekir.
Xcode’da yetkili kaynağı nasıl bulursunuz?
Xcode’da projeyi açıp iletiyi içeren kataloğu bulun. Kaynak değiştiyse çıkarılan dizeleri yenilemek için Product > Build öğesini seçin. Project gezgininde kataloğu seçin, Editor > Assistant öğesini seçin ve kaynağını görüntülemek için ileti anahtarını seçin. Apple, katalog girdilerini bulup güncellemek için bu iş akışını belgeliyor. Localizing and varying text with a string catalog
Çağrı noktasının gerçekte hangi değerleri, hangi sırayla ve hangi yerelleştirme API’si üzerinden sağladığını denetleyin. Apple, String(localized:) gibi yerelleştirilebilir API’leri önerir; ayrı bir defaultValue içeren başlatıcıda ilk parametre anahtar, ikinci parametre ise varsayılan kaynak dizesidir. collection.added.summary gibi tarafsız bir tanımlayıcının iletiye sahip olduğu durumlarda bu önemlidir. Preparing your app’s text for translation
Üç şeyi birlikte kaydedin: katalog ve anahtar, varsayılan kaynak metin ve sıralı bağımsız değişken anlamları ile türleri. Bunlar birbiriyle uyuşmuyorsa çevirileri düzenlemeden önce tutarsızlığı giderin. Aksi takdirde çeviriyi uygulamanın güncel girdileri yerine eski bir kaynakla eşleştirebilirsiniz.
Gelecekteki düzenlemeler için de bağlam sağlayın. Apple, yerelleştirilebilir dizelere kullanımını açıklayan yorumlar eklemeyi destekler. Yararlı bir yapay yorum örneği şöyle olabilir: 1. bağımsız değişken öğe sayısı, 2. bağımsız değişken hedef koleksiyon etiketidir. Böylece yerelleştiriciye biçim belirticisinin aktaramadığı bilgi sağlanır. Preparing your app’s text for translation
Sayıları, türleri ve bağımsız değişken konumlarını nasıl denetlersiniz?
Apple, yanlış biçim belirticileri gibi yaygın sorunlar için String Catalog doğrulamasını kullanıma sundu; bazı sorunlar için düzeltmeler de sunuluyor. Xcode’un bu girdi için gösterdiği tanılamaları inceleyin. Önerilen düzeltmeyi, ileti anlamını koruduğunu doğrulayarak bir sözdizimi onarımı önerisi olarak değerlendirin. Build multilingual-ready apps
Çoğul ikameleri içermeyen basit bir ileti için şu inceleme sırasını izleyin:
- Kaynak ve aday metindeki bağımsız değişken kullanan tüm yer tutucuları belirleyin.
- Her yer tutucuyu bağımsız değişken konumuna atayın.
- Tam biçim türünü sözleşmeyle karşılaştırın.
- Gerekli her değerin metnin beklediği yerde bulunduğunu denetleyin.
- Eklenen, çıkarılan veya tekrarlanan başvuruları ayrı ayrı araştırın.
Konum belirten gösterim, çevirinin sözcük sırasını değiştirirken bağımsız değişken kimliğini korumasını sağlar. %2$@: added %1$lld items ifadesinde ilk görünen yer tutucu 2. bağımsız değişkene, ikincisi ise 1. bağımsız değişkene başvurur. Apple n$ konum sözdizimini belgeliyor. String Format Specifiers
Aşağıdaki karar tablosu, yukarıdaki iki bağımsız değişkenli örnek sözleşme için geçerlidir. Bunlar önerilen inceleme sonuçlarıdır; Xcode çalıştırılarak elde edilmiş sonuçlar değildir:
| Aday biçim metni | İnceleme sonucu | Gerekçe |
|---|---|---|
Added %lld items to %@ |
Basit sözleşmeyle eşleşiyor | Önce sayı, sonra hedef |
%2$@: added %1$lld items |
Sıra değişikliğine rağmen eşleşiyor | Açık konumlar iki bağımsız değişkenin kimliğini koruyor |
Added %d items to %@ |
Tamsayı türünü düzeltin | 1. bağımsız değişken artık beklenen uzunluk belirtecini kullanmıyor |
Added %lld items |
Eksikliği araştırın | Bu iletinin gerektirdiği hedef eksik |
Added %1$lld items to %1$@ |
Başvuruları düzeltin | 1. bağımsız değişkene çakışan türlerle başvuruluyor; 2. bağımsız değişken eksik |
Added %1$lld items to %2$@ (%2$@) |
Tekrarı inceleyin | Üç kullanım var, ancak başvurulan farklı bağımsız değişken sayısı iki |
Kullanım sayısını, farklı bağımsız değişken sayısından ayrı tutun. Son satır bu farkı özellikle gösteriyor: 2. bağımsız değişkeni tekrarlamak üçüncü bir sağlanan değer oluşturmaz. Bu tekrarın ifadede yer alıp almaması editoryal bir karardır. Bu görevde, amacı belirlenene kadar bunu işaretleyin.
Aynı şekilde, her yüzde karakterini bağımsız değişken olarak saymayın. Apple %% ifadesini gerçek bir yüzde işareti olarak tanımlar. Scale: %lld%% gibi bir biçim etiketi, bir değer yer tutucusu ve kaçışlı bir yüzde işareti içerir. String Format Specifiers
Çoğul ikameleri neden farklı biçimde denetlenmelidir?
Çoğul iletileri incelerken değeri gösteren metnin yanı sıra seçim mekanizmasını da denetlemek gerekir. Apple, String Catalog oturumunda ikamelerin çoğul durum sözlükleri içerebileceğini açıklıyor. Denetçi, kontrol eden bağımsız değişkenin konumunu ve C tarzı biçim belirticisini gösterir. Bu nedenle bir ikame, belirli bir dal bu bağımsız değişkeni sayısal olarak yazdırmasa bile ona bağlı olabilir. Discover String Catalogs
Örnek bir öğe sayısı iletisinde One item added ile %lld items added ifadelerini karşılaştırın. İlk dal miktarı sözcüklerle belirtir; ikincisi yazdırır. Her dalda görünen yer tutucu sayısının aynı olmasını şart koşan bir kural, ilk dalı gereksiz yere reddeder. Apple’ın belgelenmiş strings sözlüğü davranışı, çoğul biçimlerde sayısal biçim belirticisinin atlanmasına açıkça izin verir ve sayıyı sözcüklerle yazmayı bir seçenek olarak sunar. Stringsdict file format
Bunun yerine dalları dikkate alan şu incelemeyi kullanın:
- Denetçide ikamenin kontrol eden bağımsız değişkeninin konumunu ve türünü doğrulayın.
- Hedef yerelleştirmede bulunan her çoğul dalı inceleyin.
- Görüntülenen her yer tutucunun başvurduğu bağımsız değişkenle eşleştiğini denetleyin.
- Sayısal değerin gösterilmemesini dalın ifadesiyle açıklayın.
- Diğer ileti bağımsız değişkenlerini ayrıca denetleyin; sayıyı sözcüklerle yazmak, eksik bir koleksiyon etiketini açıklamaz.
Birbirinden bağımsız değişen iki sayı için rollerini ayrı tutun. Öğe ve koleksiyonlar hakkındaki örnek bir iletide, öğe ikamesini öğe sayısı, koleksiyon ikamesini ise koleksiyon sayısı kontrol etmelidir. Apple, tek bir iletide birden çok ikameyi belgeliyor ve çalışma zamanı çıktısının seçilen çoğul durumları birleştirdiğini açıklıyor. Discover String Catalogs
Düzeltilen iletiyi Mac’inizde nasıl doğrularsınız?
Girdiyi düzelttikten sonra uygulamayı derleyin ve katalogda kalan tanılamaları inceleyin. Ardından ilgili ekranı hedef yerelleştirmede çalıştırın. Apple’ın desteklediği iş akışı şöyledir: Product > Scheme > Edit Scheme öğesini seçin, Run öğesini seçin, Options bölümünü açın, App Language ile uygun App Region değerlerini seçin, Close düğmesine tıklayın ve seçili hedefi çalıştırın. Testing localizations when running your app
Karışıklıkları görünür kılacak örnek değerler seçin. İki sayı bağımsız değişkeni için 2 ve 7 gibi farklı sayılar kullanın. İki metin bağımsız değişkeni için Tile ve Canvas gibi farklı etiketler seçin. Bunlar örnek test girdileridir; amaçları, sağlanan değerlerin iletinin hangi bölümlerinde göründüğünü ortaya çıkarmaktır.
Çoğul iletilerde incelenen dallara ulaşan değerleri deneyin. İki ikame birbirinden bağımsız değişiyorsa, bir sayıyı sabit tutarken diğerini değiştiren bileşimleri de kullanın. Hem seçilen ifadeyi hem de görüntülenen her değerin yerini inceleyin. Tek bir bileşimin doğru görüntülenmesi diğer dalların da denetlendiği anlamına gelmez.
Çeviri durumunu sözleşme denetiminizden ayrı tutun. Apple, katalogdaki yeşil onay işaretini metin girildikten sonraki çevrilmiş durum olarak tanımlar. Bu durum göstergesini dört denetimin tamamına kanıt saymak yerine, yaptığınız gerçek kontrolleri (bağımsız değişken eşlemesi, tür karşılaştırması, dal incelemesi ve oluşturulan örnekler) kaydedin. Localizing and varying text with a string catalog
Yer tutucular amaçlanan bağımsız değişkenlere karşılık geldiğinde, türleri eşleştiğinde ve dala özgü her atlama ya da tekrarın açık bir gerekçesi bulunduğunda ileti hazırdır. Bu kısa sözleşmeyi iletinin yanında tutmak, sonraki kaynak veya çeviri düzenlemesini değerlendirmeyi kolaylaştırır.
Kaynaklar
- Localizing and varying text with a string catalog — Apple
- String.LocalizationValue — Apple
- Preparing your app’s text for translation — Apple
- String Format Specifiers — Apple
- Build multilingual-ready apps — Apple
- Discover String Catalogs — Apple
- Stringsdict file format — Apple
- Testing localizations when running your app — Apple