Φτιάχνοντας πολυγλωσσικές διαδικτυακές εφαρμογές

Είναι σημαντικό προνόμιο για μια εφαρμογή το να μπορεί να υποστηρίζει πολλές γλώσσες. Πώς όμως μπορεί να γίνει αυτό;

Είναι πολύ σημαντικό να γίνει κατανοητό πως ως προγραμματιστές που σχεδιάζουμε και προγραμματίζουμε μία εφαρμογή, είμαστε απόλυτα ελεύθεροι να επιλέξουμε όποιον τρόπο θεωρούμε εμείς καλό, ανεξάρτητα του αν είναι ο πιο διαδεδομένος ή όχι. Έτσι, εδώ θα παρουσιάσουμε έναν τρόπο και ο καθένας μπορεί να τον χρησιμοποιήσει, να αναπτύξει τον δικό του ή να τον απορρίψει.

Η διάταξη που θα χρησιμοποιήσουμε θα είναι η παρακάτω:


O φάκελος el-GR αποφασίζουμε ότι θα αφορά την ελληνική μετάφραση, ενώ ο en-GB την αγγλική. Έτσι λοιπόν, κάθε γλώσσα θα έχει το δικό της μέρος ως υποφάκελο του φακέλου language.

Το αρχείο language.php θα μοιάζει με το παρακάτω:
<?php
$language=array(
//MAIN WINDOW
"title" => "Τίτλος",
"Undo" => "Αναίρεση",
"Redo" => "Επανάληψη",
"Link" => "Εισαγωγή Συνδέσμου",
"ΙnsertImage" => "Εισαγωγή Εικόνας",
"SelectFile" => "Επιλέξτε αρχείο",

//ERRORS
"WriteEmptyFailedUnknown" => "Η προετοιμασία απέτυχε",
"WriteEmptyFailedFolder" => "Ο φάκελος temp δεν είναι εγγράψιμος!"
);
?>

Ανάλογα την εφαρμογή που φτιάχνουμε, τα μηνύματα θα αλλάζουν φυσικά. Πχ. το παραπάνω θα μπορούσε να χρησιμοποιηθεί σε έναν WYSIWYG επεξεργαστή κειμένου, σε ένα webmail πρόγραμμα κτλ. Όταν, λοιπόν, κάποιος θέλει να μεταφράσει το πρόγραμμα, δε θα έχει παρά να πάρει το language.php, να το βάλει σε έναν φάκελο της επιλογής του και να το τροποποιήσει, σύμφωνα με τους τίτλους που δίνονται στα αγγλικά στο αριστερό μέρος(ως ονόματα των πεδίων του πίνακα $language).

Το αρχείο config.php θα περιέχει τις ρυθμίσεις του ιστοχώρου(πχ. στοιχεία της βάσης δεδομένων). Ανάμεσα σε αυτά θα βάλουμε και τις γραμμές:
/************************
*Set the language folder*
************************/
$lang_code="el-GR";


Όταν κάνουμε include το αρχείο config.php στον κώδικα του προγράμματός μας, θα εκτελούμε ακριβώς από κάτω την εντολή:
include("languages/".$lang_code."/language.php");


Από εκεί και πέρα, στα μηνύματα που εμφανίζουμε στον χρήστη, αντί πχ. για "Αναίρεση" θα γράψουμε:
<?=$language["Undo"]?>

Άρα αν επιλέξουμε στο config.php αντί για el-GR το en-GB, αντί για "Αναίρεση" θα εμφανιστεί "Undo". Όπως ακριβώς το δηλώσαμε στο αντίστοιχο αρχείο language.php!

Μια πιθανή βελτίωση, θα ήταν να δίνεται στον διαχειριστή επιλογή να ανιχνεύει τις εγκαταστημένες γλώσσες και να επιλέγει ποια θα χρησιμοποιείται, ή να επιλέγεται ξεχωριστή γλώσσα για κάθε χρήστη. Κάτι που θα δούμε αργότερα...

Comments

Popular Posts