
Είμαι δημιουργώντας ένα παιχνίδι 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; Παρακαλώ βοηθήστε ΑΑ και κάποια παράδειγμα κώδικα θα εκτιμηθεί.

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



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


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


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

 