Category Archives: php

Προγραμματισμός σε php

Μετάφραση custom wordpress θέματος με την χρήση του poedit.

Πολλές φορές θέλουμε πολυγλωσσική υποστήριξη από το υπάρχων wordpress θέμα μας. Ο ποιο ασφαλής τρόπος να γίνει αυτό είναι με την χρήση αρχείων .po ή .pot που υποστηρίζει το GNU gettext. Δε ο τρόπος αυτός ενδείκνυται και σε ανάπτυξη μη-wordpress σελίδων και εφαρμογών.  Στο άρθρο αυτό θα σας δείξουμε βήμα – βήμα πως να μεταφράσετε το το ήδη υπάρχων θέμα που μόλις δημιουργήσατε.

Κατ αρχάς θα πρέπει να εγκαταστήσουμε το poedit σε Ubuntu GNU/Linux γίνετε με την εντολή:

sudo apt-get install poedit

Για τις υπόλοιπες διανομές GNU/Linux κοιτάξτε στα εκάστοτε αποθετήρια εάν δεν υπάρχει η τρέχετε windows μπορείτε να το κατεβάσετε και να το εγκαταστήσετε από το https://poedit.net/download . Δε για wordpress παρόλο που ΔΕΝ είναι απαραίτητο υπάρχει η επί πληρωμή έκδοση του poedit που έχει καλύτερη υποστήριξη.

Εφόσον το εγκαταστήσετε θα πρέπει να εκτελέσετε τα εξής όπως φαίνεται στο παρακάτω παράδειγμα. Για τις ανάγκες του παραδείγματος θα σας δείξω πως μετέφρασα το testTheme θέμα που ανέπτυξα για εκπαιδευτικούς σκοπούς.

Κατ’ αρχάς θα πρέπει τα αρχικά προς μετάφραση strings στον php & html κώδικα του θέματος να είναι στα αγγλικά. Δε να περικλείονται από tags και να έχουν την εξής μορφή _e(‘Untranslated string’). Πχ. Ας πούμε πως κάπου στα php αρχεία του θέματός μας έχουμε:

<h1>Goodmorning</h1>

Θα πρέπει να γίνει:

<h1><?=_e('Goodmorning')? ></h1>

Εφόσον το κάνουμε αυτό ΓΙΑ ΟΛΑ τα string που θέλουμε να μεταφράσουμε τότε εκτελoύμε το poedit. Θα μας εμφανιστεί το εξής παράθυρο (περιβάλλον στα Ελληνικά)

Τότε από το μενού επιλέγουμε Αρχείο -> Νέο

Και στο παράθυρο που μας ανοίγετε επιλέγουμε την γλώσσα που επιθυμούμε για Ελληνικά επιλέγουμε «Ελληνικά (Ελλάδα)» όπως βλέπετε στην παρακάτω εικόνα.

Και μετά κάνουμε κλίκ στο «Αποθήκευση».  Στο παράθυρο που μας ανοίγετε επιλέγουμε την διαδρομη «^εκεί που είναι εγκατεστημένο το wordpress^/wp-content/languages/themes/όνομα_theme-el.po»  πχ στην περίπτωσή μου το wordpress είναι εγκατεστημένο στον φάκελο «/home/pcmagas/Kwdikas/php/htdocs/wordpress» έτσι η μετάφραση του θέματος μου θα είναι στην διαδρομή «/home/pcmagas/Kwdikas/php/htdocs/wordpress/wp-content/languages/themes/testTheme-el.po»

Μετέπειτα θα πρέπει να ρυθμίσουμε το που θα είναι τα αρχεία κειμένου που θα θέλουμε να μεταφράσουμε. Αυτό γίνετε κάνοντας κλίκ στο κουμπί όπως βλέπετε στην παρακάτω εικόνα:

