{"_id":"@benitob/i18n-nationality","name":"@benitob/i18n-nationality","dist-tags":{"latest":"1.4.1"},"versions":{"1.4.1":{"name":"@benitob/i18n-nationality","version":"1.4.1","description":"i18n for nationality","typings":"index.d.ts","keywords":["i18n","alpha","alpha-2","alpha-3","numeric","nationality","nationalities"],"author":{"name":"Benito Barreiro","email":"benitobarreiro89@gmail.com"},"contributors":[{"name":"Benito Barreiro","email":"benitobarreiro89@gmail.com"},{"name":"Original autor: Mike Goebel","email":"mike@mg-develop.de"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Benito-B/i18n-nationality.git"},"dependencies":{"@types/diacritics":"^1.3.1","diacritics":"^1.3.0"},"devDependencies":{"assert-plus":"1.0.0","mocha":"^10.0.0","jshint":"^2.13.5","madge":"5.0.1","nyc":"^15.1.0"},"main":"entry-node","browser":"index","engines":{"node":">= 6"},"scripts":{"test":"make test"},"bugs":{"url":"https://github.com/Benito-B/i18n-nationality/issues"},"_id":"@benitob/i18n-nationality@1.4.1","gitHead":"1ef080c82e2700f01d1d7438f87138f88ba22448","homepage":"https://github.com/Benito-B/i18n-nationality#readme","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-E7o/e+3KtIKA3Pw/K0mCLWLYE37Ns1rIRAduK7l4ATqgh53wenCT221FHseIGJwdY5lRs2mHPPozERx+C3Yn9w==","shasum":"27049cae8d69013fc7b5f2c9faade922c9911485","tarball":"https://registry.npmjs.org/@benitob/i18n-nationality/-/i18n-nationality-1.4.1.tgz","fileCount":23,"unpackedSize":122698,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmzdq0kFzqvRXKKE8iLu3C7RrmFnV+rj9PNmTlwbPPuwIhAKhjtR60qVN0xH0wcCr9VSYXTtYqTc1EeagdLGfIU9mX"}]},"_npmUser":{"name":"benitob","email":"benitobarreiro89@gmail.com"},"directories":{},"maintainers":[{"name":"benitob","email":"benitobarreiro89@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n-nationality_1.4.1_1748810802967_0.021628428970794866"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-01T20:46:42.844Z","1.4.1":"2025-06-01T20:46:43.195Z","modified":"2025-06-01T20:46:43.511Z"},"maintainers":[{"name":"benitob","email":"benitobarreiro89@gmail.com"}],"description":"i18n for nationality","homepage":"https://github.com/Benito-B/i18n-nationality#readme","keywords":["i18n","alpha","alpha-2","alpha-3","numeric","nationality","nationalities"],"repository":{"type":"git","url":"git+https://github.com/Benito-B/i18n-nationality.git"},"contributors":[{"name":"Benito Barreiro","email":"benitobarreiro89@gmail.com"},{"name":"Original autor: Mike Goebel","email":"mike@mg-develop.de"}],"author":{"name":"Benito Barreiro","email":"benitobarreiro89@gmail.com"},"bugs":{"url":"https://github.com/Benito-B/i18n-nationality/issues"},"license":"MIT","readme":"[![CircleCI](https://circleci.com/gh/sourcecode911/i18n-nationality/tree/master.svg?style=svg)](https://circleci.com/gh/sourcecode911/i18n-nationality/tree/master)\r\n[![npm version](https://badge.fury.io/js/i18n-nationality.svg)](https://badge.fury.io/js/i18n-nationality)\r\n[![Known Vulnerabilities](https://snyk.io//test/github/sourcecode911/i18n-nationality/badge.svg?targetFile=package.json)](https://snyk.io//test/github/sourcecode911/i18n-nationality?targetFile=package.json)\r\n[![GitHub issues](https://img.shields.io/github/issues/sourcecode911/i18n-nationality)](https://github.com/sourcecode911/i18n-nationality/issues)\r\n[![License](https://img.shields.io/github/license/sourcecode911/i18n-nationality)](https://github.com/sourcecode911/i18n-nationality/LICENSE)\r\n\r\n# @benitob/i18n-nationality\r\n\r\nNationalities as adjectives mapped to Country codes. This repository is heavily based on the i18n-iso-countries repository by michaelwittig.\r\n<https://github.com/michaelwittig/node-i18n-iso-countries>\r\n\r\ni18n for nationalities of ISO 3166-1 country codes. We support Alpha-2, Alpha-3 and Numeric codes from <http://en.wikipedia.org/wiki/ISO_3166-1#Officially_assigned_code_elements>\r\n\r\n## Installing\r\n\r\nInstall it using npm: `npm install @benitob/i18n-nationality`\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n```\r\n\r\nIf you use `@benitob/i18n-nationality` with Node.js your are done. If you use the package in a browser environment you also have to register the languages you want to use to minimize file size.\r\n\r\n```javascript\r\n// Support german & english languages.\r\nnationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nnationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/de.json\"));\r\n```\r\n\r\n## Code to Nationality\r\n\r\n### Get the name of a nationality by its ISO 3166-1 Alpha-2, Alpha-3 or Numeric code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: countries.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"US (Alpha-2) => \" + nationalities.getName(\"US\", \"en\")); // American\r\nconsole.log(\"US (Alpha-2) => \" + nationalities.getName(\"US\", \"de\")); // Amerikanisch\r\nconsole.log(\"USA (Alpha-3) => \" + nationalities.getName(\"USA\", \"en\")); // American\r\nconsole.log(\"USA (Numeric) => \" + nationalities.getName(\"840\", \"en\")); // American\r\n```\r\n\r\n### Get all names by their ISO 3166-1 Alpha-2 code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.getNames(\"en\")); // { 'AF': 'Afghan', 'AL': 'Albanian', [...], 'ZM': 'Zambian', 'ZW': 'Zimbabwean' }\r\n```\r\n\r\n### Supported languages (ISO 639-1)\r\n\r\n-   `de`: German\r\n-   `en`: English\r\n-   `fr`: French\r\n-   `no`: Norwegian\r\n-   `it`: Italian\r\n-   `fi`: Finnish\r\n-   `nl`: Dutch\r\n-   `es`: Spanish\r\n-   `pl`: Polish (chatgpt generated)\r\n-   `cs`: Czech (chatgpt generated)\r\n\r\n[List of ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)\r\n\r\n### Nationality to Code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"American => \" + nationalities.getAlpha2Code('American', 'en'));\r\n// American => US\r\n\r\nconsole.log(\"American => \" + nationalities.getAlpha3Code('American', 'en'));\r\n// American => USA\r\n```\r\n\r\n## Codes\r\n\r\n### Convert Alpha-3 to Alpha-2 code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"USA (Alpha-3) => \" + nationalities.alpha3ToAlpha2(\"USA\") + \" (Alpha-2)\");\r\n// USA (Alpha-3) => US (Alpha-2)\r\n```\r\n\r\n### Convert Numeric to Alpha-2 code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"840 (Numeric) => \" + nationalities.numericToAlpha2(\"840\") + \" (Alpha-2)\");\r\n// 840 (Numeric) => US (Alpha-2)\r\n```\r\n\r\n### Convert Alpha-2 to Alpha-3 code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"DE (Alpha-2) => \" + nationalities.alpha2ToAlpha3(\"DE\") + \" (Alpha-3)\");\r\n// DE (Alpha-2) => DEU (Alpha-3)\r\n```\r\n\r\n### Convert Numeric to Alpha-3 code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(\"840 (Numeric) => \" + nationalities.numericToAlpha3(\"840\") + \" (Alpha-3)\");\r\n// 840 (Numeric) => USA (Alpha-3)\r\n```\r\n\r\n### Convert Alpha-3 to Numeric code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.alpha3ToNumeric(\"SWE\"));\r\n// 752\r\n```\r\n\r\n### Convert Alpha-2 to Numeric code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.alpha2ToNumeric(\"SE\"));\r\n// 752\r\n```\r\n\r\n### Get all Alpha-2 codes\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.getAlpha2Codes());\r\n// { 'AF': 'AFG', 'AX': 'ALA', [...], 'ZM': 'ZMB', 'ZW': 'ZWE' }\r\n```\r\n\r\n### Get all Alpha-3 codes\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.getAlpha3Codes());\r\n// { 'AFG': 'AF', 'ALA': 'AX', [...], 'ZMB': 'ZM', 'ZWE': 'ZW' }\r\n```\r\n\r\n### Get all Numeric codes\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.getNumericCodes());\r\n// { '004': 'AF', '008': 'AL', [...], '887': 'YE', '894': 'ZM' }\r\n```\r\n\r\n### Validate country code\r\n\r\n```javascript\r\nvar nationalities = require(\"@benitob/i18n-nationality\");\r\n// in a browser environment: nationalities.registerLocale(require(\"@benitob/i18n-nationality/langs/en.json\"));\r\nconsole.log(nationalities.isValid(\"US\"), nationalities.isValid(\"USA\"), nationalities.isValid(\"XX\")));\r\n// true, true, false\r\n```\r\n\r\n## Contribution\r\n\r\nTo add a language:\r\n\r\n-   add a json file under langs/\r\n-   add the language to the `data` object in entry-node.js at the top\r\n-   add language to section **Supported languages** in README.md\r\n-   run `npm install && make test` to make sure that tests are passing\r\n-   open a PR on GitHub\r\n\r\nYou can check codes here: https://www.iso.org/obp/ui/#home\r\n","readmeFilename":"README.md","_rev":"1-d01218ac7acf0735fc8ab750688f6ec4"}