Bir Mac uygulamasının çevirilerini gidiş dönüş aktarmak için Xcode Yerelleştirme Kataloğu’nu dışa aktarın, çoğul yapısını ve bağımsız değişken eşlemelerini koruyun, ardından dönen paketi içe aktararak test edin. Bu kılavuz, teslim edilecekleri ve kontrol edilecekleri tam olarak göstermek için sentetik bir seçim etiketi kullanıyor.

Görev, Mac’te Xcode kullanarak çevirmenlere teslim edilecek dosyaları hazırlayan biri için: sayıya bağlı tek bir iletiyi çeviri için gönderin ve davranışını koruyarak geri alın. Örnek etiket Selected 3 tiles in 2 groups. şeklindedir. Her iki sayı da birbirinden bağımsız olarak değişebilir; bu nedenle teslim edilecek paketin okunabilir ifadeden fazlasını koruması gerekir.

Dışa aktarmadan önce ileti sözleşmesini tanımlayın

İleti sözleşmesini küçük bir belirtim olarak ele alın: uygulamanın hangi girdiyi aradığı, çalışma anında hangi değerleri sağladığı ve dil bilgisel değişimi hangi değerlerin belirlediği. Apple, String.LocalizationValue türünün çalışma anında sağlanan değerler de dâhil olmak üzere, araya değer eklenebilen yerelleştirilebilir dizeleri desteklediğini belgeliyor. Belgelerinde ayrıca tanımlayıcının görüntülenen kaynak metinden farklı olması gerektiğinde statik bir anahtar ve ayrı bir varsayılan değer kullanılmasını da açıklıyor. String.LocalizationValue

Bu örnek için çeviri isteğinin yanına aşağıdaki sözleşmeyi kaydedin. Bunlar, sentetik etiket için örnek gereksinimlerdir; bir Apple dosya biçimi değildir.

Sözleşme öğesi Bu örneğin gereksinimi
İletinin amacı Geçerli seçimi özetlemek
İngilizce kaynak Her iki sayı da çalışma anında sağlanan Selected 3 tiles in 2 groups.
Bağımsız değişken 1 tile sözcüğünün biçimini belirleyen karo sayısı
Bağımsız değişken 2 group sözcüğünün biçimini belirleyen grup sayısı
Sayısal gösterim Xcode’un her bağımsız değişken için kaydettiği türü ve biçim belirtecini koruyun
Çeviri esnekliği Her bağımsız değişkenin anlamını koruyarak cümle sırasını değiştirmek
Gerekli davranış Her isim kendi sayısıyla uyumlu olmalı

Ayrıca projedeki gerçek kataloğu, tabloyu ve anahtarı da kaydedin. Çeviri sırasında yeni bir anahtar uydurmayın. Apple’ın hazırlık kılavuzu, yerelleştirilebilir API’lerin derleme sırasında katalogları doldurduğunu ve kataloğu seçmek için table veya tableName parametresinin kullanıldığını açıklıyor. Ayrıca dizenin bağlamını açıklayan yorumları da destekliyor. Uygulamanızın metnini çeviriye hazırlama

Kullanışlı bir örnek yorum: Selection summary. Argument 1 is the number of selected tiles. Argument 2 is the number of groups containing those tiles. Both counts vary independently. Keep each count attached to its corresponding noun. Bu açıklama, iki bağımsız değişken aynı sayısal türde olsa bile çevirmenin bunları ayırt etmesine yetecek bilgiyi sağlar.

Katalogda birbirinden bağımsız çoğul biçimleri hazırlayın

Uygulamanın yerelleştirilebilir kaynak kodunda iletiyle başlayın, ardından projeyi derleyin. Dize kataloğu düzenleyicisinde ilgili anahtara Control tuşuyla tıklayın ve Vary by Plural seçeneğini belirleyin. Apple, Xcode’un araya eklenen değerin biçim belirtecini belirlediğini, dilin çoğul biçimlerini eklediğini ve varyant alanlarını başlangıçta mevcut değerle doldurduğunu belgeliyor. Bu önceden doldurulmuş değerlerin yine de düzenlenmesi gerekir. Dize kataloğuyla metni yerelleştirme ve varyasyon oluşturma

