Özel çeviri
From LimeSurvey Manual
Giriş
LimeSurvey 5.4.0 sürümünden itibaren, veritabanınıza doğrudan erişerek dahil edilen tüm dillerdeki tüm dizeler için kendi çevirinizi oluşturabilirsiniz.
Bu sistem, mevcut bir çeviri iş gereksinimlerinizle uyumlu değilse kullanılabilir.
Yalnızca özel durumlar için kullanılmalıdır; çünkü LimeSurvey'in çekirdeğindeki metin değişiklikleri veritabanınızda yeniden değişiklik yapılmasını gerektirecektir.
Ayrıca bu yöntemi Anket teması'na özgü dizeleri çevirmek için de kullanabilirsiniz.
Veritabanı çevirileri nasıl çalışır
Veritabanı çevirileri için LimeSurvey, Yii çatısındaki CDbMessageSource yönteminden esinlenen bir yöntem kullanır.
- Dizeyi SourceMessage tablosunda (lime_source_message->message) bulun ve kimliği (lime_source_message->id) alın
- Varsa, Message tablosunda (lime_message->translation) geçerli dil (lime_message->language) ve geçerli kimlik (lime_message->id) için ilgili çeviriyi bulun
LimeSurvey, po dosyasındaki çevirilerden bir dizi oluşturur (bu dosyanın nasıl güncelleneceği hakkında bilgi için bkz. LimeSurvey'i çevirme) ve ardından bunu veritabanındaki tüm çevirilerle birleştirir.
Ardından, veritabanındaki çeviriler varsa her zaman onlar döndürülür.
İngilizce ve Fransızca için “Gönder” düğmesi örneği
Tüm anketlerinizde (belirli bir temayla) gönder düğmesi için _Submit_ yerine _Validate_ göstermek istiyorsunuz. Yalnızca temayı güncelleyip gT('Submit') ifadesini gT('Validate') ile değiştirirseniz: tüm dillerde her zaman _Validate_ görüntülenir.
Tüm temalara sahip tüm anketler için
- Kaynak iletiyi oluşturun:
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Kimliği kontrol edin (ilk kayıtsa kimlik 1'dir) ve sonraki komutta kullanın
- İlgili çeviriyi oluşturun:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Dizeyi boş bir dizeyle değiştirmeyin, aksi takdirde çeviri orijinal İngilizce cümleye geri döner. En az bir boşluk bırakmalısınız.
Kendi temanızı kullanma (önerilen çözüm)
Bu yöntem kendi şablonunuzu kullanan bir çözümdür; diğer tüm diller için de varsayılan dizeyi günceller.
- Tema düzenleyici içinde Navigation bölümünü seçin
Template:GT("Submit")ifadesini arayın (navigator.twig içinde)- Bunu
Template:GT("Validate")ile değiştirin - Kaynak iletiyi oluşturun:
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Kimliği kontrol edin (ilk kayıtsa kimlik 1'dir) ve sonraki komutta kullanın
- İlgili çeviriyi oluşturun:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Lütfen dikkat
lime_source_message içindeki category alanı NULL değil, boş bir dize ('') olmalıdır. Kategori tam olarak eşleşmezse gT() kaynak iletiyi bulamaz ve çeviriniz uygulanmaz. Bu, özellikle temaya özgü dizeler için çeviri eklerken önemlidir.