Post by corpus » Thu Nov 01, 2012 11:15 pm

Επειδή πολλοί φίλοι εγκαθιστούν το opencart as is και με το default collation utf8_bin
αναφέρω ποια είναι τα σωστά βήματα για να έχουμε σωστά ελληνικά στην database

Πριν την εγκατάσταση αφου δημιουργήσουμε την βάση μας πάμε στο phpmyadmin, επιλεγουμε την βάση μας και μετα Operations και στο πεδίο Collation: επιλέγουμε απο το dropdown utf8_general_ci και πατάμε το Go ή εκτέλεση

αμέσως μετά ανοιγουμε το αρχειο opencart.sql στην διαδρομή upload/install/
και αντικαθιστούμε τα
utf8_bin
με
utf8_general_ci

Αν κάποιος έχει να συμπληρώσει/διορθώσει κάτι ευπρόσδεκτος

New member

Posts

Joined
Mon Oct 15, 2012 4:40 am

Post by People's Code » Fri Nov 02, 2012 12:48 am

αναφέρω ποια είναι τα σωστά βήματα για να έχουμε σωστά ελληνικά στην database

Τι εννοείς σωστά ελληνικά ?

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by corpus » Fri Nov 02, 2012 3:00 am

να εμφανίζονται σωστά τα ελληνικά στην database
και όχι
ce9acebfcf81ceb4ceadcebbceb5cf82

μόλις διάβασα και αυτό το post
http://forum.opencart.com/viewtopic.php?t=25488

New member

Posts

Joined
Mon Oct 15, 2012 4:40 am

Post by People's Code » Fri Nov 02, 2012 11:06 pm

να εμφανίζονται σωστά τα ελληνικά στην database
και όχι
ce9acebfcf81ceb4ceadcebbceb5cf82
Αυτό ισχύει και για τα Αγγλικά και για τα Ελληνικά. Δεν πρόκειται για κάποιο πρόβλημα με την εισαγωγή Ελληνικών χαρακτήρων. Αυτό μπορείς να το διαπιστώσεις αν πας στο phpmyadmin και κάνεις edit κάποιο column που έχει BLOB. Θα δεις ότι τα κείμενα είναι "plain text".
Γενικά για να εμφανίσεις τα κείμενα των BLOB στο phpmyadmin, πατάς Options (βρίσκεται πάνω αριστερά από κάθε table, πάνω από το T), και τικάρεις μόνο τα "Show binary contents" και "Show BLOB contents". Αν θες να εμφανιστεί όλο το κέιμενο επιλέγεις επίσης "Full texts".

Όταν κάνεις export τη βάση δεδομένων, αν δεν θες να έχεις στο αρχείο sql τα κείμενα ως ce9acebfcf81ceb4ceadcebbceb5cf82 ... , επιλέγεις Custom - display all possible options και ξετικάρεις το "Dump binary columns in hexadecimal notation (for example, "abc" becomes 0x616263)"

Σχετικά με την επιλογή του collation utf8_general_ci ...
Το collation είναι στην ουσία κανόνες βάσει των οποίων γίνεται η ταξινόμηση των αποτελεσμάτων ενός query.
Με utf8_general_ci η ταξινόμηση γίνεται χωρίς να λαμβάνονται υπόψιν κεφαλαία, πεζά και τόνοι .

πχ
Έχουμε καταχωρήσει ένα προϊόν άσπρο στη βάση
1. Με collation utf8_general_ci
Κάνοντας αναζήτηση δίνοντας τη λέξη ΑΣΠΡΟ ή ασπρο, θα έχουμε αποτέλεσμα το προϊόν άσπρο γιατί στο collation αυτό δεν υπάρχει διαφορά μεταξύ του χαρακτήρα ά και του α.

2. Με collation utf8_bin
Κάνοντας αναζήτηση δίνοντας τη λέξη ΑΣΠΡΟ ή ασπρο ... δε θα έχουμε κανένα αποτέλεσμα γιατί στο collation αυτό υπάρχει διαχωρισμός μεταξύ του χαρακτήρα ά και του α.

Με μία πρώτη ανάγνωση κάποιος θα πει εύλογα ... ε τότε πάμε σε utf8_general_ci ...
Η επιλογή αυτή μπορεί να διευκολύνει την αναζήτηση χωρίς τόνους, αλλά λόγω της "χαλαρής" διάκρισης που κάνει στους χαρακτήρες δεν έχει τόσο ακριβή αποτελέσματα στην σειρά εμφάνισης των προϊόντων σε κάποιο κατάλογο.
Η τελική επιλογή του collation είναι ένας συμβιβασμός αναλόγως που θέλεις να δώσεις περισσότερο βάση. (Επίσης σε κάποιες εξαιρετικές περιπτώσεις λόγω κακού σχεδιασμού της βάσης, αυτή η έλλειψη διάκρισης μπορεί να δημιουργήσει errors σε καταχωρήσεις)