İngilizce kaynak için hedeflenen görüntülenen sonuçlar arasında Selected 1 tile in 1 group., Selected 3 tiles in 1 group. ve Selected 1 tile in 2 groups. bulunur. Yalnızca karo sayısına dayanan tek bir seçim, tüm birleşimleri doğru şekilde üretemez.

Apple’ın String Catalog tanıtımı, birden fazla bağımsız değişkenin yer değiştirmeler yoluyla farklılaştırılmasını destekliyor. Her yer değiştirme çoğul durumları içeriyor ve denetçisi bağımsız değişken konumunu ve C tarzı biçim belirtecini gösteriyor. Çalışma anında seçilen yer değiştirmeler çevrelerindeki iletiyle birleştiriliyor. String Catalogs’u keşfedin

Birbirinden bağımsız iki sayı için bu mekanizmayı kullanın. Sayıyla uyumlu olması gereken sözcükleri, cümlenin çevresinde sabit bir çoğul isim olarak bırakmak yerine ilgili varyasyonun içine koyun. Düzenleyici izin veriyorsa yer değiştirmelere anlamlı adlar verin, ardından eşlemelerini inceleyin: karo yer değiştirmesi hâlâ bağımsız değişken 1’i, grup yer değiştirmesi ise bağımsız değişken 2’yi kullanmalıdır.

Her hedef yerelleştirmenin İngilizcedeki dal envanterini aynen üretmesini şart koşmayın. Apple, Xcode’un dile özgü çoğul varyasyonları eklediğini belgeliyor. Kaynak yerelleştirmeye varyasyon eklemek çevirilere de yansır; yalnızca başka bir yerelleştirmeye eklemek ise sadece o yerelleştirmeyi etkiler. Dışa aktarmadan önce hedefteki gerçek dalları inceleyin. Dize kataloğuyla metni yerelleştirme ve varyasyon oluşturma

İfadelerin yeri değişirken bağımsız değişken kimliğini koruyun

Bir yer tutucunun cümledeki konumu ile bağımsız değişken numarası farklı şeyler ifade eder. Çevirmenin, uygulamanın bu değerleri sağlama sırasını değiştirmeden grup sayısını karo sayısından önce vermesi gerekebilir.

Apple’ın biçim belirteci başvuru belgesi, n$ kullanarak konum belirten gösterimi açıklıyor. Örneğin %1$lld, long long tamsayı dönüşümüyle bağımsız değişken 1’i; %2$lld ise aynı dönüşümle bağımsız değişken 2’yi ifade eder. %d farklı bir tamsayı gösterimini belirtir; %lld için kısa bir yazım değildir. Bu başvuru arşivlenmiş bir belgedir; bu nedenle yerleşik biçimlendirme kuralları için güncel katalog iş akışıyla birlikte kullanın. Dize Biçim Belirteçleri

Örnek biçim parçası Groups: %2$lld; tiles: %1$lld olsun. Bağımsız değişken 1’in değeri 3 ve bağımsız değişken 2’nin değeri 2 olduğunda amaçlanan çıktı Groups: 2; tiles: 3 olur. Bu parça yalnızca bağımsız değişken sırasını gösterir; dil bilgisel çoğul seçimini uygulamaz ve kataloğun yer değiştirmelerinin yerini almamalıdır.

Yer tutucuları anlam, dizin ve türe göre inceleyin. Yalnızca iki yüzde işaretinin kaldığını kontrol etmek, sayıların yer değiştirmesini gözden kaçırır. Yalnızca türleri kontrol etmek de değişimi fark ettirmez; çünkü iki değer de tamsayıdır. Tersine, sırf bir çeviriye uysun diye uygulamanın bağımsız değişken sırasını değiştirmek, bu girdiyi kullanan diğer tüm çevirilerin sözleşmesini değiştirir.

