Je vais traiter avec un flux qui me donne des codes de pays à deux lettres conformes à la norme ISO 3166-1 alpha-2. Ainsi, par exemple, le Royaume-Uni a le code GB. Ma question est, est-il un moyen de revenir facilement "Royaume-Uni" en fournissant "GB" comme entrée dans une classe ou une fonction .NET? En d'autres termes, cette traduction est-elle fournie par .NET quelque part?ISO 3166-1 alpha-2 à la traduction du nom de pays .NET
Répondre
Type de. .NET utilise des "cultures", qui peuvent être identifiées de manière unique par une combinaison de langage (utilisant des identifiants à deux lettres ISO 639) et de région (utilisant ISO 3166). Donc, si vous connaissez la langue et la région, vous pouvez obtenir un nom descriptif:
var cultureInfo = new CultureInfo("en-gb");
var cultureName = cultureInfo.EnglishName; //"English (Great Britain)"
//your answer is now the text between the parentheses
var countryName = cultureName.Split('(',')')[1];
Comprendre que, dans ces cultures, la région est secondaire à la langue; il y a une culture pour toutes les langues supportées par ce système, mais pas nécessairement pour tous les pays utilisant cette langue. Cela signifie deux choses; d'abord, vous devez connaître la langue (par exemple, la Suisse et la Belgique ont deux langues officielles, l'allemand et le français, et l'Inde et les Pays-Bas en ont 4), et un code ISO peut ne pas exister dans la liste de culture pour la langue que vous attendez, si la combinaison de langue et de région utilise des symboles et des notations assez proches d'une autre culture plus connue qu'il n'est pas nécessaire de différencier (il n'y a par exemple pas de culture "en-CA" pour l'anglais - parlant le Canada parce qu'il serait identique à «en-US», il y a cependant un «fr-CA» parce que la culture francophone du Canada est très différente de la plupart des autres régions francophones).
L'autre solution ne serait pas intégrée en tant que telle, mais ne serait pas très difficile; trouver ou vous faire une liste des codes ISO et le nom complet du pays dans les deux tabulations format délimité ou délimité par des virgules, et slurp le fichier dans un Dictionary<string, string>
pour traduire en temps constant:
var isoDict = new Dictionary<string, string>();
using(var stream = File.Open("isoCodes.csv"))
{
using(var reader = new TextReader(stream))
{
string currentLine;
do
{
currentLine = reader.ReadLine();
if(currentLine == null) break;
//assumes no headers, no format/data errors and
//a line format of "cc, Country Name\n";
//ALWAYS "trust but verify" that the data is sane
var parts = currentLine.Split(',');
isoDict.Add(parts[0].Trim(), parts[1].Trim());
} while(currentLine != null);
}
}
- 1. Nom du pays ISO 3166-1 code alpha 2
- 2. Comment obtenir le code de pays ISO à partir du nom de pays dans XSLT 2.0
- 3. Nom du pays au code ISO 3166-2
- 4. Android Obtenir le code ISO du pays
- 5. pays Android ISO
- 6. Obtenir le nom du pays à partir du code pays .net
- 7. ISO Pays/Données de devise
- 8. Obtenir le nom de pays du pays:
- 9. Obtenir le code chaîne du pays Nom du pays entier
- 10. Sitecore pays ISO en url
- 11. ISO 3166-1 à woeid
- 12. Obtenir la latitude/coordonnées coords quand j'ai le nom du pays/ISO avec Android
- 13. Obtention de la devise du pays à partir du nom du pays Android
- 14. Nom du pays de php
- 15. codes Pays/région (iso-3166-1/iso-3166-2) à la longitude et la latitude
- 16. obtenir le code de pays iso
- 17. Date de traduction Android en fonction du pays
- 18. comment obtenir le préfixe téléphonique pays iso
- 19. Mapper le code du pays au nom du pays php
- 20. pays ISO 3166 non pris en charge?
- 21. Android code pays ISO et les attributs du drapeau
- 22. Android Locale Nom du pays au code du pays
- 23. Traduction phps "setrawcookie()" à .NET
- 24. convertir les noms de pays traduits en alpha2 avec pycountry et gettext
- 25. NSLocale au nom du pays
- 26. Coordonnées/Région du pays Nom
- 27. soumettre le pays par le code ISO - html formulaire
- 28. Traduction du nom du lien html
- 29. Nom du pays de retour d'un ville?
- 30. Comment obtenir le code numérique de tous les pays ISO 3166-1 en C#
Une version JSON du fichier csv dans votre exemple est disponible à http://country.io/names.json –