5 Mart 2012 Pazartesi

OJS 2.3.6. Sürümü Türkçe Dil Hatası

OJS'nin 2.3.6 sürümünü kurduğunuzda;
Fatal error: Call to undefined method DBConnection::getInstance() in /home/teorivep/public_html/lib/pkp/classes/db/DBConnection.inc.php on line 232 
hatası alıyorsanız, sorun setLocale fonksiyonundan kaynaklıdır. Çözüm için aşağıdaki açıklamaya bakınız:
 
"...ojs\classes\i18n\" yolundaki "Locale.inc.php" dosyasındaki kodlama aşağıdaki gibi olmalıdır (102 satır civarında). Eğer "Locale.inc.php" dosyasında ilgili kodlamaları bulamadıysanız “…\ojs\lib\pkp\classes\i18n” yolu altındaki “PKPLocale.inc.php” dosyasında 102 ila 112 satırlar arasına bakınız ve düzenlemeyi aşağıdaki gibi paınız.

 function initialize() {
   // Use defaults if locale info unspecified.
   $locale = Locale::getLocale();

   $sysLocale = $locale . '.' . LOCALE_ENCODING;
   if (!@setlocale(LC_ALL, $sysLocale, $locale)) {
        // For PHP < 4.3.0
        if(setlocale(LC_ALL, $sysLocale) != $sysLocale) {
             setlocale(LC_ALL, $locale);
        }
   }

Not: Bu açıklamanın testini yapan ve geri dönüş yaparak katkı sağlayan Hüseyin KÖRPEOĞLU, Yusuf ALPAYDIN ve Selçuk AYDEMŞR'e teşekkürler.

Bu konuyla ilgili olarak yardım isteyen  Selçuk AYDEMİR'e  gönderdiğim mesajın cevabını aşağıda paylaşıyorum:
 


Saygıdeğer hocam,

Öncelikle yardımınız ve öneriniz için çok teşekkür ederim. Size daha önce dergimizi güncellediğimizi, Türkçe dil seçeneğini seçtiğimizde sayfanın boş göründüğünü söylemiştim ve bunun için sizden yardım istemiştim. Gönderdiğiniz maillerdeki kodları bu konuyla ilgilenen teknoloji uzmanımız inceledi ve aşağıdaki kodları silerek bu sorunu çözüme ulaştırdı. 
 
(lib/pkp/classes/i18n/PKPLocale.inc.php) dosyasında bulunan (satır 107-112)
if (!@setlocale(LC_ALL, $sysLocale, $locale)) {
            // For PHP < 4.3.0
            if(setlocale(LC_ALL, $sysLocale) != $sysLocale) {
                setlocale(LC_ALL, $locale);
            }
        }

7 yorum:

  1. hocam /ojs-2.3.6 ve /ojs-2.3.7 yükleme yaparken
    D:\site\acikdergi\ojs-2.3.6\lib\pkp\lib\tinymce\jscripts\tiny_mce\plugins\table\js\ hatası verdi. Yüklemeyi tamamlayamıyorum. Yardımcı olursanız memnun olurum. Yrd. Doç. Dr. Ali Duman (Hİkmet Yurdu Dergisi Sahibi ve Editöü)

    YanıtlaSil
  2. Bu sorunla daha önce hiç karşılaşmadım. Araştırıp bir çözüm üretebilirsem sizlerle paylaşacağım.

    YanıtlaSil
  3. Hocam ojs-2.3.7 yi denemek amacıyla localde yüledim herşey normal kuruldu ancak yan menülerde "##plugins.block.navigation.journalContent##" şeklinde block kodları çıkıyor. Yardımcı olabilir misiniz?

    YanıtlaSil
  4. Sayın nsen,

    Bugün ojs 2.3.7'yi Windows XP üzerinde kişisel bilgisayarıma kurup denedim. Sorunsuz kuruluyor. Hatta kurulumla ilgili adım adım anlatı yapan yeni bir yazıyı blogumda yayımladım.

    Türkçe ara yüzde görüntülenen "##plugins.block.navigation.journalContent##" şeklindeki ifadeler Türkçe dil dosylarında bu komutların karşılığının olmamasından kaynaklıdır. Bunların kurulum hatasıyla bir ilgisi yoktur. Kurulumda bir hata olsa zaten sistem hiç çalışmaz. Bu sorunları gidermenin yolu öncelikle ...\ojs\locale, ...\ojs\lib\pkp\locale, ...\ojs\plugins\blocks\notification\locale klasörleri altında bulunan en_US ve tr_TR klasörleri altındaki xml dosylarının içeriğini karşılaştırıp tr_TR klasörleri altında olan dosyalardaki eksik satırları gidermektir. Tabi dil dosyaları bu klasörler altındakilerle sınırlı değil. 50 den fazla tr_TR kalsörü var. Bunların tamamının elden geçmesi durumunda Türkçe ara yüzdeki sorunlar tamamlanmış oluyor.

    2.3.6'nın Türkçe dil dosyalarının karşılaştırmasını yaptım ve çevirsi toparlandı sayılır. Diğer klasörler içinden ayıklayınca blogumda duyurusunu yaparım. Fırsat bulursam bir kaç güne hallolur. Benden alacağınız dil dosylalarının klasörünü OJS klsörü üzerine bırakmanız sorunlarınızı çözecektir.

    YanıtlaSil
  5. Merhaba hocam Open conference system için Türkçe dil paketi var mı? Teşekkür ederim...

    YanıtlaSil
  6. Malesef yoktur. Ama çeviren birileri vardı sanırım. Yanlış anımsamıyorsam Çanakkale Üniversiteisnden bir hocaydı.

    YanıtlaSil