Teslimat için çevirmenden, ifadeyi uyarlarken dışa aktarılan bağımsız değişken ilişkilerini ve biçimlendirme türlerini korumasını isteyin. Bir yer değiştirmede yapılacak yapısal değişiklik, sözleşmeye göre açıkça incelenmelidir. Sözcük sırasının değişmesi ise tamamen uygun olabilir.

Çevirmenin geri gönderebileceği bir paket dışa aktarın

Dışa aktarmadan önce Swift yerelleştirilebilir dizelerinin dâhil edilmesi için projede Use Compiler to Extract Swift Strings derleme ayarını etkinleştirin. Project gezgininde projeyi seçin, Product > Export Localizations yolunu izleyin, gerekli yerelleştirmeleri ve hedef konumu seçip dışa aktarın. Apple bu adımları ve ortaya çıkan .xcloc paketini belgeliyor. Yerelleştirmeleri dışa aktarma

İki katalog uzantısının görevleri farklıdır. Projedeki .xcstrings dosyası String Catalog’u içerir. Dışa aktarılan .xcloc paketi çevirmenlere teslim edilir; Localized Contents klasöründe XLIFF, Notes klasöründe ise destekleyici metin bulunabilir. İletiyi yalnızca görünen cümlelerin iki sütunlu listesine indirgemek yerine paketi sözleşme notuyla birlikte gönderin. Yerelleştirmeleri dışa aktarma

Çeviri aracının XLIFF’teki String Catalog varyasyonlarını desteklediğini kontrol edin. Apple, katalogdan türetilen varyasyon tanımlayıcılarının dize anahtarı ile varyasyon yapılandırmasını kodladığını açıklıyor ve bu dışa aktarım gösterimi için Localization Prefers String Catalogs ayarını belgeliyor. Bu yapılar geri dönüş sürecinde korunmalıdır. String Catalogs’u keşfedin

Aşağıdaki pratik teslimat kontrol listesini kullanın. Bu, belgelenmiş paket yapısından ve örneğin sözleşmesinden türetilmiş bir iş akışı önerisidir.

  • İlgili kaynakları korunmuş çevrilmiş .xcloc paketini geri alın.
  • Bilinçli bir yapısal değişiklik belgelenmediği sürece ileti tanımlayıcılarını ve varyasyon yollarını koruyun.
  • Hedef yerelleştirmenin gerektirdiği çoğul dallar için hedef metni sağlayın.
  • Bağımsız değişken kimliklerini, sayısal türleri ve yer değiştirme eşlemelerini koruyun.
  • Dışa aktarımdan sonra gelen kaynak değişikliklerini belirtin; böylece içe aktarmadan önce uzlaştırılabilirler.

Çevirmenin aracı varyasyonlu girdileri koruyamıyorsa dışa aktarılan yerelleştirmeyi düzenlemek veya çevirileri projenin kataloğuna girmek için Xcode’u kullanın. Apple, XLIFF hedeflerinin ve String Catalog’ların Xcode’da düzenlenmesini belgeliyor; sonraki dışa aktarımlara katalog değişiklikleri dâhil edilir. Yalnızca düz metin alışverişi yapmak, varyasyon yapısını yeniden oluşturma işini birine bırakır. XLIFF ve dize kataloğu dosyalarını düzenleme

Dönen paketi içe aktarın ve gerçek farkları inceleyin

Karşılaştırma için özgün dışa aktarımı hazır tutun. Çevrilmiş paket geri geldiğinde projeyi seçin ve Product > Import Localizations yolunu izleyin. Xcode Yerelleştirme Kataloğu klasörünü seçin. İçe aktarma arayüzünde Issues View üzerinden uyarıları ve hataları, içe aktarmayı tamamlamadan önce File View üzerinden değişiklikleri inceleyin. Apple, karşılaştırma düzenleyicisinde içe aktarılan sürümün solda, mevcut proje sürümünün ise sağda görüntülendiğini belirtiyor. Yerelleştirmeleri içe aktarma

