Module talk:ISO 3166

Latest comment: 2 months ago by Redheadkelly in topic geocoordinsert

Template-protected edit request on 20 September 2018 edit

Replace the liver version with the sandbox version Module:ISO 3166/sandbox. The sandbox allows for more inputs to be converted to usable inputs as seen at the test cases Module_talk:ISO_3166/testcases and I indented all the code so it's more organized and easier to read, as well as fixing a few comments. – BrandonXLF (t@lk) 03:12, 20 September 2018 (UTC)Reply

done, will revert if I see any script errors popping up. Frietjes (talk) 13:44, 20 September 2018 (UTC)Reply

Deleted codes edit

Does the module currently handle codes that were deleted? Jc86035 (talk) 11:26, 4 December 2018 (UTC)Reply

Some testcases didn't work edit

See Module talk:ISO 3166/testcases(PRC and USA). --Vozhuo (talk) 08:53, 8 December 2018 (UTC)Reply

Flag template appears to cause "obscure country" category to be applied edit

The use of a flag template, as allowed in the documentation for {{Infobox settlement}}, appears to cause this template to apply Category:Wikipedia page with obscure country. See Belmont Village, Philadelphia for an example. – Jonesey95 (talk) 06:13, 13 March 2019 (UTC)Reply

Please limit error checking to main (article) space edit

Category:Wikipedia page with obscure country is not limited to main (article) space, but it should be. Can someone who knows about Lua programming please place this limit on this and other tracking categories used by this module? Thanks. – Jonesey95 (talk) 16:41, 28 April 2019 (UTC)Reply

Jonesey95, seems reasonable. I did the same for Category:Wikipedia page with obscure subdivision. note that since namespace checking could add overhead, I put the checks inside the various if blocks so the check happens only if the category is to be added. if there were no overhead from checking the namespace, we could reduce the number of checks by a factor of 2. Frietjes (talk) 16:56, 28 April 2019 (UTC)Reply
Thanks. – Jonesey95 (talk) 19:58, 28 April 2019 (UTC)Reply

Updates needed edit

I see that Module:ISO 3166/data still uses Swaziland rather than Eswatini, that needs changing.Le Deluge (talk) 13:15, 8 March 2020 (UTC)Reply

Having compared the data page for the template with the official list there's quite a few discrepancies. I'm well aware some of these are old favourites for discussion on Wikipedia, such as Macau versus Macao, Czechia and Viet Nam, but if the template is billing itself as ISO 3166 then surely it should give the official ISO 3166 names, or does that break too many things down the line? (pinging @SiBr4, Frietjes, and BrandonXLF: as main editors here)
Template ISO3166 Template (|isoname=yes)
French Southern and Antarctic Lands French Southern Territories (the) French Southern Territories
Laos Lao People's Democratic Republic (the) Lao People's Democratic Republic
Republic of Congo Congo (the) Congo
Russia Russian Federation (the) Russian Federation
Syria Syrian Arab Republic (the) Syrian Arab Republic
United Kingdom United Kingdom of Great Britain and Northern Ireland (the) United Kingdom of Great Britain and Northern Ireland
United States United States of America (the) United States of America
Vatican City Holy See (the) Holy See
Bolivia Bolivia (Plurinational State of) Bolivia (Plurinational State of)
Caribbean Netherlands Bonaire, Sint Eustatius and Saba Bonaire, Sint Eustatius and Saba
Brunei Brunei Darussalam Brunei Darussalam
Democratic Republic of the Congo Congo (the Democratic Republic of the) Congo, Democratic Republic of the
Czech Republic Czechia Czechia
Swaziland Eswatini Eswatini
Iran Iran (Islamic Republic of) Iran (Islamic Republic of)
North Korea Korea (the Democratic People's Republic of) Korea (Democratic People's Republic of)
South Korea Korea (the Republic of) Korea, Republic of
Macau Macao Macao
Federated States of Micronesia Micronesia (Federated States of) Micronesia (Federated States of)
Moldova Moldova (the Republic of) Moldova, Republic of
Palestine Palestine, State of Palestine, State of
Saint-Martin Saint Martin (French part) Saint Martin (French part)
São Tomé and Príncipe Sao Tome and Principe Sao Tome and Principe
Sint Maarten Sint Maarten (Dutch part) Sint Maarten (Dutch part)
Taiwan Taiwan (Province of China) Taiwan, Province of China
Tanzania Tanzania, the United Republic of Tanzania, United Republic of
Venezuela Venezuela (Bolivarian Republic of) Venezuela (Bolivarian Republic of)
Vietnam Viet Nam Viet Nam
British Virgin Islands Virgin Islands (British) Virgin Islands (British)
United States Virgin Islands Virgin Islands (U.S.) Virgin Islands (U.S.)
Bahamas (the)
British Indian Ocean Territory (the)
Cayman Islands (the)
Central African Republic (the)
Cocos (Keeling) Islands (the)
Comoros (the)
Cook Islands (the)
Dominican Republic (the)
Falkland Islands (the) [Malvinas]
Faroe Islands (the)
Gambia (the)
Marshall Islands (the)
Netherlands (the)
Niger (the)
Northern Mariana Islands (the)
Philippines (the)
Sudan (the)
Turks and Caicos Islands (the)
United Arab Emirates (the)
United States Minor Outlying Islands (the)