Αργότερα κάνουμε κλίκ στα εξής όπως δείχνει η παρακάτω εικόνα, το θέμα μας θα είναι σε έναν στον φάκελο «^εκεί που είναι εγκατεστημένο το wordpress^/wp-content/themes/^όνομα_θέματος^» πχ. στην περίπτωσή μου είναι το «/home/pcmagas/Kwdikas/php/htdocs/wordpress/wp-content/themes/testTheme» . Σημείωση να επιλέξουμε την καρτέλα «Λέξεις-κλειδιά των πηγών» μετά την επιλογή του φακέλου που είναι το θέμα μας:

Στην Καρτέλα «Λέξεις-κλειδιά των πηγών»  κάνουμε κλικ στο κουμπί που μας δείχνει η παρακάτω εικόνα και στο πεδίο που μας υποδεικνύει πληκτρολογούμε «_e» (χωρίς τα εισαγωγικά) Μετά πατάμε το κουμπί «Εντάξει». Πλέον το παράθυρό μας έχει την εξής μορφή, στην παρακάτω εικόνα σας επεξηγώ τα ποιο χρήσιμα πεδία και κουμπιά του UI:

Πλέον μπορείτε να ορίσετε μετάφραση για τα εκάστοτε κείμενα που θέλετε να εμφανίζονται πολυγγλωσικά.

Τα παραπάνω βήματα δοκιμάστικαν στην έκδοση Poedit 1.8.7.1 σε Ubuntu GNU\Linux 16.04.

Advertisements

Codeigniter & Yii2: Οι πρώτες εντυπώσεις – διαφορές.

Προς την αναζήτηση εργασίας για το Portfolio μου αναγκάστηκα να δοκιμάσω 2 frameworks: To CodeΙgniter και το Yii2. Και στα 2 δεν εντρύφησα σε τόσο βάθος έτσι ίσως να μην είναι και τόσο αντικειμενικά. Η χρησιμότητα του framework είναι όταν έχεις να κάνεις πολλά πράγματα σε λιγό χρόνο έτσι κάποια στανταράκια όπως σύνδεση στην βάση κλπ κλπ τα κάνει από μόνο του, συν ότι έχεις ένα «μπούσουλα» στο που είναι η λογική και στο που είναι η «φάτσα» της web εφαρμογής σου. Έτσι ο hipseras frontend developer που έχει την καλλιτεχνική φλέβα με το macbook και σε κριτικάρει με βλέμμα υπεροψίας τις επιλογές σου σε ταινίες, δεν θα ανακατεύεται με τον ιδρωμένο, που έχει να ξυριστεί από την Ιουρασική περίοδο και έχει για γυναίκα ένα dakimakura και κανένα θηλυκό δεν θέλει να τον πλησιάσει, backend developer. (Πλάκα κάνω αλλά you got the point!)

Και επειδή δεν θέλω να προλογίσω τόσο πολύ θα πάω κατ’ ευθίαν στο ψητό.

Υii2:

Το Yii2 framework είναι ένα framework υπό την BSD Licence από τoν Qiang Xue που το έφερε στον μάταιο κόσμο της πληροφορικής το 2008. Ένα πράγμα που λάτρεψα είναι ότι απλά παίζει προηγουμένως είχα δομικάσει το Laravel και δεν μπορούσα να τρέξω επιτυχώς ούτε 2-3 βασικά πράγματα. Αυτό το έβαλα διάβασα το manual και μπαμ έπαιζε.

Ακόμα μου άρεσε το εσνωματομένο Gii plugin που μου έκανε από μόνο του ΠΟΛΥ κώδικα που θα έγραφα με το χέρι, και ποιο συγκεκριμένα κώδικα που συμπεριλαμβάνουν ενέργειες που έχουν να κάνουν με προσθήκη, ανανέωση, αναζήτηση και διαγραφή δεδομένων από την βάση, έτσι μετά μπορώ να κάνω αλλαγές όσες θέλω χωρίς κόπο. Ιδιαίτερα χρήσιμο όταν έχεις αρκετούς πίνακες. Ακόμα μου αρέσει ο τρόπος που δένει τους συσχετισμούς των πινάκων πάνω στο μοντέλο απλά σαν instance variable του μοντέλου που αυτή με την σειρά της δείχνει ένα μοντέλο (που αντιπροσωπεύει έναν άλλο πίνακα) .