Katalog kaynaklı dizeler için Apple, çevirilerin uygun String Catalog’a geri aktarıldığını belgeliyor. İçe aktardıktan sonra seçim özeti girdisini yeniden açın ve her iki yer değiştirmeyi, bağımsız değişken eşlemelerini ve hedef dallarını inceleyin. String Catalogs’u keşfedin

Bir sorun görünüyorsa odaklı bir tanılama sırası izleyin. Bir girdi yoksa tablo ve anahtarını özgün dışa aktarımla karşılaştırın. Çoğul varyantlar yoksa dönen varyasyon yapısını karşılaştırın. Sayılar yanlış isimlerin yanında görünüyorsa bağımsız değişken eşlemelerini karşılaştırın. Yalnızca tek bir birleşim yanlış okunuyorsa uygulama kodunu değiştirmeden önce o dalın metnini inceleyin. Bu sıra, örneğin bağımlılıklarını izler; Xcode’un sözleşme ihlallerinin tümünü otomatik olarak saptadığı anlamına gelmez.

Bağımsız değişkenlerin yer değiştirmesini ortaya çıkarmak için eşit olmayan sayıları test edin

Başarılı içe aktarma, Xcode’un teslimatı kabul ettiğini gösterir. Örneğin davranışının ayrıca kontrol edilmesi gerekir. Aşağıdaki birleşimleri görüntülemek için uygulamanın test verilerini veya bir geliştirme fikstürünü kullanın. Beklenen cümleler, İngilizce kaynak sözleşmesini örnekler; hedef dildeki ifade ve dal seçimi hedef yerelleştirmeye uygun olmalıdır.

Karo sayısı Grup sayısı Beklenen İngilizce kaynak çıktısı Ortaya çıkarmaya yardımcı olduğu durum
1 1 Selected 1 tile in 1 group. Her iki tekil biçim
3 1 Selected 3 tiles in 1 group. Bağımsız karo varyasyonu
1 2 Selected 1 tile in 2 groups. Bağımsız grup varyasyonu
3 2 Selected 3 tiles in 2 groups. Bağımsız değişkenlerin yer değiştirmesini ortaya çıkaran eşit olmayan değerler

Uygulama boş seçimi gösterebiliyorsa sıfır sayısı kontrolü de ekleyin. Ayrıca her hedef yerelleştirmenin gerektirdiği tüm çoğul kategorilerini çalıştıran değerler seçin. Yukarıdaki dört satır İngilizcedeki tekil/çoğul birleşimlerini kapsar; hedef dildeki tüm olası dalları kapsamaz.

Mac uygulamasını hedef yerelleştirmede çalıştırmak için Product > Scheme > Edit Scheme yolunu izleyin, Run seçeneğini belirleyip Options bölümünü açın. App Language ayarını ve gerektiğinde App Region ayarını yapın, düzenleyiciyi kapatın, Mac çalıştırma hedefini seçip uygulamayı çalıştırın. Apple, şema tabanlı bu test iş akışını belgeliyor. Uygulamanızı çalıştırırken yerelleştirmeleri test etme

Görüntülenen iletiyi okuyun ve masaüstü arayüzündeki sığışmasını inceleyin. Sayılar doğru isimlerle eşleşiyorsa, gerekli her dal doğru çalışıyorsa ve dönen yapı amaçlanan sözleşmeyle eşleşiyorsa çeviri gidiş dönüşü bu etiketin gerektirdiği davranışı korumuştur. Sonraki ifade değişikliklerinin aynı açık gereksinimlere göre kontrol edilebilmesi için sözleşme notunu teslimatla birlikte saklayın.

Kaynaklar