Wikikamus
mswiktionary
https://ms.wiktionary.org/wiki/Wikikamus:Laman_Utama
MediaWiki 1.46.0-wmf.24
case-sensitive
Media
Khas
Perbincangan
Pengguna
Perbincangan pengguna
Wikikamus
Perbincangan Wikikamus
Fail
Perbincangan fail
MediaWiki
Perbincangan MediaWiki
Templat
Perbincangan templat
Bantuan
Perbincangan bantuan
Kategori
Perbincangan kategori
Lampiran
Perbincangan lampiran
Rima
Perbincangan rima
Tesaurus
Perbincangan tesaurus
Indeks
Perbincangan indeks
Petikan
Perbincangan petikan
Rekonstruksi
Perbincangan rekonstruksi
Padanan isyarat
Perbincangan padanan isyarat
Konkordans
Perbincangan konkordans
TimedText
TimedText talk
Modul
Perbincangan modul
Acara
Perbincangan acara
Modul:category tree/topic/Body
828
11521
278229
262619
2026-04-17T09:30:49Z
PeaceSeekers
3334
278229
Scribunto
text/plain
local labels = {}
labels["badan"] = {
type = "berkenaan",
description = "Kata bahasa {{{langname}}} bagi dan berkaitan dengan [[badan]] dan bahagian-bahagiannya.",
parents = {"semua topik"},
}
labels["pengguguran"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[pengguguran]] kehamilan.",
parents = {"kehamilan"},
}
labels["umur"] = {
description = "default",
parents = {"badan"},
}
labels["marah"] = {
description = "default",
parents = {"emosi"},
}
labels["mandi"] = {
description = "default",
parents = {"higin"},
}
labels["bendalir badan"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[bendalir]] ([[cecair]]) badan.",
parents = {"badan", "cecair"},
}
labels["anggota badan"] = {
type = "set",
description = "=bahagian [[badan]] mana-mana jenis [[hidupan]], sama ada makro atau mikro",
parents = {"badan"}, -- This should not go in "anatomy", which is for terms used in the *study* of the body
}
labels["otak"] = {
description = "default",
parents = {"badan"},
}
labels["punggung"] = {
description = "default",
parents = {"badan"},
}
labels["biomolekul"] = {
type = "set",
description = "=[[biomolekul]]: sebatian organik yang hadir dan digunakan oleh organisma",
parents = {"anggota badan", "sebatian organik", "biokimia"},
}
labels["sunat"] = {
description = "default",
parents = {"badan", "pembedahan"},
}
labels["ajal"] = {
description = "default",
parents = {"badan"},
}
labels["kesihatan gigi"] = {
description = "[[kesihatan]] [[gigi]]",
parents = {"higin", "gigi"},
}
labels["penyakit"] = {
type = "set",
description = "Kata bahasa {{{langname}}} bagi [[penyakit]], [[gejala]], atau [[keabnormalan]] [[patologi]] manusia, [[physiology]] or [[psychology]].",
parents = {"badan", "patologi"},
}
labels["mimpi"] = {
type = "berkenaan",
description = "default",
parents = {"tidur"},
}
labels["telur"] = {
type = "set",
description = "default",
parents = {"pembiakan", "burung", "makanan"},
}
labels["emosi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[emosi]].",
parents = {"minda"},
}
labels["mata"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[mata]].",
parents = {"badan", "penglihatan"},
}
labels["muka"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["takut"] = {
description = "default",
parents = {"emosi"},
}
labels["tinja"] = {
description = "default",
parents = {"badan", "WC"},
}
labels["perempuan"] = {
description = "Kata bahasa {{{langname}}} yang menglibatkan jantina atau gender [[perempuan]].",
parents = {"gender"},
}
labels["jari"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[jari]].",
parents = {"badan"},
}
labels["gaya jalan"] = {
description = "default",
parents = {"badan"},
}
labels["gender"] = {
type = "berkenaan",
description = "=[[seks]] dan [[jantina]]",
additional = "Lihat [[:Kategori:Seks]] bagi perkataan berkenaan hubungan seks dan keseksualan.",
parents = {"biologi", "psikologi", "sosiologi"},
}
labels["rambut"] = {
description = "default",
parents = {"anggota badan"},
}
labels["kesihatan"] = {
description = "default",
parents = {"badan"},
}
labels["penjagaan kesihatan"] = {
description = "default",
parents = {"kesihatan", "perubatan"},
}
labels["pendengaran"] = {
description = "default",
parents = {"deria"},
}
labels["hormon"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[hormon]].",
parents = {"badan"},
}
labels["gaya jalan kuda"] = {
description = "default",
parents = {"gaya jalan"},
}
labels["higin"] = {
description = "default",
parents = {"kesihatan"},
}
labels["interseks"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan ''[[interseks]]''.",
parents = {"gender", "LGBT"},
}
labels["kusta"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan [[kusta]].",
parents = {"penyakit"},
}
labels["cinta"] = {
description = "default",
parents = {"emosi"},
}
labels["lelaki"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan jantina atau gender [[lelaki]].",
parents = {"gender"},
}
labels["tanda dan gejala perubatan"] = {
description = "default",
parents = {"badan", "patologi"},
}
labels["ingatan"] = {
type = "berkenaan",
description = "default",
parents = {"minda"},
}
labels["haid"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["metabolisme"] = {
description = "default",
parents = {"badan"},
}
labels["minda"] = {
description = "Kata bahasa {{{langname}}} yang bagi dan berkaitan dengan [[minda]].",
parents = {"badan"},
}
labels["mabuk gerak"] = {
description = "default",
parents = {"penyakit"},
}
labels["otot"] = {
description = "default",
parents = {"badan"},
}
labels["neurotransmitter"] = {
description = "{{{langname}}} names of known [[neurotransmitter]]s and terms relating to them.",
parents = {"badan"},
}
labels["pemakanan"] = {
description = "default",
parents = {"kesihatan"},
}
labels["obesiti"] = {
description = "default",
parents = {"kesihatan"},
}
labels["organ"] = {
type = "set",
description = "=[[organ]] dalam [[badan]]",
parents = {"anggota badan"},
}
labels["sistem organ"] = {
description = "[[sistem]] [[organ]]",
parents = {"badan"},
}
labels["kesakitan"] = {
description = "default",
parents = {"deria", "tanda dan gejala perubatan"},
}
labels["filia"] = {
description = "default",
parents = {"cinta"},
}
labels["fobia"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[fobia]].",
parents = {"takut"},
}
labels["kehamilan"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["protein"] = {
type = "set",
description = "default",
parents = {"biomolekul"},
}
labels["sauna"] = {
description = "default",
parents = {"mandi"},
}
labels["scents"] = {
description = "{{{langname}}} terms referring to specific [[scents]].",
parents = {"smell"},
}
labels["deria"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[fizikal]].",
parents = {"badan"},
}
labels["sexually transmitted diseases"] = {
description = "default",
parents = {"diseases"},
}
labels["skeleton"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["kulit"] = {
description = "default",
parents = {"badan"},
}
labels["tidur"] = {
description = "default",
parents = {"badan"},
}
labels["bau"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[bau]].",
parents = {"deria"},
}
labels["suicide"] = {
description = "default",
parents = {"ajal"},
}
labels["sindrom"] = {
description = "default",
parents = {"kesihatan", "patologi"},
}
labels["rasa"] = {
description = "default",
parents = {"deria", "makanan dan minuman"},
}
labels["gigi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[gigi]].",
parents = {"badan"},
}
labels["thinking"] = {
description = "default",
parents = {"minda"},
}
labels["toiletry"] = {
description = "{{{langname}}} terms related to [[grooming]] or [[personal hygiene]]. (For terms related to [[lavatory|lavatories]], use [[:Category:WC]].)",
parents = {"hygiene"},
}
labels["sentuhan"] = {
description = "default",
parents = {"deria"},
}
labels["transgender"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan masyarakat ''[[transgender]]'' community in the broad sense of that term, by which it includes the ''[[genderqueer]]'' community: terms relating to transgender and transsexual people and to [[transition]]ing from female to male or vice versa, as well as terms relating to [[agender]], [[androgynous]] or [[third gender]] people.",
parents = {"gender", "LGBT"},
}
labels["penglihatan"] = {
description = "default",
parents = {"deria"},
}
return labels
ld8yzb5aqg2b7n0xjxeqfq2vkhr3mng
278230
278229
2026-04-17T09:31:27Z
PeaceSeekers
3334
278230
Scribunto
text/plain
local labels = {}
labels["badan"] = {
type = "berkenaan",
description = "Kata bahasa {{{langname}}} bagi dan berkaitan dengan [[badan]] dan bahagian-bahagiannya.",
parents = {"semua topik"},
}
labels["pengguguran"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[pengguguran]] kehamilan.",
parents = {"kehamilan"},
}
labels["umur"] = {
description = "default",
parents = {"badan"},
}
labels["marah"] = {
description = "default",
parents = {"emosi"},
}
labels["mandi"] = {
description = "default",
parents = {"higin"},
}
labels["bendalir badan"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[bendalir]] ([[cecair]]) badan.",
parents = {"badan", "cecair"},
}
labels["anggota badan"] = {
type = "set",
description = "=bahagian [[badan]] mana-mana jenis [[hidupan]], sama ada makro atau mikro",
parents = {"badan"}, -- This should not go in "anatomy", which is for terms used in the *study* of the body
}
labels["otak"] = {
description = "default",
parents = {"badan"},
}
labels["punggung"] = {
description = "default",
parents = {"badan"},
}
labels["biomolekul"] = {
type = "set",
description = "=[[biomolekul]]: sebatian organik yang hadir dan digunakan oleh organisma",
parents = {"anggota badan", "sebatian organik", "biokimia"},
}
labels["sunat"] = {
description = "default",
parents = {"badan", "pembedahan"},
}
labels["ajal"] = {
description = "default",
parents = {"badan"},
}
labels["kesihatan gigi"] = {
description = "[[kesihatan]] [[gigi]]",
parents = {"higin", "gigi"},
}
labels["penyakit"] = {
type = "set",
description = "Kata bahasa {{{langname}}} bagi [[penyakit]], [[gejala]], atau [[keabnormalan]] [[patologi]] manusia, [[physiology]] or [[psychology]].",
parents = {"badan", "patologi"},
}
labels["mimpi"] = {
type = "berkenaan",
description = "default",
parents = {"tidur"},
}
labels["telur"] = {
type = "set",
description = "default",
parents = {"pembiakan", "burung", "makanan"},
}
labels["emosi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[emosi]].",
parents = {"minda"},
}
labels["mata"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[mata]].",
parents = {"badan", "penglihatan"},
}
labels["muka"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["takut"] = {
description = "default",
parents = {"emosi"},
}
labels["tinja"] = {
description = "default",
parents = {"badan", "WC"},
}
labels["perempuan"] = {
description = "Kata bahasa {{{langname}}} yang menglibatkan jantina atau gender [[perempuan]].",
parents = {"gender"},
}
labels["jari"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[jari]].",
parents = {"badan"},
}
labels["gaya jalan"] = {
description = "default",
parents = {"badan"},
}
labels["gender"] = {
type = "berkenaan",
description = "=[[seks]] dan [[jantina]]",
additional = "Lihat [[:Kategori:Seks]] bagi perkataan berkenaan hubungan seks dan keseksualan.",
parents = {"biologi", "psikologi", "sosiologi"},
}
labels["rambut"] = {
description = "default",
parents = {"anggota badan"},
}
labels["kesihatan"] = {
description = "default",
parents = {"badan"},
}
labels["penjagaan kesihatan"] = {
description = "default",
parents = {"kesihatan", "perubatan"},
}
labels["pendengaran"] = {
description = "default",
parents = {"deria"},
}
labels["hormon"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[hormon]].",
parents = {"badan"},
}
labels["gaya jalan kuda"] = {
description = "default",
parents = {"gaya jalan"},
}
labels["higin"] = {
description = "default",
parents = {"kesihatan"},
}
labels["interseks"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan ''[[interseks]]''.",
parents = {"gender", "LGBT"},
}
labels["kusta"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan [[kusta]].",
parents = {"penyakit"},
}
labels["cinta"] = {
description = "default",
parents = {"emosi"},
}
labels["lelaki"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan jantina atau gender [[lelaki]].",
parents = {"gender"},
}
labels["tanda dan gejala perubatan"] = {
description = "default",
parents = {"badan", "patologi"},
}
labels["ingatan"] = {
type = "berkenaan",
description = "default",
parents = {"minda"},
}
labels["haid"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["metabolisme"] = {
description = "default",
parents = {"badan"},
}
labels["minda"] = {
description = "Kata bahasa {{{langname}}} yang bagi dan berkaitan dengan [[minda]].",
parents = {"badan"},
}
labels["mabuk gerak"] = {
description = "default",
parents = {"penyakit"},
}
labels["otot"] = {
description = "default",
parents = {"badan"},
}
labels["neurotransmitter"] = {
description = "{{{langname}}} names of known [[neurotransmitter]]s and terms relating to them.",
parents = {"badan"},
}
labels["pemakanan"] = {
description = "default",
parents = {"kesihatan"},
}
labels["obesiti"] = {
description = "default",
parents = {"kesihatan"},
}
labels["organ"] = {
type = "set",
description = "=[[organ]] dalam [[badan]]",
parents = {"anggota badan"},
}
labels["sistem organ"] = {
description = "[[sistem]] [[organ]]",
parents = {"badan"},
}
labels["kesakitan"] = {
description = "default",
parents = {"deria", "tanda dan gejala perubatan"},
}
labels["filia"] = {
description = "default",
parents = {"cinta"},
}
labels["fobia"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[fobia]].",
parents = {"takut"},
}
labels["kehamilan"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["protein"] = {
type = "set",
description = "default",
parents = {"biomolekul"},
}
labels["pembiakan"] = {
type = "related-to",
description = "default",
parents = {"kehidupan"},
}
labels["sauna"] = {
description = "default",
parents = {"mandi"},
}
labels["scents"] = {
description = "{{{langname}}} terms referring to specific [[scents]].",
parents = {"smell"},
}
labels["deria"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[fizikal]].",
parents = {"badan"},
}
labels["sexually transmitted diseases"] = {
description = "default",
parents = {"diseases"},
}
labels["skeleton"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["kulit"] = {
description = "default",
parents = {"badan"},
}
labels["tidur"] = {
description = "default",
parents = {"badan"},
}
labels["bau"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[bau]].",
parents = {"deria"},
}
labels["suicide"] = {
description = "default",
parents = {"ajal"},
}
labels["sindrom"] = {
description = "default",
parents = {"kesihatan", "patologi"},
}
labels["rasa"] = {
description = "default",
parents = {"deria", "makanan dan minuman"},
}
labels["gigi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[gigi]].",
parents = {"badan"},
}
labels["thinking"] = {
description = "default",
parents = {"minda"},
}
labels["toiletry"] = {
description = "{{{langname}}} terms related to [[grooming]] or [[personal hygiene]]. (For terms related to [[lavatory|lavatories]], use [[:Category:WC]].)",
parents = {"hygiene"},
}
labels["sentuhan"] = {
description = "default",
parents = {"deria"},
}
labels["transgender"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan masyarakat ''[[transgender]]'' community in the broad sense of that term, by which it includes the ''[[genderqueer]]'' community: terms relating to transgender and transsexual people and to [[transition]]ing from female to male or vice versa, as well as terms relating to [[agender]], [[androgynous]] or [[third gender]] people.",
parents = {"gender", "LGBT"},
}
labels["penglihatan"] = {
description = "default",
parents = {"deria"},
}
return labels
5sfi6ic2wthn5cyq64s3dtj1l8jld6l
278232
278230
2026-04-17T09:31:52Z
PeaceSeekers
3334
278232
Scribunto
text/plain
local labels = {}
labels["badan"] = {
type = "berkenaan",
description = "Kata bahasa {{{langname}}} bagi dan berkaitan dengan [[badan]] dan bahagian-bahagiannya.",
parents = {"semua topik"},
}
labels["pengguguran"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[pengguguran]] kehamilan.",
parents = {"kehamilan"},
}
labels["umur"] = {
description = "default",
parents = {"badan"},
}
labels["marah"] = {
description = "default",
parents = {"emosi"},
}
labels["mandi"] = {
description = "default",
parents = {"higin"},
}
labels["bendalir badan"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[bendalir]] ([[cecair]]) badan.",
parents = {"badan", "cecair"},
}
labels["anggota badan"] = {
type = "set",
description = "=bahagian [[badan]] mana-mana jenis [[hidupan]], sama ada makro atau mikro",
parents = {"badan"}, -- This should not go in "anatomy", which is for terms used in the *study* of the body
}
labels["otak"] = {
description = "default",
parents = {"badan"},
}
labels["punggung"] = {
description = "default",
parents = {"badan"},
}
labels["biomolekul"] = {
type = "set",
description = "=[[biomolekul]]: sebatian organik yang hadir dan digunakan oleh organisma",
parents = {"anggota badan", "sebatian organik", "biokimia"},
}
labels["sunat"] = {
description = "default",
parents = {"badan", "pembedahan"},
}
labels["ajal"] = {
description = "default",
parents = {"badan"},
}
labels["kesihatan gigi"] = {
description = "[[kesihatan]] [[gigi]]",
parents = {"higin", "gigi"},
}
labels["penyakit"] = {
type = "set",
description = "Kata bahasa {{{langname}}} bagi [[penyakit]], [[gejala]], atau [[keabnormalan]] [[patologi]] manusia, [[physiology]] or [[psychology]].",
parents = {"badan", "patologi"},
}
labels["mimpi"] = {
type = "berkenaan",
description = "default",
parents = {"tidur"},
}
labels["telur"] = {
type = "set",
description = "default",
parents = {"pembiakan", "burung", "makanan"},
}
labels["emosi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[emosi]].",
parents = {"minda"},
}
labels["mata"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[mata]].",
parents = {"badan", "penglihatan"},
}
labels["muka"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["takut"] = {
description = "default",
parents = {"emosi"},
}
labels["tinja"] = {
description = "default",
parents = {"badan", "WC"},
}
labels["perempuan"] = {
description = "Kata bahasa {{{langname}}} yang menglibatkan jantina atau gender [[perempuan]].",
parents = {"gender"},
}
labels["jari"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[jari]].",
parents = {"badan"},
}
labels["gaya jalan"] = {
description = "default",
parents = {"badan"},
}
labels["gender"] = {
type = "berkenaan",
description = "=[[seks]] dan [[jantina]]",
additional = "Lihat [[:Kategori:Seks]] bagi perkataan berkenaan hubungan seks dan keseksualan.",
parents = {"biologi", "psikologi", "sosiologi"},
}
labels["rambut"] = {
description = "default",
parents = {"anggota badan"},
}
labels["kesihatan"] = {
description = "default",
parents = {"badan"},
}
labels["penjagaan kesihatan"] = {
description = "default",
parents = {"kesihatan", "perubatan"},
}
labels["pendengaran"] = {
description = "default",
parents = {"deria"},
}
labels["hormon"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[hormon]].",
parents = {"badan"},
}
labels["gaya jalan kuda"] = {
description = "default",
parents = {"gaya jalan"},
}
labels["higin"] = {
description = "default",
parents = {"kesihatan"},
}
labels["interseks"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan ''[[interseks]]''.",
parents = {"gender", "LGBT"},
}
labels["kusta"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan [[kusta]].",
parents = {"penyakit"},
}
labels["cinta"] = {
description = "default",
parents = {"emosi"},
}
labels["lelaki"] = {
description = "Kata bahasa {{{langname}}} yang melibatkan jantina atau gender [[lelaki]].",
parents = {"gender"},
}
labels["tanda dan gejala perubatan"] = {
description = "default",
parents = {"badan", "patologi"},
}
labels["ingatan"] = {
type = "berkenaan",
description = "default",
parents = {"minda"},
}
labels["haid"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["metabolisme"] = {
description = "default",
parents = {"badan"},
}
labels["minda"] = {
description = "Kata bahasa {{{langname}}} yang bagi dan berkaitan dengan [[minda]].",
parents = {"badan"},
}
labels["mabuk gerak"] = {
description = "default",
parents = {"penyakit"},
}
labels["otot"] = {
description = "default",
parents = {"badan"},
}
labels["neurotransmitter"] = {
description = "{{{langname}}} names of known [[neurotransmitter]]s and terms relating to them.",
parents = {"badan"},
}
labels["pemakanan"] = {
description = "default",
parents = {"kesihatan"},
}
labels["obesiti"] = {
description = "default",
parents = {"kesihatan"},
}
labels["organ"] = {
type = "set",
description = "=[[organ]] dalam [[badan]]",
parents = {"anggota badan"},
}
labels["sistem organ"] = {
description = "[[sistem]] [[organ]]",
parents = {"badan"},
}
labels["kesakitan"] = {
description = "default",
parents = {"deria", "tanda dan gejala perubatan"},
}
labels["filia"] = {
description = "default",
parents = {"cinta"},
}
labels["fobia"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[fobia]].",
parents = {"takut"},
}
labels["kehamilan"] = {
description = "default",
parents = {"badan", "ginekologi"},
}
labels["protein"] = {
type = "set",
description = "default",
parents = {"biomolekul"},
}
labels["pembiakan"] = {
type = "berkenaan",
description = "default",
parents = {"kehidupan"},
}
labels["sauna"] = {
description = "default",
parents = {"mandi"},
}
labels["scents"] = {
description = "{{{langname}}} terms referring to specific [[scents]].",
parents = {"smell"},
}
labels["deria"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[fizikal]].",
parents = {"badan"},
}
labels["sexually transmitted diseases"] = {
description = "default",
parents = {"diseases"},
}
labels["skeleton"] = {
description = "default with the lower",
parents = {"badan"},
}
labels["kulit"] = {
description = "default",
parents = {"badan"},
}
labels["tidur"] = {
description = "default",
parents = {"badan"},
}
labels["bau"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[deria]] [[bau]].",
parents = {"deria"},
}
labels["suicide"] = {
description = "default",
parents = {"ajal"},
}
labels["sindrom"] = {
description = "default",
parents = {"kesihatan", "patologi"},
}
labels["rasa"] = {
description = "default",
parents = {"deria", "makanan dan minuman"},
}
labels["gigi"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan [[gigi]].",
parents = {"badan"},
}
labels["thinking"] = {
description = "default",
parents = {"minda"},
}
labels["toiletry"] = {
description = "{{{langname}}} terms related to [[grooming]] or [[personal hygiene]]. (For terms related to [[lavatory|lavatories]], use [[:Category:WC]].)",
parents = {"hygiene"},
}
labels["sentuhan"] = {
description = "default",
parents = {"deria"},
}
labels["transgender"] = {
description = "Kata bahasa {{{langname}}} yang berkaitan dengan masyarakat ''[[transgender]]'' community in the broad sense of that term, by which it includes the ''[[genderqueer]]'' community: terms relating to transgender and transsexual people and to [[transition]]ing from female to male or vice versa, as well as terms relating to [[agender]], [[androgynous]] or [[third gender]] people.",
parents = {"gender", "LGBT"},
}
labels["penglihatan"] = {
description = "default",
parents = {"deria"},
}
return labels
bexzxcfeuvbyd4aqe366796dqh149jd
Modul:category tree/topic/Animals
828
11530
278306
267647
2026-04-17T10:02:30Z
PeaceSeekers
3334
278306
Scribunto
text/plain
local labels = {}
labels["haiwan"] = {
type = "set",
description = "default",
parents = {"makhluk"},
commonscat = "Animalia",
wpcat = true,
}
labels["ikan akanturoid"] = {
type = "set",
description = "=[[surgeonfish]], [[light-horseman]], [[louvar]]s, [[scat]]s, [[rabbitfish]], [[Moorish idol]]s and other fish in the [[perciform]] [[suborder]] [[Acanthuroidei]]",
parents = {"ikan"},
}
labels["accentors"] = {
type = "set",
description = "=birds in the [[family]] [[Prunellidae]]",
parents = {"burung tenggek"},
}
labels["accipiters"] = {
type = "set",
description = "=[[besra]]s, [[Cooper's hawk]]s, [[goshawk]]s, [[sharp-shinned hawk]]s, [[shikra]]s, [[sparrowhawk]]s, and other [[hawk]]s in the [[genus]] ''[[Accipiter]]''",
parents = {"burung pemangsa"},
}
labels["ikan asipenseriform"] = {
type = "set",
description = "=[[paddlefish]], [[sturgeon]]s and other fish in the [[order]] [[Acipenseriformes]]",
parents = {"ikan"},
}
labels["adephagan beetles"] = {
type = "set",
description = "=[[diving beetle]]s, [[ground beetle]]s (including [[bombardier beetle]]s and [[tiger beetle]]s), [[whirligig beetle]]s and other [[beetle]]s in the [[suborder]] [[Adephaga]]",
parents = {"beetles"},
}
labels["African insectivores"] = {
type = "set",
description = "=[[aardvark]]s, [[elephant shrew]]s, [[golden mole]]s, [[otter shrew]]s, [[tenrec]]s, and other [[mammal]]s in the [[clade]] [[Afroinsectiphilia]]",
parents = {"mamalia"},
}
labels["agamid lizards"] = {
type = "set",
description = "=[[agama]]s, [[bearded dragon]]s, [[flying dragon]]s, [[frilled lizard]]s, [[moloch]]s, [[spiny-tailed lizard]]s, [[stellion]]s and other [[lizard]]s in the [[family]] [[Agamidae]]",
parents = {"lizards"},
}
labels["alcelaphine antelopes"] = {
type = "set",
description = "=[[blesbuck]]s, [[bontebok]]s, [[bubal]]s, [[gnu]]s or [[wildebeest]], [[hartebeest]]s, [[hirola]], [[sassaby]]s, [[topi]]s, [[tetel]]s, and other [[antelopes]] in the [[subfamily]] [[Alcelaphinae]]",
parents = {"antelopes"},
}
labels["ammonites"] = {
type = "set",
description = "=[[extinct]] [[cephalopod]]s in the [[subclass]] [[Ammonoidea]]",
parents = {"sefalopod"},
}
labels["amfibia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Amphibia",
wpcat = true,
}
labels["amphipods"] = {
type = "set",
description = "=[[beach flea]]s, [[lawn shrimp]], [[scud]]s, [[side swimmer]]s, [[skeleton shrimp]], [[whale louse|whale lice]], and other [[crustacean]]s in the [[order]] [[Amphipoda]]",
parents = {"crustaceans"},
}
labels["anatid"] = {
type = "set",
description = "=[[anatid]]s: ([[duck]]s, [[goose|geese]] and [[swan]]s)",
parents = {"burung air tawar"},
}
labels["annelids"] = {
type = "set",
description = "=[[earthworm]]s, [[leech]]es, [[ragworm]]s and many other [[segment]]ed [[worm]]s in the [[filum]] [[Annelida]]",
parents = {"cacing"},
}
labels["anglerfish"] = {
type = "set",
description = "=fish in the [[order]] [[Lophiiformes]]",
parents = {"ikan"},
}
labels["anguimorph lizards"] = {
type = "set",
description = "=[[alligator lizard]]s, [[beaded lizard]]s, [[blindworm]]s, [[crocodile monitor]]s, [[galliwasp]]s, [[Gila monster]]s, [[glass lizard]]s, [[goanna]]s, [[Komodo dragon]]s, [[legless lizard]]s, [[nile monitor]]s, [[perentie]]s, [[sheltopusik]]s, [[water monitor]]s, and other [[lizards]] in the [[suborder]] [[Anguimorpha]]",
parents = {"lizards"},
}
labels["anomurans"] = {
type = "set",
description = "=crablike [[crustacean]]s in the [[decapod]] [[infraorder]] [[Anomura]], which are closely related to the true [[crab]]s in the infraorder [[Brachyura]]",
parents = {"crustaceans", "decapods"},
}
labels["anteaters and sloths"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Pilosa]]",
parents = {"mamalia"},
}
labels["antelopes"] = {
type = "set",
description = "default",
parents = {"even-toed ungulates"},
}
labels["antilopine antelopes"] = {
type = "set",
description = "=[[blackbuck]]s, [[chinkara]]s, [[dibatag]]s, [[dik-dik]]s, [[gazelle]]s, [[gerenuk]]s, [[grysbok]]s, [[klipspringer]]s, [[oribi]]s, [[royal antelope]]s, [[saiga]]s, [[springbok]]s, [[steenbok]]s, [[zeren]], and other [[antelope]]s in the [[bovid]] [[subfamily]] [[Antilopinae]]",
parents = {"antelopes"},
}
labels["ants"] = {
type = "set",
description = "default",
parents = {"Hymenoptera"},
}
labels["antshrikes"] = {
type = "set",
description = "default",
parents = {"suboscines", "burung tenggek"},
}
labels["anurans"] = {
type = "set",
description = "=[[amphibian]]s in the [[order]] [[Anura]], which are short-bodied and without tails, having long hind legs adapted for leaping that are typically folded at rest. Anurans are mostly known as [[frog]]s or [[toad]]s",
parents = {"amfibia"},
}
labels["aphids"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Aphidoidea]]",
parents = {"hemipterans"},
}
labels["apodiforms"] = {
type = "set",
description = "=[[hummingbird]]s, [[needletail]]s, [[spinetail]]s, [[swift]]s, [[swiftlet]]s, [[treeswift]]s, and other [[bird]]s in the [[order]] [[Apodiformes]]",
parents = {"burung"},
}
labels["araknid"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["lelabah araneoid"] = {
type = "set",
description = "=[[lelabah tinja burung]], [[cobweb spiders]] (including [[black widow]]s and [[redback]]s), [[orbweaver]]s (including [[cross spider]]s and [[writing spider]]s), [[long-jawed spider]]s, [[money spider]]s, [[nesticid]]s, [[pimoid]], [[pirate spider]]s, [[tetragnathid]]s and other [[spider]]s in the [[superfamily]] [[Araneoidea]]",
parents = {"lelabah"},
}
labels["ikan argentiniform"] = {
type = "set",
description = "=[[argentine]]s, [[barreleye]]s, [[blacksmelt]]s, [[smoothtongue]]s and other ikan in the [[order]] [[Argentiniformes]]",
parents = {"ikan"},
}
labels["armadillos"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["artropod"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Arthropoda",
wpcat = true,
}
labels["aschizan flies"] = {
type = "set",
description = "=[[fly|flies]] in the [[dipteran]] [[section]] [[Aschiza]]",
parents = {"dipterans"},
}
labels["asilomorph flies"] = {
type = "set",
description = "=[[bee fly|bee flies]], [[dance fly|dance flies]], [[Mydas fly|Mydas flies]], [[robber fly|robber flies]], [[stiletto fly|stiletto flies]], [[window fly|window flies]] and other [[fly|flies]] in the [[dipteran]] [[infraorder]] [[Asilomorpha]]",
parents = {"dipterans"},
}
labels["assassin bugs"] = {
type = "set",
description = "=[[ambush bug]]s, [[assassin bug]]s, [[corsair]]s, [[feather-legged bug]]s, [[kissing bug]]s or [[conenose bug]]s, [[masked hunter]]s, [[wheel bug]]s, and other [[true bug]]s in the [[family]] [[Reduviidae]]",
parents = {"true bugs"},
}
labels["astacideans"] = {
type = "set",
description = "=[[crustacean]]s in the [[decapod]] [[infraorder]] [[Astacidea]], including the original [[species]] known as [[crayfish]] and [[lobster]]s, and their relatives",
parents = {"crustaceans", "decapods"},
}
labels["ikan ateriniform"] = {
type = "set",
description = "=[[blue-eye]]s, [[hardyhead]]s, [[grunion]], [[jacksmelt]], [[rainbowfish]], [[silverside]]s, [[zona]], and other ikan in the [[order]] [[Atheriniformes]]",
parents = {"ikan"},
}
labels["auks"] = {
type = "set",
description = "=[[auk]]s, [[guillemot]]s, [[murre]]s, [[puffin]]s, [[razorbill]]s, and other [[seabird]]s in the family [[Alcidae]]",
parents = {"burung laut"},
}
labels["ikan aulopiform"] = {
type = "set",
description = "=[[daggertooth]]s, [[lancetfish]], [[sergeant baker]]s, [[greeneye]]s, [[telescopefish]], [[lizardfish]] and other ikan in the [[order]] [[Aulopiformes]]",
parents = {"ikan"},
}
labels["Australasian robins"] = {
type = "set",
description = "=birds in the [[passerine]] [[family]] [[Petroicidae]], which are not closely related to the [[European robin]] (an [[Old World flycatcher]] in the family [[Muscicapidae]]), or the [[American robin]] (a [[thrush]] in the family [[Turdidae]])",
parents = {"burung tenggek"},
}
labels["anak haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["bandicoots and bilbies"] = {
type = "set",
description = "=[[peramelid]]s, [[bandicoot]]s, [[marl]]s, [[quenda]]s, [[chaeropodid]]s, [[pig-footed bandicoot]]s, [[thylacomyid]]s, [[bilby|bilbies]], [[dalgite]]s, [[rabbit-eared bandicoot]]s, [[philander]]s, [[pinkie]]s, and other [[marsupial]]s in the [[order]] [[Peramelemorphia]]",
parents = {"marsupials"},
}
labels["barklice"] = {
type = "set",
description = "=non-[[parasitic]] [[insect]]s in the [[order]] [[Psocodea]]",
parents = {"serangga"},
}
labels["barnacles"] = {
type = "set",
description = "=[[crustacean]]s in the [[infraclass]] [[Cirripedia]], including the parasitic [[rhizocephalan]]s",
parents = {"crustaceans"},
}
labels["kelawar"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["lebah"] = {
type = "set",
description = "default",
parents = {"Hymenoptera", "pemeliharaan lebah"},
}
labels["beetles"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["ikan beloniform"] = {
type = "set",
description = "=[[ballyhoo]], [[flying fish]], [[garfish]], [[halfbeak]]s, [[houndfish]], [[mackerel pike]]s, [[medaka]]s, [[needlefish]], [[ricefish]], [[saury|sauries]], [[silver gar]], and other ikan in the [[order]] [[Beloniformes]]",
parents = {"ikan"},
}
labels["bibionomorphs"] = {
type = "set",
description = "=[[March fly|March flies]], [[cecidomyiid]] [[gall midge]]s, [[keroplatid]] [[fungus gnat]]s, [[mycetophilid]]s, [[sciarid]]s and other [[fly|flies]], [[gnat]]s and [[midge]]s in the [[dipteran]] [[infraorder]] [[Bibionomorpha]]",
parents = {"dipterans"},
}
labels["burung"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Aves",
wpcat = true,
}
labels["burung pemangsa"] = {
type = "set",
description = "=birds that live by [[predatory]] hunting, and from [[carrion]]",
parents = {"burung"},
}
labels["bivalvia"] = {
type = "set",
description = "=[[clam]]s, [[cockle]]s, [[mussel]]s, [[oyster]]s, [[scallop]]s and other [[mollusk]]s in the [[class]] [[Bivalvia]]",
parents = {"moluska"},
}
labels["blennies"] = {
type = "set",
description = "=[[blenny|blennies]], [[chaenopsid]]s, [[clinid]]s, [[dactyloscopid]]s, [[klipfish]], [[labrisomid]]s, [[triplefin]]s, [[weedfish]] and other ikan in the [[perciform]] [[suborder]] [[Blennioidei]]",
parents = {"ikan"},
}
labels["boas"] = {
type = "set",
description = "=[[snake]]s in the family [[Boidae]]",
parents = {"ular"},
}
labels["bostrichiform beetles"] = {
type = "set",
description = "=[[carpet beetle]]s, [[deathwatch beetle]]s, [[drugstore beetle]]s, [[museum beetle]]s, [[powder-post beetle]]s, and other [[anobiid]]s/[[ptinid]]s, [[bostrichid]]s, [[dermestid]]s, [[derodontid]]s, [[jacobsoniid]]s and [[nosodendrid]]s in the [[coleopteran]] [[infraorder]] [[Bostrichiformia]]",
parents = {"beetles"},
}
labels["bovines"] = {
type = "set",
description = "default",
parents = {"even-toed ungulates"},
}
labels["brachiopods"] = {
type = "set",
description = "=[[animal]]s in the [[filum]] [[Brachiopoda]]. <u>Note</u>: not to be confused with [[branchiopod]]s, which are [[crustacean]]s",
parents = {"haiwan"},
}
labels["branchiopods"] = {
type = "set",
description = "=[[[brine shrimp]], [[clam shrimp]], [[fairy shrimp]], [[tadpole shrimp]], [[water flea]]s, and other [[crustacean]]s in the [[class]] [[Branchiopoda]]. <u>Note</u>: not to be confused with [[brachiopod]]s, which are a separate [[filum]]",
parents = {"crustaceans"},
}
labels["bryozoans"] = {
type = "set",
description = "=[[animal]]s in the [[filum]] [[Bryozoa]], also known as [[Ectoprocta]]",
parents = {"haiwan"},
}
labels["bulbuls"] = {
type = "set",
description = "=[[bulbul]]s, [[greenbul]]s, [[brownbul]]s, [[leaflove]]s, [[bristlebill]]s, and other birds in the [[passerine]] [[family]] [[Pycnonotidae]]",
parents = {"burung tenggek"},
}
labels["buteos"] = {
type = "set",
description = "=[[hawk]]s in the [[genus]] ''[[Buteo]]'', known as [[buzzard]]s in Europe",
parents = {"burung pemangsa"},
}
labels["butterflies"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["caddis flies"] = {
type = "set",
description = "=serangga in the order [[Trichoptera]], which are closely related to the [[butterfly|butterflies]] and [[moth]]s but with hairs on their wings instead of scales, and which have [[aquatic]] [[larvae]] that live in cases that they build around themselves",
parents = {"serangga"},
}
labels["caecilians"] = {
type = "set",
description = "=[[amphibian]]s in the [[order]] [[Gymnophiona]], which are legless and resemble [[earthworm]]s or [[snake]]s",
parents = {"amfibia"},
}
labels["camelids"] = {
type = "set",
description = "=[[camelid]]s ([[camel]]s, [[llama]]s, [[alpaca]]s, etc.)",
parents = {"mamalia", "even-toed ungulates"},
}
labels["kanid"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["caprines"] = {
type = "set",
description = "=[[sheep]], [[goat]]s, [[goat antelope]]s, [[chamois]], [[muskox]]en, [[bharal]], [[goral]], [[ibex]], [[mouflon]], [[serow]], [[tahr]], [[tur]], [[takin]] and other haiwan in the [[bovid]] [[subfamily]] [[Caprinae]], formerly known as the [[family]] [[Capridae]]",
parents = {"even-toed ungulates"},
}
labels["caprimulgiforms"] = {
type = "set",
description = "=[[caprimulgiform]]s: birds in the taxonomic order [[Caprimulgiformes]]- the [[nightjar]]s, [[oilbird]]s, [[frogmouth]]s, [[potoo]]s, etc",
parents = {"burung"},
}
labels["carcharhiniform sharks"] = {
type = "set",
description = "=[[bull shark]]s, [[catshark]]s, [[gummy shark]]s, [[hammerhead]]s, [[leopard shark]]s, [[morgay]]s, [[requiem shark]]s, [[tiger shark]]s, [[tope]]s, [[whaler]]s, [[whitetip]]s and other sharks in the [[order]] [[Carcharhiniformes]]",
parents = {"jerung"},
}
labels["cardinalids"] = {
type = "set",
description = "=[[cardinal]]s, [[dickcissel]]s, [[indigo bunting]]s, [[pyrrhuloxia]]s, [[rose-breasted grosbeak]]s, [[scarlet tanager]]s, and other birds in the [[family]] [[Cardinalidae]]",
parents = {"burung tenggek"},
}
labels["caridean shrimp"] = {
type = "set",
description = "=[[crustacean]]s in the [[decapod]] [[infraorder]] [[Caridea]], mostly known as [[shrimp]] or [[prawn]]s",
parents = {"crustaceans", "decapods"},
}
labels["karnivor"] = {
type = "set",
description = "=[[bear]]s, [[cat]]s, [[civet]]s, [[dog]]s, [[fossa]]s, [[hyaena]]s, [[mongoose]]s, [[panda]]s, [[raccoon]]s, [[seal]]s, [[skunk]]s, [[weasel]]s and various other [[mammal]]s in the [[order]] [[Carnivora]]",
parents = {"mamalia"},
}
labels["carps"] = {
type = "set",
description = "=ikan in the [[subfamily]] [[Cyprininae]], the [[carps]] and [[goldfish]]",
parents = {"cyprinids"},
}
labels["catfish"] = {
type = "set",
description = "default",
parents = {"ikan", "ikan ikan otosefalan"},
}
labels["kuring"] = {
type = "set",
description = "=[[cat]]s in the sense of members of the genus ''[[Felis]]''",
parents = {"felids"},
commonscat = "Felis silvestris catus",
wpcat = true,
}
labels["cattle"] = {
type = "set",
description = "default",
parents = {"bovines", "ternakan"},
}
labels["caviomorphs"] = {
type = "set",
description = "=[[agouti]]s, [[capybara]]s, [[chinchilla]]s, [[guinea pig]]s, [[New World porcupine]]s, [[nutria]]s, [[tuco-tuco]]s and other [[rodent]]s in the parvorder [[Caviomorpha]]",
parents = {"roden"},
}
labels["sefalopod"] = {
type = "set",
description = "default",
parents = {"moluska"},
}
labels["monyet serkopitesin"] = {
type = "set",
description = "=[[blue monkey]]s, [[Diana monkey]]s, [[guenon]]s, [[lesula]]s, [[malbrouck]]s, [[patas monkey]]s, [[talapoin]]s, [[vervet]]s, and other [[Old World monkey]]s in the [[cercopithecine]] [[tribe]] [[Cercopithecini]]",
parents = {"monyet dunia lama"},
}
labels["burung sertioid"] = {
type = "set",
description = "=birds in the [[passerine]] [[superfamily]] [[Certhioidea]], the [[treecreeper]]s, [[nuthatch]]es, [[gnatcatcher]]s and [[wren]]s",
parents = {"burung tenggek"},
}
labels["cervids"] = {
type = "set",
description = "default",
parents = {"even-toed ungulates"},
}
labels["setasea"] = {
type = "set",
description = "=[[cetacean]]s ([[dolphin]]s, [[whale]]s and [[porpoise]]s)",
parents = {"even-toed ungulates"},
}
labels["chalcidoid wasps"] = {
type = "set",
description = "=[[chalcidid]]s, [[encyrtid]]s, [[fig wasp]]s, [[jointworm]]s, [[mymarid]] [[fairyfly|fairyflies]], [[perilampid]]s, [[torymid]]s, [[trichogramma]]s, and other [[wasp]]s in the [[superfamily]] [[Chalcidoidea]]",
parents = {"Hymenoptera"},
}
labels["characins"] = {
type = "set",
description = "=fish in the order [[Characiformes]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ayam"] = {
type = "set",
description = "default",
parents = {"poltri", "unggas"},
}
labels["chimaeras (fish)"] = {
type = "set",
description = "=[[cartilaginous]] fish in the [[Chimaeriformes]], the only surviving [[order]] of the [[subclass]] [[Holocephali]], and separate from the [[shark]]s, [[ray]]s, [[skate]]s and [[sawfish]] of the subclass [[Elasmobranchii]]",
parents = {"ikan"},
}
labels["kordata"] = {
type = "set",
description = "=haiwan dalam filum [[filum]] [[Chordata]]",
parents = {"haiwan"},
}
labels["chrysomeloid beetles"] = {
type = "set",
description = "=[[cerambycid]]s or [[longhorn beetle]]s such as [[apple borer]]s, [[huhu beetle]]s, [[locust borer]]s and [[thunderbolt beetle]]s, as well as [[chrysomelid]]s or [[leaf beetle]]s such as [[asparagus beetle]]s, [[bean weevil]]s, [[Colorado beetle]]s, [[cucumber beetle]]s, [[flea beetle]]s, [[potato beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Chrysomeloidea]]",
parents = {"beetles"},
}
labels["cicadas"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Cicadoidea]]",
parents = {"hemipterans"},
}
labels["cichlids"] = {
type = "set",
description = "=fish in the family [[Cichlidae]]",
parents = {"ikan labroid"},
}
labels["clinids"] = {
type = "set",
description = "=fish in the family [[Clinidae]]",
parents = {"ikan"},
}
labels["knidaria"] = {
type = "set",
description = "=[[coral]]s, [[gorgonian]]s, [[hydra]]s, [[myxozoan]]s, [[Portuguese man-of-war]], [[sea anemone]]s, [[sea fir]]s, [[sea wasp]]s, and other haiwan in the in the [[filum]] [[Cnidaria]]",
parents = {"haiwan"},
}
labels["cockatoos"] = {
type = "set",
description = "=[[crested]] [[parrot]]s in the [[family]] [[Cacatuidae]]",
parents = {"parrots"},
}
labels["cockroaches"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["colobine monkeys"] = {
type = "set",
description = "=[[colobus]]es, [[douc]]s, [[langur]]s, [[guereza]]s, [[hanuman]]s,[[leaf monkey]]s, [[lutung]]s, [[proboscis monkey]]s, and other [[Old World monkey]]s in the [[subfamily]] [[Colobinae]]",
parents = {"monyet dunia lama"},
}
labels["ular kolubrid"] = {
type = "set",
description = "=[[snake]]s in the family [[Colubridae]]",
parents = {"ular"},
}
labels["colugos"] = {
type = "set",
description = "=the [[primate]]-like [[gliding]] [[mammal]]s in the [[order]] [[Dermoptera]], also known as [[flying lemur]]s",
parents = {"mamalia"},
}
labels["columbids"] = {
type = "set",
description = "=[[columbid]]s, i.e. [[pigeon]]s and [[dove]]s",
parents = {"burung"},
}
labels["copepods"] = {
type = "set",
description = "=[[crustacean]]s in the [[subclass]] [[Copepoda]]",
parents = {"crustaceans"},
}
labels["coraciiforms"] = {
type = "set",
description = "=[[bee-eater]]s, [[ground rollers]], [[kingfisher]]s, [[motmot]]s, [[roller]]s, [[tody|todies]] and other birds in the taxonomic order [[Coraciiformes]]",
parents = {"burung"},
}
labels["corvids"] = {
type = "set",
description = "default",
parents = {"burung tenggek", "burung korvoid"},
}
labels["burung korvoid"] = {
type = "set",
description = "=[[apostlebird]]s, [[bird of paradise|birds of paradise]], [[crow]]s, [[drongo]]s, [[fantail]]s, [[grinder]]s, [[jackdaw]]s, [[jay]]s, [[magpie]]s, [[magpie-lark]]s, [[manucode]]s, [[monarchid]]s, [[nutcracker]]s, [[piwakawaka]]s, [[raven]]s, [[restless flycatcher]]s, [[riflebird]]s, [[shrike]]s, [[standard-wing]]s, and other birds in the [[superfamily]] [[Corvoidea]]",
parents = {"burung tenggek"},
}
labels["cotingas"] = {
type = "set",
description = "=birds in the [[suboscine]] [[family]] [[Cotingidae]]",
parents = {"suboscines"},
}
labels["crabs"] = {
type = "set",
description = "=[[crab]]s, [[decapod]] [[crustacean]]s in the [[infraorder]] [[Brachyura]]",
parents = {"crustaceans", "decapods"},
}
labels["cranes (birds)"] = {
type = "set",
description = "=[[crane]]s",
parents = {"gruiforms"},
}
labels["cricetids"] = {
type = "set",
description = "=[[cotton rat]]s, [[deer mouse|deer mice]], [[hamster]]s, [[harvest mouse|harvest mice]], [[lemming]]s, [[vole]]s, [[woodrat]]s, and other [[rodent]]s in the [[family]] [[Cricetidae]]",
parents = {"roden"},
}
labels["cengkerik dan belalang"] = {
type = "set",
description = "=[[cengkerik]], [[belalang]], [[katidid]], [[weta]] dan [[serangga]] lain dalam order [[Orthoptera]]",
parents = {"serangga"},
}
labels["croakers"] = {
type = "set",
description = "=[[croaker]]s, [[drum]]s, [[weakfish]]s and other fish in the family [[Sciaenidae]]",
parents = {"ikan perkoid"},
}
labels["Crocodilia"] = {
type = "set",
description = "=[[buaya]], [[aligator]], kayman dan [[reptilia]] lain dalam order [[Crocodilia]]",
parents = {"reptilia"},
}
labels["crustaceans"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["cuckoos"] = {
type = "set",
description = "=[[cuckoo]]s and other birds in the [[family]] [[Cuculidae]]",
parents = {"otidimorph birds"},
}
labels["cuckooshrikes and minivets"] = {
type = "set",
description = "=birds in the [[family]] [[Campephagidae]]",
parents = {"burung tenggek"},
}
labels["cucujoid beetles"] = {
type = "set",
description = "=[[flower beetle]]s, [[fungus beetle]]s, [[grain beetle]]s, [[lady beetle]]s, [[lizard beetle]]s, [[Mexican bean beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Cucujoidea]]",
parents = {"beetles"},
}
labels["ctenophores"] = {
type = "set",
description = "=haiwan in the [[filum]] [[Ctenophora]], the [[comb jelly|comb jellies]]",
parents = {"haiwan"},
}
labels["culicomorphs"] = {
type = "set",
description = "=[[biting midge]]s, [[blackfly|blackflies]], [[blood worm]]s, [[glassworm]]s, [[meniscus midge]]s, [[mosquito]]s, [[no-see-um]]s, [[non-biting midge]]s, [[phantom midge]]s and other [[insect]]s in the [[dipteran]] [[infraorder]] [[Culicomorpha]]",
parents = {"dipterans"},
}
labels["cyprinids"] = {
type = "set",
description = "=[[carp]], [[minnow]]s, [[chub]]s and other fish in the [[family]] [[Cyprinidae]]. In some classifications, this group is known as the [[superfamily]] [[Cyprinoidea]] or [[suborder]] [[Cyprinoidei]], with the [[cyprinid]] [[subfamily|subfamilies]] considered to be families",
parents = {"ikan", "ikan otosefalan"},
}
labels["dabbling ducks"] = {
type = "set",
description = "=[[gadwall]]s [[garganey]]s, [[mallard]]s, [[mottled duck]]s, [[pintail]]s, [[shoveler]]s, [[teal]]s, [[wigeon]]s and other ducks in either the [[anatid]] [[tribe]] [[Anatini]] or [[subfamily]] [[Anatinae]], depending on the classification",
parents = {"itik"},
}
labels["damselflies"] = {
type = "set",
description = "=[[bluestreak]]s, [[bluetail]]s, [[demoiselle]]s, [[flatwing]]s, [[redtail]]s, [[riverdamsel]]s, [[rubyspot]]s, [[spreadwing]]s, [[threadtail]]s, [[whitetip]]s, and other serangga in the [[odonate]] [[suborder]] [[Zygoptera]]",
parents = {"dragonflies and damselflies"},
}
labels["danaine butterflies"] = {
type = "set",
description = "=[[clearwing]]s, [[crow]]s, [[milkweed]]s, [[monarch]]s, [[paper kite butterfly|paper kite butterflies]], [[tiger]]s, [[wanderer]]s and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Danainae]]",
parents = {"nymphalid butterflies"},
}
labels["dasyuromorphs"] = {
type = "set",
description = "=[[thylacine]]s, [[numbat]]s, [[dasyure]]s, [[antechinus]]es, [[dibbler]]s, [[dunnart]]s, [[mulgara]]s. [[phascogale]]s, [[planigale]]s, [[quoll]]s, [[Tasmanian devil]]s, and other [[marsupial]]s in the [[order]] [[Dasyuromorphia]]",
parents = {"marsupials"},
}
labels["decapods"] = {
type = "set",
description = "=[[crabs]], [[crayfish]], [[lobster]]s, [[prawn]]s, ([[caridean]]) [[shrimp]], and many other [[crustacean]]s in the [[order]] [[Decapoda]]",
parents = {"crustaceans"},
}
labels["delphinids"] = {
type = "set",
description = "=(oceanic) [[dolphin]]s, [[grampus]]es, [[killer whale]]s/[[orca]]s, [[pilot whale]]s, and other [[cetacean]]s in the [[family]] [[Delphinidae]]",
additional = "Note: [[river dolphin]]s and [[porpoise]]s are in other families.",
parents = {"setasea"},
}
labels["designer dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
commonscat = true,
wpcat = true,
}
labels["dinosaur"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["lelabah dionika"] = {
type = "set",
description = "=[[crab spider]]s, [[flattie]]s, [[ground spider]]s, [[huntsman spider]]s, [[jumping spider]], [[scorpion spider]]s, and other [[lelabah]] in the [[entelegyne]] [[clade]] [[Dionycha]]",
parents = {"lelabah"},
}
labels["dipterans"] = {
type = "set",
description = "=[[fly|flies]], [[gnat]]s, [[midge]]s, [[mosquito]]s and other [[insect]]s in the order [[Diptera]]",
parents = {"serangga"},
}
labels["anjing"] = {
type = "set",
description = "default",
parents = {"kanid"},
commonscat = true,
wpcat = true,
}
labels["domestic cats"] = {
type = "set",
description = "default",
parents = {"kuring"},
}
labels["dragonflies and damselflies"] = {
type = "set",
description = "=serangga in the order [[Odonata]]",
parents = {"serangga"},
}
labels["itik"] = {
type = "set",
description = "default",
parents = {"anatid", "poltri"},
}
labels["dugongs and manatees"] = {
type = "set",
description = "=[[mammal]]s in the order [[Sirenia]]",
parents = {"mamalia"},
}
labels["eagles"] = {
type = "set",
description = "default",
parents = {"burung pemangsa"},
}
labels["earthworms"] = {
type = "set",
description = "=worms in the [[annelid]] [[suborder]] [[Lumbricina]]",
parents = {"annelids"},
}
labels["earwigs"] = {
type = "set",
description = "=serangga in the order [[Dermaptera]]",
parents = {"serangga"},
}
labels["echinoderms"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Echinodermata",
wpcat = true,
}
labels["eels"] = {
type = "set",
description = "=[[eel]]s, elongated, snakelike fish in the order [[Anguilliformes]]",
parents = {"ikan elopomorf"},
}
labels["ular elapid"] = {
type = "set",
description = "=[[cobra]]s, [[coral snake]]s, [[krait]]s, [[mamba]]s, [[sea snake]]s, and other [[venomous]] ular in the family [[Elapidae]]",
parents = {"ular"},
}
labels["elateroid beetles"] = {
type = "set",
description = "=[[click beetle]]s/[[elaterid]]s, [[fire beetle]]s, [[firefly|fireflies]]/[[lampyrid]]s, [[glowworm]]s, [[net-winged beetle]]s/[[lycid]]s, [[railroad worm]]s/[[phengodid]]s, [[soldier beetle]]s/[[cantharid]]s, [[throscid]]s, [[wireworm]]s and other [[beetle]]s in the [[superfamily]] [[Elateroidea]]",
parents = {"beetles"},
}
labels["elephants"] = {
type = "set",
description = "default",
parents = {"mamalia"},
commonscat = "Elephantidae",
wpcat = true,
}
labels["ikan elopomorf"] = {
type = "set",
description = "=[[bonefish]], [[eel]]s, [[gulper eel]]s, [[halosaur]]s, [[ladyfish]], [[tarpon]] and other fish in the [[superorder]] [[Elopomorpha]]",
parents = {"ikan"},
}
labels["emberizids"] = {
type = "set",
description = "=[[bunting]]s, [[yellowhammer]]s and related birds in the [[passerine]] family [[Emberizidae]]",
additional = "<u>Note</u>: for New World species that were formerly classified in this family, see [[:Category:{{{langcode}}}:New World sparrows]].",
parents = {"burung tenggek"},
}
labels["emydid turtles"] = {
type = "set",
description = "=(North American) [[box turtle]]s, [[chicken turtle]]s, [[cooter]]s, [[ellachick]]s, [[pond turtle]]s, [[slider]]s, [[terrapin]]s, and other [[turtle]]s in the [[family]] [[Emydidae]]",
parents = {"turtles"},
}
labels["equids"] = {
type = "set",
description = "default",
parents = {"odd-toed ungulates"},
}
labels["erinaceids"] = {
type = "set",
description = "=[[erinaceid]]s – hedgehogs and relatives",
parents = {"mamalia"},
}
labels["euplerids"] = {
type = "set",
description = "=[[euplerid]]s — mongoose-like mammals found in Madagascar",
parents = {"karnivor"},
}
labels["even-toed ungulates"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Artiodactyla]]",
parents = {"mamalia"},
}
labels["falconids"] = {
type = "set",
description = "=[[caracara]]s, [[falcon]]s, [[hobby|hobbies]], [[kestrel]]s, [[lanner]]s, [[merlin]]s, [[saker]]s, and other birds in the [[family]] [[Falconidae]]",
parents = {"burung pemangsa"},
}
labels["felids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["female haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan", "female"},
}
labels["ikan"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = true,
wpcat = true,
}
labels["flamingos"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["flatfish"] = {
type = "set",
description = "=[[sole]]s, [[flounder]]s, [[halibut]]s and other fish in the order [[Pleuronectiformes]]",
parents = {"ikan"},
}
labels["flatworms"] = {
type = "set",
description = "=[[fluke]]s, [[monogenean]]s, [[planarian]]s, [[polyclad]]s, [[tapeworm]]s, and other haiwan in the [[filum]] [[Platyhelminthes]]",
additional = "For terms related to the study of [[parasitic]] [[worm#Noun|worms]], see [[:Category:Helminthology]] and its subcategories.",
parents = {"cacing"},
}
labels["fleas"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["unggas"] = {
type = "set",
description = "=[[fowl]]s: land birds in the [[order]] [[Galliformes]]",
parents = {"burung"},
}
labels["foxes"] = {
type = "set",
description = "default",
parents = {"kanid"},
}
labels["burung air tawar"] = {
type = "set",
description = "=birds that live mainly in [[freshwater]] areas, including [[estuaries]]",
parents = {"burung"},
}
labels["freshwater whitefish"] = {
type = "set",
description = "=[[cisco]]s, [[houting]]s, [[inconnu]]s, [[lavaret]]s, [[marena]]s, [[omul]]s, [[Otsego bass]], [[peled]]s, [[pollan]]s, [[roundfish]], [[tullibee]]s, [[vendace]]s, [[whitefish]] and other fish in the [[salmonid]] [[subfamily]] [[Coregoninae]]",
parents = {"salmonids"},
}
labels["frogs"] = {
type = "set",
description = "default",
parents = {"anurans"},
}
labels["gadiforms"] = {
type = "set",
description = "=[[cod]], [[haddock]], [[hake]] and other fish in the [[order]] [[Gadiformes]]",
parents = {"ikan"},
}
labels["ikan gasterosteiform"] = {
type = "set",
description = "=[[stickleback]]s, [[hypoptychid]] [[sand eel]]s, [[tubesnout]]s and other fish in the [[order]] [[Gasterosteiformes]]",
additional = "Note: See [[:Category:Ikan singnatiform]] for a group formerly included within this order.",
parents = {"ikan"},
}
labels["gastropod"] = {
type = "set",
description = "default",
parents = {"moluska"},
}
labels["geckos"] = {
type = "set",
description = "=[[lizard]]s in the [[infraorder]] [[Gekkota]], except for the [[legless lizards]] or [[pygopod]]s",
parents = {"lizards"},
}
labels["angsa"] = {
type = "set",
description = "default",
parents = {"anatid", "poltri"},
}
labels["geometrid moths"] = {
type = "set",
description = "=[[carpet]]s, [[engrailed]]s, [[heath]]s, [[pug]]s, [[peppered moth]]s, [[streak]]s, [[wave]]s and other [[moth]]s in the [[family]] [[Geometridae]], most of which have [[caterpillar]]s known as [[inchworm]]s, [[looper]]s, [[measuring worm]]s or [[spanworm]]s",
parents = {"moths"},
}
labels["goats"] = {
type = "set",
description = "default",
parents = {"caprines", "ternakan"},
}
labels["gobies"] = {
type = "set",
description = "=[[goby|gobies]], [[dartfish]], [[mudskipper]]s, [[sea gudgeon]]s, [[sleeper]]s, [[wormfish]], and other [[fish]] in the [[perciform]] [[suborder]] [[Gobioidei]]",
parents = {"ikan"},
}
labels["gossamer-winged butterflies"] = {
type = "set",
description = "=[[blue]]s, [[copper]]s, [[elfin]]s, [[harvester]]s, [[hairstreak]]s, [[sunbeam]]s and other [[butterfly|butterflies]] in the [[family]] [[Lycaenidae]]",
parents = {"butterflies"},
}
labels["grebes"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["grouse"] = {
type = "set",
description = "=[[blackcock]]s, [[capercaillie]]s, [[grouse]], [[moorcock]]s, [[prairie chicken]]s, [[ptarmigan]]s, [[sagehen]]s, and other birds in the [[phasianid]] [[subfamily]] [[Tetraoninae]]",
parents = {"unggas"},
}
labels["gruiforms"] = {
type = "set",
description = "=[[coot]]s, [[crake]]s, [[crane]]s, [[finfoot]]s, [[flufftail]]s, [[gallinule]]s, [[limpkin]]s, [[rail]]s, [[sungrebe]]s, [[trumpeter]]s, and other birds in the [[order]] [[Gruiformes]]",
parents = {"burung air tawar"},
}
labels["gulls"] = {
type = "set",
description = "=[[gull]]s, [[seabird]]s in the [[family]] [[Laridae]]",
parents = {"burung laut"},
}
labels["anjing pemburu"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["hares"] = {
type = "set",
description = "default",
parents = {"lagomorphs"},
}
labels["hemipterans"] = {
type = "set",
description = "=[[aphid]]s, [[leafhopper]]s, [[scale insect]]s, [[true bug]]s, [[whitefly|whiteflies]], and other [[insect]]s in the order [[Hemiptera]]",
parents = {"serangga"},
}
labels["herding dogs"] = {
type = "set",
description = "default",
parents = {"pastoral dogs"},
}
labels["herons"] = {
type = "set",
description = "=[[heron]]s, [[bittern]]s and [[egret]]s",
parents = {"burung air tawar"},
}
labels["herpestids"] = {
type = "set",
description = "=[[herpestid]]s- mongooses, meerkats, and relatives",
parents = {"karnivor"},
}
labels["herrings"] = {
type = "set",
description = "=[[herring]]s, [[shad]]s, [[sardine]]s and other fish in the family [[Clupeidae]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ikan holostean"] = {
type = "set",
description = "=[[gar]]s and [[bowfin]]s, primitive fish in the [[infraclass]] [[Holostei]]",
parents = {"ikan"},
}
labels["hominid"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["honeyeaters"] = {
type = "set",
description = "=Australian [[chat]]s, [[bellbird]]s, [[friarbird]]s, [[gibberbird]]s, [[honeyeater]]s, [[miner]]s, [[spinebill]]s, [[wattlebird]]s, and other birds in the [[family]] [[Meliphagidae]]",
parents = {"meliphagoid birds"},
}
labels["hoopoes and hornbills"] = {
type = "set",
description = "=[[hoopoe]]s, [[woodhoopoe]]s (including [[scimitarbill]]s), [[hornbill]]s, [[ground hornbill]]s, and other birds in the taxonomic order [[Bucerotiformes]]",
parents = {"burung"},
}
labels["horseflies"] = {
type = "set",
description = "=[[blind-fly|blind-flies]], [[breezefly|breezeflies]], [[cleg]]s, [[deerfly|deerflies]], [[forest fly|forest flies]], [[gadfly|gadflies]], [[horsefly|horseflies]], [[oxfly|oxflies]], [[zimb]]s, and other biting flies in the [[family]] [[Tabanidae]]",
parents = {"dipterans"},
}
labels["horse breeds"] = {
type = "set",
description = "default",
parents = {"kuda"},
commonscat = true,
wpcat = true,
}
labels["kuda"] = {
type = "set",
description = "default",
parents = {"equids", "ternakan"},
}
labels["hummingbirds"] = {
type = "set",
description = "default",
parents = {"apodiforms"},
}
labels["hunting dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["hyaenids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["hydrozoans"] = {
type = "set",
description = "=[[bluebottle]]s, [[calycophoran]]s, [[filiferan]]s, [[hydra]]s, [[hydractinian]]s, [[leptothecate]]s, [[narcomedusa]]s, [[pandeid]]s, [[physonect]]s, [[plumularian]]s, [[Portuguese man-of-war]]s, [[siphonophore]]s, [[stylaster]]s, [[sea fir]]s, [[sea ginger]], [[trachylid]]s, [[trachymedusa]]s, amd other haiwan in the [[cnidarian]] [[class]] [[Hydrozoa]]",
parents = {"knidaria"},
}
labels["Hymenoptera"] = {
type = "set",
description = "=[[semut]], [[lebah]], [[penyengat]] dan serangga lain dalam order [[Hymenoptera]]",
parents = {"serangga"},
}
labels["hyraxes"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["ibises and spoonbills"] = {
type = "set",
description = "=[[ibis]]es and [[spoonbill]]s",
parents = {"burung air tawar"},
}
labels["ichthyosauromorphs"] = {
type = "set",
description = "=[[ichthyosaurs]] and related groups of [[extinct]] [[aquatic]] [[reptile]]s in the [[clade]] [[Ichthyosauromorpha]]",
parents = {"reptilia"},
}
labels["icterids"] = {
type = "set",
description = "=birds in the [[New World]] [[passerine]] family [[Icteridae]]",
parents = {"burung tenggek"},
}
labels["iguanoid lizards"] = {
type = "set",
description = "=[[anole]]s, [[basilisk]]s, [[collared lizard]]s, [[chuckwalla]]s, [[fence lizard]]s, [[fringe-toed lizard]]s, [[horned lizard]]s, [[iguana]]s, [[leopard lizard]]s, [[side-blotched lizard]]s, [[zebra-tailed lizard]]s and other [[lizard]]s formerly included in the [[family]] [[Iguanidae]], and now mostly treated as comprising either the [[infraorder]] [[Pleurodonta]] or the [[superfamily]] [[Iguanoidea]]",
parents = {"lizards"},
}
labels["serangga"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["isopods"] = {
type = "set",
description = "=[[gribble]]s, [[pillbug]]s, [[salve bug]]s, [[slater]]s, [[sea slater]]s, [[sowbug]]s, [[woodlouse|woodlice]], and other [[crustacean]]s in the [[order]] [[Isopoda]]",
parents = {"crustaceans"},
}
labels["jackfish"] = {
type = "set",
description = "=[[jack]]s, [[pompano]]s, [[jack mackerel]]s, [[scad]]s and other fish in the family [[Carangidae]]",
parents = {"ikan perkoid"},
}
labels["ikan tanpa rahang"] = {
type = "set",
description = "=[[lamprey]]s and [[hagfish]]: primitive eel-like fishes that have no jaws",
parents = {"ikan"},
}
labels["kingfishers"] = {
type = "set",
description = "default",
parents = {"coraciiforms"},
}
labels["kites (birds)"] = {
type = "set",
description = "=[[hawk]]s in the [[accipitrid]] [[subfamily|subfamilies]] [[Milvinae]] and [[Elaninae]], as well as some in the subfamily [[Perninae]]",
parents = {"burung pemangsa"},
}
labels["ikan kifosid"] = {
type = "set",
description = "=[[blackfish]], [[drummer]]s, [[footballer]]s, [[greenfish]], [[halfmoon]]s, [[luderick]]s, [[mado]]s, [[moonlighter]]s, [[nibbler]]s, [[opaleye]]s, [[sea chub]]s, [[stripey]]s, [[sweep]]s and other fish in the [[percoid]] [[family]] [[Kyphosidae]]",
parents = {"ikan perkoid"},
}
labels["ikan labroid"] = {
type = "set",
description = "=[[anemonefish]], [[cale]]s, [[cichlid]]s, [[clownfish]], [[damselfish]], [[parrotfish]], [[surfperch]], [[wrasse]]s, and other fish in the [[perciform]] [[suborder]] [[Labroidei]]",
parents = {"ikan"},
}
labels["ikan labirin"] = {
type = "set",
description = "=[[climbing perch]], [[gourami]]s, [[paradisefish]], [[Siamese fighting fish]] and other fish in the [[suborder]] [[Anabantoidei]]",
parents = {"ikan"},
}
labels["lacertoid lizards"] = {
type = "set",
description = "=[[amphisbaena]]s, [[caiman lizard]]s, [[green lizard]]s, [[ocellated lizard]]s, [[racerunner]]s, [[rock lizard]]s, [[tegu]]s, [[teiid]]s, [[thunderworm]]s, [[viviparous lizard]]s, [[wall lizard]]s, [[whiptail]]s, and other [[lizard]]s in the [[superfamily]] [[Lacertoidea]]",
parents = {"lizards"},
}
labels["lagomorphs"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["lamniform sharks"] = {
type = "set",
description = "=[[basking shark]]s, [[goblin shark]]s, [[great white shark]]s, [[mako shark]]s, [[megamouth shark]]s, [[porbeagle]]s, [[sand shark]]s, [[thresher shark]]s, and other [[shark]]s in the [[order]] [[Lamniformes]]",
parents = {"jerung"},
}
labels["ikan lampriform"] = {
type = "set",
description = "=[[crestfish]], [[oarfish]], [[opah]]s, [[ribbonfish]], [[velifer]]s and other fish in the [[order]] [[Lampridiformes]] (not to be confused with the unrelated [[lamprey]]s)",
parents = {"ikan"},
}
labels["larks"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["laughingthrushes"] = {
type = "set",
description = "=birds in the [[family]] [[Leiothrichidae]]",
parents = {"burung tenggek"},
}
labels["leaf warblers"] = {
type = "set",
description = "=birds in the family [[Phylloscopidae]]",
parents = {"warblers"},
}
labels["kera kecil"] = {
type = "set",
description = "=[[gibbon]]s (including [[hoolock]]s, [[lar gibbon]]s [[wow-wow]]s, etc.) and [[siamang]]s, comprising the [[family]] [[Hylobatidae]], which is closely related to the [[hominid]]s",
parents = {"primate"},
}
labels["ikan leusisin"] = {
type = "set",
description = "=[[bream]]s, [[chub]]s, [[dace]]s, [[ide]]s, many [[minnow]]s, [[nase]]s, [[roach]]es, [[shiner]]s, [[ziege]]s, and other fish in the [[cyprinid]] [[subfamily]] [[Leuciscinae]], sometimes treated as the [[family]] [[Leuciscidae]], or as the [[tribe]] [[Leuciscini]] within the [[subfamily]] [[Cyprininae]]",
parents = {"cyprinids"},
}
labels["libellulid dragonflies"] = {
type = "set",
description = "=[[amberwing]]s, [[basker]]s, [[darter]]s, [[dropwing]]s, [[duskhawk]]s, [[flutterer]]s, [[glider]]s, [[meadowhawk]]s, [[pennant]]s, [[percher]]s, [[skimmer]]s, [[slimwing]]s, [[swampdragon]]s, [[twister]]s, and other [[dragonfly|dragonflies]] in the [[family]] [[Libellulidae]]",
parents = {"dragonflies and damselflies"},
}
labels["lice"] = {
type = "set",
description = "=[[parasitic]] serangga in the [[order]] [[Psocodea]]",
parents = {"serangga"},
}
labels["limenitidine butterflies"] = {
type = "set",
description = "=[[admiral]]s, [[clipper]]s, [[count]]s, [[duke]]s, [[purple]]s, [[sister]]s, and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Limenitidinae]]",
parents = {"nymphalid butterflies"},
}
labels["littorinimorphs"] = {
type = "set",
description = "=[[boat shell]]s, [[carrier shell]]s, [[conch]]s, [[cowry|cowries]], [[flamingo tongue]]s, [[helmet shell]]s, [[moon snail]]s, [[pebblesnail]]s, [[trumpet shell]]s, [[velutinid]]s, [[winkle]]s, [[worm-shell]]s, and other [[gastropod]]s in the [[order]] [[Littorinimorpha]]",
parents = {"gastropod"},
}
labels["livestock guardian dogs"] = {
type = "set",
description = "default",
parents = {"pastoral dogs"},
}
labels["lizards"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["loaches"] = {
type = "set",
description = "=fish in the [[cypriniform]] [[superfamily]] [[Cobitoidea]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ikan sirip lobus"] = {
type = "set",
description = "=[[coelacanth]]s, [[lungfish]] and other fishes in the [[subclass]] [[Sarcopterygii]] of the [[bony fish]]es",
additional = "<u>Please note</u>: although the [[tetrapod]]s (including all [[reptile]]s, [[amphibian]]s, [[bird]]s and [[mammal]]s) are descended from within this group, they are excluded from this category by not being fish.",
parents = {"ikan"},
}
labels["loons"] = {
type = "set",
description = "=[[loon]]s, birds known as [[diver]]s outside the US",
parents = {"burung air tawar"},
}
labels["macaques"] = {
type = "set",
description = "=[[Barbary ape]]s, [[bonnet monkey]]s, [[crab-eating macaque]]s, [[Japanese macaque]]s, [[moor macaque]]s, [[pigtail macaque]]s, [[rhesus monkey]]s, [[toque]]s, and other [[Old World monkey]]s in the [[genus]] ''[[Macaca]]''",
parents = {"monyet dunia lama"},
}
labels["macropods"] = {
type = "set",
description = "=[[bettong]]s, [[kangaroo]]s, [[pademelon]]s, [[potoroo]]s, [[quokka]]s, [[wallaby]]s, and other [[marsupial]]s in the [[diprotodont]] [[suborder]] [[Macropodiformes]]",
parents = {"marsupials"},
}
labels["malaconotoid birds"] = {
type = "set",
description = "=[[Australian magpie]]s, [[bushshrike]]s, [[butcherbird]]s, [[boubou]]s, [[brubru]]s, [[currawong]]s, [[gonolek]]s, [[squeaker]]s, [[vanga]]s, and other birds in the [[passerine]] [[superfamily]] [[Malaconotoidea]]",
parents = {"burung tenggek"},
}
labels["male haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan", "male"},
}
labels["mamalia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
}
labels["mantids"] = {
type = "set",
description = "=serangga in the [[order]] [[Mantodea]], often known as [[praying mantis]]es",
parents = {"serangga"},
}
labels["marsupials"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["mayflies"] = {
type = "set",
description = "=serangga in the [[order]] [[Ephemeroptera]]",
parents = {"serangga"},
}
labels["megalopterans"] = {
type = "set",
description = "=[[alderfly|alderflies]], [[dobsonfly|dobsonflies]], [[fishfly|fishflies]] and other serangga in the [[order]] [[Megaloptera]]",
parents = {"serangga"},
}
labels["meliphagoid birds"] = {
type = "set",
description = "=[[blue wren]]s, [[bristlebird]]s, [[emu-wren]]s, [[fairywren]]s, [[gerygone]]s, [[grasswren]]s, [[honeyeater]]s, [[pardalote]]s, [[pilotbird]]s, [[redthroat]]s, [[scrubwren]]s, [[thornbill]]s, [[weebill]]s, [[whiteface]]s, and other birds in the [[passerine]] [[superfamily]] [[Meliphagoidea]]",
parents = {"burung tenggek"},
}
labels["mephitids"] = {
type = "set",
description = "=[[mephitid]]s: skunks and stink badgers",
parents = {"karnivor"},
}
labels["mergansers"] = {
type = "set",
description = "=[[diving]] [[duck]]s in the [[genus]] ''[[Mergus]]'' and a few similar species",
parents = {"itik"},
}
labels["mimids"] = {
type = "set",
description = "=[[catbird]]s, [[mockingbird]]s, [[thrasher]]s and other birds in the [[passerine]] family [[Mimidae]]",
parents = {"burung tenggek"},
}
labels["mites and ticks"] = {
type = "set",
description = "=[[arachnid]]s in the [[subclass]] [[Acari]]",
parents = {"araknid"},
}
labels["moluska"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Mollusca",
wpcat = "Molluscs",
}
labels["monyet"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["monotremes"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["nyamuk"] = {
type = "set",
description = "=[[insect]]s in the [[dipteran]] [[family]] [[Culicidae]]",
parents = {"culicomorphs"},
}
labels["moths"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["murids"] = {
type = "set",
description = "=a number of [[rats]], [[mice]], and other [[rodent]]s in the [[Old World]] [[family]] [[Muridae]]",
parents = {"roden"},
}
labels["muscicapids"] = {
type = "set",
description = "=birds in the [[passerine]] family [[Muscicapidae]]",
parents = {"burung tenggek"},
}
labels["muscoid flies"] = {
type = "set",
description = "=[[anthomyiid]]s such as [[root fly|root flies]], [[cabbage fly|cabbage flies]] and [[onion fly|onion flies]]; [[fanniid]]s; [[muscid]]s such as [[housefly|houseflies]], [[face fly|face flies]] and [[stable fly|stable flies]]; [[scathophagid]]s such as [[dungfly|dungflies]]; and other [[fly|flies]] in the [[dipteran]] [[superfamily]] [[Muscoidea]]",
parents = {"dipterans"},
}
labels["mustelids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["lelabah migalomorf"] = {
type = "set",
description = "=[[baboon spider]]s, [[barking spider]]s, [[bird spider]]s, [[purseweb spider]]s, [[tarantula]]s, [[trapdoor spider]]s, and other [[spider]]s in the [[infraorder]] [[Mygalomorphae]]",
parents = {"lelabah"},
}
labels["myriapods"] = {
type = "set",
description = "=[[centipede]]s, [[millipede]]s, [[pauropod]]s, [[symphylan]]s, and other [[arthropod]]s in the [[subfilum]] [[Myriapoda]]",
parents = {"artropod"},
}
labels["myrmicine ants"] = {
type = "set",
description = "=[[ant]]s in the [[subfamily]] [[Myrmicinae]]",
parents = {"ants"},
}
labels["nematodes"] = {
type = "set",
description = "=[[filaria]], [[gapeworm]]s, [[lungworm]]s, [[pinworm]]s, [[threadworm]]s, [[wheatworm]]s, [[whipworm]]s and other [[worm]]s in the [[filum]] [[Nematoda]]",
parents = {"cacing"},
}
labels["neogastropod"] = {
type = "set",
description = "=[[admiral shell]]s, [[cone snail]]s, [[harp shell]]s, [[murex]]es, [[olive]]s, [[rhombus]]es, [[spindle]]s, [[tulip shell]]s, [[turnip shell]]s, [[volute]]s, [[whelk]]s, [[winkle]]s and other [[gastropod]]s in the [[clade]] [[Neogastropoda]] (treated as an [[order]] in some classifications)",
parents = {"gastropod"},
}
labels["monyet dunia baharu"] = {
type = "set",
description = "=[[capuchin]]s, [[howler monkey]]s, [[marmoset]]s, [[night monkey]]s, [[saki]]s, [[spider monkey]]s, [[squirrel monkey]]s, [[tamarin]]s, [[titi]]s, [[uakari]]s, [[woolly monkey]]s, and other [[monkey]]s in the [[parvorder]] [[Platyrrhini]]",
parents = {"monyet"},
}
labels["New World quails"] = {
type = "set",
description = "=birds in the [[family]] [[Odontophoridae]], most of which live in the [[New World]] and are known as [[quail]]s, but the family also includes the African [[genus]] ''[[Ptilopachus]]'' and some [[species]] are known as partridges",
parents = {"unggas"},
}
labels["New World sparrows"] = {
type = "set",
description = "=[[sparrow]]- and [[finch]]-like birds in the [[passerine]] [[family]] [[Passerellidae]], until recently considered part of the family [[Emberizidae]]",
parents = {"burung tenggek"},
}
labels["New World warblers"] = {
type = "set",
description = "=birds in the family [[Parulidae]]",
parents = {"warblers"},
}
labels["neuropterans"] = {
type = "set",
description = "=[[antlion]]s, [[lacewing]]s, [[mantisfly|mantisflies]], [[owlfly|owlflies]] and other serangga in the [[order]] [[Neuroptera]]",
parents = {"serangga"},
}
labels["newts"] = {
type = "set",
description = "=[[terrestrial]] [[salamander]]s in the [[subfamily]] [[Pleurodelinae]]",
parents = {"salamanders"},
}
labels["noctuoid moths"] = {
type = "set",
description = "=[[armyworm]]s, [[cinnabar]]s, [[corn earworm]]s, [[cutworm]]s, [[gypsy moth]]s, [[owlet moth]]s, [[processionary|processionaries]], [[tiger moth]]s, [[underwing]]s, [[wainscot]]s, [[wooly bear]]s, and many other [[moth]]s (and [[caterpillar]]s) in the [[superfamily]] [[Noctuoidea]]",
parents = {"moths"},
}
labels["nudibranchs"] = {
type = "set",
description = "=[[sea slug]]s in the [[gastropod]] [[order]] [[Nudibranchia]]",
parents = {"gastropod"},
}
labels["nymphalid butterflies"] = {
type = "set",
description = "=[[admiral]]s, [[brown]]s, [[buckeye]]s, [[checkerspot]]s, [[emperor]]s, [[fritillary|fritillaries]], [[leafwing]]s, [[longwing]]s, [[monarch]]s, [[morpho]]s, [[painted lady|painted ladies]], [[ringlet]]s, [[satyr]]s, [[sister]]s, [[snout]]s, [[tortoiseshell]]s, and other butterflies in the [[family]] [[Nymphalidae]]",
parents = {"butterflies"},
}
labels["kurita"] = {
type = "set",
description = "default",
parents = {"sefalopod"},
}
labels["odd-toed ungulates"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Perissodactyla]], including the [[equid]]s, [[tapir]]s and [[rhinoceros]]es",
parents = {"mamalia"},
}
labels["oestroid flies"] = {
type = "set",
description = "=[[blowfly|blowflies]], [[bluebottle]]s, [[botfly|botflies]], [[flesh fly|flesh fles]], [[greenbottle]]s, [[mango fly|mango flies]], [[screwworm]]s, [[tachinid]]s, [[torsalo]]s, [[tumbu fly|tumbu flies]], [[warble fly|warble flies]], and other flies in the [[superfamily]] [[Oestroidea]]",
parents = {"dipterans"},
}
labels["monyet dunia lama"] = {
type = "set",
description = "=[[baboon]]s, [[colobus]], [[douc]]s, [[gelada]]s, [[green monkey]]s, [[grivet]]s, [[langur]]s, [[malbrouck]]s, [[mandrill]]s, [[mangabey]]s, [[patas monkey]]s, [[proboscis monkey]]s, [[talapoin]]s, [[vervet]]s, and other [[monkeys]] in the [[family]] [[Cercopithecidae]], the only [[members]] of the [[parvorder]] [[Catarrhini]] aside from the greater/lesser apes and humans",
parents = {"monyet"},
}
labels["Old World orioles"] = {
type = "set",
description = "=[[perching bird]]s in the [[family]] [[Oriolidae]], which are not closely related to the New World orioles in the family [[Icteridae]]",
parents = {"burung tenggek"},
}
labels["ornithopods"] = {
type = "set",
description = "=[[camptosaurid]]s, [[hadrosaur]]s, [[iguanodontid]]s, [[lambeosaurid]]s, [[rhabdodontid]]s, [[saurolophid]]s, [[thescelosaurid]]s, [[trachodontid]]s, and other [[dinosaur]]s in the [[ornithischian]] [[clade]] [[Ornithopoda]]",
parents = {"dinosaur"},
}
labels["ikan osteoglosomorf"] = {
type = "set",
description = "=[[aba]]s, [[arapaima]]s, [[arowana]]s, [[butterfly fish]], [[elephantfish]], [[featherback]]s, [[mooneye]]s and other fish in the [[superorder]] [[Osteoglossomorpha]]",
parents = {"ikan"},
}
labels["otariid seals"] = {
type = "set",
description = "=[[mammal]]s in the [[family]] [[Otariidae]], including the [[fur seal]]s and [[sea lion]]s",
parents = {"pinnipeds"},
}
labels["burung otidimorf"] = {
type = "set",
description = "=[[bustard]]s in the [[family]] [[Otididae]] and [[order]] [[Otidiformes]]; [[turaco]]s or [[lourie]]s, [[go-away bird]]s, [[plantain-eater]]s, etc., in the [[family]] [[Musophagidae]] and [[order]] [[Musophagiformes]]; and [[cuckoo]]s in the [[family]] [[Cuculidae]] and [[order]] [[Cuculiformes]]; all in the [[clade]] [[Otidimorphae]]",
parents = {"burung"},
}
labels["ikan otosefala"] = {
type = "set",
description = "=[[anchovy|anchovies]], [[beaked salmon]], [[carp]], [[catfish]], [[characin]]s, [[electric eel]]s, [[ghost knifefish]], [[herring]]s, [[loach]]es, [[milkfish]], [[minnow]]s, [[mousefish]], [[slickhead]]s, [[sucker]]s, [[tubeshoulder]]s, and other fish in the [[clade]] [[Otocephala]]",
parents = {"ikan"},
}
labels["ovenbirds"] = {
type = "set",
description = "=burung in the [[suboscine]] family [[Furnariidae]], including the former family Dendrocolaptidae (now the [[subfamily]] [[Dendrocolaptinae]])",
parents = {"suboscines"},
}
labels["owls"] = {
type = "set",
description = "default",
parents = {"burung pemangsa"},
}
labels["pangolins"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Pholidota]]",
parents = {"mamalia"},
}
labels["panthers"] = {
type = "set",
description = "=[[panther]]s in the sense of members of the genus ''[[Panthera]]''",
parents = {"felids"},
}
labels["parrots"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["pastoral dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["penguins"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["pentatomoid bugs"] = {
type = "set",
description = "=[[acanthosomatid]]s, [[burrowing bug]]s, [[jewel bug]]s, [[shield bug]]s, [[stinkbug]]s, [[thyreocorid]]s, and other [[true bug]]s in the [[superfamily]] [[Pentatomoidea]]",
parents = {"true bugs"},
}
labels["perch and darters"] = {
type = "set",
description = "=fish in the family [[Percidae]]",
parents = {"ikan perkoid"},
}
labels["burung tenggek"] = {
type = "set",
description = "=Burung tenggek: salah satu ahli order [[Passeriformes]]",
parents = {"burung"},
}
labels["ikan perkoid"] = {
type = "set",
description = "=[[archerfish]], [[bass]], [[bigeye]]s, [[bluefish]], [[butterflyfish]], [[cardinalfish]], [[cobia]], [[croaker]]s, [[flagtail]]s, [[goatfish]], [[grouper]]s, [[grunt]]s, [[horse mackerel]], [[jack]]s, [[jawfish]], [[leaffish]], [[mahi-mahi]], [[mojarra]], [[perch]], [[pomfret]]s, [[pompano]], [[ponyfish]], [[porgy|porgies]], [[remora]]s, [[roosterfish]], [[sea bass]], [[sea bream]], [[snapper]], [[sunfish]], [[sweeper]]s, [[threadfin]], [[tilefish]], [[wreckfish]], and other [[perciform]] fish in the [[superfamily]] [[Percoidea]]",
parents = {"ikan"},
}
labels["phiomorphs"] = {
type = "set",
description = "=[[blesmol]]s, [[sand mole]]s, [[mole rat]]s, [[dassie rat]]s or [[rock rat]]s, [[Old World porcupine]]s, [[cane rat]]s or [[grasscutter]]s and other [[rodent]]s in the parvorder [[Phiomorpha]], which is the Old World counterpart of the [[caviomorph]]s",
parents = {"roden"},
}
labels["phocid seals"] = {
type = "set",
description = "=[[mammal]]s in the [[family]] [[Phocidae]], including the [[earless seal]]s (also known as [[true seal]]s)",
parents = {"pinnipeds"},
}
labels["piciforms"] = {
type = "set",
description = "=[[woodpecker]]s, [[aracari]]s, [[coppersmith]]s, [[honeyguide]]s, [[jacamar]]s, [[nunlet]]s, [[puffbird]]s, [[toucan]]s, and other burung in the [[order]] [[Piciformes]]",
parents = {"burung"},
}
labels["pierid butterflies"] = {
type = "set",
description = "=[[brimstone]]s, [[orange tip]]s, [[sulfur]]s, [[white]]s and other [[butterfly|butterflies]] in the [[family]] [[Pieridae]]",
parents = {"butterflies"},
}
labels["pigs"] = {
type = "set",
description = "default",
parents = {"even-toed ungulates", "ternakan"},
commonscat = "Suidae",
wpcat = true,
}
labels["pikes (fish)"] = {
type = "set",
description = "=fish in the family [[Esocidae]]",
parents = {"ikan"},
}
labels["pinnipeds"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["pipits and wagtails"] = {
type = "set",
description = "=burung in the [[passerine]] family [[Motacillidae]]",
parents = {"burung tenggek"},
}
labels["placoderms"] = {
type = "set",
description = "=[[extinct]] armored fish of the [[class]] [[Placodermi]] from the [[Silurian]] and [[Devonian]] [[geologic]] [[period]]s",
parents = {"ikan"},
}
labels["plovers and lapwings"] = {
type = "set",
description = "=burung in the [[charadriiform]] [[family]] [[Charadriidae]]",
parents = {"shorebirds"},
}
labels["pomfrets"] = {
type = "set",
description = "=fish in the family [[Bramidae]]",
parents = {"ikan perkoid"},
}
labels["primat"] = {
type = "set",
description = "default",
parents = {"mamalia"},
commonscat = true,
wpcat = true,
}
labels["procyonids"] = {
type = "set",
description = "=[[procyonid]]s: ([[raccoon]]s, [[coati]]s, [[kinkajou]]s, [[olingo]]s, [[ringtail]]s and [[cacomistle]]s)",
parents = {"karnivor"},
}
labels["prosimian"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["pterosaurs"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["pyraloid moths"] = {
type = "set",
description = "=[[bee moth]]s, [[flour moth]]s, [[leaf crumpler]]s, [[magpie moth]]s, [[melonworm]]s, [[mint moth]]s, [[orangeworm]]s, [[pantry moth]]s, [[pickleworm]]s, [[snout moth]]s, [[veneer moth]]s, [[wax moth]]s and other [[crambid]] and [[pyralid]] [[moths]] in the [[superfamily]] [[Pyraloidea]]",
parents = {"moths"},
}
labels["rabbits"] = {
type = "set",
description = "default",
parents = {"lagomorphs"},
}
labels["rallids"] = {
type = "set",
description = "=[[rallid]]s: [[rail]]s and other burung in the family [[Rallidae]]",
parents = {"gruiforms"},
}
labels["ratites"] = {
type = "set",
description = "=[[ratite]]s: burung in the superorder [[Palaeognathae]], including large flightless burung such as [[ostrich]]es, and [[emu]]s, as well as the smaller [[kiwi]]s and [[flighted]] [[tinamous]]",
parents = {"burung"},
}
labels["rays and skates"] = {
type = "set",
description = "=[[fish]] in the superorder [[Batoidea]]",
parents = {"ikan"},
}
labels["reindeers"] = {
type = "set",
description = "default",
parents = {"cervids"},
}
labels["reptilia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Reptilia",
wpcat = true,
}
labels["retrievers"] = {
type = "set",
description = "default",
parents = {"anjing pemburu"},
}
labels["rhinoceroses"] = {
type = "set",
description = "=[[rhinoceros]]es, [[mammal]]s in the [[perissodactylic]] [[family]] [[Rhinocerotidae]]",
parents = {"odd-toed ungulates"},
}
labels["roden"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["salamanders"] = {
type = "set",
description = "=[[amphiuma]]s, [[axolotl]]s, [[hellbender]]s, [[mud puppy|mud puppies]], [[olm]]s, [[newt]]s, [[salamander]]s, [[siren]]s, and other [[amphibian]]s in the [[order]] [[Caudata]]",
parents = {"amfibia"},
}
labels["salmonids"] = {
type = "set",
description = "=[[salmon]]s, [[trout]], and other fish in the family [[Salmonidae]]",
parents = {"ikan"},
}
labels["saturniid moths"] = {
type = "set",
description = "=[[Atlas moth]]s, [[cecropia]]s, [[hickory horned devil]]s, [[io moth]]s, [[luna moth]]s, [[polyphemus moth]]s, and other [[moth]]s (and [[caterpillar]]s) in the [[family]] [[Saturniidae]]",
parents = {"moths"},
}
labels["satyrine butterflies"] = {
type = "set",
description = "=[[brown]]s, [[forester]]s, [[grayling]]s, [[heath]]s, [[palmfly|palmflies]], [[ringlet]]s, [[satyr]]s, and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Satyrinae]]",
parents = {"nymphalid butterflies"},
}
labels["sauropods"] = {
type = "set",
description = "=[[apatosaur]]s, [[brachiosaur]]s, [[brontosaur]]s, [[camarasaur]]s, [[cetiosaur]]s, [[diplodocus]]es, [[saltasaurid]]s, [[titanosaurian]]s, [[turiasaur]]s, [[vulcanodontid]]s, and other [[dinosaurs]] in the [[saurischian]] [[infraorder]] [[Sauropoda]]",
parents = {"dinosaur"},
}
labels["sauropterygians"] = {
type = "set",
description = "=[[elasmosaur]]s, [[placodont]]s, [[plesiosaur]]s, and other extinct aquatic [[reptile]]s in the [[superorder]] [[Sauropterygia]]",
parents = {"reptilia"},
}
labels["sawflies and wood wasps"] = {
type = "set",
description = "=[[horntail]]s, [[pigeon tremex]], [[rose slug]]s, [[sawfly|sawflies]], [[wood wasp]]s, and other primitive [[hymenopteran]]s in the [[suborder]] [[Symphyta]]",
parents = {"Hymenoptera"},
}
labels["serangga teritip"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Coccoidea]]",
parents = {"hemipterans"},
}
labels["scarabaeoids"] = {
type = "set",
description = "=[[cockchafer]]s, [[dor]]s, [[dung beetle]]s, [[June beetle]]s, [[rain beetle]]s, [[rose chafer]]s, [[scarab]]s, [[stag beetle]]s, and other beetles in the [[superfamily]] [[Scarabaeoidea]]",
parents = {"beetles"},
}
labels["scenthounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["scincomorph lizards"] = {
type = "set",
description = "=[[blue-tongue lizard]]s, [[night lizard]]s, [[sandfish]], [[skink]]s, [[sungazer]]s, and other [[lizard]]s in the [[infraorder]] [[Scincomorpha]]",
parents = {"lizards"},
}
labels["scolopacids"] = {
type = "set",
description = "=[[curlew]]s, [[dunlin]]s, [[godwit]]s, [[knot]]s, [[redshank]]s, [[ruff]]s, [[sandpiper]]s, [[snipe]]s, [[stint]]s, [[turnstone]]s, [[tattler]]s, [[whimbrel]]s, [[woodcock]]s, [[yellowleg]]s, and other burung in the [[charadriiform]] [[family]] [[Scolopacidae]]",
parents = {"shorebirds"},
}
labels["scombroids"] = {
type = "set",
description = "=[[mackerel]]s, [[tuna]]s, [[barracuda]]s, [[swordfish]], and other fish in the suborder [[Scombroidei]]",
parents = {"ikan"},
}
labels["ikan skorpaeniform"] = {
type = "set",
description = "=[[bullhead]]s, [[cabezon]], [[golomyanka]], [[greenling]]s, [[gurnard]]s, [[Irish lord]], [[lionfish]], [[lumpsucker]]s, [[pigfish]], [[poacher]]s, [[sablefish]], [[scorpionfish]], [[sculpin]]s, [[sea raven]]s, [[sea toad]]s, [[skilfish]], [[snailfish]], [[stonefish]], [[wingfish]], and other fish in the [[order]] [[Scorpaeniformes]]",
parents = {"ikan"},
}
labels["scorpions"] = {
type = "set",
description = "=true [[scorpion]]s: [[arachnid]]s in the [[order]] [[Scorpiones]]",
parents = {"araknid"},
}
labels["screamers"] = {
type = "set",
description = "=[[screamer]]s: burung in the family [[Anhimidae]], related to [[duck]]s and [[geese]]",
parents = {"burung"},
}
labels["burung laut"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["sea anemones"] = {
type = "set",
description = "=[[cnidarian]]s in the [[order]] [[Actiniaria]]",
parents = {"knidaria"},
}
labels["sea cucumbers"] = {
type = "set",
description = "=[[echinoderm]]s in the [[class]] [[Holothuroidea]]",
parents = {"echinoderms"},
}
labels["sea urchins"] = {
type = "set",
description = "=[[echinoderm]]s in the [[class]] [[Echinoidea]], including the [[sand dollar]]s",
parents = {"echinoderms"},
}
labels["sea turtles"] = {
type = "set",
description = "=[[flatback]]s, [[green turtle]]s, [[hawksbill]]s, [[leatherback]]s, [[loggerhead]]s, [[ridley]]s, and other [[turtle]]s in the [[superfamily]] [[Chelonioidea]]",
parents = {"turtles"},
}
labels["sebastids"] = {
type = "set",
description = "=fish in the family [[Sebastidae]]",
parents = {"ikan skorpaeniform"},
}
labels["serranids"] = {
type = "set",
description = "=[[sea bass]], [[grouper]]s, [[rockcod]]s, [[comber]]s and other fish in the family [[Serranidae]]",
parents = {"ikan perkoid"},
}
labels["jerung"] = {
type = "set",
description = "default",
parents = {"ikan"},
}
labels["kambing biri-biri"] = {
type = "set",
description = "default",
parents = {"caprines", "ternakan"},
}
labels["shorebirds"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["shrikes"] = {
type = "set",
description = "default",
parents = {"burung tenggek", "burung korvoid"},
}
labels["sighthounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["skippers"] = {
type = "set",
description = "=serangga in the family [[Hesperiidae]]",
parents = {"butterflies"},
}
labels["smelts"] = {
type = "set",
description = "=fish in the [[order]] [[Osmeriformes]]",
parents = {"ikan"},
}
labels["snails"] = {
type = "set",
description = "default",
parents = {"gastropod"},
}
labels["ular"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["snappers"] = {
type = "set",
description = "=ikan in the [[family]] [[Lutjanidae]]",
parents = {"ikan perkoid"},
}
labels["soft corals"] = {
type = "set",
description = "=[[calcaxonian]]s, [[dead man's fingers]], [[fan coral]]s, [[gorgonian]]s, [[holaxonian]]s, [[scleraxonian]]s, [[sea feather]]s, [[sea willow]]s, [[stoloniferan]]s, [[whip coral]]s, and other marine haiwan in the [[cnidarian]] order [[Alcyonacea]]",
parents = {"knidaria"},
}
labels["soricomorphs"] = {
type = "set",
description = "=[[shrew]]s, [[mole]]s, [[solenodon]]s, and other [[mammal]]s in the [[order]] [[Soricomorpha]]",
parents = {"mamalia"},
}
labels["South American canids"] = {
type = "set",
description = "=fox-like [[canid]]s in the [[subtribe]] [[Cerdocyonina]], which are more closely related to the [[dog]]s and [[wolf|wolves]] than to the true [[fox]]es. Also known as [[zorro]]s",
parents = {"kanid"},
}
labels["spaniels"] = {
type = "set",
description = "default",
parents = {"anjing pemburu"},
}
labels["sparids"] = {
type = "set",
description = "=[[sea breams]], [[porgie]]s, [[scup]]s and other ikan in the family [[Sparidae]]",
parents = {"ikan perkoid"},
}
labels["sphinx moths"] = {
type = "set",
description = "=[[hawkmoth]]s, [[hornworm]]s, [[hummingbird moth]]s, [[sphinx moth]]s,[[tomato worm]]s, and other [[moth]]s (and [[caterpillar]]s) in the [[family]] [[Sphingidae]]",
parents = {"moths"},
}
labels["lelabah"] = {
type = "set",
description = "default",
parents = {"araknid"},
}
labels["sponges"] = {
type = "set",
description = "=[[aquatic]] [[animal]]s in the [[filum]] [[Porifera]]",
parents = {"haiwan"},
}
labels["squid"] = {
type = "set",
description = "default",
parents = {"sefalopod"},
}
labels["squirrels"] = {
type = "set",
description = "=[[squirrel]]s, [[chipmunk]]s, [[marmot]]s, [[prairie dog]]s, [[woodchuck]]s and other [[rodent]]s in the family [[Sciuridae]]",
parents = {"roden"},
}
labels["staphylinoid beetles"] = {
type = "set",
description = "=[[beetle]]s in the [[superfamily]] [[Staphylinoidea]]",
parents = {"beetles"},
}
labels["starlings"] = {
type = "set",
description = "=[[starling]]s, [[mynah]]s, and other birds in the [[passerine]] family [[Sturnidae]]",
parents = {"burung tenggek"},
}
labels["belalang ranting"] = {
type = "set",
description = "=[[insect]]s (including the [[leaf insect]]s) in the [[order]] known as either [[Phasmida]] or [[Phasmatodea]], which are noted for their extreme adaptations in form and color to look like parts of the plants they feed on",
parents = {"serangga"},
}
labels["stoneflies"] = {
type = "set",
description = "=[[freshwater]] [[aquatic]] [[insect]]s in the [[order]] [[Plecoptera]]",
parents = {"serangga"},
}
labels["stony corals"] = {
type = "set",
description = "=marine haiwan in the [[cnidarian]] order [[Scleractinia]]",
parents = {"knidaria"},
}
labels["storks"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["ikan stromateoid"] = {
type = "set",
description = "=[[barrelfish]], [[blue eye cod]], [[dollarfish]], [[driftfish]], [[lafayette]], [[medusafish]], [[rudderfish]], [[squaretail]], [[warehou]], and other ikan in the [[perciform]] [[suborder]] [[Stromateoidei]]",
parents = {"ikan"},
}
labels["sturgeons"] = {
type = "set",
description = "=ikan in the family [[Acipenseridae]]",
parents = {"ikan"},
}
labels["suboscines"] = {
type = "set",
description = "=[[antpitta]]s, [[antshrike]]s, [[antthrush]]es, [[asity|asities]], [[broadbill]]s, [[cotinga]]s, [[crescentchest]]s, [[gnateater]]s, [[manakin]]s, [[ovenbird]]s, [[pitta]]s, [[sharpbill]]s, [[spadebill]]s, [[tapaculo]]s, [[tityra]]s, [[tyrant flycatcher]]s, [[woodcreeper]]s, and other birds in the [[passerine]] [[suborder]] [[Tyranni]]",
parents = {"burung tenggek"},
}
labels["suckers (ikan)"] = {
type = "set",
description = "=[[buffalo fish]], [[cuiui]], [[jumprock]]s, [[quillback]], [[redhorse]], [[sucker]]s, and other freshwater ikan in the family [[Catostomidae]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["suliform birds"] = {
type = "set",
description = "=[[anhinga]]s, [[booby|boobies]], [[cormorant]]s, [[frigatebird]]s, [[gannet]]s, and other [[burung laut]] in the [[order]] [[Suliformes]]",
parents = {"burung laut"},
}
labels["sunfish"] = {
type = "set",
description = "=freshwater ikan otosefalan in the family [[Centrarchidae]]",
parents = {"ikan perkoid"},
}
labels["swallows"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["swallowtails"] = {
type = "set",
description = "=[[apollo]]s, [[batwing]]s, [[birdwing]]s, [[clubtail]]s, [[festoon]]s, [[flying handkerchief]]s, [[Helen]]s, [[jay]]s, [[mime]]s, [[parnassian]]s, [[rose]]s, [[swallowtail]]s, [[swordtail]]s, [[triangle]]s, [[turnus]]es, [[windmill]]s, [[zebra]]s, and other [[butterfly|butterflies]] in the [[family]] [[Papilionidae]], notable for (mostly) having tail-like extensions on their [[hindwing]]s",
parents = {"butterflies"},
}
labels["swan"] = {
type = "set",
description = "default",
parents = {"anatid"},
}
labels["ikan singnatiform"] = {
type = "set",
description = "=[[bellowsfish]], [[cornetfish]], [[pipefish]], [[razorfish]], [[sea dragon]]s, [[sea horse]]s, [[snipefish]], [[trumpetfish]], and other ikan in the [[order]] [[Syngnathiformes]]",
parents = {"ikan"},
}
labels["tanagers"] = {
type = "set",
description = "=[[bananaquit]]s, [[conebill]]s, [[dacnis]]es, [[Darwin's finch]]es, [[grassquit]]s, [[ground finch]]es, [[honeycreeper]]s, [[pardusco]]s, [[tanager]]s, and other [[passerine]] birds in the family [[Thraupidae]]",
parents = {"burung tenggek"},
}
labels["temnospondyls"] = {
type = "set",
description = "=[[extinct]] early [[amphibian]]s in the [[order]] [[Temnospondyli]]",
parents = {"amfibia"},
}
labels["tenebrionoid beetles"] = {
type = "set",
description = "=[[aderid]]s, [[anthicid]]s, [[blister beetle]]s, [[borid]]s, [[ciid]]s, [[flour beetle]]s, [[darkling beetle]]s, [[mealworm]]s, [[melandryid]]s, [[mordellid]]s, [[mycetophagid]]s, [[oedemerid]]s, [[pinacate beetle]]s, [[pyrochroid]]s, [[pythid]]s, [[ripiphorid]]s, [[salpingid]]s, [[toktokkie]]s, [[ulodid]]s, [[wharf borer]]s, [[zopherid]]s and other [[beetle]]s in the [[superfamily]] [[Tenebrionoidea]]",
parents = {"beetles"},
}
labels["tephritoid flies"] = {
type = "set",
description = "=[[cheese fly|cheese flies]], [[tephritid]] [[fruit fly|fruit flies]], [[picture-winged fly|picture-winged flies]] and other [[fly|flies]] in the [[dipteran]] [[superfamily]] [[Tephritoidea]]",
parents = {"dipterans"},
}
labels["termites"] = {
type = "set",
description = "=[[termite]]s, [[insect]]s in the former [[order]] [[Isoptera]], which is now considered a [[suborder]] or other group within the [[cockroach]]es in the order [[Blattodea]]",
parents = {"serangga", "cockroaches"},
}
labels["terns"] = {
type = "set",
description = "=[[tern]]s, [[burung laut]] in the [[family]] [[Sternidae]]",
parents = {"burung laut"},
}
labels["tetraodontiforms"] = {
type = "set",
description = "=[[pufferfish]], [[triggerfish]], [[boxfish]], [[ocean sunfish]] and other ikan in the order [[Tetraodontiformes]]",
parents = {"ikan"},
}
labels["terriers"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["theropods"] = {
type = "set",
description = "=[[dinosaur]]s in the [[clade]] [[Theropoda]]",
parents = {"dinosaur"},
}
labels["thrushes"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["ticks"] = {
type = "set",
description = "=[[bloodsucking]] [[araknid]] in the [[order]] [[Ixodida]] (also known as [[Metastigmata]])",
parents = {"mites and ticks"},
}
labels["tinamous"] = {
type = "set",
description = "default",
parents = {"ratites"},
}
labels["tits"] = {
type = "set",
description = "=[[tit]]s, birds known as [[chickadee]]s in the US",
parents = {"burung tenggek"},
}
labels["toads"] = {
type = "set",
description = "default",
parents = {"anurans"},
}
labels["toothcarps"] = {
type = "set",
description = "=[[four-eyed fish]], [[guppy|guppies]], [[killifish]], [[molly|mollies]], [[mummichog]]s, [[platy|platies]], [[swordtail]]s, [[topminnow]]s and other ikan in the [[order]] [[Cyprinodontiformes]]",
parents = {"ikan"},
}
labels["tortoises"] = {
type = "set",
description = "=[[terrestrial]] [[turtle]]s in the [[family]] [[Testudinidae]]",
parents = {"turtles"},
}
labels["tortricid moths"] = {
type = "set",
description = "=[[moth]]s (and [[caterpillar]]s) in the [[family]] [[Tortricidae]]",
parents = {"moths"},
}
labels["ikan trakinoid"] = {
type = "set",
description = "=[[black swallower]]s, [[blue cod]], [[duckbill]]s, [[gaper]]s, [[sand eel]]s, [[torrentfish]], [[weeverfish]] and other ikan in the [[perciform]] [[suborder]] [[Trachinoidei]]",
parents = {"ikan"},
}
labels["toy dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["trilobites"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["true bugs"] = {
type = "set",
description = "=[[insect]]s in the [[hemipteran]] suborder [[Heteroptera]]",
parents = {"hemipterans"},
}
labels["true finches"] = {
type = "set",
description = "=[[finch]]es in the [[passerine]] family [[Fringillidae]]",
parents = {"burung tenggek"},
}
labels["true jellyfish"] = {
type = "set",
description = "=[[cnidarian]]s in the [[class]] [[Scyphozoa]]",
parents = {"knidaria"},
}
labels["true sparrows"] = {
type = "set",
description = "=[[passerine]] birds in the family [[Passeridae]] (for other birds called sparrows, see the [[emberizid]]s)",
parents = {"burung tenggek"},
}
labels["tubenose birds"] = {
type = "set",
description = "=[[albatross]]es, [[fulmar]]s, [[petrel]]s, [[prion]]s, [[shearwater]]s, and other [[seabird]]s in the [[order]] [[Procellariiformes]]",
parents = {"burung laut"},
}
labels["tunicates"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["turtles"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["tyrant flycatchers"] = {
type = "set",
description = "=[[passerine]] birds in the family [[Tyrannidae]]",
parents = {"suboscines"},
}
labels["ursids"] = {
type = "set",
description = "=[[ursid]]s ([[bear]]s)",
parents = {"karnivor"},
}
labels["Venerida order mollusks"] = {
type = "set",
description = "=[[basket clam]]s, [[bean clam]]s, [[boring clam]]s, [[cockle]]s, [[duck clam]]s, [[giant clam]]s, [[hard clam]]s, [[lentil shell]]s, [[pipi]]s, [[pooquaw]]s, [[quahog]]s, [[surf clam]]s, [[trough-shell]]s, [[ugari]]s, [[Venus clam]]s, [[zebra mussel]]s, and other [[bivalve]]s in the [[order]] [[Venerida]]",
parents = {"bivalvia"},
}
labels["vertebrat"] = {
type = "set",
description = "default",
parents = {"kordata"},
}
labels["vespids"] = {
type = "set",
description = "=[[hornet]]s, [[paper wasp]]s, [[pollen wasp]]s, [[potter wasp]]s, [[yellow jacket]]s, and other [[wasp]]s in the [[family]] [[Vespidae]]",
parents = {"Hymenoptera"},
}
labels["vetigastropod"] = {
type = "set",
description = "=[[abalone]]s or [[ear shell]]s, [[duck's-bill limpet]]s, [[keyhole limpet]]s, [[rosary shell]]s, [[slit-shell]]s, [[topshell]]s, [[turban shell]]s, and other [[gastropod]]s in the [[clade]] [[Vetigastropoda]] (treated in some classifications as an [[order]], in others as [[subclass]])",
parents = {"gastropod"},
}
labels["vipers"] = {
type = "set",
description = "=[[adder]]s, [[asp]]s, [[rattlesnake]]s, [[viper]]s, [[water moccasin]]s and other [[venomous]] ular in the [[Viperidae]]",
parents = {"ular"},
}
labels["viverrids"] = {
type = "set",
description = "=[[viverrid]]s ([[civet]]s, [[genet]]s and relatives)",
parents = {"karnivor"},
}
labels["vombatiforms"] = {
type = "set",
description = "=[[diprotodontid]]s, [[diprotodon]]s, [[phascolarctid]]s, [[koala]]s, [[vombatid]]s, [[wombat]]s, [[phascolome]]s, [[ilariid]]s, [[maradid]]s, [[palorchestid]]s, [[thylacoleonid]]s, [[marsupial lion]]s , [[wynyardiid]]s and other [[marsupial]]s in the [[diprotodont]] [[suborder]] [[Vombatiformes]]",
parents = {"marsupials"},
}
labels["vultures"] = {
type = "set",
description = "=[[vulture]]s (both Old World and New World)",
parents = {"burung pemangsa"},
}
labels["warblers"] = {
type = "set",
description = "=[[warbler]]s, various small [[passerine]] songbirds, especially of the families Sylviidae (Old World warblers) and Parulidae (New World warblers)",
parents = {"burung tenggek"},
}
labels["warren hounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["water dogs"] = {
type = "set",
description = "default",
parents = {"retrievers"},
}
labels["weaver finches"] = {
type = "set",
description = "=[[finch]]es in the family [[Estrildidae]]",
parents = {"burung tenggek"},
}
labels["weaverbirds"] = {
type = "set",
description = "=[[baya]]s, [[bishop]]s, [[fody|fodies]], [[malimbe]]s, [[quelea]]s, [[sakabula]]s, [[taha]]s, [[weaver]]s, and other birds in the [[family]] [[Ploceidae]]",
parents = {"burung tenggek"},
}
labels["weevils"] = {
type = "set",
description = "=[[bill-beetle]]s, [[curculio]]s, [[grugru worm]]s, [[snout beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Curculionoidea]]",
parents = {"beetles"},
}
labels["paus"] = {
type = "set",
description = "default",
parents = {"setasea"},
}
labels["wolves"] = {
type = "set",
description = "=[[wolves]]",
parents = {"kanid"},
}
labels["woodpeckers"] = {
type = "set",
description = "=[[flicker]]s, [[sapsucker]]s, [[wryneck]]s, and other birds in the [[family]] [[Picidae]]",
parents = {"piciforms"},
}
labels["working dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["cacing"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["wrasses"] = {
type = "set",
description = "=ikan in the family [[Labridae]]",
parents = {"ikan labroid"},
}
labels["wrens"] = {
type = "set",
description = "default",
parents = {"burung sertioid"},
}
labels["ikan zoarkoid"] = {
type = "set",
description = "=[[butterfish]], [[eelpout]]s, [[guffer]]s, [[gunnel]]s, [[lumper]]s, [[prickleback]]s, [[prowfish]], [[wolf eel]]s and other fish in the [[perciform]] [[suborder]] [[Zoarcoidei]]",
parents = {"ikan"},
}
labels["zygaenoid moths"] = {
type = "set",
description = "=[[burnet moth]]s, [[forester]]s, [[hag moth]]s, [[limacodid]]s, [[megalopygid]]s, [[monkey slug]]s, [[puss moth]]s, [[saddleback caterpillar]]s, [[zygaenid]]s, and other [[moth]]s in the [[superfamily]] [[Zygaenoidea]]",
parents = {"moths"},
}
labels["plesiosaurs"] = {
type = "set",
description = "=[[plesiosaur]]s (order †[[Plesiosauria]])",
parents = {"sauropterygians"},
}
labels["tarantulas"] = {
type = "set",
description = "=[[tarantula]]s (family [[Theraphosidae]])",
parents = {"mygalomorph spiders"},
}
return labels
2w6n1h3sl22ybf3gmesnpa37zysskeb
278436
278306
2026-04-17T11:20:55Z
PeaceSeekers
3334
278436
Scribunto
text/plain
local labels = {}
labels["haiwan"] = {
type = "set",
description = "default",
parents = {"makhluk"},
commonscat = "Animalia",
wpcat = true,
}
labels["ikan akanturoid"] = {
type = "set",
description = "=[[surgeonfish]], [[light-horseman]], [[louvar]]s, [[scat]]s, [[rabbitfish]], [[Moorish idol]]s and other fish in the [[perciform]] [[suborder]] [[Acanthuroidei]]",
parents = {"ikan"},
}
labels["accentors"] = {
type = "set",
description = "=birds in the [[family]] [[Prunellidae]]",
parents = {"burung tenggek"},
}
labels["accipiters"] = {
type = "set",
description = "=[[besra]]s, [[Cooper's hawk]]s, [[goshawk]]s, [[sharp-shinned hawk]]s, [[shikra]]s, [[sparrowhawk]]s, and other [[hawk]]s in the [[genus]] ''[[Accipiter]]''",
parents = {"burung pemangsa"},
}
labels["ikan asipenseriform"] = {
type = "set",
description = "=[[paddlefish]], [[sturgeon]]s and other fish in the [[order]] [[Acipenseriformes]]",
parents = {"ikan"},
}
labels["adephagan beetles"] = {
type = "set",
description = "=[[diving beetle]]s, [[ground beetle]]s (including [[bombardier beetle]]s and [[tiger beetle]]s), [[whirligig beetle]]s and other [[beetle]]s in the [[suborder]] [[Adephaga]]",
parents = {"beetles"},
}
labels["African insectivores"] = {
type = "set",
description = "=[[aardvark]]s, [[elephant shrew]]s, [[golden mole]]s, [[otter shrew]]s, [[tenrec]]s, and other [[mammal]]s in the [[clade]] [[Afroinsectiphilia]]",
parents = {"mamalia"},
}
labels["agamid lizards"] = {
type = "set",
description = "=[[agama]]s, [[bearded dragon]]s, [[flying dragon]]s, [[frilled lizard]]s, [[moloch]]s, [[spiny-tailed lizard]]s, [[stellion]]s and other [[lizard]]s in the [[family]] [[Agamidae]]",
parents = {"lizards"},
}
labels["alcelaphine antelopes"] = {
type = "set",
description = "=[[blesbuck]]s, [[bontebok]]s, [[bubal]]s, [[gnu]]s or [[wildebeest]], [[hartebeest]]s, [[hirola]], [[sassaby]]s, [[topi]]s, [[tetel]]s, and other [[antelopes]] in the [[subfamily]] [[Alcelaphinae]]",
parents = {"antelopes"},
}
labels["ammonites"] = {
type = "set",
description = "=[[extinct]] [[cephalopod]]s in the [[subclass]] [[Ammonoidea]]",
parents = {"sefalopod"},
}
labels["amfibia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Amphibia",
wpcat = true,
}
labels["amphipods"] = {
type = "set",
description = "=[[beach flea]]s, [[lawn shrimp]], [[scud]]s, [[side swimmer]]s, [[skeleton shrimp]], [[whale louse|whale lice]], and other [[crustacean]]s in the [[order]] [[Amphipoda]]",
parents = {"crustaceans"},
}
labels["anatid"] = {
type = "set",
description = "=[[anatid]]s: ([[duck]]s, [[goose|geese]] and [[swan]]s)",
parents = {"burung air tawar"},
}
labels["annelids"] = {
type = "set",
description = "=[[earthworm]]s, [[leech]]es, [[ragworm]]s and many other [[segment]]ed [[worm]]s in the [[filum]] [[Annelida]]",
parents = {"cacing"},
}
labels["anglerfish"] = {
type = "set",
description = "=fish in the [[order]] [[Lophiiformes]]",
parents = {"ikan"},
}
labels["anguimorph lizards"] = {
type = "set",
description = "=[[alligator lizard]]s, [[beaded lizard]]s, [[blindworm]]s, [[crocodile monitor]]s, [[galliwasp]]s, [[Gila monster]]s, [[glass lizard]]s, [[goanna]]s, [[Komodo dragon]]s, [[legless lizard]]s, [[nile monitor]]s, [[perentie]]s, [[sheltopusik]]s, [[water monitor]]s, and other [[lizards]] in the [[suborder]] [[Anguimorpha]]",
parents = {"lizards"},
}
labels["anomurans"] = {
type = "set",
description = "=crablike [[crustacean]]s in the [[decapod]] [[infraorder]] [[Anomura]], which are closely related to the true [[crab]]s in the infraorder [[Brachyura]]",
parents = {"crustaceans", "decapods"},
}
labels["anteaters and sloths"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Pilosa]]",
parents = {"mamalia"},
}
labels["antelopes"] = {
type = "set",
description = "default",
parents = {"ungulat kuku genap"},
}
labels["antilopine antelopes"] = {
type = "set",
description = "=[[blackbuck]]s, [[chinkara]]s, [[dibatag]]s, [[dik-dik]]s, [[gazelle]]s, [[gerenuk]]s, [[grysbok]]s, [[klipspringer]]s, [[oribi]]s, [[royal antelope]]s, [[saiga]]s, [[springbok]]s, [[steenbok]]s, [[zeren]], and other [[antelope]]s in the [[bovid]] [[subfamily]] [[Antilopinae]]",
parents = {"antelopes"},
}
labels["ants"] = {
type = "set",
description = "default",
parents = {"Hymenoptera"},
}
labels["antshrikes"] = {
type = "set",
description = "default",
parents = {"suboscines", "burung tenggek"},
}
labels["anurans"] = {
type = "set",
description = "=[[amphibian]]s in the [[order]] [[Anura]], which are short-bodied and without tails, having long hind legs adapted for leaping that are typically folded at rest. Anurans are mostly known as [[frog]]s or [[toad]]s",
parents = {"amfibia"},
}
labels["aphids"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Aphidoidea]]",
parents = {"hemipterans"},
}
labels["apodiforms"] = {
type = "set",
description = "=[[hummingbird]]s, [[needletail]]s, [[spinetail]]s, [[swift]]s, [[swiftlet]]s, [[treeswift]]s, and other [[bird]]s in the [[order]] [[Apodiformes]]",
parents = {"burung"},
}
labels["araknid"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["lelabah araneoid"] = {
type = "set",
description = "=[[lelabah tinja burung]], [[cobweb spiders]] (including [[black widow]]s and [[redback]]s), [[orbweaver]]s (including [[cross spider]]s and [[writing spider]]s), [[long-jawed spider]]s, [[money spider]]s, [[nesticid]]s, [[pimoid]], [[pirate spider]]s, [[tetragnathid]]s and other [[spider]]s in the [[superfamily]] [[Araneoidea]]",
parents = {"lelabah"},
}
labels["ikan argentiniform"] = {
type = "set",
description = "=[[argentine]]s, [[barreleye]]s, [[blacksmelt]]s, [[smoothtongue]]s and other ikan in the [[order]] [[Argentiniformes]]",
parents = {"ikan"},
}
labels["armadillos"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["artropod"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Arthropoda",
wpcat = true,
}
labels["aschizan flies"] = {
type = "set",
description = "=[[fly|flies]] in the [[dipteran]] [[section]] [[Aschiza]]",
parents = {"dipterans"},
}
labels["asilomorph flies"] = {
type = "set",
description = "=[[bee fly|bee flies]], [[dance fly|dance flies]], [[Mydas fly|Mydas flies]], [[robber fly|robber flies]], [[stiletto fly|stiletto flies]], [[window fly|window flies]] and other [[fly|flies]] in the [[dipteran]] [[infraorder]] [[Asilomorpha]]",
parents = {"dipterans"},
}
labels["assassin bugs"] = {
type = "set",
description = "=[[ambush bug]]s, [[assassin bug]]s, [[corsair]]s, [[feather-legged bug]]s, [[kissing bug]]s or [[conenose bug]]s, [[masked hunter]]s, [[wheel bug]]s, and other [[true bug]]s in the [[family]] [[Reduviidae]]",
parents = {"true bugs"},
}
labels["astacideans"] = {
type = "set",
description = "=[[crustacean]]s in the [[decapod]] [[infraorder]] [[Astacidea]], including the original [[species]] known as [[crayfish]] and [[lobster]]s, and their relatives",
parents = {"crustaceans", "decapods"},
}
labels["ikan ateriniform"] = {
type = "set",
description = "=[[blue-eye]]s, [[hardyhead]]s, [[grunion]], [[jacksmelt]], [[rainbowfish]], [[silverside]]s, [[zona]], and other ikan in the [[order]] [[Atheriniformes]]",
parents = {"ikan"},
}
labels["auks"] = {
type = "set",
description = "=[[auk]]s, [[guillemot]]s, [[murre]]s, [[puffin]]s, [[razorbill]]s, and other [[seabird]]s in the family [[Alcidae]]",
parents = {"burung laut"},
}
labels["ikan aulopiform"] = {
type = "set",
description = "=[[daggertooth]]s, [[lancetfish]], [[sergeant baker]]s, [[greeneye]]s, [[telescopefish]], [[lizardfish]] and other ikan in the [[order]] [[Aulopiformes]]",
parents = {"ikan"},
}
labels["Australasian robins"] = {
type = "set",
description = "=birds in the [[passerine]] [[family]] [[Petroicidae]], which are not closely related to the [[European robin]] (an [[Old World flycatcher]] in the family [[Muscicapidae]]), or the [[American robin]] (a [[thrush]] in the family [[Turdidae]])",
parents = {"burung tenggek"},
}
labels["anak haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["bandicoots and bilbies"] = {
type = "set",
description = "=[[peramelid]]s, [[bandicoot]]s, [[marl]]s, [[quenda]]s, [[chaeropodid]]s, [[pig-footed bandicoot]]s, [[thylacomyid]]s, [[bilby|bilbies]], [[dalgite]]s, [[rabbit-eared bandicoot]]s, [[philander]]s, [[pinkie]]s, and other [[marsupial]]s in the [[order]] [[Peramelemorphia]]",
parents = {"marsupials"},
}
labels["barklice"] = {
type = "set",
description = "=non-[[parasitic]] [[insect]]s in the [[order]] [[Psocodea]]",
parents = {"serangga"},
}
labels["barnacles"] = {
type = "set",
description = "=[[crustacean]]s in the [[infraclass]] [[Cirripedia]], including the parasitic [[rhizocephalan]]s",
parents = {"crustaceans"},
}
labels["kelawar"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["lebah"] = {
type = "set",
description = "default",
parents = {"Hymenoptera", "pemeliharaan lebah"},
}
labels["beetles"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["ikan beloniform"] = {
type = "set",
description = "=[[ballyhoo]], [[flying fish]], [[garfish]], [[halfbeak]]s, [[houndfish]], [[mackerel pike]]s, [[medaka]]s, [[needlefish]], [[ricefish]], [[saury|sauries]], [[silver gar]], and other ikan in the [[order]] [[Beloniformes]]",
parents = {"ikan"},
}
labels["bibionomorphs"] = {
type = "set",
description = "=[[March fly|March flies]], [[cecidomyiid]] [[gall midge]]s, [[keroplatid]] [[fungus gnat]]s, [[mycetophilid]]s, [[sciarid]]s and other [[fly|flies]], [[gnat]]s and [[midge]]s in the [[dipteran]] [[infraorder]] [[Bibionomorpha]]",
parents = {"dipterans"},
}
labels["burung"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Aves",
wpcat = true,
}
labels["burung pemangsa"] = {
type = "set",
description = "=birds that live by [[predatory]] hunting, and from [[carrion]]",
parents = {"burung"},
}
labels["bivalvia"] = {
type = "set",
description = "=[[clam]]s, [[cockle]]s, [[mussel]]s, [[oyster]]s, [[scallop]]s and other [[mollusk]]s in the [[class]] [[Bivalvia]]",
parents = {"moluska"},
}
labels["blennies"] = {
type = "set",
description = "=[[blenny|blennies]], [[chaenopsid]]s, [[clinid]]s, [[dactyloscopid]]s, [[klipfish]], [[labrisomid]]s, [[triplefin]]s, [[weedfish]] and other ikan in the [[perciform]] [[suborder]] [[Blennioidei]]",
parents = {"ikan"},
}
labels["boas"] = {
type = "set",
description = "=[[snake]]s in the family [[Boidae]]",
parents = {"ular"},
}
labels["bostrichiform beetles"] = {
type = "set",
description = "=[[carpet beetle]]s, [[deathwatch beetle]]s, [[drugstore beetle]]s, [[museum beetle]]s, [[powder-post beetle]]s, and other [[anobiid]]s/[[ptinid]]s, [[bostrichid]]s, [[dermestid]]s, [[derodontid]]s, [[jacobsoniid]]s and [[nosodendrid]]s in the [[coleopteran]] [[infraorder]] [[Bostrichiformia]]",
parents = {"beetles"},
}
labels["bovines"] = {
type = "set",
description = "default",
parents = {"ungulat kuku genap"},
}
labels["brachiopods"] = {
type = "set",
description = "=[[animal]]s in the [[filum]] [[Brachiopoda]]. <u>Note</u>: not to be confused with [[branchiopod]]s, which are [[crustacean]]s",
parents = {"haiwan"},
}
labels["branchiopods"] = {
type = "set",
description = "=[[[brine shrimp]], [[clam shrimp]], [[fairy shrimp]], [[tadpole shrimp]], [[water flea]]s, and other [[crustacean]]s in the [[class]] [[Branchiopoda]]. <u>Note</u>: not to be confused with [[brachiopod]]s, which are a separate [[filum]]",
parents = {"crustaceans"},
}
labels["bryozoans"] = {
type = "set",
description = "=[[animal]]s in the [[filum]] [[Bryozoa]], also known as [[Ectoprocta]]",
parents = {"haiwan"},
}
labels["bulbuls"] = {
type = "set",
description = "=[[bulbul]]s, [[greenbul]]s, [[brownbul]]s, [[leaflove]]s, [[bristlebill]]s, and other birds in the [[passerine]] [[family]] [[Pycnonotidae]]",
parents = {"burung tenggek"},
}
labels["buteos"] = {
type = "set",
description = "=[[hawk]]s in the [[genus]] ''[[Buteo]]'', known as [[buzzard]]s in Europe",
parents = {"burung pemangsa"},
}
labels["butterflies"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["caddis flies"] = {
type = "set",
description = "=serangga in the order [[Trichoptera]], which are closely related to the [[butterfly|butterflies]] and [[moth]]s but with hairs on their wings instead of scales, and which have [[aquatic]] [[larvae]] that live in cases that they build around themselves",
parents = {"serangga"},
}
labels["caecilians"] = {
type = "set",
description = "=[[amphibian]]s in the [[order]] [[Gymnophiona]], which are legless and resemble [[earthworm]]s or [[snake]]s",
parents = {"amfibia"},
}
labels["camelids"] = {
type = "set",
description = "=[[camelid]]s ([[camel]]s, [[llama]]s, [[alpaca]]s, etc.)",
parents = {"mamalia", "ungulat kuku genap"},
}
labels["kanid"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["caprines"] = {
type = "set",
description = "=[[sheep]], [[goat]]s, [[goat antelope]]s, [[chamois]], [[muskox]]en, [[bharal]], [[goral]], [[ibex]], [[mouflon]], [[serow]], [[tahr]], [[tur]], [[takin]] and other haiwan in the [[bovid]] [[subfamily]] [[Caprinae]], formerly known as the [[family]] [[Capridae]]",
parents = {"ungulat kuku genap"},
}
labels["caprimulgiforms"] = {
type = "set",
description = "=[[caprimulgiform]]s: birds in the taxonomic order [[Caprimulgiformes]]- the [[nightjar]]s, [[oilbird]]s, [[frogmouth]]s, [[potoo]]s, etc",
parents = {"burung"},
}
labels["carcharhiniform sharks"] = {
type = "set",
description = "=[[bull shark]]s, [[catshark]]s, [[gummy shark]]s, [[hammerhead]]s, [[leopard shark]]s, [[morgay]]s, [[requiem shark]]s, [[tiger shark]]s, [[tope]]s, [[whaler]]s, [[whitetip]]s and other sharks in the [[order]] [[Carcharhiniformes]]",
parents = {"jerung"},
}
labels["cardinalids"] = {
type = "set",
description = "=[[cardinal]]s, [[dickcissel]]s, [[indigo bunting]]s, [[pyrrhuloxia]]s, [[rose-breasted grosbeak]]s, [[scarlet tanager]]s, and other birds in the [[family]] [[Cardinalidae]]",
parents = {"burung tenggek"},
}
labels["caridean shrimp"] = {
type = "set",
description = "=[[crustacean]]s in the [[decapod]] [[infraorder]] [[Caridea]], mostly known as [[shrimp]] or [[prawn]]s",
parents = {"crustaceans", "decapods"},
}
labels["karnivor"] = {
type = "set",
description = "=[[bear]]s, [[cat]]s, [[civet]]s, [[dog]]s, [[fossa]]s, [[hyaena]]s, [[mongoose]]s, [[panda]]s, [[raccoon]]s, [[seal]]s, [[skunk]]s, [[weasel]]s and various other [[mammal]]s in the [[order]] [[Carnivora]]",
parents = {"mamalia"},
}
labels["carps"] = {
type = "set",
description = "=ikan in the [[subfamily]] [[Cyprininae]], the [[carps]] and [[goldfish]]",
parents = {"cyprinids"},
}
labels["catfish"] = {
type = "set",
description = "default",
parents = {"ikan", "ikan ikan otosefalan"},
}
labels["kuring"] = {
type = "set",
description = "=[[cat]]s in the sense of members of the genus ''[[Felis]]''",
parents = {"felids"},
commonscat = "Felis silvestris catus",
wpcat = true,
}
labels["cattle"] = {
type = "set",
description = "default",
parents = {"bovines", "ternakan"},
}
labels["caviomorphs"] = {
type = "set",
description = "=[[agouti]]s, [[capybara]]s, [[chinchilla]]s, [[guinea pig]]s, [[New World porcupine]]s, [[nutria]]s, [[tuco-tuco]]s and other [[rodent]]s in the parvorder [[Caviomorpha]]",
parents = {"roden"},
}
labels["sefalopod"] = {
type = "set",
description = "default",
parents = {"moluska"},
}
labels["monyet serkopitesin"] = {
type = "set",
description = "=[[blue monkey]]s, [[Diana monkey]]s, [[guenon]]s, [[lesula]]s, [[malbrouck]]s, [[patas monkey]]s, [[talapoin]]s, [[vervet]]s, and other [[Old World monkey]]s in the [[cercopithecine]] [[tribe]] [[Cercopithecini]]",
parents = {"monyet dunia lama"},
}
labels["burung sertioid"] = {
type = "set",
description = "=birds in the [[passerine]] [[superfamily]] [[Certhioidea]], the [[treecreeper]]s, [[nuthatch]]es, [[gnatcatcher]]s and [[wren]]s",
parents = {"burung tenggek"},
}
labels["cervids"] = {
type = "set",
description = "default",
parents = {"ungulat kuku genap"},
}
labels["setasea"] = {
type = "set",
description = "=[[cetacean]]s ([[dolphin]]s, [[whale]]s and [[porpoise]]s)",
parents = {"ungulat kuku genap"},
}
labels["chalcidoid wasps"] = {
type = "set",
description = "=[[chalcidid]]s, [[encyrtid]]s, [[fig wasp]]s, [[jointworm]]s, [[mymarid]] [[fairyfly|fairyflies]], [[perilampid]]s, [[torymid]]s, [[trichogramma]]s, and other [[wasp]]s in the [[superfamily]] [[Chalcidoidea]]",
parents = {"Hymenoptera"},
}
labels["characins"] = {
type = "set",
description = "=fish in the order [[Characiformes]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ayam"] = {
type = "set",
description = "default",
parents = {"poltri", "unggas"},
}
labels["chimaeras (fish)"] = {
type = "set",
description = "=[[cartilaginous]] fish in the [[Chimaeriformes]], the only surviving [[order]] of the [[subclass]] [[Holocephali]], and separate from the [[shark]]s, [[ray]]s, [[skate]]s and [[sawfish]] of the subclass [[Elasmobranchii]]",
parents = {"ikan"},
}
labels["kordata"] = {
type = "set",
description = "=haiwan dalam filum [[filum]] [[Chordata]]",
parents = {"haiwan"},
}
labels["chrysomeloid beetles"] = {
type = "set",
description = "=[[cerambycid]]s or [[longhorn beetle]]s such as [[apple borer]]s, [[huhu beetle]]s, [[locust borer]]s and [[thunderbolt beetle]]s, as well as [[chrysomelid]]s or [[leaf beetle]]s such as [[asparagus beetle]]s, [[bean weevil]]s, [[Colorado beetle]]s, [[cucumber beetle]]s, [[flea beetle]]s, [[potato beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Chrysomeloidea]]",
parents = {"beetles"},
}
labels["cicadas"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Cicadoidea]]",
parents = {"hemipterans"},
}
labels["cichlids"] = {
type = "set",
description = "=fish in the family [[Cichlidae]]",
parents = {"ikan labroid"},
}
labels["clinids"] = {
type = "set",
description = "=fish in the family [[Clinidae]]",
parents = {"ikan"},
}
labels["knidaria"] = {
type = "set",
description = "=[[coral]]s, [[gorgonian]]s, [[hydra]]s, [[myxozoan]]s, [[Portuguese man-of-war]], [[sea anemone]]s, [[sea fir]]s, [[sea wasp]]s, and other haiwan in the in the [[filum]] [[Cnidaria]]",
parents = {"haiwan"},
}
labels["cockatoos"] = {
type = "set",
description = "=[[crested]] [[parrot]]s in the [[family]] [[Cacatuidae]]",
parents = {"parrots"},
}
labels["cockroaches"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["colobine monkeys"] = {
type = "set",
description = "=[[colobus]]es, [[douc]]s, [[langur]]s, [[guereza]]s, [[hanuman]]s,[[leaf monkey]]s, [[lutung]]s, [[proboscis monkey]]s, and other [[Old World monkey]]s in the [[subfamily]] [[Colobinae]]",
parents = {"monyet dunia lama"},
}
labels["ular kolubrid"] = {
type = "set",
description = "=[[snake]]s in the family [[Colubridae]]",
parents = {"ular"},
}
labels["colugos"] = {
type = "set",
description = "=the [[primate]]-like [[gliding]] [[mammal]]s in the [[order]] [[Dermoptera]], also known as [[flying lemur]]s",
parents = {"mamalia"},
}
labels["columbids"] = {
type = "set",
description = "=[[columbid]]s, i.e. [[pigeon]]s and [[dove]]s",
parents = {"burung"},
}
labels["copepods"] = {
type = "set",
description = "=[[crustacean]]s in the [[subclass]] [[Copepoda]]",
parents = {"crustaceans"},
}
labels["coraciiforms"] = {
type = "set",
description = "=[[bee-eater]]s, [[ground rollers]], [[kingfisher]]s, [[motmot]]s, [[roller]]s, [[tody|todies]] and other birds in the taxonomic order [[Coraciiformes]]",
parents = {"burung"},
}
labels["corvids"] = {
type = "set",
description = "default",
parents = {"burung tenggek", "burung korvoid"},
}
labels["burung korvoid"] = {
type = "set",
description = "=[[apostlebird]]s, [[bird of paradise|birds of paradise]], [[crow]]s, [[drongo]]s, [[fantail]]s, [[grinder]]s, [[jackdaw]]s, [[jay]]s, [[magpie]]s, [[magpie-lark]]s, [[manucode]]s, [[monarchid]]s, [[nutcracker]]s, [[piwakawaka]]s, [[raven]]s, [[restless flycatcher]]s, [[riflebird]]s, [[shrike]]s, [[standard-wing]]s, and other birds in the [[superfamily]] [[Corvoidea]]",
parents = {"burung tenggek"},
}
labels["cotingas"] = {
type = "set",
description = "=birds in the [[suboscine]] [[family]] [[Cotingidae]]",
parents = {"suboscines"},
}
labels["crabs"] = {
type = "set",
description = "=[[crab]]s, [[decapod]] [[crustacean]]s in the [[infraorder]] [[Brachyura]]",
parents = {"crustaceans", "decapods"},
}
labels["cranes (birds)"] = {
type = "set",
description = "=[[crane]]s",
parents = {"gruiforms"},
}
labels["cricetids"] = {
type = "set",
description = "=[[cotton rat]]s, [[deer mouse|deer mice]], [[hamster]]s, [[harvest mouse|harvest mice]], [[lemming]]s, [[vole]]s, [[woodrat]]s, and other [[rodent]]s in the [[family]] [[Cricetidae]]",
parents = {"roden"},
}
labels["cengkerik dan belalang"] = {
type = "set",
description = "=[[cengkerik]], [[belalang]], [[katidid]], [[weta]] dan [[serangga]] lain dalam order [[Orthoptera]]",
parents = {"serangga"},
}
labels["croakers"] = {
type = "set",
description = "=[[croaker]]s, [[drum]]s, [[weakfish]]s and other fish in the family [[Sciaenidae]]",
parents = {"ikan perkoid"},
}
labels["Crocodilia"] = {
type = "set",
description = "=[[buaya]], [[aligator]], kayman dan [[reptilia]] lain dalam order [[Crocodilia]]",
parents = {"reptilia"},
}
labels["crustaceans"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["cuckoos"] = {
type = "set",
description = "=[[cuckoo]]s and other birds in the [[family]] [[Cuculidae]]",
parents = {"otidimorph birds"},
}
labels["cuckooshrikes and minivets"] = {
type = "set",
description = "=birds in the [[family]] [[Campephagidae]]",
parents = {"burung tenggek"},
}
labels["cucujoid beetles"] = {
type = "set",
description = "=[[flower beetle]]s, [[fungus beetle]]s, [[grain beetle]]s, [[lady beetle]]s, [[lizard beetle]]s, [[Mexican bean beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Cucujoidea]]",
parents = {"beetles"},
}
labels["ctenophores"] = {
type = "set",
description = "=haiwan in the [[filum]] [[Ctenophora]], the [[comb jelly|comb jellies]]",
parents = {"haiwan"},
}
labels["culicomorphs"] = {
type = "set",
description = "=[[biting midge]]s, [[blackfly|blackflies]], [[blood worm]]s, [[glassworm]]s, [[meniscus midge]]s, [[mosquito]]s, [[no-see-um]]s, [[non-biting midge]]s, [[phantom midge]]s and other [[insect]]s in the [[dipteran]] [[infraorder]] [[Culicomorpha]]",
parents = {"dipterans"},
}
labels["cyprinids"] = {
type = "set",
description = "=[[carp]], [[minnow]]s, [[chub]]s and other fish in the [[family]] [[Cyprinidae]]. In some classifications, this group is known as the [[superfamily]] [[Cyprinoidea]] or [[suborder]] [[Cyprinoidei]], with the [[cyprinid]] [[subfamily|subfamilies]] considered to be families",
parents = {"ikan", "ikan otosefalan"},
}
labels["dabbling ducks"] = {
type = "set",
description = "=[[gadwall]]s [[garganey]]s, [[mallard]]s, [[mottled duck]]s, [[pintail]]s, [[shoveler]]s, [[teal]]s, [[wigeon]]s and other ducks in either the [[anatid]] [[tribe]] [[Anatini]] or [[subfamily]] [[Anatinae]], depending on the classification",
parents = {"itik"},
}
labels["damselflies"] = {
type = "set",
description = "=[[bluestreak]]s, [[bluetail]]s, [[demoiselle]]s, [[flatwing]]s, [[redtail]]s, [[riverdamsel]]s, [[rubyspot]]s, [[spreadwing]]s, [[threadtail]]s, [[whitetip]]s, and other serangga in the [[odonate]] [[suborder]] [[Zygoptera]]",
parents = {"dragonflies and damselflies"},
}
labels["danaine butterflies"] = {
type = "set",
description = "=[[clearwing]]s, [[crow]]s, [[milkweed]]s, [[monarch]]s, [[paper kite butterfly|paper kite butterflies]], [[tiger]]s, [[wanderer]]s and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Danainae]]",
parents = {"nymphalid butterflies"},
}
labels["dasyuromorphs"] = {
type = "set",
description = "=[[thylacine]]s, [[numbat]]s, [[dasyure]]s, [[antechinus]]es, [[dibbler]]s, [[dunnart]]s, [[mulgara]]s. [[phascogale]]s, [[planigale]]s, [[quoll]]s, [[Tasmanian devil]]s, and other [[marsupial]]s in the [[order]] [[Dasyuromorphia]]",
parents = {"marsupials"},
}
labels["decapods"] = {
type = "set",
description = "=[[crabs]], [[crayfish]], [[lobster]]s, [[prawn]]s, ([[caridean]]) [[shrimp]], and many other [[crustacean]]s in the [[order]] [[Decapoda]]",
parents = {"crustaceans"},
}
labels["delphinids"] = {
type = "set",
description = "=(oceanic) [[dolphin]]s, [[grampus]]es, [[killer whale]]s/[[orca]]s, [[pilot whale]]s, and other [[cetacean]]s in the [[family]] [[Delphinidae]]",
additional = "Note: [[river dolphin]]s and [[porpoise]]s are in other families.",
parents = {"setasea"},
}
labels["designer dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
commonscat = true,
wpcat = true,
}
labels["dinosaur"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["lelabah dionika"] = {
type = "set",
description = "=[[crab spider]]s, [[flattie]]s, [[ground spider]]s, [[huntsman spider]]s, [[jumping spider]], [[scorpion spider]]s, and other [[lelabah]] in the [[entelegyne]] [[clade]] [[Dionycha]]",
parents = {"lelabah"},
}
labels["dipterans"] = {
type = "set",
description = "=[[fly|flies]], [[gnat]]s, [[midge]]s, [[mosquito]]s and other [[insect]]s in the order [[Diptera]]",
parents = {"serangga"},
}
labels["anjing"] = {
type = "set",
description = "default",
parents = {"kanid"},
commonscat = true,
wpcat = true,
}
labels["domestic cats"] = {
type = "set",
description = "default",
parents = {"kuring"},
}
labels["dragonflies and damselflies"] = {
type = "set",
description = "=serangga in the order [[Odonata]]",
parents = {"serangga"},
}
labels["itik"] = {
type = "set",
description = "default",
parents = {"anatid", "poltri"},
}
labels["dugongs and manatees"] = {
type = "set",
description = "=[[mammal]]s in the order [[Sirenia]]",
parents = {"mamalia"},
}
labels["eagles"] = {
type = "set",
description = "default",
parents = {"burung pemangsa"},
}
labels["earthworms"] = {
type = "set",
description = "=worms in the [[annelid]] [[suborder]] [[Lumbricina]]",
parents = {"annelids"},
}
labels["earwigs"] = {
type = "set",
description = "=serangga in the order [[Dermaptera]]",
parents = {"serangga"},
}
labels["echinoderms"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Echinodermata",
wpcat = true,
}
labels["eels"] = {
type = "set",
description = "=[[eel]]s, elongated, snakelike fish in the order [[Anguilliformes]]",
parents = {"ikan elopomorf"},
}
labels["ular elapid"] = {
type = "set",
description = "=[[cobra]]s, [[coral snake]]s, [[krait]]s, [[mamba]]s, [[sea snake]]s, and other [[venomous]] ular in the family [[Elapidae]]",
parents = {"ular"},
}
labels["elateroid beetles"] = {
type = "set",
description = "=[[click beetle]]s/[[elaterid]]s, [[fire beetle]]s, [[firefly|fireflies]]/[[lampyrid]]s, [[glowworm]]s, [[net-winged beetle]]s/[[lycid]]s, [[railroad worm]]s/[[phengodid]]s, [[soldier beetle]]s/[[cantharid]]s, [[throscid]]s, [[wireworm]]s and other [[beetle]]s in the [[superfamily]] [[Elateroidea]]",
parents = {"beetles"},
}
labels["elephants"] = {
type = "set",
description = "default",
parents = {"mamalia"},
commonscat = "Elephantidae",
wpcat = true,
}
labels["ikan elopomorf"] = {
type = "set",
description = "=[[bonefish]], [[eel]]s, [[gulper eel]]s, [[halosaur]]s, [[ladyfish]], [[tarpon]] and other fish in the [[superorder]] [[Elopomorpha]]",
parents = {"ikan"},
}
labels["emberizids"] = {
type = "set",
description = "=[[bunting]]s, [[yellowhammer]]s and related birds in the [[passerine]] family [[Emberizidae]]",
additional = "<u>Note</u>: for New World species that were formerly classified in this family, see [[:Category:{{{langcode}}}:New World sparrows]].",
parents = {"burung tenggek"},
}
labels["emydid turtles"] = {
type = "set",
description = "=(North American) [[box turtle]]s, [[chicken turtle]]s, [[cooter]]s, [[ellachick]]s, [[pond turtle]]s, [[slider]]s, [[terrapin]]s, and other [[turtle]]s in the [[family]] [[Emydidae]]",
parents = {"turtles"},
}
labels["Equidae"] = {
type = "set",
description = "default",
parents = {"ungulat kuku ganjil"},
}
labels["erinaceids"] = {
type = "set",
description = "=[[erinaceid]]s – hedgehogs and relatives",
parents = {"mamalia"},
}
labels["euplerids"] = {
type = "set",
description = "=[[euplerid]]s — mongoose-like mammals found in Madagascar",
parents = {"karnivor"},
}
labels["ungulat kuku genap"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Artiodactyla]]",
parents = {"mamalia"},
}
labels["falconids"] = {
type = "set",
description = "=[[caracara]]s, [[falcon]]s, [[hobby|hobbies]], [[kestrel]]s, [[lanner]]s, [[merlin]]s, [[saker]]s, and other birds in the [[family]] [[Falconidae]]",
parents = {"burung pemangsa"},
}
labels["felids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["female haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan", "female"},
}
labels["ikan"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = true,
wpcat = true,
}
labels["flamingos"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["flatfish"] = {
type = "set",
description = "=[[sole]]s, [[flounder]]s, [[halibut]]s and other fish in the order [[Pleuronectiformes]]",
parents = {"ikan"},
}
labels["flatworms"] = {
type = "set",
description = "=[[fluke]]s, [[monogenean]]s, [[planarian]]s, [[polyclad]]s, [[tapeworm]]s, and other haiwan in the [[filum]] [[Platyhelminthes]]",
additional = "For terms related to the study of [[parasitic]] [[worm#Noun|worms]], see [[:Category:Helminthology]] and its subcategories.",
parents = {"cacing"},
}
labels["fleas"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["unggas"] = {
type = "set",
description = "=[[fowl]]s: land birds in the [[order]] [[Galliformes]]",
parents = {"burung"},
}
labels["foxes"] = {
type = "set",
description = "default",
parents = {"kanid"},
}
labels["burung air tawar"] = {
type = "set",
description = "=birds that live mainly in [[freshwater]] areas, including [[estuaries]]",
parents = {"burung"},
}
labels["freshwater whitefish"] = {
type = "set",
description = "=[[cisco]]s, [[houting]]s, [[inconnu]]s, [[lavaret]]s, [[marena]]s, [[omul]]s, [[Otsego bass]], [[peled]]s, [[pollan]]s, [[roundfish]], [[tullibee]]s, [[vendace]]s, [[whitefish]] and other fish in the [[salmonid]] [[subfamily]] [[Coregoninae]]",
parents = {"salmonids"},
}
labels["frogs"] = {
type = "set",
description = "default",
parents = {"anurans"},
}
labels["gadiforms"] = {
type = "set",
description = "=[[cod]], [[haddock]], [[hake]] and other fish in the [[order]] [[Gadiformes]]",
parents = {"ikan"},
}
labels["ikan gasterosteiform"] = {
type = "set",
description = "=[[stickleback]]s, [[hypoptychid]] [[sand eel]]s, [[tubesnout]]s and other fish in the [[order]] [[Gasterosteiformes]]",
additional = "Note: See [[:Category:Ikan singnatiform]] for a group formerly included within this order.",
parents = {"ikan"},
}
labels["gastropod"] = {
type = "set",
description = "default",
parents = {"moluska"},
}
labels["geckos"] = {
type = "set",
description = "=[[lizard]]s in the [[infraorder]] [[Gekkota]], except for the [[legless lizards]] or [[pygopod]]s",
parents = {"lizards"},
}
labels["angsa"] = {
type = "set",
description = "default",
parents = {"anatid", "poltri"},
}
labels["geometrid moths"] = {
type = "set",
description = "=[[carpet]]s, [[engrailed]]s, [[heath]]s, [[pug]]s, [[peppered moth]]s, [[streak]]s, [[wave]]s and other [[moth]]s in the [[family]] [[Geometridae]], most of which have [[caterpillar]]s known as [[inchworm]]s, [[looper]]s, [[measuring worm]]s or [[spanworm]]s",
parents = {"moths"},
}
labels["goats"] = {
type = "set",
description = "default",
parents = {"caprines", "ternakan"},
}
labels["gobies"] = {
type = "set",
description = "=[[goby|gobies]], [[dartfish]], [[mudskipper]]s, [[sea gudgeon]]s, [[sleeper]]s, [[wormfish]], and other [[fish]] in the [[perciform]] [[suborder]] [[Gobioidei]]",
parents = {"ikan"},
}
labels["gossamer-winged butterflies"] = {
type = "set",
description = "=[[blue]]s, [[copper]]s, [[elfin]]s, [[harvester]]s, [[hairstreak]]s, [[sunbeam]]s and other [[butterfly|butterflies]] in the [[family]] [[Lycaenidae]]",
parents = {"butterflies"},
}
labels["grebes"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["grouse"] = {
type = "set",
description = "=[[blackcock]]s, [[capercaillie]]s, [[grouse]], [[moorcock]]s, [[prairie chicken]]s, [[ptarmigan]]s, [[sagehen]]s, and other birds in the [[phasianid]] [[subfamily]] [[Tetraoninae]]",
parents = {"unggas"},
}
labels["gruiforms"] = {
type = "set",
description = "=[[coot]]s, [[crake]]s, [[crane]]s, [[finfoot]]s, [[flufftail]]s, [[gallinule]]s, [[limpkin]]s, [[rail]]s, [[sungrebe]]s, [[trumpeter]]s, and other birds in the [[order]] [[Gruiformes]]",
parents = {"burung air tawar"},
}
labels["gulls"] = {
type = "set",
description = "=[[gull]]s, [[seabird]]s in the [[family]] [[Laridae]]",
parents = {"burung laut"},
}
labels["anjing pemburu"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["hares"] = {
type = "set",
description = "default",
parents = {"lagomorphs"},
}
labels["hemipterans"] = {
type = "set",
description = "=[[aphid]]s, [[leafhopper]]s, [[scale insect]]s, [[true bug]]s, [[whitefly|whiteflies]], and other [[insect]]s in the order [[Hemiptera]]",
parents = {"serangga"},
}
labels["herding dogs"] = {
type = "set",
description = "default",
parents = {"pastoral dogs"},
}
labels["herons"] = {
type = "set",
description = "=[[heron]]s, [[bittern]]s and [[egret]]s",
parents = {"burung air tawar"},
}
labels["herpestids"] = {
type = "set",
description = "=[[herpestid]]s- mongooses, meerkats, and relatives",
parents = {"karnivor"},
}
labels["herrings"] = {
type = "set",
description = "=[[herring]]s, [[shad]]s, [[sardine]]s and other fish in the family [[Clupeidae]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ikan holostean"] = {
type = "set",
description = "=[[gar]]s and [[bowfin]]s, primitive fish in the [[infraclass]] [[Holostei]]",
parents = {"ikan"},
}
labels["hominid"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["honeyeaters"] = {
type = "set",
description = "=Australian [[chat]]s, [[bellbird]]s, [[friarbird]]s, [[gibberbird]]s, [[honeyeater]]s, [[miner]]s, [[spinebill]]s, [[wattlebird]]s, and other birds in the [[family]] [[Meliphagidae]]",
parents = {"meliphagoid birds"},
}
labels["hoopoes and hornbills"] = {
type = "set",
description = "=[[hoopoe]]s, [[woodhoopoe]]s (including [[scimitarbill]]s), [[hornbill]]s, [[ground hornbill]]s, and other birds in the taxonomic order [[Bucerotiformes]]",
parents = {"burung"},
}
labels["horseflies"] = {
type = "set",
description = "=[[blind-fly|blind-flies]], [[breezefly|breezeflies]], [[cleg]]s, [[deerfly|deerflies]], [[forest fly|forest flies]], [[gadfly|gadflies]], [[horsefly|horseflies]], [[oxfly|oxflies]], [[zimb]]s, and other biting flies in the [[family]] [[Tabanidae]]",
parents = {"dipterans"},
}
labels["horse breeds"] = {
type = "set",
description = "default",
parents = {"kuda"},
commonscat = true,
wpcat = true,
}
labels["kuda"] = {
type = "set",
description = "default",
parents = {"Equidae", "ternakan"},
}
labels["hummingbirds"] = {
type = "set",
description = "default",
parents = {"apodiforms"},
}
labels["hunting dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["hyaenids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["hydrozoans"] = {
type = "set",
description = "=[[bluebottle]]s, [[calycophoran]]s, [[filiferan]]s, [[hydra]]s, [[hydractinian]]s, [[leptothecate]]s, [[narcomedusa]]s, [[pandeid]]s, [[physonect]]s, [[plumularian]]s, [[Portuguese man-of-war]]s, [[siphonophore]]s, [[stylaster]]s, [[sea fir]]s, [[sea ginger]], [[trachylid]]s, [[trachymedusa]]s, amd other haiwan in the [[cnidarian]] [[class]] [[Hydrozoa]]",
parents = {"knidaria"},
}
labels["Hymenoptera"] = {
type = "set",
description = "=[[semut]], [[lebah]], [[penyengat]] dan serangga lain dalam order [[Hymenoptera]]",
parents = {"serangga"},
}
labels["hyraxes"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["ibises and spoonbills"] = {
type = "set",
description = "=[[ibis]]es and [[spoonbill]]s",
parents = {"burung air tawar"},
}
labels["ichthyosauromorphs"] = {
type = "set",
description = "=[[ichthyosaurs]] and related groups of [[extinct]] [[aquatic]] [[reptile]]s in the [[clade]] [[Ichthyosauromorpha]]",
parents = {"reptilia"},
}
labels["icterids"] = {
type = "set",
description = "=birds in the [[New World]] [[passerine]] family [[Icteridae]]",
parents = {"burung tenggek"},
}
labels["iguanoid lizards"] = {
type = "set",
description = "=[[anole]]s, [[basilisk]]s, [[collared lizard]]s, [[chuckwalla]]s, [[fence lizard]]s, [[fringe-toed lizard]]s, [[horned lizard]]s, [[iguana]]s, [[leopard lizard]]s, [[side-blotched lizard]]s, [[zebra-tailed lizard]]s and other [[lizard]]s formerly included in the [[family]] [[Iguanidae]], and now mostly treated as comprising either the [[infraorder]] [[Pleurodonta]] or the [[superfamily]] [[Iguanoidea]]",
parents = {"lizards"},
}
labels["serangga"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["isopods"] = {
type = "set",
description = "=[[gribble]]s, [[pillbug]]s, [[salve bug]]s, [[slater]]s, [[sea slater]]s, [[sowbug]]s, [[woodlouse|woodlice]], and other [[crustacean]]s in the [[order]] [[Isopoda]]",
parents = {"crustaceans"},
}
labels["jackfish"] = {
type = "set",
description = "=[[jack]]s, [[pompano]]s, [[jack mackerel]]s, [[scad]]s and other fish in the family [[Carangidae]]",
parents = {"ikan perkoid"},
}
labels["ikan tanpa rahang"] = {
type = "set",
description = "=[[lamprey]]s and [[hagfish]]: primitive eel-like fishes that have no jaws",
parents = {"ikan"},
}
labels["kingfishers"] = {
type = "set",
description = "default",
parents = {"coraciiforms"},
}
labels["kites (birds)"] = {
type = "set",
description = "=[[hawk]]s in the [[accipitrid]] [[subfamily|subfamilies]] [[Milvinae]] and [[Elaninae]], as well as some in the subfamily [[Perninae]]",
parents = {"burung pemangsa"},
}
labels["ikan kifosid"] = {
type = "set",
description = "=[[blackfish]], [[drummer]]s, [[footballer]]s, [[greenfish]], [[halfmoon]]s, [[luderick]]s, [[mado]]s, [[moonlighter]]s, [[nibbler]]s, [[opaleye]]s, [[sea chub]]s, [[stripey]]s, [[sweep]]s and other fish in the [[percoid]] [[family]] [[Kyphosidae]]",
parents = {"ikan perkoid"},
}
labels["ikan labroid"] = {
type = "set",
description = "=[[anemonefish]], [[cale]]s, [[cichlid]]s, [[clownfish]], [[damselfish]], [[parrotfish]], [[surfperch]], [[wrasse]]s, and other fish in the [[perciform]] [[suborder]] [[Labroidei]]",
parents = {"ikan"},
}
labels["ikan labirin"] = {
type = "set",
description = "=[[climbing perch]], [[gourami]]s, [[paradisefish]], [[Siamese fighting fish]] and other fish in the [[suborder]] [[Anabantoidei]]",
parents = {"ikan"},
}
labels["lacertoid lizards"] = {
type = "set",
description = "=[[amphisbaena]]s, [[caiman lizard]]s, [[green lizard]]s, [[ocellated lizard]]s, [[racerunner]]s, [[rock lizard]]s, [[tegu]]s, [[teiid]]s, [[thunderworm]]s, [[viviparous lizard]]s, [[wall lizard]]s, [[whiptail]]s, and other [[lizard]]s in the [[superfamily]] [[Lacertoidea]]",
parents = {"lizards"},
}
labels["lagomorphs"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["lamniform sharks"] = {
type = "set",
description = "=[[basking shark]]s, [[goblin shark]]s, [[great white shark]]s, [[mako shark]]s, [[megamouth shark]]s, [[porbeagle]]s, [[sand shark]]s, [[thresher shark]]s, and other [[shark]]s in the [[order]] [[Lamniformes]]",
parents = {"jerung"},
}
labels["ikan lampriform"] = {
type = "set",
description = "=[[crestfish]], [[oarfish]], [[opah]]s, [[ribbonfish]], [[velifer]]s and other fish in the [[order]] [[Lampridiformes]] (not to be confused with the unrelated [[lamprey]]s)",
parents = {"ikan"},
}
labels["larks"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["laughingthrushes"] = {
type = "set",
description = "=birds in the [[family]] [[Leiothrichidae]]",
parents = {"burung tenggek"},
}
labels["leaf warblers"] = {
type = "set",
description = "=birds in the family [[Phylloscopidae]]",
parents = {"warblers"},
}
labels["kera kecil"] = {
type = "set",
description = "=[[gibbon]]s (including [[hoolock]]s, [[lar gibbon]]s [[wow-wow]]s, etc.) and [[siamang]]s, comprising the [[family]] [[Hylobatidae]], which is closely related to the [[hominid]]s",
parents = {"primate"},
}
labels["ikan leusisin"] = {
type = "set",
description = "=[[bream]]s, [[chub]]s, [[dace]]s, [[ide]]s, many [[minnow]]s, [[nase]]s, [[roach]]es, [[shiner]]s, [[ziege]]s, and other fish in the [[cyprinid]] [[subfamily]] [[Leuciscinae]], sometimes treated as the [[family]] [[Leuciscidae]], or as the [[tribe]] [[Leuciscini]] within the [[subfamily]] [[Cyprininae]]",
parents = {"cyprinids"},
}
labels["libellulid dragonflies"] = {
type = "set",
description = "=[[amberwing]]s, [[basker]]s, [[darter]]s, [[dropwing]]s, [[duskhawk]]s, [[flutterer]]s, [[glider]]s, [[meadowhawk]]s, [[pennant]]s, [[percher]]s, [[skimmer]]s, [[slimwing]]s, [[swampdragon]]s, [[twister]]s, and other [[dragonfly|dragonflies]] in the [[family]] [[Libellulidae]]",
parents = {"dragonflies and damselflies"},
}
labels["lice"] = {
type = "set",
description = "=[[parasitic]] serangga in the [[order]] [[Psocodea]]",
parents = {"serangga"},
}
labels["limenitidine butterflies"] = {
type = "set",
description = "=[[admiral]]s, [[clipper]]s, [[count]]s, [[duke]]s, [[purple]]s, [[sister]]s, and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Limenitidinae]]",
parents = {"nymphalid butterflies"},
}
labels["littorinimorphs"] = {
type = "set",
description = "=[[boat shell]]s, [[carrier shell]]s, [[conch]]s, [[cowry|cowries]], [[flamingo tongue]]s, [[helmet shell]]s, [[moon snail]]s, [[pebblesnail]]s, [[trumpet shell]]s, [[velutinid]]s, [[winkle]]s, [[worm-shell]]s, and other [[gastropod]]s in the [[order]] [[Littorinimorpha]]",
parents = {"gastropod"},
}
labels["livestock guardian dogs"] = {
type = "set",
description = "default",
parents = {"pastoral dogs"},
}
labels["lizards"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["loaches"] = {
type = "set",
description = "=fish in the [[cypriniform]] [[superfamily]] [[Cobitoidea]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["ikan sirip lobus"] = {
type = "set",
description = "=[[coelacanth]]s, [[lungfish]] and other fishes in the [[subclass]] [[Sarcopterygii]] of the [[bony fish]]es",
additional = "<u>Please note</u>: although the [[tetrapod]]s (including all [[reptile]]s, [[amphibian]]s, [[bird]]s and [[mammal]]s) are descended from within this group, they are excluded from this category by not being fish.",
parents = {"ikan"},
}
labels["loons"] = {
type = "set",
description = "=[[loon]]s, birds known as [[diver]]s outside the US",
parents = {"burung air tawar"},
}
labels["macaques"] = {
type = "set",
description = "=[[Barbary ape]]s, [[bonnet monkey]]s, [[crab-eating macaque]]s, [[Japanese macaque]]s, [[moor macaque]]s, [[pigtail macaque]]s, [[rhesus monkey]]s, [[toque]]s, and other [[Old World monkey]]s in the [[genus]] ''[[Macaca]]''",
parents = {"monyet dunia lama"},
}
labels["macropods"] = {
type = "set",
description = "=[[bettong]]s, [[kangaroo]]s, [[pademelon]]s, [[potoroo]]s, [[quokka]]s, [[wallaby]]s, and other [[marsupial]]s in the [[diprotodont]] [[suborder]] [[Macropodiformes]]",
parents = {"marsupials"},
}
labels["malaconotoid birds"] = {
type = "set",
description = "=[[Australian magpie]]s, [[bushshrike]]s, [[butcherbird]]s, [[boubou]]s, [[brubru]]s, [[currawong]]s, [[gonolek]]s, [[squeaker]]s, [[vanga]]s, and other birds in the [[passerine]] [[superfamily]] [[Malaconotoidea]]",
parents = {"burung tenggek"},
}
labels["male haiwan"] = {
type = "set",
description = "default",
parents = {"haiwan", "male"},
}
labels["mamalia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
}
labels["mantids"] = {
type = "set",
description = "=serangga in the [[order]] [[Mantodea]], often known as [[praying mantis]]es",
parents = {"serangga"},
}
labels["marsupials"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["mayflies"] = {
type = "set",
description = "=serangga in the [[order]] [[Ephemeroptera]]",
parents = {"serangga"},
}
labels["megalopterans"] = {
type = "set",
description = "=[[alderfly|alderflies]], [[dobsonfly|dobsonflies]], [[fishfly|fishflies]] and other serangga in the [[order]] [[Megaloptera]]",
parents = {"serangga"},
}
labels["meliphagoid birds"] = {
type = "set",
description = "=[[blue wren]]s, [[bristlebird]]s, [[emu-wren]]s, [[fairywren]]s, [[gerygone]]s, [[grasswren]]s, [[honeyeater]]s, [[pardalote]]s, [[pilotbird]]s, [[redthroat]]s, [[scrubwren]]s, [[thornbill]]s, [[weebill]]s, [[whiteface]]s, and other birds in the [[passerine]] [[superfamily]] [[Meliphagoidea]]",
parents = {"burung tenggek"},
}
labels["mephitids"] = {
type = "set",
description = "=[[mephitid]]s: skunks and stink badgers",
parents = {"karnivor"},
}
labels["mergansers"] = {
type = "set",
description = "=[[diving]] [[duck]]s in the [[genus]] ''[[Mergus]]'' and a few similar species",
parents = {"itik"},
}
labels["mimids"] = {
type = "set",
description = "=[[catbird]]s, [[mockingbird]]s, [[thrasher]]s and other birds in the [[passerine]] family [[Mimidae]]",
parents = {"burung tenggek"},
}
labels["mites and ticks"] = {
type = "set",
description = "=[[arachnid]]s in the [[subclass]] [[Acari]]",
parents = {"araknid"},
}
labels["moluska"] = {
type = "set",
description = "default",
parents = {"haiwan"},
commonscat = "Mollusca",
wpcat = "Molluscs",
}
labels["monyet"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["monotremes"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["nyamuk"] = {
type = "set",
description = "=[[insect]]s in the [[dipteran]] [[family]] [[Culicidae]]",
parents = {"culicomorphs"},
}
labels["moths"] = {
type = "set",
description = "default",
parents = {"serangga"},
}
labels["murids"] = {
type = "set",
description = "=a number of [[rats]], [[mice]], and other [[rodent]]s in the [[Old World]] [[family]] [[Muridae]]",
parents = {"roden"},
}
labels["muscicapids"] = {
type = "set",
description = "=birds in the [[passerine]] family [[Muscicapidae]]",
parents = {"burung tenggek"},
}
labels["muscoid flies"] = {
type = "set",
description = "=[[anthomyiid]]s such as [[root fly|root flies]], [[cabbage fly|cabbage flies]] and [[onion fly|onion flies]]; [[fanniid]]s; [[muscid]]s such as [[housefly|houseflies]], [[face fly|face flies]] and [[stable fly|stable flies]]; [[scathophagid]]s such as [[dungfly|dungflies]]; and other [[fly|flies]] in the [[dipteran]] [[superfamily]] [[Muscoidea]]",
parents = {"dipterans"},
}
labels["mustelids"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["lelabah migalomorf"] = {
type = "set",
description = "=[[baboon spider]]s, [[barking spider]]s, [[bird spider]]s, [[purseweb spider]]s, [[tarantula]]s, [[trapdoor spider]]s, and other [[spider]]s in the [[infraorder]] [[Mygalomorphae]]",
parents = {"lelabah"},
}
labels["myriapods"] = {
type = "set",
description = "=[[centipede]]s, [[millipede]]s, [[pauropod]]s, [[symphylan]]s, and other [[arthropod]]s in the [[subfilum]] [[Myriapoda]]",
parents = {"artropod"},
}
labels["myrmicine ants"] = {
type = "set",
description = "=[[ant]]s in the [[subfamily]] [[Myrmicinae]]",
parents = {"ants"},
}
labels["nematodes"] = {
type = "set",
description = "=[[filaria]], [[gapeworm]]s, [[lungworm]]s, [[pinworm]]s, [[threadworm]]s, [[wheatworm]]s, [[whipworm]]s and other [[worm]]s in the [[filum]] [[Nematoda]]",
parents = {"cacing"},
}
labels["neogastropod"] = {
type = "set",
description = "=[[admiral shell]]s, [[cone snail]]s, [[harp shell]]s, [[murex]]es, [[olive]]s, [[rhombus]]es, [[spindle]]s, [[tulip shell]]s, [[turnip shell]]s, [[volute]]s, [[whelk]]s, [[winkle]]s and other [[gastropod]]s in the [[clade]] [[Neogastropoda]] (treated as an [[order]] in some classifications)",
parents = {"gastropod"},
}
labels["monyet dunia baharu"] = {
type = "set",
description = "=[[capuchin]]s, [[howler monkey]]s, [[marmoset]]s, [[night monkey]]s, [[saki]]s, [[spider monkey]]s, [[squirrel monkey]]s, [[tamarin]]s, [[titi]]s, [[uakari]]s, [[woolly monkey]]s, and other [[monkey]]s in the [[parvorder]] [[Platyrrhini]]",
parents = {"monyet"},
}
labels["New World quails"] = {
type = "set",
description = "=birds in the [[family]] [[Odontophoridae]], most of which live in the [[New World]] and are known as [[quail]]s, but the family also includes the African [[genus]] ''[[Ptilopachus]]'' and some [[species]] are known as partridges",
parents = {"unggas"},
}
labels["New World sparrows"] = {
type = "set",
description = "=[[sparrow]]- and [[finch]]-like birds in the [[passerine]] [[family]] [[Passerellidae]], until recently considered part of the family [[Emberizidae]]",
parents = {"burung tenggek"},
}
labels["New World warblers"] = {
type = "set",
description = "=birds in the family [[Parulidae]]",
parents = {"warblers"},
}
labels["neuropterans"] = {
type = "set",
description = "=[[antlion]]s, [[lacewing]]s, [[mantisfly|mantisflies]], [[owlfly|owlflies]] and other serangga in the [[order]] [[Neuroptera]]",
parents = {"serangga"},
}
labels["newts"] = {
type = "set",
description = "=[[terrestrial]] [[salamander]]s in the [[subfamily]] [[Pleurodelinae]]",
parents = {"salamanders"},
}
labels["noctuoid moths"] = {
type = "set",
description = "=[[armyworm]]s, [[cinnabar]]s, [[corn earworm]]s, [[cutworm]]s, [[gypsy moth]]s, [[owlet moth]]s, [[processionary|processionaries]], [[tiger moth]]s, [[underwing]]s, [[wainscot]]s, [[wooly bear]]s, and many other [[moth]]s (and [[caterpillar]]s) in the [[superfamily]] [[Noctuoidea]]",
parents = {"moths"},
}
labels["nudibranchs"] = {
type = "set",
description = "=[[sea slug]]s in the [[gastropod]] [[order]] [[Nudibranchia]]",
parents = {"gastropod"},
}
labels["nymphalid butterflies"] = {
type = "set",
description = "=[[admiral]]s, [[brown]]s, [[buckeye]]s, [[checkerspot]]s, [[emperor]]s, [[fritillary|fritillaries]], [[leafwing]]s, [[longwing]]s, [[monarch]]s, [[morpho]]s, [[painted lady|painted ladies]], [[ringlet]]s, [[satyr]]s, [[sister]]s, [[snout]]s, [[tortoiseshell]]s, and other butterflies in the [[family]] [[Nymphalidae]]",
parents = {"butterflies"},
}
labels["kurita"] = {
type = "set",
description = "default",
parents = {"sefalopod"},
}
labels["ungulat kuku ganjil"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Perissodactyla]], including the [[equid]]s, [[tapir]]s and [[rhinoceros]]es",
parents = {"mamalia"},
}
labels["oestroid flies"] = {
type = "set",
description = "=[[blowfly|blowflies]], [[bluebottle]]s, [[botfly|botflies]], [[flesh fly|flesh fles]], [[greenbottle]]s, [[mango fly|mango flies]], [[screwworm]]s, [[tachinid]]s, [[torsalo]]s, [[tumbu fly|tumbu flies]], [[warble fly|warble flies]], and other flies in the [[superfamily]] [[Oestroidea]]",
parents = {"dipterans"},
}
labels["monyet dunia lama"] = {
type = "set",
description = "=[[baboon]]s, [[colobus]], [[douc]]s, [[gelada]]s, [[green monkey]]s, [[grivet]]s, [[langur]]s, [[malbrouck]]s, [[mandrill]]s, [[mangabey]]s, [[patas monkey]]s, [[proboscis monkey]]s, [[talapoin]]s, [[vervet]]s, and other [[monkeys]] in the [[family]] [[Cercopithecidae]], the only [[members]] of the [[parvorder]] [[Catarrhini]] aside from the greater/lesser apes and humans",
parents = {"monyet"},
}
labels["Old World orioles"] = {
type = "set",
description = "=[[perching bird]]s in the [[family]] [[Oriolidae]], which are not closely related to the New World orioles in the family [[Icteridae]]",
parents = {"burung tenggek"},
}
labels["ornithopods"] = {
type = "set",
description = "=[[camptosaurid]]s, [[hadrosaur]]s, [[iguanodontid]]s, [[lambeosaurid]]s, [[rhabdodontid]]s, [[saurolophid]]s, [[thescelosaurid]]s, [[trachodontid]]s, and other [[dinosaur]]s in the [[ornithischian]] [[clade]] [[Ornithopoda]]",
parents = {"dinosaur"},
}
labels["ikan osteoglosomorf"] = {
type = "set",
description = "=[[aba]]s, [[arapaima]]s, [[arowana]]s, [[butterfly fish]], [[elephantfish]], [[featherback]]s, [[mooneye]]s and other fish in the [[superorder]] [[Osteoglossomorpha]]",
parents = {"ikan"},
}
labels["otariid seals"] = {
type = "set",
description = "=[[mammal]]s in the [[family]] [[Otariidae]], including the [[fur seal]]s and [[sea lion]]s",
parents = {"pinnipeds"},
}
labels["burung otidimorf"] = {
type = "set",
description = "=[[bustard]]s in the [[family]] [[Otididae]] and [[order]] [[Otidiformes]]; [[turaco]]s or [[lourie]]s, [[go-away bird]]s, [[plantain-eater]]s, etc., in the [[family]] [[Musophagidae]] and [[order]] [[Musophagiformes]]; and [[cuckoo]]s in the [[family]] [[Cuculidae]] and [[order]] [[Cuculiformes]]; all in the [[clade]] [[Otidimorphae]]",
parents = {"burung"},
}
labels["ikan otosefala"] = {
type = "set",
description = "=[[anchovy|anchovies]], [[beaked salmon]], [[carp]], [[catfish]], [[characin]]s, [[electric eel]]s, [[ghost knifefish]], [[herring]]s, [[loach]]es, [[milkfish]], [[minnow]]s, [[mousefish]], [[slickhead]]s, [[sucker]]s, [[tubeshoulder]]s, and other fish in the [[clade]] [[Otocephala]]",
parents = {"ikan"},
}
labels["ovenbirds"] = {
type = "set",
description = "=burung in the [[suboscine]] family [[Furnariidae]], including the former family Dendrocolaptidae (now the [[subfamily]] [[Dendrocolaptinae]])",
parents = {"suboscines"},
}
labels["owls"] = {
type = "set",
description = "default",
parents = {"burung pemangsa"},
}
labels["pangolins"] = {
type = "set",
description = "=[[mammal]]s in the [[order]] [[Pholidota]]",
parents = {"mamalia"},
}
labels["panthers"] = {
type = "set",
description = "=[[panther]]s in the sense of members of the genus ''[[Panthera]]''",
parents = {"felids"},
}
labels["parrots"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["pastoral dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["penguins"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["pentatomoid bugs"] = {
type = "set",
description = "=[[acanthosomatid]]s, [[burrowing bug]]s, [[jewel bug]]s, [[shield bug]]s, [[stinkbug]]s, [[thyreocorid]]s, and other [[true bug]]s in the [[superfamily]] [[Pentatomoidea]]",
parents = {"true bugs"},
}
labels["perch and darters"] = {
type = "set",
description = "=fish in the family [[Percidae]]",
parents = {"ikan perkoid"},
}
labels["burung tenggek"] = {
type = "set",
description = "=Burung tenggek: salah satu ahli order [[Passeriformes]]",
parents = {"burung"},
}
labels["ikan perkoid"] = {
type = "set",
description = "=[[archerfish]], [[bass]], [[bigeye]]s, [[bluefish]], [[butterflyfish]], [[cardinalfish]], [[cobia]], [[croaker]]s, [[flagtail]]s, [[goatfish]], [[grouper]]s, [[grunt]]s, [[horse mackerel]], [[jack]]s, [[jawfish]], [[leaffish]], [[mahi-mahi]], [[mojarra]], [[perch]], [[pomfret]]s, [[pompano]], [[ponyfish]], [[porgy|porgies]], [[remora]]s, [[roosterfish]], [[sea bass]], [[sea bream]], [[snapper]], [[sunfish]], [[sweeper]]s, [[threadfin]], [[tilefish]], [[wreckfish]], and other [[perciform]] fish in the [[superfamily]] [[Percoidea]]",
parents = {"ikan"},
}
labels["phiomorphs"] = {
type = "set",
description = "=[[blesmol]]s, [[sand mole]]s, [[mole rat]]s, [[dassie rat]]s or [[rock rat]]s, [[Old World porcupine]]s, [[cane rat]]s or [[grasscutter]]s and other [[rodent]]s in the parvorder [[Phiomorpha]], which is the Old World counterpart of the [[caviomorph]]s",
parents = {"roden"},
}
labels["phocid seals"] = {
type = "set",
description = "=[[mammal]]s in the [[family]] [[Phocidae]], including the [[earless seal]]s (also known as [[true seal]]s)",
parents = {"pinnipeds"},
}
labels["piciforms"] = {
type = "set",
description = "=[[woodpecker]]s, [[aracari]]s, [[coppersmith]]s, [[honeyguide]]s, [[jacamar]]s, [[nunlet]]s, [[puffbird]]s, [[toucan]]s, and other burung in the [[order]] [[Piciformes]]",
parents = {"burung"},
}
labels["pierid butterflies"] = {
type = "set",
description = "=[[brimstone]]s, [[orange tip]]s, [[sulfur]]s, [[white]]s and other [[butterfly|butterflies]] in the [[family]] [[Pieridae]]",
parents = {"butterflies"},
}
labels["pigs"] = {
type = "set",
description = "default",
parents = {"ungulat kuku genap", "ternakan"},
commonscat = "Suidae",
wpcat = true,
}
labels["pikes (fish)"] = {
type = "set",
description = "=fish in the family [[Esocidae]]",
parents = {"ikan"},
}
labels["pinnipeds"] = {
type = "set",
description = "default",
parents = {"karnivor"},
}
labels["pipits and wagtails"] = {
type = "set",
description = "=burung in the [[passerine]] family [[Motacillidae]]",
parents = {"burung tenggek"},
}
labels["placoderms"] = {
type = "set",
description = "=[[extinct]] armored fish of the [[class]] [[Placodermi]] from the [[Silurian]] and [[Devonian]] [[geologic]] [[period]]s",
parents = {"ikan"},
}
labels["plovers and lapwings"] = {
type = "set",
description = "=burung in the [[charadriiform]] [[family]] [[Charadriidae]]",
parents = {"shorebirds"},
}
labels["pomfrets"] = {
type = "set",
description = "=fish in the family [[Bramidae]]",
parents = {"ikan perkoid"},
}
labels["primat"] = {
type = "set",
description = "default",
parents = {"mamalia"},
commonscat = true,
wpcat = true,
}
labels["procyonids"] = {
type = "set",
description = "=[[procyonid]]s: ([[raccoon]]s, [[coati]]s, [[kinkajou]]s, [[olingo]]s, [[ringtail]]s and [[cacomistle]]s)",
parents = {"karnivor"},
}
labels["prosimian"] = {
type = "set",
description = "default",
parents = {"primat"},
}
labels["pterosaurs"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["pyraloid moths"] = {
type = "set",
description = "=[[bee moth]]s, [[flour moth]]s, [[leaf crumpler]]s, [[magpie moth]]s, [[melonworm]]s, [[mint moth]]s, [[orangeworm]]s, [[pantry moth]]s, [[pickleworm]]s, [[snout moth]]s, [[veneer moth]]s, [[wax moth]]s and other [[crambid]] and [[pyralid]] [[moths]] in the [[superfamily]] [[Pyraloidea]]",
parents = {"moths"},
}
labels["rabbits"] = {
type = "set",
description = "default",
parents = {"lagomorphs"},
}
labels["rallids"] = {
type = "set",
description = "=[[rallid]]s: [[rail]]s and other burung in the family [[Rallidae]]",
parents = {"gruiforms"},
}
labels["ratites"] = {
type = "set",
description = "=[[ratite]]s: burung in the superorder [[Palaeognathae]], including large flightless burung such as [[ostrich]]es, and [[emu]]s, as well as the smaller [[kiwi]]s and [[flighted]] [[tinamous]]",
parents = {"burung"},
}
labels["rays and skates"] = {
type = "set",
description = "=[[fish]] in the superorder [[Batoidea]]",
parents = {"ikan"},
}
labels["reindeers"] = {
type = "set",
description = "default",
parents = {"cervids"},
}
labels["reptilia"] = {
type = "set",
description = "default",
parents = {"vertebrat"},
commonscat = "Reptilia",
wpcat = true,
}
labels["retrievers"] = {
type = "set",
description = "default",
parents = {"anjing pemburu"},
}
labels["rhinoceroses"] = {
type = "set",
description = "=[[rhinoceros]]es, [[mammal]]s in the [[perissodactylic]] [[family]] [[Rhinocerotidae]]",
parents = {"ungulat kuku ganjil"},
}
labels["roden"] = {
type = "set",
description = "default",
parents = {"mamalia"},
}
labels["salamanders"] = {
type = "set",
description = "=[[amphiuma]]s, [[axolotl]]s, [[hellbender]]s, [[mud puppy|mud puppies]], [[olm]]s, [[newt]]s, [[salamander]]s, [[siren]]s, and other [[amphibian]]s in the [[order]] [[Caudata]]",
parents = {"amfibia"},
}
labels["salmonids"] = {
type = "set",
description = "=[[salmon]]s, [[trout]], and other fish in the family [[Salmonidae]]",
parents = {"ikan"},
}
labels["saturniid moths"] = {
type = "set",
description = "=[[Atlas moth]]s, [[cecropia]]s, [[hickory horned devil]]s, [[io moth]]s, [[luna moth]]s, [[polyphemus moth]]s, and other [[moth]]s (and [[caterpillar]]s) in the [[family]] [[Saturniidae]]",
parents = {"moths"},
}
labels["satyrine butterflies"] = {
type = "set",
description = "=[[brown]]s, [[forester]]s, [[grayling]]s, [[heath]]s, [[palmfly|palmflies]], [[ringlet]]s, [[satyr]]s, and other [[butterfly|butterflies]] in the [[nymphalid]] [[subfamily]] [[Satyrinae]]",
parents = {"nymphalid butterflies"},
}
labels["sauropods"] = {
type = "set",
description = "=[[apatosaur]]s, [[brachiosaur]]s, [[brontosaur]]s, [[camarasaur]]s, [[cetiosaur]]s, [[diplodocus]]es, [[saltasaurid]]s, [[titanosaurian]]s, [[turiasaur]]s, [[vulcanodontid]]s, and other [[dinosaurs]] in the [[saurischian]] [[infraorder]] [[Sauropoda]]",
parents = {"dinosaur"},
}
labels["sauropterygians"] = {
type = "set",
description = "=[[elasmosaur]]s, [[placodont]]s, [[plesiosaur]]s, and other extinct aquatic [[reptile]]s in the [[superorder]] [[Sauropterygia]]",
parents = {"reptilia"},
}
labels["sawflies and wood wasps"] = {
type = "set",
description = "=[[horntail]]s, [[pigeon tremex]], [[rose slug]]s, [[sawfly|sawflies]], [[wood wasp]]s, and other primitive [[hymenopteran]]s in the [[suborder]] [[Symphyta]]",
parents = {"Hymenoptera"},
}
labels["serangga teritip"] = {
type = "set",
description = "=[[insect]]s in the [[superfamily]] [[Coccoidea]]",
parents = {"hemipterans"},
}
labels["scarabaeoids"] = {
type = "set",
description = "=[[cockchafer]]s, [[dor]]s, [[dung beetle]]s, [[June beetle]]s, [[rain beetle]]s, [[rose chafer]]s, [[scarab]]s, [[stag beetle]]s, and other beetles in the [[superfamily]] [[Scarabaeoidea]]",
parents = {"beetles"},
}
labels["scenthounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["scincomorph lizards"] = {
type = "set",
description = "=[[blue-tongue lizard]]s, [[night lizard]]s, [[sandfish]], [[skink]]s, [[sungazer]]s, and other [[lizard]]s in the [[infraorder]] [[Scincomorpha]]",
parents = {"lizards"},
}
labels["scolopacids"] = {
type = "set",
description = "=[[curlew]]s, [[dunlin]]s, [[godwit]]s, [[knot]]s, [[redshank]]s, [[ruff]]s, [[sandpiper]]s, [[snipe]]s, [[stint]]s, [[turnstone]]s, [[tattler]]s, [[whimbrel]]s, [[woodcock]]s, [[yellowleg]]s, and other burung in the [[charadriiform]] [[family]] [[Scolopacidae]]",
parents = {"shorebirds"},
}
labels["scombroids"] = {
type = "set",
description = "=[[mackerel]]s, [[tuna]]s, [[barracuda]]s, [[swordfish]], and other fish in the suborder [[Scombroidei]]",
parents = {"ikan"},
}
labels["ikan skorpaeniform"] = {
type = "set",
description = "=[[bullhead]]s, [[cabezon]], [[golomyanka]], [[greenling]]s, [[gurnard]]s, [[Irish lord]], [[lionfish]], [[lumpsucker]]s, [[pigfish]], [[poacher]]s, [[sablefish]], [[scorpionfish]], [[sculpin]]s, [[sea raven]]s, [[sea toad]]s, [[skilfish]], [[snailfish]], [[stonefish]], [[wingfish]], and other fish in the [[order]] [[Scorpaeniformes]]",
parents = {"ikan"},
}
labels["scorpions"] = {
type = "set",
description = "=true [[scorpion]]s: [[arachnid]]s in the [[order]] [[Scorpiones]]",
parents = {"araknid"},
}
labels["screamers"] = {
type = "set",
description = "=[[screamer]]s: burung in the family [[Anhimidae]], related to [[duck]]s and [[geese]]",
parents = {"burung"},
}
labels["burung laut"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["sea anemones"] = {
type = "set",
description = "=[[cnidarian]]s in the [[order]] [[Actiniaria]]",
parents = {"knidaria"},
}
labels["sea cucumbers"] = {
type = "set",
description = "=[[echinoderm]]s in the [[class]] [[Holothuroidea]]",
parents = {"echinoderms"},
}
labels["sea urchins"] = {
type = "set",
description = "=[[echinoderm]]s in the [[class]] [[Echinoidea]], including the [[sand dollar]]s",
parents = {"echinoderms"},
}
labels["sea turtles"] = {
type = "set",
description = "=[[flatback]]s, [[green turtle]]s, [[hawksbill]]s, [[leatherback]]s, [[loggerhead]]s, [[ridley]]s, and other [[turtle]]s in the [[superfamily]] [[Chelonioidea]]",
parents = {"turtles"},
}
labels["sebastids"] = {
type = "set",
description = "=fish in the family [[Sebastidae]]",
parents = {"ikan skorpaeniform"},
}
labels["serranids"] = {
type = "set",
description = "=[[sea bass]], [[grouper]]s, [[rockcod]]s, [[comber]]s and other fish in the family [[Serranidae]]",
parents = {"ikan perkoid"},
}
labels["jerung"] = {
type = "set",
description = "default",
parents = {"ikan"},
}
labels["kambing biri-biri"] = {
type = "set",
description = "default",
parents = {"caprines", "ternakan"},
}
labels["shorebirds"] = {
type = "set",
description = "default",
parents = {"burung"},
}
labels["shrikes"] = {
type = "set",
description = "default",
parents = {"burung tenggek", "burung korvoid"},
}
labels["sighthounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["skippers"] = {
type = "set",
description = "=serangga in the family [[Hesperiidae]]",
parents = {"butterflies"},
}
labels["smelts"] = {
type = "set",
description = "=fish in the [[order]] [[Osmeriformes]]",
parents = {"ikan"},
}
labels["snails"] = {
type = "set",
description = "default",
parents = {"gastropod"},
}
labels["ular"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["snappers"] = {
type = "set",
description = "=ikan in the [[family]] [[Lutjanidae]]",
parents = {"ikan perkoid"},
}
labels["soft corals"] = {
type = "set",
description = "=[[calcaxonian]]s, [[dead man's fingers]], [[fan coral]]s, [[gorgonian]]s, [[holaxonian]]s, [[scleraxonian]]s, [[sea feather]]s, [[sea willow]]s, [[stoloniferan]]s, [[whip coral]]s, and other marine haiwan in the [[cnidarian]] order [[Alcyonacea]]",
parents = {"knidaria"},
}
labels["soricomorphs"] = {
type = "set",
description = "=[[shrew]]s, [[mole]]s, [[solenodon]]s, and other [[mammal]]s in the [[order]] [[Soricomorpha]]",
parents = {"mamalia"},
}
labels["South American canids"] = {
type = "set",
description = "=fox-like [[canid]]s in the [[subtribe]] [[Cerdocyonina]], which are more closely related to the [[dog]]s and [[wolf|wolves]] than to the true [[fox]]es. Also known as [[zorro]]s",
parents = {"kanid"},
}
labels["spaniels"] = {
type = "set",
description = "default",
parents = {"anjing pemburu"},
}
labels["sparids"] = {
type = "set",
description = "=[[sea breams]], [[porgie]]s, [[scup]]s and other ikan in the family [[Sparidae]]",
parents = {"ikan perkoid"},
}
labels["sphinx moths"] = {
type = "set",
description = "=[[hawkmoth]]s, [[hornworm]]s, [[hummingbird moth]]s, [[sphinx moth]]s,[[tomato worm]]s, and other [[moth]]s (and [[caterpillar]]s) in the [[family]] [[Sphingidae]]",
parents = {"moths"},
}
labels["lelabah"] = {
type = "set",
description = "default",
parents = {"araknid"},
}
labels["sponges"] = {
type = "set",
description = "=[[aquatic]] [[animal]]s in the [[filum]] [[Porifera]]",
parents = {"haiwan"},
}
labels["squid"] = {
type = "set",
description = "default",
parents = {"sefalopod"},
}
labels["squirrels"] = {
type = "set",
description = "=[[squirrel]]s, [[chipmunk]]s, [[marmot]]s, [[prairie dog]]s, [[woodchuck]]s and other [[rodent]]s in the family [[Sciuridae]]",
parents = {"roden"},
}
labels["staphylinoid beetles"] = {
type = "set",
description = "=[[beetle]]s in the [[superfamily]] [[Staphylinoidea]]",
parents = {"beetles"},
}
labels["starlings"] = {
type = "set",
description = "=[[starling]]s, [[mynah]]s, and other birds in the [[passerine]] family [[Sturnidae]]",
parents = {"burung tenggek"},
}
labels["belalang ranting"] = {
type = "set",
description = "=[[insect]]s (including the [[leaf insect]]s) in the [[order]] known as either [[Phasmida]] or [[Phasmatodea]], which are noted for their extreme adaptations in form and color to look like parts of the plants they feed on",
parents = {"serangga"},
}
labels["stoneflies"] = {
type = "set",
description = "=[[freshwater]] [[aquatic]] [[insect]]s in the [[order]] [[Plecoptera]]",
parents = {"serangga"},
}
labels["stony corals"] = {
type = "set",
description = "=marine haiwan in the [[cnidarian]] order [[Scleractinia]]",
parents = {"knidaria"},
}
labels["storks"] = {
type = "set",
description = "default",
parents = {"burung air tawar"},
}
labels["ikan stromateoid"] = {
type = "set",
description = "=[[barrelfish]], [[blue eye cod]], [[dollarfish]], [[driftfish]], [[lafayette]], [[medusafish]], [[rudderfish]], [[squaretail]], [[warehou]], and other ikan in the [[perciform]] [[suborder]] [[Stromateoidei]]",
parents = {"ikan"},
}
labels["sturgeons"] = {
type = "set",
description = "=ikan in the family [[Acipenseridae]]",
parents = {"ikan"},
}
labels["suboscines"] = {
type = "set",
description = "=[[antpitta]]s, [[antshrike]]s, [[antthrush]]es, [[asity|asities]], [[broadbill]]s, [[cotinga]]s, [[crescentchest]]s, [[gnateater]]s, [[manakin]]s, [[ovenbird]]s, [[pitta]]s, [[sharpbill]]s, [[spadebill]]s, [[tapaculo]]s, [[tityra]]s, [[tyrant flycatcher]]s, [[woodcreeper]]s, and other birds in the [[passerine]] [[suborder]] [[Tyranni]]",
parents = {"burung tenggek"},
}
labels["suckers (ikan)"] = {
type = "set",
description = "=[[buffalo fish]], [[cuiui]], [[jumprock]]s, [[quillback]], [[redhorse]], [[sucker]]s, and other freshwater ikan in the family [[Catostomidae]]",
parents = {"ikan", "ikan otosefalan"},
}
labels["suliform birds"] = {
type = "set",
description = "=[[anhinga]]s, [[booby|boobies]], [[cormorant]]s, [[frigatebird]]s, [[gannet]]s, and other [[burung laut]] in the [[order]] [[Suliformes]]",
parents = {"burung laut"},
}
labels["sunfish"] = {
type = "set",
description = "=freshwater ikan otosefalan in the family [[Centrarchidae]]",
parents = {"ikan perkoid"},
}
labels["swallows"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["swallowtails"] = {
type = "set",
description = "=[[apollo]]s, [[batwing]]s, [[birdwing]]s, [[clubtail]]s, [[festoon]]s, [[flying handkerchief]]s, [[Helen]]s, [[jay]]s, [[mime]]s, [[parnassian]]s, [[rose]]s, [[swallowtail]]s, [[swordtail]]s, [[triangle]]s, [[turnus]]es, [[windmill]]s, [[zebra]]s, and other [[butterfly|butterflies]] in the [[family]] [[Papilionidae]], notable for (mostly) having tail-like extensions on their [[hindwing]]s",
parents = {"butterflies"},
}
labels["swan"] = {
type = "set",
description = "default",
parents = {"anatid"},
}
labels["ikan singnatiform"] = {
type = "set",
description = "=[[bellowsfish]], [[cornetfish]], [[pipefish]], [[razorfish]], [[sea dragon]]s, [[sea horse]]s, [[snipefish]], [[trumpetfish]], and other ikan in the [[order]] [[Syngnathiformes]]",
parents = {"ikan"},
}
labels["tanagers"] = {
type = "set",
description = "=[[bananaquit]]s, [[conebill]]s, [[dacnis]]es, [[Darwin's finch]]es, [[grassquit]]s, [[ground finch]]es, [[honeycreeper]]s, [[pardusco]]s, [[tanager]]s, and other [[passerine]] birds in the family [[Thraupidae]]",
parents = {"burung tenggek"},
}
labels["temnospondyls"] = {
type = "set",
description = "=[[extinct]] early [[amphibian]]s in the [[order]] [[Temnospondyli]]",
parents = {"amfibia"},
}
labels["tenebrionoid beetles"] = {
type = "set",
description = "=[[aderid]]s, [[anthicid]]s, [[blister beetle]]s, [[borid]]s, [[ciid]]s, [[flour beetle]]s, [[darkling beetle]]s, [[mealworm]]s, [[melandryid]]s, [[mordellid]]s, [[mycetophagid]]s, [[oedemerid]]s, [[pinacate beetle]]s, [[pyrochroid]]s, [[pythid]]s, [[ripiphorid]]s, [[salpingid]]s, [[toktokkie]]s, [[ulodid]]s, [[wharf borer]]s, [[zopherid]]s and other [[beetle]]s in the [[superfamily]] [[Tenebrionoidea]]",
parents = {"beetles"},
}
labels["tephritoid flies"] = {
type = "set",
description = "=[[cheese fly|cheese flies]], [[tephritid]] [[fruit fly|fruit flies]], [[picture-winged fly|picture-winged flies]] and other [[fly|flies]] in the [[dipteran]] [[superfamily]] [[Tephritoidea]]",
parents = {"dipterans"},
}
labels["termites"] = {
type = "set",
description = "=[[termite]]s, [[insect]]s in the former [[order]] [[Isoptera]], which is now considered a [[suborder]] or other group within the [[cockroach]]es in the order [[Blattodea]]",
parents = {"serangga", "cockroaches"},
}
labels["terns"] = {
type = "set",
description = "=[[tern]]s, [[burung laut]] in the [[family]] [[Sternidae]]",
parents = {"burung laut"},
}
labels["tetraodontiforms"] = {
type = "set",
description = "=[[pufferfish]], [[triggerfish]], [[boxfish]], [[ocean sunfish]] and other ikan in the order [[Tetraodontiformes]]",
parents = {"ikan"},
}
labels["terriers"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["theropods"] = {
type = "set",
description = "=[[dinosaur]]s in the [[clade]] [[Theropoda]]",
parents = {"dinosaur"},
}
labels["thrushes"] = {
type = "set",
description = "default",
parents = {"burung tenggek"},
}
labels["ticks"] = {
type = "set",
description = "=[[bloodsucking]] [[araknid]] in the [[order]] [[Ixodida]] (also known as [[Metastigmata]])",
parents = {"mites and ticks"},
}
labels["tinamous"] = {
type = "set",
description = "default",
parents = {"ratites"},
}
labels["tits"] = {
type = "set",
description = "=[[tit]]s, birds known as [[chickadee]]s in the US",
parents = {"burung tenggek"},
}
labels["toads"] = {
type = "set",
description = "default",
parents = {"anurans"},
}
labels["toothcarps"] = {
type = "set",
description = "=[[four-eyed fish]], [[guppy|guppies]], [[killifish]], [[molly|mollies]], [[mummichog]]s, [[platy|platies]], [[swordtail]]s, [[topminnow]]s and other ikan in the [[order]] [[Cyprinodontiformes]]",
parents = {"ikan"},
}
labels["tortoises"] = {
type = "set",
description = "=[[terrestrial]] [[turtle]]s in the [[family]] [[Testudinidae]]",
parents = {"turtles"},
}
labels["tortricid moths"] = {
type = "set",
description = "=[[moth]]s (and [[caterpillar]]s) in the [[family]] [[Tortricidae]]",
parents = {"moths"},
}
labels["ikan trakinoid"] = {
type = "set",
description = "=[[black swallower]]s, [[blue cod]], [[duckbill]]s, [[gaper]]s, [[sand eel]]s, [[torrentfish]], [[weeverfish]] and other ikan in the [[perciform]] [[suborder]] [[Trachinoidei]]",
parents = {"ikan"},
}
labels["toy dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["trilobites"] = {
type = "set",
description = "default",
parents = {"artropod"},
}
labels["true bugs"] = {
type = "set",
description = "=[[insect]]s in the [[hemipteran]] suborder [[Heteroptera]]",
parents = {"hemipterans"},
}
labels["true finches"] = {
type = "set",
description = "=[[finch]]es in the [[passerine]] family [[Fringillidae]]",
parents = {"burung tenggek"},
}
labels["true jellyfish"] = {
type = "set",
description = "=[[cnidarian]]s in the [[class]] [[Scyphozoa]]",
parents = {"knidaria"},
}
labels["true sparrows"] = {
type = "set",
description = "=[[passerine]] birds in the family [[Passeridae]] (for other birds called sparrows, see the [[emberizid]]s)",
parents = {"burung tenggek"},
}
labels["tubenose birds"] = {
type = "set",
description = "=[[albatross]]es, [[fulmar]]s, [[petrel]]s, [[prion]]s, [[shearwater]]s, and other [[seabird]]s in the [[order]] [[Procellariiformes]]",
parents = {"burung laut"},
}
labels["tunicates"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["turtles"] = {
type = "set",
description = "default",
parents = {"reptilia"},
}
labels["tyrant flycatchers"] = {
type = "set",
description = "=[[passerine]] birds in the family [[Tyrannidae]]",
parents = {"suboscines"},
}
labels["ursids"] = {
type = "set",
description = "=[[ursid]]s ([[bear]]s)",
parents = {"karnivor"},
}
labels["Venerida order mollusks"] = {
type = "set",
description = "=[[basket clam]]s, [[bean clam]]s, [[boring clam]]s, [[cockle]]s, [[duck clam]]s, [[giant clam]]s, [[hard clam]]s, [[lentil shell]]s, [[pipi]]s, [[pooquaw]]s, [[quahog]]s, [[surf clam]]s, [[trough-shell]]s, [[ugari]]s, [[Venus clam]]s, [[zebra mussel]]s, and other [[bivalve]]s in the [[order]] [[Venerida]]",
parents = {"bivalvia"},
}
labels["vertebrat"] = {
type = "set",
description = "default",
parents = {"kordata"},
}
labels["vespids"] = {
type = "set",
description = "=[[hornet]]s, [[paper wasp]]s, [[pollen wasp]]s, [[potter wasp]]s, [[yellow jacket]]s, and other [[wasp]]s in the [[family]] [[Vespidae]]",
parents = {"Hymenoptera"},
}
labels["vetigastropod"] = {
type = "set",
description = "=[[abalone]]s or [[ear shell]]s, [[duck's-bill limpet]]s, [[keyhole limpet]]s, [[rosary shell]]s, [[slit-shell]]s, [[topshell]]s, [[turban shell]]s, and other [[gastropod]]s in the [[clade]] [[Vetigastropoda]] (treated in some classifications as an [[order]], in others as [[subclass]])",
parents = {"gastropod"},
}
labels["vipers"] = {
type = "set",
description = "=[[adder]]s, [[asp]]s, [[rattlesnake]]s, [[viper]]s, [[water moccasin]]s and other [[venomous]] ular in the [[Viperidae]]",
parents = {"ular"},
}
labels["viverrids"] = {
type = "set",
description = "=[[viverrid]]s ([[civet]]s, [[genet]]s and relatives)",
parents = {"karnivor"},
}
labels["vombatiforms"] = {
type = "set",
description = "=[[diprotodontid]]s, [[diprotodon]]s, [[phascolarctid]]s, [[koala]]s, [[vombatid]]s, [[wombat]]s, [[phascolome]]s, [[ilariid]]s, [[maradid]]s, [[palorchestid]]s, [[thylacoleonid]]s, [[marsupial lion]]s , [[wynyardiid]]s and other [[marsupial]]s in the [[diprotodont]] [[suborder]] [[Vombatiformes]]",
parents = {"marsupials"},
}
labels["vultures"] = {
type = "set",
description = "=[[vulture]]s (both Old World and New World)",
parents = {"burung pemangsa"},
}
labels["warblers"] = {
type = "set",
description = "=[[warbler]]s, various small [[passerine]] songbirds, especially of the families Sylviidae (Old World warblers) and Parulidae (New World warblers)",
parents = {"burung tenggek"},
}
labels["warren hounds"] = {
type = "set",
description = "default",
parents = {"hunting dogs"},
}
labels["water dogs"] = {
type = "set",
description = "default",
parents = {"retrievers"},
}
labels["weaver finches"] = {
type = "set",
description = "=[[finch]]es in the family [[Estrildidae]]",
parents = {"burung tenggek"},
}
labels["weaverbirds"] = {
type = "set",
description = "=[[baya]]s, [[bishop]]s, [[fody|fodies]], [[malimbe]]s, [[quelea]]s, [[sakabula]]s, [[taha]]s, [[weaver]]s, and other birds in the [[family]] [[Ploceidae]]",
parents = {"burung tenggek"},
}
labels["weevils"] = {
type = "set",
description = "=[[bill-beetle]]s, [[curculio]]s, [[grugru worm]]s, [[snout beetle]]s, and other [[beetle]]s in the [[superfamily]] [[Curculionoidea]]",
parents = {"beetles"},
}
labels["paus"] = {
type = "set",
description = "default",
parents = {"setasea"},
}
labels["wolves"] = {
type = "set",
description = "=[[wolves]]",
parents = {"kanid"},
}
labels["woodpeckers"] = {
type = "set",
description = "=[[flicker]]s, [[sapsucker]]s, [[wryneck]]s, and other birds in the [[family]] [[Picidae]]",
parents = {"piciforms"},
}
labels["working dogs"] = {
type = "set",
description = "default",
parents = {"anjing"},
}
labels["cacing"] = {
type = "set",
description = "default",
parents = {"haiwan"},
}
labels["wrasses"] = {
type = "set",
description = "=ikan in the family [[Labridae]]",
parents = {"ikan labroid"},
}
labels["wrens"] = {
type = "set",
description = "default",
parents = {"burung sertioid"},
}
labels["ikan zoarkoid"] = {
type = "set",
description = "=[[butterfish]], [[eelpout]]s, [[guffer]]s, [[gunnel]]s, [[lumper]]s, [[prickleback]]s, [[prowfish]], [[wolf eel]]s and other fish in the [[perciform]] [[suborder]] [[Zoarcoidei]]",
parents = {"ikan"},
}
labels["zygaenoid moths"] = {
type = "set",
description = "=[[burnet moth]]s, [[forester]]s, [[hag moth]]s, [[limacodid]]s, [[megalopygid]]s, [[monkey slug]]s, [[puss moth]]s, [[saddleback caterpillar]]s, [[zygaenid]]s, and other [[moth]]s in the [[superfamily]] [[Zygaenoidea]]",
parents = {"moths"},
}
labels["plesiosaurs"] = {
type = "set",
description = "=[[plesiosaur]]s (order †[[Plesiosauria]])",
parents = {"sauropterygians"},
}
labels["tarantulas"] = {
type = "set",
description = "=[[tarantula]]s (family [[Theraphosidae]])",
parents = {"mygalomorph spiders"},
}
return labels
g8evg1z8bf326mcusltz2l5jazy10at
Modul:category tree/topic/Places
828
12236
278398
244449
2026-04-17T10:54:39Z
PeaceSeekers
3334
278398
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_table = require("Module:table")
local en_utilities_module = "Module:en-utilities"
local string_utilities_module = "Module:string utilities"
local m_locations = require("Module:place/locations")
local m_placetypes = require("Module:place/placetypes")
local placetype_data = m_placetypes.placetype_data
local internal_error = m_locations.internal_error
local dump = mw.dumpObject
local insert = table.insert
local concat = table.concat
local is_callable = require("Module:fun").is_callable
--[==[ intro:
This module is part of the category tree code and contains code to generate the descriptions of place-related categories
such as [[Category:de:Hokkaido Prefecture, Japan]], [[Category:es:Cities in France]],
[[Category:pt:Municipalities of Tocantins, Brazil]], etc.). Note that this module doesn't actually create the
categories; that must be done separately, with the text "{{tl|auto cat}}" as the definition of the category. (This
process should automatically happen periodically for non-empty categories, because they will appear in
[[Special:WantedCategories]] and a bot will periodically examine that list and create any needed category.)
There are two ways that category descriptions are specified: (1) by manually adding an entry to the `labels` table,
keyed by the label (the category minus the language code) with a value consisting of a Lua table specifying the
description text and the category's parents; (2) through handlers (pieces of Lua code) added to the `handlers` list,
which recognize labels of a specific type (e.g. `Cities in France`) and generate the appropriate specification for that
label on-the-fly.
See [[Module:place]] for an introduction to the terminology associated with places along with a list of all the relevant
modules, along with for more specific information on types of toponyms and placetypes and how their categorization
works.
]==]
local function lcfirst(label)
return mw.getContentLanguage():lcfirst(label)
end
local function gsub_literally(str, from, to)
local m_strutils = require(string_utilities_module)
return (str:gsub(m_strutils.pattern_escape(from), m_strutils.replacement_escape(to)))
end
local class_to_bare_category_parent = {
["tatanegara"] = "tatanegara",
["subtatanegara"] = "pembahagian politik",
["petempatan"] = "petempatan",
["non-admin settlement"] = "petempatan",
["capital"] = "capital cities",
["sifat semula jadi"] = "sifat semula jadi",
["man-made structure"] = "man-made structures",
["kawasan geografi"] = "kawasan geografi dan budaya",
}
local class_is_political_division = {
["tatanegara"] = true, -- strictly false but there are placetypes ambiguous between polity and subpolity
["subtatanegara"] = true,
["petempatan"] = true,
["non-admin settlement"] = false,
["capital"] = true,
["sifat semula jadi"] = false,
["man-made structure"] = false,
["kawasan geografi"] = false,
["tempat am"] = false,
}
local capital_cat_to_placetype = {}
for placetype, capital_cat in pairs(m_placetypes.placetype_to_capital_cat) do
capital_cat_to_placetype[capital_cat] = placetype
end
-- Handler for bare categories for all types of capitals. This needs to precede the handler for bare placetype
-- categories as some of the types of capitals exist as placetypes as well.
insert(handlers, function(label)
label = lcfirst(label)
local capital_placetype = capital_cat_to_placetype[label]
if capital_placetype then
local pl_placetype = m_placetypes.pluralize_placetype(capital_placetype)
local linkdesc = m_placetypes.get_placetype_display_form(pl_placetype, "top-level")
if linkdesc == nil then
internal_error("Unrecognized placetype %s when processing label %s", capital_placetype, label)
end
if linkdesc == false then
mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype)))
return nil
end
return {
type = "nama",
topic = label,
description = "{{{langname}}} names of [[capital]]s of " .. linkdesc .. ".",
parents = {"capital cities"},
}
end
end)
-- Handler for bare placetype categories. FIXME: Add wpcat= and commonscat= info. Previously we had it for various
-- so-called "generic" placetypes, but sometimes the categories were wrong.
insert(handlers, function(label)
for _, canon_label in ipairs { lcfirst(label), label } do
local ptdesc, ptdata = m_placetypes.get_placetype_display_form(canon_label, "top-level", "return full")
if ptdesc then
local from_category_props = {
from_category = true,
no_split_qualifiers = true,
}
local bare_category_parent = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
local bare_category_parent = m_placetypes.get_placetype_prop(pt, "bare_category_parent")
if bare_category_parent then
return bare_category_parent
end
local class = m_placetypes.get_placetype_prop(pt, "class")
if class then
if class_to_bare_category_parent[class] == nil then
internal_error("Saw unknown category class %s derived from placetype %s",
class, canon_label)
end
return class_to_bare_category_parent[class]
end
end, from_category_props)
if not bare_category_parent then
internal_error("Saw placetype %s without a `class` or `bare_category_parent` setting, either " ..
"directly or through a fallback", canon_label)
end
local addl_bare_category_parents = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents")
end, from_category_props)
local bare_category_breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb")
end, from_category_props)
if type(bare_category_parent) == "string" and bare_category_breadcrumb then
bare_category_parent = {name = bare_category_parent, sort = bare_category_breadcrumb}
end
local parents = {bare_category_parent}
if addl_bare_category_parents then
m_table.extend(parents, addl_bare_category_parents)
end
return {
type = "nama",
topic = canon_label,
description = "{{{langname}}} " .. ptdesc .. ".",
breadcrumb = bare_category_breadcrumb,
parents = parents,
}
elseif ptdesc == false then
mw.log(("Display form for canon_label %s is false, can't categorize"):format(dump(canon_label)))
end
end
end)
local function fetch_primary_placetype(key, spec)
local placetype = spec.placetype
if type(placetype) == "table" then
placetype = placetype[1]
end
if not placetype then
internal_error("No placetype specified or defaulted for key %s, spec %s", key, spec)
end
return placetype
end
--[==[
Construct an appropriately linked location based on the full or elliptical placename, preceded by `"the "`` if
appropriate. Specifically:
Fetch the full and elliptical_placenames. If they are the same, just link to the placename directly. Otherwise, check if
the full placename exists; if so link to it. Otherwise, if the elliptical placename exists, link to it but display it as
the full placename. Finally, if neither full placename nor elliptical placename exists, fall back to linking to the full
placename. That way, we prefer full placenames to elliptical placenames if both or neither exist as Wiktionary entries,
but if only one exists, we link to that one rather than have a red link.
]==]
local function construct_linked_location(group, key, spec)
local full_placename, elliptical_placename = m_locations.key_to_placename(group, key)
local linked_placename
if elliptical_placename ~= full_placename then
local full_placename_title = mw.title.new(full_placename)
if full_placename_title and full_placename_title.exists then
linked_placename = m_locations.construct_linked_placename(spec, full_placename)
else
local elliptical_placename_title = mw.title.new(elliptical_placename)
if elliptical_placename_title and elliptical_placename_title.exists then
linked_placename = m_locations.construct_linked_placename(spec, elliptical_placename, full_placename)
end
end
end
return linked_placename or m_locations.construct_linked_placename(spec, full_placename)
end
--[==[
Construct the description of a location, including its container trail either to the end or until we encounter a
`no_include_container_in_desc` setting. For example, for the city of [[Birmingham]], the description will read
`"[[Birmingham]], a [[city]] in the [[West Midlands]] (which is a [[county]] of [[England]], which is a
[[constituent country]] of the [[United Kingdom]], which is a [[country]] in [[Europe]])"`. FIXME: Possibly we should
adopt the way city descriptions used to read, which was similar to `"the city of [[Birmingham]], in the county of the
[[West Midlands]], in the [[constituent country]] of [[England]], in the [[country]] of the [[United Kingdom]], in
[[Europe]]"`.
]==]
local function construct_location_desc(group, key, spec)
local parts = {}
local function ins(txt)
insert(parts, txt)
end
ins(construct_linked_location(group, key, spec))
local iteration = 0
local need_closing_paren = false
local containers = {{group = group, key = key, spec = spec}}
local container_iterator = m_locations.iterate_containers(group, key, spec)
while true do
iteration = iteration + 1
local include_container_in_desc = false
for _, container in ipairs(containers) do
if not container.spec.no_include_container_in_desc then
include_container_in_desc = true
break
end
end
if not include_container_in_desc then
break
end
local next_containers = container_iterator()
if not next_containers then
break
end
local is_former = nil
for _, container in ipairs(containers) do
local this_is_former = container.spec.is_former_place
if is_former == nil then
is_former = this_is_former
elseif is_former ~= this_is_former then
internal_error("When processing container trail of key %s, found a mixture of former and non-former " ..
"containers: %s", key, containers)
end
end
if #containers > 1 then
local placetypes = {}
local prepositions = {}
for _, container in ipairs(containers) do
local container_type = fetch_primary_placetype(container.key, container.spec)
m_table.insertIfNot(placetypes, m_placetypes.pluralize_placetype(container_type))
m_table.insertIfNot(prepositions, m_placetypes.get_placetype_entry_preposition(container_type))
end
if iteration == 1 then
ins(", ")
elseif iteration == 2 then
ins(" (which are ")
need_closing_paren = true
else
ins(", which are ")
end
if is_former then
ins("former ")
end
ins(m_table.serialCommaJoin(placetypes))
ins(" ")
ins(concat(prepositions, "/"))
else
if iteration == 1 then
ins(", ")
elseif iteration == 2 then
ins(" (which is ")
need_closing_paren = true
else
ins(", which is ")
end
local container_type = fetch_primary_placetype(containers[1].key, containers[1].spec)
if is_former then
ins("a former ")
else
ins(m_placetypes.get_placetype_article(container_type))
ins(" ")
end
ins(container_type)
ins(" ")
ins(m_placetypes.get_placetype_entry_preposition(container_type))
end
ins(" ")
first_container = false
containers = next_containers
local container_locations = {}
for _, container in ipairs(containers) do
insert(container_locations, construct_linked_location(container.group, container.key,
container.spec))
end
ins(m_table.serialCommaJoin(container_locations))
end
if need_closing_paren then
ins(")")
end
return concat(parts)
end
-- Fetch or construct the description of the location specified by `key`. If the `keydesc` property is specified,
-- use it directly but substitute any occurrence of `+++` with the auto-constructed location description, which
-- mentions the placename corresponding to the key, its placetype and container, and repeats the description up
-- the container trail until either there are no more containers or (more usually) the `no_include_container_in_desc`
-- setting is found (which is set on all continents and continent-level regions).
local function fetch_or_construct_location_desc(group, key, spec)
local val = spec.keydesc
if is_callable(val) then
val = val(group, key, spec)
spec.keydesc = val
end
val = val or "+++"
if val:find("%+%+%+") then
val = gsub_literally(val, "+++", construct_location_desc(group, key, spec))
end
return val
end
local function normalize_cat_as(cat_as, div)
if type(cat_as) ~= "table" or cat_as.type then
cat_as = {cat_as}
end
local ret_cat_as = {}
for _, pt_cat_as in ipairs(cat_as) do
if type(pt_cat_as) == "string" then
pt_cat_as = {type = pt_cat_as}
end
insert(ret_cat_as, {type = pt_cat_as.type, prep = pt_cat_as.prep or div.prep or "of"})
end
return ret_cat_as
end
-- Find the specified plural placetype among the divs for a given known location. Return a list of cat_as specs, where
-- each spec is of the form {type = "PLURAL_PLACETYPE", prep = "PREP"} indicating the plural placetype to use when
-- categorizing and the preposition to follow.
local function find_placetype_cat_as(divs, pl_placetype)
if divs then
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) == "string" then
div = {type = div}
end
if div.type == pl_placetype then
local cat_as = div.cat_as or div.type
return normalize_cat_as(cat_as, div)
end
end
end
return nil
end
-- Handler for bare placename categories for known locations in `locations` in [[Module:place/locations]].
insert(handlers, function(label)
for _, canon_label in ipairs { label, lcfirst(label) } do
local group, spec = m_locations.find_canonical_key(canon_label)
if group then
-- wp= defaults to true (Wikipedia article matches location's full placename)
local wp = spec.wp
if wp == nil then
wp = true
end
-- wpcat= defaults to wp= (if Wikipedia article has its own name, Wikipedia category and Commons category
-- generally follow)
local wpcat = spec.wpcat
if wpcat == nil then
wpcat = wp
end
-- commonscat= defaults to wpcat= (if Wikipedia category has its own name, Commons category generally
-- follows)
local commonscat = spec.commonscat
if commonscat == nil then
commonscat = wpcat
end
local parents = {}
local bare_label_parents = spec.overriding_bare_label_parents
local container_iterator = m_locations.iterate_containers(group, canon_label, spec)
local containers = container_iterator()
if not bare_label_parents then
bare_label_parents = {"+++"}
end
local full_location_placename, elliptical_location_placename = m_locations.key_to_placename(group, canon_label)
local full_container_placename
if containers then
full_container_placename, _ = m_locations.key_to_placename(containers[1].group, containers[1].key)
end
local inserted_containers = false
for _, parent in ipairs(bare_label_parents) do
if parent == "+++" then
parent = "PL_PLACETYPE PREP CONTAINER"
end
if parent:find("CONTAINER") then
if not containers then
internal_error("Parent category %s needs the container of %s but no containers specified: %s",
parent, canon_label, spec)
end
local location_type = fetch_primary_placetype(canon_label, spec)
local pl_location_type = m_placetypes.pluralize_placetype(location_type)
for _, container in ipairs(containers) do
local per_container_parent = parent
local cat_as_list
if per_container_parent:find("PL_PLACETYPE") then
if spec.bare_category_parent_type then
cat_as_list = normalize_cat_as(spec.bare_category_parent_type, spec)
else
cat_as_list = find_placetype_cat_as(container.spec.divs, pl_location_type) or
find_placetype_cat_as(container.spec.addl_divs, pl_location_type)
end
end
if not cat_as_list then
local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(location_type, "from category")
if not canon_placetype or not (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then
internal_error("Unable to locate plural location type %s among the divs or addl_divs " ..
"for container key %s spec %s, and the location type is either not in placetype_data or " ..
"not identified as a generic placetype", pl_location_type, container.key, container.spec)
end
cat_as_list = {{type = pl_location_type, prep =
m_placetypes.get_placetype_entry_preposition(location_type)}}
end
local prefixed_key = m_placetypes.get_prefixed_key(container.key, container.spec)
per_container_parent = gsub_literally(per_container_parent, "CONTAINER", prefixed_key)
for _, cat_as in ipairs(cat_as_list) do
local per_container_per_placetype_parent = per_container_parent
per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PL_PLACETYPE",
cat_as.type)
per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PREP",
cat_as.prep)
m_table.insertIfNot(parents, per_container_per_placetype_parent)
end
end
inserted_containers = true
else
m_table.insertIfNot(parents, parent)
end
end
if not inserted_containers and containers then
-- If we didn't insert the containers above in some form, insert them now as bare categories. Note that
-- this may be different categories from the container categories inserted above.
for _, container in ipairs(containers) do
m_table.insertIfNot(parents, container.key)
end
end
if spec.addl_parents then
for _, parent in ipairs(spec.addl_parents) do
m_table.insertIfNot(parents, parent)
end
end
local function format_boxval(val, specname)
if val == true then
val = "%l"
end
if type(val) == "string" then
val = gsub_literally(val, "%l", full_location_placename)
val = gsub_literally(val, "%e", elliptical_location_placename)
if val:find("%%c") then
if not full_container_placename then
internal_error("Wikipedia/Commons spec %s = %s has %%c in it but key %s has no " ..
"containers: %s", specname, val, canon_label, spec)
end
val = gsub_literally(val, "%c", full_container_placename)
end
end
return val
end
local description = spec.fulldesc or (
"{{{langname}}} terms related to the people, culture, or territory of " ..
fetch_or_construct_location_desc(group, canon_label, spec) .. ".")
local full_placename, _ = m_locations.key_to_placename(group, canon_label)
return {
type = "topic",
description = description,
breadcrumb = full_placename,
parents = parents,
wp = format_boxval(wp, "wp"),
wpcat = format_boxval(wpcat, "wpcat"),
commonscat = format_boxval(commonscat, "commonscat"),
}
end
end
end)
local function find_canonical_key_from_place(place, canon_label)
local has_the = false
local key
if place:find("^the ") then
key = place:gsub("^the ", "")
has_the = true
else
key = place
end
local group, spec = m_locations.find_canonical_key(key)
if group then
local requires_the = spec.the or false
if has_the ~= requires_the then
if has_the then
mw.log(("Mismatch in category name '%s', has 'the' in the category when it should not"):format(
canon_label))
else
mw.log(("Mismatch in category name '%s', should have 'the' in the category but does not"):
format(canon_label))
end
return nil
end
return group, key, spec
end
return nil
end
-- Handler for generic placetypes (those whose categories are added through category generation handlers or through
-- explicit category specs in the placetype data) for known locations in [[Module:place/locations]]. All such
-- placetypes have either a `generic_before_non_cities` setting (meaning they can occur before non-city locations) or
-- `generic_before_cities` setting (meaning they can occur before cities), or both. Examples of such categories are
-- "cities in the Bahamas" or "rivers in Western Australia, Australia", or (for city locations)
-- "neighbourhoods of Hong Kong" or "places in Melbourne".
insert(handlers, function(label)
for _, canon_label in ipairs { lcfirst(label), label } do
local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (di) (.*)$")
if not placetype then
placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (of) (.*)$")
end
if placetype then
local normalized_placetype = placetype == "neighbourhoods" and "neighborhoods" or placetype
local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(normalized_placetype, "from category")
if canon_placetype and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group then
-- Check whether the location uses British spelling, but also check all containers, because
-- it's too hard to keep in sync the `british_spelling` setting for locations at all different
-- levels (e.g. cities of various countries, first and second level administrative division, etc.),
-- so we just set it at top level on the country.
local uses_british_spelling = spec.british_spelling
if uses_british_spelling == nil then
for containers in m_locations.iterate_containers(group, key, spec) do
local must_outer_break = false
for _, container in ipairs(containers) do
if container.spec.british_spelling ~= nil then
uses_british_spelling = container.spec.british_spelling
must_outer_break = true
break
end
end
if must_outer_break then
break
end
end
end
local allow_cat = true
if placetype == "neighborhoods" and uses_british_spelling or
placetype == "neighbourhoods" and not uses_british_spelling then
mw.log(("Mismatch in spelling of placetype '%s' in category '%s', should be '%s'"):format(
placetype, canon_label, uses_british_spelling and "neighbourhoods" or "neighborhoods"))
allow_cat = false
end
if spec.is_former_place and placetype ~= "Tempat" then
allow_cat = false
end
local expected_prep
if spec.is_city then
expected_prep = ptdata.generic_before_cities
else
expected_prep = ptdata.generic_before_non_cities
end
if not expected_prep then
allow_cat = false
end
if allow_cat then
if expected_prep ~= in_of then
mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format(
canon_label, in_of, expected_prep))
return nil
end
local linkdesc = m_placetypes.get_placetype_display_form(placetype,
spec.is_city and "city" or "noncity", "return full")
if linkdesc == false then
mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype)))
return nil
end
if not linkdesc then
internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s",
placetype, key, spec, canon_label)
end
desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec)
desc = "{{{langname}}} " .. desc .. "."
local parents = {}
insert(parents, key)
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = normalized_placetype, sort = key})
if spec.placetype == "negara" or m_table.contains(spec.placetype, "negara") then
local category_class = m_placetypes.get_equiv_placetype_prop(normalized_placetype,
function(pt) return m_placetypes.get_placetype_prop(pt, "class") end, {
from_category = true,
no_split_qualifiers = true,
})
if not category_class then
internal_error("Saw placetype %s that is either unknown or has no `class` " ..
"setting in `placetype_data`", normalized_placetype)
end
if class_is_political_division[category_class] == nil then
internal_error("Saw unknown category class %s derived from placetype %s",
category_class, normalized_placetype)
end
if class_is_political_division[category_class] then
insert(parents, "political divisions of specific countries")
end
end
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
local container_prep
if container.spec.is_city then
container_prep = ptdata.generic_before_cities
else
container_prep = ptdata.generic_before_non_cities
end
if not container_prep then
internal_error("For container key %s spec %s defines is_city = %s but " ..
"there is no corresponding `generic_before_*` setting in the " ..
"placedata for placetype %s", container.key, container.spec,
container.spec.is_city, placetype)
end
insert(parents, {
name = placetype .. " " .. container_prep .. " " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = normalized_placetype, sort = key})
end
end
return {
type = "nama",
topic = canon_label,
description = desc,
breadcrumb = placetype,
parents = parents,
}
end
end
end
end
end
end)
-- Handler for "state capitals of the United States", "provincial capitals of Canada", etc. This must precede the next
-- handler for specific political and misc (non-political) divisions of polities and subpolities, such as
-- "provinces of the Philippines", because "departmental capitals" is listed in cat_as for French prefectures and so
-- will trigger an error if that handler runs before this one.
insert(handlers, function(label)
label = lcfirst(label)
local capital_cat, place = label:match("^([a-z%- ]- capitals) of (.*)$")
-- Make sure we recognize the type of capital.
if place and capital_cat_to_placetype[capital_cat] then
local placetype = capital_cat_to_placetype[capital_cat]
local pl_placetype = m_placetypes.pluralize_placetype(placetype)
-- Locate the container, fetch its known political divisions, and make sure the placetype corresponding to the
-- type of capital is among the list.
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group and (spec.divs or spec.addl_divs) then
local saw_match = false
local variant_matches = {}
local divlists = {}
if spec.divs then
insert(divlists, spec.divs)
end
if spec.addl_divs then
insert(divlists, spec.addl_divs)
end
for _, divlist in ipairs(divlists) do
if type(divlist) ~= "table" then
divlist = {divlist}
end
for _, div in ipairs(divlist) do
if type(div) == "string" then
div = {type = div}
end
-- HACK. Currently if we don't find a match for the placetype, we map e.g. 'autonomous region'
-- -> 'regional capitals' and 'union territory' -> 'territorial capitals'. When encountering a
-- political division like 'autonomous region' or 'union territory', chop off everything up
-- through a space to make things match. To make this clearer, we record all such
-- "variant match" cases, and down below we insert a note into the category text indicating that
-- such "variant matches" are included among the category.
if pl_placetype == div.type or pl_placetype == div.type:gsub("^.* ", "") then
saw_match = true
if pl_placetype ~= div.type then
insert(variant_matches, div.type)
end
end
end
end
if saw_match then
-- Everything checks out, construct the category description.
local placetype_desc = m_placetypes.get_placetype_display_form(pl_placetype,
placetype.is_city and "city" or "noncity")
if placetype_desc == false then
mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype)))
return nil
end
if not placetype_desc then
internal_error("Unrecognized plural placetype %s, generated as the plural of %s, which " ..
"was found as the placetype of capital placetype %s in label %s", pl_placetype,
placetype, capital_cat, label)
end
local variant_match_text = ""
if variant_matches[1] then
local real_variant_match_descs = {}
for i, variant_match in ipairs(variant_matches) do
local variant_match_desc = m_placetypes.get_placetype_display_form(variant_match,
placetype.is_city and "city" or "noncity")
if variant_match_desc == nil then
internal_error("Unrecognized variant match plural placetype %s, coming from " ..
"place key %s, data %s in label %s", variant_match, key, spec, label)
end
if variant_match_desc then
-- skip those for which the description is `false`, like `ABBREVIATION_OF states`
-- in the United States divs.
insert(real_variant_match_descs, variant_match_desc)
end
end
if real_variant_match_descs[1] then
variant_match_text = " (including " .. m_table.serialCommaJoin(real_variant_match_descs)
.. ")"
end
end
local desc = "{{{langname}}} names of [[capital]]s of " .. placetype_desc .. variant_match_text ..
" of " .. fetch_or_construct_location_desc(group, key, spec) .. "."
local full_placename, _ = m_locations.key_to_placename(group, key)
local parents = {}
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = capital_cat, sort = key})
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
insert(parents, {
name = capital_cat .. " of " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = capital_cat, sort = key})
end
end
insert(parents, key)
return {
type = "nama",
topic = label,
description = desc,
breadcrumb = full_placename,
parents = parents,
}
end
end
end
end)
local overriding_category_descriptions = {
["autonomous cities of Spain"] = "the [[w:Autonomous communities of Spain#Autonomous_cities|autonomous cities of Spain]]",
["regions of Greece"] = "the regions ([[periphery|peripheries]]) of [[Greece]]",
["regions of North Macedonia"] = "the regions ([[periphery|peripheries]]) of [[North Macedonia]]",
["subprefectures of Japan"] = "[[subprefecture]]s of [[Japan]]ese [[prefecture]]s",
}
-- Handler for specific political and misc (non-political) divisions of locations (polities, subpolities, cities, etc.),
-- such as "provinces of the Philippines", "counties of Wales", "municipalities of Tocantins, Brazil",
-- "boroughs of New York City", etc. This does not handle categories for generic placetypes (cities, rivers, etc.) of
-- locations, which are handled by different handlers above.
insert(handlers, function(label)
-- The label comes with an initial capitalization but we have to check both lowercase-initial and capital-initial
-- versions of the placetype to handle e.g. [[:Category:en:Indian reserves of Canada]].
for _, canon_label in ipairs { label, lcfirst(label) } do
for _, minimal_placetype in ipairs { true, false } do
local match_quantifier = minimal_placetype and "-" or "+"
-- Some categories have two "of"s in them, and depending on the category, it's correct to do either a greedy
-- ([[:Category:en:Abbreviations of states of the United States]], with placetype `abbreviations of states`)
-- or non-greedy ([[:Category:en:Provinces of the Democratic Republic of the Congo]], with placetype
-- `provinces`) match. We can't know in advance which is correct so we try both possibilities, doing the
-- non-greedy one first as it seems more common (there are many locations with "of" in them, but currently
-- only `abbreviations of states` occurs with a following location).
local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (of) (.*)$")
if not placetype then
placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (di) (.*)$")
end
if placetype then
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group then
local function find_placetype(divs)
if divs then
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) == "string" then
div = {type = div}
end
local cat_as = div.cat_as or div.type
if type(cat_as) ~= "table" then
cat_as = {cat_as}
end
for _, pt_cat_as in ipairs(cat_as) do
if type(pt_cat_as) == "string" then
pt_cat_as = {type = pt_cat_as}
end
if placetype == pt_cat_as.type then
local div_parent = pt_cat_as.container_parent_type
if div_parent == nil then -- allow false
div_parent = div.container_parent_type
end
if div_parent == nil then
div_parent = placetype
end
return div_parent, pt_cat_as.prep or div.prep or "of"
end
end
end
end
return nil
end
local div_parent, div_prep = find_placetype(spec.divs)
if div_parent == nil then -- allow false
div_parent, div_prep = find_placetype(spec.addl_divs)
end
if div_parent == nil then -- allow false
div_parent, div_prep = find_placetype(spec.addl_divs_for_categorization)
end
if div_parent ~= nil then
if div_prep ~= in_of then
mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format(
canon_label, in_of, div_prep))
return nil
end
local linkdesc = m_placetypes.get_placetype_display_form(placetype, spec.is_city and "city" or "noncity",
"return full")
if linkdesc == false then
mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype)))
return nil
end
if not linkdesc then
internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s",
placetype, key, spec, canon_label)
end
local desc = overriding_category_descriptions[canon_label]
if not desc then
desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec)
end
desc = "{{{langname}}} " .. desc .. "."
local parents = {}
insert(parents, key)
if div_parent then -- div_parent may be `false`
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = placetype, sort = " " .. key})
if spec.placetype == "negara" or m_table.contains(spec.placetype, "negara") then
insert(parents, "political divisions of specific countries")
end
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
insert(parents, {
name = div_parent .. " " .. in_of .. " " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = placetype, sort = " " .. key})
end
end
end
return {
type = "nama",
topic = canon_label,
description = desc,
breadcrumb = placetype,
parents = parents,
}
end
end
end
end
end
end)
labels["eksonim"] = {
type = "nama",
-- special-cased description
description = "{{{langname}}} [[exonym]]s.",
parents = {"Tempat"},
}
labels["pembahagian politik negara tertentu"] = {
type = "kumpulan",
description = "{{{langname}}} categories for political divisions of specific countries.",
parents = {"Tempat"},
}
-- Misc. FIXME: Remove the need for this.
labels["nomes of Ancient Egypt"] = {
type = "nama",
-- special-cased description
description = "{{{langname}}} names of the [[nome]]s of [[Ancient Egypt]].",
breadcrumb = "nomes",
parents = {"Ancient Egypt"},
}
-- FIXME: Everything here has been moved from [[Module:category tree/topic/Earth]]. Most should be removed.
labels["Atlantic Ocean"] = {
type = "berkenaan",
description = "default with the",
parents = {"Bumi"},
}
labels["British Isles"] = {
type = "berkenaan",
description = "=the people, culture, or territory of [[Great Britain]], [[Ireland]], and other nearby islands",
parents = {"Eropah", "islands"},
}
labels["European Union"] = {
type = "berkenaan",
description = "default with the",
parents = {"Eropah"},
}
labels["Gascony"] = {
type = "berkenaan",
description = "default",
parents = {"Occitania, France"},
}
labels["Indian subcontinent"] = {
type = "berkenaan",
description = "default with the",
parents = {"Asia Selatan"},
}
labels["Bengal"] = {
type = "berkenaan",
description = "{{{langname}}} terms related to the people, culture, or territory of [[Bengal]].",
parents = {"Indian subcontinent"},
}
labels["Kashmir"] = {
type = "berkenaan",
description = "{{{langname}}} terms related to the people, culture, or territory of [[Kashmir]].",
parents = {"Indian subcontinent"},
}
labels["Kashmir, India"] = {
type = "berkenaan",
description = "{{{langname}}} names of places in {{w|Kashmir, India}}.",
parents = {"India", "Kashmir"},
}
labels["Korea"] = {
type = "berkenaan",
description = "=the people, culture, or territory of [[Korea]]",
parents = {"Asia"},
}
labels["Languedoc"] = {
type = "berkenaan",
description = "default",
parents = {"Occitania, France"},
}
labels["Lapland"] = {
type = "berkenaan",
description = "=[[Lapland]], a region in northernmost Europe",
parents = {"Eropah", "Finland", "Norway", "Russia", "Sweden"},
}
labels["Timur Tengah"] = {
type = "berkenaan",
description = "default with the",
parents = {"Afrika", "Asia"},
}
labels["Netherlands Antilles"] = {
type = "berkenaan",
description = "=the people, culture, or territory of the [[Netherlands Antilles]]",
parents = {"Belanda", "Amerika Utara"},
}
labels["Provence"] = {
type = "berkenaan",
description = "default",
parents = {"Provence-Alpes-Côte d'Azur, France"},
}
labels["Asia Selatan"] = {
type = "berkenaan",
description = "default",
parents = {"Eurasia", "Asia"},
}
return {LABELS = labels, HANDLERS = handlers}
fdnelgdhezntca42pfpkl2w7yd0btk0
278399
278398
2026-04-17T10:57:05Z
PeaceSeekers
3334
278399
Scribunto
text/plain
local labels = {}
local handlers = {}
local m_table = require("Module:table")
local en_utilities_module = "Module:en-utilities"
local string_utilities_module = "Module:string utilities"
local m_locations = require("Module:place/locations")
local m_placetypes = require("Module:place/placetypes")
local placetype_data = m_placetypes.placetype_data
local internal_error = m_locations.internal_error
local dump = mw.dumpObject
local insert = table.insert
local concat = table.concat
local is_callable = require("Module:fun").is_callable
--[==[ intro:
This module is part of the category tree code and contains code to generate the descriptions of place-related categories
such as [[Category:de:Hokkaido Prefecture, Japan]], [[Category:es:Cities in France]],
[[Category:pt:Municipalities of Tocantins, Brazil]], etc.). Note that this module doesn't actually create the
categories; that must be done separately, with the text "{{tl|auto cat}}" as the definition of the category. (This
process should automatically happen periodically for non-empty categories, because they will appear in
[[Special:WantedCategories]] and a bot will periodically examine that list and create any needed category.)
There are two ways that category descriptions are specified: (1) by manually adding an entry to the `labels` table,
keyed by the label (the category minus the language code) with a value consisting of a Lua table specifying the
description text and the category's parents; (2) through handlers (pieces of Lua code) added to the `handlers` list,
which recognize labels of a specific type (e.g. `Cities in France`) and generate the appropriate specification for that
label on-the-fly.
See [[Module:place]] for an introduction to the terminology associated with places along with a list of all the relevant
modules, along with for more specific information on types of toponyms and placetypes and how their categorization
works.
]==]
local function lcfirst(label)
return mw.getContentLanguage():lcfirst(label)
end
local function gsub_literally(str, from, to)
local m_strutils = require(string_utilities_module)
return (str:gsub(m_strutils.pattern_escape(from), m_strutils.replacement_escape(to)))
end
local class_to_bare_category_parent = {
["tatanegara"] = "tatanegara",
["subtatanegara"] = "pembahagian politik",
["petempatan"] = "petempatan",
["non-admin settlement"] = "petempatan",
["capital"] = "capital cities",
["sifat semula jadi"] = "sifat semula jadi",
["man-made structure"] = "man-made structures",
["kawasan geografi"] = "kawasan geografi dan budaya",
}
local class_is_political_division = {
["tatanegara"] = true, -- strictly false but there are placetypes ambiguous between polity and subpolity
["subtatanegara"] = true,
["petempatan"] = true,
["non-admin settlement"] = false,
["capital"] = true,
["sifat semula jadi"] = false,
["man-made structure"] = false,
["kawasan geografi"] = false,
["tempat am"] = false,
}
local capital_cat_to_placetype = {}
for placetype, capital_cat in pairs(m_placetypes.placetype_to_capital_cat) do
capital_cat_to_placetype[capital_cat] = placetype
end
-- Handler for bare categories for all types of capitals. This needs to precede the handler for bare placetype
-- categories as some of the types of capitals exist as placetypes as well.
insert(handlers, function(label)
label = lcfirst(label)
local capital_placetype = capital_cat_to_placetype[label]
if capital_placetype then
local pl_placetype = m_placetypes.pluralize_placetype(capital_placetype)
local linkdesc = m_placetypes.get_placetype_display_form(pl_placetype, "top-level")
if linkdesc == nil then
internal_error("Unrecognized placetype %s when processing label %s", capital_placetype, label)
end
if linkdesc == false then
mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype)))
return nil
end
return {
type = "nama",
topic = label,
description = "{{{langname}}} names of [[capital]]s of " .. linkdesc .. ".",
parents = {"capital cities"},
}
end
end)
-- Handler for bare placetype categories. FIXME: Add wpcat= and commonscat= info. Previously we had it for various
-- so-called "generic" placetypes, but sometimes the categories were wrong.
insert(handlers, function(label)
for _, canon_label in ipairs { lcfirst(label), label } do
local ptdesc, ptdata = m_placetypes.get_placetype_display_form(canon_label, "top-level", "return full")
if ptdesc then
local from_category_props = {
from_category = true,
no_split_qualifiers = true,
}
local bare_category_parent = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
local bare_category_parent = m_placetypes.get_placetype_prop(pt, "bare_category_parent")
if bare_category_parent then
return bare_category_parent
end
local class = m_placetypes.get_placetype_prop(pt, "class")
if class then
if class_to_bare_category_parent[class] == nil then
internal_error("Saw unknown category class %s derived from placetype %s",
class, canon_label)
end
return class_to_bare_category_parent[class]
end
end, from_category_props)
if not bare_category_parent then
internal_error("Saw placetype %s without a `class` or `bare_category_parent` setting, either " ..
"directly or through a fallback", canon_label)
end
local addl_bare_category_parents = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents")
end, from_category_props)
local bare_category_breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_label, function(pt)
return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb")
end, from_category_props)
if type(bare_category_parent) == "string" and bare_category_breadcrumb then
bare_category_parent = {name = bare_category_parent, sort = bare_category_breadcrumb}
end
local parents = {bare_category_parent}
if addl_bare_category_parents then
m_table.extend(parents, addl_bare_category_parents)
end
return {
type = "nama",
topic = canon_label,
description = "{{{langname}}} " .. ptdesc .. ".",
breadcrumb = bare_category_breadcrumb,
parents = parents,
}
elseif ptdesc == false then
mw.log(("Display form for canon_label %s is false, can't categorize"):format(dump(canon_label)))
end
end
end)
local function fetch_primary_placetype(key, spec)
local placetype = spec.placetype
if type(placetype) == "table" then
placetype = placetype[1]
end
if not placetype then
internal_error("No placetype specified or defaulted for key %s, spec %s", key, spec)
end
return placetype
end
--[==[
Construct an appropriately linked location based on the full or elliptical placename, preceded by `"the "`` if
appropriate. Specifically:
Fetch the full and elliptical_placenames. If they are the same, just link to the placename directly. Otherwise, check if
the full placename exists; if so link to it. Otherwise, if the elliptical placename exists, link to it but display it as
the full placename. Finally, if neither full placename nor elliptical placename exists, fall back to linking to the full
placename. That way, we prefer full placenames to elliptical placenames if both or neither exist as Wiktionary entries,
but if only one exists, we link to that one rather than have a red link.
]==]
local function construct_linked_location(group, key, spec)
local full_placename, elliptical_placename = m_locations.key_to_placename(group, key)
local linked_placename
if elliptical_placename ~= full_placename then
local full_placename_title = mw.title.new(full_placename)
if full_placename_title and full_placename_title.exists then
linked_placename = m_locations.construct_linked_placename(spec, full_placename)
else
local elliptical_placename_title = mw.title.new(elliptical_placename)
if elliptical_placename_title and elliptical_placename_title.exists then
linked_placename = m_locations.construct_linked_placename(spec, elliptical_placename, full_placename)
end
end
end
return linked_placename or m_locations.construct_linked_placename(spec, full_placename)
end
--[==[
Construct the description of a location, including its container trail either to the end or until we encounter a
`no_include_container_in_desc` setting. For example, for the city of [[Birmingham]], the description will read
`"[[Birmingham]], a [[city]] in the [[West Midlands]] (which is a [[county]] of [[England]], which is a
[[constituent country]] of the [[United Kingdom]], which is a [[country]] in [[Europe]])"`. FIXME: Possibly we should
adopt the way city descriptions used to read, which was similar to `"the city of [[Birmingham]], in the county of the
[[West Midlands]], in the [[constituent country]] of [[England]], in the [[country]] of the [[United Kingdom]], in
[[Europe]]"`.
]==]
local function construct_location_desc(group, key, spec)
local parts = {}
local function ins(txt)
insert(parts, txt)
end
ins(construct_linked_location(group, key, spec))
local iteration = 0
local need_closing_paren = false
local containers = {{group = group, key = key, spec = spec}}
local container_iterator = m_locations.iterate_containers(group, key, spec)
while true do
iteration = iteration + 1
local include_container_in_desc = false
for _, container in ipairs(containers) do
if not container.spec.no_include_container_in_desc then
include_container_in_desc = true
break
end
end
if not include_container_in_desc then
break
end
local next_containers = container_iterator()
if not next_containers then
break
end
local is_former = nil
for _, container in ipairs(containers) do
local this_is_former = container.spec.is_former_place
if is_former == nil then
is_former = this_is_former
elseif is_former ~= this_is_former then
internal_error("When processing container trail of key %s, found a mixture of former and non-former " ..
"containers: %s", key, containers)
end
end
if #containers > 1 then
local placetypes = {}
local prepositions = {}
for _, container in ipairs(containers) do
local container_type = fetch_primary_placetype(container.key, container.spec)
m_table.insertIfNot(placetypes, m_placetypes.pluralize_placetype(container_type))
m_table.insertIfNot(prepositions, m_placetypes.get_placetype_entry_preposition(container_type))
end
if iteration == 1 then
ins(", ")
elseif iteration == 2 then
ins(" (which are ")
need_closing_paren = true
else
ins(", which are ")
end
if is_former then
ins("former ")
end
ins(m_table.serialCommaJoin(placetypes))
ins(" ")
ins(concat(prepositions, "/"))
else
if iteration == 1 then
ins(", ")
elseif iteration == 2 then
ins(" (which is ")
need_closing_paren = true
else
ins(", which is ")
end
local container_type = fetch_primary_placetype(containers[1].key, containers[1].spec)
if is_former then
ins("a former ")
else
ins(m_placetypes.get_placetype_article(container_type))
ins(" ")
end
ins(container_type)
ins(" ")
ins(m_placetypes.get_placetype_entry_preposition(container_type))
end
ins(" ")
first_container = false
containers = next_containers
local container_locations = {}
for _, container in ipairs(containers) do
insert(container_locations, construct_linked_location(container.group, container.key,
container.spec))
end
ins(m_table.serialCommaJoin(container_locations))
end
if need_closing_paren then
ins(")")
end
return concat(parts)
end
-- Fetch or construct the description of the location specified by `key`. If the `keydesc` property is specified,
-- use it directly but substitute any occurrence of `+++` with the auto-constructed location description, which
-- mentions the placename corresponding to the key, its placetype and container, and repeats the description up
-- the container trail until either there are no more containers or (more usually) the `no_include_container_in_desc`
-- setting is found (which is set on all continents and continent-level regions).
local function fetch_or_construct_location_desc(group, key, spec)
local val = spec.keydesc
if is_callable(val) then
val = val(group, key, spec)
spec.keydesc = val
end
val = val or "+++"
if val:find("%+%+%+") then
val = gsub_literally(val, "+++", construct_location_desc(group, key, spec))
end
return val
end
local function normalize_cat_as(cat_as, div)
if type(cat_as) ~= "table" or cat_as.type then
cat_as = {cat_as}
end
local ret_cat_as = {}
for _, pt_cat_as in ipairs(cat_as) do
if type(pt_cat_as) == "string" then
pt_cat_as = {type = pt_cat_as}
end
insert(ret_cat_as, {type = pt_cat_as.type, prep = pt_cat_as.prep or div.prep or "of"})
end
return ret_cat_as
end
-- Find the specified plural placetype among the divs for a given known location. Return a list of cat_as specs, where
-- each spec is of the form {type = "PLURAL_PLACETYPE", prep = "PREP"} indicating the plural placetype to use when
-- categorizing and the preposition to follow.
local function find_placetype_cat_as(divs, pl_placetype)
if divs then
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) == "string" then
div = {type = div}
end
if div.type == pl_placetype then
local cat_as = div.cat_as or div.type
return normalize_cat_as(cat_as, div)
end
end
end
return nil
end
-- Handler for bare placename categories for known locations in `locations` in [[Module:place/locations]].
insert(handlers, function(label)
for _, canon_label in ipairs { label, lcfirst(label) } do
local group, spec = m_locations.find_canonical_key(canon_label)
if group then
-- wp= defaults to true (Wikipedia article matches location's full placename)
local wp = spec.wp
if wp == nil then
wp = true
end
-- wpcat= defaults to wp= (if Wikipedia article has its own name, Wikipedia category and Commons category
-- generally follow)
local wpcat = spec.wpcat
if wpcat == nil then
wpcat = wp
end
-- commonscat= defaults to wpcat= (if Wikipedia category has its own name, Commons category generally
-- follows)
local commonscat = spec.commonscat
if commonscat == nil then
commonscat = wpcat
end
local parents = {}
local bare_label_parents = spec.overriding_bare_label_parents
local container_iterator = m_locations.iterate_containers(group, canon_label, spec)
local containers = container_iterator()
if not bare_label_parents then
bare_label_parents = {"+++"}
end
local full_location_placename, elliptical_location_placename = m_locations.key_to_placename(group, canon_label)
local full_container_placename
if containers then
full_container_placename, _ = m_locations.key_to_placename(containers[1].group, containers[1].key)
end
local inserted_containers = false
for _, parent in ipairs(bare_label_parents) do
if parent == "+++" then
parent = "PL_PLACETYPE PREP CONTAINER"
end
if parent:find("CONTAINER") then
if not containers then
internal_error("Parent category %s needs the container of %s but no containers specified: %s",
parent, canon_label, spec)
end
local location_type = fetch_primary_placetype(canon_label, spec)
local pl_location_type = m_placetypes.pluralize_placetype(location_type)
for _, container in ipairs(containers) do
local per_container_parent = parent
local cat_as_list
if per_container_parent:find("PL_PLACETYPE") then
if spec.bare_category_parent_type then
cat_as_list = normalize_cat_as(spec.bare_category_parent_type, spec)
else
cat_as_list = find_placetype_cat_as(container.spec.divs, pl_location_type) or
find_placetype_cat_as(container.spec.addl_divs, pl_location_type)
end
end
if not cat_as_list then
local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(location_type, "from category")
if not canon_placetype or not (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then
internal_error("Unable to locate plural location type %s among the divs or addl_divs " ..
"for container key %s spec %s, and the location type is either not in placetype_data or " ..
"not identified as a generic placetype", pl_location_type, container.key, container.spec)
end
cat_as_list = {{type = pl_location_type, prep =
m_placetypes.get_placetype_entry_preposition(location_type)}}
end
local prefixed_key = m_placetypes.get_prefixed_key(container.key, container.spec)
per_container_parent = gsub_literally(per_container_parent, "CONTAINER", prefixed_key)
for _, cat_as in ipairs(cat_as_list) do
local per_container_per_placetype_parent = per_container_parent
per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PL_PLACETYPE",
cat_as.type)
per_container_per_placetype_parent = gsub_literally(per_container_per_placetype_parent, "PREP",
cat_as.prep)
m_table.insertIfNot(parents, per_container_per_placetype_parent)
end
end
inserted_containers = true
else
m_table.insertIfNot(parents, parent)
end
end
if not inserted_containers and containers then
-- If we didn't insert the containers above in some form, insert them now as bare categories. Note that
-- this may be different categories from the container categories inserted above.
for _, container in ipairs(containers) do
m_table.insertIfNot(parents, container.key)
end
end
if spec.addl_parents then
for _, parent in ipairs(spec.addl_parents) do
m_table.insertIfNot(parents, parent)
end
end
local function format_boxval(val, specname)
if val == true then
val = "%l"
end
if type(val) == "string" then
val = gsub_literally(val, "%l", full_location_placename)
val = gsub_literally(val, "%e", elliptical_location_placename)
if val:find("%%c") then
if not full_container_placename then
internal_error("Wikipedia/Commons spec %s = %s has %%c in it but key %s has no " ..
"containers: %s", specname, val, canon_label, spec)
end
val = gsub_literally(val, "%c", full_container_placename)
end
end
return val
end
local description = spec.fulldesc or (
"{{{langname}}} terms related to the people, culture, or territory of " ..
fetch_or_construct_location_desc(group, canon_label, spec) .. ".")
local full_placename, _ = m_locations.key_to_placename(group, canon_label)
return {
type = "topic",
description = description,
breadcrumb = full_placename,
parents = parents,
wp = format_boxval(wp, "wp"),
wpcat = format_boxval(wpcat, "wpcat"),
commonscat = format_boxval(commonscat, "commonscat"),
}
end
end
end)
local function find_canonical_key_from_place(place, canon_label)
local has_the = false
local key
if place:find("^the ") then
key = place:gsub("^the ", "")
has_the = true
else
key = place
end
local group, spec = m_locations.find_canonical_key(key)
if group then
local requires_the = spec.the or false
if has_the ~= requires_the then
if has_the then
mw.log(("Mismatch in category name '%s', has 'the' in the category when it should not"):format(
canon_label))
else
mw.log(("Mismatch in category name '%s', should have 'the' in the category but does not"):
format(canon_label))
end
return nil
end
return group, key, spec
end
return nil
end
-- Handler for generic placetypes (those whose categories are added through category generation handlers or through
-- explicit category specs in the placetype data) for known locations in [[Module:place/locations]]. All such
-- placetypes have either a `generic_before_non_cities` setting (meaning they can occur before non-city locations) or
-- `generic_before_cities` setting (meaning they can occur before cities), or both. Examples of such categories are
-- "cities in the Bahamas" or "rivers in Western Australia, Australia", or (for city locations)
-- "neighbourhoods of Hong Kong" or "places in Melbourne".
insert(handlers, function(label)
for _, canon_label in ipairs { lcfirst(label), label } do
local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (di) (.*)$")
if not placetype then
placetype, in_of, place = canon_label:match("^([A-Za-z%- ]-) (of) (.*)$")
end
if placetype then
local normalized_placetype = placetype == "neighbourhoods" and "neighborhoods" or placetype
local canon_placetype, ptdata, ptmatch = m_placetypes.get_placetype_data(normalized_placetype, "from category")
if canon_placetype and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group then
-- Check whether the location uses British spelling, but also check all containers, because
-- it's too hard to keep in sync the `british_spelling` setting for locations at all different
-- levels (e.g. cities of various countries, first and second level administrative division, etc.),
-- so we just set it at top level on the country.
local uses_british_spelling = spec.british_spelling
if uses_british_spelling == nil then
for containers in m_locations.iterate_containers(group, key, spec) do
local must_outer_break = false
for _, container in ipairs(containers) do
if container.spec.british_spelling ~= nil then
uses_british_spelling = container.spec.british_spelling
must_outer_break = true
break
end
end
if must_outer_break then
break
end
end
end
local allow_cat = true
if placetype == "neighborhoods" and uses_british_spelling or
placetype == "neighbourhoods" and not uses_british_spelling then
mw.log(("Mismatch in spelling of placetype '%s' in category '%s', should be '%s'"):format(
placetype, canon_label, uses_british_spelling and "neighbourhoods" or "neighborhoods"))
allow_cat = false
end
if spec.is_former_place and placetype ~= "Tempat" then
allow_cat = false
end
local expected_prep
if spec.is_city then
expected_prep = ptdata.generic_before_cities
else
expected_prep = ptdata.generic_before_non_cities
end
if not expected_prep then
allow_cat = false
end
if allow_cat then
if expected_prep ~= in_of then
mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format(
canon_label, in_of, expected_prep))
return nil
end
local linkdesc = m_placetypes.get_placetype_display_form(placetype,
spec.is_city and "city" or "noncity", "return full")
if linkdesc == false then
mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype)))
return nil
end
if not linkdesc then
internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s",
placetype, key, spec, canon_label)
end
desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec)
desc = "{{{langname}}} " .. desc .. "."
local parents = {}
insert(parents, key)
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = normalized_placetype, sort = key})
if spec.placetype == "negara" or m_table.contains(spec.placetype, "negara") then
local category_class = m_placetypes.get_equiv_placetype_prop(normalized_placetype,
function(pt) return m_placetypes.get_placetype_prop(pt, "class") end, {
from_category = true,
no_split_qualifiers = true,
})
if not category_class then
internal_error("Saw placetype %s that is either unknown or has no `class` " ..
"setting in `placetype_data`", normalized_placetype)
end
if class_is_political_division[category_class] == nil then
internal_error("Saw unknown category class %s derived from placetype %s",
category_class, normalized_placetype)
end
if class_is_political_division[category_class] then
insert(parents, "pembahagian politik negara tertentu")
end
end
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
local container_prep
if container.spec.is_city then
container_prep = ptdata.generic_before_cities
else
container_prep = ptdata.generic_before_non_cities
end
if not container_prep then
internal_error("For container key %s spec %s defines is_city = %s but " ..
"there is no corresponding `generic_before_*` setting in the " ..
"placedata for placetype %s", container.key, container.spec,
container.spec.is_city, placetype)
end
insert(parents, {
name = placetype .. " " .. container_prep .. " " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = normalized_placetype, sort = key})
end
end
return {
type = "nama",
topic = canon_label,
description = desc,
breadcrumb = placetype,
parents = parents,
}
end
end
end
end
end
end)
-- Handler for "state capitals of the United States", "provincial capitals of Canada", etc. This must precede the next
-- handler for specific political and misc (non-political) divisions of polities and subpolities, such as
-- "provinces of the Philippines", because "departmental capitals" is listed in cat_as for French prefectures and so
-- will trigger an error if that handler runs before this one.
insert(handlers, function(label)
label = lcfirst(label)
local capital_cat, place = label:match("^([a-z%- ]- capitals) of (.*)$")
-- Make sure we recognize the type of capital.
if place and capital_cat_to_placetype[capital_cat] then
local placetype = capital_cat_to_placetype[capital_cat]
local pl_placetype = m_placetypes.pluralize_placetype(placetype)
-- Locate the container, fetch its known political divisions, and make sure the placetype corresponding to the
-- type of capital is among the list.
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group and (spec.divs or spec.addl_divs) then
local saw_match = false
local variant_matches = {}
local divlists = {}
if spec.divs then
insert(divlists, spec.divs)
end
if spec.addl_divs then
insert(divlists, spec.addl_divs)
end
for _, divlist in ipairs(divlists) do
if type(divlist) ~= "table" then
divlist = {divlist}
end
for _, div in ipairs(divlist) do
if type(div) == "string" then
div = {type = div}
end
-- HACK. Currently if we don't find a match for the placetype, we map e.g. 'autonomous region'
-- -> 'regional capitals' and 'union territory' -> 'territorial capitals'. When encountering a
-- political division like 'autonomous region' or 'union territory', chop off everything up
-- through a space to make things match. To make this clearer, we record all such
-- "variant match" cases, and down below we insert a note into the category text indicating that
-- such "variant matches" are included among the category.
if pl_placetype == div.type or pl_placetype == div.type:gsub("^.* ", "") then
saw_match = true
if pl_placetype ~= div.type then
insert(variant_matches, div.type)
end
end
end
end
if saw_match then
-- Everything checks out, construct the category description.
local placetype_desc = m_placetypes.get_placetype_display_form(pl_placetype,
placetype.is_city and "city" or "noncity")
if placetype_desc == false then
mw.log(("Display form for pl_placetype %s is false, can't categorize"):format(dump(pl_placetype)))
return nil
end
if not placetype_desc then
internal_error("Unrecognized plural placetype %s, generated as the plural of %s, which " ..
"was found as the placetype of capital placetype %s in label %s", pl_placetype,
placetype, capital_cat, label)
end
local variant_match_text = ""
if variant_matches[1] then
local real_variant_match_descs = {}
for i, variant_match in ipairs(variant_matches) do
local variant_match_desc = m_placetypes.get_placetype_display_form(variant_match,
placetype.is_city and "city" or "noncity")
if variant_match_desc == nil then
internal_error("Unrecognized variant match plural placetype %s, coming from " ..
"place key %s, data %s in label %s", variant_match, key, spec, label)
end
if variant_match_desc then
-- skip those for which the description is `false`, like `ABBREVIATION_OF states`
-- in the United States divs.
insert(real_variant_match_descs, variant_match_desc)
end
end
if real_variant_match_descs[1] then
variant_match_text = " (including " .. m_table.serialCommaJoin(real_variant_match_descs)
.. ")"
end
end
local desc = "{{{langname}}} names of [[capital]]s of " .. placetype_desc .. variant_match_text ..
" of " .. fetch_or_construct_location_desc(group, key, spec) .. "."
local full_placename, _ = m_locations.key_to_placename(group, key)
local parents = {}
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = capital_cat, sort = key})
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
insert(parents, {
name = capital_cat .. " of " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = capital_cat, sort = key})
end
end
insert(parents, key)
return {
type = "nama",
topic = label,
description = desc,
breadcrumb = full_placename,
parents = parents,
}
end
end
end
end)
local overriding_category_descriptions = {
["autonomous cities of Spain"] = "the [[w:Autonomous communities of Spain#Autonomous_cities|autonomous cities of Spain]]",
["regions of Greece"] = "the regions ([[periphery|peripheries]]) of [[Greece]]",
["regions of North Macedonia"] = "the regions ([[periphery|peripheries]]) of [[North Macedonia]]",
["subprefectures of Japan"] = "[[subprefecture]]s of [[Japan]]ese [[prefecture]]s",
}
-- Handler for specific political and misc (non-political) divisions of locations (polities, subpolities, cities, etc.),
-- such as "provinces of the Philippines", "counties of Wales", "municipalities of Tocantins, Brazil",
-- "boroughs of New York City", etc. This does not handle categories for generic placetypes (cities, rivers, etc.) of
-- locations, which are handled by different handlers above.
insert(handlers, function(label)
-- The label comes with an initial capitalization but we have to check both lowercase-initial and capital-initial
-- versions of the placetype to handle e.g. [[:Category:en:Indian reserves of Canada]].
for _, canon_label in ipairs { label, lcfirst(label) } do
for _, minimal_placetype in ipairs { true, false } do
local match_quantifier = minimal_placetype and "-" or "+"
-- Some categories have two "of"s in them, and depending on the category, it's correct to do either a greedy
-- ([[:Category:en:Abbreviations of states of the United States]], with placetype `abbreviations of states`)
-- or non-greedy ([[:Category:en:Provinces of the Democratic Republic of the Congo]], with placetype
-- `provinces`) match. We can't know in advance which is correct so we try both possibilities, doing the
-- non-greedy one first as it seems more common (there are many locations with "of" in them, but currently
-- only `abbreviations of states` occurs with a following location).
local placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (of) (.*)$")
if not placetype then
placetype, in_of, place = canon_label:match("^([A-Za-z%- ]" .. match_quantifier .. ") (di) (.*)$")
end
if placetype then
local group, key, spec = find_canonical_key_from_place(place, canon_label)
if group then
local function find_placetype(divs)
if divs then
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) == "string" then
div = {type = div}
end
local cat_as = div.cat_as or div.type
if type(cat_as) ~= "table" then
cat_as = {cat_as}
end
for _, pt_cat_as in ipairs(cat_as) do
if type(pt_cat_as) == "string" then
pt_cat_as = {type = pt_cat_as}
end
if placetype == pt_cat_as.type then
local div_parent = pt_cat_as.container_parent_type
if div_parent == nil then -- allow false
div_parent = div.container_parent_type
end
if div_parent == nil then
div_parent = placetype
end
return div_parent, pt_cat_as.prep or div.prep or "of"
end
end
end
end
return nil
end
local div_parent, div_prep = find_placetype(spec.divs)
if div_parent == nil then -- allow false
div_parent, div_prep = find_placetype(spec.addl_divs)
end
if div_parent == nil then -- allow false
div_parent, div_prep = find_placetype(spec.addl_divs_for_categorization)
end
if div_parent ~= nil then
if div_prep ~= in_of then
mw.log(("Mismatch in category name '%s', has '%s' when it should have '%s'"):format(
canon_label, in_of, div_prep))
return nil
end
local linkdesc = m_placetypes.get_placetype_display_form(placetype, spec.is_city and "city" or "noncity",
"return full")
if linkdesc == false then
mw.log(("Display form for placetype %s is false, can't categorize"):format(dump(placetype)))
return nil
end
if not linkdesc then
internal_error("Unrecognized placetype %s when processing key %s, data %s, label %s",
placetype, key, spec, canon_label)
end
local desc = overriding_category_descriptions[canon_label]
if not desc then
desc = linkdesc .. " " .. in_of .. " " .. fetch_or_construct_location_desc(group, key, spec)
end
desc = "{{{langname}}} " .. desc .. "."
local parents = {}
insert(parents, key)
if div_parent then -- div_parent may be `false`
if spec.no_container_parent then
-- top-level country, constituent country, continent or the like
insert(parents, {name = placetype, sort = " " .. key})
if spec.placetype == "negara" or m_table.contains(spec.placetype, "negara") then
insert(parents, "political divisions of specific countries")
end
else
local container_iterator = m_locations.iterate_containers(group, key, spec)
local next_containers = container_iterator()
if next_containers then
for _, container in ipairs(next_containers) do
insert(parents, {
name = div_parent .. " " .. in_of .. " " .. m_placetypes.get_prefixed_key(
container.key, container.spec),
sort = key
})
end
else
-- unrecognized countries or the like
insert(parents, {name = placetype, sort = " " .. key})
end
end
end
return {
type = "nama",
topic = canon_label,
description = desc,
breadcrumb = placetype,
parents = parents,
}
end
end
end
end
end
end)
labels["eksonim"] = {
type = "nama",
-- special-cased description
description = "{{{langname}}} [[exonym]]s.",
parents = {"Tempat"},
}
labels["pembahagian politik negara tertentu"] = {
type = "kumpulan",
description = "{{{langname}}} categories for political divisions of specific countries.",
parents = {"Tempat"},
}
-- Misc. FIXME: Remove the need for this.
labels["nomes of Ancient Egypt"] = {
type = "nama",
-- special-cased description
description = "{{{langname}}} names of the [[nome]]s of [[Ancient Egypt]].",
breadcrumb = "nomes",
parents = {"Ancient Egypt"},
}
-- FIXME: Everything here has been moved from [[Module:category tree/topic/Earth]]. Most should be removed.
labels["Atlantic Ocean"] = {
type = "berkenaan",
description = "default with the",
parents = {"Bumi"},
}
labels["British Isles"] = {
type = "berkenaan",
description = "=the people, culture, or territory of [[Great Britain]], [[Ireland]], and other nearby islands",
parents = {"Eropah", "islands"},
}
labels["European Union"] = {
type = "berkenaan",
description = "default with the",
parents = {"Eropah"},
}
labels["Gascony"] = {
type = "berkenaan",
description = "default",
parents = {"Occitania, France"},
}
labels["Indian subcontinent"] = {
type = "berkenaan",
description = "default with the",
parents = {"Asia Selatan"},
}
labels["Bengal"] = {
type = "berkenaan",
description = "{{{langname}}} terms related to the people, culture, or territory of [[Bengal]].",
parents = {"Indian subcontinent"},
}
labels["Kashmir"] = {
type = "berkenaan",
description = "{{{langname}}} terms related to the people, culture, or territory of [[Kashmir]].",
parents = {"Indian subcontinent"},
}
labels["Kashmir, India"] = {
type = "berkenaan",
description = "{{{langname}}} names of places in {{w|Kashmir, India}}.",
parents = {"India", "Kashmir"},
}
labels["Korea"] = {
type = "berkenaan",
description = "=the people, culture, or territory of [[Korea]]",
parents = {"Asia"},
}
labels["Languedoc"] = {
type = "berkenaan",
description = "default",
parents = {"Occitania, France"},
}
labels["Lapland"] = {
type = "berkenaan",
description = "=[[Lapland]], a region in northernmost Europe",
parents = {"Eropah", "Finland", "Norway", "Russia", "Sweden"},
}
labels["Timur Tengah"] = {
type = "berkenaan",
description = "default with the",
parents = {"Afrika", "Asia"},
}
labels["Netherlands Antilles"] = {
type = "berkenaan",
description = "=the people, culture, or territory of the [[Netherlands Antilles]]",
parents = {"Belanda", "Amerika Utara"},
}
labels["Provence"] = {
type = "berkenaan",
description = "default",
parents = {"Provence-Alpes-Côte d'Azur, France"},
}
labels["Asia Selatan"] = {
type = "berkenaan",
description = "default",
parents = {"Eurasia", "Asia"},
}
return {LABELS = labels, HANDLERS = handlers}
esbnc60j43lqkc2hgr18jwyhgblzkwd
Bahnhof
0
13498
278282
223184
2026-04-17T09:49:23Z
PeaceSeekers
3334
278282
wikitext
text/x-wiki
==Bahasa Jerman==
===Takrifan===
====Kata nama====
{{de-kn|m|Bahnhofs|gen2=Bahnhofes|Bahnhöfe}}
# [[stesen kereta api]]
===Etimologi===
Dipendekkan daripada ''Eisenbahnhof'' ("halaman kereta api"), lihat [[Eisenbahn]] dan [[Hof]].
===Sebutan===
* {{AFA|de|/ˈbaːnhoːf/}}
* {{audio|de|De-Bahnhof.OGG|audio}}
* {{audio|de|De-at-Bahnhof.ogg|audio (Austria)}}
===Deklensi===
{{de-dekl-kn-m|(e)s}}
===Terbitan===
{{laj4|de
|Bahnhofsmission|bahnhofsnah|Bahnhofsvorsteher|Bahnhofsuhr|Busbahnhof
|Hauptbahnhof|Kopfbahnhof|nur Bahnhof verstehen|Rangierbahnhof|Sackbahnhof|S-Bahnhof|U-Bahnhof|Weltraumbahnhof
}}
===Tesaurus===
====Sinonim====
* {{l|de|Bahnstation}}
* {{l|de|Bf.}} {{qualifier|abbreviation}}
* {{l|de|Bhf.}} {{qualifier|abbreviation}}
* {{l|de|Station}}
===Bacaan lanjut===
* {{R:Duden}}
{{C|de|Bangunan|Pengangkutan rel}}
b7e8tly6bqbqsa5f59g592o2r5ka4d7
diri
0
15043
277976
191358
2026-04-16T22:42:49Z
GodModeBoros
10321
/* Bahasa Kadazandusun */
277976
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Kata ganti nama====
{{inti|bdr|kata ganti nama}}
# diri
==Bahasa Kadazandusun==
===Takrifan===
====Kata hubung====
{{inti|dtp|kata hubung}}
# [[itu]].
# [[pada]].
#: {{ux|dtp|I nopo tomulok oku po nga awantang oku tomod, ogumu muhang doho '''diri''' po.
|Semasa saya masih muda, saya sangat kacak dan banyak yang suka pada saya '''pada''' masa itu.}}
# ([[baru]]) [[sebentar]] [[tadi]]
===Sebutan===
* {{IPA|dtp|/di.ri/}}
* {{penyempangan|dtp|di|ri}}
===Rujukan===
* {{R:Komoiboros DusunKadazan|2=27}}
* {{R:Komoiboros DusunKadazan|2=285}}
seuxjzpq99xe9lkwytcbne418imvqwr
kakal
0
15554
277970
221941
2026-04-16T14:54:34Z
GodModeBoros
10321
277970
wikitext
text/x-wiki
==Bahasa Bajau Sama==
===Takrifan===
====Adverba====
{{inti|bdr|adverba}}
# masih
==Bahasa Kadazandusun==
===Takrifan===
====Kata Keterangan====
{{inti|dtp|kata keterangan}}
# [[masih]]
===Rujukan===
{{R:Komoiboros DusunKadazan|2=62}}
py7pi8yxm7lpll6nit30vytxazye4oq
ngeseng
0
16760
278258
117386
2026-04-17T09:44:03Z
PeaceSeekers
3334
278258
wikitext
text/x-wiki
==Bahasa Belait==
===Takrifan===
====Kata kerja====
{{inti|beg|kata kerja}}
# [[ketawa]].
===Sebutan===
* {{AFA|beg|/ŋə.sɛŋ/}}
* {{rima|beg|ɛŋ}}
* {{penyempangan|beg|nge|seng}}
===Rujukan===
* {{R:DL7D|2=154}}
77tby949xypsh8lel88lv7easd8k8y6
kabuttu
0
17100
278355
257745
2026-04-17T10:30:26Z
PeaceSeekers
3334
278355
wikitext
text/x-wiki
==Bahasa Bugis==
[[Fail:Humerus - anterior.jpg|thumb|kabuttu]]
===Takrifan===
====Kata nama====
{{inti|bug|kata nama}}
# [[tulang]]
===Sebutan===
* {{penyempangan|bug|ka|but|tu}}
===Rujukan===
* {{R:Kamus Dwibahasa Bugis-Indonesia|2=24}}
n0uh1x69w87ta58nn3uto7se11z5gpb
Heuristik
0
23530
278280
128967
2026-04-17T09:49:05Z
PeaceSeekers
3334
278280
wikitext
text/x-wiki
== Bahasa Jerman ==
{{Wikipedia|lang=de}}
=== Takrifan ===
==== Kata nama ====
{{de-kn|f}}
# [[heuristik]]
=== Sebutan ===
* {{AFA|de|[hɔɪ̯ˈʁɪstɪk]}}
{{C|de|Kejuruteraan}}
qvxawrfrhg0dj37lb18ao9iw8w9byjm
bulan sembilan
0
24456
278392
130276
2026-04-17T10:39:41Z
PeaceSeekers
3334
/* Bahasa Melayu */
278392
wikitext
text/x-wiki
== Bahasa Melayu ==
=== Takrifan ===
==== Kata nama ====
{{ms-noun|j=بولن سمبيلن}}
# Bulan kesembilan dalam suatu [[tahun]]; bulan [[September]].
=== Etimologi ===
{{com|ms|bulan|sembilan}}.
=== Sebutan ===
* {{IPA|ms|/bulan səmbilan/}}
=== Rujukan ===
* {{R:PRPM}}
0vumha8tk7xgk9q3qt7f0uk7tan46zc
osopung
0
26761
277971
148892
2026-04-16T15:03:35Z
GodModeBoros
10321
277971
wikitext
text/x-wiki
==Bahasa kadazandusun==
===Takrifan===
====kata sifat====
{{inti|dtp|kata sifat}}
#[[awal]]
#: {{cp|dtp|'''Osopung''' kopio rumasam.|Hujan turun sangat '''awal'''.}}
===Sebutan===
* {{IPA|dtp|/ɔ.sɔ.pʊŋ/}}
* {{penyempangan|dtp|o|so|pung}}
{{R:Kadumalin}}
guj2zjwmcr1am54grxqmtsiwu8n9h5v
277972
277971
2026-04-16T15:03:51Z
GodModeBoros
10321
277972
wikitext
text/x-wiki
==Bahasa kadazandusun==
===Takrifan===
====kata sifat====
{{inti|dtp|kata sifat}}
#[[awal]]
#: {{cp|dtp|'''Osopung''' kopio rumasam.|Hujan turun sangat '''awal'''.}}
===Sebutan===
* {{IPA|dtp|/ɔ.sɔ.pʊŋ/}}
* {{penyempangan|dtp|o|so|pung}}
===Rujukan===
{{R:Kadumalin}}
ieg3rfs0qt98iko7tjv3wyq58c38dl8
277973
277972
2026-04-16T15:04:12Z
GodModeBoros
10321
277973
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====kata sifat====
{{inti|dtp|kata sifat}}
#[[awal]]
#: {{cp|dtp|'''Osopung''' kopio rumasam.|Hujan turun sangat '''awal'''.}}
===Sebutan===
* {{IPA|dtp|/ɔ.sɔ.pʊŋ/}}
* {{penyempangan|dtp|o|so|pung}}
===Rujukan===
{{R:Kadumalin}}
mu9h3pjeutfv3ugsr82pbbs4gdnc8j9
gaso
0
30090
277978
221533
2026-04-16T22:50:19Z
GodModeBoros
10321
/* Kata terbitan */
277978
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata kerja====
{{inti|dtp|kata kerja}}
# gurau.
#: {{ux|dtp|Aiso i binoros di Dina, '''gaso''' toomod no.
|Tiada apa yang dikatakan oleh Dina, hanya '''gurau''' sahaja.}}
===Sebutan===
* {{IPA|dtp|/ga.so/}}
* {{penyempangan|dtp|ga|so}}
===Kata terbitan===
*{{l|dtp|obinggaso}}
*{{l|dtp|minggaso}}
*{{l|dtp|pinggaso}}
*{{l|dtp|agaso}}
*{{l|dtp|agasaan}}
*{{l|dtp|ginasaan}}
*{{l|dtp|mogiinggaso}}
*{{l|dtp|pinggasaan}}
m3uj3lavtdzj7j9wukat05x9vy1ccab
277979
277978
2026-04-16T22:52:17Z
GodModeBoros
10321
/* Bahasa Kadazandusun */
277979
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata kerja====
{{inti|dtp|kata kerja}}
# [[nakal]], [[kelakar]]
#: {{ux|dtp|Aiso i binoros di Dina, '''gaso''' toomod no.
|Tiada apa yang dikatakan oleh Dina, hanya '''gurau''' sahaja.}}
===Sebutan===
* {{IPA|dtp|/ga.so/}}
* {{penyempangan|dtp|ga|so}}
===Kata terbitan===
*{{l|dtp|obinggaso}}
*{{l|dtp|minggaso}}
*{{l|dtp|pinggaso}}
*{{l|dtp|agaso}}
*{{l|dtp|agasaan}}
*{{l|dtp|ginasaan}}
*{{l|dtp|mogiinggaso}}
*{{l|dtp|pinggasaan}}
===Rujukan===
{{R:Komoiboros DusunKadazan|2=38}}
f115vi79o4uqsr8zpryigrkcfgjiuqv
ފެން
0
56072
278270
241814
2026-04-17T09:47:46Z
PeaceSeekers
3334
278270
wikitext
text/x-wiki
== Bahasa Dhivehi ==
=== Takrifan ===
==== Kata nama ====
{{dv-kn}}
# [[air]]
=== Etimologi ===
{{root|dv|sa|पा}}
{{inh+|dv|pra|𑀧𑀸𑀡𑀻𑀅}}, {{m|pra|𑀧𑀸𑀡𑀺𑀅}}, from {{inh|dv|sa|पानीय}}.
=== Sebutan ===
* {{IPA|dv|[fe.ŋ]}}
=== Rujukan ===
* {{R:dv:Maniku}}
* {{R:CDIAL|pānīˊya|8082}}
{{C|dv|Air}}
bmtg4iq5gnhk5ade3m786bzgva8tswi
ރަތް
0
56086
278272
241833
2026-04-17T09:47:54Z
PeaceSeekers
3334
/* Rujukan */
278272
wikitext
text/x-wiki
== Bahasa Dhivehi ==
=== Takrifan ===
==== Kata sifat ====
{{dv-ks}}
# [[merah]]
=== Etimologi ===
{{inh+|dv|pra|𑀭𑀢𑁆𑀢|t=merah}}, daripada {{inh|dv|sa|रक्त||berwarna, bernila}}. Banding dengan {{cog|si|රතු}}.
=== Sebutan ===
* {{IPA|dv|/ɾat̪/|[ɾæʔ]}}
=== Rujukan ===
* {{R:dv:Maniku||205}}
* {{R:CDIAL|rakta|10539}}
{{C|dv|Warna}}
9lraj5yxjeobxytvd60no0s1e3v95rk
Wikikamus:Statistik
4
58015
278225
185245
2026-04-17T09:26:01Z
Hakimi97
2668
Kemas kini
278225
wikitext
text/x-wiki
<noinclude>{{shortcut|WT:STATS}}
__TOC__
* {{lg|entry|Kata masukan}}: '''{{#invoke:EntryCount|calculate}}'''
* Laman dengan sekurang-kurangnya satu entri: '''{{PAGESINCATEGORY:Laman dengan entri|page}}'''
* Jumlah laman: '''{{NUMBEROFPAGES}}'''
* [[WT:LOL|Bahasa yang disahkan]]: '''{{formatnum:{{#invoke:list of languages|count}}}}'''
* Suntingan sejak permulaan Wikikamus Bahasa Melayu: '''{{NUMBEROFEDITS}}''' (purata {{#expr:{{NUMBEROFEDITS:R}}/{{NUMBEROFPAGES:R}} round 2}} suntingan setiap laman)
* Akaun pengguna: '''{{NUMBEROFUSERS}}'''
* Pengguna aktif: '''{{NUMBEROFACTIVEUSERS}}''' <small>({{int:statistics-users-active-desc|30}})</small>
* Akaun bot: '''{{NUMBERINGROUP:Bot}}'''
* Penyelia: '''{{NUMBEROFADMINS}}'''<!--
--></noinclude><includeonly>__NOTOC__</includeonly>
* [https://tools.wmflabs.org/topviews/?project=en.wiktionary.org&platform=all-access&date=last-month&excludes= Laman dengan paparan tertinggi] – [https://stats.wikimedia.org/v2/#/en.wiktionary.org/reading/total-page-views/normal|line|1-year|~total|monthly Jumlah paparan laman] – [https://stats.wikimedia.org/v2/#/en.wiktionary.org/content/edited-pages/normal|line|1-month|editor_type~anonymous*user|daily Suntingan laman]
==Pecahan bahasa terpilih==
{{Wikikamus:Statistik/janaan}}
==See also==
<noinclude>* [[Khas:Statistik]]</noinclude>
* [[Wikikamus:Penanda aras]]
* [https://stats.wikimedia.org/ Statistik Wikimedia]
* [https://stats.wikimedia.org/#/en.wiktionary.org Statistik Wikimedia]
* [http://toolserver.org/~vvv/adminstats.php?wiki=enwiktionary_p&tlimit=none Statistik Penyelia]
<noinclude>
[[Kategori:Statistik Wikikamus| ]]
</noinclude>
g6vjzyvbwuzi7bcsl73z9l1mdhhhvtv
tinu'
0
74312
277974
219273
2026-04-16T22:38:55Z
GodModeBoros
10321
277974
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Waktu====
{{inti|dtp|waktu}}
# ([[baru]]) [[sebentar]] [[tadi]]
===Rujukan===
{{R:Komoiboros DusunKadazan|2=285}}
==Bahasa Suluk==
===Takrifan===
====Kata kerja====
{{inti|tsg|kata kerja}}
# [[mencair]]; [[menjadi cair]] {{gloss|[[gula]], [[garam]]}}
#: {{syn|tsg|lanay|hansul}}
====Kata terbitan====
{{der3|tsg|matinu'|natinu'|tuminu'|tinua|magtinu'|tinuanan}}
4kfcf11c5jbuk2b7inwmg2ln7x6aw6s
277975
277974
2026-04-16T22:39:54Z
GodModeBoros
10321
277975
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Waktu====
{{inti|dtp|waktu}}
# ([[baru]]) [[sebentar]] [[tadi]]
===Sinonim===
* [[diri]]
* [[wagu]]
===Rujukan===
{{R:Komoiboros DusunKadazan|2=285}}
==Bahasa Suluk==
===Takrifan===
====Kata kerja====
{{inti|tsg|kata kerja}}
# [[mencair]]; [[menjadi cair]] {{gloss|[[gula]], [[garam]]}}
#: {{syn|tsg|lanay|hansul}}
====Kata terbitan====
{{der3|tsg|matinu'|natinu'|tuminu'|tinua|magtinu'|tinuanan}}
gcp2csfji5hegv7t8u0gt56udf1jzsu
Modul:place/placetypes
828
76179
278395
254158
2026-04-17T10:51:14Z
PeaceSeekers
3334
278395
Scribunto
text/plain
local export = {}
export.force_cat = false -- set to true for testing
local m_locations = require("Module:place/locations")
local m_links = require("Module:links")
local m_table = require("Module:table")
local m_strutils = require("Module:string utilities")
local debug_track_module = "Module:debug/track"
local en_utilities_module = "Module:en-utilities"
local dump = mw.dumpObject
local insert = table.insert
local concat = table.concat
local internal_error = m_locations.internal_error
export.internal_error = internal_error
local process_error = m_locations.process_error
export.process_error = process_error
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local ucfirst = m_strutils.ucfirst
local ulower = m_strutils.lower
local rmatch = m_strutils.match
local split = m_strutils.split
--[==[ intro:
This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code
to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to
[[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must
currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}.
In particular, it contains two fundamental and tricky functions:
# `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in
the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising"
operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and
fallbacks.
# `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process
checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the
containers of the known location being considered. This is done to prevent overcategorizing when either there are two
known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally
two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing
non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico).
Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a
result are candidates for memoization to speed up the operation of {{tl|place}}.
]==]
------------------------------------------------------------------------------------------
-- Basic utilities --
------------------------------------------------------------------------------------------
--[==[
Return true if `force_cat` is set either in this module or in [[Module:place/locations]].
]==]
function export.get_force_cat()
return export.force_cat or m_locations.force_cat
end
-- Add the page to a tracking "category". To see the pages in the "category",
-- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here".
local function track(page)
require(debug_track_module)("place/" .. page)
return true
end
function export.remove_links_and_html(text)
text = m_links.remove_links(text)
return text:gsub("<.->", "")
end
--[==[
Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with
irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values
specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in
[[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x,
and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider
changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is
returned.
]==]
function export.maybe_singularize_placetype(placetype)
if not placetype then
return nil
end
if export.plural_placetype_to_singular[placetype] then
return export.plural_placetype_to_singular[placetype]
end
local retval = require(en_utilities_module).singularize(placetype)
if retval == placetype then
return nil
end
return retval
end
-- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first
-- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost
-- always correct.
function export.pluralize_placetype(placetype, do_ucfirst)
local ptdata = export.placetype_data[placetype]
if ptdata and ptdata.plural then
placetype = ptdata.plural
else
placetype = require(en_utilities_module).pluralize(placetype)
end
if do_ucfirst then
return ucfirst(placetype)
else
return placetype
end
end
--[==[
Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified,
we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype
under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not
match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match
that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same
as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed
from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version
of the plural passed-in `placetype`.
]==]
function export.get_placetype_data(placetype, from_category)
local ptdata = export.placetype_data[placetype]
if ptdata then
return placetype, ptdata, "direct"
end
if from_category then
ptdata = export.placetype_data[placetype .. "!"]
if ptdata then
return placetype .. "!", ptdata, "direct-category"
end
end
local sg_placetype = export.maybe_singularize_placetype(placetype)
if sg_placetype then
ptdata = export.placetype_data[sg_placetype]
if ptdata then
return sg_placetype, ptdata, "plural"
end
end
return nil
end
--[==[
Check for special pseudo-placetypes that should be ignored for categorization purposes.
]==]
function export.placetype_is_ignorable(placetype)
return placetype == "and" or placetype == "or" or placetype:find("^%(")
end
function export.resolve_placetype_aliases(placetype)
return export.placetype_aliases[placetype] or placetype
end
--[==[
Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the
key isn't found in the placetype's entry in `placetype_data`, return nil.
]==]
function export.get_placetype_prop(placetype, key)
-- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype
-- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in
-- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice.
placetype = export.resolve_placetype_aliases(placetype)
if export.placetype_data[placetype] then
return export.placetype_data[placetype][key]
else
return nil
end
end
--[==[
Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list
{ {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e.
# the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are
zero such qualifiers, the value will be nil);
# a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil);
# the "reduced placetype" on the right.
Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from
left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases
in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization
of qualifiers does not happen if `no_canon_qualifiers` is specified.
For example, given the placetype `"small beachside unincorporated community"`, the return value will be
{ {
{nil, nil, "small beachside unincorporated community"},
{nil, "small", "beachside unincorporated community"},
{"small", "[[beachfront]]", "unincorporated community"},
{"small [[beachfront]]", "[[unincorporated]]", "community"},
}}
Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to
`"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`.
On the other hand, if given `"small former haunted community"`, the return value will be
{ {
{nil, nil, "small former haunted community"},
{nil, "small", "former haunted community"},
{"small", "former", "haunted community"},
}}
because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers.
Finally, if given `"former adr"`, the return value will be
{ {
{nil, nil, "former adr"},
{nil, "former", "administrative region"},
}}
because `"adr"` is a recognized placetype alias for `"administrative region"`.
]==]
function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers)
local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}}
local prev_qualifier = nil
while true do
local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$")
if qualifier then
local canon = export.placetype_qualifiers[qualifier]
if canon == nil then
break
end
local new_qualifier = qualifier
if type(canon) == "table" then
canon = canon.link
end
if not no_canon_qualifiers and canon ~= false then
if canon == true then
new_qualifier = "[[" .. qualifier .. "]]"
else
new_qualifier = canon
end
end
insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)})
prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier
placetype = reduced_placetype
else
break
end
end
return splits
end
--[==[
Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the
placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list
of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a
placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the
words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off
qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words
not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used
to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is
an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first
entry if it exists in `placetype_data`.
'''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c)
"type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of
directives, which act somewhat similarly to `former`, and allows interaction between more than one of these
simultaneously (e.g. official names of former places, which have their own categorization).
If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be
getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of
`iterate_matching_holonym_location()`.
For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn:
```
{qualifier = nil, placetype="left tributary"}
{qualifier = "left", placetype="tributary"}
{qualifier = "left", placetype="river"}
```
and the return value will be
{ {
{qualifier = "left", placetype="tributary"},
{qualifier = "left", placetype="river"},
}}
The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized
placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it
would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the
''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because
it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next.
Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality,
often specifically an outlying hamlet). the placetype/qualifier combinations checked are:
```
{qualifier = nil, placetype="small rural fraziones"}
{qualifier = nil, placetype="small rural frazione"}
{qualifier = "small", placetype="rural fraziones"}
{qualifier = "small", placetype="rural frazione"}
{qualifier = "small [[rural]]", placetype="fraziones"}
{qualifier = "small [[rural]]", placetype="frazione"}
{qualifier = "small [[rural]]", placetype="hamlet"}
{qualifier = "small [[rural]]", placetype="village"}
```
The return value ends up as
{qualifier = "small [[rural]]", placetype="frazione"},
{qualifier = "small [[rural]]", placetype="hamlet"},
{qualifier = "small [[rural]]", placetype="village"},
}}
Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that
singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers,
they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around
`rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both
fallbacks end up being returned.
`no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is
used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes
such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym.
See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the
placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are
returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example,
`"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When
`no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"wilayah"`
with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under
[[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].)
As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`,
because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes
rarely occur with exact match category specs anyway.
`no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an
equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in
[[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't
have qualifiers and so it doesn't make sense to try and look for them.
`from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked.
`form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked
placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the
appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a
placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches.
`no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`.
`register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g.
known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It
causes the non-former version of the specified placetype to be included in the returned equivalents along with the
former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now;
fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.]
]==]
function export.get_placetype_equivs(placetype, props)
local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former
local form_of_directive
if props then
no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former =
props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category,
props.register_former_as_non_former
form_of_directive = props.form_of_directive
end
local equivs = {}
-- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is
-- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If
-- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by
-- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version
-- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as
-- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into
-- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}},
-- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up
-- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]].
local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix)
local function insert_equiv(pt)
if form_of_prefix then
-- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have
-- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end
-- up processing because `island country` falls back to `country`), and that entry in turn is defined
-- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of
-- handling this is by calling ourselves recursively.
insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt)
else
insert(equivs, {qualifier=qualifier, placetype=pt})
end
end
-- Insert the placetype, along with any fallbacks.
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category)
if ptdata then
insert_equiv(canon_placetype)
if no_fallback then
return
end
local first_placetype = #equivs + 1
local prev_placetype = nil
while true do
local pt_value = export.placetype_data[canon_placetype]
if not pt_value then
internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`",
canon_placetype, prev_placetype)
end
if pt_value.fallback then
insert_equiv(pt_value.fallback)
local last_placetype = #equivs
if last_placetype - first_placetype >= 10 then
local fallback_loop = {}
for i = first_placetype, last_placetype do
insert(fallback_loop, equivs[i].placetype)
end
internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> "))
end
prev_placetype = canon_placetype
canon_placetype = pt_value.fallback
else
break
end
end
end
end
-- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a
-- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no
-- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that
-- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for
-- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a
-- `former`-type directive); these backups live outside this function because we want them done once, late, rather
-- than in each invocation of `process_and_insert_placetype()`.
local function process_and_insert_placetype(qualifier, reduced_placetype)
if form_of_directive then
-- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of
-- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by
-- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of
-- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for
-- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.)
insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive)
if not no_fallback then
local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype)
local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or
export.get_placetype_prop(pt, "class") end
)
if not directive_type then
local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.placetype_data[pt] end
)
if pt_data then
internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " ..
'located but directive-specific type property %s missing, and so is "class"; ' ..
"placetypes searched are %s", reduced_placetype, form_of_directive,
form_of_directive .. "_type", reduced_placetype_equivs)
else
-- This should be allowed, as we allow unrecognized placetypes in general.
end
elseif directive_type ~= "!" then
insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive)
end
end
else
insert_placetype_and_fallbacks(qualifier, reduced_placetype)
end
end
-- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left
-- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers).
local splits
if no_split_qualifiers then
splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}}
else
splits = export.split_qualifiers_from_placetype(placetype)
end
for _, split in ipairs(splits) do
local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3)
-- If a special "former" qualifier like `former` or `historical` isn't present, and
-- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for
-- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing
-- placetypes, and handle accordingly.
local unlinked_this_qualifier
if this_qualifier and this_qualifier:find("%[") then
unlinked_this_qualifier = export.remove_links_and_html(this_qualifier)
else
unlinked_this_qualifier = this_qualifier
end
local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil
if not former_qualifiers and not no_check_for_inherently_former then
former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype,
function(pt) return export.get_placetype_prop(pt, "inherently_former") end,
{no_check_for_inherently_former = true})
end
-- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal
-- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified
-- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped
-- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval`
-- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes
-- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the
-- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a
-- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like
-- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and
-- don't enter anything into `equivs`.
if former_qualifiers then
-- FIXME: Should we respect `no_fallback` here? My instinct says no.
local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, {
no_check_for_inherently_former = true
})
local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.get_placetype_prop(pt, "former_type") or
export.get_placetype_prop(pt, "class") end
)
if not former_type then
local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.placetype_data[pt] end
)
if pt_data then
internal_error("For placetype %s, placetype data located but `former_type` missing; " ..
"placetypes searched are %s", reduced_placetype, reduced_placetype_equivs)
else
-- Enable error when we've verified there aren't any examples.
track("bad-former-placetype")
track("bad-former-placetype/" .. reduced_placetype)
--process_error("For placetype '%s', unrecognized placetype following 'former'-type " ..
-- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs))
end
elseif former_type ~= "!" then
-- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible
-- for (e.g.) former provinces of the Roman empire to be categorized specially.
for _, former_qualifier in ipairs(former_qualifiers) do
process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype)
end
for _, former_qualifier in ipairs(former_qualifiers) do
process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type)
end
-- HACK! See explanation above for `register_former_as_non_former`.
if register_former_as_non_former then
process_and_insert_placetype(prev_qualifier, reduced_placetype)
end
-- If we're processing a form-of directive, after doing everything else we do
-- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup.
if form_of_directive and not no_fallback then
for _, former_qualifier in ipairs(former_qualifiers) do
insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier ..
" place")
end
end
-- Don't continue processing equivs. The reason is probably the same as the `break` below for
-- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and
-- non-former equivs will otherwise take precedence.
break
end
end
-- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs
-- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping.
if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then
insert(equivs, {
qualifier=prev_qualifier,
placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier]
})
-- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the
-- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the
-- latter ends up generating the category because the category for 'mythological location' is set as
-- the default value, which is used only when no non-default category can be found.
break
end
-- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined
-- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype.
-- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts
-- the full placetype into `equivs`.
local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier
process_and_insert_placetype(qualifier, reduced_placetype)
-- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced
-- placetypes to avoid the "overseas territory treated as a territory" issue describe above.
if no_fallback then
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category)
if canon_placetype then
break
end
end
end
-- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g.
-- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype
-- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g.
-- [[Category:en:Former names of places]] in an invocation like
-- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}};
-- the `used from 1971–1997` gets treated as a placetype and we're called on it.
if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then
insert_placetype_and_fallbacks(nil, form_of_directive .. " place")
end
return equivs
end
function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only)
for _, equiv in ipairs(equivs) do
local retval = fun(equiv.placetype)
if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then
return retval, equiv
end
end
return nil, nil
end
--[==[
Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent
placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false});
but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value.
FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a
non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the
equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or
non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil},
the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value.
]==]
function export.get_equiv_placetype_prop(placetype, fun, props)
if not placetype then
return fun(nil), nil
end
return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun,
props and props.continue_on_nil_only)
end
--[==[
Return the article that is used with an entry placetype. We proceed as follows:
# See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article).
This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`.
# Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that
`"the"` should be used.
# Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from
the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the`
(principally for use with placetypes like `union territory`).
# Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with
a vowel and `"a"` otherwise.
If `ucfirst` is true, the first letter of the article is made upper-case.
]==]
function export.get_placetype_article(placetype, ucfirst)
local art
local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$")
if qualifier then
local canon = export.placetype_qualifiers[qualifier]
if type(canon) == "table" then
art = canon.article
end
end
if art == false then
return art
end
if art == nil then
local placetype_use_the = export.get_equiv_placetype_prop(placetype,
function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end)
if placetype_use_the then
art = "the"
else
art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article")
if not art then
art = require(en_utilities_module).get_indefinite_article(placetype)
end
end
end
if ucfirst then
art = m_strutils.ucfirst(art)
end
return art
end
--[==[
Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories
(e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"di"` if not specified.
]==]
function export.get_placetype_entry_preposition(placetype)
local pt_prep = export.get_equiv_placetype_prop(placetype,
function(pt) return export.get_placetype_prop(pt, "preposition") end
)
return pt_prep or "di"
end
--[==[
Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's
`holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding
to the holonym "c/Italy", a key "negara" with the list value {"Italy"} will be added to the place desc's
`holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the
end of the value's list.
]==]
function export.key_holonym_into_place_desc(place_desc, holonym)
if not holonym.placetype then
return
end
-- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do
-- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms
-- of different types just because they have the same fallback.
local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true})
local unlinked_placename = holonym.unlinked_placename
for _, equiv in ipairs(equiv_placetypes) do
local placetype = equiv.placetype
if not place_desc.holonyms_by_placetype then
place_desc.holonyms_by_placetype = {}
end
if not place_desc.holonyms_by_placetype[placetype] then
place_desc.holonyms_by_placetype[placetype] = {unlinked_placename}
else
insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename)
end
end
end
--[=[
Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the
placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This
will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to
whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype
data structure for the placetype, and `from_category` indicates that we are generating the description of a category
(otherwise we are generating the display form of an entry placetype).
]=]
local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror)
if not from_category and ptdata.disallow_in_entries then
if noerror then
return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]"
else
process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype)
end
end
if link == nil then
internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype)
elseif link == true then
if orig_placetype then
return ("[[%s|%s]]"):format(sg_placetype, orig_placetype)
else
return ("[[%s]]"):format(sg_placetype)
end
elseif link == false then
process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype)
elseif link == "w" then
return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype)
elseif link == "separately" then
if orig_placetype then
local sg_words = split(sg_placetype, " ")
local orig_words = split(orig_placetype, " ")
if #sg_words ~= #orig_words then
internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " ..
"has different number of words", orig_placetype, sg_placetype)
else
for i = 1, #sg_words do
if sg_words[i] == orig_words[i] then
sg_words[i] = ("[[%s]]"):format(sg_words[i])
else
sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i])
end
end
return concat(sg_words, " ")
end
else
return (sg_placetype:gsub("([^ ]+)", "[[%1]]"))
end
elseif link:find("^%+") then
link = link:sub(2) -- discard initial +
return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype)
elseif not orig_placetype then
return link
else
return require(en_utilities_module).pluralize(link)
end
end
--[==[
Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the
plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying
as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description
of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like
[[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or
`"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description
for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with
special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the
"full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is
prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be
disallowed.
]==]
function export.get_placetype_display_form(placetype, category_type, return_full, noerror)
local from_category = not not category_type
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category)
if canon_placetype then
local raw_link
local function is_linked_string(str)
return type(str) == "string" and str:find("%[%[")
end
if category_type then
local fetched_full
local function fetch_maybe_full(prop)
local retval = ptdata["full_" .. prop]
if retval ~= nil then
if return_full then
return retval, true
else
internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval)
end
end
return ptdata[prop], false
end
local function maybe_prefix(str)
if return_full and not fetched_full then
return "names of " .. str
else
return str
end
end
-- Careful with `false` as possible value.
if category_type == "top-level" then
raw_link, fetched_full = fetch_maybe_full("category_link_top_level")
elseif category_type == "noncity" then
raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity")
elseif category_type == "city" then
raw_link, fetched_full = fetch_maybe_full("category_link_before_city")
else
internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"',
category_type)
end
if type(raw_link) == "string" then
return maybe_prefix(raw_link), ptdata
elseif raw_link ~= nil then
return raw_link, ptdata
end
raw_link, fetched_full = fetch_maybe_full("category_link")
if raw_link == false then
return raw_link, ptdata
end
if is_linked_string(raw_link) then
return maybe_prefix(raw_link), ptdata
end
if ptmatch == "plural" then
raw_link, fetched_full = fetch_maybe_full("plural_link")
if raw_link == false then
return raw_link, ptdata
end
if is_linked_string(raw_link) then
return maybe_prefix(raw_link), ptdata
end
end
if raw_link == nil then
raw_link, fetched_full = fetch_maybe_full("link")
end
if raw_link == false then
return raw_link, ptdata
end
return maybe_prefix(make_placetype_link(raw_link, canon_placetype,
placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata
else
if ptmatch == "plural" then
raw_link = ptdata.plural_link
if raw_link == false then
process_error("Placetype %s cannot appear plural", placetype)
end
if is_linked_string(raw_link) then
return raw_link, ptdata
end
end
if raw_link == nil then
raw_link = ptdata.link
end
return make_placetype_link(raw_link, canon_placetype,
placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata
end
end
return nil
end
local function resolve_unlinked_placename_display_aliases(placetype, placename)
local equiv_placetypes = export.get_placetype_equivs(placetype)
for i, equiv in ipairs(equiv_placetypes) do
equiv_placetypes[i] = equiv.placetype
end
local all_display_aliases_found = {}
local all_others_found = {}
for group, key, spec in m_locations.iterate_matching_location {
placetypes = equiv_placetypes,
placename = placename,
alias_resolution = "display",
} do
if spec.alias_of and spec.display then
insert(all_display_aliases_found, {group, key, spec, spec.display_as_full})
else
insert(all_others_found, {group, key, spec})
end
end
if not all_display_aliases_found[1] then
return placename
elseif all_display_aliases_found[2] then
internal_error("Found multiple matching display aliases for placename %s, placetype %s: " ..
"all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found,
all_others_found)
elseif all_others_found[1] then
internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " ..
"all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found,
all_others_found)
else
local group, key, spec, as_full = unpack(all_display_aliases_found[1])
local full, elliptical = m_locations.key_to_placename(group, key)
return as_full and full or elliptical
end
end
--[==[
If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged.
Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`,
`country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as
`United States`.
'''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they
should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed.
For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to
`Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political
connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!)
to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two
terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to
`North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly
display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve
alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and
consistency.
]==]
function export.resolve_placename_display_aliases(placetype, placename)
-- If the placename is a link, apply the alias inside the link.
-- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will
-- be empty.
local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$")
if link then
if linktext ~= "" then
local alias = resolve_unlinked_placename_display_aliases(placetype, linktext)
return "[[" .. link .. "|" .. alias .. "]]"
else
local alias = resolve_unlinked_placename_display_aliases(placetype, link)
return "[[" .. alias .. "]]"
end
else
return resolve_unlinked_placename_display_aliases(placetype, placename)
end
end
--[==[
Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key.
]==]
function export.get_prefixed_key(key, spec)
if spec.the then
return "the " .. key
else
return key
end
end
-- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary.
export.iterate_matching_location = m_locations.iterate_matching_location
--[=[
Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the
specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If
`first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is
specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified
by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the
holonym index and holonym structure, similar to `ipairs()`.
]=]
function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms)
local stop_at_also = not not first_holonym_index
return function(place_desc, index)
while true do
index = index + 1
local this_holonym = place_desc.holonyms[index]
-- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also`
-- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym
-- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with
-- `:also`.
if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then
return nil
end
-- If not placetype, we're processing raw text, which we normally want to skip.
if include_raw_text_holonyms or this_holonym.placetype then
return index, this_holonym
end
end
end, place_desc, first_holonym_index and first_holonym_index - 1 or 0
end
--[==[
If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all
such known locations, returning for each location the corresponding key, spec and group as well as the trail of
ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between
the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data`
are:
* `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with
`iterate_matching_location()`.
* `holonym_placename`: The placename of the holonym.
* `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the
holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms
following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none
exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.)
* `place_desc`: Description of the place; used for the holonyms, to check for container mismatches.
Returns four values: the location group, the canonical key by which the location is known, the spec object describing
the location and the trail of ancestral containers for the location. The first three values are the same as for
`iterate_matching_location`.
]==]
function export.iterate_matching_holonym_location(data)
local holonym_placetype, holonym_placename, holonym_index, place_desc =
data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc
local matching_location_iterator = m_locations.iterate_matching_location {
placetypes = holonym_placetype,
placename = holonym_placename,
}
return function()
while true do
local group, key, spec = matching_location_iterator()
if not group then
return nil
end
local container_trail = {}
-- For each level of container, check that there are no mismatches (i.e. other location of the same
-- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container
-- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city
-- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of
-- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark,
-- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New
-- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough,
-- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If
-- there are no mismatches at any level we assume we're dealing with the right known location.
--
-- If at a given level there are multiple containing locations, we count a match if any holonym matches any
-- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any
-- containing location.
local containers_mismatch = false
for containers in m_locations.iterate_containers(group, key, spec) do
insert(container_trail, containers)
local match_at_level = false
local mismatch_at_level = false
for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc,
holonym_index and holonym_index + 1 or nil) do
local other_source_holonym = other_holonym.augmented_from_holonym
if other_source_holonym and other_source_holonym.placetype == holonym_placetype and
other_source_holonym.unlinked_placename ~= holonym_placename then
-- Ignore holonyms added during the augmentation process for other holonyms of the same
-- placetype as the placetype of the holonym we're considering. See comment in
-- augment_holonyms_with_container() for why we do this.
-- continue; grrr, no 'continue' in Lua
else
local holonym_matches_at_level = false
local holonym_exists_with_same_placetype = false
for _, container in ipairs(containers) do
if not container.spec.no_check_holonym_mismatch then
local full_container_placename, elliptical_container_placename =
m_locations.key_to_placename(container.group, container.key)
local placetypes = container.spec.placetype
if type(placetypes) ~= "table" then
placetypes = {placetypes}
end
local placetype_equivs = {}
for _, pt in ipairs(placetypes) do
m_table.extend(placetype_equivs, export.get_placetype_equivs(pt))
end
local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs(
placetype_equivs, function(placetype)
return other_holonym.placetype == placetype and
(other_holonym.unlinked_placename == full_container_placename or
other_holonym.unlinked_placename == elliptical_container_placename)
end
)
if this_holonym_matches then
holonym_matches_at_level = true
break
end
local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs(
placetype_equivs, function(placetype)
return other_holonym.placetype == placetype
end
)
if this_holonym_exists_with_same_placetype then
-- We seem to have a mismatch at this level. But before we decide conclusively that this
-- is the case, check to see whether the putative mismatch is an alias and matches when
-- we resolve the alias.
for oh_group, oh_key, oh_spec, oh_container_trail in
export.iterate_matching_holonym_location {
holonym_placetype = other_holonym.placetype,
holonym_placename = other_holonym.unlinked_placename,
holonym_index = other_holonym_index,
place_desc = place_desc,
} do
local oh_full_placename, oh_elliptical_placename =
m_locations.key_to_placename(oh_group, oh_key)
if oh_full_placename == full_container_placename or
oh_elliptical_placename == elliptical_container_placename then
-- Alias matched when resolved.
this_holonym_matches = true
break
end
end
if this_holonym_matches then
-- Alias matched above when resolved.
holonym_matches_at_level = true
break
else
-- Not an alias, or doesn't match when resolved. We have a true mismatch.
holonym_exists_with_same_placetype = true
end
end
end
end
if holonym_matches_at_level then
match_at_level = true
break
end
if holonym_exists_with_same_placetype then
mismatch_at_level = true
end
end
end
if not match_at_level and mismatch_at_level then
containers_mismatch = true
break
end
end
if not containers_mismatch then
return group, key, spec, container_trail
end
end
end
end
--[==[
If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the
corresponding key, spec and group as well as the trail of ancestral containers. This is like
`iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this
would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To
fix this, specify additional following disambiguating holonyms, e.g.
{{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}.
]==]
function export.find_matching_holonym_location(data)
local all_found = {}
for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do
insert(all_found, {group, key, spec, container_trail})
end
if not all_found[1] then
return nil
elseif all_found[2] then
local holonym_placetype = data.holonym_placetype
if type(holonym_placetype) == "table" then
holonym_placetype = concat(holonym_placetype, ",")
end
local found_keys = {}
for _, found in ipairs(all_found) do
local _, key, _, _ = unpack(found)
insert(found_keys, key)
end
error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " ..
"containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys)))
else
return unpack(all_found[1])
end
end
------------------------------------------------------------------------------------------
-- Placename and placetype data --
------------------------------------------------------------------------------------------
--[==[ var:
This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their
canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which
applies to categorization and other processes but not to display.
The most important aliases are for holonym placetypes, particularly those that occur often such as "negara", "negeri",
"province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g.
"census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype.
Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be
interpreted as "department", "daerah" or "division").
]==]
export.placetype_aliases = {
["acomm"] = "autonomous community",
["adr"] = "administrative region",
["adterr"] = "administrative territory", -- Pakistan
["aobl"] = "autonomous oblast",
["aokr"] = "autonomous okrug",
["ap"] = "autonomous province",
["apref"] = "autonomous prefecture",
["aprov"] = "autonomous province",
["ar"] = "autonomous region",
["arch"] = "archipelago",
["arep"] = "autonomous republic",
["aterr"] = "autonomous territory",
["atu"] = "autonomous territorial unit",
["bor"] = "borough",
["c"] = "negara",
["can"] = "canton",
["carea"] = "council area",
["cc"] = "constituent country",
["cdblock"] = "community development block",
["cdep"] = "Crown dependency",
["CDP"] = "census-designated place",
["cdp"] = "census-designated place",
["clcity"] = "county-level city",
["co"] = "county",
["cobor"] = "county borough",
["colcity"] = "county-level city",
["coll"] = "collectivity",
["comm"] = "community",
["cont"] = "benua",
["contr"] = "kawasan benua",
["contregion"] = "kawasan benua",
["cpar"] = "civil parish",
["damun"] = "direct-administered municipality",
["dep"] = "dependency",
["department capital"] = "departmental capital",
["dept"] = "department",
["depterr"] = "dependent territory",
["dist"] = "daerah",
["distmun"] = "district municipality",
["div"] = "division",
["emp"] = "empire",
["fpref"] = "French prefecture",
["gov"] = "governorate",
["govnat"] = "governorate",
["home-rule city"] = "home rule city",
["home-rule municipality"] = "home rule municipality",
["inner-city area"] = "inner city area",
["ires"] = "Indian reservation",
["isl"] = "pulau",
["lbor"] = "London borough",
["lga"] = "local government area",
["lgarea"] = "local government area",
["lgd"] = "local government district",
["lgdist"] = "local government district",
["metbor"] = "metropolitan borough",
["metcity"] = "metropolitan city",
["metmun"] = "metropolitan municipality",
["mtn"] = "mountain",
["mun"] = "municipality",
["mundist"] = "municipal district",
["nonmetropolitan county"] = "non-metropolitan county",
["obl"] = "oblast",
["okr"] = "okrug",
["p"] = "province",
["par"] = "parish",
["parmun"] = "parish municipality",
["pen"] = "peninsula",
["plcity"] = "prefecture-level city",
["plcolony"] = "Polish colony",
["pref"] = "prefecture",
["prefcity"] = "prefecture-level city",
["preflcity"] = "prefecture-level city",
["prov"] = "province",
["r"] = "region",
["range"] = "mountain range",
["rcm"] = "regional county municipality",
["rcomun"] = "regional county municipality",
["rdist"] = "regional district",
["rep"] = "republic",
["rhrom"] = "rural hromada",
["riv"] = "river",
["rmun"] = "regional municipality",
["robor"] = "royal borough",
["romp"] = "Roman province",
["runit"] = "regional unit",
["rurmun"] = "rural municipality",
["s"] = "negeri",
["sar"] = "special administrative region",
["shrom"] = "settlement hromada",
["spref"] = "subprefecture",
["sprefcity"] = "sub-prefectural city",
["sprovcity"] = "subprovincial city",
["submet city"] = "sub-metropolitan city",
["submetropolitan city"] = "sub-metropolitan city",
["sub-prefecture-level city"] = "sub-prefectural city",
["sub-provincial city"] = "subprovincial city",
["sub-provincial district"] = "subprovincial district",
["terr"] = "wilayah",
["terrauth"] = "territorial authority",
["twp"] = "township",
["twpmun"] = "township municipality",
["uauth"] = "unitary authority",
["ucomm"] = "unincorporated community",
["udist"] = "unitary district",
["uhrom"] = "urban hromada",
["uterr"] = "union territory",
["utwpmun"] = "united township municipality",
["val"] = "valley",
["vdc"] = "village development committee",
["vil"] = "village",
["voi"] = "voivodeship",
["wcomm"] = "Welsh community",
}
local no_link_def_article = {link = false, article = "the"}
local no_link_no_article = {link = false, article = false}
--[==[ var:
These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype
`large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the
value in the following table is a string, the qualifier will display according to the string. If the value is `true`,
the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be
linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain
those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating
`inland sea` as equivalent to `sea`.
]==]
export.placetype_qualifiers = {
-- generic qualifiers
["huge"] = false,
["tiny"] = false,
["large"] = false,
["big"] = false,
["mid-size"] = false,
["mid-sized"] = false,
["small"] = false,
["sizable"] = false,
["important"] = false,
["long"] = false,
["short"] = false,
["major"] = false,
["minor"] = false,
["high"] = false,
["tall"] = false,
["low"] = false,
["left"] = false, -- left tributary
["right"] = false, -- right tributary
["modern"] = false, -- for use in opposition to "ancient" in another definition
-- "former" qualifiers
["abandoned"] = true,
["ancient"] = true,
["deserted"] = true,
["extinct"] = true,
["former"] = false,
["historic"] = "historical",
["historical"] = true,
["medieval"] = true,
["mediaeval"] = true,
["ruined"] = true,
["traditional"] = true,
-- sea qualifiers
["coastal"] = true,
["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]]
["maritime"] = true,
["overseas"] = true,
["seaside"] = true,
["beachfront"] = true,
["beachside"] = true,
["riverside"] = true,
-- lake qualifiers
["freshwater"] = true,
["saltwater"] = true,
["endorheic"] = true,
["oxbow"] = true,
["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link
["tidal"] = true,
-- land qualifiers
["hilltop"] = true,
["hilly"] = true,
["insular"] = true,
["peninsular"] = true,
["chalk"] = true,
["karst"] = true,
["limestone"] = true,
["mountainous"] = true,
["mountaintop"] = true,
["alpine"] = true,
["volcanic"] = true, -- for an island
-- political status qualifiers
["autonomous"] = true,
["incorporated"] = true,
["special"] = true,
["unincorporated"] = true,
["coterminous"] = true,
-- monetary status/etc. qualifiers
["fashionable"] = true,
["wealthy"] = true,
["affluent"] = true,
["declining"] = true,
-- city vs. rural qualifiers
["urban"] = true,
["suburban"] = true,
["exurban"] = true,
["outlying"] = true,
["remote"] = true,
["rural"] = true,
["outback"] = true,
["inner"] = false,
["inner-city"] = true,
["central"] = false,
["outer"] = false,
-- land use qualifiers
["residential"] = true,
["agricultural"] = true,
["business"] = true,
["commercial"] = true,
["industrial"] = true,
-- business use qualifiers
["railroad"] = true,
["railway"] = true,
["farming"] = true,
["fishing"] = true,
["mining"] = true,
["logging"] = true,
["cattle"] = true,
-- tourism use qualifiers
["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne
["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne
["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne
-- religious qualifiers
["holy"] = true,
["sacred"] = true,
["religious"] = true,
["secular"] = true,
-- qualifiers for nonexistent places
["claimed"] = false,
["fictional"] = true,
["legendary"] = true,
["mythical"] = true,
["mythological"] = true,
-- directional qualifiers
["northern"] = false,
["southern"] = false,
["eastern"] = false,
["western"] = false,
["north"] = false,
["south"] = false,
["east"] = false,
["west"] = false,
["northeastern"] = false,
["southeastern"] = false,
["northwestern"] = false,
["southwestern"] = false,
["northeast"] = false,
["southeast"] = false,
["northwest"] = false,
["southwest"] = false,
-- seasonal qualifiers
["summer"] = true, -- e.g. for 'summer capital'
["winter"] = true,
-- legal status qualifiers
-- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]].
["official"] = true,
["unofficial"] = true,
["de facto"] = true, -- 'de facto capital'
["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link
["de jure"] = true, -- 'de jure capital'
["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link
-- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state'
-- misc. qualifiers
["planned"] = true,
["chartered"] = true,
["landlocked"] = true,
["uninhabited"] = true,
-- superlative qualifiers
["first"] = no_link_def_article,
["second"] = no_link_def_article, -- for "second largest" etc.
["third"] = no_link_def_article,
["fourth"] = no_link_def_article,
["last"] = no_link_def_article,
["only"] = no_link_def_article,
["sole"] = no_link_def_article,
["main"] = no_link_def_article,
["largest"] = no_link_def_article,
["biggest"] = no_link_def_article,
["smallest"] = no_link_def_article,
["shortest"] = no_link_def_article,
["longest"] = no_link_def_article,
["tallest"] = no_link_def_article,
["highest"] = no_link_def_article,
["lowest"] = no_link_def_article,
["leftmost"] = no_link_def_article,
["rightmost"] = no_link_def_article,
["innermost"] = no_link_def_article,
["outermost"] = no_link_def_article,
["northernmost"] = no_link_def_article,
["southernmost"] = no_link_def_article,
["westernmost"] = no_link_def_article,
["easternmost"] = no_link_def_article,
["northwesternmost"] = no_link_def_article,
["southwesternmost"] = no_link_def_article,
["northeasternmost"] = no_link_def_article,
["southeasternmost"] = no_link_def_article,
-- several/various
["several"] = no_link_no_article,
["various"] = no_link_no_article,
["numerous"] = no_link_no_article,
["multiple"] = no_link_no_article,
["many"] = no_link_no_article,
["other"] = no_link_no_article,
}
--[==[ var:
In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This
is overridden by `placetype_data` and `qualifier_to_placetype_equivs`.
]==]
export.former_qualifiers = {
["abandoned"] = {"FORMER"},
["ancient"] = {"ANCIENT", "FORMER"},
["former"] = {"FORMER"},
["extinct"] = {"FORMER"},
["historic"] = {"FORMER"},
["historical"] = {"FORMER"},
["medieval"] = {"ANCIENT", "FORMER"},
["mediaeval"] = {"ANCIENT", "FORMER"},
["ruined"] = {"ANCIENT", "FORMER"},
["traditional"] = {"FORMER"},
}
--[==[ var:
In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the
specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`.
]==]
export.qualifier_to_placetype_equivs = {
["fictional"] = "fictional location",
["legendary"] = "mythological location",
["mythical"] = "mythological location",
["mythological"] = "mythological location",
-- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands
-- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are
-- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital.
["claimed"] = "claimed political division",
}
--[==[ var:
Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse
mapping also exists.
]==]
export.placetype_to_capital_cat = {
["autonomous community"] = "autonomous community capitals",
["canton"] = "cantonal capitals",
["comarca"] = "comarca capitals",
["negara"] = "national capitals",
-- The following are not obviously different from 'county seats' but the latte terminology is used in the US.
["county"] = "county capitals",
["department"] = "departmental capitals",
["daerah"] = "district capitals",
["division"] = "division capitals",
["emirate"] = "emirate capitals",
["governorate"] = "governorate capitals",
["hromada"] = "hromada capitals",
["krai"] = "krai capitals",
["metropolitan city"] = "metropolitan city capitals",
["municipality"] = "municipal capitals",
["oblast"] = "oblast capitals",
["okrug"] = "okrug capitals",
["prefecture"] = "prefectural capitals",
["province"] = "provincial capitals",
["raion"] = "raion capitals",
["regency"] = "regency capitals",
["region"] = "regional capitals",
["regional unit"] = "regional unit capitals",
["republic"] = "republic capitals",
["negeri"] = "state capitals",
["wilayah"] = "territorial capitals",
["voivodeship"] = "voivodeship capitals",
}
--[==[ var:
This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple
ways that placenames can come to be preceded by "the":
# Listed here.
# Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code
just below the map.
# The placetype of the placename has `holonym_use_the = true` in its placetype_data.
# A regex in placename_the_re matches the placename.
Note that "the" is added only before the first holonym in a place description.
]==]
export.placename_article = {
-- This should only contain info that can't be inferred from [[Module:place/locations]].
["archipelago"] = {
["Cyclades"] = "the",
["Dodecanese"] = "the",
},
["negara"] = {
["Holy Roman Empire"] = "the",
},
["empire"] = {
["Holy Roman Empire"] = "the",
},
["pulau"] = {
["North Island"] = "the",
["South Island"] = "the",
},
["region"] = {
["Balkans"] = "the",
["Russian Far East"] = "the",
["Caribbean"] = "the",
["Caucasus"] = "the",
["Middle East"] = "the",
["New Territories"] = "the",
["North Caucasus"] = "the",
["South Caucasus"] = "the",
["West Bank"] = "the",
["Gaza Strip"] = "the",
},
["valley"] = {
["San Fernando Valley"] = "the",
},
}
--[==[ var:
Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all
holonyms, otherwise only the regexes for the holonym's placetype apply.
]==]
export.placename_the_re = {
-- We don't need entries for peninsulas, seas, oceans, gulfs or rivers
-- because they have holonym_use_the = true.
["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "},
["bay"] = {"^Bay of "},
["lake"] = {"^Lake of "},
["negara"] = {"^Republic of ", " Republic$"},
["republic"] = {"^Republic of ", " Republic$"},
["region"] = {" [Rr]egion$"},
["river"] = {" River$"},
["local government area"] = {"^Shire of "},
["county"] = {"^Shire of "},
["Indian reservation"] = {" Reservation", " Nation"},
["tribal jurisdictional area"] = {" Reservation", " Nation"},
}
--[==[ var:
If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of
holonyms for categorization (but not display) purposes.
]==]
export.cat_implications = {
["region"] = {
["Eastern Europe"] = {"benua/Europe"},
["Central Europe"] = {"benua/Europe"},
["Western Europe"] = {"benua/Europe"},
["South Europe"] = {"benua/Europe"},
["Southern Europe"] = {"benua/Europe"},
["Northern Europe"] = {"benua/Europe"},
["Northeast Europe"] = {"benua/Europe"},
["Northeastern Europe"] = {"benua/Europe"},
["Southeast Europe"] = {"benua/Europe"},
["Southeastern Europe"] = {"benua/Europe"},
["North Caucasus"] = {"benua/Europe"},
["South Caucasus"] = {"benua/Asia"},
["South Asia"] = {"benua/Asia"},
["Southern Asia"] = {"benua/Asia"},
["East Asia"] = {"benua/Asia"},
["Eastern Asia"] = {"benua/Asia"},
["Central Asia"] = {"benua/Asia"},
["West Asia"] = {"benua/Asia"},
["Western Asia"] = {"benua/Asia"},
["Southeast Asia"] = {"benua/Asia"},
["North Asia"] = {"benua/Asia"},
["Northern Asia"] = {"benua/Asia"},
["Anatolia"] = {"benua/Asia"},
["Asia Minor"] = {"benua/Asia"},
["Mesopotamia"] = {"benua/Asia"},
["North Africa"] = {"benua/Africa"},
["Central Africa"] = {"benua/Africa"},
["West Africa"] = {"benua/Africa"},
["East Africa"] = {"benua/Africa"},
["Southern Africa"] = {"benua/Africa"},
["Central America"] = {"benua/Central America"},
["Caribbean"] = {"benua/North America"},
["Polynesia"] = {"benua/Oceania"},
["Micronesia"] = {"benua/Oceania"},
["Melanesia"] = {"benua/Oceania"},
["Siberia"] = {"country/Russia", "benua/Asia"},
["Russian Far East"] = {"country/Russia", "benua/Asia"},
["South Wales"] = {"constituent country/Wales", "benua/Europe"},
["Balkans"] = {"benua/Europe"},
["West Bank"] = {"country/Palestine", "benua/Asia"},
["Gaza"] = {"country/Palestine", "benua/Asia"},
["Gaza Strip"] = {"country/Palestine", "benua/Asia"},
}
}
------------------------------------------------------------------------------------------
-- Category and display handlers --
------------------------------------------------------------------------------------------
local function city_type_cat_handler(data)
local entry_placetype = data.entry_placetype
local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities")
if not generic_before_non_cities then
internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" ..
" setting", entry_placetype)
end
local plural_entry_placetype = export.pluralize_placetype(entry_placetype)
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and not spec.is_former_place and not spec.is_city then
-- Categorize both in key, and in the larger polity that the key is part of, e.g. [[Hirakata]] goes in both
-- "Cities in Osaka Prefecture" and "Cities in Japan". (But don't do the latter if no_container_cat is set.)
local cap_plural_entry_placetype = ucfirst(plural_entry_placetype)
local retcats = {("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities,
export.get_prefixed_key(key, spec))}
if container_trail[1] and not spec.no_container_cat then
for _, container in ipairs(container_trail[1]) do
insert(retcats, ("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities,
export.get_prefixed_key(container.key, container.spec)))
end
end
return retcats
end
end
local function capital_city_cat_handler(data, non_city)
local holonym_placetype, holonym_placename, holonym_index, place_desc =
data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc
-- The first time we're called we want to return something; otherwise we will be called for later-mentioned
-- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in
-- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital
-- category/categories we add below.
local retcats
if not non_city and place_desc.holonyms then
for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do
local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename
retcats = city_type_cat_handler {
entry_placetype = "city",
holonym_placetype = h_placetype,
holonym_placename = h_placename,
holonym_index = h_index,
place_desc = place_desc,
}
if retcats then
break
end
end
end
if not retcats then
retcats = {}
end
-- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we
-- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State
-- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory'
-- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's
-- an entry for 'autonomous community').
local capital_cat = export.placetype_to_capital_cat[holonym_placetype]
if not capital_cat then
capital_cat = export.placetype_to_capital_cat[holonym_placetype:gsub("^.* ", "")]
end
if capital_cat then
capital_cat = ucfirst(capital_cat)
local inserted_specific_variant_cat = false
if holonym_index then
-- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern
-- where we use :also to specify that a given city is the capital at multiple surrounding levels.
local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index
for h_index = holonym_index, #place_desc.holonyms do
if place_desc.holonyms[h_index].placetype then
matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location {
holonym_placetype = place_desc.holonyms[h_index].placetype,
holonym_placename = place_desc.holonyms[h_index].unlinked_placename,
holonym_index = h_index,
place_desc = place_desc,
}
if matching_group then
matching_holonym_index = h_index
break
end
end
end
if matching_holonym_index == holonym_index then
if matching_container_trail[1] and not matching_spec.no_container_cat then
for _, container in ipairs(matching_container_trail[1]) do
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(container.key,
container.spec)))
inserted_specific_variant_cat = true
end
end
elseif matching_holonym_index then
-- Check to make sure that the holonym placetype we were called on is listed among the
-- divtypes of the location we found.
local function insert_specific_variant_if_possible(key, spec)
return export.get_equiv_placetype_prop(holonym_placetype, function(pt)
local plural_holonym_placetype = export.pluralize_placetype(pt)
local saw_matching_div
if spec.divs then
local divs = spec.divs
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) ~= "table" then
div = {type = div}
end
if plural_holonym_placetype == div.type then
saw_matching_div = true
break
end
end
end
if saw_matching_div then
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(key, spec)))
return true
end
return false
end)
end
if insert_specific_variant_if_possible(matching_key, matching_spec) then
inserted_specific_variant_cat = true
elseif not matching_spec.no_container_cat then
for _, containers in ipairs(matching_container_trail) do
local saw_no_container_cat = false
for _, container in ipairs(containers) do
if insert_specific_variant_if_possible(container.key, container.spec) then
inserted_specific_variant_cat = true
break
end
saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat
end
if inserted_specific_variant_cat or saw_no_container_cat then
break
end
end
end
end
else
-- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for
-- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing.
-- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to
-- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab.
-- Possibly we can just skip this case entirely.
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and container_trail[1] and not spec.no_container_cat then
for _, container in ipairs(container_trail[1]) do
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(container.key,
container.spec)))
inserted_specific_variant_cat = true
end
end
end
if not inserted_specific_variant_cat then
insert(retcats, capital_cat)
end
else
-- We didn't recognize the holonym placetype; just put in 'Capital cities'.
insert(retcats, "Capital cities")
end
return retcats
end
--[=[
This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used
in two ways:
# To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and
[[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym.
# To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym
description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this
case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments,
administrative regions, and for the entire country, and for example we only want to categorize a demonym into
[[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym
invocation only adds the most specific holonym category and not the category of any containing polity (hence if we
add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]).
This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston`
as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and
[[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities
having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]],
[[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing
polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`).
Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the
mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions
Ohio and a holonym for a Columbus in a different country is encountered, because of the function
`augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered.
The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding
language code).
]=]
local function generic_place_cat_handler(data)
local from_demonym = data.from_demonym
local retcats = {}
local function insert_retkey(key, spec)
if from_demonym then
insert(retcats, key)
else
insert(retcats, ("Tempat di %s"):format(export.get_prefixed_key(key, spec)))
end
end
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group then
if not spec.no_generic_place_cat then
-- This applies to continents and continental regions.
insert_retkey(key, spec)
end
-- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in
-- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when
-- no_container_cat is set (e.g. for 'United Kingdom').
if not spec.no_container_cat then
for _, container_set in ipairs(container_trail) do
local stop_adding_containers = false
for _, container in ipairs(container_set) do
if not container.spec.no_generic_place_cat then
insert_retkey(container.key, container.spec)
end
if container.spec.no_container_cat then
stop_adding_containers = true
end
end
if stop_adding_containers then
break
end
end
end
return retcats
end
end
--[==[
Special category handler run for all placetypes that checks for specified division placetypes of known locations and
categorizes appropriately.
]==]
function export.political_division_cat_handler(data)
if data.from_demonym then
return
end
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group then
local divlists = {}
if spec.divs then
insert(divlists, spec.divs)
end
if spec.addl_divs then
insert(divlists, spec.addl_divs)
end
for _, divlist in ipairs(divlists) do
if type(divlist) ~= "table" then
divlist = {divlist}
end
for _, div in ipairs(divlist) do
if type(div) == "string" then
div = {type = div}
end
local sgdiv = export.maybe_singularize_placetype(div.type) or div.type
local prep = div.prep or "di"
local cat_as = div.cat_as or div.type
if type(cat_as) ~= "table" then
cat_as = {cat_as}
end
if not export.placetype_data[sgdiv] then
internal_error("Placetype %s associated with known location key %s and data %s not found in " ..
"`placetype_data`", sgdiv, key, spec)
end
if sgdiv == data.entry_placetype then
local retcats = {}
for _, pt_cat in ipairs(cat_as) do
if type(pt_cat) == "string" then
pt_cat = {type = pt_cat}
end
local pt_prep = pt_cat.prep or prep
insert(retcats, ucfirst(pt_cat.type) .. " " .. pt_prep .. " " ..
export.get_prefixed_key(key, spec))
end
return retcats
end
end
end
end
end
--[==[
This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any
foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value
in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the
modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the
entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the
country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized
into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to
make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is
intended for Newark, New Jersey).
]==]
function export.get_bare_categories(args, overall_place_spec)
local bare_cats = {}
local place_descs = overall_place_spec.descs
local possible_placetypes_by_place_desc = {}
for i, place_desc in ipairs(place_descs) do
possible_placetypes_by_place_desc[i] = {}
for _, placetype in ipairs(place_desc.placetypes) do
if not export.placetype_is_ignorable(placetype) then
local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true})
for _, equiv in ipairs(equivs) do
insert(possible_placetypes_by_place_desc[i], equiv.placetype)
end
end
end
end
local function check_term(term)
-- Treat Wikipedia links like local ones.
term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[")
term = export.remove_links_and_html(term)
term = term:gsub("^the ", "")
for i, place_desc in ipairs(place_descs) do
-- Iterate over all matching locations in case there are multiple, as with Delhi defined as
-- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}.
for group, key, spec, container_trail in export.iterate_matching_holonym_location {
holonym_placetype = possible_placetypes_by_place_desc[i],
holonym_placename = term,
place_desc = place_desc,
} do
insert(bare_cats, key)
end
end
end
-- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)?
-- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There
-- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the
-- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The
-- advantage of checking when the language isn't English is we catch those places that fail to give an English
-- translation but where the translation happens to be the same as the other-language spelling. However, I don't
-- know how often this situation occurs.
check_term(args.pagename or mw.title.getCurrentTitle().subpageText)
for _, t in ipairs(args.t) do
check_term(t)
end
local function check_termobj_list(terms)
for _, term in ipairs(terms) do
if term.eq then
check_term(term.eq)
end
if term.alt or term.term then
check_term(term.alt or term.term)
end
end
end
for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do
local arg = extra_info_terms.arg
if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then
check_termobj_list(extra_info_terms.terms)
end
end
for _, directive in ipairs(overall_place_spec.directives) do
check_termobj_list(directive.terms)
end
return bare_cats
end
--[==[
This is used to augment the holonyms associated with a place description with the containing polities. For example,
given the following:
`# {{tl|place|en|subprefecture|pref/Hokkaido}}.`
We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]].
To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms.
]==]
function export.augment_holonyms_with_container(place_descs)
for _, place_desc in ipairs(place_descs) do
if place_desc.holonyms then
-- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their
-- appropriate position. We don't just put them at the end because some holonyms have use the `:also`
-- modifier, which causes category processing to restart at that point after generating categories for a
-- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with
-- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy
-- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's
-- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g.
-- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the
-- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If
-- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude
-- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`),
-- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar
-- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration
-- rather than modifying the place description once at athe end.
for i = #place_desc.holonyms, 1, -1 do
local holonym = place_desc.holonyms[i]
if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then
local group, key, spec, container_trail = export.find_matching_holonym_location {
holonym_placetype = holonym.placetype,
holonym_placename = holonym.unlinked_placename,
holonym_index = i,
place_desc = place_desc,
}
if group and container_trail[1] and not spec.no_auto_augment_container then
local augmented_holonyms = {}
for j = 1, i do
insert(augmented_holonyms, place_desc.holonyms[j])
end
for _, containers in ipairs(container_trail) do
local any_no_auto_augment_container = false
for _, container in ipairs(containers) do
any_no_auto_augment_container = any_no_auto_augment_container or
container.spec.no_auto_augment_container
local containing_type = container.spec.placetype
if type(containing_type) == "table" then
-- If the containing type is a list, use the first element as the canonical variant.
containing_type = containing_type[1]
end
local full_container_placename, elliptical_container_placename =
m_locations.key_to_placename(container.group, container.key)
-- Don't side-effect holonyms while processing them.
local new_holonym = {
-- By the time we run, the display has already been generated so we don't need to
-- set display_placename.
placetype = containing_type,
-- placename_to_key() for the group should correctly handle both full and elliptical
-- placenames, but the full placename seems less likely to be ambiguous. FIXME: We
-- should just store the key directly and use it when available to avoid having to
-- convert key to placename and back to key.
unlinked_placename = full_container_placename,
-- Indicate that this is an augmented holonym, and was derived from the specified
-- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms
-- derived from holonyms that are different from the holonym we're searching for but
-- of the same placetype. This is to correctly handle a situation like
-- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here,
-- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and
-- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from
-- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to
-- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match
-- in find_matching_holonym_location() because of the mismatch between augmented
-- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later
-- calls to find_matching_holonym_location() fail to match `Gard` (and likewise
-- `Ardèche`) against any known location. To deal with this, we mark augmented
-- holoynms as being augmented due to a source holonym, and when processing a given
-- holonym, ignore augmented holonyms from other holonyms of the same placetype.
-- The restriction to the same placetype is so that `Birmingham` still gets
-- correctly disambiguated to Birmingham, England in the example given above near
-- the top of this function, using the augmented holonym `c/United Kingdom` added by
-- the specified `cc/England` (whose placetype `constituent country` differs from
-- the placetype `city` of Birmingham).
augmented_from_holonym = holonym,
}
insert(augmented_holonyms, new_holonym)
-- But it is safe to modify other parts of the place_desc.
export.key_holonym_into_place_desc(place_desc, new_holonym)
end
if any_no_auto_augment_container then
break
end
end
for j = i + 1, #place_desc.holonyms do
insert(augmented_holonyms, place_desc.holonyms[j])
end
place_desc.holonyms = augmented_holonyms
end
end
end
end
end
end
-- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political
-- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city
-- neighborhoods or larger geographical areas/regions. We handle this as follows:
-- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if
-- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that
-- categorizes into [[:Category|Districts of Maharashtra, India]].
-- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called
-- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g.
-- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.)
-- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set.
-- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if
-- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize
-- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "di" not "of", and
-- note the spelling "neighborhoods" because we're in the US.)
-- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're
-- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or
-- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no
-- categorization.
local function district_neighborhood_cat_handler(data)
local function get_plural_entry_placetype(location_spec, container_trail)
if data.entry_placetype == "suburb" then
return "Suburbs"
else
-- Check for `british_spelling` setting on the spec itself or any container.
local uses_british_spelling = location_spec.british_spelling
if uses_british_spelling == nil and container_trail then
for _, container_set in ipairs(container_trail) do
local must_outer_break = false
for _, container in ipairs(container_set) do
if container.spec.british_spelling ~= nil then
uses_british_spelling = container.spec.british_spelling
must_outer_break = true
break
end
end
if must_outer_break then
break
end
end
end
return uses_british_spelling and "Neighbourhoods" or "Neighborhoods"
end
end
-- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire,
-- etc.)
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and not spec.is_former_place and spec.is_city then
return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)}
end
-- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like
-- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.)
local has_neighborhoods
local entry_placetype = data.entry_placetype
if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then
has_neighborhoods = true
else
-- Otherwise, make sure the current holonym is city-like.
has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt)
return export.get_placetype_prop(pt, "has_neighborhoods")
end, {continue_on_nil_only = true})
end
if has_neighborhoods then
-- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written
-- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}}
-- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need
-- to start with the current holonym, which is especially important for neighborhoods and suburbs that
-- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously
-- we skipped the first/current holonym.)
for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc,
data.holonym_index) do
local other_holonym_data = {
holonym_placetype = other_holonym.placetype,
holonym_placename = other_holonym.unlinked_placename,
holonym_index = other_holonym_index,
place_desc = data.place_desc,
}
local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data)
if group and not spec.is_former_place then
return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") ..
export.get_prefixed_key(key, spec)}
end
end
end
end
function export.check_already_seen_string(holonym_placename, already_seen_strings)
local canon_placename = ulower(m_links.remove_links(holonym_placename))
if type(already_seen_strings) ~= "table" then
already_seen_strings = {already_seen_strings}
end
for _, already_seen_string in ipairs(already_seen_strings) do
if canon_placename:find(already_seen_string) then
return true
end
end
return false
end
-- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display
-- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already.
-- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or
-- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym
-- placename, ignoring case and links. If the prefix isn't already present, we create a link that
-- uses the raw form as the link destination but the prefixed form as the display form, unless the
-- holonym already has a link in it, in which case we just add the prefix.
local function prefix_display_handler(prefix, holonym_placename, already_seen_strings)
if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then
return holonym_placename
end
if holonym_placename:find("%[%[") then
return prefix .. " " .. holonym_placename
end
return prefix .. " [[" .. holonym_placename .. "]]"
end
-- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms.
-- Works identically to prefix_display_handler but for suffixes instead of prefixes.
local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link)
if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then
return holonym_placename
end
if holonym_placename:find("%[%[") then
return holonym_placename .. " " .. suffix
end
if include_suffix_in_link then
return "[[" .. holonym_placename .. " " .. suffix .. "]]"
else
return "[[" .. holonym_placename .. "]] " .. suffix
end
end
-- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed
-- with "borough".
local function borough_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if m_locations.new_york_boroughs[unlinked_placename] then
-- Hack: don't display "borough" after the names of NYC boroughs
return holonym_placename
end
return suffix_display_handler("borough", holonym_placename)
end
local function county_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
-- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]".
if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or
m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then
return prefix_display_handler("County", holonym_placename)
end
-- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County".
if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then
return suffix_display_handler("County", holonym_placename)
end
-- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County".
if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then
return suffix_display_handler("County", holonym_placename)
end
-- FIXME, we need the same for US counties but need to key off the country, not the specific county.
-- Others are displayed as-is.
return holonym_placename
end
-- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture".
-- Others are displayed as e.g. "[[Fthiotida]] prefecture".
local function prefecture_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture"
return suffix_display_handler(suffix, holonym_placename)
end
-- Display handler for provinces of Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized
-- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is.
local function province_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if
m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or
m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or
m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or
m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or
m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or
m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or
m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then
return suffix_display_handler("Province", holonym_placename)
end
return holonym_placename
end
-- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is.
local function state_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if m_locations.nigeria_states["Negeri " .. unlinked_placename .. ", Nigeria"] then
return suffix_display_handler("Negeri", holonym_placename)
end
return holonym_placename
end
-- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]].
local function voivodesip_display_handler(holonym_placetype, holonym_placename)
return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link")
end
------------------------------------------------------------------------------------------
-- Placetype data --
------------------------------------------------------------------------------------------
--[==[ var:
Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are
placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value
is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form
`Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are
used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the
specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories
like [[:Category:States and territories of Australia]]).
Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of
specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the
placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are
wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed
directly in the placetype data; everything else is handled through category handlers, either per-placetype or special
(such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate
categories is described at the top of [[Module:place]].
There are several recognized property keys, of various types:
1. The following link-related property keys are recognized:
* `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the
placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized
placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in
categories). The possible values are:
*# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is
converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a
two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`.
*# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g.
`<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the
placetype is given plural.
*# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies
`"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or
`<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified.
*# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it
will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as
`<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given.
*# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is
called on the string, which will correctly pluralize most strings, including those with links in them. (If there
are multiple links, the display form of the last link is pluralized.)
*# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as
an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with
the qualifiers `former`, `ancient`, `historical` and such.
* `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of
the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the
value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays
as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if
this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs
especially with multiword placetypes where something other than the last word is pluralized. An example is
`town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses
`link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian
Bokmål word, and template calls aren't currently permitted in link strings), along with
`plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`.
* `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to
the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only
placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of
`category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it,
spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the
value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which
just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a
separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which
clarifies in the category description what a polity is.
* `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories
where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides
`category_link` for this type of category.
* `category_link_before_noncity`: Spec indicating how to display qualified categories of the form
` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides
`category_link` for this type of category.
* `category_link_before_city`: Spec indicating how to display qualified categories of the form
` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for
this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol>
<li>`link = true`</li>
<li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li>
<li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li>
</ol> This has the effect of making the entry placetype `neighborhood` display as just
`<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as
`<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like
`Neighborhoods in Illinois, USA` displays as
`<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`.
* `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value
(a message indicating what to use instead) is displayed in the error message.
* `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value
(a message indicating what to use instead) is displayed in the error message.
2. There is currently one fallback-related property key recognized:
* `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories
get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets
`preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi`
(whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex
example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that
checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under
[[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for
the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if
`c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these
categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be
categorized as e.g. [[:Category:Geographic and cultural areas of England]].
3. There is currently one property to control irregular plurals of placetypes:
* `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in
[[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`,
`-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent;
for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized
as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value
even when the default pluralization algorithm works correctly, if the default singularization algorithm won't
correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`).
4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those
categories:
* `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by
a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated
alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype
`village`); (c) to determine whether to add a parent category `political divisions of specific countries` to
qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are:
*# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire.
*# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement.
*# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a
settlement, such as wards and barangays.
*# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an
unincorporated community, farm or neighborhood.
*# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital
any more.
*# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc.
*# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university,
metro station, park or the like.
*# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary
greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`,
etc. qualifier has no effect on the category of these placetypes.
*# `generic place`: a place that isn't further qualified into any specific subtype.
* `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`,
`ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of
`dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc.
qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class`
is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those
in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers
(one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified
qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are
looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map
`medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes
`ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by
`get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default
category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where
`kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data`
for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is
used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data`
but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal
error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have
an entry for `greenhouse`), we just track the occurrence and end up not categorizing.
* `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the
placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for
placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`,
using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]].
* `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent`
just above).
* `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of
`bare_category_parent` if it is a string.
* `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or
`ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that
always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is
a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the
implementation is the same.
* `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the
placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which
category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`,
`neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like
`Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like
`Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized
city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers
iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or
more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a
political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but
by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the
resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The
return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the
holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype
with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields:
** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an
entry in `placetype_data` but may not be the original placetype given by the user);
** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed;
** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME:
we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms);
** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]];
** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or
{{tl|demonym-noun}}, instead of being triggered by {{tl|place}}.
* `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the
`district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `;
see the section just above on `cat_handler`.
5. The following preposition-related property keys are recognized:
* `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"di"`.
* `generic_before_non_cities`: If specified, the appropriate category description handler in
[[Module:category tree/topic cat/data/Places]] will recognize categories of the form
` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This
is used to generate descriptions for categories added by category handlers and by explicit category specs in the
placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify
a value for `class` so that the category tree code can determine whether it's a political or non-political division.
* `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities.
6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype:
* `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values
are:
*# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly
follows an entry placetype);
*# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple);
*# `"suf"` (the holonym will display as `Holonym placetype`);
*# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized).
* `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym.
Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly
using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype
`administrative region` specifies `suffix = "region"`.
* `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym.
* `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the
holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take
precedence.
* `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix
requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies
`affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies
`no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified,
without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word.
* `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym).
Its return value is a string specifying the display form of the holonym.
7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms
of the specified placetype.
* `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype.
* `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry
placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article
`"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins
with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent
placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype
specified.
* `holonym_use_the`: Use `"the"` before holonyms of this placetype.
'''NOTE:'''
# The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which
must have either `link` or `category_link` specified.
# Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a
fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the
fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either
directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this
placetype.
# It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back
to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in
`placetype_data` or an internal error occurs.
]==]
export.placetype_data = {
--[=[
If you need to sort the following, do this (using Vim):
1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line
entries.
2. Make sure the table uses tabs everywhere for indent, and not spaces.
3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence:
:'a,.s/\n/\\n/g
:s/\\n\(\t\[\)/\r\1/g
The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while
the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to
a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one
command.)
4. Execute the following to sort:
:'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //'
Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station"
before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the
quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by
` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern).
5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing
:'a,.s/\\n/\r/g
Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but
to insert a newline in the right sode of a replacement you must use \r.
]=]
["*"] = {
link = false,
cat_handler = generic_place_cat_handler,
},
["administrative atoll"] = {
-- Maldives
link = "+w:administrative divisions of the Maldives",
preposition = "of",
class = "subtatanegara",
},
["administrative capital"] = {
link = "w",
fallback = "capital city",
},
["administrative center"] = {
link = "w",
fallback = "non-city capital",
},
["administrative centre"] = {
link = "w",
fallback = "administrative center",
},
["administrative county"] = {
link = "w",
fallback = "county",
},
["administrative district"] = {
link = "w",
fallback = "daerah",
},
["administrative headquarters"] = {
link = "separately",
fallback = "administrative centre",
},
["administrative region"] = {
link = true,
preposition = "of",
suffix = "region", -- but prefix is still "administrative region (of)"
fallback = "region",
class = "subtatanegara",
},
["administrative seat"] = {
link = "w",
fallback = "administrative centre",
},
["administrative territory"] = {
link = "separately",
preposition = "of",
suffix = "wilayah", -- but prefix is still "administrative territory (of)"
fallback = "wilayah",
class = "subtatanegara",
},
["administrative unit"] = {
-- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an
-- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term
-- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types
-- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad
-- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need
-- to include this so that it can be used as a placetype for Albania, categorizing as communes.
link = "w",
class = "subtatanegara",
},
["administrative village"] = {
link = "w",
preposition = "of",
has_neighborhoods = true,
class = "settlement",
},
["aimag"] = {
-- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province;
-- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district.
link = "w",
fallback = "prefecture",
},
["airport"] = {
link = true,
class = "man-made structure",
default = {true},
},
["alliance"] = {
link = true,
fallback = "confederation",
},
["archipelago"] = {
link = true,
fallback = "pulau",
},
["area"] = {
link = true,
preposition = "of",
fallback = "kawasan geografi dan budaya",
-- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former
-- when categorizing 'Areas' but the latter when handling e.g. 'historical area'.
class = "subtatanegara",
former_type = "kawasan geografi",
cat_handler = district_neighborhood_cat_handler,
},
["arm"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
default = {"Laut"},
},
["arrondissement"] = {
link = true,
preposition = "of",
-- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions
-- of departments or provinces. Need to conditionalize on the country for both of the following.
class = "subtatanegara",
has_neighborhoods = true,
},
["associated province"] = {
link = "separately",
fallback = "province",
},
["atoll"] = {
-- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to
-- conditionalize `class` on the country. See also `administrative atoll`.
link = true,
class = "sifat semula jadi",
bare_category_parent = "pulau",
default = {true},
},
["autonomous city"] = {
link = "w",
preposition = "of",
fallback = "city",
has_neighborhoods = true,
},
["autonomous community"] = {
-- Spain; refers to regional entities, not village-like entities, as might be expected from "community"
link = true,
preposition = "of",
class = "subtatanegara",
},
["autonomous island"] = {
-- Comoros; seems like an administrative atoll of the Maldives.
link = "+w:autonomous islands of Comoros",
preposition = "of",
class = "subtatanegara",
},
["autonomous oblast"] = {
link = true,
preposition = "of",
affix_type = "Suf",
no_affix_strings = "oblast",
class = "subtatanegara",
},
["autonomous okrug"] = {
link = true,
preposition = "of",
affix_type = "Suf",
no_affix_strings = "okrug",
class = "subtatanegara",
},
["autonomous prefecture"] = {
link = true,
fallback = "prefecture",
},
["autonomous province"] = {
link = "w",
fallback = "province",
},
["autonomous region"] = {
link = "w",
preposition = "of",
fallback = "administrative region",
-- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region"
-- if the user writes 'ar:Suf/Tibet'.
affix = "autonomous region",
},
["autonomous republic"] = {
link = "w",
preposition = "of",
class = "subtatanegara",
},
["autonomous territorial unit"] = {
-- Moldova; only two of them, one for Gagauzia and one for Transnistria.
link = "w",
preposition = "of",
class = "subtatanegara",
},
["autonomous territory"] = {
link = "w",
fallback = "dependent territory",
},
["bailiwick"] = {
-- Jersey, etc.
link = true,
fallback = "tatanegara",
},
["barangay"] = {
-- Philippines
link = true,
class = "settlement",
-- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use
-- some of the properties of a neighborhood.
fallback = "neighborhood",
},
["barrio"] = {
-- Spanish-speaking countries; Philippines
link = true,
-- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city.
-- `class` will need to conditionalize on the country to be completely correct.
fallback = "neighborhood",
},
["basin"] = {
link = true,
fallback = "lake",
},
["bay"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["beach"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"air"},
default = {true},
},
["beach resort"] = {
link = "w",
fallback = "resort town",
},
["bishopric"] = {
link = true,
fallback = "tatanegara",
},
["badan air!"] = {
-- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to
-- straighten out the type vs. name vs. related-to issue.
category_link = "[[body of water|bodies of water]]",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "ekosistem", "air"},
},
["borough"] = {
link = true,
preposition = "of",
display_handler = borough_display_handler,
has_neighborhoods = true,
-- "former borough" could be a former settlement or a former part of a city but seems more likely to
-- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this
-- properly.
class = "subtatanegara",
-- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger.
},
["borough seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["branch"] = {
link = true,
preposition = "of",
fallback = "river",
},
["bridge"] = {
link = true,
class = "man-made structure",
default = {"Named bridges"},
},
["building"] = {
link = true,
class = "man-made structure",
default = {"Named buildings"},
},
["built-up area"] = {
link = "w",
fallback = "area",
},
["burgh"] = {
link = true,
fallback = "borough",
},
["business park"] = {
link = true,
fallback = "park",
},
["caliphate"] = {
link = true,
fallback = "tatanegara",
},
["canton"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["cape"] = {
link = true,
fallback = "headland",
},
["capital"] = {
link = true,
fallback = "capital city",
},
["capital city"] = {
link = true,
category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
bare_category_parent = "cities",
cat_handler = capital_city_cat_handler,
default = {true},
-- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}}
-- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't
-- match against the placetype 'city' of Melbourne.
fallback = "city",
},
["caplc"] = {
link = "[[capital]] and [[large]]st [[city]]",
plural_link = false,
fallback = "capital city",
},
["captaincy"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["caravan city"] = {
link = "w",
fallback = "city",
class = "settlement",
inherently_former = {"ANCIENT", "FORMER"},
},
["castle"] = {
link = true,
fallback = "building",
},
["cathedral city"] = {
link = true,
fallback = "city",
},
["cattle station"] = {
-- Australia
link = true,
fallback = "farm",
},
["census area"] = {
link = true,
affix_type = "Suf",
has_neighborhoods = true,
class = "non-admin settlement",
},
["census-designated place"] = {
-- United States
link = true,
class = "non-admin settlement",
},
["census division"] = {
-- Canada
link = "w",
preposition = "of",
class = "subtatanegara",
},
["census town"] = {
link = "w",
fallback = "town",
},
["central business district"] = {
link = true,
fallback = "neighborhood",
},
["cercle"] = {
-- Mali
link = "+w:cercles of Mali",
preposition = "of",
class = "subtatanegara",
},
["ceremonial county"] = {
link = true,
fallback = "county",
},
["chain of islands"] = {
link = "[[chain]] of [[island]]s",
plural = "chains of islands",
plural_link = "[[chain]]s of [[island]]s",
fallback = "pulau",
},
["channel"] = {
link = true,
fallback = "strait",
},
["charter community"] = {
-- Northwest Territories, Canada
link = "w",
fallback = "village",
},
["city"] = {
link = true,
generic_before_non_cities = "di",
has_neighborhoods = true,
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["city-state"] = {
link = true,
category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]",
has_neighborhoods = true,
class = "settlement",
["benua/*"] = {"City-states", "Cities in +++", "Countries in +++", "National capitals"},
default = {"City-states", "Cities", "Countries", "National capitals"},
},
["civil parish"] = {
-- Mostly England; similar to municipalities
link = true,
preposition = "of",
affix_type = "suf",
has_neighborhoods = true,
class = "subtatanegara",
},
["claimed political division"] = {
link = "[[claim]]ed [[political]] [[division]]",
class = "subtatanegara",
default = {true},
},
["co-capital"] = {
link = "[[co-]][[capital]]",
fallback = "capital city",
},
["coal city"] = {
link = "+w:coal town",
fallback = "city",
},
["coal town"] = {
link = "w",
fallback = "town",
},
["collectivity"] = {
link = "w",
preposition = "of",
-- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities)
class = "subtatanegara",
},
["colony"] = {
link = true,
fallback = "dependent territory",
},
["comarca"] = {
-- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of
-- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it
-- sits between municipalities and provinces, something like a county or district.
link = true,
preposition = "of",
class = "subtatanegara",
},
["commandery"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"ANCIENT", "FORMER"},
},
["commonwealth"] = {
link = true,
preposition = "of",
-- No default; applies specifically to Puerto Rico
class = "subtatanegara",
},
["commune"] = {
link = true,
fallback = "municipality",
},
["community"] = {
link = true,
category_link = "[[community|communities]] of all sizes",
fallback = "village",
},
["community development block"] = {
-- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be
-- neighborhoods so I'm not setting `has_neighborhoods` for now
link = "w",
affix_type = "suf",
no_affix_strings = "block",
class = "subtatanegara",
},
["comune"] = {
-- Italy, Switzerland
link = true,
fallback = "municipality",
},
["condominium"] = {
link = true,
fallback = "tatanegara",
},
["confederacy"] = {
link = true,
fallback = "confederation",
},
["confederation"] = {
link = true,
fallback = "tatanegara",
},
["constituency"] = {
-- currently we have them as political divisions of Namibia but many countries have them
link = true,
preposition = "of",
class = "subtatanegara",
},
["constituent country"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["constituent part"] = {
link = "separately",
preposition = "of",
class = "subtatanegara",
},
["constituent republic"] = {
-- Of Russia, Yugoslavia, etc.
link = "separately",
preposition = "of",
class = "subtatanegara",
},
["counties and county-level cities!"] = {
-- This is used when grouping counties and county-level cities under prefecture-level cities in China.
category_link = "[[county|counties]] and [[county-level city|county-level cities]]",
class = "subtatanegara",
},
["benua"] = {
link = true,
category_link = false, -- can't occur as a bare category
class = "sifat semula jadi",
default = {"Benua dan kawasan benua"},
},
["kawasan benua"] = {
link = "separately",
category_link = false, -- can't occur as a bare category
class = "kawasan geografi",
fallback = "benua",
},
["benua dan kawasan benua!"] = {
category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])",
class = "kawasan geografi",
},
["council area"] = {
link = true,
-- in Scotland; similar to a county
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["negara"] = {
link = true,
class = "tatanegara",
["benua/*"] = {true, "Countries"},
default = {true},
},
["country-like entities!"] = {
category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]",
class = "tatanegara",
},
["county"] = {
link = true,
preposition = "of",
display_handler = county_display_handler,
class = "subtatanegara",
},
["county borough"] = {
link = true,
-- in Wales; similar to a county
preposition = "of",
affix_type = "suf",
fallback = "borough",
class = "subtatanegara",
},
["county seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["county town"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
fallback = "town",
has_neighborhoods = true,
class = "capital",
},
["county-administered city"] = {
-- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city.
-- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city.
link = "w",
fallback = "city",
has_neighborhoods = true,
class = "settlement",
},
["county-controlled city"] = {
-- Taiwan
link = "w",
fallback = "county-administered city",
},
["county-level city"] = {
-- PR China
link = "w",
fallback = "prefecture-level city",
},
["crater lake"] = {
link = true,
fallback = "lake",
},
["creek"] = {
link = true,
fallback = "stream",
},
["Crown colony"] = {
link = "+crown colony",
fallback = "crown colony",
},
["crown colony"] = {
link = true,
fallback = "colony",
},
["Crown dependency"] = {
link = true,
fallback = "dependent territory",
},
["crown dependency"] = {
link = true,
fallback = "dependent territory",
},
["cultural area"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["cultural region"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["delegation"] = {
-- Tunisia
link = "+w:delegations of Tunisia",
preposition = "of",
class = "subtatanegara",
},
["department"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["departmental capital"] = {
link = "separately",
fallback = "capital city",
},
["dependency"] = {
link = true,
fallback = "dependent territory",
},
["dependent territory"] = {
link = "w",
preposition = "of",
class = "subtatanegara",
former_type = "dependent territory",
bare_category_parent = "pembahagian politik",
["negara/*"] = {true},
default = {true},
},
["desert"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"ekosistem"},
default = {true},
},
["deserted mediaeval village"] = {
link = "w",
fallback = "deserted medieval village",
},
["deserted medieval village"] = {
link = "w",
fallback = "ANCIENT settlement",
},
["direct-administered municipality"] = {
-- China
link = "+w:direct-administered municipalities of China",
fallback = "municipality",
},
["direct-controlled municipality"] = {
-- several countries
link = "w",
fallback = "municipality",
},
["distributary"] = {
link = true,
preposition = "of",
fallback = "river",
},
["daerah"] = {
link = true,
preposition = "di",
affix_type = "suf",
-- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to
-- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class
-- is "settlement" or "subtatanegara".
class = "subtatanegara",
cat_handler = district_neighborhood_cat_handler,
-- No default. Countries for which districts are political divisions will get entries.
},
["districts and autonomous regions!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Portugal.
category_link = "[[district]]s and [[autonomous region]]s",
class = "subtatanegara",
},
["districts and autonomous territorial units!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Moldova.
category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s",
class = "subtatanegara",
},
["district capital"] = {
link = "separately",
fallback = "capital city",
},
["district headquarters"] = {
link = "separately",
fallback = "administrative centre",
},
["district municipality"] = {
-- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in
-- South Africa, district municipalities group local municipalities and hence won't have neighborhoods.
link = "w",
preposition = "of",
affix_type = "suf",
no_affix_strings = {"daerah", "municipality"},
fallback = "municipality",
class = "subtatanegara",
},
["division"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["division capital"] = {
link = "separately",
fallback = "capital city",
},
["dome"] = {
link = true,
fallback = "mountain",
},
["dormant volcano"] = {
link = true,
fallback = "volcano",
},
["duchy"] = {
link = true,
fallback = "tatanegara",
},
["emirate"] = {
link = true,
preposition = "of",
-- FIXME: Can be subpolities (of the United Arab Emirates).
fallback = "tatanegara",
},
["empire"] = {
link = true,
fallback = "tatanegara",
},
["enclave"] = {
link = true,
preposition = "of",
-- Enclaves can theoretically be any size but assume a subpolity.
class = "subtatanegara",
},
["entity"] = {
-- Bosnia and Herzegovina
link = "+w:entities of Bosnia and Herzegovina",
preposition = "of",
class = "subtatanegara",
},
["escarpment"] = {
link = true,
fallback = "mountain",
},
["ethnographic region"] = {
-- used in Lithuania
link = "+w:ethnographic regions of Lithuania",
fallback = "kawasan geografi dan budaya",
},
["exclave"] = {
link = true,
preposition = "of",
-- exclaves can theoretically be any size but assume a subpolity.
class = "subtatanegara",
},
["external territory"] = {
link = "separately",
fallback = "dependent territory",
},
["farm"] = {
link = true,
class = "non-admin settlement",
default = {"Farms and ranches"},
},
["farms and ranches!"] = {
category_link = "[[farm]]s and [[ranch]]es",
class = "non-admin settlement",
},
["federal city"] = {
link = "w",
preposition = "of",
fallback = "city",
},
["federal district"] = {
link = true,
preposition = "of",
-- Might have neighborhoods as federal districts are often cities (e.g. Mexico City)
has_neighborhoods = true,
class = "settlement",
},
["federal subject"] = {
-- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais,
-- autonomous okrugs and autonomous oblasts).
link = "w",
preposition = "of",
class = "subtatanegara",
},
["wilayah persekutuan"] = {
link = "w",
fallback = "wilayah",
},
["fictional location"] = {
link = "separately",
former_type = "!",
class = "hypothetical location",
bare_category_parent = "tempat",
default = {true},
},
["First Nations reserve"] = {
-- Canada
link = "[[First Nations]] [[w:Indian reserve|reserve]]",
-- Wikipedia uses "Indian reserve"; presumably that is the legal term
fallback = "Indian reserve",
class = "subtatanegara",
},
["fjord"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["footpath"] = {
link = true,
fallback = "road",
},
["hutan"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"ekosistem", "perhutanan"},
default = {true},
},
["fort"] = {
link = true,
fallback = "building",
},
["fortress"] = {
link = true,
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- fortresses -> fortresse, so put an entry here to ensure we singularize correctly.
plural = "fortresses",
fallback = "building",
},
["frazione"] = {
link = "w",
fallback = "hamlet",
},
["freeway"] = {
link = true,
fallback = "road",
},
["French prefecture"] = {
link = "[[w:prefectures in France|prefecture]]",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["kawasan geografi dan budaya"] = {
link = "+w:cultural area",
-- `generic_before_non_cities` is used when generating the category description of categories of the format
-- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and
-- categories for any placetype that falls back to `geographic and cultural area`.
generic_before_non_cities = "of",
preposition = "of",
class = "kawasan geografi",
bare_category_parent = "tempat",
["negara/*"] = {true},
["constituent country/*"] = {true},
["benua/*"] = {true},
default = {true},
},
["geographic area"] = {
link = "+w:geographic region",
fallback = "kawasan geografi dan budaya",
},
["kawasan geografi"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geographical area"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geographical region"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geopolitical zone"] = {
-- Nigeria
link = true,
preposition = "of",
class = "subtatanegara",
},
["gewog"] = {
-- Bhutan
link = true,
preposition = "of",
class = "subtatanegara",
},
["ghost town"] = {
link = true,
generic_before_non_cities = "di",
class = "non-admin settlement",
bare_category_parent = "former settlements",
cat_handler = city_type_cat_handler,
default = {true},
},
["glen"] = {
link = true,
fallback = "valley",
},
["governorate"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["greater administrative region"] = {
-- China (former division)
link = "w",
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["gromada"] = {
-- Poland (former division)
link = "w",
preposition = "of",
affix_type = "Pref",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["group of islands"] = {
link = "[[group]] of [[island]]s",
plural = "groups of islands",
plural_link = "[[group]]s of [[island]]s",
fallback = "island group",
},
["gulf"] = {
link = true,
preposition = "of",
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["hamlet"] = {
link = true,
fallback = "village",
},
["harbor city"] = {
link = "separately",
fallback = "city",
},
["harbor town"] = {
link = "separately",
fallback = "town",
},
["harbour city"] = {
link = "separately",
fallback = "city",
},
["harbour town"] = {
link = "separately",
fallback = "town",
},
["headland"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["headquarters"] = {
link = "w",
fallback = "administrative centre",
},
["heath"] = {
link = true,
fallback = "moor",
},
["hemisphere"] = {
link = true,
entry_placetype_use_the = true,
fallback = "kawasan benua",
},
["highway"] = {
link = true,
fallback = "road",
},
["hill"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["hill station"] = {
link = "w",
fallback = "town",
},
["hill town"] = {
link = "w",
fallback = "town",
},
["historic region"] = {
-- provided only for the link
link = "+w:historical region",
fallback = "FORMER geographic region",
},
["historical county"] = {
-- needed for historical counties of England/etc.
link = "+w:historic county",
fallback = "FORMER subpolity",
},
["historical region"] = {
-- provided only for the link
link = "w",
fallback = "FORMER geographic region",
},
["home rule city"] = {
link = "w",
fallback = "city",
},
["home rule municipality"] = {
link = "w",
fallback = "municipality",
},
["hot spring"] = {
link = true,
fallback = "spring",
},
["house"] = {
link = true,
fallback = "building",
},
["housing estate"] = {
-- not the same as a housing project (i.e. public housing)
link = true,
-- not exactly the case but approximately
fallback = "neighborhood",
},
["hromada"] = {
-- Ukraine
link = "w",
disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'",
disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'",
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["inactive volcano"] = {
link = "w",
fallback = "dormant volcano",
},
["independent city"] = {
link = true,
fallback = "city",
},
["independent town"] = {
link = "+independent city",
fallback = "town",
},
["Indian reservation"] = {
link = "w",
-- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations
-- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts
-- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is,
-- so this must still be the legal term.
preposition = "of",
class = "subtatanegara",
default = {true},
},
["Indian reserve"] = {
link = "w",
-- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that
-- is still the legal term.
preposition = "of",
class = "subtatanegara",
default = {true},
},
["inland sea"] = {
-- note, we also have 'inland' as a qualifier
link = true,
fallback = "laut",
},
["inner city area"] = {
link = "[[inner city]] [[area]]",
fallback = "neighborhood",
},
["pulau"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["island country"] = {
-- FIXME: The following should map to both 'island' and 'country'.
link = "w",
fallback = "negara",
},
["island group"] = {
link = "separately",
fallback = "pulau",
},
["island municipality"] = {
link = "w",
fallback = "municipality",
},
["islet"] = {
link = "w",
fallback = "pulau",
},
["Israeli settlement"] = {
link = "w",
class = "settlement",
default = {true},
},
["judicial capital"] = {
link = "w",
fallback = "capital city",
},
["khanate"] = {
link = true,
fallback = "tatanegara",
},
["kibbutz"] = {
link = true,
plural = "kibbutzim",
class = "non-admin settlement",
default = {true},
},
["kingdom"] = {
link = true,
fallback = "monarchy",
},
["krai"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["lake"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["bentuk muka bumi!"] = {
category_link = "[[landform]]s",
bare_category_parent = "tempat",
addl_bare_category_parents = {"Bumi"},
},
["largest city"] = {
link = "[[large]]st [[city]]",
entry_placetype_use_the = true,
fallback = "city",
has_neighborhoods = true,
},
["league"] = {
link = true,
fallback = "confederation",
},
["legislative capital"] = {
link = "separately",
fallback = "capital city",
},
["library"] = {
link = true,
fallback = "building",
},
["lieutenancy area"] = {
-- used in the United Kingdom; per Wikipedia:
-- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does
-- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of
-- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate
-- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on
-- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern
-- Ireland correspond to the six counties and two former county boroughs.[3]
link = "w",
fallback = "ceremonial county",
},
["local authority district"] = {
link = "w",
fallback = "local government district",
},
["local government area"] = {
-- Australia
link = "w",
preposition = "of",
class = "subtatanegara",
},
["local council"] = {
-- Malta; similar to municipalities
link = "+w:local councils of Malta",
preposition = "of",
fallback = "municipality",
},
["local government district"] = {
link = "w",
preposition = "of",
affix_type = "suf",
affix = "daerah",
class = "subtatanegara",
},
["local government district with borough status"] = {
link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]",
plural = "local government districts with borough status",
plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]",
preposition = "of",
affix_type = "suf",
affix = "daerah",
class = "subtatanegara",
},
["local urban district"] = {
link = "w",
fallback = "unincorporated community",
},
["locality"] = {
link = "+w:locality (settlement)",
-- not necessarily true, but usually is the case
fallback = "village",
},
["London borough"] = {
link = "w",
preposition = "of",
affix_type = "pref",
affix = "borough",
fallback = "local government district with borough status",
has_neighborhoods = true,
},
["macroregion"] = {
link = true,
fallback = "region",
},
["man-made structures!"] = {
category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s",
bare_category_parent = "tempat",
},
["manor"] = {
-- FIXME: or is this more like a farm?
link = true,
fallback = "building",
},
["marginal sea"] = {
link = true,
preposition = "of",
fallback = "laut",
},
["market city"] = {
link = "+market town",
fallback = "city",
},
["market town"] = {
link = true,
fallback = "town",
},
["massif"] = {
link = true,
fallback = "mountain",
},
["megacity"] = {
link = true,
fallback = "city",
},
["metro station"] = {
link = true,
class = "man-made structure",
},
["metropolitan borough"] = {
link = true,
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"borough", "city"},
fallback = "local government district",
has_neighborhoods = true,
},
["metropolitan city"] = {
-- These exist e.g. in Italy and are more like municipalities or even provinces than cities.
link = true,
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"metropolitan", "city"},
class = "subtatanegara",
},
["metropolitan county"] = {
link = true,
fallback = "county",
},
["metropolitan municipality"] = {
-- In South Africa, metropolitan municipalities group local municipalities and are like districts, between
-- provinces and municipalities.
-- In Turkey, metropolitan municipalities are provinces-level.
link = "w",
preposition = "of",
affix_type = "Suf",
no_affix_strings = {"metropolitan", "municipality"},
fallback = "municipality",
class = "subtatanegara",
},
["microdistrict"] = {
-- residential complex in post-Soviet states
link = true,
fallback = "neighborhood",
},
["micronations!"] = {
-- FIXME, merge with microstate
category_link = "[[micronation]]s",
bare_category_parent = "countries",
},
["microstate"] = {
link = true,
fallback = "negara",
},
["military base"] = {
link = "w",
class = "settlement", -- or "man-made structure"?
default = {true},
},
["minster town"] = {
-- England
link = "separately",
fallback = "town",
},
["monarchy"] = {
link = true,
fallback = "tatanegara",
},
["moor"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "ekosistem"},
default = {true},
},
["moorland"] = {
link = true,
fallback = "moor",
},
["motorway"] = {
link = true,
fallback = "road",
},
["mountain"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["mountain indigenous district"] = {
-- Taiwan
link = "+w:district (Taiwan)",
fallback = "daerah",
},
["mountain indigenous township"] = {
-- Taiwan
link = "+w:township (Taiwan)",
fallback = "township",
},
["mountain pass"] = {
link = true,
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- passes -> passe, so put an entry here to ensure we singularize correctly.
plural = "mountain passes",
class = "sifat semula jadi",
addl_bare_category_parents = {"mountains"},
default = {true},
},
["mountain range"] = {
link = true,
fallback = "mountain",
},
["mountainous region"] = {
link = "separately",
fallback = "region",
},
["mukim"] = {
-- Malaysia, Brunei, Indonesia, Singapore
link = true,
preposition = "of",
class = "subtatanegara",
},
["municipal district"] = {
link = "w",
-- meaning varies depending on the country; for now, assume no neighborhoods.
-- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms.
preposition = "of",
affix_type = "Pref",
no_affix_strings = "daerah",
fallback = "municipality",
},
["municipality"] = {
link = true,
preposition = "of",
has_neighborhoods = true,
class = "subtatanegara",
},
["municipality with city status"] = {
link = "[[municipality]] with [[w:city status|city status]]",
plural = "municipalities with city status",
plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]",
fallback = "municipality",
},
["museum"] = {
link = true,
fallback = "building",
},
["mythological location"] = {
link = "separately",
former_type = "!",
class = "hypothetical location",
bare_category_parent = "tempat",
default = {true},
},
["named bridges!"] = {
category_link = "notable [[bridge]]s",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"bridges"},
},
["named buildings!"] = {
category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"buildings"},
},
["named roads!"] = {
category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"roads"},
},
["national capital"] = {
link = "w",
fallback = "capital city",
},
["national park"] = {
link = true,
fallback = "park",
},
["sifat semula jadi!"] = {
category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s",
bare_category_parent = "tempat",
},
["neighborhood"] = {
-- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which
-- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the
-- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the
-- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods".
-- (In general it can't, because other things like "urban areas", "daerah", "subdivisions" and the like also
-- categorize as neighbo(u)rhoods.)
link = true,
-- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]].
generic_before_non_cities = "di",
generic_before_cities = "of",
-- The following text is suitable for the top-level description of a neighborhood as well as categories of the
-- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form
-- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]".
category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]",
category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions",
-- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`,
-- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings
-- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in
-- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY`
-- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but
-- generates "of" before cities and "di" before non-cities regardless. (FIXME: We should change that.)
preposition = "of",
class = "non-admin settlement",
cat_handler = district_neighborhood_cat_handler,
},
["neighbourhood"] = {
link = true,
category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]",
category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions",
fallback = "neighborhood",
},
["new area"] = {
-- China (type of economic development zone, varying greatly in size)
link = "w",
preposition = "di",
class = "subtatanegara", --?
},
["new town"] = {
link = true,
fallback = "town",
},
["non-city capital"] = {
link = "[[capital]]",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
cat_handler = function(data)
return capital_city_cat_handler(data, "non-city")
end,
-- FIXME, do we need the following?
default = {true},
},
["non-metropolitan county"] = {
link = "w",
fallback = "county",
},
["non-metropolitan district"] = {
link = "w",
fallback = "local government district",
},
["non-sovereign kingdom"] = {
-- especially in Africa and Asia
link = "+w:non-sovereign monarchy",
generic_before_non_cities = "di",
class = "subtatanegara",
["negara/*"] = {true},
["benua/*"] = {true},
default = {true},
},
["non-sovereign monarchy"] = {
link = "w",
fallback = "non-sovereign kingdom",
},
["oblast"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["oblasts and autonomous republics!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Ukraine.
category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s",
class = "subtatanegara",
},
["lautan"] = {
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"laut", "badan air"},
default = {true},
},
["okrug"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["overseas collectivity"] = {
link = "w",
fallback = "collectivity",
},
["overseas department"] = {
link = "w",
fallback = "department",
},
["overseas territory"] = {
link = "w",
fallback = "dependent territory",
},
["parish"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["parish municipality"] = {
-- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them.
link = "+w:parish municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true,
},
["parish seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
class = "capital",
has_neighborhoods = true,
},
["park"] = {
link = true,
class = "man-made structure",
default = {true},
},
["pass"] = {
link = "+mountain pass",
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- passes -> passe, so put an entry here to ensure we singularize correctly.
plural = "passes",
fallback = "mountain pass",
},
["path"] = {
link = true,
fallback = "road",
},
["peak"] = {
link = true,
fallback = "mountain",
},
["semenanjung"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["periphery"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["tempat!"] = {
generic_before_non_cities = "di",
generic_before_cities = "di",
class = "tempat am",
category_link = "[[tempat]] secara umum",
-- `category_link_top_level` control the description used in the top-level [[Category:Places]] and
-- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is
-- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of"
-- portion is automatically generated by the appropriate handler in
-- [[Module:category tree/topic cat/data/Places]].
category_link_top_level = "[[tempat]] [[geografi]] secara umum; [[toponim]]",
bare_category_parent = "nama",
},
["planned community"] = {
-- Include this so we don't categorize 'planned community' into villages, as 'community' does.
link = true,
class = "settlement",
has_neighborhoods = true,
},
["plateau"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
-- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category
},
["Polish colony"] = {
link = "[[w:colony (Poland)|colony]]",
affix_type = "suf",
affix = "colony",
fallback = "village",
has_neighborhoods = true,
},
["pembahagian politik!"] = {
category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s",
bare_category_parent = "tempat",
},
["tatanegara"] = {
link = true,
category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]",
class = "tatanegara",
bare_category_parent = "tempat",
default = {true},
},
["populated place"] = {
link = "+w:populated place",
-- not necessarily true, but usually is the case
fallback = "village",
},
["port"] = {
link = true,
class = "man-made structure",
default = {true},
},
["port city"] = {
-- FIXME: should categorize into "Ports" as well as "Cities"
link = true,
fallback = "city",
},
["port town"] = {
-- FIXME: should categorize into "Ports" as well as "Towns"
link = "w",
fallback = "town",
},
["prefecture"] = {
-- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France.
-- May need `has_neighborhoods` to be a function.
link = true,
preposition = "of",
display_handler = prefecture_display_handler,
class = "subtatanegara",
},
["prefecture-level city"] = {
-- China; they are huge entities with a central city; not cities themselves.
link = "w",
preposition = "of",
class = "subtatanegara",
},
["preserved county"] = {
-- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more
-- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22.
link = "w",
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["primary area"] = {
-- a grouping of "daerah" (neighborhoods) in Gothenburg, Sweden
link = "+w:sv:primärområde",
fallback = "neighborhood",
},
["principality"] = {
link = true,
fallback = "monarchy",
},
["promontory"] = {
link = true,
fallback = "headland",
},
["protectorate"] = {
link = true,
fallback = "dependent territory",
},
["province"] = {
link = true,
preposition = "of",
display_handler = province_display_handler,
class = "subtatanegara",
},
["provinces and autonomous regions!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case China.
category_link = "[[province]]s and [[autonomous region]]s",
class = "subtatanegara",
},
["provinces and territories!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Canada and Pakistan.
category_link = "[[province]]s and [[territory|territories]]",
class = "subtatanegara",
},
["provincial capital"] = {
link = true,
fallback = "capital city",
},
["raion"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["ranch"] = {
link = true,
fallback = "farm",
},
["range"] = {
-- FIXME: Where is this used? Is it a mountain range?
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
},
["regency"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["region"] = {
link = true,
preposition = "of",
-- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area'
fallback = "kawasan geografi dan budaya",
-- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region
class = "kawasan geografi",
},
["regional capital"] = {
link = "separately",
fallback = "capital city",
},
["regional county municipality"] = {
-- Quebec
link = "w",
preposition = "of",
affix_type = "Suf",
no_affix_strings = {"municipality", "county"},
fallback = "municipality",
},
["regional district"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "daerah",
fallback = "daerah",
},
["regional municipality"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "municipality",
fallback = "municipality",
},
["regional unit"] = {
link = "w",
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["registration county"] = {
-- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical
-- purposes (registration of births, deaths and marriages, and for the output of census information).
link = "w",
fallback = "county",
},
["republic"] = {
-- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "negara" in that case.
link = true,
fallback = "constituent republic",
},
["research base"] = {
link = "+w:research station",
fallback = "research station",
},
["research station"] = {
link = "w",
class = "non-admin settlement", -- or "man-made structure"?
default = {true},
},
["reservoir"] = {
link = true,
fallback = "lake",
},
["residential area"] = {
link = "separately",
fallback = "neighborhood",
},
["resort city"] = {
link = "w",
fallback = "city",
},
["resort town"] = {
link = "w",
fallback = "town",
},
["river"] = {
link = true,
generic_before_non_cities = "di",
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
cat_handler = city_type_cat_handler,
["benua/*"] = {true},
default = {true},
},
["river island"] = {
link = "w",
fallback = "pulau",
},
["road"] = {
link = true,
class = "man-made structure",
default = {"Named roads"},
},
["Roman province"] = {
-- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire'
link = "w",
default = {"Provinces of the Roman Empire"},
class = "subtatanegara",
},
["royal borough"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"royal", "borough"},
fallback = "local government district with borough status",
has_neighborhoods = true,
},
["royal burgh"] = {
link = true,
fallback = "borough",
},
["royal capital"] = {
link = "w",
fallback = "capital city",
},
["rural committee"] = {
-- Hong Kong; a group of villages
link = "w",
affix_type = "Suf",
has_neighborhoods = true,
class = "settlement",
},
["rural community"] = {
-- New Brunswick
link = "+w:list of municipalities in New_Brunswick#Rural communities",
fallback = "municipality",
},
["rural hromada"] = {
link = "[[rural]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["rural municipality"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "municipality",
fallback = "municipality",
has_neighborhoods = true, --?
},
["rural township"] = {
-- Taiwan
link = "+w:rural township (Taiwan)",
fallback = "township",
},
["sanctuary"] = {
link = true,
fallback = "temple",
},
["satrapy"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"ANCIENT", "FORMER"},
},
["laut"] = {
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["seaport"] = {
link = true,
fallback = "port",
},
["seat"] = {
link = true,
fallback = "administrative centre",
},
["self-administered area"] = {
-- Myanmar (groups self-administered divisions and zones)
link = "+w:self-administered zone",
preposition = "of",
class = "subtatanegara",
},
["self-administered division"] = {
-- Myanmar (only one of them: Wa Self-Administered Division)
link = "w",
fallback = "self-administered area",
},
["self-administered zone"] = {
-- Myanmar (five of them)
link = "w",
fallback = "self-administered area",
},
["separatist state"] = {
link = "separately",
fallback = "unrecognized country",
},
["settlement"] = {
link = true,
category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s",
bare_category_parent = "tempat",
-- not necessarily true, but usually is the case
fallback = "village",
},
["settlement hromada"] = {
link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["sheading"] = {
-- Isle of Man
link = true,
fallback = "daerah",
},
["sheep station"] = {
-- Australia
link = true,
fallback = "farm",
},
["shire"] = {
link = true,
fallback = "county",
},
["shire county"] = {
link = "w",
fallback = "county",
},
["shire town"] = {
link = true,
fallback = "county seat",
},
["ski resort city"] = {
link = "[[ski resort]] [[city]]",
fallback = "city",
},
["ski resort town"] = {
link = "[[ski resort]] [[town]]",
fallback = "town",
},
["spa city"] = {
link = "+w:spa town",
fallback = "city",
},
["spa town"] = {
link = "w",
fallback = "town",
},
["space station"] = {
link = true,
fallback = "research station",
},
["special administrative region"] = {
-- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a
-- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia
-- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special
-- administrative areas"
link = "+w:special administrative regions of China",
preposition = "of",
class = "subtatanegara",
has_neighborhoods = true, --?
-- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves
-- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing
suffix = "",
},
["special collectivity"] = {
link = "w",
fallback = "collectivity",
},
["special municipality"] = {
-- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands
link = "w",
fallback = "municipality",
},
["special ward"] = {
-- Tokyo
link = true,
fallback = "municipality",
},
["spit"] = {
link = true,
fallback = "peninsula",
},
["spring"] = {
link = true,
class = "sifat semula jadi",
default = {true},
},
["bintang"] = {
link = true,
class = "sifat semula jadi",
default = {true},
},
["negeri"] = {
link = true,
preposition = "di",
class = "subtatanegara",
-- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign
-- entity. The latter appears more common (e.g. in various "ancient states" of East Asia).
former_type = "tatanegara",
},
["negeri dan wilayah!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Australia.
category_link = "[[negeri]] dan [[wilayah]]",
class = "subtatanegara",
},
["states and union territories!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case India.
category_link = "[[state]]s and [[union territory|union territories]]",
class = "subtatanegara",
},
["state capital"] = {
link = true,
fallback = "capital city",
},
["state park"] = {
link = true,
fallback = "park",
},
["state-level new area"] = {
-- China (type of economic development zone, varying greatly in size)
link = "w",
fallback = "new area",
},
["statistical region"] = {
-- Slovenia
link = true,
fallback = "administrative region",
},
["statutory city"] = {
link = "w",
fallback = "city",
},
["statutory town"] = {
link = "w",
fallback = "town",
},
["strait"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["stream"] = {
link = true,
fallback = "river",
},
["street"] = {
link = true,
fallback = "road",
},
["strip"] = {
link = true,
fallback = "kawasan geografi",
},
["strip of land"] = {
link = "[[strip]] of [[land]]",
plural = "strips of land",
plural_link = "[[strip]]s of [[land]]",
fallback = "kawasan geografi",
},
["sub-metropolitan city"] = {
link = "+w:List of cities in Nepal#Sub-metropolitan cities",
fallback = "city",
},
["sub-prefectural city"] = {
link = "w",
fallback = "subprovincial city",
},
["subdaerah"] = {
link = true,
preposition = "di",
has_neighborhoods = true, --?
-- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler
class = "subtatanegara",
default = {true},
},
["subbahagian"] = {
link = true,
preposition = "di",
affix_type = "suf",
-- FIXME: subdivisions can be neighborhood-like or larger; need a handler
class = "subtatanegara",
cat_handler = district_neighborhood_cat_handler,
},
["submerged ghost town"] = {
-- FIXME: Consider just having "submerged" as a qualifier.
link = "[[submerged]] [[ghost town]]",
fallback = "ghost town",
},
["subnational kingdom"] = {
link = "+w:subnational monarchy",
fallback = "non-sovereign kingdom",
},
["subnational monarchy"] = {
link = "w",
fallback = "non-sovereign kingdom",
},
["subprefecture"] = {
link = true,
affix_type = "suf",
preposition = "of",
class = "subtatanegara",
},
["subprovince"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["subprovincial city"] = {
link = "w",
-- China; special status given to certain prefecture-level cities
fallback = "prefecture-level city",
},
["subprovincial district"] = {
link = "w",
-- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts
preposition = "of",
class = "subtatanegara",
},
["subregion"] = {
link = true,
fallback = "kawasan geografi",
},
["suburb"] = {
link = true,
-- The following text is suitable for the top-level description of a suburb as well as categories of the form
-- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago',
-- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]".
category_link = "[[suburb]]s of [[city|cities]]",
category_link_before_city = "[[suburb]]s",
-- See comments under "neighborhood" for the following three settings. They are used by
-- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories
-- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a
-- given page), which hardcodes "di" for non-cities and "of" for cities. (FIXME: Change this.)
generic_before_non_cities = "di",
generic_before_cities = "of",
preposition = "of",
has_neighborhoods = true, --?
class = "non-admin settlement", --?
cat_handler = district_neighborhood_cat_handler,
},
["suburban area"] = {
link = "w",
fallback = "suburb",
},
["subway station"] = {
link = "w",
fallback = "metro station",
},
["sum"] = {
-- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia),
-- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion).
link = "+w:sum (administrative division)",
-- This fallback is somewha arbitrary. We could use "county" but that has a display handler
-- which we don't want to be active (FIXME: If the display handler would be active, that's a bug).
fallback = "division",
},
["supercontinent"] = {
link = true,
fallback = "benua",
},
["tehsil"] = {
link = true,
affix_type = "suf",
no_affix_strings = {"tehsil", "tahsil"},
class = "subtatanegara",
},
["temple"] = {
link = true,
fallback = "building",
},
["territorial authority"] = {
link = "w",
fallback = "daerah",
},
["wilayah"] = {
link = true,
preposition = "di",
class = "subtatanegara",
},
["theme"] = {
link = "+w:theme (Byzantine district)",
preposition = "of",
class = "subtatanegara",
},
["town"] = {
link = true,
generic_before_non_cities = "di",
has_neighborhoods = true,
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["town with bystatus"] = {
-- can't use templates in links currently
link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]",
plural = "towns with bystatus",
plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]",
fallback = "town",
},
["township"] = {
link = true,
has_neighborhoods = true,
class = "settlement", --?
default = {true},
},
["township municipality"] = {
-- Quebec
link = "+w:township municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true, --?
},
["traditional county"] = {
link = true,
fallback = "county",
},
["traditional region"] = {
-- FIXME: Verify this works. Same for 'historic(al) region'.
-- provided only for the link
link = "w",
fallback = "FORMER geographic region",
},
["trail"] = {
link = true,
fallback = "road",
},
["treaty port"] = {
link = "w",
fallback = "city",
class = "settlement",
inherently_former = {"FORMER"},
},
["tributary"] = {
link = true,
preposition = "of",
fallback = "river",
},
["underground station"] = {
link = "w",
fallback = "metro station",
},
["unincorporated area"] = {
link = "w",
-- I don't know if this fallback makes sense everywhere.
fallback = "unincorporated community",
},
["unincorporated community"] = {
link = true,
generic_before_non_cities = "di",
class = "non-admin settlement",
},
["unincorporated territory"] = {
link = "w",
fallback = "wilayah",
},
["union territory"] = {
-- India
link = true,
preposition = "of",
entry_placetype_indefinite_article = "a",
class = "subtatanegara",
},
["unitary authority"] = {
-- UK, New Zealand
link = true,
entry_placetype_indefinite_article = "a",
fallback = "local government district",
},
["unitary district"] = {
link = "w",
entry_placetype_indefinite_article = "a",
fallback = "local government district",
},
["united township municipality"] = {
-- Quebec
link = "+w:united township municipality (Quebec)",
entry_placetype_indefinite_article = "a",
fallback = "township municipality",
has_neighborhoods = true, --?
},
["university"] = {
link = true,
entry_placetype_indefinite_article = "a",
class = "man-made structure",
default = {true},
},
["unrecognised country"] = {
link = "w",
fallback = "unrecognized country",
},
["unrecognized and nearly unrecognized countries!"] = {
category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}",
bare_category_parent = "country-like entities",
},
["unrecognized country"] = {
link = "w",
class = "tatanegara",
default = {"Unrecognized and nearly unrecognized countries"},
},
["unrecognised state"] = {
link = "w",
fallback = "unrecognized country",
},
["unrecognized state"] = {
link = "w",
fallback = "unrecognized country",
},
["urban area"] = {
link = "separately",
fallback = "neighborhood",
},
["urban hromada"] = {
link = "[[urban]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["urban service area"] = {
-- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger
-- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]).
link = "w",
fallback = "city",
},
["urban township"] = {
link = "w",
fallback = "township",
},
["urban-type settlement"] = {
-- appears to be a particular type of small urban settlement in post-Soviet states,
-- had an administrative function.
link = "w",
fallback = "town",
},
["valley"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "air"},
default = {true},
},
["viceroyalty"] = {
-- in essence, a type of colony
link = true,
fallback = "dependent territory",
},
["village"] = {
link = true,
generic_before_non_cities = "di",
category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s",
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["village development committee"] = {
-- former administrative structure in Nepal; also exists in India but not as a formal unit
link = "+w:village development committee (Nepal)",
inherently_former = {"FORMER"},
fallback = "village",
},
["village municipality"] = {
-- Quebec
link = "+w:village municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true, --?
},
["voivodeship"] = {
-- Poland
link = true,
display_handler = voivodeship_display_handler,
preposition = "of",
class = "subtatanegara",
},
["volcano"] = {
link = true,
plural = "volcanoes",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true, "Mountains"},
},
["ward"] = {
link = true,
class = "settlement",
-- Wards are formal administrative divisions of a city but have some properties of neighborhoods.
fallback = "neighborhood",
},
["watercourse"] = {
link = true,
fallback = "channel",
},
["Welsh community"] = {
-- Wales
link = "[[w:community (Wales)|community]]",
preposition = "of",
affix_type = "suf",
affix = "community",
has_neighborhoods = true,
class = "settlement",
},
["zone"] = {
-- administrative division of Ethiopia, Qatar, Nepal, India
link = "+w:zone#Place names",
preposition = "of",
class = "subtatanegara",
},
----------------------------------------------------------------------------------------------
-- Categories for former places --
----------------------------------------------------------------------------------------------
["ANCIENT capital"] = {
link = false,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
-- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still
-- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category.
default = {"Ancient settlements", "Former capitals"},
},
["ANCIENT non-admin settlement"] = {
link = false,
class = "non-admin settlement",
fallback = "ANCIENT settlement",
},
["ANCIENT settlement"] = {
link = false,
has_neighborhoods = true,
class = "settlement",
default = {"Ancient settlements"},
},
["ancient settlements!"] = {
category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]",
bare_category_parent = "former settlements",
},
["FORMER capital"] = {
link = false,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
default = {"Former capitals"},
},
["former capitals!"] = {
category_link = "former [[capital]] [[city|cities]] and [[town]]s",
bare_category_parent = "settlements",
},
["former counties and county-level cities!"] = {
-- For categorizing former counties and county-level cities of China
category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]",
bare_category_breadcrumb = "counties and county-level cities",
bare_category_parent = "former political divisions",
},
["FORMER county"] = {
-- For categorizing former counties and county-level cities of China
link = false,
fallback = "FORMER subpolity",
},
["FORMER county-level city"] = {
-- For categorizing former counties and county-level cities of China
link = false,
fallback = "FORMER subpolity",
},
["former countries and country-like entities!"] = {
category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist",
bare_category_breadcrumb = "countries and country-like entities",
bare_category_parent = "former polities",
},
["FORMER country"] = {
link = false,
class = "tatanegara",
default = {"Former countries and country-like entities"},
},
["former dependent territories!"] = {
category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist",
bare_category_breadcrumb = "dependent territories",
bare_category_parent = "former political divisions",
},
["FORMER dependent territory"] = {
link = false,
preposition = "of",
class = "subtatanegara",
default = {"Former dependent territories"},
},
["bekas daerah!"] = {
-- For categorizing former districts of China
category_link = "no-longer-existing [[district]]s",
bare_category_breadcrumb = "daerah",
bare_category_parent = "former political divisions",
},
["FORMER district"] = {
-- For categorizing former districts of China
link = false,
fallback = "FORMER subpolity",
},
["FORMER geographic region"] = {
link = false,
fallback = "kawasan geografi dan budaya",
},
["FORMER man-made structure"] = {
link = false,
class = "man-made structure",
default = {"Former man-made structures"},
},
["former man-made structures!"] = {
category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist",
bare_category_breadcrumb = "man-made structures",
bare_category_parent = "former places",
},
["former municipalities!"] = {
-- For categorizing former municipalities of the Netherlands
category_link = "no-longer-existing [[municipality|municipalities]]",
bare_category_breadcrumb = "municipalities",
bare_category_parent = "former political divisions",
},
["FORMER municipality"] = {
-- For categorizing former municipalities of the Netherlands
link = false,
fallback = "FORMER subpolity",
},
["FORMER natural feature"] = {
link = false,
class = "sifat semula jadi",
default = {"Former natural features"},
},
["former natural features!"] = {
category_link = "sifat semula jadi such as [[lake]]s, [[river]]s and [[island]]s that no longer exist",
bare_category_breadcrumb = "sifat semula jadi",
bare_category_parent = "former places",
},
["FORMER non-admin settlement"] = {
link = false,
class = "non-admin settlement",
fallback = "FORMER settlement",
},
["former places!"] = {
category_link = "[[place]]s of all sorts that no longer exist",
bare_category_breadcrumb = "former",
bare_category_parent = "tempat",
},
["former political divisions!"] = {
category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "former places",
},
["former polities!"] = {
category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist",
bare_category_breadcrumb = "polities",
bare_category_parent = "former places",
},
["FORMER polity"] = {
link = false,
class = "tatanegara",
default = {"Former polities"},
},
["former prefectures!"] = {
-- For categorizing former prefectures of China
category_link = "no-longer-existing [[prefecture]]s",
bare_category_breadcrumb = "prefectures",
bare_category_parent = "former political divisions",
},
["FORMER prefecture"] = {
-- For categorizing former prefectures of China
link = false,
fallback = "FORMER subpolity",
},
["former provinces!"] = {
-- For categorizing former provinces of China, etc.
category_link = "no-longer-existing [[province]]s",
bare_category_breadcrumb = "provinces",
bare_category_parent = "former political divisions",
},
["FORMER province"] = {
-- For categorizing ancient/historical/former provinces of the Roman Empire
link = false,
fallback = "FORMER subpolity",
},
["former region"] = {
-- A former region is considered a former political division, but not a 'historical/traditional/etc.' region.
link = "separately",
preposition = "of",
inherently_former = {"FORMER"},
class = "subtatanegara",
},
["FORMER settlement"] = {
link = false,
has_neighborhoods = true,
class = "settlement",
default = {"Former settlements"},
},
["former settlements!"] = {
category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified",
bare_category_breadcrumb = "settlements",
bare_category_parent = "former political divisions",
},
["FORMER subpolity"] = {
link = false,
preposition = "of",
class = "subtatanegara",
default = {"Former political divisions"},
},
----------------------------------------------------------------------------------------------
-- form-of categories --
----------------------------------------------------------------------------------------------
---------- Abbreviations ----------
["abbreviations of counties!"] = {
-- For categorizing abbreviations of counties of e.g. England
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]",
bare_category_breadcrumb = "counties",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of countries!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "abbreviations of places",
},
["abbreviations of departments!"] = {
-- For categorizing abbreviations of departments of e.g. France
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s",
bare_category_breadcrumb = "departments",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of districts!"] = {
-- For categorizing abbreviations of districts of e.g. ???
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s",
bare_category_breadcrumb = "daerah",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of divisions!"] = {
-- For categorizing abbreviations of divisions of e.g. Bangladesh
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s",
bare_category_breadcrumb = "divisions",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of former countries!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "abbreviations of former places",
},
["abbreviations of former places!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]",
bare_category_breadcrumb = "abbreviations",
bare_category_parent = "former places",
addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}},
},
["abbreviations of places!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "abbreviations",
bare_category_parent = "tempat",
},
["abbreviations of political divisions!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "abbreviations of places",
},
["abbreviations of prefectures!"] = {
-- For categorizing abbreviations of prefectures of e.g. Japan
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s",
bare_category_breadcrumb = "prefectures",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of provinces!"] = {
-- For categorizing abbreviations of provinces of e.g. Canada
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s",
bare_category_breadcrumb = "provinces",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of provinces and territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]",
bare_category_breadcrumb = "provinces and territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of regions!"] = {
-- For categorizing abbreviations of regions of e.g. Italy
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s",
bare_category_breadcrumb = "regions",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states!"] = {
-- For categorizing abbreviations of states of e.g. the United States
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states and territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]",
bare_category_breadcrumb = "states and territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states and union territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]",
bare_category_breadcrumb = "states and union territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]",
bare_category_breadcrumb = "territories",
bare_category_parent = "abbreviations of political divisions",
},
["ABBREVIATION_OF country"] = {
link = false,
default = {"Abbreviations of countries"},
},
["ABBREVIATION_OF county"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF department"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF district"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF division"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF FORMER country"] = {
link = false,
default = {"Abbreviations of former countries"},
},
["ABBREVIATION_OF FORMER place"] = {
link = false,
default = {"Abbreviations of former places"},
},
["ABBREVIATION_OF place"] = {
link = false,
default = {"Abbreviations of places"},
},
["ABBREVIATION_OF prefecture"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF province"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF region"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF state"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF subpolity"] = {
link = false,
default = {"Abbreviations of political divisions"},
},
["ABBREVIATION_OF territory"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF union territory"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
---------- Archaic forms ----------
["archaic forms of places!"] = {
full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "archaic forms",
bare_category_parent = "tempat",
},
["ARCHAIC_FORM_OF place"] = {
link = false,
default = {"Archaic forms of places"},
},
---------- Clippings ----------
["clippings of places!"] = {
full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "clippings",
bare_category_parent = "tempat",
},
["CLIPPING_OF place"] = {
link = false,
default = {"Clippings of places"},
},
---------- Dated forms ----------
["dated forms of places!"] = {
full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "dated forms",
bare_category_parent = "tempat",
},
["DATED_FORM_OF place"] = {
link = false,
default = {"Dated forms of places"},
},
---------- Derogatory names ----------
["derogatory names for cities!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]",
bare_category_breadcrumb = "cities",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for cities"},
},
["derogatory names for continents!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s",
bare_category_breadcrumb = "continents",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for continents"},
},
["derogatory names for countries!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for countries"},
},
["derogatory names for places!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s",
bare_category_breadcrumb = "derogatory names",
bare_category_parent = "nicknames for places",
},
["derogatory names for states!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for states"},
},
["DEROGATORY_NAME_FOR capital"] = {
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR city"] = {
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR continent"] = {
link = false,
default = {"Derogatory names for continents"},
},
["DEROGATORY_NAME_FOR country"] = {
link = false,
default = {"Derogatory names for countries"},
},
["DEROGATORY_NAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR place"] = {
link = false,
default = {"Derogatory names for places"},
},
["DEROGATORY_NAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR state"] = {
link = false,
default = {"Derogatory names for states"},
},
["DEROGATORY_NAME_FOR town"] = {
link = false,
default = {"Derogatory names for cities"},
},
---------- Ellipses ----------
["ellipses of places!"] = {
full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s",
bare_category_breadcrumb = "ellipses",
bare_category_parent = "tempat",
},
["ELLIPSIS_OF place"] = {
link = false,
default = {"Ellipses of places"},
},
---------- Former long-form names ----------
["former long-form names of countries!"] = {
full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "former long-form names of places",
addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}},
},
["former long-form names of places!"] = {
full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s",
bare_category_breadcrumb = "long-form",
bare_category_parent = "former names of places",
},
["FORMER_LONG_FORM_OF country"] = {
link = false,
default = {"Former long-form names of countries"},
},
["FORMER_LONG_FORM_OF place"] = {
link = false,
default = {"Former long-form names of places"},
},
---------- Former names ----------
["former names of capitals!"] = {
full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name",
bare_category_breadcrumb = "capitals",
bare_category_parent = "former names of settlements",
},
["former names of countries!"] = {
full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name",
bare_category_breadcrumb = "countries",
bare_category_parent = "former names of places",
},
["former names of places!"] = {
full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name",
bare_category_breadcrumb = "former names",
bare_category_parent = "tempat",
},
["former names of political divisions!"] = {
full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "former names of places",
},
["former names of polities!"] = {
full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name",
bare_category_breadcrumb = "polities",
bare_category_parent = "former names of places",
},
["former names of settlements!"] = {
full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name",
bare_category_breadcrumb = "settlements",
bare_category_parent = "former names of political divisions",
},
["FORMER_NAME_OF capital"] = {
link = false,
default = {"Former names of capitals"},
},
["FORMER_NAME_OF country"] = {
link = false,
default = {"Former names of countries"},
},
["FORMER_NAME_OF place"] = {
link = false,
default = {"Former names of places"},
},
["FORMER_NAME_OF polity"] = {
link = false,
default = {"Former names of polities"},
},
["FORMER_NAME_OF region"] = {
link = false,
fallback = "FORMER_NAME_OF subpolity",
},
["FORMER_NAME_OF settlement"] = {
link = false,
default = {"Former names of settlements"},
},
["FORMER_NAME_OF subpolity"] = {
link = false,
default = {"Former names of political divisions"},
},
---------- Former nicknames ----------
["former nicknames for cities!"] = {
full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})",
bare_category_breadcrumb = "cities",
bare_category_parent = "former nicknames for places",
addl_bare_category_parents = {"nicknames for cities"},
},
["former nicknames for places!"] = {
full_category_link = "no-longer-used [[nickname]]s for [[place]]s",
bare_category_breadcrumb = "former",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}},
},
["FORMER_NICKNAME_FOR capital"] = {
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR city"] = {
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR place"] = {
link = false,
default = {"Former nicknames for places"},
},
["FORMER_NICKNAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR town"] = {
link = false,
default = {"Former nicknames for cities"},
},
---------- Former official names ----------
["former official names of countries!"] = {
full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "former official names of places",
addl_bare_category_parents = {{name = "former names of countries", sort = "official"}},
},
["former official names of places!"] = {
full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "former names of places",
},
["FORMER_OFFICIAL_NAME_OF country"] = {
link = false,
default = {"Former official names of countries"},
},
["FORMER_OFFICIAL_NAME_OF place"] = {
link = false,
default = {"Former official names of places"},
},
---------- Long-form names ----------
["long-form names of countries!"] = {
full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "long-form names of places",
},
["long-form names of places!"] = {
full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s",
bare_category_breadcrumb = "long-form names",
bare_category_parent = "tempat",
},
["LONG_FORM_OF country"] = {
link = false,
default = {"Long-form names of countries"},
},
["LONG_FORM_OF place"] = {
link = false,
default = {"Long-form names of places"},
},
---------- Nicknames ----------
["nicknames for cities!"] = {
full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]",
bare_category_breadcrumb = "cities",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"cities"},
},
["nicknames for continents!"] = {
full_category_link = "[[nickname]]s for [[continent]]s",
bare_category_breadcrumb = "continents",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"continents"},
},
["nicknames for countries!"] = {
full_category_link = "[[nickname]]s for [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"countries"},
},
["nicknames for places!"] = {
full_category_link = "[[nickname]]s for [[place]]s",
bare_category_breadcrumb = "tempat",
bare_category_parent = "nicknames",
addl_bare_category_parents = {"tempat"},
},
["nicknames for states!"] = {
-- For categorizing nicknames for states of e.g. the United States
full_category_link = "[[nicknames]] for [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"negeri"},
},
["NICKNAME_FOR capital"] = {
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR city"] = {
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR continent"] = {
link = false,
default = {"Nicknames for continents"},
},
["NICKNAME_FOR country"] = {
link = false,
default = {"Nicknames for countries"},
},
["NICKNAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR place"] = {
link = false,
default = {"Nicknames for places"},
},
["NICKNAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR state"] = {
link = false,
default = {"Nicknames for states"},
},
["NICKNAME_FOR town"] = {
link = false,
default = {"Nicknames for cities"},
},
---------- Obsolete forms ----------
["obsolete forms of places!"] = {
full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "obsolete forms",
bare_category_parent = "tempat",
},
["OBSOLETE_FORM_OF place"] = {
link = false,
default = {"Obsolete forms of places"},
},
---------- Official names ----------
["official names of countries!"] = {
full_category_link = "[[official]] [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "official names of places",
},
["official names of former countries!"] = {
full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "official names of former places",
},
["official names of former places!"] = {
full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]",
bare_category_breadcrumb = "official names",
bare_category_parent = "former places",
addl_bare_category_parents = {{name = "official names of places", sort = "former"}},
},
["official names of places!"] = {
full_category_link = "[[official]] [[name]]s of [[place]]s",
bare_category_breadcrumb = "official names",
bare_category_parent = "tempat",
},
["OFFICIAL_NAME_OF country"] = {
link = false,
default = {"Official names of countries"},
},
["OFFICIAL_NAME_OF FORMER country"] = {
link = false,
default = {"Official names of former countries"},
},
["OFFICIAL_NAME_OF FORMER place"] = {
link = false,
default = {"Official names of former places"},
},
["OFFICIAL_NAME_OF place"] = {
link = false,
default = {"Official names of places"},
},
---------- Official nicknames ----------
["official nicknames for places!"] = {
full_category_link = "[[official]] [[nickname]]s for [[place]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "nicknames for places",
},
["official nicknames for states!"] = {
-- For categorizing official nicknames for states of e.g. the United States
full_category_link = "[[official]] [[nicknames]] for [[state]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "nicknames for states",
addl_bare_category_parents = {"negeri"},
},
["OFFICIAL_NICKNAME_FOR place"] = {
link = false,
default = {"Official nicknames for places"},
},
["OFFICIAL_NICKNAME_FOR state"] = {
link = false,
default = {"Official nicknames for states"},
},
}
export.plural_placetype_to_singular = {}
for sg_placetype, spec in pairs(export.placetype_data) do
if spec.plural then
export.plural_placetype_to_singular[spec.plural] = sg_placetype
end
end
return export
3qd7yqx9dxh4l9o0llara3pt9tosh02
278396
278395
2026-04-17T10:53:08Z
PeaceSeekers
3334
278396
Scribunto
text/plain
local export = {}
export.force_cat = false -- set to true for testing
local m_locations = require("Module:place/locations")
local m_links = require("Module:links")
local m_table = require("Module:table")
local m_strutils = require("Module:string utilities")
local debug_track_module = "Module:debug/track"
local en_utilities_module = "Module:en-utilities"
local dump = mw.dumpObject
local insert = table.insert
local concat = table.concat
local internal_error = m_locations.internal_error
export.internal_error = internal_error
local process_error = m_locations.process_error
export.process_error = process_error
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local ucfirst = m_strutils.ucfirst
local ulower = m_strutils.lower
local rmatch = m_strutils.match
local split = m_strutils.split
--[==[ intro:
This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code
to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to
[[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must
currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}.
In particular, it contains two fundamental and tricky functions:
# `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in
the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising"
operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and
fallbacks.
# `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process
checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the
containers of the known location being considered. This is done to prevent overcategorizing when either there are two
known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally
two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing
non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico).
Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a
result are candidates for memoization to speed up the operation of {{tl|place}}.
]==]
------------------------------------------------------------------------------------------
-- Basic utilities --
------------------------------------------------------------------------------------------
--[==[
Return true if `force_cat` is set either in this module or in [[Module:place/locations]].
]==]
function export.get_force_cat()
return export.force_cat or m_locations.force_cat
end
-- Add the page to a tracking "category". To see the pages in the "category",
-- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here".
local function track(page)
require(debug_track_module)("place/" .. page)
return true
end
function export.remove_links_and_html(text)
text = m_links.remove_links(text)
return text:gsub("<.->", "")
end
--[==[
Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with
irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values
specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in
[[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x,
and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider
changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is
returned.
]==]
function export.maybe_singularize_placetype(placetype)
if not placetype then
return nil
end
if export.plural_placetype_to_singular[placetype] then
return export.plural_placetype_to_singular[placetype]
end
local retval = require(en_utilities_module).singularize(placetype)
if retval == placetype then
return nil
end
return retval
end
-- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first
-- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost
-- always correct.
function export.pluralize_placetype(placetype, do_ucfirst)
local ptdata = export.placetype_data[placetype]
if ptdata and ptdata.plural then
placetype = ptdata.plural
else
placetype = require(en_utilities_module).pluralize(placetype)
end
if do_ucfirst then
return ucfirst(placetype)
else
return placetype
end
end
--[==[
Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified,
we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype
under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not
match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match
that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same
as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed
from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version
of the plural passed-in `placetype`.
]==]
function export.get_placetype_data(placetype, from_category)
local ptdata = export.placetype_data[placetype]
if ptdata then
return placetype, ptdata, "direct"
end
if from_category then
ptdata = export.placetype_data[placetype .. "!"]
if ptdata then
return placetype .. "!", ptdata, "direct-category"
end
end
local sg_placetype = export.maybe_singularize_placetype(placetype)
if sg_placetype then
ptdata = export.placetype_data[sg_placetype]
if ptdata then
return sg_placetype, ptdata, "plural"
end
end
return nil
end
--[==[
Check for special pseudo-placetypes that should be ignored for categorization purposes.
]==]
function export.placetype_is_ignorable(placetype)
return placetype == "and" or placetype == "or" or placetype:find("^%(")
end
function export.resolve_placetype_aliases(placetype)
return export.placetype_aliases[placetype] or placetype
end
--[==[
Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the
key isn't found in the placetype's entry in `placetype_data`, return nil.
]==]
function export.get_placetype_prop(placetype, key)
-- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype
-- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in
-- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice.
placetype = export.resolve_placetype_aliases(placetype)
if export.placetype_data[placetype] then
return export.placetype_data[placetype][key]
else
return nil
end
end
--[==[
Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list
{ {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e.
# the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are
zero such qualifiers, the value will be nil);
# a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil);
# the "reduced placetype" on the right.
Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from
left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases
in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization
of qualifiers does not happen if `no_canon_qualifiers` is specified.
For example, given the placetype `"small beachside unincorporated community"`, the return value will be
{ {
{nil, nil, "small beachside unincorporated community"},
{nil, "small", "beachside unincorporated community"},
{"small", "[[beachfront]]", "unincorporated community"},
{"small [[beachfront]]", "[[unincorporated]]", "community"},
}}
Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to
`"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`.
On the other hand, if given `"small former haunted community"`, the return value will be
{ {
{nil, nil, "small former haunted community"},
{nil, "small", "former haunted community"},
{"small", "former", "haunted community"},
}}
because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers.
Finally, if given `"former adr"`, the return value will be
{ {
{nil, nil, "former adr"},
{nil, "former", "administrative region"},
}}
because `"adr"` is a recognized placetype alias for `"administrative region"`.
]==]
function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers)
local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}}
local prev_qualifier = nil
while true do
local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$")
if qualifier then
local canon = export.placetype_qualifiers[qualifier]
if canon == nil then
break
end
local new_qualifier = qualifier
if type(canon) == "table" then
canon = canon.link
end
if not no_canon_qualifiers and canon ~= false then
if canon == true then
new_qualifier = "[[" .. qualifier .. "]]"
else
new_qualifier = canon
end
end
insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)})
prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier
placetype = reduced_placetype
else
break
end
end
return splits
end
--[==[
Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the
placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list
of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a
placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the
words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off
qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words
not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used
to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is
an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first
entry if it exists in `placetype_data`.
'''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c)
"type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of
directives, which act somewhat similarly to `former`, and allows interaction between more than one of these
simultaneously (e.g. official names of former places, which have their own categorization).
If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be
getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of
`iterate_matching_holonym_location()`.
For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn:
```
{qualifier = nil, placetype="left tributary"}
{qualifier = "left", placetype="tributary"}
{qualifier = "left", placetype="river"}
```
and the return value will be
{ {
{qualifier = "left", placetype="tributary"},
{qualifier = "left", placetype="river"},
}}
The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized
placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it
would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the
''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because
it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next.
Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality,
often specifically an outlying hamlet). the placetype/qualifier combinations checked are:
```
{qualifier = nil, placetype="small rural fraziones"}
{qualifier = nil, placetype="small rural frazione"}
{qualifier = "small", placetype="rural fraziones"}
{qualifier = "small", placetype="rural frazione"}
{qualifier = "small [[rural]]", placetype="fraziones"}
{qualifier = "small [[rural]]", placetype="frazione"}
{qualifier = "small [[rural]]", placetype="hamlet"}
{qualifier = "small [[rural]]", placetype="village"}
```
The return value ends up as
{qualifier = "small [[rural]]", placetype="frazione"},
{qualifier = "small [[rural]]", placetype="hamlet"},
{qualifier = "small [[rural]]", placetype="village"},
}}
Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that
singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers,
they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around
`rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both
fallbacks end up being returned.
`no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is
used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes
such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym.
See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the
placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are
returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example,
`"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When
`no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"wilayah"`
with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under
[[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].)
As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`,
because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes
rarely occur with exact match category specs anyway.
`no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an
equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in
[[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't
have qualifiers and so it doesn't make sense to try and look for them.
`from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked.
`form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked
placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the
appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a
placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches.
`no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`.
`register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g.
known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It
causes the non-former version of the specified placetype to be included in the returned equivalents along with the
former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now;
fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.]
]==]
function export.get_placetype_equivs(placetype, props)
local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former
local form_of_directive
if props then
no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former =
props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category,
props.register_former_as_non_former
form_of_directive = props.form_of_directive
end
local equivs = {}
-- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is
-- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If
-- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by
-- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version
-- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as
-- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into
-- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}},
-- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up
-- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]].
local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix)
local function insert_equiv(pt)
if form_of_prefix then
-- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have
-- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end
-- up processing because `island country` falls back to `country`), and that entry in turn is defined
-- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of
-- handling this is by calling ourselves recursively.
insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt)
else
insert(equivs, {qualifier=qualifier, placetype=pt})
end
end
-- Insert the placetype, along with any fallbacks.
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category)
if ptdata then
insert_equiv(canon_placetype)
if no_fallback then
return
end
local first_placetype = #equivs + 1
local prev_placetype = nil
while true do
local pt_value = export.placetype_data[canon_placetype]
if not pt_value then
internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`",
canon_placetype, prev_placetype)
end
if pt_value.fallback then
insert_equiv(pt_value.fallback)
local last_placetype = #equivs
if last_placetype - first_placetype >= 10 then
local fallback_loop = {}
for i = first_placetype, last_placetype do
insert(fallback_loop, equivs[i].placetype)
end
internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> "))
end
prev_placetype = canon_placetype
canon_placetype = pt_value.fallback
else
break
end
end
end
end
-- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a
-- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no
-- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that
-- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for
-- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a
-- `former`-type directive); these backups live outside this function because we want them done once, late, rather
-- than in each invocation of `process_and_insert_placetype()`.
local function process_and_insert_placetype(qualifier, reduced_placetype)
if form_of_directive then
-- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of
-- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by
-- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of
-- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for
-- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.)
insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive)
if not no_fallback then
local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype)
local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or
export.get_placetype_prop(pt, "class") end
)
if not directive_type then
local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.placetype_data[pt] end
)
if pt_data then
internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " ..
'located but directive-specific type property %s missing, and so is "class"; ' ..
"placetypes searched are %s", reduced_placetype, form_of_directive,
form_of_directive .. "_type", reduced_placetype_equivs)
else
-- This should be allowed, as we allow unrecognized placetypes in general.
end
elseif directive_type ~= "!" then
insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive)
end
end
else
insert_placetype_and_fallbacks(qualifier, reduced_placetype)
end
end
-- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left
-- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers).
local splits
if no_split_qualifiers then
splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}}
else
splits = export.split_qualifiers_from_placetype(placetype)
end
for _, split in ipairs(splits) do
local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3)
-- If a special "former" qualifier like `former` or `historical` isn't present, and
-- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for
-- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing
-- placetypes, and handle accordingly.
local unlinked_this_qualifier
if this_qualifier and this_qualifier:find("%[") then
unlinked_this_qualifier = export.remove_links_and_html(this_qualifier)
else
unlinked_this_qualifier = this_qualifier
end
local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil
if not former_qualifiers and not no_check_for_inherently_former then
former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype,
function(pt) return export.get_placetype_prop(pt, "inherently_former") end,
{no_check_for_inherently_former = true})
end
-- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal
-- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified
-- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped
-- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval`
-- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes
-- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the
-- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a
-- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like
-- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and
-- don't enter anything into `equivs`.
if former_qualifiers then
-- FIXME: Should we respect `no_fallback` here? My instinct says no.
local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, {
no_check_for_inherently_former = true
})
local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.get_placetype_prop(pt, "former_type") or
export.get_placetype_prop(pt, "class") end
)
if not former_type then
local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs,
function(pt) return export.placetype_data[pt] end
)
if pt_data then
internal_error("For placetype %s, placetype data located but `former_type` missing; " ..
"placetypes searched are %s", reduced_placetype, reduced_placetype_equivs)
else
-- Enable error when we've verified there aren't any examples.
track("bad-former-placetype")
track("bad-former-placetype/" .. reduced_placetype)
--process_error("For placetype '%s', unrecognized placetype following 'former'-type " ..
-- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs))
end
elseif former_type ~= "!" then
-- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible
-- for (e.g.) former provinces of the Roman empire to be categorized specially.
for _, former_qualifier in ipairs(former_qualifiers) do
process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype)
end
for _, former_qualifier in ipairs(former_qualifiers) do
process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type)
end
-- HACK! See explanation above for `register_former_as_non_former`.
if register_former_as_non_former then
process_and_insert_placetype(prev_qualifier, reduced_placetype)
end
-- If we're processing a form-of directive, after doing everything else we do
-- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup.
if form_of_directive and not no_fallback then
for _, former_qualifier in ipairs(former_qualifiers) do
insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier ..
" place")
end
end
-- Don't continue processing equivs. The reason is probably the same as the `break` below for
-- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and
-- non-former equivs will otherwise take precedence.
break
end
end
-- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs
-- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping.
if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then
insert(equivs, {
qualifier=prev_qualifier,
placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier]
})
-- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the
-- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the
-- latter ends up generating the category because the category for 'mythological location' is set as
-- the default value, which is used only when no non-default category can be found.
break
end
-- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined
-- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype.
-- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts
-- the full placetype into `equivs`.
local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier
process_and_insert_placetype(qualifier, reduced_placetype)
-- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced
-- placetypes to avoid the "overseas territory treated as a territory" issue describe above.
if no_fallback then
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category)
if canon_placetype then
break
end
end
end
-- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g.
-- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype
-- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g.
-- [[Category:en:Former names of places]] in an invocation like
-- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}};
-- the `used from 1971–1997` gets treated as a placetype and we're called on it.
if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then
insert_placetype_and_fallbacks(nil, form_of_directive .. " place")
end
return equivs
end
function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only)
for _, equiv in ipairs(equivs) do
local retval = fun(equiv.placetype)
if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then
return retval, equiv
end
end
return nil, nil
end
--[==[
Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent
placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false});
but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value.
FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a
non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the
equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or
non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil},
the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value.
]==]
function export.get_equiv_placetype_prop(placetype, fun, props)
if not placetype then
return fun(nil), nil
end
return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun,
props and props.continue_on_nil_only)
end
--[==[
Return the article that is used with an entry placetype. We proceed as follows:
# See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article).
This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`.
# Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that
`"the"` should be used.
# Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from
the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the`
(principally for use with placetypes like `union territory`).
# Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with
a vowel and `"a"` otherwise.
If `ucfirst` is true, the first letter of the article is made upper-case.
]==]
function export.get_placetype_article(placetype, ucfirst)
local art
local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$")
if qualifier then
local canon = export.placetype_qualifiers[qualifier]
if type(canon) == "table" then
art = canon.article
end
end
if art == false then
return art
end
if art == nil then
local placetype_use_the = export.get_equiv_placetype_prop(placetype,
function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end)
if placetype_use_the then
art = "the"
else
art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article")
if not art then
art = require(en_utilities_module).get_indefinite_article(placetype)
end
end
end
if ucfirst then
art = m_strutils.ucfirst(art)
end
return art
end
--[==[
Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories
(e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"di"` if not specified.
]==]
function export.get_placetype_entry_preposition(placetype)
local pt_prep = export.get_equiv_placetype_prop(placetype,
function(pt) return export.get_placetype_prop(pt, "preposition") end
)
return pt_prep or "di"
end
--[==[
Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's
`holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding
to the holonym "c/Italy", a key "negara" with the list value {"Italy"} will be added to the place desc's
`holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the
end of the value's list.
]==]
function export.key_holonym_into_place_desc(place_desc, holonym)
if not holonym.placetype then
return
end
-- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do
-- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms
-- of different types just because they have the same fallback.
local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true})
local unlinked_placename = holonym.unlinked_placename
for _, equiv in ipairs(equiv_placetypes) do
local placetype = equiv.placetype
if not place_desc.holonyms_by_placetype then
place_desc.holonyms_by_placetype = {}
end
if not place_desc.holonyms_by_placetype[placetype] then
place_desc.holonyms_by_placetype[placetype] = {unlinked_placename}
else
insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename)
end
end
end
--[=[
Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the
placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This
will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to
whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype
data structure for the placetype, and `from_category` indicates that we are generating the description of a category
(otherwise we are generating the display form of an entry placetype).
]=]
local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror)
if not from_category and ptdata.disallow_in_entries then
if noerror then
return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]"
else
process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype)
end
end
if link == nil then
internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype)
elseif link == true then
if orig_placetype then
return ("[[%s|%s]]"):format(sg_placetype, orig_placetype)
else
return ("[[%s]]"):format(sg_placetype)
end
elseif link == false then
process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype)
elseif link == "w" then
return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype)
elseif link == "separately" then
if orig_placetype then
local sg_words = split(sg_placetype, " ")
local orig_words = split(orig_placetype, " ")
if #sg_words ~= #orig_words then
internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " ..
"has different number of words", orig_placetype, sg_placetype)
else
for i = 1, #sg_words do
if sg_words[i] == orig_words[i] then
sg_words[i] = ("[[%s]]"):format(sg_words[i])
else
sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i])
end
end
return concat(sg_words, " ")
end
else
return (sg_placetype:gsub("([^ ]+)", "[[%1]]"))
end
elseif link:find("^%+") then
link = link:sub(2) -- discard initial +
return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype)
elseif not orig_placetype then
return link
else
return require(en_utilities_module).pluralize(link)
end
end
--[==[
Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the
plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying
as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description
of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like
[[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or
`"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description
for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with
special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the
"full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is
prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be
disallowed.
]==]
function export.get_placetype_display_form(placetype, category_type, return_full, noerror)
local from_category = not not category_type
local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category)
if canon_placetype then
local raw_link
local function is_linked_string(str)
return type(str) == "string" and str:find("%[%[")
end
if category_type then
local fetched_full
local function fetch_maybe_full(prop)
local retval = ptdata["full_" .. prop]
if retval ~= nil then
if return_full then
return retval, true
else
internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval)
end
end
return ptdata[prop], false
end
local function maybe_prefix(str)
if return_full and not fetched_full then
return "names of " .. str
else
return str
end
end
-- Careful with `false` as possible value.
if category_type == "top-level" then
raw_link, fetched_full = fetch_maybe_full("category_link_top_level")
elseif category_type == "noncity" then
raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity")
elseif category_type == "city" then
raw_link, fetched_full = fetch_maybe_full("category_link_before_city")
else
internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"',
category_type)
end
if type(raw_link) == "string" then
return maybe_prefix(raw_link), ptdata
elseif raw_link ~= nil then
return raw_link, ptdata
end
raw_link, fetched_full = fetch_maybe_full("category_link")
if raw_link == false then
return raw_link, ptdata
end
if is_linked_string(raw_link) then
return maybe_prefix(raw_link), ptdata
end
if ptmatch == "plural" then
raw_link, fetched_full = fetch_maybe_full("plural_link")
if raw_link == false then
return raw_link, ptdata
end
if is_linked_string(raw_link) then
return maybe_prefix(raw_link), ptdata
end
end
if raw_link == nil then
raw_link, fetched_full = fetch_maybe_full("link")
end
if raw_link == false then
return raw_link, ptdata
end
return maybe_prefix(make_placetype_link(raw_link, canon_placetype,
placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata
else
if ptmatch == "plural" then
raw_link = ptdata.plural_link
if raw_link == false then
process_error("Placetype %s cannot appear plural", placetype)
end
if is_linked_string(raw_link) then
return raw_link, ptdata
end
end
if raw_link == nil then
raw_link = ptdata.link
end
return make_placetype_link(raw_link, canon_placetype,
placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata
end
end
return nil
end
local function resolve_unlinked_placename_display_aliases(placetype, placename)
local equiv_placetypes = export.get_placetype_equivs(placetype)
for i, equiv in ipairs(equiv_placetypes) do
equiv_placetypes[i] = equiv.placetype
end
local all_display_aliases_found = {}
local all_others_found = {}
for group, key, spec in m_locations.iterate_matching_location {
placetypes = equiv_placetypes,
placename = placename,
alias_resolution = "display",
} do
if spec.alias_of and spec.display then
insert(all_display_aliases_found, {group, key, spec, spec.display_as_full})
else
insert(all_others_found, {group, key, spec})
end
end
if not all_display_aliases_found[1] then
return placename
elseif all_display_aliases_found[2] then
internal_error("Found multiple matching display aliases for placename %s, placetype %s: " ..
"all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found,
all_others_found)
elseif all_others_found[1] then
internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " ..
"all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found,
all_others_found)
else
local group, key, spec, as_full = unpack(all_display_aliases_found[1])
local full, elliptical = m_locations.key_to_placename(group, key)
return as_full and full or elliptical
end
end
--[==[
If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged.
Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`,
`country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as
`United States`.
'''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they
should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed.
For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to
`Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political
connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!)
to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two
terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to
`North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly
display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve
alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and
consistency.
]==]
function export.resolve_placename_display_aliases(placetype, placename)
-- If the placename is a link, apply the alias inside the link.
-- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will
-- be empty.
local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$")
if link then
if linktext ~= "" then
local alias = resolve_unlinked_placename_display_aliases(placetype, linktext)
return "[[" .. link .. "|" .. alias .. "]]"
else
local alias = resolve_unlinked_placename_display_aliases(placetype, link)
return "[[" .. alias .. "]]"
end
else
return resolve_unlinked_placename_display_aliases(placetype, placename)
end
end
--[==[
Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key.
]==]
function export.get_prefixed_key(key, spec)
if spec.the then
return "the " .. key
else
return key
end
end
-- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary.
export.iterate_matching_location = m_locations.iterate_matching_location
--[=[
Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the
specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If
`first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is
specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified
by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the
holonym index and holonym structure, similar to `ipairs()`.
]=]
function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms)
local stop_at_also = not not first_holonym_index
return function(place_desc, index)
while true do
index = index + 1
local this_holonym = place_desc.holonyms[index]
-- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also`
-- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym
-- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with
-- `:also`.
if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then
return nil
end
-- If not placetype, we're processing raw text, which we normally want to skip.
if include_raw_text_holonyms or this_holonym.placetype then
return index, this_holonym
end
end
end, place_desc, first_holonym_index and first_holonym_index - 1 or 0
end
--[==[
If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all
such known locations, returning for each location the corresponding key, spec and group as well as the trail of
ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between
the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data`
are:
* `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with
`iterate_matching_location()`.
* `holonym_placename`: The placename of the holonym.
* `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the
holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms
following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none
exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.)
* `place_desc`: Description of the place; used for the holonyms, to check for container mismatches.
Returns four values: the location group, the canonical key by which the location is known, the spec object describing
the location and the trail of ancestral containers for the location. The first three values are the same as for
`iterate_matching_location`.
]==]
function export.iterate_matching_holonym_location(data)
local holonym_placetype, holonym_placename, holonym_index, place_desc =
data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc
local matching_location_iterator = m_locations.iterate_matching_location {
placetypes = holonym_placetype,
placename = holonym_placename,
}
return function()
while true do
local group, key, spec = matching_location_iterator()
if not group then
return nil
end
local container_trail = {}
-- For each level of container, check that there are no mismatches (i.e. other location of the same
-- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container
-- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city
-- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of
-- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark,
-- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New
-- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough,
-- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If
-- there are no mismatches at any level we assume we're dealing with the right known location.
--
-- If at a given level there are multiple containing locations, we count a match if any holonym matches any
-- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any
-- containing location.
local containers_mismatch = false
for containers in m_locations.iterate_containers(group, key, spec) do
insert(container_trail, containers)
local match_at_level = false
local mismatch_at_level = false
for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc,
holonym_index and holonym_index + 1 or nil) do
local other_source_holonym = other_holonym.augmented_from_holonym
if other_source_holonym and other_source_holonym.placetype == holonym_placetype and
other_source_holonym.unlinked_placename ~= holonym_placename then
-- Ignore holonyms added during the augmentation process for other holonyms of the same
-- placetype as the placetype of the holonym we're considering. See comment in
-- augment_holonyms_with_container() for why we do this.
-- continue; grrr, no 'continue' in Lua
else
local holonym_matches_at_level = false
local holonym_exists_with_same_placetype = false
for _, container in ipairs(containers) do
if not container.spec.no_check_holonym_mismatch then
local full_container_placename, elliptical_container_placename =
m_locations.key_to_placename(container.group, container.key)
local placetypes = container.spec.placetype
if type(placetypes) ~= "table" then
placetypes = {placetypes}
end
local placetype_equivs = {}
for _, pt in ipairs(placetypes) do
m_table.extend(placetype_equivs, export.get_placetype_equivs(pt))
end
local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs(
placetype_equivs, function(placetype)
return other_holonym.placetype == placetype and
(other_holonym.unlinked_placename == full_container_placename or
other_holonym.unlinked_placename == elliptical_container_placename)
end
)
if this_holonym_matches then
holonym_matches_at_level = true
break
end
local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs(
placetype_equivs, function(placetype)
return other_holonym.placetype == placetype
end
)
if this_holonym_exists_with_same_placetype then
-- We seem to have a mismatch at this level. But before we decide conclusively that this
-- is the case, check to see whether the putative mismatch is an alias and matches when
-- we resolve the alias.
for oh_group, oh_key, oh_spec, oh_container_trail in
export.iterate_matching_holonym_location {
holonym_placetype = other_holonym.placetype,
holonym_placename = other_holonym.unlinked_placename,
holonym_index = other_holonym_index,
place_desc = place_desc,
} do
local oh_full_placename, oh_elliptical_placename =
m_locations.key_to_placename(oh_group, oh_key)
if oh_full_placename == full_container_placename or
oh_elliptical_placename == elliptical_container_placename then
-- Alias matched when resolved.
this_holonym_matches = true
break
end
end
if this_holonym_matches then
-- Alias matched above when resolved.
holonym_matches_at_level = true
break
else
-- Not an alias, or doesn't match when resolved. We have a true mismatch.
holonym_exists_with_same_placetype = true
end
end
end
end
if holonym_matches_at_level then
match_at_level = true
break
end
if holonym_exists_with_same_placetype then
mismatch_at_level = true
end
end
end
if not match_at_level and mismatch_at_level then
containers_mismatch = true
break
end
end
if not containers_mismatch then
return group, key, spec, container_trail
end
end
end
end
--[==[
If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the
corresponding key, spec and group as well as the trail of ancestral containers. This is like
`iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this
would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To
fix this, specify additional following disambiguating holonyms, e.g.
{{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}.
]==]
function export.find_matching_holonym_location(data)
local all_found = {}
for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do
insert(all_found, {group, key, spec, container_trail})
end
if not all_found[1] then
return nil
elseif all_found[2] then
local holonym_placetype = data.holonym_placetype
if type(holonym_placetype) == "table" then
holonym_placetype = concat(holonym_placetype, ",")
end
local found_keys = {}
for _, found in ipairs(all_found) do
local _, key, _, _ = unpack(found)
insert(found_keys, key)
end
error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " ..
"containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys)))
else
return unpack(all_found[1])
end
end
------------------------------------------------------------------------------------------
-- Placename and placetype data --
------------------------------------------------------------------------------------------
--[==[ var:
This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their
canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which
applies to categorization and other processes but not to display.
The most important aliases are for holonym placetypes, particularly those that occur often such as "negara", "negeri",
"province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g.
"census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype.
Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be
interpreted as "department", "daerah" or "division").
]==]
export.placetype_aliases = {
["acomm"] = "autonomous community",
["adr"] = "administrative region",
["adterr"] = "administrative territory", -- Pakistan
["aobl"] = "autonomous oblast",
["aokr"] = "autonomous okrug",
["ap"] = "autonomous province",
["apref"] = "autonomous prefecture",
["aprov"] = "autonomous province",
["ar"] = "autonomous region",
["arch"] = "archipelago",
["arep"] = "autonomous republic",
["aterr"] = "autonomous territory",
["atu"] = "autonomous territorial unit",
["bor"] = "borough",
["c"] = "negara",
["can"] = "canton",
["carea"] = "council area",
["cc"] = "constituent country",
["cdblock"] = "community development block",
["cdep"] = "Crown dependency",
["CDP"] = "census-designated place",
["cdp"] = "census-designated place",
["clcity"] = "county-level city",
["co"] = "county",
["cobor"] = "county borough",
["colcity"] = "county-level city",
["coll"] = "collectivity",
["comm"] = "community",
["cont"] = "benua",
["contr"] = "kawasan benua",
["contregion"] = "kawasan benua",
["cpar"] = "civil parish",
["damun"] = "direct-administered municipality",
["dep"] = "dependency",
["department capital"] = "departmental capital",
["dept"] = "department",
["depterr"] = "dependent territory",
["dist"] = "daerah",
["distmun"] = "district municipality",
["div"] = "division",
["emp"] = "empire",
["fpref"] = "French prefecture",
["gov"] = "governorate",
["govnat"] = "governorate",
["home-rule city"] = "home rule city",
["home-rule municipality"] = "home rule municipality",
["inner-city area"] = "inner city area",
["ires"] = "Indian reservation",
["isl"] = "pulau",
["lbor"] = "London borough",
["lga"] = "local government area",
["lgarea"] = "local government area",
["lgd"] = "local government district",
["lgdist"] = "local government district",
["metbor"] = "metropolitan borough",
["metcity"] = "metropolitan city",
["metmun"] = "metropolitan municipality",
["mtn"] = "mountain",
["mun"] = "municipality",
["mundist"] = "municipal district",
["nonmetropolitan county"] = "non-metropolitan county",
["obl"] = "oblast",
["okr"] = "okrug",
["p"] = "province",
["par"] = "parish",
["parmun"] = "parish municipality",
["pen"] = "peninsula",
["plcity"] = "prefecture-level city",
["plcolony"] = "Polish colony",
["pref"] = "prefecture",
["prefcity"] = "prefecture-level city",
["preflcity"] = "prefecture-level city",
["prov"] = "province",
["r"] = "region",
["range"] = "mountain range",
["rcm"] = "regional county municipality",
["rcomun"] = "regional county municipality",
["rdist"] = "regional district",
["rep"] = "republic",
["rhrom"] = "rural hromada",
["riv"] = "river",
["rmun"] = "regional municipality",
["robor"] = "royal borough",
["romp"] = "Roman province",
["runit"] = "regional unit",
["rurmun"] = "rural municipality",
["s"] = "negeri",
["sar"] = "special administrative region",
["shrom"] = "settlement hromada",
["spref"] = "subprefecture",
["sprefcity"] = "sub-prefectural city",
["sprovcity"] = "subprovincial city",
["submet city"] = "sub-metropolitan city",
["submetropolitan city"] = "sub-metropolitan city",
["sub-prefecture-level city"] = "sub-prefectural city",
["sub-provincial city"] = "subprovincial city",
["sub-provincial district"] = "subprovincial district",
["terr"] = "wilayah",
["terrauth"] = "territorial authority",
["twp"] = "township",
["twpmun"] = "township municipality",
["uauth"] = "unitary authority",
["ucomm"] = "unincorporated community",
["udist"] = "unitary district",
["uhrom"] = "urban hromada",
["uterr"] = "union territory",
["utwpmun"] = "united township municipality",
["val"] = "valley",
["vdc"] = "village development committee",
["vil"] = "village",
["voi"] = "voivodeship",
["wcomm"] = "Welsh community",
}
local no_link_def_article = {link = false, article = "the"}
local no_link_no_article = {link = false, article = false}
--[==[ var:
These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype
`large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the
value in the following table is a string, the qualifier will display according to the string. If the value is `true`,
the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be
linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain
those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating
`inland sea` as equivalent to `sea`.
]==]
export.placetype_qualifiers = {
-- generic qualifiers
["huge"] = false,
["tiny"] = false,
["large"] = false,
["big"] = false,
["mid-size"] = false,
["mid-sized"] = false,
["small"] = false,
["sizable"] = false,
["important"] = false,
["long"] = false,
["short"] = false,
["major"] = false,
["minor"] = false,
["high"] = false,
["tall"] = false,
["low"] = false,
["left"] = false, -- left tributary
["right"] = false, -- right tributary
["modern"] = false, -- for use in opposition to "ancient" in another definition
-- "former" qualifiers
["abandoned"] = true,
["ancient"] = true,
["deserted"] = true,
["extinct"] = true,
["former"] = false,
["historic"] = "historical",
["historical"] = true,
["medieval"] = true,
["mediaeval"] = true,
["ruined"] = true,
["traditional"] = true,
-- sea qualifiers
["coastal"] = true,
["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]]
["maritime"] = true,
["overseas"] = true,
["seaside"] = true,
["beachfront"] = true,
["beachside"] = true,
["riverside"] = true,
-- lake qualifiers
["freshwater"] = true,
["saltwater"] = true,
["endorheic"] = true,
["oxbow"] = true,
["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link
["tidal"] = true,
-- land qualifiers
["hilltop"] = true,
["hilly"] = true,
["insular"] = true,
["peninsular"] = true,
["chalk"] = true,
["karst"] = true,
["limestone"] = true,
["mountainous"] = true,
["mountaintop"] = true,
["alpine"] = true,
["volcanic"] = true, -- for an island
-- political status qualifiers
["autonomous"] = true,
["incorporated"] = true,
["special"] = true,
["unincorporated"] = true,
["coterminous"] = true,
-- monetary status/etc. qualifiers
["fashionable"] = true,
["wealthy"] = true,
["affluent"] = true,
["declining"] = true,
-- city vs. rural qualifiers
["urban"] = true,
["suburban"] = true,
["exurban"] = true,
["outlying"] = true,
["remote"] = true,
["rural"] = true,
["outback"] = true,
["inner"] = false,
["inner-city"] = true,
["central"] = false,
["outer"] = false,
-- land use qualifiers
["residential"] = true,
["agricultural"] = true,
["business"] = true,
["commercial"] = true,
["industrial"] = true,
-- business use qualifiers
["railroad"] = true,
["railway"] = true,
["farming"] = true,
["fishing"] = true,
["mining"] = true,
["logging"] = true,
["cattle"] = true,
-- tourism use qualifiers
["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne
["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne
["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne
-- religious qualifiers
["holy"] = true,
["sacred"] = true,
["religious"] = true,
["secular"] = true,
-- qualifiers for nonexistent places
["claimed"] = false,
["fictional"] = true,
["legendary"] = true,
["mythical"] = true,
["mythological"] = true,
-- directional qualifiers
["northern"] = false,
["southern"] = false,
["eastern"] = false,
["western"] = false,
["north"] = false,
["south"] = false,
["east"] = false,
["west"] = false,
["northeastern"] = false,
["southeastern"] = false,
["northwestern"] = false,
["southwestern"] = false,
["northeast"] = false,
["southeast"] = false,
["northwest"] = false,
["southwest"] = false,
-- seasonal qualifiers
["summer"] = true, -- e.g. for 'summer capital'
["winter"] = true,
-- legal status qualifiers
-- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]].
["official"] = true,
["unofficial"] = true,
["de facto"] = true, -- 'de facto capital'
["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link
["de jure"] = true, -- 'de jure capital'
["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link
-- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state'
-- misc. qualifiers
["planned"] = true,
["chartered"] = true,
["landlocked"] = true,
["uninhabited"] = true,
-- superlative qualifiers
["first"] = no_link_def_article,
["second"] = no_link_def_article, -- for "second largest" etc.
["third"] = no_link_def_article,
["fourth"] = no_link_def_article,
["last"] = no_link_def_article,
["only"] = no_link_def_article,
["sole"] = no_link_def_article,
["main"] = no_link_def_article,
["largest"] = no_link_def_article,
["biggest"] = no_link_def_article,
["smallest"] = no_link_def_article,
["shortest"] = no_link_def_article,
["longest"] = no_link_def_article,
["tallest"] = no_link_def_article,
["highest"] = no_link_def_article,
["lowest"] = no_link_def_article,
["leftmost"] = no_link_def_article,
["rightmost"] = no_link_def_article,
["innermost"] = no_link_def_article,
["outermost"] = no_link_def_article,
["northernmost"] = no_link_def_article,
["southernmost"] = no_link_def_article,
["westernmost"] = no_link_def_article,
["easternmost"] = no_link_def_article,
["northwesternmost"] = no_link_def_article,
["southwesternmost"] = no_link_def_article,
["northeasternmost"] = no_link_def_article,
["southeasternmost"] = no_link_def_article,
-- several/various
["several"] = no_link_no_article,
["various"] = no_link_no_article,
["numerous"] = no_link_no_article,
["multiple"] = no_link_no_article,
["many"] = no_link_no_article,
["other"] = no_link_no_article,
}
--[==[ var:
In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This
is overridden by `placetype_data` and `qualifier_to_placetype_equivs`.
]==]
export.former_qualifiers = {
["abandoned"] = {"FORMER"},
["ancient"] = {"ANCIENT", "FORMER"},
["former"] = {"FORMER"},
["extinct"] = {"FORMER"},
["historic"] = {"FORMER"},
["historical"] = {"FORMER"},
["medieval"] = {"ANCIENT", "FORMER"},
["mediaeval"] = {"ANCIENT", "FORMER"},
["ruined"] = {"ANCIENT", "FORMER"},
["traditional"] = {"FORMER"},
}
--[==[ var:
In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the
specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`.
]==]
export.qualifier_to_placetype_equivs = {
["fictional"] = "fictional location",
["legendary"] = "mythological location",
["mythical"] = "mythological location",
["mythological"] = "mythological location",
-- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands
-- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are
-- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital.
["claimed"] = "claimed political division",
}
--[==[ var:
Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse
mapping also exists.
]==]
export.placetype_to_capital_cat = {
["autonomous community"] = "autonomous community capitals",
["canton"] = "cantonal capitals",
["comarca"] = "comarca capitals",
["negara"] = "national capitals",
-- The following are not obviously different from 'county seats' but the latte terminology is used in the US.
["county"] = "county capitals",
["department"] = "departmental capitals",
["daerah"] = "district capitals",
["division"] = "division capitals",
["emirate"] = "emirate capitals",
["governorate"] = "governorate capitals",
["hromada"] = "hromada capitals",
["krai"] = "krai capitals",
["metropolitan city"] = "metropolitan city capitals",
["municipality"] = "municipal capitals",
["oblast"] = "oblast capitals",
["okrug"] = "okrug capitals",
["prefecture"] = "prefectural capitals",
["province"] = "provincial capitals",
["raion"] = "raion capitals",
["regency"] = "regency capitals",
["region"] = "regional capitals",
["regional unit"] = "regional unit capitals",
["republic"] = "republic capitals",
["negeri"] = "state capitals",
["wilayah"] = "territorial capitals",
["voivodeship"] = "voivodeship capitals",
}
--[==[ var:
This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple
ways that placenames can come to be preceded by "the":
# Listed here.
# Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code
just below the map.
# The placetype of the placename has `holonym_use_the = true` in its placetype_data.
# A regex in placename_the_re matches the placename.
Note that "the" is added only before the first holonym in a place description.
]==]
export.placename_article = {
-- This should only contain info that can't be inferred from [[Module:place/locations]].
["archipelago"] = {
["Cyclades"] = "the",
["Dodecanese"] = "the",
},
["negara"] = {
["Holy Roman Empire"] = "the",
},
["empire"] = {
["Holy Roman Empire"] = "the",
},
["pulau"] = {
["North Island"] = "the",
["South Island"] = "the",
},
["region"] = {
["Balkans"] = "the",
["Russian Far East"] = "the",
["Caribbean"] = "the",
["Caucasus"] = "the",
["Middle East"] = "the",
["New Territories"] = "the",
["North Caucasus"] = "the",
["South Caucasus"] = "the",
["West Bank"] = "the",
["Gaza Strip"] = "the",
},
["valley"] = {
["San Fernando Valley"] = "the",
},
}
--[==[ var:
Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all
holonyms, otherwise only the regexes for the holonym's placetype apply.
]==]
export.placename_the_re = {
-- We don't need entries for peninsulas, seas, oceans, gulfs or rivers
-- because they have holonym_use_the = true.
["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "},
["bay"] = {"^Bay of "},
["lake"] = {"^Lake of "},
["negara"] = {"^Republic of ", " Republic$"},
["republic"] = {"^Republic of ", " Republic$"},
["region"] = {" [Rr]egion$"},
["river"] = {" River$"},
["local government area"] = {"^Shire of "},
["county"] = {"^Shire of "},
["Indian reservation"] = {" Reservation", " Nation"},
["tribal jurisdictional area"] = {" Reservation", " Nation"},
}
--[==[ var:
If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of
holonyms for categorization (but not display) purposes.
]==]
export.cat_implications = {
["region"] = {
["Eastern Europe"] = {"benua/Europe"},
["Central Europe"] = {"benua/Europe"},
["Western Europe"] = {"benua/Europe"},
["South Europe"] = {"benua/Europe"},
["Southern Europe"] = {"benua/Europe"},
["Northern Europe"] = {"benua/Europe"},
["Northeast Europe"] = {"benua/Europe"},
["Northeastern Europe"] = {"benua/Europe"},
["Southeast Europe"] = {"benua/Europe"},
["Southeastern Europe"] = {"benua/Europe"},
["North Caucasus"] = {"benua/Europe"},
["South Caucasus"] = {"benua/Asia"},
["South Asia"] = {"benua/Asia"},
["Southern Asia"] = {"benua/Asia"},
["East Asia"] = {"benua/Asia"},
["Eastern Asia"] = {"benua/Asia"},
["Central Asia"] = {"benua/Asia"},
["West Asia"] = {"benua/Asia"},
["Western Asia"] = {"benua/Asia"},
["Southeast Asia"] = {"benua/Asia"},
["North Asia"] = {"benua/Asia"},
["Northern Asia"] = {"benua/Asia"},
["Anatolia"] = {"benua/Asia"},
["Asia Minor"] = {"benua/Asia"},
["Mesopotamia"] = {"benua/Asia"},
["North Africa"] = {"benua/Africa"},
["Central Africa"] = {"benua/Africa"},
["West Africa"] = {"benua/Africa"},
["East Africa"] = {"benua/Africa"},
["Southern Africa"] = {"benua/Africa"},
["Central America"] = {"benua/Central America"},
["Caribbean"] = {"benua/North America"},
["Polynesia"] = {"benua/Oceania"},
["Micronesia"] = {"benua/Oceania"},
["Melanesia"] = {"benua/Oceania"},
["Siberia"] = {"country/Russia", "benua/Asia"},
["Russian Far East"] = {"country/Russia", "benua/Asia"},
["South Wales"] = {"constituent country/Wales", "benua/Europe"},
["Balkans"] = {"benua/Europe"},
["West Bank"] = {"country/Palestine", "benua/Asia"},
["Gaza"] = {"country/Palestine", "benua/Asia"},
["Gaza Strip"] = {"country/Palestine", "benua/Asia"},
}
}
------------------------------------------------------------------------------------------
-- Category and display handlers --
------------------------------------------------------------------------------------------
local function city_type_cat_handler(data)
local entry_placetype = data.entry_placetype
local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities")
if not generic_before_non_cities then
internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" ..
" setting", entry_placetype)
end
local plural_entry_placetype = export.pluralize_placetype(entry_placetype)
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and not spec.is_former_place and not spec.is_city then
-- Categorize both in key, and in the larger polity that the key is part of, e.g. [[Hirakata]] goes in both
-- "Cities in Osaka Prefecture" and "Cities in Japan". (But don't do the latter if no_container_cat is set.)
local cap_plural_entry_placetype = ucfirst(plural_entry_placetype)
local retcats = {("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities,
export.get_prefixed_key(key, spec))}
if container_trail[1] and not spec.no_container_cat then
for _, container in ipairs(container_trail[1]) do
insert(retcats, ("%s %s %s"):format(cap_plural_entry_placetype, generic_before_non_cities,
export.get_prefixed_key(container.key, container.spec)))
end
end
return retcats
end
end
local function capital_city_cat_handler(data, non_city)
local holonym_placetype, holonym_placename, holonym_index, place_desc =
data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc
-- The first time we're called we want to return something; otherwise we will be called for later-mentioned
-- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in
-- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital
-- category/categories we add below.
local retcats
if not non_city and place_desc.holonyms then
for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do
local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename
retcats = city_type_cat_handler {
entry_placetype = "city",
holonym_placetype = h_placetype,
holonym_placename = h_placename,
holonym_index = h_index,
place_desc = place_desc,
}
if retcats then
break
end
end
end
if not retcats then
retcats = {}
end
-- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we
-- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State
-- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory'
-- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's
-- an entry for 'autonomous community').
local capital_cat = export.placetype_to_capital_cat[holonym_placetype]
if not capital_cat then
capital_cat = export.placetype_to_capital_cat[holonym_placetype:gsub("^.* ", "")]
end
if capital_cat then
capital_cat = ucfirst(capital_cat)
local inserted_specific_variant_cat = false
if holonym_index then
-- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern
-- where we use :also to specify that a given city is the capital at multiple surrounding levels.
local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index
for h_index = holonym_index, #place_desc.holonyms do
if place_desc.holonyms[h_index].placetype then
matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location {
holonym_placetype = place_desc.holonyms[h_index].placetype,
holonym_placename = place_desc.holonyms[h_index].unlinked_placename,
holonym_index = h_index,
place_desc = place_desc,
}
if matching_group then
matching_holonym_index = h_index
break
end
end
end
if matching_holonym_index == holonym_index then
if matching_container_trail[1] and not matching_spec.no_container_cat then
for _, container in ipairs(matching_container_trail[1]) do
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(container.key,
container.spec)))
inserted_specific_variant_cat = true
end
end
elseif matching_holonym_index then
-- Check to make sure that the holonym placetype we were called on is listed among the
-- divtypes of the location we found.
local function insert_specific_variant_if_possible(key, spec)
return export.get_equiv_placetype_prop(holonym_placetype, function(pt)
local plural_holonym_placetype = export.pluralize_placetype(pt)
local saw_matching_div
if spec.divs then
local divs = spec.divs
if type(divs) ~= "table" then
divs = {divs}
end
for _, div in ipairs(divs) do
if type(div) ~= "table" then
div = {type = div}
end
if plural_holonym_placetype == div.type then
saw_matching_div = true
break
end
end
end
if saw_matching_div then
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(key, spec)))
return true
end
return false
end)
end
if insert_specific_variant_if_possible(matching_key, matching_spec) then
inserted_specific_variant_cat = true
elseif not matching_spec.no_container_cat then
for _, containers in ipairs(matching_container_trail) do
local saw_no_container_cat = false
for _, container in ipairs(containers) do
if insert_specific_variant_if_possible(container.key, container.spec) then
inserted_specific_variant_cat = true
break
end
saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat
end
if inserted_specific_variant_cat or saw_no_container_cat then
break
end
end
end
end
else
-- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for
-- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing.
-- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to
-- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab.
-- Possibly we can just skip this case entirely.
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and container_trail[1] and not spec.no_container_cat then
for _, container in ipairs(container_trail[1]) do
insert(retcats, ("%s of %s"):format(capital_cat, export.get_prefixed_key(container.key,
container.spec)))
inserted_specific_variant_cat = true
end
end
end
if not inserted_specific_variant_cat then
insert(retcats, capital_cat)
end
else
-- We didn't recognize the holonym placetype; just put in 'Capital cities'.
insert(retcats, "Capital cities")
end
return retcats
end
--[=[
This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used
in two ways:
# To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and
[[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym.
# To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym
description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this
case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments,
administrative regions, and for the entire country, and for example we only want to categorize a demonym into
[[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym
invocation only adds the most specific holonym category and not the category of any containing polity (hence if we
add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]).
This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston`
as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and
[[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities
having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]],
[[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing
polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`).
Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the
mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions
Ohio and a holonym for a Columbus in a different country is encountered, because of the function
`augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered.
The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding
language code).
]=]
local function generic_place_cat_handler(data)
local from_demonym = data.from_demonym
local retcats = {}
local function insert_retkey(key, spec)
if from_demonym then
insert(retcats, key)
else
insert(retcats, ("Tempat di %s"):format(export.get_prefixed_key(key, spec)))
end
end
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group then
if not spec.no_generic_place_cat then
-- This applies to continents and continental regions.
insert_retkey(key, spec)
end
-- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in
-- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when
-- no_container_cat is set (e.g. for 'United Kingdom').
if not spec.no_container_cat then
for _, container_set in ipairs(container_trail) do
local stop_adding_containers = false
for _, container in ipairs(container_set) do
if not container.spec.no_generic_place_cat then
insert_retkey(container.key, container.spec)
end
if container.spec.no_container_cat then
stop_adding_containers = true
end
end
if stop_adding_containers then
break
end
end
end
return retcats
end
end
--[==[
Special category handler run for all placetypes that checks for specified division placetypes of known locations and
categorizes appropriately.
]==]
function export.political_division_cat_handler(data)
if data.from_demonym then
return
end
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group then
local divlists = {}
if spec.divs then
insert(divlists, spec.divs)
end
if spec.addl_divs then
insert(divlists, spec.addl_divs)
end
for _, divlist in ipairs(divlists) do
if type(divlist) ~= "table" then
divlist = {divlist}
end
for _, div in ipairs(divlist) do
if type(div) == "string" then
div = {type = div}
end
local sgdiv = export.maybe_singularize_placetype(div.type) or div.type
local prep = div.prep or "di"
local cat_as = div.cat_as or div.type
if type(cat_as) ~= "table" then
cat_as = {cat_as}
end
if not export.placetype_data[sgdiv] then
internal_error("Placetype %s associated with known location key %s and data %s not found in " ..
"`placetype_data`", sgdiv, key, spec)
end
if sgdiv == data.entry_placetype then
local retcats = {}
for _, pt_cat in ipairs(cat_as) do
if type(pt_cat) == "string" then
pt_cat = {type = pt_cat}
end
local pt_prep = pt_cat.prep or prep
insert(retcats, ucfirst(pt_cat.type) .. " " .. pt_prep .. " " ..
export.get_prefixed_key(key, spec))
end
return retcats
end
end
end
end
end
--[==[
This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any
foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value
in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the
modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the
entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the
country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized
into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to
make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is
intended for Newark, New Jersey).
]==]
function export.get_bare_categories(args, overall_place_spec)
local bare_cats = {}
local place_descs = overall_place_spec.descs
local possible_placetypes_by_place_desc = {}
for i, place_desc in ipairs(place_descs) do
possible_placetypes_by_place_desc[i] = {}
for _, placetype in ipairs(place_desc.placetypes) do
if not export.placetype_is_ignorable(placetype) then
local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true})
for _, equiv in ipairs(equivs) do
insert(possible_placetypes_by_place_desc[i], equiv.placetype)
end
end
end
end
local function check_term(term)
-- Treat Wikipedia links like local ones.
term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[")
term = export.remove_links_and_html(term)
term = term:gsub("^the ", "")
for i, place_desc in ipairs(place_descs) do
-- Iterate over all matching locations in case there are multiple, as with Delhi defined as
-- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}.
for group, key, spec, container_trail in export.iterate_matching_holonym_location {
holonym_placetype = possible_placetypes_by_place_desc[i],
holonym_placename = term,
place_desc = place_desc,
} do
insert(bare_cats, key)
end
end
end
-- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)?
-- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There
-- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the
-- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The
-- advantage of checking when the language isn't English is we catch those places that fail to give an English
-- translation but where the translation happens to be the same as the other-language spelling. However, I don't
-- know how often this situation occurs.
check_term(args.pagename or mw.title.getCurrentTitle().subpageText)
for _, t in ipairs(args.t) do
check_term(t)
end
local function check_termobj_list(terms)
for _, term in ipairs(terms) do
if term.eq then
check_term(term.eq)
end
if term.alt or term.term then
check_term(term.alt or term.term)
end
end
end
for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do
local arg = extra_info_terms.arg
if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then
check_termobj_list(extra_info_terms.terms)
end
end
for _, directive in ipairs(overall_place_spec.directives) do
check_termobj_list(directive.terms)
end
return bare_cats
end
--[==[
This is used to augment the holonyms associated with a place description with the containing polities. For example,
given the following:
`# {{tl|place|en|subprefecture|pref/Hokkaido}}.`
We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]].
To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms.
]==]
function export.augment_holonyms_with_container(place_descs)
for _, place_desc in ipairs(place_descs) do
if place_desc.holonyms then
-- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their
-- appropriate position. We don't just put them at the end because some holonyms have use the `:also`
-- modifier, which causes category processing to restart at that point after generating categories for a
-- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with
-- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy
-- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's
-- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g.
-- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the
-- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If
-- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude
-- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`),
-- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar
-- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration
-- rather than modifying the place description once at athe end.
for i = #place_desc.holonyms, 1, -1 do
local holonym = place_desc.holonyms[i]
if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then
local group, key, spec, container_trail = export.find_matching_holonym_location {
holonym_placetype = holonym.placetype,
holonym_placename = holonym.unlinked_placename,
holonym_index = i,
place_desc = place_desc,
}
if group and container_trail[1] and not spec.no_auto_augment_container then
local augmented_holonyms = {}
for j = 1, i do
insert(augmented_holonyms, place_desc.holonyms[j])
end
for _, containers in ipairs(container_trail) do
local any_no_auto_augment_container = false
for _, container in ipairs(containers) do
any_no_auto_augment_container = any_no_auto_augment_container or
container.spec.no_auto_augment_container
local containing_type = container.spec.placetype
if type(containing_type) == "table" then
-- If the containing type is a list, use the first element as the canonical variant.
containing_type = containing_type[1]
end
local full_container_placename, elliptical_container_placename =
m_locations.key_to_placename(container.group, container.key)
-- Don't side-effect holonyms while processing them.
local new_holonym = {
-- By the time we run, the display has already been generated so we don't need to
-- set display_placename.
placetype = containing_type,
-- placename_to_key() for the group should correctly handle both full and elliptical
-- placenames, but the full placename seems less likely to be ambiguous. FIXME: We
-- should just store the key directly and use it when available to avoid having to
-- convert key to placename and back to key.
unlinked_placename = full_container_placename,
-- Indicate that this is an augmented holonym, and was derived from the specified
-- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms
-- derived from holonyms that are different from the holonym we're searching for but
-- of the same placetype. This is to correctly handle a situation like
-- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here,
-- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and
-- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from
-- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to
-- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match
-- in find_matching_holonym_location() because of the mismatch between augmented
-- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later
-- calls to find_matching_holonym_location() fail to match `Gard` (and likewise
-- `Ardèche`) against any known location. To deal with this, we mark augmented
-- holoynms as being augmented due to a source holonym, and when processing a given
-- holonym, ignore augmented holonyms from other holonyms of the same placetype.
-- The restriction to the same placetype is so that `Birmingham` still gets
-- correctly disambiguated to Birmingham, England in the example given above near
-- the top of this function, using the augmented holonym `c/United Kingdom` added by
-- the specified `cc/England` (whose placetype `constituent country` differs from
-- the placetype `city` of Birmingham).
augmented_from_holonym = holonym,
}
insert(augmented_holonyms, new_holonym)
-- But it is safe to modify other parts of the place_desc.
export.key_holonym_into_place_desc(place_desc, new_holonym)
end
if any_no_auto_augment_container then
break
end
end
for j = i + 1, #place_desc.holonyms do
insert(augmented_holonyms, place_desc.holonyms[j])
end
place_desc.holonyms = augmented_holonyms
end
end
end
end
end
end
-- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political
-- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city
-- neighborhoods or larger geographical areas/regions. We handle this as follows:
-- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if
-- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that
-- categorizes into [[:Category|Districts of Maharashtra, India]].
-- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called
-- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g.
-- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.)
-- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set.
-- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if
-- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize
-- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "di" not "of", and
-- note the spelling "neighborhoods" because we're in the US.)
-- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're
-- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or
-- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no
-- categorization.
local function district_neighborhood_cat_handler(data)
local function get_plural_entry_placetype(location_spec, container_trail)
if data.entry_placetype == "suburb" then
return "Suburbs"
else
-- Check for `british_spelling` setting on the spec itself or any container.
local uses_british_spelling = location_spec.british_spelling
if uses_british_spelling == nil and container_trail then
for _, container_set in ipairs(container_trail) do
local must_outer_break = false
for _, container in ipairs(container_set) do
if container.spec.british_spelling ~= nil then
uses_british_spelling = container.spec.british_spelling
must_outer_break = true
break
end
end
if must_outer_break then
break
end
end
end
return uses_british_spelling and "Neighbourhoods" or "Neighborhoods"
end
end
-- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire,
-- etc.)
local group, key, spec, container_trail = export.find_matching_holonym_location(data)
if group and not spec.is_former_place and spec.is_city then
return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)}
end
-- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like
-- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.)
local has_neighborhoods
local entry_placetype = data.entry_placetype
if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then
has_neighborhoods = true
else
-- Otherwise, make sure the current holonym is city-like.
has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt)
return export.get_placetype_prop(pt, "has_neighborhoods")
end, {continue_on_nil_only = true})
end
if has_neighborhoods then
-- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written
-- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}}
-- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need
-- to start with the current holonym, which is especially important for neighborhoods and suburbs that
-- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously
-- we skipped the first/current holonym.)
for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc,
data.holonym_index) do
local other_holonym_data = {
holonym_placetype = other_holonym.placetype,
holonym_placename = other_holonym.unlinked_placename,
holonym_index = other_holonym_index,
place_desc = data.place_desc,
}
local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data)
if group and not spec.is_former_place then
return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") ..
export.get_prefixed_key(key, spec)}
end
end
end
end
function export.check_already_seen_string(holonym_placename, already_seen_strings)
local canon_placename = ulower(m_links.remove_links(holonym_placename))
if type(already_seen_strings) ~= "table" then
already_seen_strings = {already_seen_strings}
end
for _, already_seen_string in ipairs(already_seen_strings) do
if canon_placename:find(already_seen_string) then
return true
end
end
return false
end
-- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display
-- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already.
-- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or
-- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym
-- placename, ignoring case and links. If the prefix isn't already present, we create a link that
-- uses the raw form as the link destination but the prefixed form as the display form, unless the
-- holonym already has a link in it, in which case we just add the prefix.
local function prefix_display_handler(prefix, holonym_placename, already_seen_strings)
if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then
return holonym_placename
end
if holonym_placename:find("%[%[") then
return prefix .. " " .. holonym_placename
end
return prefix .. " [[" .. holonym_placename .. "]]"
end
-- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms.
-- Works identically to prefix_display_handler but for suffixes instead of prefixes.
local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link)
if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then
return holonym_placename
end
if holonym_placename:find("%[%[") then
return holonym_placename .. " " .. suffix
end
if include_suffix_in_link then
return "[[" .. holonym_placename .. " " .. suffix .. "]]"
else
return "[[" .. holonym_placename .. "]] " .. suffix
end
end
-- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed
-- with "borough".
local function borough_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if m_locations.new_york_boroughs[unlinked_placename] then
-- Hack: don't display "borough" after the names of NYC boroughs
return holonym_placename
end
return suffix_display_handler("borough", holonym_placename)
end
local function county_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
-- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]".
if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or
m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then
return prefix_display_handler("County", holonym_placename)
end
-- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County".
if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then
return suffix_display_handler("County", holonym_placename)
end
-- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County".
if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then
return suffix_display_handler("County", holonym_placename)
end
-- FIXME, we need the same for US counties but need to key off the country, not the specific county.
-- Others are displayed as-is.
return holonym_placename
end
-- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture".
-- Others are displayed as e.g. "[[Fthiotida]] prefecture".
local function prefecture_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture"
return suffix_display_handler(suffix, holonym_placename)
end
-- Display handler for provinces of Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized
-- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is.
local function province_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if
m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or
m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or
m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or
m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or
m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or
m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or
m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then
return suffix_display_handler("Province", holonym_placename)
end
return holonym_placename
end
-- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is.
local function state_display_handler(holonym_placetype, holonym_placename)
local unlinked_placename = m_links.remove_links(holonym_placename)
if m_locations.nigeria_states["Negeri " .. unlinked_placename .. ", Nigeria"] then
return suffix_display_handler("Negeri", holonym_placename)
end
return holonym_placename
end
-- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]].
local function voivodesip_display_handler(holonym_placetype, holonym_placename)
return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link")
end
------------------------------------------------------------------------------------------
-- Placetype data --
------------------------------------------------------------------------------------------
--[==[ var:
Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are
placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value
is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form
`Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are
used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the
specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories
like [[:Category:States and territories of Australia]]).
Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of
specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the
placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are
wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed
directly in the placetype data; everything else is handled through category handlers, either per-placetype or special
(such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate
categories is described at the top of [[Module:place]].
There are several recognized property keys, of various types:
1. The following link-related property keys are recognized:
* `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the
placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized
placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in
categories). The possible values are:
*# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is
converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a
two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`.
*# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g.
`<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the
placetype is given plural.
*# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies
`"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or
`<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified.
*# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it
will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as
`<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given.
*# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is
called on the string, which will correctly pluralize most strings, including those with links in them. (If there
are multiple links, the display form of the last link is pluralized.)
*# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as
an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with
the qualifiers `former`, `ancient`, `historical` and such.
* `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of
the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the
value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays
as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if
this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs
especially with multiword placetypes where something other than the last word is pluralized. An example is
`town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses
`link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian
Bokmål word, and template calls aren't currently permitted in link strings), along with
`plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`.
* `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to
the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only
placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of
`category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it,
spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the
value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which
just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a
separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which
clarifies in the category description what a polity is.
* `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories
where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides
`category_link` for this type of category.
* `category_link_before_noncity`: Spec indicating how to display qualified categories of the form
` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides
`category_link` for this type of category.
* `category_link_before_city`: Spec indicating how to display qualified categories of the form
` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for
this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol>
<li>`link = true`</li>
<li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li>
<li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li>
</ol> This has the effect of making the entry placetype `neighborhood` display as just
`<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as
`<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like
`Neighborhoods in Illinois, USA` displays as
`<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`.
* `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value
(a message indicating what to use instead) is displayed in the error message.
* `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value
(a message indicating what to use instead) is displayed in the error message.
2. There is currently one fallback-related property key recognized:
* `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories
get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets
`preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi`
(whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex
example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that
checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under
[[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for
the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if
`c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these
categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be
categorized as e.g. [[:Category:Geographic and cultural areas of England]].
3. There is currently one property to control irregular plurals of placetypes:
* `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in
[[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`,
`-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent;
for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized
as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value
even when the default pluralization algorithm works correctly, if the default singularization algorithm won't
correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`).
4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those
categories:
* `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by
a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated
alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype
`village`); (c) to determine whether to add a parent category `political divisions of specific countries` to
qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are:
*# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire.
*# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement.
*# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a
settlement, such as wards and barangays.
*# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an
unincorporated community, farm or neighborhood.
*# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital
any more.
*# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc.
*# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university,
metro station, park or the like.
*# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary
greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`,
etc. qualifier has no effect on the category of these placetypes.
*# `generic place`: a place that isn't further qualified into any specific subtype.
* `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`,
`ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of
`dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc.
qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class`
is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those
in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers
(one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified
qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are
looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map
`medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes
`ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by
`get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default
category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where
`kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data`
for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is
used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data`
but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal
error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have
an entry for `greenhouse`), we just track the occurrence and end up not categorizing.
* `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the
placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for
placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`,
using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]].
* `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent`
just above).
* `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of
`bare_category_parent` if it is a string.
* `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or
`ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that
always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is
a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the
implementation is the same.
* `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the
placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which
category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`,
`neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like
`Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like
`Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized
city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers
iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or
more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a
political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but
by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the
resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The
return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the
holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype
with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields:
** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an
entry in `placetype_data` but may not be the original placetype given by the user);
** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed;
** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME:
we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms);
** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]];
** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or
{{tl|demonym-noun}}, instead of being triggered by {{tl|place}}.
* `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the
`district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `;
see the section just above on `cat_handler`.
5. The following preposition-related property keys are recognized:
* `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"di"`.
* `generic_before_non_cities`: If specified, the appropriate category description handler in
[[Module:category tree/topic cat/data/Places]] will recognize categories of the form
` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This
is used to generate descriptions for categories added by category handlers and by explicit category specs in the
placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify
a value for `class` so that the category tree code can determine whether it's a political or non-political division.
* `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities.
6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype:
* `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values
are:
*# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly
follows an entry placetype);
*# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple);
*# `"suf"` (the holonym will display as `Holonym placetype`);
*# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized).
* `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym.
Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly
using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype
`administrative region` specifies `suffix = "region"`.
* `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym.
* `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the
holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take
precedence.
* `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix
requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies
`affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies
`no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified,
without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word.
* `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym).
Its return value is a string specifying the display form of the holonym.
7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms
of the specified placetype.
* `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype.
* `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry
placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article
`"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins
with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent
placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype
specified.
* `holonym_use_the`: Use `"the"` before holonyms of this placetype.
'''NOTE:'''
# The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which
must have either `link` or `category_link` specified.
# Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a
fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the
fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either
directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this
placetype.
# It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back
to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in
`placetype_data` or an internal error occurs.
]==]
export.placetype_data = {
--[=[
If you need to sort the following, do this (using Vim):
1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line
entries.
2. Make sure the table uses tabs everywhere for indent, and not spaces.
3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence:
:'a,.s/\n/\\n/g
:s/\\n\(\t\[\)/\r\1/g
The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while
the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to
a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one
command.)
4. Execute the following to sort:
:'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //'
Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station"
before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the
quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by
` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern).
5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing
:'a,.s/\\n/\r/g
Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but
to insert a newline in the right sode of a replacement you must use \r.
]=]
["*"] = {
link = false,
cat_handler = generic_place_cat_handler,
},
["administrative atoll"] = {
-- Maldives
link = "+w:administrative divisions of the Maldives",
preposition = "of",
class = "subtatanegara",
},
["administrative capital"] = {
link = "w",
fallback = "capital city",
},
["administrative center"] = {
link = "w",
fallback = "non-city capital",
},
["administrative centre"] = {
link = "w",
fallback = "administrative center",
},
["administrative county"] = {
link = "w",
fallback = "county",
},
["administrative district"] = {
link = "w",
fallback = "daerah",
},
["administrative headquarters"] = {
link = "separately",
fallback = "administrative centre",
},
["administrative region"] = {
link = true,
preposition = "of",
suffix = "region", -- but prefix is still "administrative region (of)"
fallback = "region",
class = "subtatanegara",
},
["administrative seat"] = {
link = "w",
fallback = "administrative centre",
},
["administrative territory"] = {
link = "separately",
preposition = "of",
suffix = "wilayah", -- but prefix is still "administrative territory (of)"
fallback = "wilayah",
class = "subtatanegara",
},
["administrative unit"] = {
-- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an
-- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term
-- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types
-- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad
-- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need
-- to include this so that it can be used as a placetype for Albania, categorizing as communes.
link = "w",
class = "subtatanegara",
},
["administrative village"] = {
link = "w",
preposition = "of",
has_neighborhoods = true,
class = "settlement",
},
["aimag"] = {
-- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province;
-- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district.
link = "w",
fallback = "prefecture",
},
["airport"] = {
link = true,
class = "man-made structure",
default = {true},
},
["alliance"] = {
link = true,
fallback = "confederation",
},
["archipelago"] = {
link = true,
fallback = "pulau",
},
["area"] = {
link = true,
preposition = "of",
fallback = "kawasan geografi dan budaya",
-- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former
-- when categorizing 'Areas' but the latter when handling e.g. 'historical area'.
class = "subtatanegara",
former_type = "kawasan geografi",
cat_handler = district_neighborhood_cat_handler,
},
["arm"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
default = {"Laut"},
},
["arrondissement"] = {
link = true,
preposition = "of",
-- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions
-- of departments or provinces. Need to conditionalize on the country for both of the following.
class = "subtatanegara",
has_neighborhoods = true,
},
["associated province"] = {
link = "separately",
fallback = "province",
},
["atoll"] = {
-- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to
-- conditionalize `class` on the country. See also `administrative atoll`.
link = true,
class = "sifat semula jadi",
bare_category_parent = "pulau",
default = {true},
},
["autonomous city"] = {
link = "w",
preposition = "of",
fallback = "city",
has_neighborhoods = true,
},
["autonomous community"] = {
-- Spain; refers to regional entities, not village-like entities, as might be expected from "community"
link = true,
preposition = "of",
class = "subtatanegara",
},
["autonomous island"] = {
-- Comoros; seems like an administrative atoll of the Maldives.
link = "+w:autonomous islands of Comoros",
preposition = "of",
class = "subtatanegara",
},
["autonomous oblast"] = {
link = true,
preposition = "of",
affix_type = "Suf",
no_affix_strings = "oblast",
class = "subtatanegara",
},
["autonomous okrug"] = {
link = true,
preposition = "of",
affix_type = "Suf",
no_affix_strings = "okrug",
class = "subtatanegara",
},
["autonomous prefecture"] = {
link = true,
fallback = "prefecture",
},
["autonomous province"] = {
link = "w",
fallback = "province",
},
["autonomous region"] = {
link = "w",
preposition = "of",
fallback = "administrative region",
-- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region"
-- if the user writes 'ar:Suf/Tibet'.
affix = "autonomous region",
},
["autonomous republic"] = {
link = "w",
preposition = "of",
class = "subtatanegara",
},
["autonomous territorial unit"] = {
-- Moldova; only two of them, one for Gagauzia and one for Transnistria.
link = "w",
preposition = "of",
class = "subtatanegara",
},
["autonomous territory"] = {
link = "w",
fallback = "dependent territory",
},
["bailiwick"] = {
-- Jersey, etc.
link = true,
fallback = "tatanegara",
},
["barangay"] = {
-- Philippines
link = true,
class = "settlement",
-- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use
-- some of the properties of a neighborhood.
fallback = "neighborhood",
},
["barrio"] = {
-- Spanish-speaking countries; Philippines
link = true,
-- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city.
-- `class` will need to conditionalize on the country to be completely correct.
fallback = "neighborhood",
},
["basin"] = {
link = true,
fallback = "lake",
},
["bay"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["beach"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"air"},
default = {true},
},
["beach resort"] = {
link = "w",
fallback = "resort town",
},
["bishopric"] = {
link = true,
fallback = "tatanegara",
},
["badan air!"] = {
-- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to
-- straighten out the type vs. name vs. related-to issue.
category_link = "[[body of water|bodies of water]]",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "ekosistem", "air"},
},
["borough"] = {
link = true,
preposition = "of",
display_handler = borough_display_handler,
has_neighborhoods = true,
-- "former borough" could be a former settlement or a former part of a city but seems more likely to
-- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this
-- properly.
class = "subtatanegara",
-- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger.
},
["borough seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["branch"] = {
link = true,
preposition = "of",
fallback = "river",
},
["bridge"] = {
link = true,
class = "man-made structure",
default = {"Named bridges"},
},
["building"] = {
link = true,
class = "man-made structure",
default = {"Named buildings"},
},
["built-up area"] = {
link = "w",
fallback = "area",
},
["burgh"] = {
link = true,
fallback = "borough",
},
["business park"] = {
link = true,
fallback = "park",
},
["caliphate"] = {
link = true,
fallback = "tatanegara",
},
["canton"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["cape"] = {
link = true,
fallback = "headland",
},
["capital"] = {
link = true,
fallback = "capital city",
},
["capital city"] = {
link = true,
category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
bare_category_parent = "cities",
cat_handler = capital_city_cat_handler,
default = {true},
-- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}}
-- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't
-- match against the placetype 'city' of Melbourne.
fallback = "city",
},
["caplc"] = {
link = "[[capital]] and [[large]]st [[city]]",
plural_link = false,
fallback = "capital city",
},
["captaincy"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["caravan city"] = {
link = "w",
fallback = "city",
class = "settlement",
inherently_former = {"ANCIENT", "FORMER"},
},
["castle"] = {
link = true,
fallback = "building",
},
["cathedral city"] = {
link = true,
fallback = "city",
},
["cattle station"] = {
-- Australia
link = true,
fallback = "farm",
},
["census area"] = {
link = true,
affix_type = "Suf",
has_neighborhoods = true,
class = "non-admin settlement",
},
["census-designated place"] = {
-- United States
link = true,
class = "non-admin settlement",
},
["census division"] = {
-- Canada
link = "w",
preposition = "of",
class = "subtatanegara",
},
["census town"] = {
link = "w",
fallback = "town",
},
["central business district"] = {
link = true,
fallback = "neighborhood",
},
["cercle"] = {
-- Mali
link = "+w:cercles of Mali",
preposition = "of",
class = "subtatanegara",
},
["ceremonial county"] = {
link = true,
fallback = "county",
},
["chain of islands"] = {
link = "[[chain]] of [[island]]s",
plural = "chains of islands",
plural_link = "[[chain]]s of [[island]]s",
fallback = "pulau",
},
["channel"] = {
link = true,
fallback = "strait",
},
["charter community"] = {
-- Northwest Territories, Canada
link = "w",
fallback = "village",
},
["city"] = {
link = true,
generic_before_non_cities = "di",
has_neighborhoods = true,
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["city-state"] = {
link = true,
category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]",
has_neighborhoods = true,
class = "settlement",
["benua/*"] = {"City-states", "Cities in +++", "Countries in +++", "National capitals"},
default = {"City-states", "Cities", "Countries", "National capitals"},
},
["civil parish"] = {
-- Mostly England; similar to municipalities
link = true,
preposition = "of",
affix_type = "suf",
has_neighborhoods = true,
class = "subtatanegara",
},
["claimed political division"] = {
link = "[[claim]]ed [[political]] [[division]]",
class = "subtatanegara",
default = {true},
},
["co-capital"] = {
link = "[[co-]][[capital]]",
fallback = "capital city",
},
["coal city"] = {
link = "+w:coal town",
fallback = "city",
},
["coal town"] = {
link = "w",
fallback = "town",
},
["collectivity"] = {
link = "w",
preposition = "of",
-- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities)
class = "subtatanegara",
},
["colony"] = {
link = true,
fallback = "dependent territory",
},
["comarca"] = {
-- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of
-- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it
-- sits between municipalities and provinces, something like a county or district.
link = true,
preposition = "of",
class = "subtatanegara",
},
["commandery"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"ANCIENT", "FORMER"},
},
["commonwealth"] = {
link = true,
preposition = "of",
-- No default; applies specifically to Puerto Rico
class = "subtatanegara",
},
["commune"] = {
link = true,
fallback = "municipality",
},
["community"] = {
link = true,
category_link = "[[community|communities]] of all sizes",
fallback = "village",
},
["community development block"] = {
-- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be
-- neighborhoods so I'm not setting `has_neighborhoods` for now
link = "w",
affix_type = "suf",
no_affix_strings = "block",
class = "subtatanegara",
},
["comune"] = {
-- Italy, Switzerland
link = true,
fallback = "municipality",
},
["condominium"] = {
link = true,
fallback = "tatanegara",
},
["confederacy"] = {
link = true,
fallback = "confederation",
},
["confederation"] = {
link = true,
fallback = "tatanegara",
},
["constituency"] = {
-- currently we have them as political divisions of Namibia but many countries have them
link = true,
preposition = "of",
class = "subtatanegara",
},
["constituent country"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["constituent part"] = {
link = "separately",
preposition = "of",
class = "subtatanegara",
},
["constituent republic"] = {
-- Of Russia, Yugoslavia, etc.
link = "separately",
preposition = "of",
class = "subtatanegara",
},
["counties and county-level cities!"] = {
-- This is used when grouping counties and county-level cities under prefecture-level cities in China.
category_link = "[[county|counties]] and [[county-level city|county-level cities]]",
class = "subtatanegara",
},
["benua"] = {
link = true,
category_link = false, -- can't occur as a bare category
class = "sifat semula jadi",
default = {"Benua dan kawasan benua"},
},
["kawasan benua"] = {
link = "separately",
category_link = false, -- can't occur as a bare category
class = "kawasan geografi",
fallback = "benua",
},
["benua dan kawasan benua!"] = {
category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])",
class = "kawasan geografi",
},
["council area"] = {
link = true,
-- in Scotland; similar to a county
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["negara"] = {
link = true,
class = "tatanegara",
["benua/*"] = {true, "Countries"},
default = {true},
},
["country-like entities!"] = {
category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]",
class = "tatanegara",
},
["county"] = {
link = true,
preposition = "of",
display_handler = county_display_handler,
class = "subtatanegara",
},
["county borough"] = {
link = true,
-- in Wales; similar to a county
preposition = "of",
affix_type = "suf",
fallback = "borough",
class = "subtatanegara",
},
["county seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["county town"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
fallback = "town",
has_neighborhoods = true,
class = "capital",
},
["county-administered city"] = {
-- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city.
-- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city.
link = "w",
fallback = "city",
has_neighborhoods = true,
class = "settlement",
},
["county-controlled city"] = {
-- Taiwan
link = "w",
fallback = "county-administered city",
},
["county-level city"] = {
-- PR China
link = "w",
fallback = "prefecture-level city",
},
["crater lake"] = {
link = true,
fallback = "lake",
},
["creek"] = {
link = true,
fallback = "stream",
},
["Crown colony"] = {
link = "+crown colony",
fallback = "crown colony",
},
["crown colony"] = {
link = true,
fallback = "colony",
},
["Crown dependency"] = {
link = true,
fallback = "dependent territory",
},
["crown dependency"] = {
link = true,
fallback = "dependent territory",
},
["cultural area"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["cultural region"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["delegation"] = {
-- Tunisia
link = "+w:delegations of Tunisia",
preposition = "of",
class = "subtatanegara",
},
["department"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["departmental capital"] = {
link = "separately",
fallback = "capital city",
},
["dependency"] = {
link = true,
fallback = "dependent territory",
},
["dependent territory"] = {
link = "w",
preposition = "of",
class = "subtatanegara",
former_type = "dependent territory",
bare_category_parent = "pembahagian politik",
["negara/*"] = {true},
default = {true},
},
["desert"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"ekosistem"},
default = {true},
},
["deserted mediaeval village"] = {
link = "w",
fallback = "deserted medieval village",
},
["deserted medieval village"] = {
link = "w",
fallback = "ANCIENT settlement",
},
["direct-administered municipality"] = {
-- China
link = "+w:direct-administered municipalities of China",
fallback = "municipality",
},
["direct-controlled municipality"] = {
-- several countries
link = "w",
fallback = "municipality",
},
["distributary"] = {
link = true,
preposition = "of",
fallback = "river",
},
["daerah"] = {
link = true,
preposition = "di",
affix_type = "suf",
-- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to
-- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class
-- is "settlement" or "subtatanegara".
class = "subtatanegara",
cat_handler = district_neighborhood_cat_handler,
-- No default. Countries for which districts are political divisions will get entries.
},
["districts and autonomous regions!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Portugal.
category_link = "[[district]]s and [[autonomous region]]s",
class = "subtatanegara",
},
["districts and autonomous territorial units!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Moldova.
category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s",
class = "subtatanegara",
},
["district capital"] = {
link = "separately",
fallback = "capital city",
},
["district headquarters"] = {
link = "separately",
fallback = "administrative centre",
},
["district municipality"] = {
-- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in
-- South Africa, district municipalities group local municipalities and hence won't have neighborhoods.
link = "w",
preposition = "of",
affix_type = "suf",
no_affix_strings = {"daerah", "municipality"},
fallback = "municipality",
class = "subtatanegara",
},
["division"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["division capital"] = {
link = "separately",
fallback = "capital city",
},
["dome"] = {
link = true,
fallback = "mountain",
},
["dormant volcano"] = {
link = true,
fallback = "volcano",
},
["duchy"] = {
link = true,
fallback = "tatanegara",
},
["emirate"] = {
link = true,
preposition = "of",
-- FIXME: Can be subpolities (of the United Arab Emirates).
fallback = "tatanegara",
},
["empire"] = {
link = true,
fallback = "tatanegara",
},
["enclave"] = {
link = true,
preposition = "of",
-- Enclaves can theoretically be any size but assume a subpolity.
class = "subtatanegara",
},
["entity"] = {
-- Bosnia and Herzegovina
link = "+w:entities of Bosnia and Herzegovina",
preposition = "of",
class = "subtatanegara",
},
["escarpment"] = {
link = true,
fallback = "mountain",
},
["ethnographic region"] = {
-- used in Lithuania
link = "+w:ethnographic regions of Lithuania",
fallback = "kawasan geografi dan budaya",
},
["exclave"] = {
link = true,
preposition = "of",
-- exclaves can theoretically be any size but assume a subpolity.
class = "subtatanegara",
},
["external territory"] = {
link = "separately",
fallback = "dependent territory",
},
["farm"] = {
link = true,
class = "non-admin settlement",
default = {"Farms and ranches"},
},
["farms and ranches!"] = {
category_link = "[[farm]]s and [[ranch]]es",
class = "non-admin settlement",
},
["federal city"] = {
link = "w",
preposition = "of",
fallback = "city",
},
["federal district"] = {
link = true,
preposition = "of",
-- Might have neighborhoods as federal districts are often cities (e.g. Mexico City)
has_neighborhoods = true,
class = "settlement",
},
["federal subject"] = {
-- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais,
-- autonomous okrugs and autonomous oblasts).
link = "w",
preposition = "of",
class = "subtatanegara",
},
["wilayah persekutuan"] = {
link = "w",
fallback = "wilayah",
},
["fictional location"] = {
link = "separately",
former_type = "!",
class = "hypothetical location",
bare_category_parent = "tempat",
default = {true},
},
["First Nations reserve"] = {
-- Canada
link = "[[First Nations]] [[w:Indian reserve|reserve]]",
-- Wikipedia uses "Indian reserve"; presumably that is the legal term
fallback = "Indian reserve",
class = "subtatanegara",
},
["fjord"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["footpath"] = {
link = true,
fallback = "road",
},
["hutan"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"ekosistem", "perhutanan"},
default = {true},
},
["fort"] = {
link = true,
fallback = "building",
},
["fortress"] = {
link = true,
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- fortresses -> fortresse, so put an entry here to ensure we singularize correctly.
plural = "fortresses",
fallback = "building",
},
["frazione"] = {
link = "w",
fallback = "hamlet",
},
["freeway"] = {
link = true,
fallback = "road",
},
["French prefecture"] = {
link = "[[w:prefectures in France|prefecture]]",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
},
["kawasan geografi dan budaya"] = {
link = "+w:cultural area",
-- `generic_before_non_cities` is used when generating the category description of categories of the format
-- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and
-- categories for any placetype that falls back to `geographic and cultural area`.
generic_before_non_cities = "of",
preposition = "of",
class = "kawasan geografi",
bare_category_parent = "tempat",
["negara/*"] = {true},
["constituent country/*"] = {true},
["benua/*"] = {true},
default = {true},
},
["geographic area"] = {
link = "+w:geographic region",
fallback = "kawasan geografi dan budaya",
},
["kawasan geografi"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geographical area"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geographical region"] = {
link = "w",
fallback = "kawasan geografi dan budaya",
},
["geopolitical zone"] = {
-- Nigeria
link = true,
preposition = "of",
class = "subtatanegara",
},
["gewog"] = {
-- Bhutan
link = true,
preposition = "of",
class = "subtatanegara",
},
["ghost town"] = {
link = true,
generic_before_non_cities = "di",
class = "non-admin settlement",
bare_category_parent = "former settlements",
cat_handler = city_type_cat_handler,
default = {true},
},
["glen"] = {
link = true,
fallback = "valley",
},
["governorate"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["greater administrative region"] = {
-- China (former division)
link = "w",
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["gromada"] = {
-- Poland (former division)
link = "w",
preposition = "of",
affix_type = "Pref",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["group of islands"] = {
link = "[[group]] of [[island]]s",
plural = "groups of islands",
plural_link = "[[group]]s of [[island]]s",
fallback = "island group",
},
["gulf"] = {
link = true,
preposition = "of",
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["hamlet"] = {
link = true,
fallback = "village",
},
["harbor city"] = {
link = "separately",
fallback = "city",
},
["harbor town"] = {
link = "separately",
fallback = "town",
},
["harbour city"] = {
link = "separately",
fallback = "city",
},
["harbour town"] = {
link = "separately",
fallback = "town",
},
["headland"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["headquarters"] = {
link = "w",
fallback = "administrative centre",
},
["heath"] = {
link = true,
fallback = "moor",
},
["hemisphere"] = {
link = true,
entry_placetype_use_the = true,
fallback = "kawasan benua",
},
["highway"] = {
link = true,
fallback = "road",
},
["hill"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["hill station"] = {
link = "w",
fallback = "town",
},
["hill town"] = {
link = "w",
fallback = "town",
},
["historic region"] = {
-- provided only for the link
link = "+w:historical region",
fallback = "FORMER geographic region",
},
["historical county"] = {
-- needed for historical counties of England/etc.
link = "+w:historic county",
fallback = "FORMER subpolity",
},
["historical region"] = {
-- provided only for the link
link = "w",
fallback = "FORMER geographic region",
},
["home rule city"] = {
link = "w",
fallback = "city",
},
["home rule municipality"] = {
link = "w",
fallback = "municipality",
},
["hot spring"] = {
link = true,
fallback = "spring",
},
["house"] = {
link = true,
fallback = "building",
},
["housing estate"] = {
-- not the same as a housing project (i.e. public housing)
link = true,
-- not exactly the case but approximately
fallback = "neighborhood",
},
["hromada"] = {
-- Ukraine
link = "w",
disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'",
disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'",
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["inactive volcano"] = {
link = "w",
fallback = "dormant volcano",
},
["independent city"] = {
link = true,
fallback = "city",
},
["independent town"] = {
link = "+independent city",
fallback = "town",
},
["Indian reservation"] = {
link = "w",
-- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations
-- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts
-- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is,
-- so this must still be the legal term.
preposition = "of",
class = "subtatanegara",
default = {true},
},
["Indian reserve"] = {
link = "w",
-- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that
-- is still the legal term.
preposition = "of",
class = "subtatanegara",
default = {true},
},
["inland sea"] = {
-- note, we also have 'inland' as a qualifier
link = true,
fallback = "laut",
},
["inner city area"] = {
link = "[[inner city]] [[area]]",
fallback = "neighborhood",
},
["pulau"] = {
link = true,
preposition = "of",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["island country"] = {
-- FIXME: The following should map to both 'island' and 'country'.
link = "w",
fallback = "negara",
},
["island group"] = {
link = "separately",
fallback = "pulau",
},
["island municipality"] = {
link = "w",
fallback = "municipality",
},
["islet"] = {
link = "w",
fallback = "pulau",
},
["Israeli settlement"] = {
link = "w",
class = "settlement",
default = {true},
},
["judicial capital"] = {
link = "w",
fallback = "capital city",
},
["khanate"] = {
link = true,
fallback = "tatanegara",
},
["kibbutz"] = {
link = true,
plural = "kibbutzim",
class = "non-admin settlement",
default = {true},
},
["kingdom"] = {
link = true,
fallback = "monarchy",
},
["krai"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["lake"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["bentuk muka bumi!"] = {
category_link = "[[landform]]s",
bare_category_parent = "tempat",
addl_bare_category_parents = {"Bumi"},
},
["largest city"] = {
link = "[[large]]st [[city]]",
entry_placetype_use_the = true,
fallback = "city",
has_neighborhoods = true,
},
["league"] = {
link = true,
fallback = "confederation",
},
["legislative capital"] = {
link = "separately",
fallback = "capital city",
},
["library"] = {
link = true,
fallback = "building",
},
["lieutenancy area"] = {
-- used in the United Kingdom; per Wikipedia:
-- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does
-- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of
-- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate
-- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on
-- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern
-- Ireland correspond to the six counties and two former county boroughs.[3]
link = "w",
fallback = "ceremonial county",
},
["local authority district"] = {
link = "w",
fallback = "local government district",
},
["local government area"] = {
-- Australia
link = "w",
preposition = "of",
class = "subtatanegara",
},
["local council"] = {
-- Malta; similar to municipalities
link = "+w:local councils of Malta",
preposition = "of",
fallback = "municipality",
},
["local government district"] = {
link = "w",
preposition = "of",
affix_type = "suf",
affix = "daerah",
class = "subtatanegara",
},
["local government district with borough status"] = {
link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]",
plural = "local government districts with borough status",
plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]",
preposition = "of",
affix_type = "suf",
affix = "daerah",
class = "subtatanegara",
},
["local urban district"] = {
link = "w",
fallback = "unincorporated community",
},
["locality"] = {
link = "+w:locality (settlement)",
-- not necessarily true, but usually is the case
fallback = "village",
},
["London borough"] = {
link = "w",
preposition = "of",
affix_type = "pref",
affix = "borough",
fallback = "local government district with borough status",
has_neighborhoods = true,
},
["macroregion"] = {
link = true,
fallback = "region",
},
["man-made structures!"] = {
category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s",
bare_category_parent = "tempat",
},
["manor"] = {
-- FIXME: or is this more like a farm?
link = true,
fallback = "building",
},
["marginal sea"] = {
link = true,
preposition = "of",
fallback = "laut",
},
["market city"] = {
link = "+market town",
fallback = "city",
},
["market town"] = {
link = true,
fallback = "town",
},
["massif"] = {
link = true,
fallback = "mountain",
},
["megacity"] = {
link = true,
fallback = "city",
},
["metro station"] = {
link = true,
class = "man-made structure",
},
["metropolitan borough"] = {
link = true,
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"borough", "city"},
fallback = "local government district",
has_neighborhoods = true,
},
["metropolitan city"] = {
-- These exist e.g. in Italy and are more like municipalities or even provinces than cities.
link = true,
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"metropolitan", "city"},
class = "subtatanegara",
},
["metropolitan county"] = {
link = true,
fallback = "county",
},
["metropolitan municipality"] = {
-- In South Africa, metropolitan municipalities group local municipalities and are like districts, between
-- provinces and municipalities.
-- In Turkey, metropolitan municipalities are provinces-level.
link = "w",
preposition = "of",
affix_type = "Suf",
no_affix_strings = {"metropolitan", "municipality"},
fallback = "municipality",
class = "subtatanegara",
},
["microdistrict"] = {
-- residential complex in post-Soviet states
link = true,
fallback = "neighborhood",
},
["micronations!"] = {
-- FIXME, merge with microstate
category_link = "[[micronation]]s",
bare_category_parent = "countries",
},
["microstate"] = {
link = true,
fallback = "negara",
},
["military base"] = {
link = "w",
class = "settlement", -- or "man-made structure"?
default = {true},
},
["minster town"] = {
-- England
link = "separately",
fallback = "town",
},
["monarchy"] = {
link = true,
fallback = "tatanegara",
},
["moor"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "ekosistem"},
default = {true},
},
["moorland"] = {
link = true,
fallback = "moor",
},
["motorway"] = {
link = true,
fallback = "road",
},
["mountain"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["mountain indigenous district"] = {
-- Taiwan
link = "+w:district (Taiwan)",
fallback = "daerah",
},
["mountain indigenous township"] = {
-- Taiwan
link = "+w:township (Taiwan)",
fallback = "township",
},
["mountain pass"] = {
link = true,
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- passes -> passe, so put an entry here to ensure we singularize correctly.
plural = "mountain passes",
class = "sifat semula jadi",
addl_bare_category_parents = {"mountains"},
default = {true},
},
["mountain range"] = {
link = true,
fallback = "mountain",
},
["mountainous region"] = {
link = "separately",
fallback = "region",
},
["mukim"] = {
-- Malaysia, Brunei, Indonesia, Singapore
link = true,
preposition = "of",
class = "subtatanegara",
},
["municipal district"] = {
link = "w",
-- meaning varies depending on the country; for now, assume no neighborhoods.
-- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms.
preposition = "of",
affix_type = "Pref",
no_affix_strings = "daerah",
fallback = "municipality",
},
["municipality"] = {
link = true,
preposition = "of",
has_neighborhoods = true,
class = "subtatanegara",
},
["municipality with city status"] = {
link = "[[municipality]] with [[w:city status|city status]]",
plural = "municipalities with city status",
plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]",
fallback = "municipality",
},
["museum"] = {
link = true,
fallback = "building",
},
["mythological location"] = {
link = "separately",
former_type = "!",
class = "hypothetical location",
bare_category_parent = "tempat",
default = {true},
},
["named bridges!"] = {
category_link = "notable [[bridge]]s",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"bridges"},
},
["named buildings!"] = {
category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"buildings"},
},
["named roads!"] = {
category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures",
bare_category_parent = "man-made structures",
addl_bare_category_parents = {"roads"},
},
["national capital"] = {
link = "w",
fallback = "capital city",
},
["national park"] = {
link = true,
fallback = "park",
},
["sifat semula jadi!"] = {
category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s",
bare_category_parent = "tempat",
},
["neighborhood"] = {
-- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which
-- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the
-- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the
-- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods".
-- (In general it can't, because other things like "urban areas", "daerah", "subdivisions" and the like also
-- categorize as neighbo(u)rhoods.)
link = true,
-- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]].
generic_before_non_cities = "di",
generic_before_cities = "of",
-- The following text is suitable for the top-level description of a neighborhood as well as categories of the
-- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form
-- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]".
category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]",
category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions",
-- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`,
-- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings
-- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in
-- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY`
-- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but
-- generates "of" before cities and "di" before non-cities regardless. (FIXME: We should change that.)
preposition = "of",
class = "non-admin settlement",
cat_handler = district_neighborhood_cat_handler,
},
["neighbourhood"] = {
link = true,
category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]",
category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions",
fallback = "neighborhood",
},
["new area"] = {
-- China (type of economic development zone, varying greatly in size)
link = "w",
preposition = "di",
class = "subtatanegara", --?
},
["new town"] = {
link = true,
fallback = "town",
},
["non-city capital"] = {
link = "[[capital]]",
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
cat_handler = function(data)
return capital_city_cat_handler(data, "non-city")
end,
-- FIXME, do we need the following?
default = {true},
},
["non-metropolitan county"] = {
link = "w",
fallback = "county",
},
["non-metropolitan district"] = {
link = "w",
fallback = "local government district",
},
["non-sovereign kingdom"] = {
-- especially in Africa and Asia
link = "+w:non-sovereign monarchy",
generic_before_non_cities = "di",
class = "subtatanegara",
["negara/*"] = {true},
["benua/*"] = {true},
default = {true},
},
["non-sovereign monarchy"] = {
link = "w",
fallback = "non-sovereign kingdom",
},
["oblast"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["oblasts and autonomous republics!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Ukraine.
category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s",
class = "subtatanegara",
},
["lautan"] = {
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"laut", "badan air"},
default = {true},
},
["okrug"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["overseas collectivity"] = {
link = "w",
fallback = "collectivity",
},
["overseas department"] = {
link = "w",
fallback = "department",
},
["overseas territory"] = {
link = "w",
fallback = "dependent territory",
},
["parish"] = {
link = true,
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["parish municipality"] = {
-- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them.
link = "+w:parish municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true,
},
["parish seat"] = {
link = true,
entry_placetype_use_the = true,
preposition = "of",
class = "capital",
has_neighborhoods = true,
},
["park"] = {
link = true,
class = "man-made structure",
default = {true},
},
["pass"] = {
link = "+mountain pass",
-- The default plural algorithm gets this right but the singularization algorithm incorrectly converts
-- passes -> passe, so put an entry here to ensure we singularize correctly.
plural = "passes",
fallback = "mountain pass",
},
["path"] = {
link = true,
fallback = "road",
},
["peak"] = {
link = true,
fallback = "mountain",
},
["semenanjung"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
},
["periphery"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["tempat!"] = {
generic_before_non_cities = "di",
generic_before_cities = "di",
class = "tempat am",
category_link = "[[tempat]] secara umum",
-- `category_link_top_level` control the description used in the top-level [[Category:Places]] and
-- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is
-- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of"
-- portion is automatically generated by the appropriate handler in
-- [[Module:category tree/topic cat/data/Places]].
category_link_top_level = "[[tempat]] [[geografi]] secara umum; [[toponim]]",
bare_category_parent = "nama",
},
["planned community"] = {
-- Include this so we don't categorize 'planned community' into villages, as 'community' does.
link = true,
class = "settlement",
has_neighborhoods = true,
},
["plateau"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true},
-- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category
},
["Polish colony"] = {
link = "[[w:colony (Poland)|colony]]",
affix_type = "suf",
affix = "colony",
fallback = "village",
has_neighborhoods = true,
},
["pembahagian politik!"] = {
category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s",
bare_category_parent = "tempat",
},
["tatanegara"] = {
link = true,
category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]",
class = "tatanegara",
bare_category_parent = "tempat",
default = {true},
},
["populated place"] = {
link = "+w:populated place",
-- not necessarily true, but usually is the case
fallback = "village",
},
["port"] = {
link = true,
class = "man-made structure",
default = {true},
},
["port city"] = {
-- FIXME: should categorize into "Ports" as well as "Cities"
link = true,
fallback = "city",
},
["port town"] = {
-- FIXME: should categorize into "Ports" as well as "Towns"
link = "w",
fallback = "town",
},
["prefecture"] = {
-- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France.
-- May need `has_neighborhoods` to be a function.
link = true,
preposition = "of",
display_handler = prefecture_display_handler,
class = "subtatanegara",
},
["prefecture-level city"] = {
-- China; they are huge entities with a central city; not cities themselves.
link = "w",
preposition = "of",
class = "subtatanegara",
},
["preserved county"] = {
-- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more
-- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22.
link = "w",
preposition = "of",
class = "subtatanegara",
inherently_former = {"FORMER"},
},
["primary area"] = {
-- a grouping of "daerah" (neighborhoods) in Gothenburg, Sweden
link = "+w:sv:primärområde",
fallback = "neighborhood",
},
["principality"] = {
link = true,
fallback = "monarchy",
},
["promontory"] = {
link = true,
fallback = "headland",
},
["protectorate"] = {
link = true,
fallback = "dependent territory",
},
["province"] = {
link = true,
preposition = "of",
display_handler = province_display_handler,
class = "subtatanegara",
},
["provinces and autonomous regions!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case China.
category_link = "[[province]]s and [[autonomous region]]s",
class = "subtatanegara",
},
["provinces and territories!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Canada and Pakistan.
category_link = "[[province]]s and [[territory|territories]]",
class = "subtatanegara",
},
["provincial capital"] = {
link = true,
fallback = "capital city",
},
["raion"] = {
link = true,
preposition = "of",
affix_type = "Suf",
class = "subtatanegara",
},
["ranch"] = {
link = true,
fallback = "farm",
},
["range"] = {
-- FIXME: Where is this used? Is it a mountain range?
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
},
["regency"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["region"] = {
link = true,
preposition = "of",
-- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area'
fallback = "kawasan geografi dan budaya",
-- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region
class = "kawasan geografi",
},
["regional capital"] = {
link = "separately",
fallback = "capital city",
},
["regional county municipality"] = {
-- Quebec
link = "w",
preposition = "of",
affix_type = "Suf",
no_affix_strings = {"municipality", "county"},
fallback = "municipality",
},
["regional district"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "daerah",
fallback = "daerah",
},
["regional municipality"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "municipality",
fallback = "municipality",
},
["regional unit"] = {
link = "w",
preposition = "of",
affix_type = "suf",
class = "subtatanegara",
},
["registration county"] = {
-- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical
-- purposes (registration of births, deaths and marriages, and for the output of census information).
link = "w",
fallback = "county",
},
["republic"] = {
-- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "negara" in that case.
link = true,
fallback = "constituent republic",
},
["research base"] = {
link = "+w:research station",
fallback = "research station",
},
["research station"] = {
link = "w",
class = "non-admin settlement", -- or "man-made structure"?
default = {true},
},
["reservoir"] = {
link = true,
fallback = "lake",
},
["residential area"] = {
link = "separately",
fallback = "neighborhood",
},
["resort city"] = {
link = "w",
fallback = "city",
},
["resort town"] = {
link = "w",
fallback = "town",
},
["river"] = {
link = true,
generic_before_non_cities = "di",
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
cat_handler = city_type_cat_handler,
["benua/*"] = {true},
default = {true},
},
["river island"] = {
link = "w",
fallback = "pulau",
},
["road"] = {
link = true,
class = "man-made structure",
default = {"Named roads"},
},
["Roman province"] = {
-- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire'
link = "w",
default = {"Provinces of the Roman Empire"},
class = "subtatanegara",
},
["royal borough"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = {"royal", "borough"},
fallback = "local government district with borough status",
has_neighborhoods = true,
},
["royal burgh"] = {
link = true,
fallback = "borough",
},
["royal capital"] = {
link = "w",
fallback = "capital city",
},
["rural committee"] = {
-- Hong Kong; a group of villages
link = "w",
affix_type = "Suf",
has_neighborhoods = true,
class = "settlement",
},
["rural community"] = {
-- New Brunswick
link = "+w:list of municipalities in New_Brunswick#Rural communities",
fallback = "municipality",
},
["rural hromada"] = {
link = "[[rural]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["rural municipality"] = {
link = "w",
preposition = "of",
affix_type = "Pref",
no_affix_strings = "municipality",
fallback = "municipality",
has_neighborhoods = true, --?
},
["rural township"] = {
-- Taiwan
link = "+w:rural township (Taiwan)",
fallback = "township",
},
["sanctuary"] = {
link = true,
fallback = "temple",
},
["satrapy"] = {
link = true,
preposition = "of",
class = "subtatanegara",
inherently_former = {"ANCIENT", "FORMER"},
},
["laut"] = {
link = true,
holonym_use_the = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["seaport"] = {
link = true,
fallback = "port",
},
["seat"] = {
link = true,
fallback = "administrative centre",
},
["self-administered area"] = {
-- Myanmar (groups self-administered divisions and zones)
link = "+w:self-administered zone",
preposition = "of",
class = "subtatanegara",
},
["self-administered division"] = {
-- Myanmar (only one of them: Wa Self-Administered Division)
link = "w",
fallback = "self-administered area",
},
["self-administered zone"] = {
-- Myanmar (five of them)
link = "w",
fallback = "self-administered area",
},
["separatist state"] = {
link = "separately",
fallback = "unrecognized country",
},
["settlement"] = {
link = true,
category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s",
bare_category_parent = "tempat",
-- not necessarily true, but usually is the case
fallback = "village",
},
["settlement hromada"] = {
link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["sheading"] = {
-- Isle of Man
link = true,
fallback = "daerah",
},
["sheep station"] = {
-- Australia
link = true,
fallback = "farm",
},
["shire"] = {
link = true,
fallback = "county",
},
["shire county"] = {
link = "w",
fallback = "county",
},
["shire town"] = {
link = true,
fallback = "county seat",
},
["ski resort city"] = {
link = "[[ski resort]] [[city]]",
fallback = "city",
},
["ski resort town"] = {
link = "[[ski resort]] [[town]]",
fallback = "town",
},
["spa city"] = {
link = "+w:spa town",
fallback = "city",
},
["spa town"] = {
link = "w",
fallback = "town",
},
["space station"] = {
link = true,
fallback = "research station",
},
["special administrative region"] = {
-- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a
-- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia
-- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special
-- administrative areas"
link = "+w:special administrative regions of China",
preposition = "of",
class = "subtatanegara",
has_neighborhoods = true, --?
-- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves
-- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing
suffix = "",
},
["special collectivity"] = {
link = "w",
fallback = "collectivity",
},
["special municipality"] = {
-- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands
link = "w",
fallback = "municipality",
},
["special ward"] = {
-- Tokyo
link = true,
fallback = "municipality",
},
["spit"] = {
link = true,
fallback = "peninsula",
},
["spring"] = {
link = true,
class = "sifat semula jadi",
default = {true},
},
["bintang"] = {
link = true,
class = "sifat semula jadi",
default = {true},
},
["negeri"] = {
link = true,
preposition = "di",
class = "subtatanegara",
-- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign
-- entity. The latter appears more common (e.g. in various "ancient states" of East Asia).
former_type = "tatanegara",
},
["negeri dan wilayah!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case Australia.
category_link = "[[negeri]] dan [[wilayah]]",
class = "subtatanegara",
},
["states and union territories!"] = {
-- This and other similar "combined placetypes" are for use in the plural when grouping first-level
-- administrative regions of certain countries, in this case India.
category_link = "[[state]]s and [[union territory|union territories]]",
class = "subtatanegara",
},
["state capital"] = {
link = true,
fallback = "capital city",
},
["state park"] = {
link = true,
fallback = "park",
},
["state-level new area"] = {
-- China (type of economic development zone, varying greatly in size)
link = "w",
fallback = "new area",
},
["statistical region"] = {
-- Slovenia
link = true,
fallback = "administrative region",
},
["statutory city"] = {
link = "w",
fallback = "city",
},
["statutory town"] = {
link = "w",
fallback = "town",
},
["strait"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"badan air"},
default = {true},
},
["stream"] = {
link = true,
fallback = "river",
},
["street"] = {
link = true,
fallback = "road",
},
["strip"] = {
link = true,
fallback = "kawasan geografi",
},
["strip of land"] = {
link = "[[strip]] of [[land]]",
plural = "strips of land",
plural_link = "[[strip]]s of [[land]]",
fallback = "kawasan geografi",
},
["sub-metropolitan city"] = {
link = "+w:List of cities in Nepal#Sub-metropolitan cities",
fallback = "city",
},
["sub-prefectural city"] = {
link = "w",
fallback = "subprovincial city",
},
["subdaerah"] = {
link = true,
preposition = "di",
has_neighborhoods = true, --?
-- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler
class = "subtatanegara",
default = {true},
},
["subbahagian"] = {
link = true,
preposition = "di",
affix_type = "suf",
-- FIXME: subdivisions can be neighborhood-like or larger; need a handler
class = "subtatanegara",
cat_handler = district_neighborhood_cat_handler,
},
["submerged ghost town"] = {
-- FIXME: Consider just having "submerged" as a qualifier.
link = "[[submerged]] [[ghost town]]",
fallback = "ghost town",
},
["subnational kingdom"] = {
link = "+w:subnational monarchy",
fallback = "non-sovereign kingdom",
},
["subnational monarchy"] = {
link = "w",
fallback = "non-sovereign kingdom",
},
["subprefecture"] = {
link = true,
affix_type = "suf",
preposition = "of",
class = "subtatanegara",
},
["subprovince"] = {
link = true,
preposition = "of",
class = "subtatanegara",
},
["subprovincial city"] = {
link = "w",
-- China; special status given to certain prefecture-level cities
fallback = "prefecture-level city",
},
["subprovincial district"] = {
link = "w",
-- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts
preposition = "of",
class = "subtatanegara",
},
["subregion"] = {
link = true,
fallback = "kawasan geografi",
},
["suburb"] = {
link = true,
-- The following text is suitable for the top-level description of a suburb as well as categories of the form
-- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago',
-- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]".
category_link = "[[suburb]]s of [[city|cities]]",
category_link_before_city = "[[suburb]]s",
-- See comments under "neighborhood" for the following three settings. They are used by
-- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories
-- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a
-- given page), which hardcodes "di" for non-cities and "of" for cities. (FIXME: Change this.)
generic_before_non_cities = "di",
generic_before_cities = "of",
preposition = "of",
has_neighborhoods = true, --?
class = "non-admin settlement", --?
cat_handler = district_neighborhood_cat_handler,
},
["suburban area"] = {
link = "w",
fallback = "suburb",
},
["subway station"] = {
link = "w",
fallback = "metro station",
},
["sum"] = {
-- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia),
-- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion).
link = "+w:sum (administrative division)",
-- This fallback is somewha arbitrary. We could use "county" but that has a display handler
-- which we don't want to be active (FIXME: If the display handler would be active, that's a bug).
fallback = "division",
},
["supercontinent"] = {
link = true,
fallback = "benua",
},
["tehsil"] = {
link = true,
affix_type = "suf",
no_affix_strings = {"tehsil", "tahsil"},
class = "subtatanegara",
},
["temple"] = {
link = true,
fallback = "building",
},
["territorial authority"] = {
link = "w",
fallback = "daerah",
},
["wilayah"] = {
link = true,
preposition = "di",
generic_before_non_cities = "di",
class = "subtatanegara",
},
["theme"] = {
link = "+w:theme (Byzantine district)",
preposition = "of",
class = "subtatanegara",
},
["town"] = {
link = true,
generic_before_non_cities = "di",
has_neighborhoods = true,
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["town with bystatus"] = {
-- can't use templates in links currently
link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]",
plural = "towns with bystatus",
plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]",
fallback = "town",
},
["township"] = {
link = true,
has_neighborhoods = true,
class = "settlement", --?
default = {true},
},
["township municipality"] = {
-- Quebec
link = "+w:township municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true, --?
},
["traditional county"] = {
link = true,
fallback = "county",
},
["traditional region"] = {
-- FIXME: Verify this works. Same for 'historic(al) region'.
-- provided only for the link
link = "w",
fallback = "FORMER geographic region",
},
["trail"] = {
link = true,
fallback = "road",
},
["treaty port"] = {
link = "w",
fallback = "city",
class = "settlement",
inherently_former = {"FORMER"},
},
["tributary"] = {
link = true,
preposition = "of",
fallback = "river",
},
["underground station"] = {
link = "w",
fallback = "metro station",
},
["unincorporated area"] = {
link = "w",
-- I don't know if this fallback makes sense everywhere.
fallback = "unincorporated community",
},
["unincorporated community"] = {
link = true,
generic_before_non_cities = "di",
class = "non-admin settlement",
},
["unincorporated territory"] = {
link = "w",
fallback = "wilayah",
},
["union territory"] = {
-- India
link = true,
preposition = "of",
entry_placetype_indefinite_article = "a",
class = "subtatanegara",
},
["unitary authority"] = {
-- UK, New Zealand
link = true,
entry_placetype_indefinite_article = "a",
fallback = "local government district",
},
["unitary district"] = {
link = "w",
entry_placetype_indefinite_article = "a",
fallback = "local government district",
},
["united township municipality"] = {
-- Quebec
link = "+w:united township municipality (Quebec)",
entry_placetype_indefinite_article = "a",
fallback = "township municipality",
has_neighborhoods = true, --?
},
["university"] = {
link = true,
entry_placetype_indefinite_article = "a",
class = "man-made structure",
default = {true},
},
["unrecognised country"] = {
link = "w",
fallback = "unrecognized country",
},
["unrecognized and nearly unrecognized countries!"] = {
category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}",
bare_category_parent = "country-like entities",
},
["unrecognized country"] = {
link = "w",
class = "tatanegara",
default = {"Unrecognized and nearly unrecognized countries"},
},
["unrecognised state"] = {
link = "w",
fallback = "unrecognized country",
},
["unrecognized state"] = {
link = "w",
fallback = "unrecognized country",
},
["urban area"] = {
link = "separately",
fallback = "neighborhood",
},
["urban hromada"] = {
link = "[[urban]] [[w:hromada|hromada]]",
affix_type = "suf",
fallback = "hromada",
},
["urban service area"] = {
-- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger
-- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]).
link = "w",
fallback = "city",
},
["urban township"] = {
link = "w",
fallback = "township",
},
["urban-type settlement"] = {
-- appears to be a particular type of small urban settlement in post-Soviet states,
-- had an administrative function.
link = "w",
fallback = "town",
},
["valley"] = {
link = true,
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi", "air"},
default = {true},
},
["viceroyalty"] = {
-- in essence, a type of colony
link = true,
fallback = "dependent territory",
},
["village"] = {
link = true,
generic_before_non_cities = "di",
category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s",
class = "settlement",
cat_handler = city_type_cat_handler,
default = {true},
},
["village development committee"] = {
-- former administrative structure in Nepal; also exists in India but not as a formal unit
link = "+w:village development committee (Nepal)",
inherently_former = {"FORMER"},
fallback = "village",
},
["village municipality"] = {
-- Quebec
link = "+w:village municipality (Quebec)",
preposition = "of",
fallback = "municipality",
has_neighborhoods = true, --?
},
["voivodeship"] = {
-- Poland
link = true,
display_handler = voivodeship_display_handler,
preposition = "of",
class = "subtatanegara",
},
["volcano"] = {
link = true,
plural = "volcanoes",
class = "sifat semula jadi",
addl_bare_category_parents = {"bentuk muka bumi"},
default = {true, "Mountains"},
},
["ward"] = {
link = true,
class = "settlement",
-- Wards are formal administrative divisions of a city but have some properties of neighborhoods.
fallback = "neighborhood",
},
["watercourse"] = {
link = true,
fallback = "channel",
},
["Welsh community"] = {
-- Wales
link = "[[w:community (Wales)|community]]",
preposition = "of",
affix_type = "suf",
affix = "community",
has_neighborhoods = true,
class = "settlement",
},
["zone"] = {
-- administrative division of Ethiopia, Qatar, Nepal, India
link = "+w:zone#Place names",
preposition = "of",
class = "subtatanegara",
},
----------------------------------------------------------------------------------------------
-- Categories for former places --
----------------------------------------------------------------------------------------------
["ANCIENT capital"] = {
link = false,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
-- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still
-- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category.
default = {"Ancient settlements", "Former capitals"},
},
["ANCIENT non-admin settlement"] = {
link = false,
class = "non-admin settlement",
fallback = "ANCIENT settlement",
},
["ANCIENT settlement"] = {
link = false,
has_neighborhoods = true,
class = "settlement",
default = {"Ancient settlements"},
},
["ancient settlements!"] = {
category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]",
bare_category_parent = "former settlements",
},
["FORMER capital"] = {
link = false,
entry_placetype_use_the = true,
preposition = "of",
has_neighborhoods = true,
class = "capital",
default = {"Former capitals"},
},
["former capitals!"] = {
category_link = "former [[capital]] [[city|cities]] and [[town]]s",
bare_category_parent = "settlements",
},
["former counties and county-level cities!"] = {
-- For categorizing former counties and county-level cities of China
category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]",
bare_category_breadcrumb = "counties and county-level cities",
bare_category_parent = "former political divisions",
},
["FORMER county"] = {
-- For categorizing former counties and county-level cities of China
link = false,
fallback = "FORMER subpolity",
},
["FORMER county-level city"] = {
-- For categorizing former counties and county-level cities of China
link = false,
fallback = "FORMER subpolity",
},
["former countries and country-like entities!"] = {
category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist",
bare_category_breadcrumb = "countries and country-like entities",
bare_category_parent = "former polities",
},
["FORMER country"] = {
link = false,
class = "tatanegara",
default = {"Former countries and country-like entities"},
},
["former dependent territories!"] = {
category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist",
bare_category_breadcrumb = "dependent territories",
bare_category_parent = "former political divisions",
},
["FORMER dependent territory"] = {
link = false,
preposition = "of",
class = "subtatanegara",
default = {"Former dependent territories"},
},
["bekas daerah!"] = {
-- For categorizing former districts of China
category_link = "no-longer-existing [[district]]s",
bare_category_breadcrumb = "daerah",
bare_category_parent = "former political divisions",
},
["FORMER district"] = {
-- For categorizing former districts of China
link = false,
fallback = "FORMER subpolity",
},
["FORMER geographic region"] = {
link = false,
fallback = "kawasan geografi dan budaya",
},
["FORMER man-made structure"] = {
link = false,
class = "man-made structure",
default = {"Former man-made structures"},
},
["former man-made structures!"] = {
category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist",
bare_category_breadcrumb = "man-made structures",
bare_category_parent = "former places",
},
["former municipalities!"] = {
-- For categorizing former municipalities of the Netherlands
category_link = "no-longer-existing [[municipality|municipalities]]",
bare_category_breadcrumb = "municipalities",
bare_category_parent = "former political divisions",
},
["FORMER municipality"] = {
-- For categorizing former municipalities of the Netherlands
link = false,
fallback = "FORMER subpolity",
},
["FORMER natural feature"] = {
link = false,
class = "sifat semula jadi",
default = {"Former natural features"},
},
["former natural features!"] = {
category_link = "sifat semula jadi such as [[lake]]s, [[river]]s and [[island]]s that no longer exist",
bare_category_breadcrumb = "sifat semula jadi",
bare_category_parent = "former places",
},
["FORMER non-admin settlement"] = {
link = false,
class = "non-admin settlement",
fallback = "FORMER settlement",
},
["former places!"] = {
category_link = "[[place]]s of all sorts that no longer exist",
bare_category_breadcrumb = "former",
bare_category_parent = "tempat",
},
["former political divisions!"] = {
category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "former places",
},
["former polities!"] = {
category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist",
bare_category_breadcrumb = "polities",
bare_category_parent = "former places",
},
["FORMER polity"] = {
link = false,
class = "tatanegara",
default = {"Former polities"},
},
["former prefectures!"] = {
-- For categorizing former prefectures of China
category_link = "no-longer-existing [[prefecture]]s",
bare_category_breadcrumb = "prefectures",
bare_category_parent = "former political divisions",
},
["FORMER prefecture"] = {
-- For categorizing former prefectures of China
link = false,
fallback = "FORMER subpolity",
},
["former provinces!"] = {
-- For categorizing former provinces of China, etc.
category_link = "no-longer-existing [[province]]s",
bare_category_breadcrumb = "provinces",
bare_category_parent = "former political divisions",
},
["FORMER province"] = {
-- For categorizing ancient/historical/former provinces of the Roman Empire
link = false,
fallback = "FORMER subpolity",
},
["former region"] = {
-- A former region is considered a former political division, but not a 'historical/traditional/etc.' region.
link = "separately",
preposition = "of",
inherently_former = {"FORMER"},
class = "subtatanegara",
},
["FORMER settlement"] = {
link = false,
has_neighborhoods = true,
class = "settlement",
default = {"Former settlements"},
},
["former settlements!"] = {
category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified",
bare_category_breadcrumb = "settlements",
bare_category_parent = "former political divisions",
},
["FORMER subpolity"] = {
link = false,
preposition = "of",
class = "subtatanegara",
default = {"Former political divisions"},
},
----------------------------------------------------------------------------------------------
-- form-of categories --
----------------------------------------------------------------------------------------------
---------- Abbreviations ----------
["abbreviations of counties!"] = {
-- For categorizing abbreviations of counties of e.g. England
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]",
bare_category_breadcrumb = "counties",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of countries!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "abbreviations of places",
},
["abbreviations of departments!"] = {
-- For categorizing abbreviations of departments of e.g. France
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s",
bare_category_breadcrumb = "departments",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of districts!"] = {
-- For categorizing abbreviations of districts of e.g. ???
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s",
bare_category_breadcrumb = "daerah",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of divisions!"] = {
-- For categorizing abbreviations of divisions of e.g. Bangladesh
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s",
bare_category_breadcrumb = "divisions",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of former countries!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "abbreviations of former places",
},
["abbreviations of former places!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]",
bare_category_breadcrumb = "abbreviations",
bare_category_parent = "former places",
addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}},
},
["abbreviations of places!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "abbreviations",
bare_category_parent = "tempat",
},
["abbreviations of political divisions!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "abbreviations of places",
},
["abbreviations of prefectures!"] = {
-- For categorizing abbreviations of prefectures of e.g. Japan
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s",
bare_category_breadcrumb = "prefectures",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of provinces!"] = {
-- For categorizing abbreviations of provinces of e.g. Canada
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s",
bare_category_breadcrumb = "provinces",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of provinces and territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]",
bare_category_breadcrumb = "provinces and territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of regions!"] = {
-- For categorizing abbreviations of regions of e.g. Italy
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s",
bare_category_breadcrumb = "regions",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states!"] = {
-- For categorizing abbreviations of states of e.g. the United States
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states and territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]",
bare_category_breadcrumb = "states and territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of states and union territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]",
bare_category_breadcrumb = "states and union territories",
bare_category_parent = "abbreviations of political divisions",
},
["abbreviations of territories!"] = {
full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]",
bare_category_breadcrumb = "territories",
bare_category_parent = "abbreviations of political divisions",
},
["ABBREVIATION_OF country"] = {
link = false,
default = {"Abbreviations of countries"},
},
["ABBREVIATION_OF county"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF department"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF district"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF division"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF FORMER country"] = {
link = false,
default = {"Abbreviations of former countries"},
},
["ABBREVIATION_OF FORMER place"] = {
link = false,
default = {"Abbreviations of former places"},
},
["ABBREVIATION_OF place"] = {
link = false,
default = {"Abbreviations of places"},
},
["ABBREVIATION_OF prefecture"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF province"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF region"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF state"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF subpolity"] = {
link = false,
default = {"Abbreviations of political divisions"},
},
["ABBREVIATION_OF territory"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
["ABBREVIATION_OF union territory"] = {
link = false,
fallback = "ABBREVIATION_OF subpolity",
},
---------- Archaic forms ----------
["archaic forms of places!"] = {
full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "archaic forms",
bare_category_parent = "tempat",
},
["ARCHAIC_FORM_OF place"] = {
link = false,
default = {"Archaic forms of places"},
},
---------- Clippings ----------
["clippings of places!"] = {
full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "clippings",
bare_category_parent = "tempat",
},
["CLIPPING_OF place"] = {
link = false,
default = {"Clippings of places"},
},
---------- Dated forms ----------
["dated forms of places!"] = {
full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "dated forms",
bare_category_parent = "tempat",
},
["DATED_FORM_OF place"] = {
link = false,
default = {"Dated forms of places"},
},
---------- Derogatory names ----------
["derogatory names for cities!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]",
bare_category_breadcrumb = "cities",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for cities"},
},
["derogatory names for continents!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s",
bare_category_breadcrumb = "continents",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for continents"},
},
["derogatory names for countries!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for countries"},
},
["derogatory names for places!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s",
bare_category_breadcrumb = "derogatory names",
bare_category_parent = "nicknames for places",
},
["derogatory names for states!"] = {
full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "derogatory names for places",
addl_bare_category_parents = {"nicknames for states"},
},
["DEROGATORY_NAME_FOR capital"] = {
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR city"] = {
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR continent"] = {
link = false,
default = {"Derogatory names for continents"},
},
["DEROGATORY_NAME_FOR country"] = {
link = false,
default = {"Derogatory names for countries"},
},
["DEROGATORY_NAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR place"] = {
link = false,
default = {"Derogatory names for places"},
},
["DEROGATORY_NAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Derogatory names for cities"},
},
["DEROGATORY_NAME_FOR state"] = {
link = false,
default = {"Derogatory names for states"},
},
["DEROGATORY_NAME_FOR town"] = {
link = false,
default = {"Derogatory names for cities"},
},
---------- Ellipses ----------
["ellipses of places!"] = {
full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s",
bare_category_breadcrumb = "ellipses",
bare_category_parent = "tempat",
},
["ELLIPSIS_OF place"] = {
link = false,
default = {"Ellipses of places"},
},
---------- Former long-form names ----------
["former long-form names of countries!"] = {
full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "former long-form names of places",
addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}},
},
["former long-form names of places!"] = {
full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s",
bare_category_breadcrumb = "long-form",
bare_category_parent = "former names of places",
},
["FORMER_LONG_FORM_OF country"] = {
link = false,
default = {"Former long-form names of countries"},
},
["FORMER_LONG_FORM_OF place"] = {
link = false,
default = {"Former long-form names of places"},
},
---------- Former names ----------
["former names of capitals!"] = {
full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name",
bare_category_breadcrumb = "capitals",
bare_category_parent = "former names of settlements",
},
["former names of countries!"] = {
full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name",
bare_category_breadcrumb = "countries",
bare_category_parent = "former names of places",
},
["former names of places!"] = {
full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name",
bare_category_breadcrumb = "former names",
bare_category_parent = "tempat",
},
["former names of political divisions!"] = {
full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name",
bare_category_breadcrumb = "pembahagian politik",
bare_category_parent = "former names of places",
},
["former names of polities!"] = {
full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name",
bare_category_breadcrumb = "polities",
bare_category_parent = "former names of places",
},
["former names of settlements!"] = {
full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name",
bare_category_breadcrumb = "settlements",
bare_category_parent = "former names of political divisions",
},
["FORMER_NAME_OF capital"] = {
link = false,
default = {"Former names of capitals"},
},
["FORMER_NAME_OF country"] = {
link = false,
default = {"Former names of countries"},
},
["FORMER_NAME_OF place"] = {
link = false,
default = {"Former names of places"},
},
["FORMER_NAME_OF polity"] = {
link = false,
default = {"Former names of polities"},
},
["FORMER_NAME_OF region"] = {
link = false,
fallback = "FORMER_NAME_OF subpolity",
},
["FORMER_NAME_OF settlement"] = {
link = false,
default = {"Former names of settlements"},
},
["FORMER_NAME_OF subpolity"] = {
link = false,
default = {"Former names of political divisions"},
},
---------- Former nicknames ----------
["former nicknames for cities!"] = {
full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})",
bare_category_breadcrumb = "cities",
bare_category_parent = "former nicknames for places",
addl_bare_category_parents = {"nicknames for cities"},
},
["former nicknames for places!"] = {
full_category_link = "no-longer-used [[nickname]]s for [[place]]s",
bare_category_breadcrumb = "former",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}},
},
["FORMER_NICKNAME_FOR capital"] = {
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR city"] = {
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR place"] = {
link = false,
default = {"Former nicknames for places"},
},
["FORMER_NICKNAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Former nicknames for cities"},
},
["FORMER_NICKNAME_FOR town"] = {
link = false,
default = {"Former nicknames for cities"},
},
---------- Former official names ----------
["former official names of countries!"] = {
full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "former official names of places",
addl_bare_category_parents = {{name = "former names of countries", sort = "official"}},
},
["former official names of places!"] = {
full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "former names of places",
},
["FORMER_OFFICIAL_NAME_OF country"] = {
link = false,
default = {"Former official names of countries"},
},
["FORMER_OFFICIAL_NAME_OF place"] = {
link = false,
default = {"Former official names of places"},
},
---------- Long-form names ----------
["long-form names of countries!"] = {
full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "long-form names of places",
},
["long-form names of places!"] = {
full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s",
bare_category_breadcrumb = "long-form names",
bare_category_parent = "tempat",
},
["LONG_FORM_OF country"] = {
link = false,
default = {"Long-form names of countries"},
},
["LONG_FORM_OF place"] = {
link = false,
default = {"Long-form names of places"},
},
---------- Nicknames ----------
["nicknames for cities!"] = {
full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]",
bare_category_breadcrumb = "cities",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"cities"},
},
["nicknames for continents!"] = {
full_category_link = "[[nickname]]s for [[continent]]s",
bare_category_breadcrumb = "continents",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"continents"},
},
["nicknames for countries!"] = {
full_category_link = "[[nickname]]s for [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"countries"},
},
["nicknames for places!"] = {
full_category_link = "[[nickname]]s for [[place]]s",
bare_category_breadcrumb = "tempat",
bare_category_parent = "nicknames",
addl_bare_category_parents = {"tempat"},
},
["nicknames for states!"] = {
-- For categorizing nicknames for states of e.g. the United States
full_category_link = "[[nicknames]] for [[state]]s",
bare_category_breadcrumb = "negeri",
bare_category_parent = "nicknames for places",
addl_bare_category_parents = {"negeri"},
},
["NICKNAME_FOR capital"] = {
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR city"] = {
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR continent"] = {
link = false,
default = {"Nicknames for continents"},
},
["NICKNAME_FOR country"] = {
link = false,
default = {"Nicknames for countries"},
},
["NICKNAME_FOR metropolitan city"] = {
-- "metropolitan city" doesn't fall back to "city"
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR place"] = {
link = false,
default = {"Nicknames for places"},
},
["NICKNAME_FOR prefecture-level city"] = {
-- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and
-- "subprovincial city" fall back to "prefecture-level city"
link = false,
default = {"Nicknames for cities"},
},
["NICKNAME_FOR state"] = {
link = false,
default = {"Nicknames for states"},
},
["NICKNAME_FOR town"] = {
link = false,
default = {"Nicknames for cities"},
},
---------- Obsolete forms ----------
["obsolete forms of places!"] = {
full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s",
bare_category_breadcrumb = "obsolete forms",
bare_category_parent = "tempat",
},
["OBSOLETE_FORM_OF place"] = {
link = false,
default = {"Obsolete forms of places"},
},
---------- Official names ----------
["official names of countries!"] = {
full_category_link = "[[official]] [[name]]s of [[country|countries]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "official names of places",
},
["official names of former countries!"] = {
full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]",
bare_category_breadcrumb = "countries",
bare_category_parent = "official names of former places",
},
["official names of former places!"] = {
full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]",
bare_category_breadcrumb = "official names",
bare_category_parent = "former places",
addl_bare_category_parents = {{name = "official names of places", sort = "former"}},
},
["official names of places!"] = {
full_category_link = "[[official]] [[name]]s of [[place]]s",
bare_category_breadcrumb = "official names",
bare_category_parent = "tempat",
},
["OFFICIAL_NAME_OF country"] = {
link = false,
default = {"Official names of countries"},
},
["OFFICIAL_NAME_OF FORMER country"] = {
link = false,
default = {"Official names of former countries"},
},
["OFFICIAL_NAME_OF FORMER place"] = {
link = false,
default = {"Official names of former places"},
},
["OFFICIAL_NAME_OF place"] = {
link = false,
default = {"Official names of places"},
},
---------- Official nicknames ----------
["official nicknames for places!"] = {
full_category_link = "[[official]] [[nickname]]s for [[place]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "nicknames for places",
},
["official nicknames for states!"] = {
-- For categorizing official nicknames for states of e.g. the United States
full_category_link = "[[official]] [[nicknames]] for [[state]]s",
bare_category_breadcrumb = "official",
bare_category_parent = "nicknames for states",
addl_bare_category_parents = {"negeri"},
},
["OFFICIAL_NICKNAME_FOR place"] = {
link = false,
default = {"Official nicknames for places"},
},
["OFFICIAL_NICKNAME_FOR state"] = {
link = false,
default = {"Official nicknames for states"},
},
}
export.plural_placetype_to_singular = {}
for sg_placetype, spec in pairs(export.placetype_data) do
if spec.plural then
export.plural_placetype_to_singular[spec.plural] = sg_placetype
end
end
return export
atxztxl6j5tsko0zgp1jtf4azryfd8o
Phuket
0
92449
278400
254161
2026-04-17T10:59:40Z
PeaceSeekers
3334
/* Etimologi */
278400
wikitext
text/x-wiki
==Bahasa Melayu==
{{wp}}
===Kata nama khas===
{{ms-knk}}
# {{place|ms|wilayah|c/Thailand}}.
# {{place|ms|pulau|p:Suf/Phuket|c/Thailand}}.
# {{place|ms|ibu kota|p:Suf/Phuket|c/Thailand}}.
===Etimologi===
Daripada {{bor|ms|th|ภูเก็ต}}; akhirnya daripada {{der|ms|ms|bukit}}.
t84gvl0gecg0evrcqcsuyb2wmyj8g5o
agaso
0
111827
277977
2026-04-16T22:48:41Z
GodModeBoros
10321
Mencipta laman baru dengan kandungan '==Bahasa Kadazandusun== ===Takrifan=== ====Kata Sifat==== {{inti|dtp|kata sifat}} # [[nakal]]; [[kelakar]] ===Kata Terbitan=== * [[gaso]] ===Rujukan=== {{R:Komoiboros DusunKadazan|2=38}}'
277977
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata Sifat====
{{inti|dtp|kata sifat}}
# [[nakal]]; [[kelakar]]
===Kata Terbitan===
* [[gaso]]
===Rujukan===
{{R:Komoiboros DusunKadazan|2=38}}
19e8ydm1hby6rcadza68gd4a7uvdthc
277980
277977
2026-04-16T22:53:18Z
GodModeBoros
10321
277980
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata Sifat====
{{inti|dtp|kata sifat}}
# [[nakal]]; [[kelakar]]
===Etimologi===
{{affix|dtp|-a|gaso}}
===Rujukan===
{{R:Komoiboros DusunKadazan|2=38}}
ibibm5k0iey858zk4ctly1zh6tvp2hw
277981
277980
2026-04-16T22:53:27Z
GodModeBoros
10321
277981
wikitext
text/x-wiki
==Bahasa Kadazandusun==
===Takrifan===
====Kata Sifat====
{{inti|dtp|kata sifat}}
# [[nakal]]; [[kelakar]]
===Etimologi===
{{affix|dtp|a-|gaso}}
===Rujukan===
{{R:Komoiboros DusunKadazan|2=38}}
6efopuffod78ipahtl28egx2z2jt6dt
Kategori:Perkataan bahasa Bookan diterbitkan daripada bahasa Austronesia Purba
14
111828
277982
2026-04-17T07:16:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277982
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bunun diterbitkan daripada bahasa Austronesia Purba
14
111829
277983
2026-04-17T07:17:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277983
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa Austronesia Purba
14
111830
277984
2026-04-17T07:17:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277984
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diterbitkan daripada bahasa Austronesia Purba
14
111831
277985
2026-04-17T07:17:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277985
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diterbitkan daripada bahasa Austronesia Purba
14
111832
277986
2026-04-17T07:17:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277986
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diterbitkan daripada bahasa Austronesia Purba
14
111833
277987
2026-04-17T07:17:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277987
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diterbitkan daripada bahasa Austronesia Purba
14
111834
277988
2026-04-17T07:17:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277988
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Lun Bawang diterbitkan daripada bahasa Austronesia Purba
14
111835
277989
2026-04-17T07:18:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277989
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa Austronesia Purba
14
111836
277990
2026-04-17T07:18:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277990
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diterbitkan daripada bahasa Austronesia Purba
14
111837
277991
2026-04-17T07:18:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277991
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maori diterbitkan daripada bahasa Austronesia Purba
14
111838
277992
2026-04-17T07:18:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277992
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diterbitkan daripada bahasa Austronesia Purba
14
111839
277993
2026-04-17T07:18:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277993
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa Austronesia Purba
14
111840
277994
2026-04-17T07:18:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277994
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diterbitkan daripada bahasa Austronesia Purba
14
111841
277995
2026-04-17T07:19:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277995
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diterbitkan daripada bahasa Austronesia Purba
14
111842
277996
2026-04-17T07:19:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277996
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa Austronesia Purba
14
111843
277997
2026-04-17T07:19:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277997
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diterbitkan daripada bahasa Austronesia Purba
14
111844
277998
2026-04-17T07:19:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277998
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diwariskan daripada bahasa Austronesia Purba
14
111845
277999
2026-04-17T07:20:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
277999
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bunun diwariskan daripada bahasa Austronesia Purba
14
111846
278000
2026-04-17T07:20:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278000
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diwariskan daripada bahasa Austronesia Purba
14
111847
278001
2026-04-17T07:20:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278001
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diwariskan daripada bahasa Austronesia Purba
14
111848
278002
2026-04-17T07:20:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278002
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diwariskan daripada bahasa Austronesia Purba
14
111849
278003
2026-04-17T07:20:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278003
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diwariskan daripada bahasa Austronesia Purba
14
111850
278004
2026-04-17T07:21:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278004
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diwariskan daripada bahasa Austronesia Purba
14
111851
278005
2026-04-17T07:21:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278005
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Lun Bawang diwariskan daripada bahasa Austronesia Purba
14
111852
278006
2026-04-17T07:21:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278006
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diwariskan daripada bahasa Austronesia Purba
14
111853
278007
2026-04-17T07:21:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278007
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diwariskan daripada bahasa Austronesia Purba
14
111854
278008
2026-04-17T07:21:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278008
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diwariskan daripada bahasa Austronesia Purba
14
111855
278009
2026-04-17T07:21:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278009
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diwariskan daripada bahasa Austronesia Purba
14
111856
278010
2026-04-17T07:22:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278010
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diwariskan daripada bahasa Austronesia Purba
14
111857
278011
2026-04-17T07:22:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278011
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tatana diwariskan daripada bahasa Austronesia Purba
14
111858
278012
2026-04-17T07:22:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278012
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diwariskan daripada bahasa Austronesia Purba
14
111859
278013
2026-04-17T07:22:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278013
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diwariskan daripada bahasa Austronesia Purba
14
111860
278014
2026-04-17T07:22:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278014
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diwariskan daripada bahasa Austronesia Purba
14
111861
278015
2026-04-17T07:22:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Austronesia P. yang masih tiada ([[WT:BOT|bot]])
278015
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111862
278016
2026-04-17T07:24:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278016
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111863
278017
2026-04-17T07:24:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278017
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111864
278018
2026-04-17T07:24:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278018
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111865
278019
2026-04-17T07:24:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278019
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111866
278020
2026-04-17T07:24:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278020
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 必 bahasa Cina
14
111867
278021
2026-04-17T07:24:53Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278021
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 有 bahasa Cina
14
111868
278022
2026-04-17T07:24:57Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278022
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111869
278023
2026-04-17T07:24:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278023
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 其 bahasa Cina
14
111870
278024
2026-04-17T07:25:02Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278024
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 父 bahasa Cina
14
111871
278025
2026-04-17T07:25:06Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278025
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibrani diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111872
278026
2026-04-17T07:25:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278026
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111873
278027
2026-04-17T07:25:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278027
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111874
278028
2026-04-17T07:25:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278028
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111875
278029
2026-04-17T07:25:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278029
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111876
278030
2026-04-17T07:25:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278030
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111877
278031
2026-04-17T07:25:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278031
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mamasa diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111878
278032
2026-04-17T07:26:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278032
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111879
278033
2026-04-17T07:26:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278033
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111880
278034
2026-04-17T07:26:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278034
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 必 mengikut bahasa
14
111881
278035
2026-04-17T07:26:30Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278035
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 父 mengikut bahasa
14
111882
278036
2026-04-17T07:26:34Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278036
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111883
278037
2026-04-17T07:26:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278037
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan dieja dengan 其 mengikut bahasa
14
111884
278038
2026-04-17T07:26:43Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278038
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111885
278039
2026-04-17T07:26:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278039
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111886
278040
2026-04-17T07:26:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278040
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Sasak diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111887
278041
2026-04-17T07:27:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278041
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tolaki diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111888
278042
2026-04-17T07:27:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278042
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111889
278043
2026-04-17T07:27:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278043
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111890
278044
2026-04-17T07:27:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278044
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diterbitkan daripada bahasa Melayu-Polinesia Purba
14
111891
278045
2026-04-17T07:27:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278045
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diwariskan daripada bahasa Melayu-Polinesia Purba
14
111892
278046
2026-04-17T07:28:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278046
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diwariskan daripada bahasa Melayu-Polinesia Purba
14
111893
278047
2026-04-17T07:28:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278047
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diwariskan daripada bahasa Melayu-Polinesia Purba
14
111894
278048
2026-04-17T07:28:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278048
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diwariskan daripada bahasa Melayu-Polinesia Purba
14
111895
278049
2026-04-17T07:29:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278049
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diwariskan daripada bahasa Melayu-Polinesia Purba
14
111896
278050
2026-04-17T07:29:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278050
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hiligaynon diwariskan daripada bahasa Melayu-Polinesia Purba
14
111897
278051
2026-04-17T07:29:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278051
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diwariskan daripada bahasa Melayu-Polinesia Purba
14
111898
278052
2026-04-17T07:29:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278052
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diwariskan daripada bahasa Melayu-Polinesia Purba
14
111899
278053
2026-04-17T07:29:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278053
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diwariskan daripada bahasa Melayu-Polinesia Purba
14
111900
278054
2026-04-17T07:29:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278054
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diwariskan daripada bahasa Melayu-Polinesia Purba
14
111901
278055
2026-04-17T07:30:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278055
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diwariskan daripada bahasa Melayu-Polinesia Purba
14
111902
278056
2026-04-17T07:30:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278056
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diwariskan daripada bahasa Melayu-Polinesia Purba
14
111903
278057
2026-04-17T07:30:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278057
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mamasa diwariskan daripada bahasa Melayu-Polinesia Purba
14
111904
278058
2026-04-17T07:30:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278058
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diwariskan daripada bahasa Melayu-Polinesia Purba
14
111905
278059
2026-04-17T07:30:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278059
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diwariskan daripada bahasa Melayu-Polinesia Purba
14
111906
278060
2026-04-17T07:30:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278060
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diwariskan daripada bahasa Melayu-Polinesia Purba
14
111907
278061
2026-04-17T07:31:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278061
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Sasak diwariskan daripada bahasa Melayu-Polinesia Purba
14
111908
278062
2026-04-17T07:31:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278062
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tolaki diwariskan daripada bahasa Melayu-Polinesia Purba
14
111909
278063
2026-04-17T07:31:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278063
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diwariskan daripada bahasa Melayu-Polinesia Purba
14
111910
278064
2026-04-17T07:31:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278064
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diwariskan daripada bahasa Melayu-Polinesia Purba
14
111911
278065
2026-04-17T07:31:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278065
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diwariskan daripada bahasa Melayu-Polinesia Purba
14
111912
278066
2026-04-17T07:31:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia P. yang masih tiada ([[WT:BOT|bot]])
278066
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Wikikamus:ms/mata ke ranjang
4
111913
278067
2026-04-17T07:34:00Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '==Bahasa {{bahasa|{{subst:ROOTPAGENAME}}}}== ===Frasa=== {{inti|{{subst:ROOTPAGENAME}}|frasa}} # {{lb|ms|peribahasa}} Perihal seseorang yang mudah terfikir perkara berunsur [[seksual]].'
278067
wikitext
text/x-wiki
==Bahasa {{bahasa|ms}}==
===Frasa===
{{inti|ms|frasa}}
# {{lb|ms|peribahasa}} Perihal seseorang yang mudah terfikir perkara berunsur [[seksual]].
5sc4i4uk1x4j8dv0t7mjp8xkqqzbs0o
mata ke ranjang
0
111914
278068
2026-04-17T07:34:59Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{:wt:ms/{{PAGENAME}}}}'
278068
wikitext
text/x-wiki
{{:wt:ms/{{PAGENAME}}}}
jp5yrgapdm2832l25zwx42bn1i6h2cn
Kategori:Perkataan bahasa Butuanon diwariskan daripada bahasa Filipina Purba
14
111915
278069
2026-04-17T07:39:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278069
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diwariskan daripada bahasa Filipina Purba
14
111916
278070
2026-04-17T07:39:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278070
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diwariskan daripada bahasa Filipina Purba
14
111917
278071
2026-04-17T07:39:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278071
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diwariskan daripada bahasa Filipina Purba
14
111918
278072
2026-04-17T07:39:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278072
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diwariskan daripada bahasa Filipina Purba
14
111919
278073
2026-04-17T07:39:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278073
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diwariskan daripada bahasa Filipina Purba
14
111920
278074
2026-04-17T07:40:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278074
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa Filipina Purba
14
111921
278075
2026-04-17T07:40:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278075
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa Filipina Purba
14
111922
278076
2026-04-17T07:40:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278076
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diterbitkan daripada bahasa Filipina Purba
14
111923
278077
2026-04-17T07:40:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278077
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diterbitkan daripada bahasa Filipina Purba
14
111924
278078
2026-04-17T07:41:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278078
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa Filipina Purba
14
111925
278079
2026-04-17T07:41:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278079
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa Filipina Purba
14
111926
278080
2026-04-17T07:41:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina P. yang masih tiada ([[WT:BOT|bot]])
278080
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa-bahasa Filipina
14
111927
278081
2026-04-17T07:42:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278081
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa-bahasa Filipina
14
111928
278082
2026-04-17T07:42:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278082
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diterbitkan daripada bahasa-bahasa Filipina
14
111929
278083
2026-04-17T07:42:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278083
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diterbitkan daripada bahasa-bahasa Filipina
14
111930
278084
2026-04-17T07:42:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278084
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa-bahasa Filipina
14
111931
278085
2026-04-17T07:42:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278085
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa-bahasa Filipina
14
111932
278086
2026-04-17T07:43:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278086
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Sabah diterbitkan daripada bahasa-bahasa Filipina
14
111933
278087
2026-04-17T07:43:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Filipina yang masih tiada ([[WT:BOT|bot]])
278087
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111934
278088
2026-04-17T07:48:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278088
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111935
278089
2026-04-17T07:48:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278089
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kosrae diterbitkan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111936
278090
2026-04-17T07:49:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278090
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diwariskan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111937
278091
2026-04-17T07:49:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278091
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diwariskan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111938
278092
2026-04-17T07:49:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278092
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kosrae diwariskan daripada bahasa Melayu-Polinesia Tengah Timur Purba
14
111939
278093
2026-04-17T07:50:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Tengah Timur Purba yang masih tiada ([[WT:BOT|bot]])
278093
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diwariskan daripada bahasa Melayu-Polinesia Timur Purba
14
111940
278094
2026-04-17T07:51:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278094
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diwariskan daripada bahasa Melayu-Polinesia Timur Purba
14
111941
278095
2026-04-17T07:52:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278095
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kosrae diwariskan daripada bahasa Melayu-Polinesia Timur Purba
14
111942
278096
2026-04-17T07:52:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278096
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa Melayu-Polinesia Timur Purba
14
111943
278097
2026-04-17T07:53:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278097
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa Melayu-Polinesia Timur Purba
14
111944
278098
2026-04-17T07:53:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278098
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kosrae diterbitkan daripada bahasa Melayu-Polinesia Timur Purba
14
111945
278099
2026-04-17T07:54:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Timur Purba yang masih tiada ([[WT:BOT|bot]])
278099
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa Oceania Purba
14
111946
278100
2026-04-17T07:56:01Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Oceania Purba yang masih tiada ([[WT:BOT|bot]])
278100
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa Oceania Purba
14
111947
278101
2026-04-17T07:56:11Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Oceania Purba yang masih tiada ([[WT:BOT|bot]])
278101
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diwariskan daripada bahasa Oceania Purba
14
111948
278102
2026-04-17T07:58:07Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Oceania Purba yang masih tiada ([[WT:BOT|bot]])
278102
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diwariskan daripada bahasa Oceania Purba
14
111949
278103
2026-04-17T07:58:17Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan warisan Oceania Purba yang masih tiada ([[WT:BOT|bot]])
278103
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa-bahasa Oceania
14
111950
278104
2026-04-17T08:01:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Oceania yang masih tiada ([[WT:BOT|bot]])
278104
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa-bahasa Oceania
14
111951
278105
2026-04-17T08:01:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Oceania yang masih tiada ([[WT:BOT|bot]])
278105
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa-bahasa Melayu-Polinesia Timur
14
111952
278106
2026-04-17T08:02:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Timur yang masih tiada ([[WT:BOT|bot]])
278106
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa-bahasa Melayu-Polinesia Timur
14
111953
278107
2026-04-17T08:02:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Timur yang masih tiada ([[WT:BOT|bot]])
278107
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa-bahasa Melayu-Polinesia Tengah-Timur
14
111954
278108
2026-04-17T08:03:35Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Tengah-Timur yang masih tiada ([[WT:BOT|bot]])
278108
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa-bahasa Melayu-Polinesia Tengah-Timur
14
111955
278109
2026-04-17T08:03:45Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia Tengah-Timur yang masih tiada ([[WT:BOT|bot]])
278109
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111956
278110
2026-04-17T08:04:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278110
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111957
278111
2026-04-17T08:04:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278111
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111958
278112
2026-04-17T08:05:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278112
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111959
278113
2026-04-17T08:05:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278113
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111960
278114
2026-04-17T08:05:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278114
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111961
278115
2026-04-17T08:05:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278115
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111962
278116
2026-04-17T08:05:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278116
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111963
278117
2026-04-17T08:05:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278117
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111964
278118
2026-04-17T08:06:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278118
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111965
278119
2026-04-17T08:06:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278119
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111966
278120
2026-04-17T08:06:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278120
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111967
278121
2026-04-17T08:06:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278121
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111968
278122
2026-04-17T08:06:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278122
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mamasa diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111969
278123
2026-04-17T08:06:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278123
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111970
278124
2026-04-17T08:07:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278124
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111971
278125
2026-04-17T08:07:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278125
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111972
278126
2026-04-17T08:07:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278126
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111973
278127
2026-04-17T08:07:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278127
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111974
278128
2026-04-17T08:07:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278128
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Sasak diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111975
278129
2026-04-17T08:07:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278129
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tolaki diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111976
278130
2026-04-17T08:08:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278130
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111977
278131
2026-04-17T08:08:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278131
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111978
278132
2026-04-17T08:08:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278132
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diterbitkan daripada bahasa-bahasa Melayu-Polinesia
14
111979
278133
2026-04-17T08:08:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Melayu-Polinesia yang masih tiada ([[WT:BOT|bot]])
278133
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diterbitkan daripada bahasa-bahasa Austronesia
14
111980
278134
2026-04-17T08:09:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278134
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bunun diterbitkan daripada bahasa-bahasa Austronesia
14
111981
278135
2026-04-17T08:09:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278135
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa-bahasa Austronesia
14
111982
278136
2026-04-17T08:09:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278136
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa-bahasa Austronesia
14
111983
278137
2026-04-17T08:10:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278137
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa-bahasa Austronesia
14
111984
278138
2026-04-17T08:10:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278138
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa-bahasa Austronesia
14
111985
278139
2026-04-17T08:10:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278139
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diterbitkan daripada bahasa-bahasa Austronesia
14
111986
278140
2026-04-17T08:10:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278140
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diterbitkan daripada bahasa-bahasa Austronesia
14
111987
278141
2026-04-17T08:10:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278141
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diterbitkan daripada bahasa-bahasa Austronesia
14
111988
278142
2026-04-17T08:10:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278142
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diterbitkan daripada bahasa-bahasa Austronesia
14
111989
278143
2026-04-17T08:11:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278143
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diterbitkan daripada bahasa-bahasa Austronesia
14
111990
278144
2026-04-17T08:11:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278144
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diterbitkan daripada bahasa-bahasa Austronesia
14
111991
278145
2026-04-17T08:11:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278145
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa-bahasa Austronesia
14
111992
278146
2026-04-17T08:11:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278146
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diterbitkan daripada bahasa-bahasa Austronesia
14
111993
278147
2026-04-17T08:11:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278147
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mamasa diterbitkan daripada bahasa-bahasa Austronesia
14
111994
278148
2026-04-17T08:11:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278148
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diterbitkan daripada bahasa-bahasa Austronesia
14
111995
278149
2026-04-17T08:12:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278149
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa-bahasa Austronesia
14
111996
278150
2026-04-17T08:12:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278150
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa-bahasa Austronesia
14
111997
278151
2026-04-17T08:12:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278151
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diterbitkan daripada bahasa-bahasa Austronesia
14
111998
278152
2026-04-17T08:12:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278152
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa-bahasa Austronesia
14
111999
278153
2026-04-17T08:12:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278153
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Sasak diterbitkan daripada bahasa-bahasa Austronesia
14
112000
278154
2026-04-17T08:12:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278154
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tolaki diterbitkan daripada bahasa-bahasa Austronesia
14
112001
278155
2026-04-17T08:13:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278155
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diterbitkan daripada bahasa-bahasa Austronesia
14
112002
278156
2026-04-17T08:13:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278156
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa-bahasa Austronesia
14
112003
278157
2026-04-17T08:13:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278157
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diterbitkan daripada bahasa-bahasa Austronesia
14
112004
278158
2026-04-17T08:13:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan Austronesia yang masih tiada ([[WT:BOT|bot]])
278158
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bookan diterbitkan daripada bahasa lain
14
112005
278159
2026-04-17T08:14:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278159
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Bunun diterbitkan daripada bahasa lain
14
112006
278160
2026-04-17T08:15:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278160
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Butuanon diterbitkan daripada bahasa lain
14
112007
278161
2026-04-17T08:15:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278161
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haeke diterbitkan daripada bahasa lain
14
112008
278162
2026-04-17T08:15:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278162
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Hanunoo diterbitkan daripada bahasa lain
14
112009
278163
2026-04-17T08:15:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278163
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Haveke diterbitkan daripada bahasa lain
14
112010
278164
2026-04-17T08:15:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278164
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibanag diterbitkan daripada bahasa lain
14
112011
278165
2026-04-17T08:15:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278165
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ilocano diterbitkan daripada bahasa lain
14
112012
278166
2026-04-17T08:16:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278166
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Itawit diterbitkan daripada bahasa lain
14
112013
278167
2026-04-17T08:16:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278167
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kalagan Tagakaulu diterbitkan daripada bahasa lain
14
112014
278168
2026-04-17T08:16:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278168
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kayan Baram diterbitkan daripada bahasa lain
14
112015
278169
2026-04-17T08:16:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278169
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Kelabit diterbitkan daripada bahasa lain
14
112016
278170
2026-04-17T08:16:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278170
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maguindanao diterbitkan daripada bahasa lain
14
112017
278171
2026-04-17T08:16:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278171
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Malagasy diterbitkan daripada bahasa lain
14
112018
278172
2026-04-17T08:17:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278172
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mamasa diterbitkan daripada bahasa lain
14
112019
278173
2026-04-17T08:17:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278173
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Mapun diterbitkan daripada bahasa lain
14
112020
278174
2026-04-17T08:17:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278174
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Maranao diterbitkan daripada bahasa lain
14
112021
278175
2026-04-17T08:17:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278175
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa lain
14
112022
278176
2026-04-17T08:17:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278176
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Murut Tahol diterbitkan daripada bahasa lain
14
112023
278177
2026-04-17T08:17:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278177
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa lain
14
112024
278178
2026-04-17T08:18:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278178
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Sasak diterbitkan daripada bahasa lain
14
112025
278179
2026-04-17T08:18:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278179
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Tolaki diterbitkan daripada bahasa lain
14
112026
278180
2026-04-17T08:18:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278180
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Toraja-Sa'dan diterbitkan daripada bahasa lain
14
112027
278181
2026-04-17T08:18:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278181
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa lain
14
112028
278182
2026-04-17T08:18:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278182
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Yogad diterbitkan daripada bahasa lain
14
112029
278183
2026-04-17T08:18:57Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori perkataan terbitan yang masih tiada ([[WT:BOT|bot]])
278183
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Bookan
14
112030
278184
2026-04-17T08:19:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278184
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Bunun
14
112031
278185
2026-04-17T08:20:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278185
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Butuanon
14
112032
278186
2026-04-17T08:20:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278186
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Haeke
14
112033
278187
2026-04-17T08:20:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278187
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Hanunoo
14
112034
278188
2026-04-17T08:20:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278188
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Haveke
14
112035
278189
2026-04-17T08:20:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278189
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Ibanag
14
112036
278190
2026-04-17T08:20:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278190
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Ilocano
14
112037
278191
2026-04-17T08:21:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278191
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Itawit
14
112038
278192
2026-04-17T08:21:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278192
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Kalagan Tagakaulu
14
112039
278193
2026-04-17T08:21:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278193
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Kayan Baram
14
112040
278194
2026-04-17T08:21:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278194
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Maguindanao
14
112041
278195
2026-04-17T08:21:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278195
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Malagasy
14
112042
278196
2026-04-17T08:21:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278196
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Mamasa
14
112043
278197
2026-04-17T08:22:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278197
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Mapun
14
112044
278198
2026-04-17T08:22:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278198
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Maranao
14
112045
278199
2026-04-17T08:22:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278199
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Melayu Cheti
14
112046
278200
2026-04-17T08:22:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278200
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Murut Tahol
14
112047
278201
2026-04-17T08:22:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278201
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Rembong
14
112048
278202
2026-04-17T08:22:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278202
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Sasak
14
112049
278203
2026-04-17T08:23:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278203
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Tolaki
14
112050
278204
2026-04-17T08:23:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278204
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Toraja-Sa'dan
14
112051
278205
2026-04-17T08:23:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278205
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Urak Lawoi'
14
112052
278206
2026-04-17T08:23:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278206
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan mengikut etimologi bahasa Yogad
14
112053
278207
2026-04-17T08:23:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278207
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa Melayu-Sumbawa Purba
14
112054
278208
2026-04-17T09:10:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278208
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa Melayu-Sumbawa Purba
14
112055
278209
2026-04-17T09:10:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278209
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diwariskan daripada bahasa Melayu-Sumbawa Purba
14
112056
278210
2026-04-17T09:10:51Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278210
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diwariskan daripada bahasa Melayu-Chamik Purba
14
112057
278211
2026-04-17T09:11:12Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278211
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa Melayu-Chamik Purba
14
112058
278212
2026-04-17T09:11:55Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278212
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa Melayu-Chamik Purba
14
112059
278213
2026-04-17T09:12:05Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278213
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Ibrani diterbitkan daripada bahasa Melayik Purba
14
112060
278214
2026-04-17T09:23:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278214
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa Melayik Purba
14
112061
278215
2026-04-17T09:23:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278215
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa Melayik Purba
14
112062
278216
2026-04-17T09:23:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278216
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa Melayik Purba
14
112063
278217
2026-04-17T09:23:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278217
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa Sunda-Sulawesi Purba
14
112064
278218
2026-04-17T09:24:16Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278218
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa-bahasa Melayik
14
112065
278219
2026-04-17T09:24:48Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278219
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa-bahasa Melayik
14
112066
278220
2026-04-17T09:24:58Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278220
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa-bahasa Melayik
14
112067
278221
2026-04-17T09:25:08Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278221
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa-bahasa Melayu-Chamik
14
112068
278222
2026-04-17T09:25:32Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278222
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa-bahasa Melayu-Chamik
14
112069
278223
2026-04-17T09:25:42Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278223
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa-bahasa Melayu-Chamik
14
112070
278224
2026-04-17T09:25:52Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278224
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Melayu Cheti diterbitkan daripada bahasa-bahasa Melayu-Sumbawa
14
112071
278226
2026-04-17T09:27:05Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278226
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Rembong diterbitkan daripada bahasa-bahasa Melayu-Sumbawa
14
112072
278227
2026-04-17T09:27:15Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278227
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Perkataan bahasa Urak Lawoi' diterbitkan daripada bahasa-bahasa Melayu-Sumbawa
14
112073
278228
2026-04-17T09:27:25Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori etimologi yang masih tiada ([[WT:BOT|bot]])
278228
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Telur
14
112074
278231
2026-04-17T09:31:30Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278231
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Telur
14
112075
278233
2026-04-17T09:32:50Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278233
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Pembiakan
14
112076
278234
2026-04-17T09:33:01Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278234
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Biologi
14
112077
278235
2026-04-17T09:35:05Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278235
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Burung
14
112078
278236
2026-04-17T09:35:15Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278236
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Cahaya
14
112079
278237
2026-04-17T09:35:25Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278237
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Haiwan
14
112080
278238
2026-04-17T09:35:35Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278238
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Makanan
14
112081
278239
2026-04-17T09:35:45Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278239
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Makanan dan minuman
14
112082
278240
2026-04-17T09:35:55Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278240
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Pembiakan
14
112083
278241
2026-04-17T09:36:05Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278241
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Penglihatan
14
112084
278242
2026-04-17T09:36:15Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278242
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Senarai kategori set
14
112085
278243
2026-04-17T09:36:25Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278243
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Deria
14
112086
278244
2026-04-17T09:38:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278244
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Kehidupan
14
112087
278245
2026-04-17T09:38:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278245
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Makan
14
112088
278246
2026-04-17T09:38:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278246
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Makhluk
14
112089
278247
2026-04-17T09:38:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278247
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Sains
14
112090
278248
2026-04-17T09:38:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278248
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Semua topik
14
112091
278249
2026-04-17T09:38:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278249
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Senarai kategori berkenaan
14
112092
278250
2026-04-17T09:39:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278250
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Tenaga
14
112093
278251
2026-04-17T09:39:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278251
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Vertebrat
14
112094
278252
2026-04-17T09:39:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278252
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Alam semula jadi
14
112095
278253
2026-04-17T09:42:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278253
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Badan
14
112096
278254
2026-04-17T09:42:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278254
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Kordata
14
112097
278255
2026-04-17T09:42:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278255
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Tingkah laku manusia
14
112098
278256
2026-04-17T09:42:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278256
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ban:Manusia
14
112099
278257
2026-04-17T09:42:57Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278257
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Amfibia
14
112100
278259
2026-04-17T09:45:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278259
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Anak haiwan
14
112101
278260
2026-04-17T09:46:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278260
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Anjing
14
112102
278261
2026-04-17T09:46:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278261
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Babi
14
112103
278262
2026-04-17T09:46:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278262
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Biologi
14
112104
278263
2026-04-17T09:46:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278263
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Burung
14
112105
278264
2026-04-17T09:46:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278264
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Emosi
14
112106
278265
2026-04-17T09:46:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278265
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Fenomena atmosfera
14
112107
278266
2026-04-17T09:47:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278266
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Gender
14
112108
278267
2026-04-17T09:47:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278267
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Haiwan
14
112109
278268
2026-04-17T09:47:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278268
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Hari dalam minggu
14
112110
278269
2026-04-17T09:47:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278269
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Hijau
14
112111
278271
2026-04-17T09:47:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278271
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Keluarga
14
112112
278273
2026-04-17T09:47:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278273
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kenderaan air
14
112113
278274
2026-04-17T09:48:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278274
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Orang
14
112114
278275
2026-04-17T09:48:19Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278275
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Pekerjaan
14
112115
278276
2026-04-17T09:48:29Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278276
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Pendengaran
14
112116
278277
2026-04-17T09:48:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278277
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Perubatan
14
112117
278278
2026-04-17T09:48:49Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278278
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Tumbuhan
14
112118
278279
2026-04-17T09:48:59Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278279
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Warna pelangi
14
112119
278281
2026-04-17T09:49:09Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278281
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Atmosfera
14
112120
278283
2026-04-17T09:49:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278283
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kanid
14
112121
278284
2026-04-17T09:49:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278284
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kejadian berkala
14
112122
278285
2026-04-17T09:50:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278285
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kenderaan
14
112123
278286
2026-04-17T09:50:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278286
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Makhluk
14
112124
278287
2026-04-17T09:50:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278287
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Manusia
14
112125
278288
2026-04-17T09:50:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278288
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Minda
14
112126
278289
2026-04-17T09:50:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278289
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Nautika
14
112127
278290
2026-04-17T09:50:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278290
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Psikologi
14
112128
278291
2026-04-17T09:51:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278291
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Sains
14
112129
278292
2026-04-17T09:51:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278292
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Sosiologi
14
112130
278293
2026-04-17T09:51:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278293
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Vertebrat
14
112131
278294
2026-04-17T09:51:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278294
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Karnivor
14
112132
278295
2026-04-17T09:54:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278295
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Kanid
14
112133
278296
2026-04-17T09:54:16Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278296
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kehidupan
14
112134
278297
2026-04-17T09:54:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278297
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Kordata
14
112135
278298
2026-04-17T09:54:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278298
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Mesin
14
112136
278299
2026-04-17T09:54:40Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278299
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:Karnivor
14
112137
278300
2026-04-17T09:54:44Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278300
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Pengangkutan
14
112138
278301
2026-04-17T09:54:50Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278301
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Sains sosial
14
112139
278302
2026-04-17T09:55:00Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278302
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Mamalia
14
112140
278303
2026-04-17T09:55:47Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278303
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Masyarakat
14
112141
278304
2026-04-17T09:55:57Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278304
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bny:Teknologi
14
112142
278305
2026-04-17T09:56:07Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278305
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Ahli keluarga
14
112143
278307
2026-04-17T10:03:51Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278307
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Biologi
14
112144
278308
2026-04-17T10:04:01Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278308
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Cacing
14
112145
278309
2026-04-17T10:04:11Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278309
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Crocodilia
14
112146
278310
2026-04-17T10:04:21Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278310
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Hutan
14
112147
278311
2026-04-17T10:04:31Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278311
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Kelabu
14
112148
278312
2026-04-17T10:04:41Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278312
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Orang lelaki
14
112149
278313
2026-04-17T10:04:51Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278313
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Peralatan dapur
14
112150
278314
2026-04-17T10:05:01Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278314
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Perikanan
14
112151
278315
2026-04-17T10:05:11Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278315
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Perubatan
14
112152
278316
2026-04-17T10:05:21Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278316
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Senarai kategori berkenaan
14
112153
278317
2026-04-17T10:05:31Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278317
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Alat
14
112154
278318
2026-04-17T10:05:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278318
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Ekosistem
14
112155
278319
2026-04-17T10:06:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278319
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Haiwan
14
112156
278320
2026-04-17T10:06:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278320
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Keluarga
14
112157
278321
2026-04-17T10:06:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278321
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Lelaki
14
112158
278322
2026-04-17T10:06:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278322
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Memasak
14
112159
278323
2026-04-17T10:06:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278323
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Orang
14
112160
278324
2026-04-17T10:06:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278324
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Perhutanan
14
112161
278325
2026-04-17T10:07:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278325
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Reptilia
14
112162
278326
2026-04-17T10:07:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278326
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Sains
14
112163
278327
2026-04-17T10:07:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278327
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Senarai kategori nama
14
112164
278328
2026-04-17T10:07:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278328
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Sifat semula jadi
14
112165
278329
2026-04-17T10:07:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278329
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Warna
14
112166
278330
2026-04-17T10:07:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278330
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Bentuk muka bumi
14
112167
278331
2026-04-17T10:08:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278331
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Cahaya
14
112168
278332
2026-04-17T10:08:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278332
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Ekologi
14
112169
278333
2026-04-17T10:08:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278333
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Gender
14
112170
278334
2026-04-17T10:08:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278334
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Makanan dan minuman
14
112171
278335
2026-04-17T10:09:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278335
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Makhluk
14
112172
278336
2026-04-17T10:09:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278336
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Manusia
14
112173
278337
2026-04-17T10:09:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278337
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Penglihatan
14
112174
278338
2026-04-17T10:09:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278338
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Sains gunaan
14
112175
278339
2026-04-17T10:09:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278339
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Teknologi
14
112176
278340
2026-04-17T10:09:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278340
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Tempat
14
112177
278341
2026-04-17T10:10:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278341
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Vertebrat
14
112178
278342
2026-04-17T10:10:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278342
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Alam semula jadi
14
112179
278343
2026-04-17T10:15:32Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278343
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Deria
14
112180
278344
2026-04-17T10:15:42Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278344
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Kehidupan
14
112181
278345
2026-04-17T10:15:52Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278345
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Kordata
14
112182
278346
2026-04-17T10:16:02Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278346
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Nama
14
112183
278347
2026-04-17T10:16:12Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278347
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Psikologi
14
112184
278348
2026-04-17T10:16:22Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278348
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Sosiologi
14
112185
278349
2026-04-17T10:16:32Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278349
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Tenaga
14
112186
278350
2026-04-17T10:16:42Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278350
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Badan
14
112187
278351
2026-04-17T10:21:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278351
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Minda
14
112188
278352
2026-04-17T10:21:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278352
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Sains sosial
14
112189
278353
2026-04-17T10:21:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278353
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:beg:Masyarakat
14
112190
278354
2026-04-17T10:27:39Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278354
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Anggota badan haiwan
14
112191
278356
2026-04-17T10:30:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278356
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Astronomi
14
112192
278357
2026-04-17T10:30:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278357
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Buah
14
112193
278358
2026-04-17T10:30:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278358
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Ikan
14
112194
278359
2026-04-17T10:30:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278359
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Islam
14
112195
278360
2026-04-17T10:31:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278360
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Makanan
14
112196
278361
2026-04-17T10:31:15Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278361
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Makhluk
14
112197
278362
2026-04-17T10:31:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278362
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Masa
14
112198
278363
2026-04-17T10:31:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278363
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Orang
14
112199
278364
2026-04-17T10:31:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278364
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Perempuan
14
112200
278365
2026-04-17T10:31:55Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278365
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Perkahwinan
14
112201
278366
2026-04-17T10:32:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278366
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Tempat
14
112203
278368
2026-04-17T10:32:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278368
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Agama
14
112204
278369
2026-04-17T10:33:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278369
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Angkasa
14
112205
278370
2026-04-17T10:33:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278370
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Budaya
14
112206
278371
2026-04-17T10:33:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278371
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Gender
14
112207
278372
2026-04-17T10:34:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278372
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Kehidupan
14
112208
278373
2026-04-17T10:34:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278373
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Keluarga
14
112209
278374
2026-04-17T10:34:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278374
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Makan
14
112210
278375
2026-04-17T10:34:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278375
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Makanan dan minuman
14
112211
278376
2026-04-17T10:34:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278376
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Manusia
14
112212
278377
2026-04-17T10:34:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278377
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Nama
14
112213
278378
2026-04-17T10:35:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278378
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Rangka
14
112214
278379
2026-04-17T10:35:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278379
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Sains
14
112215
278380
2026-04-17T10:35:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278380
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Senarai kategori berkenaan
14
112216
278381
2026-04-17T10:35:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278381
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Senarai kategori nama
14
112217
278382
2026-04-17T10:35:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278382
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Tumbuhan
14
112218
278383
2026-04-17T10:35:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278383
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Vertebrat
14
112219
278384
2026-04-17T10:36:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278384
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Alam semula jadi
14
112220
278385
2026-04-17T10:38:01Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278385
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Biologi
14
112221
278386
2026-04-17T10:38:11Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278386
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Kordata
14
112222
278387
2026-04-17T10:38:21Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278387
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Masyarakat
14
112223
278388
2026-04-17T10:38:31Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278388
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Psikologi
14
112224
278389
2026-04-17T10:38:41Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278389
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Sosiologi
14
112225
278390
2026-04-17T10:38:51Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278390
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Tingkah laku manusia
14
112226
278391
2026-04-17T10:39:01Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278391
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Minda
14
112227
278393
2026-04-17T10:41:42Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278393
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Sains sosial
14
112228
278394
2026-04-17T10:41:52Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278394
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:ms:Wilayah di Thailand
14
112229
278397
2026-04-17T10:54:07Z
PeaceSeekers
3334
Mencipta laman baru dengan kandungan '{{auto cat}}'
278397
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:bug:Badan
14
112230
278401
2026-04-17T11:02:47Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278401
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Alat
14
112231
278402
2026-04-17T11:03:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278402
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Alat muzik
14
112232
278403
2026-04-17T11:03:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278403
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Amfibia
14
112233
278404
2026-04-17T11:03:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278404
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Anjing
14
112234
278405
2026-04-17T11:03:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278405
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Bangunan
14
112235
278406
2026-04-17T11:03:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278406
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Beri
14
112236
278407
2026-04-17T11:04:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278407
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Buah
14
112237
278408
2026-04-17T11:04:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278408
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Buku
14
112238
278409
2026-04-17T11:04:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278409
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Catur
14
112239
278410
2026-04-17T11:04:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278410
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Dapur
14
112240
278411
2026-04-17T11:04:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278411
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Gelaran
14
112241
278412
2026-04-17T11:04:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278412
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Jam
14
112242
278413
2026-04-17T11:05:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278413
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Kuda
14
112243
278414
2026-04-17T11:05:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278414
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Mata wang
14
112244
278415
2026-04-17T11:05:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278415
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Orang
14
112245
278416
2026-04-17T11:05:34Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278416
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Pengkomputan
14
112246
278417
2026-04-17T11:05:44Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278417
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Pertanian
14
112247
278418
2026-04-17T11:05:54Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278418
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Sains bumi
14
112248
278419
2026-04-17T11:06:04Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278419
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Tatabahasa
14
112249
278420
2026-04-17T11:06:14Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278420
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Tenaga
14
112250
278421
2026-04-17T11:06:24Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278421
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Equidae
14
112251
278422
2026-04-17T11:15:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278422
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
278437
278422
2026-04-17T11:21:29Z
PeaceSeekers
3334
PeaceSeekers telah memindahkan laman [[Kategori:es:Equids]] ke [[Kategori:es:Equidae]] tanpa meninggalkan lencongan: Tukar nama
278422
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Kanid
14
112252
278423
2026-04-17T11:16:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278423
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Kesusasteraan
14
112253
278424
2026-04-17T11:16:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278424
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Linguistik
14
112254
278425
2026-04-17T11:16:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278425
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Makanan
14
112255
278426
2026-04-17T11:16:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278426
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Manusia
14
112256
278427
2026-04-17T11:16:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278427
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Media massa
14
112257
278428
2026-04-17T11:16:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278428
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Memasak
14
112258
278429
2026-04-17T11:17:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278429
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Mesin
14
112259
278430
2026-04-17T11:17:13Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278430
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Permainan papan
14
112260
278431
2026-04-17T11:17:23Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278431
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Teknologi
14
112261
278432
2026-04-17T11:17:33Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278432
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Ternakan
14
112262
278433
2026-04-17T11:17:43Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278433
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Tumbuhan
14
112263
278434
2026-04-17T11:17:53Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278434
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Wang
14
112264
278435
2026-04-17T11:18:03Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278435
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Bahasa
14
112265
278438
2026-04-17T11:21:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278438
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Hiburan
14
112267
278440
2026-04-17T11:22:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278440
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Karnivor
14
112268
278441
2026-04-17T11:22:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278441
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Makan
14
112269
278442
2026-04-17T11:22:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278442
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Makanan dan minuman
14
112270
278443
2026-04-17T11:22:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278443
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Media
14
112271
278444
2026-04-17T11:22:56Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278444
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Penulisan
14
112272
278445
2026-04-17T11:23:06Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278445
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Permainan atas meja
14
112273
278446
2026-04-17T11:23:16Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278446
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Perniagaan
14
112274
278447
2026-04-17T11:23:26Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278447
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Sains sosial
14
112275
278448
2026-04-17T11:23:36Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278448
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Ungulat kuku ganjil
14
112276
278449
2026-04-17T11:23:46Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278449
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Komunikasi
14
112278
278451
2026-04-17T11:25:10Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278451
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Permainan
14
112279
278452
2026-04-17T11:25:20Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278452
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx
Kategori:es:Tingkah laku manusia
14
112280
278453
2026-04-17T11:25:30Z
PEACESEEKERS-BOT
10590
Cipta halaman kategori topik yang masih tiada ([[WT:BOT|bot]])
278453
wikitext
text/x-wiki
{{auto cat}}
eomzlm5v4j7ond1phrju7cnue91g5qx