Elxis CMS Forum

Ελληνικό Forum => Δημόσιο Βήμα => Topic started by: Dimitris Kanatas on April 14, 2015, 10:54:33

Title: Javascript γενικές ερωτήσεις
Post by: Dimitris Kanatas on April 14, 2015, 10:54:33
Χριστός Ανέστη,

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

Θέλω να κάνω έναν απλό μεταφραστή στο ελληνικό σύστημα Braille κι επέλεξα έναν απλό κώδικα js που κάνει αυτή τη δουλειά.

Τα ερωτήματα εστιάζονται σ` αυτό το κομμάτι του κώδικα

Code: [Select]
for (var i=0; i<message.length; i++)
    {
        myChar = message.charAt(i);
        if ((myChar>="α") && (myChar<="ω"))
        {       // a to z
            brailleArr.push(BrailleChar(myChar, myChar));
            prevCharNum = false;           
        } else if((myChar>="Α") && (myChar<="Ω"))
        {       // A to Z
            brailleArr.push(BrailleChar("cap", "Caps"));
            brailleArr.push(BrailleChar(myChar, myChar));           
            prevCharNum = false;         
        } else if((myChar>"0") && (myChar<="9"))
        {
            if (!prevCharNum)
                brailleArr.push(BrailleChar("num", "Number"));
            brailleArr.push(BrailleChar(String.fromCharCode(myChar.
                charCodeAt(0) + 48), myChar));
            prevCharNum = true;           

Τα ερωτήματα

1. Οι εικόνες γραφής Braile που αποδίδονται σε κάθε γράμμα πρέπει να έχουν ελληνικό γράμμα ως όνομα αρχείου. Δε ξέρω αν υπάρχει κάποιο πρόβλημα σ` αυτό.

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

Πηγή του κώδικα: Εδώ (http://www.codeproject.com/Articles/18244/See-your-name-in-Braille)

Σας ευχαριστώ!
Title: Re: Javascript γενικές ερωτήσεις
Post by: datahell on April 14, 2015, 14:09:45
Στα αρεία εικόνων καλύτερα να δώσεις λατινική ονομασία. Για το λόγω αυτό πρέπει να κάνεις ένα είδους translitaration (πχ αντικατάσταση "β" me "b" στον χαρακτήρα-ες που επεξεργάζεσε).

Μία ιδέα του πως να το πας:

//αφαίρεση τόνων
message = message.replace('ά', 'α');
message = message.replace('έ', 'ε');
message = message.replace('ή', 'η');
message = message.replace('ί', 'ι');
message = message.replace('ό', 'ο');
message = message.replace('ύ', 'υ');
message = message.replace('ώ', 'ω');
message = message.replace('Ά', 'Α');
message = message.replace('Έ', 'Ε');
message = message.replace('Ή', 'Η');
message = message.replace('Ί', 'Ι');
message = message.replace('Ό', 'Ο');
message = message.replace('Ύ', 'Υ');
message = message.replace('Ώ', 'Ω');

var difthogoi_small = new Array('αι', 'αυ', 'ει', 'ευ', 'οι', 'ου');
var difthogoi_caps = new Array('ΑΙ', 'ΑΥ', 'ΕΙ', 'ΕΥ', 'ΟΙ', 'ΟΥ'); //δεν ξέρω αν παίζουν σημασία τα μικρά/κεφαλαία στη γραφή braile. Αν όχι, αντικατέστησε όλους τους μικρούς με κεφαλαίους - ή αντίστροφα.
var mlength = message.length;
var myChar, nextChar, checkChar, nextidx;
var skipnext = false;

for (var i=0; i < message.length; i++) {
   if (skipnext === true) {
      skipnext = false;
      continue;
   }
   myChar = message.charAt(i);
   nextidx = i + 1;
   checkChar = myChar;
   if (nextidx < mlength) {
      nextchar = message.charAt(nextidx);
      checkChar = myChar+''+checkChar;
      if (difthogoi_small.indexOf(checkChar)) {
         skipnext = true;
      } else if (difthogoi_caps.indexOf(checkChar)) {
         skipnext = true;
      } else {
         checkChar = myChar;
         skipnext = false;
      }
   }
   //εδώ κάνεις την αντικατάσταση για τα περιεχόμενα (1 ή 2 χαρακτήρες) του checkChar
}
Title: Re: Javascript γενικές ερωτήσεις
Post by: Dimitris Kanatas on April 15, 2015, 09:50:23
Πάλι κάνεις μαγικά!!!

Δοκίμασα το πρώτο κομμάτι του κώδικα με τους τόνους... πάρα πολύ καλό!!!

Οι τόνοι δεν έχουν σημασία (αν και υπάρχει συνδυασμός). Άρα είτε α είτε ά  αποδίδονται στην ίδια εικόνα συνδυασμού, κάτι που ήδη το έκανες.

Στα κεφαλαία υπάρχει μια εικόνα με συνδυασμό "κεφαλίδα" που προηγείται από τις εικόνες με τους συνδυασμούς των γραμμάτων.

Αν και πειραματίστηκα αρκετά δε κατάφερα να τρέξω το σύνολο του κώδικα σωστά.

Δεν κατάφερα να τοποθετήσω σωστά το περιεχόμενο του checkChar στις "αλχημείες" που έκανα.
Title: Re: Javascript γενικές ερωτήσεις
Post by: datahell on April 15, 2015, 13:08:36
Δεν είναι τόσο απλό. Η "αντικατάσταση εδώ" που γράφω θέλει αρκετή δουλειά.
Σου απάντησα όμως σε αυτό που ρώτησες, πως να ξεχωρίσεις τους δίφθογγους ;D
Title: Re: Javascript γενικές ερωτήσεις
Post by: Dimitris Kanatas on April 15, 2015, 17:49:51
Κατάλαβα πως θέλει δουλίτσα και στην πράξη αφού δεν μπορούσα να το τρέξω σωστά με τίποτα!

Θέλει μελέτη! (http://www.freesmileys.org/smileys/smiley-gen015.gif)