Bir defa bunu yapmak için kendinize bir mantık yolu çizdiğinizde aslında çok ta kolay bir yapısı var. Ancak elbette pek çok evreden geçti çalışmalarım.
İlk denememi SourceForge CVS alanımdan bilgi çekmek üzerine kurmuştum. Ve de bunu çalıştırdım. Kabaca yeni dosyaları almak şöyle çalışıyordu. cache dizini içine oluşturulan bir tmp/ içine exec() ile CVS alanımıza, CVS checkout komutu veriliyordu, dosyalar yoğun olmadığından bu işlem 5 sn kadar sürüyordu (SF yavaş, y.dışı berbat). Sonrasında alınan dosyalar, mevcut dil dosyaları ile replace ediliyordu. Elbet bunun kullanılabilirliği pek yoktu, kimse hostta exec() fonksiyonuna izin vermez, her sunucu da CVS olmayabilir vb. Ancak başlangıç için iyi tecrübe oldu.
İkinci deneyimimi "file_get_contents()" ile yaptım, ancak bu defa CVS ye http üzerinen bağlanıp dosya içeriklerini aldım, orijinal dil dosyasını açıp içine yeni kodları yapıştırdım. localhostta sorunsuz ve hızlı bir şekilde çalışıyor, ancak sunucu üzerine CHMOD sıkıntıları çıkmaya başlayınca, henüz hazır olmadığımı biraz daha php+dosya+chmod+linux denemiyi gerektirdiği için askıya aldım.
Her iki yöntemin de sakıncaları var, CHMOD zorunluluğu gibi, gerçi büyük ihtimal ile bunu FTP ile aşabilirim ama, FTP bilgileri SQL de saklamak ta pek akıllıca olmaz. Başka bir eksiklikte, elbette dil dosyasında sonradan yapılan değişikliklerin imha olması.
Üçüncü deneyimim belli şu anda, direk phpBB3 install ile gelen diff fonksiyonlarını kullanacağım...
Otomatik güncelleme özelliği dışında her ne kadar kimse kullanma da bir "Dil dosyası sürüm denetimi" modülümüz var.
http://update.phpbbturkiye.net/updatech ... trlang.txt