C ++ ανάγνωση από .lang αρχεία με locales

ψήφοι
0

Είμαι δημιουργώντας ένα παιχνίδι OpenGL και θα ήθελα να το ανοίξετε σε περισσότερες γλώσσες από απλά αγγλικά για προφανείς λόγους. Από κοιτάζοντας γύρω και γύρω από τα κόλπα με τα παιχνίδια που είναι εγκατεστημένα στον υπολογιστή μου μπορώ να δω ότι περιοχές παίζουν μεγάλο ρόλο σε αυτό και ότι .lang αρχεία, όπως en-US.lang που διατίθεται στο εμπόριο με Minecraft, είναι βασικά έγγραφα κειμένου με μια γλώσσα κώδικα, « item.iron.ingot », για παράδειγμα, ένα σύμβολο ισότητας, και στη συνέχεια ό, τι αυτό σημαίνει για τη συγκεκριμένη γλώσσα, τα αγγλικά, σύμφωνα με en-US, οπότε σε αυτή την περίπτωση θα ήταν, «Iron χελωνών». Λοιπόν έχω δημιουργήσει ένα αρχείο που ονομάζεται en-US.langκαι αυτό είναι το περιεχόμενό της:

item.iron.ingot=Iron Ingot

Στην C ++ μου κύρια μέθοδος έβαλα:

setlocale(LC_ALL, en-US);

Μετά τη συμπερίληψη του αρχείο κεφαλίδας της τοπικής ρύθμισης. Έτσι υποθέτω ότι το μέρος που είμαι συγχέεται με είναι πώς να χρησιμοποιούν τις τοπικές ρυθμίσεις για να διαβάσετε από το αρχείο .lang; Παρακαλώ βοηθήστε ΑΑ και κάποια παράδειγμα κώδικα θα εκτιμηθεί.

Δημοσιεύθηκε 22/06/2014 στις 02:27
χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
1

C ++ δεν έρχεται με μια ενσωματωμένη υποστήριξη για τα αρχεία των πόρων / διεθνοποίησης. Ωστόσο, υπάρχει μια τεράστια ποικιλία λύσεων.

Για την υποστήριξη μηνύματα σε πολλές γλώσσες, θα πρέπει να έχετε κάποια βασική κατανόηση του πώς τέτοιες χορδές κωδικοποιούνται σε αρχεία και να διαβάσει στη μνήμη. Εδώ είναι μια βασική εισαγωγή, αν δεν είστε εξοικειωμένοι: « http://www.joelonsoftware.com/articles/Unicode.html »

Για να διατηρήσετε και να φορτώσετε το σωστό κείμενο κατά το χρόνο εκτέλεσης θα πρέπει να χρησιμοποιήσετε ένα τρίτο βιβλιοθήκη μέρος: GNU gettext http://www.gnu.org/software/gettext/ είναι ένα τέτοιο παράδειγμα. Ωστόσο, υπάρχουν και άλλες λύσεις εκεί έξω.

Απαντήθηκε 22/06/2014 στις 07:59
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more