Çevrilmiş olarak görünmeye devam eden eski bir çeviriyi bulmak için değiştirilen kaynak mesajı String Catalog girdisine kadar izleyin, derlemeyi yeniden yapın ve ifadeleri karşılaştırın. Tek başına yeşil onay işareti, zaten tespit ettiğiniz bir uyumsuzluğu gideremez.

Bu iş akışı, Xcode’da mevcut bir .xcstrings kataloğuyla Mac uygulaması geliştiren kişiler içindir. Amaç, İngilizce kaynak metinde yapılan bir düzenlemeden sonra hangi çevirilerin ele alınması gerektiğini belirlemek, mevcut yararlı metni korumak ve düzeltilen mesajı çalışan uygulamada doğrulamaktır.

Kaynak mesaj değiştiğinde ne olmalı?

Apple, bir kaynak dizenin değiştirilmesinin çevirilerini incelemeye işaretlediğini belgeliyor. Katalogdaki durumlar çevrilmemiş dizeleri (New), ilgilenilmesi gereken dizeleri (Needs Review) ve yeşil onay işaretli çevrilmiş dizeleri birbirinden ayırır. Ayrı bir Stale durumu, Xcode’un daha önce çevrilmiş bir dizeyi kodda artık bulamadığı anlamına gelir. String Catalog’ları keşfetme

Bu sorunu teşhis ederken bu terimler önemlidir. Uygulamanızda hâlâ kullanılan bir mesajın eski çevirisi, inceleme gerektiren bir iştir. Yalnızca katalogdaki Stale durumunu aramak, bu çeviriyi gözden kaçırabilir.

Apple’ın kaynak değişiklikleriyle ilgili belgelenmiş davranışı beklenen sonucu açıklar, ancak belirli bir girdinin çevrilmiş durumunu neden koruduğunu açıklamaz. Böyle bir durumda, onay işaretini ifadelerin güncel olduğuna dair yeterli kanıt saymadan önce, düzenlenen kaynak ile katalog arasındaki ilişkiyi araştırın.

Çevirileri incelemeden önce tam mesajı bulun

Değiştirilmiş tek bir mesajla başlayın. Önceki İngilizce ifadesini, güncel ifadeyi, varsa ayrı arama anahtarını ve katalog adını kaydedin. Bu küçük karşılaştırma kaydı, bir Xcode özelliği değil, önerilen bir tanılama yardımcısıdır. Birkaç girdi benzer göründüğünde somut olarak karşılaştırabileceğiniz bilgiler sağlar.

Örneğin, masaüstündeki bir düğme önceden Open item yazarken artık Open selected items yazıyor olsun. İncelenmesi gereken, olası birden çok öğe seçimini de kapsayacak şekilde, her çevirinin mevcut seçimi açma eylemini hâlâ anlatıp anlatmadığıdır. Yalnızca Open sözcüğünün çevirisini bulmak bu soruyu yanıtlamaz.

Arama anahtarını görüntülenen ifadeden ayırın

Swift, ayrı bir defaultValue ile açık bir statik arama anahtarını destekler. Bu varsayılan genellikle geliştirme dilindeki metindir ve arama başarısız olduğunda kullanılır. comment çevirmen için bağlam sağlar. Tablo belirtilmezse aramada Localizable kullanılır; paket belirtilmezse uygulamanın ana paketi aranır. Swift’in açık anahtarlı dize başlatıcısı

Bu bileşenleri birbirinden ayırmak için aşağıdaki örnek mesaj kaydını kullanın. Bunlar sentetik değerlerdir; bir katalog dosyası veya çalıştırılabilir program değildir.

Bileşen Düzenlemeden önce Düzenlemeden sonra
Arama anahtarı selection.open selection.open
İngilizce kaynak değeri Open item Open selected items
Çevirmen bağlamı Tek bir öğeyi açan düğme Mevcut seçimdeki tüm öğeleri açan düğme
Katalog tablosu Localizable Localizable

Burada mesaj değişirken tanımlayıcı aynı kalır. Yalnızca anahtar adlarını karşılaştıran bir denetim bu düzenlemeyi gözden kaçırır. Kaynak değerini ve bağlamı da karşılaştırın.

