Δευτέρα 23 Νοεμβρίου 2015

Χειρισμός κειμένων διαφορετικών γλωσσών (Μέρος Α)

Στο πρώτο μέρος θα δούμε την εμφάνιση ξένων γλωσσών εδώ τα Φινλανδικά. Θα μπορούσε κανείς να βάλει Φινλανδικό πληκτρολόγιο, ή απλά να αντιγράφει κείμενο από το διαδίκτυο. Αυτό επέλεξα και εγώ (αν και δεν πήρα άδεια).
Στον διορθωτή και στην οθόνη μπορούμε να δείχνουμε οποιονδήποτε χαρακτήρα, από το Unicode UTF16LE, αρκεί η γραμματοσειρά να έχει την γλώσσα που θέλουμε. Παλιά υπήρχαν μόνο αρχεία γραμματοσειρών ανά γλώσσα, ενώ σήμερα έχουν προστεθεί τα αρχεία Unicode γραμματοσειρών που περιέχουν πολλές γλώσσες. Εδώ πρέπει να κατανοήσει κανείς ότι το σύστημα βλέπει τα πάντα ως Unicode και κάνει τις ανάλογες μετατροπές όταν χρησιμοποεί παλιές γραμματοσειρές ή νέες που δεν υποστηρίζουν μια συγκεκριμένη γλώσσα. Έτσι αν δεν βρει το σύστημα (των windows) το κατάλληλο σύμβολο βγάζει τετράγωνο! Μπορούμε να ορίσουμε μια Unicode γραμματοσειρά όπως την Ms Comics με την εντολή Ρυθμίσεις ή με ctrl+U στη γραμμή εντολών.
Σε επόμενη ανάρτηση στο Β μέρος θα δούμε πως γράφουμε αρχεία στο δίσκο με διαφορετικές γλώσσες και διαφορετικό μέγεθος χαρακτήρα (με ένα ή περισσότερους απλούς χαρακτήρες)
Προς το παρόν ας γνωρίζουμε ότι τα αρχεία προγραμμάτων της Μ2000 σώνονται ως UTF-8 άρα διατηρούν οποιδήποτε γλώσσα ή σύμβολα βάλουμε.
Για ερωτήσεις επιπλέον δείτε εδώ