Le Deluge (talk) 14:58, 8 March 2020 (UTC)Reply

Eswatini is updated. As for the discrepancies, the module has a parameter |isoname= to toggle between common names and ISO names. The ISO names in the module (which I added to your table for comparison) don't include the article "(the)", though I note the ISO site itself doesn't consistently include it (or rather, it seems to consistently include it only in the "Short name lower case" field and not in the all-caps "Short name"). Similarly, the standard's two short names of the DRC, South Korea and Taiwan differ in the use of commas vs. parentheses, with the module being consistent with the uppercase names. SiBr4 (talk) 19:42, 8 March 2020 (UTC)Reply

Kosovo? edit

Looks like Kosovo (XK) is missing? Le Deluge (talk) 23:40, 24 August 2020 (UTC)Reply

substitutable? edit

I tried to subst {{Country name}} and I got a bare invoke instead of the output. Is there a way to subst these templates? –Fredddie 06:03, 2 January 2022 (UTC)Reply

@Fredddie, you could just subst the underlying module instead of using the template, and that should (?) work. If it's tested enough, we could change the code from {{#invoke:ISO 3166|name}} to {{safesubst:<noinclude/>#invoke:ISO 3166|name}}, which would allow substitution via the template. {{u|Sdkb}}talk 20:53, 17 March 2022 (UTC)Reply

Guinea-Bissau error edit

Currently, {{ISO 3166 code-3|Guinea-Bissau}} does not return anything, despite seemingly being listed in the module. Could anyone figure out the error and resolve it? {{u|Sdkb}}talk 20:51, 17 March 2022 (UTC)Reply