Ακόμα για το frontend εκεί η απόψεις διαφέρουν για όσους δεν το κατέχουν το σπορ είναι βολικό λόγο ότι έχει helpers που κάνουν την ζωή ποιο εύκολη με λίγη βασική html και το css που έρχεται μαζί με το framework κάνεις μια εφαρμογή που δεν θα να πάρει ο χρήστης τα μάτια του και να τα δώσει πίσω στον Θεό λόγο ότι απλά δεν βλέπεται η εφαρμογή σας. Για πίνακα και pagination έχει αρκετά εύχρηστο κώδικα και modules όπως και για κάποια πραγματάκια όπως capcha που δεν θέλουν configutation ιδιαίτερο. Πέρα από αυτό έχει ενσωματωμένο jquery και μηχανισμό που να βάζει αυτόματα ότι javascript script θες σε κάθε σελίδα απλά τα τοποθετείς σε ένα συγκεκριμένο αρχείο μέσα σε ένα πίνακα. Αλλά ίσως να το βρουν οι φανατικοί του frontend λίγο στιφνό και δύσκολο στο να παραμετροποιούν το css.

Τέλος ένα πράγμα έχω να πω. Αν θες ένα aplication τσακ μπαμ το Yii2 είναι η ιδανικότερη λύση.

Codeigniter:

Aυτό το framework είναι λιτό σε σχέση με το Yii2 και δίνει περιθώρια για πολλές customιες.  Για κάποιο λόγο μου δίνει την αίσθηση του μικρού. Πράγμα που μου άρεσε είναι ότι το index είναι στο root folder της εφαρμογής σου έτσι δεν θες .htaccess για να παίζεις χωρίς να χρειαστείς να πηγαίνεις σε subfolders για να βρεις το index.php (Αν και στο openshift δεν βρήκα ιδιαίτερο πρόβλημα), χωρίς να γνωρίζω αν ενδέχεται να είναι κενό ασφαλείας αυτό.

Μου αρέσει ο τρόπος που κάνει render τα views έχεις τεμαχισμένη την html σε header footer και content και για διαφορετική σελίδα θες διαφορετικό header απλά μπορείς να κάνεις render το διαφορετικό πράγμα που θές. Πέρα από αυτό άνετα κάνεις και views σε json και xml με το δικό σου template. Δεν έχει περιορισμούς στο πως θα κάνεις render διαφορετικά views. Ακόμη αγαπημένε hipstera frontend developer σου έχω καλά νέα στο html κάνεις ότι θες παίζεις άνετα μπάλα κάνεις ότι θες. Είναι αρκετά ευέλικτο στο frontend σε σχέση με το yii.

Αλλά από την άλλη δεν μου αρέσει ο τρόπος που βάζεις CAPTCHA είναι λίγο ποιο περίπλοκος σε σχέση με το yii. Λόγο ότι δεν παίζει και πολύ μπάλα το convention αλλά περισσότερο το configuration. Ειδικά στο ιδιαιτέρως καλογραμμένο manual προτείνει ότι χρειάζομαι και να κάνω ένα table για CAPTCHA. WTF?! Gimme a break.

Και εδώ είναι ανάγκη να αναφέρο το καλλογραμμένο manual ούτε βιβλία ούτε τίποτα άλλο το manual είναι 1000 φορές καλύτερο του Yii2, τα έχει ΟΛΑ, μα ΟΛΑ όμως. Συν ότι στον φάκελο user_guide το έχει ενσωματωμένο έτσι δεν θες να μπεις στον κόπο ούτε να το gooγλάρεις και έτσι στο τραίνο η εκεί που δεν πιάνει internet μπορείς να παίζεις μπάλα για να περνά η ώρα σου.

Με απλά λόγια είναι ένα small good framework.

 

Επίλογος:

Σας είπα την γνώμη μου και τι μου άρεσε από 2 framworks που είδα για τις επαγγελματικές μου ανάγκες. Σας δίνω και ένα δημοψήφισμα για ποιο από τα 2 σας αρέσει.