αναφέρω ποια είναι τα σωστά βήματα για να έχουμε σωστά ελληνικά στην database
Πριν την εγκατάσταση αφου δημιουργήσουμε την βάση μας πάμε στο phpmyadmin, επιλεγουμε την βάση μας και μετα Operations και στο πεδίο Collation: επιλέγουμε απο το dropdown utf8_general_ci και πατάμε το Go ή εκτέλεση
αμέσως μετά ανοιγουμε το αρχειο opencart.sql στην διαδρομή upload/install/
και αντικαθιστούμε τα
utf8_bin
με
utf8_general_ci
Αν κάποιος έχει να συμπληρώσει/διορθώσει κάτι ευπρόσδεκτος
αναφέρω ποια είναι τα σωστά βήματα για να έχουμε σωστά ελληνικά στην database
Τι εννοείς σωστά ελληνικά ?
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
και όχι
ce9acebfcf81ceb4ceadcebbceb5cf82
μόλις διάβασα και αυτό το post
http://forum.opencart.com/viewtopic.php?t=25488
Αυτό ισχύει και για τα Αγγλικά και για τα Ελληνικά. Δεν πρόκειται για κάποιο πρόβλημα με την εισαγωγή Ελληνικών χαρακτήρων. Αυτό μπορείς να το διαπιστώσεις αν πας στο phpmyadmin και κάνεις edit κάποιο column που έχει BLOB. Θα δεις ότι τα κείμενα είναι "plain text".να εμφανίζονται σωστά τα ελληνικά στην database
και όχι
ce9acebfcf81ceb4ceadcebbceb5cf82
Γενικά για να εμφανίσεις τα κείμενα των 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
έμαθα πράγματα που δεν γνώριζα
όταν λες κατάλογο εννοείς στο frontend του site ? αυτό είναι σοβαρόδεν έχει τόσο ακριβή αποτελέσματα στην σειρά εμφάνισης των προϊόντων σε κάποιο κατάλογο
έχεις αντιμετωπίσει τέτοια προβλήματα εσύ;Επίσης σε κάποιες εξαιρετικές περιπτώσεις λόγω κακού σχεδιασμού της βάσης, αυτή η έλλειψη διάκρισης μπορεί να δημιουργήσει errors σε καταχωρήσεις
εσύ ποιο collation χρησιμοποιείς για τα δικά σου site και τις ανάγκες σου;
Ναι, και οπουδήποτε αλλού εμφανίζεται ταξινομημένη λίστα. Πρακτικά δεν είναι τόσο σοβαρό, εφόσον δεν εμφανίζει ελλειπή αποτελέσματα (το αντίθετο), απλά η αλφαβητική σειρά εμφάνισης δεν επηρεάζεται από τους παράγοντες που ανέφερα προηγουμένως.όταν λες κατάλογο εννοείς στο frontend του site ? αυτό είναι σοβαρό
Όχι , προσωπικά δεν είχα ποτέ πρόβλημα.έχεις αντιμετωπίσει τέτοια προβλήματα εσύ;
Για να αντιμετωπίσεις πρόβλημα πρέπει συμπέσουν τα εξής:
1. Να υπάρχει κάποιο query που να ψάχνει σε κάποιο table column μία μοναδική λέξη για να κάνει κάτι (πχ να εισάγει κάτι μόνο εκεί, ή για έλεγχο username, email κλπ)
2. Το table column να περιέχει την λέξη πάνω από μία φορά τονισμένη διαφορετικά.
(αυτό είναι πιθανότερο να συμβεί σε ένα forum που οι επισκέπτες από διάφορες χώρες μπορούν να γράψουν κάτι σε μια γλώσσα σκανδιναβική ή στα γερμανικά με τόνους και το ίδιο κείμενο να υπάρχει ήδη με απλούς αγγλικούς χαρακτήρες. Έχω δει επίσης μία αναφορά online για βάση δεδομένων που περιέχει αρχαία ελληνικά και ο χρήστης παραπονιέται για ανάλογα προβλήματα με λέξεις που τονίζονται διαφορετικά αλλά έχουν άλλο νόημα.)
Όμως στο Opencart δεν γίνεται να συμβούν τα παραπάνω γιατί ο developer (κυρίως για λόγους ασφαλείας) έχει φροντίσει τα queries - τα περισσότερα που έχω δει τουλάχιστο - να αναζητούν αριθμητικό ID και μάλιστα φροντίζει να υπάρχει πάντα type casting σε (int) για να είναι 100% βέβαιο ότι το query θα είναι αριθμός.
Εγώ παραμένω στο αρχικό collation και γενικά προσπαθώ να τροποποιώ τις εφαρμογές μόνο εκεί που είναι απολύτως απαραίτητο σύμφωνα με τις προδιαγραφές που έχει θέσει ο πελάτης αρχικά. Όσο περισσότερες αλλαγές έχεις κάνει, τόσο ποιο χρονοβόρες ενδέχεται να αποβούν μελλοντικές κινήσεις αναβάθμισης. Αν πάμε στη λογική να υπάρχουν queries χωρίς τόνο, μετά προκύπτει λογικά η ανάγκη να υπάρχει script που να ελέγχει κάποιο λεξικό ή λεξικά για ορθογραφικά λάθη και να ψάχνει πολλές πιθανές λέξεις, μετά γιατί να μην πάμε και στη λογική της αναγνώρισης των greeklish κλπ κλπ κλπ.εσύ ποιο collation χρησιμοποιείς για τα δικά σου site και τις ανάγκες σου;
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
<p>
IP Κάμερα με
Γίνετε να τους αλλάξουμε σε κανονικούς έτσι πως αναφέρεις?
Σε εσένα συμβαίνει ακριβώς το αντίθετο. Τα αβγδε είναι html entities και δεν είναι σωστό που καταχωρήθηκαν έτσι, γιατί κάθε γράμμα καταλαμβάνει περισσότερο χωρο και τα κείμενα δεν είναι ευανάγνωστα στη βάση.
Δε μπορείς να μετατρέψεις τους χαρακτήρες σε κανονικούς από το phpmyadmin. Χρειάζεσαι κάποιο script για αυτή τη δουλειά.
Αν εισήγαγες τα δεδομένα στη βάση σου με το import/export tool τότε μπορείς να τα ξανακαταχωρήσεις σωστά αν κάνεις μία απλή μετατροπή στο κώδικα της εφαρμογής. Διάβασε εδώ.
Συμβαίνει συχνά σε εφαρμογές που έχουν φτιαχτεί από developers που μιλούν γλώσσες με λατινικό αλφάβητο να μην λαμβάνουν υπόψη τους τι θα συμβεί αν το κείμενο περιέχει multibyte χαρακτήρες όπως τα ελληνικά και περάσει από το htmlentities().
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Αν όμως φτιάχνω από την αρχή το eshop πρώτα σε demo και μετά μεταφορά στο κανονικό domain-hosting, τι θα γίνει με τους υπέχοντες χρήστες, παραγγελίες κτλ κτλ κτλ που το import export δεν μπορεί να τα πάρει???
Ξέρουμε κάποιο scripts όπως ανάφερες που μπορεί να κάνει αυτή την δουλειά???
Ρίξε μια ματιά μήπως έχεις παραλείψει τη γραμμή 491 ...Και όλα περαστήκαν κανονικά μέσα στην βάση.... τα ονόματα τον προϊόντων τώρα είναι σωστά, αλλά η περιγραφή παραμένει να είναι σε αυτή την μορφή..
Δεν έχω κάτι έτοιμο γιατί δε μου χρειάστηκε ...τι θα γίνει με τους υπέχοντες χρήστες, παραγγελίες κτλ κτλ κτλ που το import export δεν μπορεί να τα πάρει???
Ξέρουμε κάποιο scripts όπως ανάφερες που μπορεί να κάνει αυτή την δουλειά???
Θα βρεις διάφορα παραδείγματα online, αλλά θα πρέπει να γνωρίζεις να τα τροποποιήσεις στις ανάγκες σου...
Η συμβουλή μου είναι εφόσον διορθώσεις τη βάση, άφησε τις παλιές παραγγελίες ως έχουν.
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
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' );
Ή θα το γράψεις έτσι που θα βρίσκει το encoding από το detect_encoding
Code: Select all
$name = htmlspecialchars($name, ENT_COMPAT, $this->detect_encoding($name));
Code: Select all
$name = htmlspecialchars($name, ENT_COMPAT, 'UTF-8');
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Έχω το εξής πρόβλημα και δεν ξέρω αν είναι θέμα κωδικοποίησης ή κάτι διαφορετικό.
Ονομάζω μία κατηγορία π.χ. Υπολογιστές (με πεζά και τονισμένο)...Εμφανίζεται κανονικά αλλά όταν σε κάποια σημεία εμφανίζεται με κεφαλαία γράμματα εμφανίζεται έτσι ΥΠΟΛΟΓΙΣΤΈΣ (έχει κρατήσει τον τόνο)...
Αυτό μπορεί να διορθωθεί με αλλαγή της κωδικοποίησης;Τι μπορώ να κάνω;
Ευχαριστώ
Στο φάκελο του template που χρησιμοποιείς, άνοιξε τα αρχεία με κατάληξη .css σε ένα σοβαρό text editor πχ notepad++ και κάνε αναζήτηση για text-transform. Όπου δεν το χρειάζεσαι, μπορείς να το διαγράψεις ή να το απενεργοποιήσεις αν το γράψεις έτσι /*text-transform: uppercase;*/
PeoplesCode.com
Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Τεχνική Υποστήριξη OpenCart
Opencart-Hellas.gr - Η Ελληνική κοινότητα του Opencart
Πλήρης Ελληνική μετάφραση OpenCart
Users browsing this forum: No registered users and 6 guests