\******** Παράδειγμα με πληροφορίες από εδώ:
\* http://www.internetpolyglot.com/greek/lessons-el-fi
\******** Σκοπός του παραδείγματος είναι:
\* Να δείξει τη εμφάνιση διαφορετικών γλωσσών (εδώ Ελληνικά και Φινλανδικά)
\* Να δείξει τη χρήση της Αναφοράς στην εμφάνιση και πως κάνουμε απόκρυψη...
\* εμφανίζοντας το κείμενο με το χρώμα του φόντου!
\******** Επιπλέον βλέπουμε δυο τεχνικά θέματα:
\* Πώς ελέγχουμε την ανανέωση για να δημιουργήσουμε κείμενο που αναβοσβήνει!
\* Πώς ελέγχουμε την έξοδο με εντολές όπως Δείκτης, Ενκομ$ και Πατημένο()
\******** Σημειώσεις με \\ δίνουν τοπικά εξηγήγεις ή πληροφορίες
\******** Σημειώσεις με Σημ βάζω σε σκιασμένες εντολές,
\* μπορούν να ενεργοποιηθούν αν βγάλουμε το Σημ
\\ μόνο Για τη πρώτη παράγραφο βάζουμε μια εσοχή
Γενική Εσοχή_Παραγράφου$=Επαν$(" ",5) ' απλά φαίνεται ο αριθμός ενώ και αυτό "     " θα ήταν οκ
Τμήμα ΚαθάρισεΟθόνη {
      Οθόνη 5,0
      Πένα 14
      \\ ορίζω πλάτος 50 χαρακτήρων (μη αναλογικών) και ύψος 22 γραμμών κειμένου   
      Φόρμα 50,22
      Διπλά
      Πένα 10 { Αναφορά 2, "Διάλογοι στα Φινλανδικά" }
      Κανονικά
}
Τμήμα Δείξε_Διάλογο {
      Διαβασε Ξένο$, Ελληνικό$, μαζι
      Πένα 13 {
      \\ η παράγραφος θα στοιχηθεί αριστερά και δεξιά σε πλάτος
      \\ όσο μας αφήνει το πλατος της οθόνης μειον την θέση του δρομέα
      \\ μείον τέσσερις χαρακτήρες για το δεξιό περιθώριο
            Αναφορά Εσοχή_Παραγράφου$+Ξένο$, ΠΛΑΤΟΣ-ΘΕΣΗ-4
      }
      Αν μαζι Τότε {
            Πένα #77AAFF { Διαμέσου 100 }
      } Αλλιώς {
            Πένα 5 { Διαμέσου 100 }
      }
      εξοδος
100 Αναφορά Εσοχή_Παραγράφου$+Ελληνικό$, ΠΛΑΤΟΣ-ΘΕΣΗ-4
       Επιστροφή
}
\\ Πίσω από την Οθόνη υπάρχει ένα περιθώριο σε δικό του επίπεδο, με αρχικό χρώμα το μαύρο.
\\ Στέλνουμε μια εντολή καθαρισμού του περιθωρίου με το ίδιο χρώμα με την οθόνη
Περιθωριο {Οθόνη 5}
α$="On tärkeää olla hyvä ammatti nykypäivänä. Voitko olla ammattilainen ilman vieraan kielen osaamista? Tuskinpa!"
β$="Είναι πολύ σημαντικό να έχετε ένα καλό επάγγελμα σήμερα. Μπορείτε να είστε επαγγελματίας χωρίς γνώση των ξένων γλωσσών; Μετά βίας!"
\\ δίνουμε εσοχή Για κάθε παράγραφο στην Αναφορά
\\ το κκ λειτουργεί ως διακόπτης
\\ όταν είναι αληθής εμφανίζει την "λύση"
\\ το κκ~ κάνει αντιστροφή της τιμής
\\ είναι ισοδύναμο με το κκ = όχι κκ
\\ αλλά πιο γρήγορο!
κκ=αληθής
Ανανέωση 1000 \\ δοκιμάστε με 10 ή 100 ή 1000 και χωρίς το Ανανέωση παρακάτω
Κάθε 50 {
      ΚαθάρισεΟθόνη
      Για ν=1 Εως 3 {
            \\ η $() λειτουργική τοπικά στην Τύπωσε μέρος
            \\ Με το 7 βάζει το αλφαριθμητικό στοιχισμένο δεξία με αναλογική γραφή
            \\ Το πλάτος της στήλης πρόσκαιρα γίνεται 4 μη αναλογικοί χαρακτήρες
            Τύπωσε Μέρος $(7,4),ΜΟΡΦΗ$("{0})",ν),
            Δείξε_Διάλογο α$, β$, κκ
      }
      κκ~
      \\ για να βγούμε από την Κάθε  δοκιμάζουμε  το δείκτη τουποντικιού ή το πληκτρολόγιο
      \\ αυτές οι εντολές προκαλούν ανανέωση χωρίς να μηδενίσουν τον μετρητή!
      \\ αυτό συμβαίνει για να πάρουν τιμές και λέγεται επεξεργασία γεγονότων.
       αν δείκτης ή ενκομ$=" " τότε έξοδος
      \\ ενώ αυτές παρακάτω κανουν το ίδιο αλλά με άμεσα ερωτήματα.
      \\ Παρακάμπτουν την παρακολούθηση γεγονότων και βλέπουν
      \\ απευθείας αν κάποιο πλήκτρο είναι πατημένο
Σημ αν πατημένο(1) ή πατημενο(2) ή πατημένο(32) τότε έξοδος
      \\ Υποχρεωτικά εδώ θέλουμε το Ανανέωση
Ανανέωση 5000
}
Ανανέωση 50



Επιπλέον στο πρόγραμμα φαίνεται και μια χρήση της ΔΙΑΜΕΣΟΥ με κλήση ρουτίνας με αριθμό!
Στο χρωματισμένο κείμενο φαίνεται πιο ωραίο!


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.