It might be the hyphen. "GuineaBissau" works as input, even though it shouldn't. Also, invalid values return nothing instead of an error message. See Template:ISO 3166 code-3/testcases. – Jonesey95 (talk) 17:42, 18 March 2022 (UTC)Reply
@Jonesey95, hmm, yeah. Any idea what it is about the hyphen that's leading to the bug? {{u|Sdkb}}talk 01:16, 23 March 2022 (UTC)Reply
:::	if string.find(code1,"%-") then
:::		code1, code2 = string.match(code1,"^([^%-]*)%-(.*)$")
:::	end
:::
This is the problamtic piece of code. It splits "Guinea-Bissau" into "Guinea" and "Bissau". I'm not sure what the design rational behind that was though. Gonnym (talk) 16:27, 31 March 2022 (UTC)Reply
It's to handle the format <COUNTRY>-<SUBDIVISION>, like 'United Kingdom-England' — wqnvlz (talk·contribs) 17:08, 31 March 2022 (UTC)Reply
It looks like the code should check to see if "Xxxx-Yyyy" matches a valid country name first, then fall back to "Country-Subdivision". – Jonesey95 (talk) 19:31, 31 March 2022 (UTC)Reply
Continued from the this discussion.
Let's try to finish up the fix for this so it can be used where it was discovered.
  • I made it also handle multiple hyphens. Overall, the tests page shows what has and hasn't changed (some older cases are commented out for runtime).
  • Hyphens are now significant, so input like 'GuineaBissau' no longer works. However, I'm not sure if this is really desired because quite a few subdivisions have hyphenated names that look like they might be used with spaces informally. For example, I can see one instance in the refs of Stoke-on-Trent.
  • The way the UK data is stored (here) makes the individual countries indistinguishable, so subdivisions belonging to the incorrect country like {{#invoke:ISO 3166|name|England|Glasgow}} work. How did this work in the original ISO standard?
  • Even though the top-level behaviour as seen in the tests remains largely unchanged, some of the underlying functions now handle things like nil vs '' differently. This might break direct invocations in other modules/templates (Hyrum's law, I suppose). Some searches for invocations:
  • An error message that wasn't showing up now does—is this desirable or are we relying on the template to fail silently? There are other cases that still don't have messages.
  • Profiling time varies widely; the testcase page is around 6 s with only main and 2 s with only sandbox.
 — wqnvlz (talk·contribs) 01:23, 2 April 2022 (UTC)Reply
According to those searches, the only significant direct callers of the module are {{Infobox road}} & {{Infobox country}} (which use the return values as-is) and {{Infobox settlement}} (which uses geocoordinsert(), which has no testcases).
Regarding the section above, I don't see what about safesubst: wouldn't work; for good measure, I tested at Template:ISO 3166 code-3/testcases and it looks fine.
I noticed Module talk:ISO 3166/testcases/core and Module talk:ISO 3166/testcases/test are some sort of framework for wikitext-only tests, but they're mostly broken for some reason (including a case that regressed with the sandbox changes):
Extended content

(, )
{{#invoke:ISO 3166|name|Canada}}


(, )
{{#invoke:ISO 3166|name|United States}}


(, )
{{#invoke:ISO 3166|name|The United States of America}}


(, )
{{#invoke:ISO 3166|name|US}}


(New York, New York)
{{#invoke:ISO 3166|name|US|New York}}


(New York, New York)
{{#invoke:ISO 3166|name|USA|New York}}


(New York, New York)
{{#invoke:ISO 3166|name|US-NY}}


(New York, New York)
{{#invoke:ISO 3166|name|United States|New York}}


(New York, New York)
{{#invoke:ISO 3166|name|United States|New York (State)}}


(New York, New York)
{{#invoke:ISO 3166|name|United States|[[New York (State)]]}}


(New York, New York)
{{#invoke:ISO 3166|name|United States|[[New York (State)|Test]]}}


(, )
{{#invoke:ISO 3166|name|Áfghanistan}}


(, )
{{#invoke:ISO 3166|name|[[United States|THE PLACE]]}}


(, )
{{#invoke:ISO 3166|name|[[File:Flag of Canada.svg|20px]]}}


(, )
{{#invoke:ISO 3166|name|[[File:Flag_of_Canada.svg|20px]]}}


(, )
{{#invoke:ISO 3166|name|{{flag|India}}}}


(, )
{{#invoke:ISO 3166|name|{{CAN}}}}


(, )
{{#invoke:ISO 3166|name|[[Canada]]}}


(, )
{{#invoke:ISO 3166|name|C"A'N[[A]]‘,DA(AAA)}}


(, )
{{#invoke:ISO 3166|name|Taiwan, Province of China}}


(, )
{{#invoke:ISO 3166|name|Taiwan}}


(, )
{{#invoke:ISO 3166|name|Republic of China}}


(, )
{{#invoke:ISO 3166|name|TW}}


(, )
{{#invoke:ISO 3166|name|TWN}}


(, )
{{#invoke:ISO 3166|name|158}}


(, )
{{#invoke:ISO 3166|name|{{PRC}}}}


(, )
{{#invoke:ISO 3166|name|{{USA}}}}


I'm not sure if that's cause for concern. @Sdkb, Jonesey95, Trappist the monk, and Johnuniq:  —wqnvlz (talk·contribs);  19:34, 5 April 2022 (UTC)Reply

Kosovo still missing edit

3 years ago asked at #Kosovo? and still relevant. I'm unfamiliar with these modules so would rather not edit and break anything here. Can this be added please? Gonnym (talk) 13:36, 11 January 2024 (UTC)Reply

geocoordinsert edit

Template:Infobox settlement uses {{#invoke:ISO 3166|geocoordinsert}}, but this option is not explained on the documentation page for this module. Is it possible for someone to explain the parameters that can be used and what the output should look like for this option? Redheadkelly (talk) 03:11, 17 February 2024 (UTC)Reply