Πάντως θα συμφωνήσω κι εγώ με το post που ανέφερες, εφόσον τόσα χρόνια μια χαρά στήναμε sites με utf8_general_ci και utf8_unicode_ci.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by corpus » Sat Nov 03, 2012 3:34 am

αναλυτική η απάντηση σου
έμαθα πράγματα που δεν γνώριζα
δεν έχει τόσο ακριβή αποτελέσματα στην σειρά εμφάνισης των προϊόντων σε κάποιο κατάλογο
όταν λες κατάλογο εννοείς στο frontend του site ? αυτό είναι σοβαρό
Επίσης σε κάποιες εξαιρετικές περιπτώσεις λόγω κακού σχεδιασμού της βάσης, αυτή η έλλειψη διάκρισης μπορεί να δημιουργήσει errors σε καταχωρήσεις
έχεις αντιμετωπίσει τέτοια προβλήματα εσύ;

εσύ ποιο collation χρησιμοποιείς για τα δικά σου site και τις ανάγκες σου;

New member

Posts

Joined
Mon Oct 15, 2012 4:40 am

Post by People's Code » Sun Nov 04, 2012 1:51 am

όταν λες κατάλογο εννοείς στο frontend του site ? αυτό είναι σοβαρό
Ναι, και οπουδήποτε αλλού εμφανίζεται ταξινομημένη λίστα. Πρακτικά δεν είναι τόσο σοβαρό, εφόσον δεν εμφανίζει ελλειπή αποτελέσματα (το αντίθετο), απλά η αλφαβητική σειρά εμφάνισης δεν επηρεάζεται από τους παράγοντες που ανέφερα προηγουμένως.
έχεις αντιμετωπίσει τέτοια προβλήματα εσύ;
Όχι , προσωπικά δεν είχα ποτέ πρόβλημα.
Για να αντιμετωπίσεις πρόβλημα πρέπει συμπέσουν τα εξής:
1. Να υπάρχει κάποιο query που να ψάχνει σε κάποιο table column μία μοναδική λέξη για να κάνει κάτι (πχ να εισάγει κάτι μόνο εκεί, ή για έλεγχο username, email κλπ)
2. Το table column να περιέχει την λέξη πάνω από μία φορά τονισμένη διαφορετικά.
(αυτό είναι πιθανότερο να συμβεί σε ένα forum που οι επισκέπτες από διάφορες χώρες μπορούν να γράψουν κάτι σε μια γλώσσα σκανδιναβική ή στα γερμανικά με τόνους και το ίδιο κείμενο να υπάρχει ήδη με απλούς αγγλικούς χαρακτήρες. Έχω δει επίσης μία αναφορά online για βάση δεδομένων που περιέχει αρχαία ελληνικά και ο χρήστης παραπονιέται για ανάλογα προβλήματα με λέξεις που τονίζονται διαφορετικά αλλά έχουν άλλο νόημα.)

Όμως στο Opencart δεν γίνεται να συμβούν τα παραπάνω γιατί ο developer (κυρίως για λόγους ασφαλείας) έχει φροντίσει τα queries - τα περισσότερα που έχω δει τουλάχιστο - να αναζητούν αριθμητικό ID και μάλιστα φροντίζει να υπάρχει πάντα type casting σε (int) για να είναι 100% βέβαιο ότι το query θα είναι αριθμός.
εσύ ποιο collation χρησιμοποιείς για τα δικά σου site και τις ανάγκες σου;
Εγώ παραμένω στο αρχικό collation και γενικά προσπαθώ να τροποποιώ τις εφαρμογές μόνο εκεί που είναι απολύτως απαραίτητο σύμφωνα με τις προδιαγραφές που έχει θέσει ο πελάτης αρχικά. Όσο περισσότερες αλλαγές έχεις κάνει, τόσο ποιο χρονοβόρες ενδέχεται να αποβούν μελλοντικές κινήσεις αναβάθμισης. Αν πάμε στη λογική να υπάρχουν queries χωρίς τόνο, μετά προκύπτει λογικά η ανάγκη να υπάρχει script που να ελέγχει κάποιο λεξικό ή λεξικά για ορθογραφικά λάθη και να ψάχνει πολλές πιθανές λέξεις, μετά γιατί να μην πάμε και στη λογική της αναγνώρισης των greeklish κλπ κλπ κλπ.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by spontes » Sun Nov 18, 2012 11:24 pm