Bazı Swift yerelleştirme çağrılarında ise geliştirme dilindeki ifade anahtar olarak kullanılır. Apple, enterpolasyon da dahil olmak üzere String.LocalizationValue yapısının bu modeli desteklediğini açıklıyor. Bu düzende ifadeyi değiştirmek arama anahtarını da değiştirebilir; bu nedenle çevirinin tek bir tanımlayıcıya bağlı kaldığını varsaymak yerine hem eski hem yeni girdileri kontrol edin. String.LocalizationValue

Yeniden derleyin ve kaynak konumunu inceleyin

Xcode’da Product > Build seçeneğini seçin, ardından Project gezgininden ilgili kataloğu açın. Apple, derlemelerin kodda yerelleştirilebilir dizelerde yapılan değişikliklerle katalogları güncellediğini belgeliyor. Editor > Assistant seçeneğini belirleyin ve kaynak konumunu incelemek için anahtarı seçin. String Catalog ile metni yerelleştirme ve farklılaştırma

Katalogdaki kaynak metni amaçlanan düzenlemeyle karşılaştırın. Katalogda hâlâ Open item yazıyorsa önce yeni kaynağın bu girdiye neden yansımadığını belirleyin. Hedef çeviriyi eski kaynağa göre incelemek asıl sorunu çözmez.

Özellikle projede birden çok katalog veya modül varsa, yerelleştirme çağrısının tablosunu ve paketini kontrol edin. Apple, katalog seçmek için tablo adı, ana uygulama paketi dışındaki dizeler içinse uygun bir paket belirtilebileceğini belgeliyor. Ayrıca Xcode’un kullanıcıya yönelik metinleri bulabilmesi için yerelleştirilebilir API’lerin kullanılmasını öneriyor. Uygulamanızın metnini çeviriye hazırlama

Elle yönetilen bir girdi için kaynak kodunu doğrudan inceleyip düzenleyin: Apple, derleme eşitlemesinin elle yönetilen dizeleri güncellemediğini veya kaldırmadığını belirtiyor. Yalnızca yeniden derlemenin bu dizeleri yenilemesini beklemeyin. String Catalog’ları keşfetme

Kaynak değişikliği karar tablosuyla anlamı karşılaştırın

Güncel kaynak katalogda yer aldıktan sonra her hedef dili seçip etkilenen girdiyi inceleyin. Xcode, incelenecek işleri bulmaya yardımcı olabilecek metin filtreleme ve duruma göre sıralama özelliklerini destekler. Durumu çevrilmiş olarak kalsa bile değiştirilen mesajı ayrıca inceleyin. String Catalog’ları keşfetme

Aşağıdaki karar yardımcısı, otomatik çeviri değerlendirmesine değil, mesaj anlamlarının karşılaştırılmasına dayanır. İngilizce etiketler sentetik örneklerdir. Her kaynak düzenlemesinin hedef dilde farklı bir ifade gerektirdiğini varsaymadan, çevirmenden neyi kontrol etmesini isteyeceğinizi belirlemenize yardımcı olur.

Örnek kaynak değişikliği İncelenecek nokta İnceleme kararı
Open item → Open selected items Seçim kapsamı ve tekil ya da çoğul anlam Çevirinin eylemin tamamını hâlâ anlatıp anlatmadığını kontrol edin.
Show details → Hide details Eylemin yönü Çevrilmiş eylemin de buna göre değiştiğini kontrol edin.
Items → Items: Noktalama işareti ve etiketin konumu İfadeyi yalnızca bağlamda hâlâ uygunsa koruyun.
Open aynı kalıyor, ancak kullanımı değişiyor Etiketin artık farklı bir eylemi adlandırıp adlandırmadığı Kaynak metin aynı olsa da bağlamı inceleyin.

Her aday için üç şeyi karşılaştırın: eski mesajın anlamını, güncel mesajın anlamını ve çevirinin şu anda ne ilettiğini. Kaynaktaki görünür bir fark, inceleme adayı bulunduğunu gösterir; tek başına hedef metnin değişmesi gerektiğini kanıtlamaz.

