الگو:ISO 3166 code Slovenia Šmartno ob Paki
SI-125
Usage
This الگو relates to a series of templates resolves the country and subdivision names to ایزو ۳۱۶۶-۱ and ISO 3166-2 codes, and vice versa.
ISO 3166
ISO 3166 defines names, two and three letter codes and code numbers for all countries and six character codes (the two letter country code followed by a dash and a two or three character subdivision code) for all top level subdivisions.
Using the family of templates
We wish to convert between various identifiers that may loosely be defined as user input and ISO 3166 entities, there may be more than one way to do each conversion. For our examples we use پاکستان as the country and ایالت بلوچستان پاکستان as the subdivision.
The ISO-3166 identifiers for Pakistan are:
- Name: Pakistan
- Alpha-2 code:PK
- Alpha-3 code:PAK
- Numeric code:586
The ISO-3166 identifiers for Balochistan (Pakistan) is:
- Subdivision code:PK-BK
Now Pakistan also has a number of synonyms: for example پاکستان and پاکستان.
Similarly Baluchistan is known, for example as بلوچستان (on Wikipedia) and ایالت بلوچستان پاکستان .
- To get the Alpha-2 code we can use
{{ISO 3166 code}}
with any of the country identifiers ,or use the identifier as a part of the template name (faster).
{{ISO 3166 code|Pakistan}}
{{ISO 3166 code|PK}}
PK{{ISO 3166 code|PAK}}
PK{{ISO 3166 code|586}}
PK{{ISO 3166 code|Pakistán}}
{{ISO 3166 code|پاکستان}}
PK
{{ISO 3166 code Pakistan}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code PK}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code PAK}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code 586}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code Pakistán}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code پاکستان}}
PK
- The alpha-3 code is obtained similarly (but not currently using the template name method except for conversion from known good Alpha-2).
{{ISO 3166 code-3|Pakistan}}
{{ISO 3166 code-3 A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 code-3|PK}}
{{ISO 3166 code-3 A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 code-3|PAK}}
{{ISO 3166 code-3 A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 code-3|586}}
{{ISO 3166 code-3 A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 code-3|Pakistán}}
{{ISO 3166 code-3 A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 code-3|پاکستان}}
PAK
{{ISO 3166 code-3 PK}}
PAK
- The numeric code is obtained similarly (but not currently using the template name method except for conversion from known good Alpha-2).
{{ISO 3166 numeric|Pakistan}}
{{ISO 3166 numeric A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 numeric|PK}}
{{ISO 3166 numeric A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 numeric|PAK}}
{{ISO 3166 numeric A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 numeric|586}}
{{ISO 3166 numeric A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 numeric|Pakistán}}
{{ISO 3166 numeric A
- Redirect Template:ISO 3166 code Pakistan }}
{{ISO 3166 numeric|پاکستان}}
586
{{ISO 3166 numeric PK}}
586
- Finding the name is obtained similarly (but not currently using the template name method except for conversion from known good Alpha-2).
{{ISO 3166 name|Pakistan}}
{{ISO 3166 name|PK}}
پاکستان{{ISO 3166 name|PAK}}
پاکستان{{ISO 3166 name|586}}
پاکستان{{ISO 3166 name|Pakistán}}
{{ISO 3166 name|پاکستان}}
پاکستان
{{ISO 3166 name PK}}
Pakistan
- The subdivision code can be obtained in many ways
- Using a template name - this currently must use the canonical (usually ISO 3166) name for the country but can use implemented synonyms for the region.
{{ISO 3166 code Pakistan Baluchistan}}
PK-BA{{ISO 3166 code Pakistan Balochistan}}
PK-BA{{ISO 3166 code Pakistan Bagh Sanjari}}
PK-BA
- Using a template name and a parameter - can use implemented synonyms for the region and country - ISO 3166 entities are almost guaranteed to be implemented synonyms for countries.
{{ISO 3166 code Pakistan|Baluchistan}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code Pakistan|Balochistan}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code Pakistan|Bagh Sanjari}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code Pakistán|Baluchistan}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code Paquistán|Balochistan}}
A
- Redirect Template:ISO 3166 code Pakistan
{{ISO 3166 code PK|Baluchistan}}
A
- Redirect Template:ISO 3166 code Pakistan
- Using two parameters - can use implemented synonyms for the region and country - ISO 3166 entities are almost guaranteed to be implemented synonyms for countries.
{{ISO 3166 code|Pakistan|Baluchistan}}
{{ISO 3166 code|Pakistan|Balochistan}}
{{ISO 3166 code|Pakistan|Bagh Sanjari}}
{{ISO 3166 code|Pakistán|Baluchistan}}
{{ISO 3166 code|Paquistán|Balochistan}}
{{ISO 3166 code|PK|Baluchistan}}
- The subdivision name can be obtained similarly
{{ISO 3166 name PK-BA}}
بلوچستان، پاکستان
- Using a template name and a parameter template name needs to be a valid alpha-2 currently. (not yet implemented)
{{ISO 3166 name PK|BA}}
Pakistan{{ISO 3166 name PK|Balochistan}}
Pakistan{{ISO 3166 name PK|Bagh Sanjari}}
Pakistan{{ISO 3166 name PK|Baluchistan}}
Pakistan
- Using two parameters - can use implemented synonyms for the region and country - ISO 3166 entities are almost guaranteed to be implemented synonyms for countries.
{{ISO 3166 name|PK|BA}}
{{ISO 3166 name|Pakistan|BA}}
{{ISO 3166 name|PK|Bagh Sanjari}}
{{ISO 3166 name|Pakistán|Baluchistan}}
{{ISO 3166 name|Paquistán|Balochistan}}
{{ISO 3166 name|PK|Baluchistan}}
Cases where the non-ISO3166 name might be returned
- Taiwan - ISO name is...
- Venezuela - ISO name is...
- Bolivia - ISO name is....
- ...
- Cases where the name is comma mangled - "Congo, The People's Democratic Republic of"
- Macedonia - ISO name is Macedonia, the former Yugoslav Republic of
Enhancing the system
- Adding country synonyms: these should redirect to the canonical template: the redirect should be categorised the same as the target, and sort-keyed as per the notes in the categories.
- Adding region synonyms: these can be a simple cut-and paste, but be sure to update any documentation variables.