Διεθνοποίηση στα έργα σας

ψήφοι
44

Πώς έχετε εφαρμόζονται Διεθνοποίηση (i18n) σε πραγματικό έργα που έχετε εργαστεί για;

Πήρα ένα ενδιαφέρον για την παραγωγή λογισμικού διαπολιτισμική μετά διάβασα το διάσημο μετά από τον Joel, ο κύριος του έργου απόλυτο ελάχιστο Κάθε λογισμικό απολύτως, θετικά πρέπει να ξέρετε για Unicode και σύνολα χαρακτήρων (δεν δικαιολογίες!) . Ωστόσο, έχω ακόμα να είναι σε θέση να επωφεληθούν από αυτό σε ένα πραγματικό έργο, εκτός από την πραγματοποίηση σίγουρος ότι χρησιμοποιούνται Unicode χορδές, όπου είναι δυνατόν. Αλλά κάνει όλα χορδές σας Unicode και την εξασφάλιση καταλαβαίνετε τι κωδικοποιεί όλα όσα συνεργαστεί με είναι είναι μόνο η κορυφή του παγόβουνου i18n.

Όλα όσα έχω εργαστεί στην μέχρι σήμερα για χρήση από ένα ελεγχόμενο σύνολο των ΗΠΑ αγγλόφωνα άτομα, ή i18n απλά δεν ήταν κάτι που είχε το χρόνο να εργαστεί για πριν από το πάτημα του έργου ζωντανή. Είμαι, λοιπόν, ψάχνει για τυχόν συμβουλές ή τις ιστορίες πόλεμο οι άνθρωποι έχουν για την παραγωγή λογισμικού πιο εντοπισμένο σε πραγματικά έργα κόσμο.

Δημοσιεύθηκε 04/08/2008 στις 01:08
πηγή χρήστη
Σε άλλες γλώσσες...                            


11 απαντήσεις

ψήφοι
48

Υπήρξε μια στιγμή, έτσι αυτό δεν είναι ολοκληρωμένη.

Σετ χαρακτήρων

Unicode είναι μεγάλη, αλλά δεν μπορείτε να πάρετε μακριά με αγνοώντας άλλα σύνολα χαρακτήρων. Η προεπιλογή χαρακτήρων για τα Windows XP (αγγλικά) είναι Cp1252. Στο διαδίκτυο, δεν ξέρετε τι ένα πρόγραμμα περιήγησης θα σας στείλει (αν και ελπίζουμε εμπορευματοκιβωτίων σας θα χειριστεί το μεγαλύτερο μέρος αυτής). Και μην εκπλαγείτε όταν υπάρχουν σφάλματα σε οποιαδήποτε εφαρμογή που χρησιμοποιείτε. Σύνολα χαρακτήρων μπορεί να έχουν ενδιαφέρουσες αλληλεπιδράσεις με ονόματα όταν κινούνται μεταξύ μηχανών.

Μεταγραφική Χορδές

Οι μεταφραστές είναι, σε γενικές γραμμές, δεν είναι προγραμματιστές. Αν στείλετε ένα αρχείο προέλευσης σε ένα μεταφραστή, θα το σπάσει. Χορδές πρέπει να εξαχθούν των πόρων αρχείων (π.χ. αρχεία ακίνητα σε Java ή DLL πόρων σε Visual C ++). Οι μεταφραστές θα πρέπει να δοθεί αρχεία που είναι δύσκολο να σπάσει και τα εργαλεία που δεν τους αφήσουμε να τα σπάσουν.

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

Ενώ για το θέμα της πλαίσιο, ενδέχεται να δείτε την ίδια σειρά «foo» των καλλιεργειών σε πολλές φορές και πιστεύω ότι θα ήταν πιο αποτελεσματικό να έχουν όλες τις εμφανίσεις στο σημείο UI με την ίδια πηγή. Αυτό είναι μια κακή ιδέα. Οι λέξεις μπορεί να είναι πολύ θεματική σε ορισμένες γλώσσες.

Μεταγραφική χορδές κοστίζει χρήματα. Αν αφήσετε μια νέα έκδοση ενός προϊόντος, είναι λογικό να ανακτήσει τις παλιές εκδόσεις. Έχουν τα εργαλεία για να ανακτήσει χορδές από παλιά αρχεία των πόρων σας.