Yalnızca bağlamın değiştiği durumları açıkça kontrol edin. Apple, yorumların çevirmenlere yol gösterdiğini belgeliyor; ancak erişilen belgeler, her yorum düzenlemesinin mevcut çevirileri otomatik olarak geçersiz kıldığını ortaya koymuyor. Değişmeyen İngilizce bir etiket farklı bir anlam kazandıysa, onu inceleme kuyruğuna kendiniz ekleyin. Uygulamanızın metnini çeviriye hazırlama

Mesaj bir sayı veya cihaza özel bir varyant içeriyorsa yalnızca üst satırı incelemekle yetinmeyip bu varyantları da açın. Apple, kataloglardaki çoğul ve cihaz varyantlarını belgeliyor. İngilizcede bir sayı için 1 item ve 2 items gerekebilir; İngilizce dilbilgisini mekanik biçimde kopyalamak yerine her hedef dildeki ilgili biçimleri inceleyin. String Catalog ile metni yerelleştirme ve farklılaştırma

Yararlı çevirileri silmeden incelemeyi tamamlayın

Şüpheli bir çeviriyi incelemeye işaretlemek için girdinin bağlam menüsünü kullanın. Mevcut ifade kontrol edildiğinde hâlâ uygunsa Mark as Reviewed seçeneğini belirleyin; değilse çeviriyi güncelleyin. Bu inceleme işlemleri Apple’ın String Catalog öğreticisinde belgelenmiştir. String Catalog’ları keşfetme

Değiştirilen kaynakla karşılaştırırken mevcut ifadeyi erişilebilir durumda tutun. Belirsizliği azaltmak için çevirileri silmek, yararlı karşılaştırma malzemesini ortadan kaldırır. Aynı şekilde, çevirisi eski diye bir girdiyi silmeyin: önce uygulamanın anahtarını hâlâ kullanıp kullanmadığını belirleyin.

Sentetik seçim örneği için çevirmene verilecek yararlı bir açıklamada selection.open anahtarı, Open item ifadesinden Open selected items ifadesine geçiş ve düğmenin seçili tüm öğeleri açtığı bilgisi bulunur. Böylece çevirmenin değerlendirebileceği somut bir eylem ve kapsam belirtilmiş olur.

Bu iş akışının uygulamada bir sınırı vardır: Apple’ın bu iş akışı için erişilen belgeleri, çevrilmiş girdilerde kaçırılmış tüm kaynak değişikliklerini geriye dönük olarak bulup yeniden oluşturan bir komuttan söz etmiyor. Önceki ifade elinizde yoksa güncel kaynağı güncel çeviriyle karşılaştırabilirsiniz, ancak uyumsuzluğun tam olarak ne zaman başladığını belirleyemezsiniz. Önce ve sonra karşılaştırması önemliyse projenin önceki bir sürümünü veya kayıtlı kaynak kopyasını kullanın.

Düzeltilmiş mesajı Mac uygulamasında doğrulayın

Düzenleme yaptıktan sonra gerçek arayüzü test edin. Product > Scheme > Edit Scheme seçeneğini belirleyin, Run öğesini seçin, Options bölümünü açın ve App Language altında hedef dili seçin. İletişim kutusunu kapatın, Mac çalıştırma hedefini seçin ve uygulamayı çalıştırın. Apple bu şema tabanlı yerelleştirme testini belgeliyor. Uygulamanızı çalıştırırken yerelleştirmeleri test etme

Araştırmayı başlatan tam denetime geri dönün. Open selected items için tek öğe ve birden çok öğe seçmeyi deneyin. Etiketin her iki durumda da eylemi anlatıp anlatmadığını ve ekranda görünen ifadenin düzenlediğiniz katalog girdisiyle eşleşip eşleşmediğini kontrol edin. Bu aşamadaki bir uyumsuzluk, arama anahtarını, tabloyu, paketi veya geçerli varyantı yeniden incelemeniz gerektiğini gösterir.

Etkilenen her dil için net bir sonuç kaydıyla işi tamamlayın: mevcut ifade uygundur, çeviri güncellenmiştir veya inceleme hâlâ beklemektedir. Böylece değiştirilen mesaj ve arayüzdeki davranışı hakkında karar verilmiş, katalog durumu da bu kararı desteklemiş olur.

Kaynaklar