Jump to content

[SOLVED] Csv import ederken Türkçe seçilince hata veriyor


Peda

Recommended Posts

Merhaba,

Hosttaki Apache serverde Prestashop 1.4.4 versiyonunu kullanıyorum.

Import sekmesinde .CSV dosyayı yüklerken,

Dosyanın dilini seçiniz (yerel olan yüklenmelidir): Tükçe (English seçince sorun olmuyor)

olarak seçtikten sonra bir sonraki ekranda “CSV verileri içeri aktar” sayfasının alt kısmında aşağıdaki hatayı veriyor:

Fatal error: Call to undefined method Language::getIsoById() in /var/www/vhosts/orijinalotoyedekparca.com/httpdocs/tools1/footer.inc.php on line 37

 

“CSV verileri içeri aktar” tuşuna bastığımda ise aşağıdaki hatayı veriyor:

Fatal error: Call to undefined method ReflectionClass::isInterface() in /var/www/vhosts/orijinalotoyedekparca.com/httpdocs/config/autoload.php on line 53

 

 

Not: Problemi düzeltmek için aşağıdakileri denedim ama olmadı maalesef:

- Backoffice ve frontoffice dillerini değiştirdim. Başka Türkçe dil dosyaları yükledim. Nafile.

- CSV dosyalarımı değiştirdim. Olmadı.

- CSV dosyalarını kaydederken UTF-8, Turkish (Windows-1234), Turkish (ISO-8859-9), Europe (ISO-8859-1) kodlarının hepsini denedim. Olmadı.

- Import ekranındaki "iso-8859-1 encoded file" bölümünü işaretledim. Olmadı.

- Hostumla konuştum. Bizde bir sorun yok, db vs. hepsi Türkçeyi düzgün çalıştırıyor dediler.

Yine de sizden kaynaklanıyor deyip birkaç kez server değiştirttim. Düzelmedi. Hata mesajını hosta gönderdim. Şu cevabı aldım:

Tanımlanmayan bir methodu çağırmaya çalışıyorsunuz. Language class'ı altındaki getIsoById statik methoduna erişim sağlanamıyor. Bu konuda kodlarınızı inceleyebilirsiniz.

İyi çalışmalar dileriz.

 

Birkaç haftadır bu sorunla ilgili bilgi arıyorum ama maalesef bulamadım.

Yardımcı olacak arkadaşlara şimdiden çok tşk ederim.

Link to comment
Share on other sites

ben de yaşadım, sorun server'da çalışınca ortaya çıkıyor. belki dosya izni, belki başka birşey. bilemiyorum.

 

önce prestashop'u local'e kurun, import edin, sonra database'i server'a yükleyin.

 

ancak bu şekilde oluyor, beni de çok uğraştırdı.

Link to comment
Share on other sites

Merhaba;

1.)

Class/Language.php dosyasında

public static function getIsoById($id_lang)
{
 if (isset(self::$_LANGUAGES[(int)$id_lang]['iso_code']))
  return self::$_LANGUAGES[(int)$id_lang]['iso_code'];
 return false;
}

Şeklinde bir fonksiyon var mıdır ? Bunu kontrol edebilir misiniz ?

2.)

İkinci durum /tools1/ klasörünün isminin /tools/ olması gerekiyor. İsim değişikliği veya kopyalama yapmışsınız sanırım. Bu şu anki hata ile ilgili midir kesin birşey söyleyemem ama kesin olan bunun gibi sorunlar çıkarabileceğidir.

3.)

Server software Version: LiteSpeed

İyi bir seçim değil. (Prestashop İçin) litespeed daha çok statik içerik ve geniş networklar için idealdir. Yüksek veri tabanı ilişkisi ve derleme yükü olan sistemlerde kararsızlık yaratır.

Mümkünse apache mod_php ile veya varsa PHP as CGI ile çalışmanızı öneririm.

 

Kolay gelsin.

Link to comment
Share on other sites

Merhaba,

Şu anki hostumda 2-3 aydır bu sorunla boğuşuyorum. Çözemedim. Ben de bugun hosgator firmasından hosting hizmeti almak için başvuracaktım fakat son bir umutla foruma cevap gelmiş mi diye bakınca sizin mesajınızı gördüm.

 