String συνένωση και χειροκίνητο χειρισμό των χορδών θα πρέπει να ελαχιστοποιείται. Χρησιμοποιήστε τις λειτουργίες του μορφή ανάλογα με την περίπτωση.

Οι μεταφραστές πρέπει να είναι σε θέση να τροποποιήσει hotkeys. Ctrl+ PΕίναι εκτύπωσης στα αγγλικά? οι Γερμανοί χρησιμοποιούν Ctrl+ D.

Αν έχετε μια μεταφραστική διαδικασία που απαιτεί κάποιος να κόψει το χέρι και έγχορδα πάστα ανά πάσα στιγμή, που για μπελάδες.

Ημερομηνίες, Times, Ημερολόγια, Συναλλάγματος, μορφές αριθμών, Ζώνες ώρας

Αυτά όλα μπορούν να διαφέρουν από χώρα σε χώρα. Ένα κόμμα μπορεί να χρησιμοποιηθεί για να υποδηλώσει δεκαδικά ψηφία. Times μπορεί να είναι σε 24ωρη μορφή. Όχι ο καθένας χρησιμοποιεί το Γρηγοριανό ημερολόγιο. Θα πρέπει να είναι σαφείς, πάρα πολύ. Αν έχετε φροντίσει να εμφανιστεί ημερομηνίες ΜΜ / ΗΗ / ΕΕΕΕ για τις ΗΠΑ και ΗΗ / ΜΜ / ΕΕΕΕ για το Ηνωμένο Βασίλειο στην ιστοσελίδα σας, οι ημερομηνίες είναι ασαφείς, εκτός εάν ο χρήστης γνωρίζει έχετε κάνει.

ειδικά νομίσματος

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

Διεπαφές χρήστη

Διάταξη πρέπει να είναι δυναμική. Δεν είναι μόνο οι χορδές πιθανό να διπλασιαστεί σε μήκος σε μετάφραση, ολόκληρο το UI μπορεί να χρειαστεί να αναστραφεί (εβραϊκά? Αραβικά), έτσι ώστε οι έλεγχοι τρέχουν από δεξιά προς τα αριστερά. Και αυτό είναι πριν φτάσουμε στην Ασία.

Έλεγχο πριν από την μετάφραση

  • Χρησιμοποιήστε στατική ανάλυση των κωδικό σας για να εντοπίσετε προβλήματα. Στο ελάχιστο, αξιοποιούν τα εργαλεία ενσωματωμένο IDE σας. (Χρήστες Eclipse μπορεί να πάει στο Παράθυρο> Προτιμήσεις> Java> Compiler> Σφάλματα / Προειδοποιήσεις και ελέγξτε για μη εξωτερικούς χορδές.)
  • Ο καπνός δοκιμή με προσομοίωση της μετάφρασης. Δεν είναι δύσκολο να αναλύσει ένα αρχείο πόρων και να αντικαταστήσετε χορδές με μια ψευδο-μετάφραση που διπλασιάζει το μήκος και εισάγει funky χαρακτήρες. Δεν χρειάζεται να μιλούν μια γλώσσα για να χρησιμοποιήσετε ένα ξένο λειτουργικό σύστημα. Τα σύγχρονα συστήματα θα πρέπει να σας αφήσει να συνδεθείτε ως ξένη χρήστη με μεταφραστεί χορδές και ξένους τοπικής ρύθμισης. Αν είστε εξοικειωμένοι με το λειτουργικό σας σύστημα, μπορείτε να υπολογίσετε τι κάνει αυτό χωρίς να γνωρίζει ούτε μία λέξη από τη γλώσσα.
  • χάρτες Πληκτρολόγιο και σετ χαρακτήρων αναφορές είναι πολύ χρήσιμα.
  • Η εικονικοποίηση θα ήταν πολύ χρήσιμο εδώ.

Μη τεχνικά θέματα

