[I18NGR] oscommerce και ελληνικά

Dimitrios 'sehh' Michelinakis dimitris at michelinakis.gr
Wed May 2 00:52:19 EEST 2007


On Tue, 1 May 2007 21:13:08 +0000 (GMT) none none <menwn at yahoo.co.uk> wrote:

> προσπαθώ να στήσω το oscommerce στα ελληνικά χρησιμοποιώντας τα αρχεία που υπαρχουν στο site του oscommerce εχω ένα πρόβλημα. Είτε χρησιμοποιώ ISO είτε UTF-8 (και στο callation της βάσης και τα αρχεία αυτά καθε αυτά) πάντα οι κατηγορίες βγαίνουν κομμένες στην κατάληξη (στην καλύτερη όταν είναι μεγάλες λείπει το τελεταίο γράμμα) είτε εμφανίζονται μόνο ερωτηματικά. Αυτό το πρόβλημα δεν υπάρχει με τις περιγραφές των προιόντων. Αυτό που υπάρχει είναι πως μέσα στην βάση πάντα όλα γράφονται λάθος -βασικά με λάθος κωδικοποίηση- όποιο συνδιασμό και αν εχω δοκιμάσει collation και αρχείων. Υπάρχει κάποια λύση που δεν έχω δει;

Proton, tha ithela na ekfraso tin prosopiki mou gnomi gia to oscommerce: ine mia malakia, ena tragiko software, mia silogi apo php lamogies. Se kamia periptosi den tha to protina.

Tora sto thema encoding. An thimame kala iparxi ena thema metaji tis PHP kai tis MySQL, dilati oti:

php4 - encoding ISO
php5 - encoding UTF-8
mysql - encoding ISO (latin1-sw)

Ejigo lipon oti, stin PHP4 ta UTF-8 den ipostirizonde apo default, prepi na trexis ta "Multibyte String Functions". Gia paradigma, den kanis strlen(), alla kanis mb_strlen(). Distixos prepi na kanis recompile tin PHP apo tin arxi gia na exis aftin tin dinatotita, alios DEN PEZI ME UTF8!! (ektos kai an kanis utf8_decode/utf8_encode sta panda)

Tora, stin PHP5, boris aneta na kanis iconv_strlen() to opio perni os parametro to character encoding (UTF-8 gia paradigma), ara ise mia xara!

Telos, gia na "pezi" sosta i MySQL, prepi na pis stin PHP na "milisi" me UTF-8, alios i PHP tha "milisi" stin MySQL me ISO encoding. Aftos ine kai o logos pou poles fores ta ellinika vgenoun os erotimatika.

Diladi:

browser -> (httpd) php -> mysql, prepi ola na ine UTF-8, alios ena sto endiameso na min ine, tha xalasi i soupa.

Ara, stin PHP5 ego trexo:
date_default_timezone_set("Europe/Athens");
setlocale(LC_TIME, 'el_GR.utf8');

kai afta ta dio queries:

sql1 = "SET NAMES utf8";
sql2 = "SET COLLATION_CONNECTION=utf8_general_ci";

Tora to oscommerce ine pou ine mia malakia, den jero pou akrivos kolise, alla ipotheto pos trexi non-UTF8 functions pano se UTF-8 strings.


-- 
Dimitrios Michelinakis





More information about the I18ngr mailing list