a- Dediğiniz fonksiyon aynen dediğiniz şekilde classes/Language.php içinde var. aşağıdaki şekilde

public static function getIsoById($id_lang)
{
if (isset(self::$_LANGUAGES[(int)$id_lang]['iso_code']))
return self::$_LANGUAGES[(int)$id_lang]['iso_code'];
return false;
}

 

b- tools klasörüm aynı şekilde duruyor. ben "admin" klasörünün adını "tools1" olarak değiştirdim :)

 

c- 5 tane prestashop web sitem var.

csv olarak aktarmak istediğim 50 bin kalem ürün

ve 700 civarında da alt katagorim var.

ayrıca sitelerimden 1 tanesi için SSL ve Static IP kullanmak istiyorum.

ve türkçe karakter sorunu da biliyorsunuz zaten bu konu başlığımda türkçe sorunu.

 

Dediğiniz gibi "LiteSpeed" kullanmayan, bu özelliklerde bana önereceğiniz bir host var mı acaba. bir arkadaş "hostgator" kullan sorun yaşamazsın dedi. bende sizin bu mesajınızı görmeden önce hostgator'un paketlerine bakıyordum. bence;

shared hosting benim 4-5 adet sitem için uygun değil.

dedicated ise çok pahalı.

bana uygun olan ya reseller (bayi hosting) veya VPS hosting almam gerekiyor sanırım.

Bu konuda da bir öneri yazarsanız çok sevinirim.

Saygılarımla

Aybars

Link to comment
Share on other sites

Merhaba;

$_LANGUAGES değişkenini direk kullanabilirsiniz. Yani sınıf metodlarını kullanmadan dizi şeklinde işleyebilirsiniz.

Fakat tabiki bu bir çekirdek modifikasyonu olacaktır. Yani modüler ve herkesi kapsayan bir çözüm değil.

Gördüğüm kadarıyla litespeed klasiklerinden birisini yapıp bazı sınıfları derlemeye dahil etmiyor. Bunu genelde ayrılan ram yetmediği zaman yapar. Standart 128MB dır. CVC dosyanız büyükse bunun nesnel (dumped) şekli bu boyutu aşmıştır.

Sadece bu hata (getbyIso) için bir çözüm arıyorsanız bulabiliriz.Ama kalıcı ve kesin olmayacaktır.

Hosting tavsiyesi ile ilgili burada birşey yazmıyorum. Etik olmaz. Gönderdiğiniz PM'e cvp yazdım.

 

İyi çalışmalar.

Link to comment
Share on other sites

ben de yaşadım, sorun server'da çalışınca ortaya çıkıyor. belki dosya izni, belki başka birşey. bilemiyorum.

 

önce prestashop'u local'e kurun, import edin, sonra database'i server'a yükleyin.

 

ancak bu şekilde oluyor, beni de çok uğraştırdı.

Dediğiniz şekilde belki 1 kereliğine düzgün yüklenebilir ama kısa periyodlarda ürün yükleyen ve sık sık ürün bilgilerini veya fiyatlarını güncelleyen Türkçe import yapan kullanıcılar için kalıcı bir çözüm gerekiyor.

Link to comment
Share on other sites

işte budur. çok teşekkür ederim. sorun çözüldü. Türkçe karakterleri de gösteriyor fakat Türkçe karakterle başlayan kelimenin ilk harfini göstermiyor. Katagorilerimden birinin adı Şanzıman. Bu kelimeyi anzıman olarak gösteriyor.

 

Bu hatayı düzeltmek te diğeri kadar zor mu yoksa bunu düzeltmenin kolay bir yolu var mı?

 

Tekrar teşekkür ederim çok önemli bir sorun çözülmüş oldu. İyi çalışmalar dilerim.

Link to comment
Share on other sites

çok sağulun, bunlar ufak detaylar gibi görünüyor ama bence çok çok önemli. ciddi bir site yapmak istiyorsanız bu gibi hataların olmadığı bir site olmalı. sizin sayenizde birçok sorun çözülüyor emeğinize sağlık teşekkür ederim.

ben de üzerinde uğraşıyorum, birşey bulursam buradan bildiririm.