Μερικές φορές πρέπει να είναι ευαίσθητη στις πολιτιστικές διαφορές (αδίκημα ή έλλειψη κατανόησης μπορεί να οδηγήσει). Ένα λάθος βλέπετε συχνά είναι η χρήση των σημαιών ως οπτική ένδειξη επιλογή μιας γλώσσας δικτυακό τόπο ή τη γεωγραφία. Αν δεν θέλετε το λογισμικό σας να δηλώνουν τις πλευρές στην παγκόσμια πολιτική, αυτό είναι μια κακή ιδέα. Αν ήταν Γάλλοι και προσφέρει τη δυνατότητα για τα αγγλικά με τη σημαία του Αγίου Γεωργίου (η σημαία της Αγγλίας είναι ένας κόκκινος σταυρός σε λευκό πεδίο), αυτό θα μπορούσε να οδηγήσει σε σύγχυση για πολλούς αγγλόφωνους - να αναλάβει παρόμοια προβλήματα θα προκύψουν με τις ξένες γλώσσες και χώρες . Εικόνες πρέπει να υποβληθεί σε έλεγχο για την πολιτιστική συνάφεια. Τι κάνει μια αντίχειρας-επάνω ή ένα πράσινο tick σημαίνει; Γλώσσα πρέπει να είναι σχετικά ουδέτερη - αντιμετώπιση χρήστες σε ένα συγκεκριμένο τρόπο μπορεί να είναι αποδεκτή σε μία περιφέρεια, αλλά θεωρείται αγενής σε ένα άλλο.

Πόροι

C ++ και Java προγραμματιστές μπορούν να βρουν στην ιστοσελίδα της ΜΕΘ χρήσιμο: http://www.icu-project.org/

Απαντήθηκε 04/08/2008 στις 18:58
πηγή χρήστη

ψήφοι
15

Μερικά διασκεδαστικά πράγματα:

  1. Έχοντας ένα PHP και MySQL Εφαρμογή που λειτουργεί καλά με τα γερμανικά και τα γαλλικά, αλλά τώρα πρέπει να υποστηρίξει ρωσικά και κινέζικα. Νομίζω ότι μπορώ να μεταφέρω αυτό πάνω σε .net, όπως υποστήριξη Unicode PHP είναι - κατά τη γνώμη μου - δεν είναι πραγματικά καλό. Σίγουρα, juggling περίπου με utf8_de / κωδικοποιούν ή τις mbstring-λειτουργίες είναι διασκέδαση. Σχεδόν τόσο διασκεδαστικό όσο έχει Φρέντυ Κρούγκερ μπορείτε να επισκεφθείτε το βράδυ ...

  2. Συνειδητοποιώντας ότι ορισμένες γλώσσες είναι πολύ πιο λεπτομερούς από τους άλλους. Γερμανικά είναι πολύ πιο λεπτομερές από τα αγγλικά συνήθως, και βλέποντας πως η γερμανική έκδοση καταστρέφει το περιβάλλον εργασίας χρήστη, επειδή πολύ λίγο χώρο διατέθηκαν δεν ήταν διασκεδαστικό. Ορισμένα προϊόντα αποκτήσει κάποια φήμη για δημιουργικούς τρόπους τους να εργαστούν γύρω από αυτό, με το Oblivion του «Schw.Tr.d.Le.En.W.» είναι αξέχαστη :-)

  3. Παίζοντας γύρω με μορφές ημερομηνίας, Woohoo! Ναι, υπάρχουν πραγματικά άνθρωποι στον κόσμο που χρησιμοποιούν μορφές ημερομηνίας, όπου η ημέρα πηγαίνει στη μέση. Sooooo πολύ διασκεδαστικό προσπαθεί να ανακαλύψει τι 07/02/2008 υποτίθεται ότι σημαίνει, μόνο και μόνο επειδή κάποιοι χρήστες μπορεί να πιστέψει ότι θα μπορούσε να είναι 2 Ιουλίου ... Αλλά και πάλι, εσείς πάνω από τη λίμνη μπορεί να πιστεύουν το ίδιο και για τους χρήστες που βάζουν το μήνα στη μέση :-P, κυρίως επειδή στα αγγλικά 2 Ιουλίου ακούγεται πολύ καλύτερα από ό, τι 2η Ιουλίου, κάτι που δεν ισχύει neccessarily σε άλλες γλώσσες (δηλαδή στα γερμανικά, ποτέ δεν θα πω Juli 2 αλλά πάντα Zweiter Juli). Χρησιμοποιώ 2008-02-07 όποτε είναι δυνατόν. Είναι σαφές ότι αυτό σημαίνει 7 του Φλεβάρη και ταξινομεί σωστά, αλλά ηη / μμ έναντι ηη / μμ μπορεί να είναι ένα πολύ δύσκολο πρόβλημα.

  4. Anoter διασκεδαστικό πράγμα, μορφές Αριθμός ! 10.000,50 vs 10,000.50 έναντι 10 000,50 έναντι 10'000,50 ... Αυτή είναι μεγαλύτερος εφιάλτης μου αυτή τη στιγμή, χρειάζεται να στηρίξει μια πολυ-πολιτισμική environent, αλλά δεν έχει κανένα τρόπο να γνωρίζουμε αξιόπιστα ποια μορφή αριθμού που ο χρήστης θα χρησιμοποιήσω.

  5. Επίσημη ή ανεπίσημη. Σε κάποια γλώσσα, υπάρχουν δύο τρόποι για την αντιμετώπιση τους ανθρώπους, ένα επίσημο τρόπο και ένα πιο ανεπίσημο τρόπο. Στην αγγλική γλώσσα, μπορείτε απλώς να πω «You», αλλά στα γερμανικά θα πρέπει να αποφασίσει μεταξύ της τυπικής «Sie» και της άτυπης «Du», το ίδιο για τους Γάλλους Tu / Vous. Είναι συνήθως ένα ασφαλές στοίχημα για να επιλέξετε το επίσημο τρόπο, αλλά αυτό είναι εύκολο να αγνοηθεί.

  6. Ημερολόγια. Στην Ευρώπη, η πρώτη ημέρα της εβδομάδας είναι η Δευτέρα, ενώ στις ΗΠΑ είναι Κυριακή. Ημερολόγιο Widgets είναι ωραία. Εμφάνιση ενός ημερολογίου με την Κυριακή για την αριστερά και το Σάββατο για το δικαίωμα σε μια ευρωπαϊκή χρήστης δεν είναι τόσο ωραίο, τους μπερδεύει.

