better-i18n Çeviri Version Control: Tam Geçmiş ve Rollback
Her değişikliği izleyin, kimin ne değiştirdiğini görün ve önceki herhangi bir sürüme anında Rollback yapın.
better-i18n Çeviri Version Control: Tam Geçmiş ve Rollback
Uygulama kodunuz Git'te yaşar. Her değişiklik izlenir. Her satırın bilinen bir yazarı vardır. Her sürüm saniyeler içinde geri yüklenebilir. Kötü bir Commit prodüksiyona giderse Rollback yaparsınız. Bir fonksiyonun neden belirli bir şekilde yazıldığını bilmek istiyorsanız Commit geçmişini okursunuz.
Çevirileriniz de aynı muameleyi hak eder. Ancak çoğu yerelleştirme platformunda geçmiş, sonradan düşünülmüş bir özelliktir — en iyi ihtimalle temel bir değişiklik günlüğü, sınırlı arama, diff görünümü yok ve Rollback yok. Prodüksiyonda bir çeviri sorunuyla karşılaşıldığında ekipler neyin değiştiğini, ne zaman ve neden bulunmaya çalışarak saatler harcar, ardından önceki bir sürümü manuel olarak geri yüklemek için daha fazla saat harcarlar.
better-i18n, çeviri Version Control'ü birinci sınıf bir özellik olarak ele alır. Her string üzerindeki her değişiklik, tam bir diff, zaman damgası ve değişikliği yapan katkıda bulunanın kimliğiyle birlikte kaydedilir. Önceki herhangi bir sürüme Rollback tek bir tıklamadır. Tam geçmiş sorgulanabilir, aranabilir ve API aracılığıyla erişilebilirdir.
Nasıl Çalışır
Her Kaydetmede Otomatik Sürüm Oluşturma
better-i18n'de bir çeviri dizesi her değiştirildiğinde — web editörü, CLI aracı, MCP entegrasyonu veya API aracılığıyla — yeni bir sürüm otomatik olarak oluşturulur. Sürümler her dil için bağımsız olarak oluşturulur; bu nedenle bir string'in Almanca çevirisini değiştirmek, Fransızca sürümü etkilemeden yeni bir Almanca sürüm oluşturur.
Sürümler, değişikliği yapan kişiden bağımsız olarak oluşturulur. İnsan çevirmenler, MCP bağlantısı üzerinden çalışan AI asistanları, CLI kullanan otomatik toplu güncelleme komut dosyaları — tümü sürümlendirilmiş geçmiş üretir. Kayıt bırakmadan bir çeviriyi değiştirmenin yolu yoktur.
Her Sürümün Kaydettiği Bilgiler
Her sürüm kaydı şunları içerir:
- Zaman Damgası: Sürümün oluşturulduğu tam saat, UTC olarak.
- Yazar: Değişikliği yapan kullanıcı veya hizmetin kimliği. İnsan kullanıcılar için ad ve profil; API veya CLI işlemleri için API token tanımlayıcısı.
- Değişiklik öncesi ve sonrası içerik: Değişiklikten önce ve sonra çevirinin tam metni. Tam bir diff görünümünü mümkün kılar.
- Durum geçişi: String'in bir durumdan diğerine geçip geçmediği (örneğin, "devam ediyor"dan "inceleme için gönderildi"ye veya "onaylandı"dan "revizyon gerekiyor"a).
- Değişiklik notu: Yazar tarafından eklenen isteğe bağlı mesaj. Commit mesajına benzer. İşbirliği iş akışı, inceleyici geri bildirimlerine dayalı düzeltmeler yapılırken değişiklik notları eklenmesini teşvik eder.
- QA kontrol sonuçları: Sürüm oluşturulduğu andaki string'in QA durumu. Kalite güvencesi motorundan alınır ve daha sonra başvurmak üzere sürümle birlikte saklanır.
Geçmişi Görüntüleme
Herhangi bir string için geçmiş paneli, tüm sürümlerini tersten kronolojik sırayla gösterir. Her giriş yazarı, zaman damgasını, o sürümdeki durumu ve içerik değişikliğinin kısaltılmış diffini (eklenen kelimeler yeşil, silinen kelimeler kırmızı ile vurgulanmış) gösterir.
Herhangi bir sürüme tıklamak, o andaki tam içeriği gösterir — sadece diff değil, o sürüm oluşturulduğunda var olan eksiksiz string.
Geçmiş, proje düzeyinde de gözatılabilir. Bir projedeki tüm string'lerdeki tüm değişikliklerin zaman çizelgesini dil, yazar, zaman aralığı veya durum değişikliğine göre filtrelenmiş şekilde görüntüleyebilirsiniz. Bu, denetimler, olay sonrası incelemeler ve çeviri faaliyetinin genel hız ve desenini anlamak için kullanışlıdır.
Rollback
Bir string'i önceki bir sürüme geri almak tek bir işlemdir. Geçmiş panelinde herhangi bir girişteki "Bu sürümü geri yükle"ye tıklayın. Mevcut içerik, seçilen sürümdeki içerikle değiştirilir. Rollback'i kaydeden yeni bir sürüm oluşturulur; hangi sürümün geri yüklendiği ve kim tarafından yapıldığı da kaydedilir.
Rollback, Editor'lar ve Admin'ler tarafından kullanılabilir. Çevirmenler ve İnceleyiciler geçmişi görüntüleyebilir ancak geri alamazlar; bu sayede eski içeriğin yanlışlıkla veya yetkisiz geri yüklenmesi önlenir.
Ayrıca belirli bir zaman damgasındaki durumuna tüm bir dili geri alabilirsiniz. Bu, toplu bir işlem — terminoloji güncellemesi, AI destekli toplu çeviri — birçok string'de beklenmeyen sonuçlar ürettiğinde kullanışlıdır. Her string'i tek tek geri almak yerine, tüm dili işlem öncesi durumuna geri yükleyebilir ve düzeltilmiş parametrelerle işlemi yeniden deneyebilirsiniz.
Sürümleri Karşılaştırma
better-i18n'deki diff görünümü satır düzeyinde değil, kelime düzeyindedir. Çeviri string'leri genellikle tek cümleler veya kısa paragraflardır. Satır düzeyli bir diff genellikle string'in tamamının değiştiği gibi görünür. Kelime düzeyli diff, tam olarak hangi kelimelerin eklendiğini, kaldırıldığını veya yeniden düzenlendiğini gösterir; bu, gerçekte neyin değiştiğini anlamayı çok daha kolay kılar.
Bir string'in herhangi iki sürümünü karşılaştırabilirsiniz — sadece bitişik sürümleri değil. Geçmişte iki nokta seçin ve aralarında kaç ara sürüm olduğundan bağımsız olarak aralarındaki farkı görün.
Etiketleme ve Sürüm Anlık Görüntüleri
Uygulamanızın yeni bir sürümünü dağıtırken çevirilerinizin mevcut durumunu bir sürüm etiketiyle etiketleyebilirsiniz:
bi18n tag --name v2.5.0 --message "Release 2.5.0 translations"
Bu, mevcut onaylı durumundaki her çevirinin anlık görüntüsünü oluşturur. Daha sonra herhangi bir sürüm etiketindeki herhangi bir string'in durumunu sorgulayabilir, sürümler arasındaki çevirileri karşılaştırabilir ve gerekirse geçmiş bir sürümdeki durumuna ayrı string'leri geri yükleyebilirsiniz.
Sürüm etiketleri, etiketlenmiş her sürüme bağlı kapsam ve kalite metriklerini gösteren analitik panelde görünür.
Denetim Dışa Aktarma
Düzenlenen sektörler veya uyumluluk gereksinimleri için, bir proje veya belirli bir zaman aralığı için tam değişiklik geçmişi yapılandırılmış bir CSV veya JSON dosyası olarak dışa aktarılabilir. Dışa aktarma, her dilde her string için her sürüm kaydını, tam değişiklik öncesi ve sonrası içeriği ve atıf verilerini içerir.
Bu dışa aktarma, uyumluluk raporlarına eklenmek, harici denetim incelemesi veya arşivleme amacıyla uygundur.
Temel Faydalar
Tam Hesap Verebilirlik
Bir ekip çeviri ortamında zaman zaman işler ters gider. Bir müteahhit, dikkatle onaylanmış bir string'i üzerine yazar. Otomatik bir komut dosyası, yanlış çıkan bir terminoloji değişikliği uygular. Bir inceleyici, aradan sıyrılan bozuk bir yer tutuculuya sahip bir string'i onaylar.
Her değişiklik atıf bilgisi ve zaman damgalarıyla birlikte kaydedildiğinde, her zaman "ne oldu?" sorusunu yanıtlayabilirsiniz. Değişikliği tam olarak kimin ne zaman yaptığını ve değişiklikten önceki içeriğin ne olduğunu bilirsiniz. Bu, Git'in kod değişiklikleri için sağladığı anlamda hesap verebilirliktir.
Hızlı Olay Kurtarma
Bir çeviri sorunu üretime ulaştığında — JavaScript hatasına neden olan bozuk bir yer tutucu, yanlış çevrilmiş yasal bir feragatname, tamamen yanlış bir string — hızlı bir düzeltme gerekir. Version Control olmadan, bozuk bir çeviriyi düzeltmek eski sürümü bulmak (hiçbir yerde mevcut olmayabilir), geri yüklemek, yeniden yayımlamak ve yeniden dağıtmak demektir.
better-i18n Version Control ile kurtarma şöyle yapılır: string'i bulun, geçmişi açın, "Geri Yükle"ye tıklayın, yayımlayın ve bir dağıtımı tetikleyin. Tüm işlem iki dakikadan az sürer. CLI aracı, hızlı dağıtım için geri yüklenen çeviriyi anında çekebilir.
Güvenli Toplu İşlemler
Toplu işlemler — terminoloji güncellemeleri, toplu AI çevirileri, yeniden markalaşma string değiştirmeleri — güçlü ancak risklidir. Toplu bir işlem yanlış sonuçlar üretirse, bunu geri almanın bir yoluna ihtiyacınız vardır. better-i18n'in Version Control'ü, işlem tarafından dokunulan her string'in önceki durumunun kaydedildiğini ve geri yüklenebilir olduğunu garanti ederek toplu işlemleri güvenli hale getirir.
Herhangi bir büyük toplu işlemi çalıştırmadan önce, mevcut durumu güvenlik kontrol noktası olarak etiketleyebilirsiniz. İşlem ters giderse, kontrol noktasına geri yükleyin.
Kod Version Control ile Entegrasyon
better-i18n'deki çeviri Version Control, kod tabanınızın Git tabanlı Version Control'ünü değil, tamamlamak için tasarlanmıştır. better-i18n'de bir sürümü Git'te kullandığınız aynı sürüm numarasıyla etiketlediğinizde, o sürümdeki kodunuzun durumu ile çevirilerinizin durumu arasında kalıcı bir bağlantı oluşturursunuz. Her ikisini ilişkilendirebildiğinizde sürüm sonrası hata ayıklama çok daha temiz hale gelir.
CLI aracı, dağıtım hattınızın bir parçası olarak etiketleri otomatik olarak oluşturmayı destekler; böylece kod ve çeviri sürümleri arasındaki bağlantı manuel çaba gerektirmeksizin sürdürülür.
Uyumluluk ve Denetim Hazırlığı
Düzenlenen sektörlerdeki ürünler için, içerik değişikliklerinin geçmişini göstermek genellikle bir uyumluluk gereksinimidir. Hukuk teknolojisi, finansal teknoloji, sağlık ve devlet yazılım ürünleri, kullanıcıya yönelik metinlerinin — çeviri sürümleri dahil — belirli roller tarafından belirli zamanlarda incelenip onaylandığını sıklıkla göstermeleri gerekir.
better-i18n'in sürüm geçmişi bu kanıtı hazır biçimde sağlar. Denetim dışa aktarma, denetçilere sunulabilecek veya uyumluluk raporlarına dahil edilebilecek makine tarafından okunabilir bir kayıt üretir.
Kullanım Senaryoları
Sürüm Sonrası Olay Müdahalesi: Bir Alman kullanıcı, ödeme onay mesajının gerçek tutar yerine ham değişken adı gösterdiğini bildirir. Ödeme onay string'inin Almanca çevirisi için sürüm geçmişini ararsınız, dünkü bir otomatik komut dosyasının yanlışlıkla bir yer tutucuyu kaldırdığını bulursunuz, son bilinen iyi sürüme geri alırsınız ve yeniden dağıtımı tetiklersiniz.
Yeniden Markalaşma İncelemesi: Şirketiniz yeniden markalanır ve tüm çevirilerdeki önemli bir ürün adını değiştirir. Toplu güncellemeden sonra bir paydaş yeni adın tutarsız kullanıldığını fark eder. Mevcut durumu yeniden markalaşma öncesi anlık görüntüyle karşılaştırmak için geçmiş görünümünü kullanır, hangi string'lerin hâlâ güncellenmesi gerektiğini belirler ve düzeltirsiniz.
Müteahhit Denetimi: Harici bir çeviri müteahhidinin sözleşmesi sona eriyor. Erişimlerini kaybetmeden önce yönetdikleri diller için tam değişiklik geçmişini dışa aktarırsınız. Dışa aktarma, oluşturdukları veya değiştirdikleri her string'i zaman damgaları ve QA durumuyla göstererek katkılarının kalıcı bir kaydını sağlar.
Yasal Tutma: Hukuk ekibiniz, son 12 ayda hizmet şartları çeviri string'lerinde yapılan tüm değişikliklerin kaydını talep eder. Geçmişi string kategorisine ve zaman aralığına göre filtreler ve sonucu PDF hazır bir rapor olarak dışa aktarırsınız.
Çeviri Belleği Geri Yüklemesi: Yeni bir çevirmen, bir dili toplu düzenlerken 40 onaylanmış string'i yanlışlıkla üzerine yazar. Tüm dili dünkü öğleden sonranın durumuna geri yükler ve hiçbir şeyi yeniden çevirmek zorunda kalmadan tüm onaylanmış çalışmayı kurtarırsınız.
better-i18n Version Control'ü Nasıl Uygular
better-i18n'deki çeviri sürümleri değiştirilemez kayıtlar olarak saklanır. Bir sürüm yazıldıktan sonra hiçbir zaman değiştirilmez. Rollback, geçmiş kayıtları değiştirmez — geri yüklenen içerikle yeni bir sürüm oluşturur. Geçmiş yalnızca ekleme yapılabilen bir günlüktür.
Diff algoritması, kod yerine doğal dil metni için uyarlanmış Myers diff algoritmasına dayalı kelime düzeyli bir difftir. Cümle yeniden yapılandırmasını, kelime yeniden sıralamayı ve teknik olmayan kullanıcılar için diffi okunabilir kılan kısmi kelime değişikliklerini yönetir.
Sürüm depolaması verimlidir. Her sürümün tam içeriğini saklamak yerine, sistem ilk sürüm için tam içeriği ve sonraki sürümler için diffleri saklar. Tam içerik, diff zinciri uygulanarak okuma sırasında yeniden oluşturulur. Bu yaklaşım, uzun geçmişlere ve çok sayıda dile sahip projeler için depolama gereksinimlerini yönetilebilir tutar.
Sürüm geçmişi API'si sayfalama ve filtrelemeyi destekler; bu da tüm veri kümesini aynı anda yüklemeden büyük projeler için geçmişi programatik olarak almayı pratik hale getirir.
Alternatiflerle Karşılaştırma
Phrase Version History: Phrase sürüm geçmişi saklar ancak sınırlı Rollback özelliklerine sahiptir. Rollback, tek tıkla geri yükleme yerine önceki içeriğin manuel olarak yeniden girilmesini gerektirir. better-i18n, tam diff karşılaştırmasıyla gerçek tek tıkla Rollback sağlar.
Lokalise Version Control: Lokalise string başına değişiklik geçmişi içerir, ancak toplu dil düzeyinde Rollback mevcut değildir. better-i18n hem string düzeyinde hem de dil düzeyinde Rollback'i destekler.
Git ile Yönetilen Çeviri Dosyaları: Çeviri dosyalarını Git'te saklamak, Git komutlarıyla tam geçmiş ve Rollback sağlar; ancak teknik olmayan ekip üyelerini katkıda bulunmaktan ve incelemeden dışlar. JSON dosyalarındaki birleştirme çakışmaları hataya açıktır. better-i18n, herkese erişilebilir bir iş akışıyla Git'in Version Control avantajlarını sağlar.
Version Control Yok: Pek çok yerelleştirme platformu ve özel uygulamanın anlamlı sürüm geçmişi yoktur. Bir şeyler ters gittiğinde kurtarma manuel ve zaman alıcıdır. Bu, better-i18n'in değiştirmeyi hedeflediği mevcut durumdur.
Sık Sorulan Sorular
Sürüm geçmişi ne kadar süre saklanır? Sürüm geçmişi tüm planlarda süresiz olarak saklanır. Eski sürümlerin otomatik temizliği yapılmaz.
Çok eski — yıllarca önceki — bir sürümü geri yükleyebilir miyim? Evet. Geçmişdeki herhangi bir sürüm, yaşından bağımsız olarak geri yüklenebilir. Geri yüklenen içerik güncel sürüm olur ve geri yüklemeyi belgeleyen yeni bir sürüm kaydı oluşturulur.
Rollback yayımlanmış string'leri etkiler mi? Rollback, bir string'in içeriğini ve durumunu seçilen sürümdeki haline geri yükler. Seçilen sürüm "onaylandı" durumundaysa, Rollback yapılan string "onaylandı" durumuna sahip olur ve yayımlanabilir. "Devam ediyor" durumundaysa, Rollback yapılan string "devam ediyor" durumuna sahip olur. Rollback otomatik olarak hiçbir şeyi yayımlamaz — yayımlama adımı hâlâ gereklidir.
Denetim dışa aktarma uyumluluk amaçları için kabul edilebilir mi? Denetim dışa aktarma, atıf bilgileriyle birlikte tüm değişikliklerin eksiksiz, zaman damgalı kaydını sağlar. Bunun belirli bir uyumluluk çerçevesi için yeterli olup olmayacağı, çerçeve gereksinimlerine bağlıdır. Gerekli belgeleme düzeyi konusunda uyumluluk ekibinize danışmanızı öneririz.
O zamandan bu yana silinmiş bir string'in geçmişini görüntüleyebilir miyim? Evet. Silinmiş string'ler ve geçmişleri arşivlenmiş durumda tutulur. Silinen string'leri arayabilir ve tam geçmişlerini görüntüleyebilirsiniz. Silinmiş string'ler, string anahtarı yeniden oluşturulmadan aktif duruma geri yüklenemez.
Artık Hiçbir Çeviriyi Kaybetmeyin
Çeviriler için Version Control bir lüks değildir — yerelleştirmeyi ciddiye alan her ekip için bir güvenlik gereksinimidir. better-i18n her değişikliği kaydeder, geçmişi görünür ve aranabilir kılar ve işler ters gittiğinde anında Rollback'i mümkün kılar.
Ücretsiz denemenizi başlatın ve ilk günden çevirilerinizin tam geçmişini görün.