Link to comment
Share on other sites

Sorun çözüldü arkadaşlar.

2 tane sorun vardı:

1- .csv import ederken Türkçe'yi seçtiğinizde hata veriyordu. (Detayları yukarıda)

2- Türkçe karakterler görünmüyor kayboluyordu. Mesela bendeki hada katagorilerde kelimenin başındaki "Ş" harfi yok oluyordu. (Detayları yukarıda)

 

Birinci hata geçen gün Mahmut Bey sayesinde çözüldü.

 

Aşağıdaki çözüm ise 2 problemi birden çözüyor:

 

(prestashop_1.4.4.1) AdminImport satır 1683-1684 iptal et ve aşağıya da aşağıdaki satırı ekle:

setlocale(LC_ALL, 'en_US.UTF-8');

 

Sonuç şu şekilde:

 /*setlocale(LC_COLLATE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');
 setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');*/

 setlocale(LC_ALL, 'en_US.UTF-8');
}

 

Kolay gelsin herkese.

Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...
  • 1 month later...

arkadaslar excell belgesinde kaydettiginiz dosyayı atarken gerçekten hata veriyor ben buldugum yöntem sayesinde sorunsuz yüklüyorum şablonumuzu excellde hazırlıyoruz sonra openoffice indiriyoruz openofficede calc yani excell özelliginde şablanumuzu açıyoruz dosyadan farklı kaydet diyoruz 'virgülle ayrılmış CSV ' dosyasını seçiyoruz aşagıda bulunan 'süzgeç ayarlarını düzenle' yi seçiyoruz kaydet diyoruz önümüze gelen ekranda geçerli biçimde devam et diyip utf-8 i seçiyoruz alan ayırıcı kısmındaki virgülü noktalı virgül ; yapiyoruz kaydet diyoruz admin panelden upload ediyoruz içeri atarken ingilizce dilini seçiyoruz ingilizce olarak içeriye yüklüyoruz sorunsuz atıyor sonra sitemizdeki arama menüsünden eksik dizinleri ekle dersek artık arama kısmındada ürünler gözükür. kolay gelsin

Link to comment
Share on other sites

Arkadaşlar bu sorunu çözüp yazmıştım ama link bozuldu şimdi bulamıyorum. Konu yeniden hortlamış ve çözüm konusunda başa dönülmüş. Linki düzelttim. http://www.prestasho...ozumu-t592.html

İçeriğini tekrar yazıyorum.

 

1.) Prestashop kurulu dizin/yönetim paneli klasörü/tabs/AdminImport.php dosyasını açın ve aşağıdaki kodu bulun

 

 setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');*/

2.) kodu silin veya açıklama satırı haline getirin (başına // ekleyerek açıklama satırı haline getirebilirsiniz)

3.) Hepsi bu kadar. Şimdi düzenlediğiniz dosyayı kaydedip yeniden deneyin.

 

Son olarak: konu bütünlüğünün dağılmaması için lütfen;

1.) Farklı konular için farklı başlıklar açınız

2.) Konuyu okumadan çözüm önermeyiniz.

İyi geceler

  • Like 1
Link to comment
Share on other sites

arkadaslar excell belgesinde kaydettiginiz dosyayı atarken gerçekten hata veriyor ben buldugum yöntem sayesinde sorunsuz yüklüyorum şablonumuzu excellde hazırlıyoruz sonra openoffice indiriyoruz openofficede calc yani excell özelliginde şablanumuzu açıyoruz dosyadan farklı kaydet diyoruz 'virgülle ayrılmış CSV ' dosyasını seçiyoruz aşagıda bulunan 'süzgeç ayarlarını düzenle' yi seçiyoruz kaydet diyoruz önümüze gelen ekranda geçerli biçimde devam et diyip utf-8 i seçiyoruz alan ayırıcı kısmındaki virgülü noktalı virgül ; yapiyoruz kaydet diyoruz admin panelden upload ediyoruz içeri atarken ingilizce dilini seçiyoruz ingilizce olarak içeriye yüklüyoruz sorunsuz atıyor sonra sitemizdeki arama menüsünden eksik dizinleri ekle dersek artık arama kısmındada ürünler gözükür. kolay gelsin

