Je recherche une liste de tous les paramètres régionaux et de leurs codes courts pour une application PHP que j'écris. Y a-t-il beaucoup de variation dans ces données entre les plates-formes?
De plus, si je développe une application internationale, puis-je prendre en charge une seule version de l'anglais ou y a-t-il des différences importantes en anglais à travers le monde?
php
internationalization
locale
Kirk Ouimet
la source
la source
en
utilisation sonten_US
eten_GB
, les principales différences étant que ce dernier utilise généralement à laise
place des premièresize
, et l'orthographe française originale de mots commemetre
, au lieu demeter
, et n'utilise pas de contractions phonétiques, en utilisant à lasulphur
place desulphur
.en_GB
couvrira généralement les conventions d'orthographe utilisées dans les anciennes colonies qui n'ont pas été culturellement dominées par les États-Unis, commeen_AU
eten_NZ
. Voir tysto.com/uk-us-spelling-list.html .en_US
tant queen
lieu unique n'érodera pas trop de plumes.Réponses:
L'importance des paramètres régionaux est que votre environnement / système d'exploitation peut fournir des fonctionnalités de formatage pour tous les paramètres régionaux installés même si vous ne les connaissez pas lorsque vous écrivez votre application. Mon système Windows 7 a 211 locales installées (répertoriées ci-dessous), donc vous n'écririez probablement pas de code personnalisé ou de traduction spécifique à ce nombre de locales.
La chose la plus importante pour les différentes versions de l'anglais est la mise en forme des nombres et des dates. D'autres différences sont significatives dans la mesure où vous le souhaitez et capable de répondre à des variations spécifiques.
la source
MessageFormatter::formatMessage
, ou son uniquemsgfmt_format_message
, comme dansmsgfmt_format_message('ar-ye', '{0,date,medium}', array('2017-01-27))
, qui produira٢٧/٠١/٢٠١٧
. Parfois, lorsque vous utilisez des valeurs stockées en UTC, il est probablement préférable d'utiliser laIntlDateFormatter
classe, car vous pouvez mettre un fuseau horaire pour afficher l'heure locale dans la langue.en-029
c'est, c'estEnglish (Caribbean)
: stackoverflow.com/questions/7192410/…La réponse acceptée manque des paramètres régionaux assez importants. Par exemple, les paramètres régionaux chinois ne font pas de distinction entre les différentes écritures (han simplifié, han traditionnel). Qu'est-ce qu'un citoyen chinois de la terre ferme qui veut utiliser le han traditionnel - le cadre de Hong Kong?
J'ai pris cette liste de paramètres régionaux iOS , supprimé l'étrange entrée POSIX, formatée en Javascript et triée par valeur (donc si vous utilisez une implémentation d'objet ordonnée et créez une liste en parcourant les clés et en retournant la valeur, elle montrer le texte lisible par l'homme dans le bon ordre). En outre, cette liste contient à la fois une entrée principale par langue ainsi que toutes les variantes spécifiques à la région - de cette façon, vous avez toujours une option de remplacement désignée, par exemple si votre interface n'a défini que l'option `` en '' - vous ne le sauriez pas autrement sur sur quoi s'appuyer de manière fiable.
la source
zh-hans-hk
etzh-hant-hk
. L'intl
ensemble d'objets PHP tolérera la spécification de paramètres régionaux en minuscules et en tirets, ainsi que l'acceptation deslang_COUNTRY
styles.intl
classes pour tous vos efforts, y compris les fuseaux horaires et les paramètres régionaux, car ils sont construits sur la base de données CLDR et mis à jour avec chaque version de PHP. Les autres fonctions PHP peuvent être construites sur des ensembles de données isolés qui n'ont pas l'effort de synchronisation qui est allé dans l'ensemble de données CLDR complet, de sorte que certaines de ces autres fonctions peuvent donner des écarts par rapport à celles du CLDR, d'autant plus que les efforts internationaux normalisent davantage sur CLDR . Vous devrez peut-être utiliser certaines de ces autres fonctions comme solution de rechange si vous utilisez la version antérieure à 5.6.intl
classes, est qu'il servira vos pages en deux fois moins de temps.Bien que la réponse acceptée soit assez complète (je me suis utilisée dans une question similaire qui m'est venue à l'esprit), je pense qu'il vaut la peine de mettre tous les codes et variations de langue pris en charge, ainsi que les encodages, et de diriger l'utilisateur vers un fichier qui est présent dans presque toutes les distributions Linux, au cas où il voudrait simplement une réponse plus rapide et pas d'Internet par exemple.
Voici le fichier
/usr/share/i18n/SUPPORTED
et son contenu:la source
Depuis http://www.w3.org/International/articles/language-tags/
AFAIK la plupart des applications locales (qui sont écrites par des professionnels) respectent cette norme. Ce n'est pas seulement quelque chose que quelqu'un a mis ensemble et que différentes personnes interprètent différemment.
Je vous suggère fortement d'étudier les fonctionnalités d'internationalisation de votre langage de développement particulier, car vous finirez probablement par réinventer la roue si vous ne le faites pas.
la source
Si vous utilisez php-intl pour localiser votre application, vous souhaiterez probablement utiliser ResourceBundle :: getLocales () au lieu de la liste statique que vous gérez vous-même. Il peut également vous donner des paramètres régionaux pour une langue particulière.
la source
Voici une liste assez exhaustive des codes culturels . Pour autant que je sache, ils ne varient pas entre les langages de programmation car c'est une norme RFC. En ce qui concerne l'anglais, je pense que si vous soutenez le générique
en
ou peut-êtreen-US
alors vous devriez être très bien.la source
en-US
. Juste une réalité. Il suffit de voir comment la plupart des sites de journaux en ligne du monde entier utilisent des citations de style américain, même lorsqu'ils ciblent un public local, simplement en raison de l'inondation culturelle par du matériel d'origine américaine qui a remplacé tout ce qui aurait pu être dans le guide de style officiel d'un pays. Le public a évolué, malgré ce que beaucoup d'entre nous peuvent utiliser pour nos préférences personnelles.Liste des langues
Liste de toutes les langues avec noms et codes ISO 639-1 dans toutes les langues et tous les formats de données.
Formats disponibles
https://github.com/umpirsky/language-list
la source
en_IE
se comporte différemment deen_US
plusieurs aspects (monnaie, mesures, orthographe, etc.).