συγγνώμη για να καταλάβω καλά.Το opencart γίνετε εγκατάσταση σε ξεχωριστή databe? Δεν μπαίνει σαν component μέσα στο joomla?

chat γνωριμίες


Newbie

Posts

Joined
Sun Nov 18, 2012 10:35 pm


Post by People's Code » Mon Nov 19, 2012 6:45 pm

Είναι αυτόνομο, δεν χρειάζεται κάποιο cms.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by intelcom » Sun Nov 25, 2012 7:10 am

Και αν πχ δεν το έχουμε έτσι και μέσα στο phpMyadmin μας έχει sto description των προϊόντων τέτοιους χαρακτήρες:
<p>
IP &Kappa;ά&mu;&epsilon;&rho;&alpha; &mu;&epsilon;

Γίνετε να τους αλλάξουμε σε κανονικούς έτσι πως αναφέρεις?

User avatar
New member

Posts

Joined
Wed Apr 11, 2012 4:33 am
Location - Thessaloniki Greece

Post by People's Code » Sun Nov 25, 2012 6:14 pm

Προηγουμένως ανέφερα ότι οι χαρακτήρες εμφανίζονται διαφορετικά στο phpmyadmin αλλά είναι καταχωρημένοι σωστά και είναι θέμα ρύθμισης να τους κάνεις να εμφανίζονται ως κείμενο.

Σε εσένα συμβαίνει ακριβώς το αντίθετο. Τα &alpha;&beta;&gamma;&delta;&epsilon; είναι html entities και δεν είναι σωστό που καταχωρήθηκαν έτσι, γιατί κάθε γράμμα καταλαμβάνει περισσότερο χωρο και τα κείμενα δεν είναι ευανάγνωστα στη βάση.

Δε μπορείς να μετατρέψεις τους χαρακτήρες σε κανονικούς από το phpmyadmin. Χρειάζεσαι κάποιο script για αυτή τη δουλειά.

Αν εισήγαγες τα δεδομένα στη βάση σου με το import/export tool τότε μπορείς να τα ξανακαταχωρήσεις σωστά αν κάνεις μία απλή μετατροπή στο κώδικα της εφαρμογής. Διάβασε εδώ.

Συμβαίνει συχνά σε εφαρμογές που έχουν φτιαχτεί από developers που μιλούν γλώσσες με λατινικό αλφάβητο να μην λαμβάνουν υπόψη τους τι θα συμβεί αν το κείμενο περιέχει multibyte χαρακτήρες όπως τα ελληνικά και περάσει από το htmlentities().

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by intelcom » Mon Nov 26, 2012 5:17 am

Λοιπόν τι έκανα... Έκανα ένα καινούργιο install του opencart σε ένα demo domain. έκανα όλα όσα περιέγραψες και έβαλα μόνο το import/export με τις αλλαγές που περιγράφει στο thread που μου έστειλες. Και όλα περαστήκαν κανονικά μέσα στην βάση.... τα ονόματα τον προϊόντων τώρα είναι σωστά, αλλά η περιγραφή παραμένει να είναι σε αυτή την μορφή...

Αν όμως φτιάχνω από την αρχή το eshop πρώτα σε demo και μετά μεταφορά στο κανονικό domain-hosting, τι θα γίνει με τους υπέχοντες χρήστες, παραγγελίες κτλ κτλ κτλ που το import export δεν μπορεί να τα πάρει???

Ξέρουμε κάποιο scripts όπως ανάφερες που μπορεί να κάνει αυτή την δουλειά???

User avatar
New member

Posts

Joined
Wed Apr 11, 2012 4:33 am
Location - Thessaloniki Greece

Post by People's Code » Mon Nov 26, 2012 4:35 pm

Και όλα περαστήκαν κανονικά μέσα στην βάση.... τα ονόματα τον προϊόντων τώρα είναι σωστά, αλλά η περιγραφή παραμένει να είναι σε αυτή την μορφή..
Ρίξε μια ματιά μήπως έχεις παραλείψει τη γραμμή 491 ...
τι θα γίνει με τους υπέχοντες χρήστες, παραγγελίες κτλ κτλ κτλ που το import export δεν μπορεί να τα πάρει???
Ξέρουμε κάποιο scripts όπως ανάφερες που μπορεί να κάνει αυτή την δουλειά???
Δεν έχω κάτι έτοιμο γιατί δε μου χρειάστηκε ...
Θα βρεις διάφορα παραδείγματα online, αλλά θα πρέπει να γνωρίζεις να τα τροποποιήσεις στις ανάγκες σου...
Η συμβουλή μου είναι εφόσον διορθώσεις τη βάση, άφησε τις παλιές παραγγελίες ως έχουν.

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by intelcom » Tue Nov 27, 2012 4:00 am