Απαντήθηκε 04/08/2008 στις 01:35
πηγή χρήστη

ψήφοι
8

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

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

Ένα άλλο σημείωμα, πολύ αυστηρά αποφύγετε τη συνένωση ορατή χορδές άμεσα, όπως

String message = "The " + item + " is on sale!";

Αντ 'αυτού, θα πρέπει να χρησιμοποιήσετε κάτι σαν

String message = String.Format("The {0} is on sale!", item);

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

Απαντήθηκε 04/08/2008 στις 01:23
πηγή χρήστη

ψήφοι
5

Εγώ απλά ακούτε ένα podcast από τον Scott Hanselman σήμερα το πρωί, όπου μιλά για τη διεθνοποίηση, ιδιαίτερα τα πολύ δύσκολα τα πράγματα, όπως η Τουρκική (με το είναι τέσσερις i) και Ταϊλάνδης. Επίσης, ο Jeff Atwood είχε μια ανάρτηση :

Απαντήθηκε 04/08/2008 στις 16:04
πηγή χρήστη

ψήφοι
3

Εκτός από όλα τα παραπάνω συμβουλές, να θυμάστε ότι i18n δεν είναι μόνο σχετικά με την αλλαγή λόγια για τους ομολόγους τους σε άλλες γλώσσες, ειδικά για τους μη λατινογενείς γλώσσες αλφάβητα (κορεάτικα, αραβικά), που γράφονται από δεξιά προς τα αριστερά, έτσι ώστε η όλη UI θα πρέπει να συμμορφώνονται, όπως

  • στοιχείο 1
  • σημείο 2
  • σημείο 3

θα πρέπει να είναι

αραβικό κείμενο 1 -

αραβικό κείμενο 2 -

αραβικό κείμενο 3 -

(Αντιστραφεί λίστα σφαίρα δεν φαίνεται να εργαστούν: P)

η οποία μπορεί να είναι μια UI εφιάλτης αν το σύστημά σας έχει να εφαρμόσετε τις αλλαγές dinamically όταν ο χρήστης αλλάζει η γλώσσα που χρησιμοποιείται.