Bunun sebebini 2 yıl önce bulmuştum. Sorun Excel in MS OOXML formatından kaynaklanıyor. Aslında prestashop'a MS'den veri katamak bile başlı başına mucizedir. MS ofis kendi tablo mimarsini sır gibi saklıyor. (Ama sır değil) Kendi ürettiği dosyayı okunamayacak halde kriptoluyor. (Ben bile okuyabilecek bir yazılım yaptım, Google Docs bununu çözümünü 7 yıldır ücretsiz sağlıyor) Sonuçta kesin bir export sistemi yapmak imkansız oluyor. Csv en basit veri saklama formudur. Eğer MS ofis açık kaynak olsaydı şimdi direk xls hatta .docx formatından import yapabilirdiniz.

Link to comment
Share on other sites

  • 2 years later...

Arkadaşlar bu sorunu çözüp yazmıştım ama link bozuldu şimdi bulamıyorum. Konu yeniden hortlamış ve çözüm konusunda başa dönülmüş. Linki düzelttim. http://www.prestasho...ozumu-t592.html

İçeriğini tekrar yazıyorum.

 

1.) Prestashop kurulu dizin/yönetim paneli klasörü/tabs/AdminImport.php dosyasını açın ve aşağıdaki kodu bulun

 

  setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');*/
2.) kodu silin veya açıklama satırı haline getirin (başına // ekleyerek açıklama satırı haline getirebilirsiniz)

3.) Hepsi bu kadar. Şimdi düzenlediğiniz dosyayı kaydedip yeniden deneyin.

 

Son olarak: konu bütünlüğünün dağılmaması için lütfen;

1.) Farklı konular için farklı başlıklar açınız

2.) Konuyu okumadan çözüm önermeyiniz.

İyi geceler

 

 

Prestashop 1.6 versiyonunda tabs klasöründe bahsedilen dosya yok. Fakat dizin/controllers/adminimportcontroller.php dosyasında aynı satırı değiştirmek işe yarıyor. Teşekkürler :)

  • Like 1
Link to comment
Share on other sites

  • 2 years later...

merhabalar, 1.7 versiyonunda ingilizce yüklüyor, yalnız türkçe de 500 hatası veriyor. bir fikriniz varmı?

 

Aşağıdaki işlemi uygulayıp deneye bilir misin.

 

 

controllers/admin/AdminImportController.php

 

 

Bu:

public static function setLocale()
    {
        $iso_lang  = trim(Tools::getValue('iso_lang'));
        setlocale(LC_COLLATE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');
        setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');
    }

Değiştir:

public static function setLocale()
    {
        $iso_lang  = trim(Tools::getValue('iso_lang'));
        /*setlocale(LC_COLLATE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');
         setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');*/
 
        setlocale(LC_ALL, 'en_US.UTF-8');
    }
Link to comment
Share on other sites

  • 2 years later...
On 4/17/2012 at 3:56 AM, MahmutGulerce said:

Arkadaşlar bu sorunu çözüp yazmıştım ama link bozuldu şimdi bulamıyorum. Konu yeniden hortlamış ve çözüm konusunda başa dönülmüş. Linki düzelttim. http://www.prestasho...ozumu-t592.html

İçeriğini tekrar yazıyorum.

 

1.) Prestashop kurulu dizin/yönetim paneli klasörü/tabs/AdminImport.php dosyasını açın ve aşağıdaki kodu bulun

 

 


 setlocale(LC_CTYPE, strtolower($iso_lang).'_'.strtoupper($iso_lang).'.UTF-8');*/
 

 

2.) kodu silin veya açıklama satırı haline getirin (başına // ekleyerek açıklama satırı haline getirebilirsiniz)

3.) Hepsi bu kadar. Şimdi düzenlediğiniz dosyayı kaydedip yeniden deneyin.

 

Son olarak: konu bütünlüğünün dağılmaması için lütfen;

1.) Farklı konular için farklı başlıklar açınız

2.) Konuyu okumadan çözüm önermeyiniz.

İyi geceler

 

Edited by leecooper3
bu sorunu çözdü teşekkürler (see edit history)
Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...