Code: Select all

Line 437: 	$name = htmlspecialchars( $name, ENT_QUOTES, $this->detect_encoding($name) ENT_COMPAT, 'UTF-8');
Line 474: 	$description = htmlspecialchars( $description, ENT_QUOTES, $this->detect_encoding($description) ENT_COMPAT, 'UTF-8' );
Line 476: 	$meta_description = htmlspecialchars( $meta_description, ENT_QUOTES, $this->detect_encoding($meta_description) ENT_COMPAT, 'UTF-8');
Line 478: 	$meta_keywords = htmlspecialchars( $meta_keywords, ENT_QUOTES, $this->detect_encoding($meta_keywords) ENT_COMPAT, 'UTF-8');
Line 484: 	$tags = htmlspecialchars( $tags, ENT_QUOTES, $this->detect_encoding($tags) ENT_COMPAT, 'UTF-8');
Line 664: 	$name = htmlspecialchars( $name, ENT_QUOTES, $this->detect_encoding($name) ENT_COMPAT, 'UTF-8' );
Line 679: 	$description = htmlspecialchars( $description, ENT_QUOTES, $this->detect_encoding($description) ENT_COMPAT, 'UTF-8' );
Line 681: 	$meta_description = htmlspecialchars( $meta_description, ENT_QUOTES, $this->detect_encoding($meta_description) ENT_COMPAT, 'UTF-8');
Line 683: 	$meta_keywords = htmlspecialchars( $meta_keywords, ENT_QUOTES, $this->detect_encoding($meta_keywords) ENT_COMPAT, 'UTF-8' );
Σωστο δεν ειναι??

User avatar
New member

Posts

Joined
Wed Apr 11, 2012 4:33 am
Location - Thessaloniki Greece

Post by People's Code » Tue Nov 27, 2012 4:27 pm

Όχι, είναι όλα λάθος ...

Ή θα το γράψεις έτσι που θα βρίσκει το encoding από το detect_encoding

Code: Select all

$name = htmlspecialchars($name, ENT_COMPAT, $this->detect_encoding($name));
ή έτσι που θα ορίζεις εσύ το encoding

Code: Select all

$name = htmlspecialchars($name, ENT_COMPAT, 'UTF-8');

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas

Post by giannokostas » Fri Sep 27, 2013 12:09 am

Γεια σας και από εμένα.

Έχω το εξής πρόβλημα και δεν ξέρω αν είναι θέμα κωδικοποίησης ή κάτι διαφορετικό.
Ονομάζω μία κατηγορία π.χ. Υπολογιστές (με πεζά και τονισμένο)...Εμφανίζεται κανονικά αλλά όταν σε κάποια σημεία εμφανίζεται με κεφαλαία γράμματα εμφανίζεται έτσι ΥΠΟΛΟΓΙΣΤΈΣ (έχει κρατήσει τον τόνο)...
Αυτό μπορεί να διορθωθεί με αλλαγή της κωδικοποίησης;Τι μπορώ να κάνω;

Ευχαριστώ

Newbie

Posts

Joined
Wed Sep 25, 2013 4:27 pm

Post by People's Code » Fri Sep 27, 2013 12:18 am

Αυτό οφείλεται στο css του template σου. Κάποιοι developers που δεν λαμβάνουν υπόψη τους ότι το template τους ενδέχεται να χρησιμοποιηθεί με γλώσσες που έχουν τόνους, χρησιμοποιούν το text-transform: uppercase;.

Στο φάκελο του template που χρησιμοποιείς, άνοιξε τα αρχεία με κατάληξη .css σε ένα σοβαρό text editor πχ notepad++ και κάνε αναζήτηση για text-transform. Όπου δεν το χρειάζεσαι, μπορείς να το διαγράψεις ή να το απενεργοποιήσεις αν το γράψεις έτσι /*text-transform: uppercase;*/

PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart


User avatar
Active Member

Posts

Joined
Fri Jul 27, 2012 5:30 am
Location - Hellas
Who is online

Users browsing this forum: No registered users and 6 guests