Ένα άλλο πολύ δύσκολο πράγμα είναι να δοκιμάσετε διαφορετικές γλώσσες, όχι μόνο για την ορθότητα της λέξης, αλλά από γλώσσες όπως η Κορέα έχουν συνήθως μεγαλύτερη γραμματοσειρά για τους χαρακτήρες τους, αυτό μπορεί να οδηγήσει σε συγκεκριμένη γλώσσα σφάλματα (όπως το «SAVE» κείμενο σε ένα κουμπί είναι μεγαλύτερο από ό, τι το ίδιο το κουμπί για κάποια γλώσσα).

Απαντήθηκε 22/09/2008 στις 00:44
πηγή χρήστη

ψήφοι
2

Ένα από τα πιο αστείο πράγματα για να ανακαλύψετε: πλάγια και έντονα makrup κείμενο δεν λειτουργεί με CJK (Κινέζικα / Ιαπωνικά / κορεατικά) χαρακτήρες. Έχουν γίνει απλά δυσανάγνωστο. (Εντάξει, δεν θα μπορούσα να τα διαβάσετε πραγματικά πριν είτε, αλλά κυρίως εκ γενετής δημιουργεί μόνο κηλίδες μελανιού)

Απαντήθηκε 14/10/2008 στις 13:39
πηγή χρήστη

ψήφοι
1

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

Απαντήθηκε 27/12/2008 στις 07:48
πηγή χρήστη

ψήφοι
1

Προτείνω να χρησιμοποιήσετε κάτι σαν 99translations.com να διατηρήσει τις μεταφράσεις σας. Διαφορετικά δεν θα είστε σε θέση να πει ποια από τις μεταφράσεις σας είναι ενημερωμένα σε κάθε γλώσσα.

Απαντήθηκε 27/12/2008 στις 05:05
πηγή χρήστη

ψήφοι
1

Νομίζω ότι όλοι όσοι εργάζονται σε διεθνοποίησης θα πρέπει να είναι εξοικειωμένοι με το κοινό της τοπικής ρύθμισης Data Repository, το οποίο είναι πλέον ένα υπο-έργο του Unicode:

Κοινή Repository Τοπικές Δεδομένων

Αυτοί οι άνθρωποι που εργάζονται σκληρά για να δημιουργήσει ένα πρότυπο πηγή για όλα τα είδη των θεμάτων i18n: νόμισμα, γεωγραφικές ονομασίες, τους τόνους της ουσίας. Κάθε έργο που είναι διατήρηση της δικής πυρήνα των τοπικών δεδομένων, δεδομένου ότι υπάρχει αυτό το έργο είναι αρκετά τρελός, IMHO.

Απαντήθηκε 18/09/2008 στις 20:25
πηγή χρήστη

ψήφοι
0

Ένα πράγμα που κανείς δεν έχει αναφερθεί ακόμα είναι χορδές με κάποιο μέρος warying όπως το «Η μονάδα θα έρχεστε σε 5 ημέρες» ή «Τη Δευτέρα κάτι συμβαίνει.» όπου 5 και τη Δευτέρα θα αλλάξει ανάλογα με την κατάσταση. Δεν είναι μια καλή ιδέα να χωρίσει εκείνα στα δύο και ενώσετε τους. Με μόνο ένα διαφορετικό μέρος και καλή τεκμηρίωση μπορεί να ξεφύγει με αυτό, με δύο διαφορετικές μέρη θα υπάρχει κάποια γλώσσα που preferes για να αλλάξετε τη σειρά τους.

Απαντήθηκε 07/10/2008 στις 11:56
πηγή χρήστη

ψήφοι
0

Μια ιστοσελίδα που χρησιμοποιούν έχει μια μέθοδο μετάφραση ο ιδιοκτήτης αποκαλεί «wiki + μηχανική μετάφραση». Αυτό είναι ένα site που βασίζεται κοινότητα, έτσι είναι προφανώς διαφορετικές στις ανάγκες των εταιρειών.

http://blog.bookmooch.com/2007/09/23/how-bookmooch-does-its-translations/

Απαντήθηκε 10/09/2008 στις 16:12
πηγή χρήστη

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