Page MenuHomePhabricator

Time units not getting transferred correctly from CLDR for some languages
Open, Needs TriagePublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

What happens?:

  • When reading the page with the interface language as gom, the topic containers say '1 म्हयन्यां आदीं' (1 months ago) and '1 वर्सां आदीं' (1 years ago)
  • A similar thing happens with other interface languages such as zh-hans and id, but not with English, French or Spanish.

What should have happened instead?:

  • The singular form of the time unit (month or year) should have appeared.

Why is this happening?

  • These time units come from the CLDR extension, and all the time units are not getting transferred from the CLDR database for some languages.
    • Languages like gom, id and zh-hans are missing time units like month-past-one and year-past-one
    • Compare this with langauges like en, es and fr, which have units like month-past-one and year-past-one

Event Timeline

Using what we see in https://gerrit.wikimedia.org/r/c/mediawiki/extensions/cldr/+/1134681

for kok_Latn.xml from cldr 47:

		<unitLength type="long">
			<unit type="duration-century">
				<displayName>xekdde</displayName>
				<unitPattern count="other">{0} xekdde</unitPattern>
			</unit>
			<unit type="duration-decade">
				<displayName>doskam</displayName>
				<unitPattern count="other">{0} doskam</unitPattern>
			</unit>
			<unit type="duration-year">
				<displayName>vorsam</displayName>
				<unitPattern count="other">{0} vorsam</unitPattern>
				<perUnitPattern>dor voros {0}</perUnitPattern>
			</unit>
			<unit type="duration-quarter">
				<displayName>timhoinalle</displayName>
				<unitPattern count="other">{0} timhoinalle</unitPattern>
				<perUnitPattern>{0}/timhoinallem</perUnitPattern>
			</unit>
			<unit type="duration-month">
				<displayName>mhoine</displayName>
				<unitPattern count="other">{0} mhoine</unitPattern>
				<perUnitPattern>dor mhoino {0}</perUnitPattern>
			</unit>
			<unit type="duration-week">
				<displayName>suman</displayName>
				<unitPattern count="other">{0} suman</unitPattern>
				<perUnitPattern>dor sumanak {0}</perUnitPattern>
			</unit>
			<unit type="duration-day">
				<displayName>dis</displayName>
				<unitPattern count="other">{0} dis</unitPattern>
				<perUnitPattern>dor disa {0}</perUnitPattern>
			</unit>
			<unit type="duration-hour">
				<displayName>voram</displayName>
				<unitPattern count="other">{0} voram</unitPattern>
				<perUnitPattern>dor vora {0}</perUnitPattern>
			</unit>
			<unit type="duration-minute">
				<displayName>mintam</displayName>
				<unitPattern count="other">{0} mintam</unitPattern>
				<perUnitPattern>dor minut {0}</perUnitPattern>
			</unit>
			<unit type="duration-second">
				<displayName>sekond</displayName>
				<unitPattern count="other">{0} sekond</unitPattern>
				<perUnitPattern>dor sekond {0}</perUnitPattern>
			</unit>
			<unit type="duration-millisecond">
				<displayName>milisekond</displayName>
				<unitPattern count="other">{0} milisekond</unitPattern>
			</unit>
			<unit type="duration-microsecond">
				<displayName>maikrosekond</displayName>
				<unitPattern count="other">{0} maikrosekond</unitPattern>
			</unit>
			<unit type="duration-nanosecond">
				<displayName>nanosekond</displayName>
				<unitPattern count="other">{0} nanosekond</unitPattern>
			</unit>
			<unit type="duration-night">
				<displayName>rati</displayName>
				<unitPattern count="other">{0} rati</unitPattern>
				<perUnitPattern>dor rat {0}</perUnitPattern>
			</unit>
		</unitLength>

^ 14 displayName (as below, we could also use count=

<fields>
			<field type="era">
				<displayName>yug</displayName>
			</field>
			<field type="era-short">
				<displayName>yug</displayName>
			</field>
			<field type="era-narrow">
				<displayName>yug</displayName>
			</field>
			<field type="year">
				<displayName>voros</displayName>
				<relative type="-1">fattlem voros</relative>
				<relative type="0">hem voros</relative>
				<relative type="1">fuddlem voros</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} vorsanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} vorsam adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="year-short">
				<displayName>voros</displayName>
				<relative type="-1">fattlem voros</relative>
				<relative type="0">hem voros</relative>
				<relative type="1">fuddlem voros</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} vorsanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} vorsam adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="year-narrow">
				<displayName>voros</displayName>
				<relative type="-1">fattlem voros</relative>
				<relative type="0">hem voros</relative>
				<relative type="1">fuddlem voros</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}vorsanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}vorsam adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="quarter">
				<displayName>timhoinallem</displayName>
				<relative type="-1">fattlem timhoinallem</relative>
				<relative type="0">hem timhoinallem</relative>
				<relative type="1">fuddlem timhoinallem</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} timhoinalleanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} timhoinalle adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="quarter-short">
				<displayName>timho.</displayName>
				<relative type="-1">fattlem timho.</relative>
				<relative type="0">hem timho.</relative>
				<relative type="1">fuddlem timho.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} timhoinalleanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} timho. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="quarter-narrow">
				<displayName>timh</displayName>
				<relative type="-1">fattlem timh</relative>
				<relative type="0">hem timh</relative>
				<relative type="1">fuddlem timh</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}timhoinalleanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}timh adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="month">
				<displayName>mhoino</displayName>
				<relative type="-1">fattlo mhoino</relative>
				<relative type="0">ho mhoino</relative>
				<relative type="1">fuddlo mhoino</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} mhoineanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} mhoine adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="month-short">
				<displayName>mho.</displayName>
				<relative type="-1">fattlo mho.</relative>
				<relative type="0">ho mho.</relative>
				<relative type="1">fuddlo mho.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} mhoineanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} mho. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="month-narrow">
				<displayName>mh</displayName>
				<relative type="-1">fattlo mh</relative>
				<relative type="0">ho mh</relative>
				<relative type="1">fuddlo mh</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}mhoineanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}mh adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="week">
				<displayName>suman</displayName>
				<relative type="-1">fattlo suman</relative>
				<relative type="0">ho suman</relative>
				<relative type="1">fuddlo suman</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} sumananim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} suman adim</relativeTimePattern>
				</relativeTime>
				<relativePeriod>{0} cho suman</relativePeriod>
			</field>
			<field type="week-short">
				<displayName>suman</displayName>
				<relative type="-1">fattlo suman</relative>
				<relative type="0">ho suman</relative>
				<relative type="1">fuddlo suman</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} sumananim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} suman adim</relativeTimePattern>
				</relativeTime>
				<relativePeriod>{0} cho suman</relativePeriod>
			</field>
			<field type="week-narrow">
				<displayName>sum</displayName>
				<relative type="-1">fattlo sum</relative>
				<relative type="0">ho sum</relative>
				<relative type="1">fuddlo sum</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}sumananim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}sum adim</relativeTimePattern>
				</relativeTime>
				<relativePeriod>{0} cho sum</relativePeriod>
			</field>
			<field type="weekOfMonth">
				<displayName>mhoineacho suman</displayName>
			</field>
			<field type="weekOfMonth-short">
				<displayName>mhoineacho suman</displayName>
			</field>
			<field type="weekOfMonth-narrow">
				<displayName>mhoineacho sum.</displayName>
			</field>
			<field type="day">
				<displayName>dis</displayName>
				<relative type="-1">kal</relative>
				<relative type="0">aiz</relative>
				<relative type="1">faleam</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} disanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} dis adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="day-short">
				<displayName>dis</displayName>
				<relative type="-1">kal</relative>
				<relative type="0">aiz</relative>
				<relative type="1">faleam</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} disanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} dis adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="day-narrow">
				<displayName>d</displayName>
				<relative type="-1">kal</relative>
				<relative type="0">aiz</relative>
				<relative type="1">fal</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}disanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}d adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="dayOfYear">
				<displayName>vorsacho dis</displayName>
			</field>
			<field type="dayOfYear-short">
				<displayName>vorsacho dis</displayName>
			</field>
			<field type="dayOfYear-narrow">
				<displayName>vorsacho d.</displayName>
			</field>
			<field type="weekday">
				<displayName>sumanacho dis</displayName>
			</field>
			<field type="weekday-short">
				<displayName>sumanacho dis</displayName>
			</field>
			<field type="weekday-narrow">
				<displayName>sumanacho d.</displayName>
			</field>
			<field type="sun">
				<relative type="-1">fattlo Aitar</relative>
				<relative type="0">ho Aitar</relative>
				<relative type="1">fuddlo Aitar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Aitaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Aitaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="sun-short">
				<relative type="-1">fattlo Ait.</relative>
				<relative type="0">ho Ait.</relative>
				<relative type="1">fuddlo Ait.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Aitaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Ait. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="sun-narrow">
				<relative type="-1">fattlo Ai</relative>
				<relative type="0">ho Ai</relative>
				<relative type="1">fuddlo Ai</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Aitaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Ai adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="mon">
				<relative type="-1">fattlo Somar</relative>
				<relative type="0">ho Somar</relative>
				<relative type="1">fuddlo Somar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Somaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Somaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="mon-short">
				<relative type="-1">fattlo Som.</relative>
				<relative type="0">ho Som.</relative>
				<relative type="1">fuddlo Som.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Somaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Som. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="mon-narrow">
				<relative type="-1">fattlo Sm</relative>
				<relative type="0">ho Sm</relative>
				<relative type="1">fuddlo Sm</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Somaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Sm adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="tue">
				<relative type="-1">fattlo Mongllar</relative>
				<relative type="0">ho Mongllar</relative>
				<relative type="1">fuddlo Mongllar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Mongllaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Mongllaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="tue-short">
				<relative type="-1">fattlo Mon.</relative>
				<relative type="0">ho Mon.</relative>
				<relative type="1">fuddlo Mon.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Mongllaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Mon. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="tue-narrow">
				<relative type="-1">fattlo Mg</relative>
				<relative type="0">ho Mg</relative>
				<relative type="1">fuddlo Mg</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Mongllaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Mg adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="wed">
				<relative type="-1">fattlo Budhvar</relative>
				<relative type="0">ho Budhvar</relative>
				<relative type="1">fuddlo Budhvar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Budhvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Budhvaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="wed-short">
				<relative type="-1">fattlo Bud.</relative>
				<relative type="0">ho Bud.</relative>
				<relative type="1">fuddlo Bud.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Budhvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Bud. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="wed-narrow">
				<relative type="-1">fattlo Bu</relative>
				<relative type="0">ho Bu</relative>
				<relative type="1">fuddlo Bu</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Budhvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Bu adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="thu">
				<relative type="-1">fattlo Birestar</relative>
				<relative type="0">ho Birestar</relative>
				<relative type="1">fuddlo Birestar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Birestaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Birestaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="thu-short">
				<relative type="-1">fattlo Bre.</relative>
				<relative type="0">ho Bre.</relative>
				<relative type="1">fuddlo Bre.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Birestaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Bre. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="thu-narrow">
				<relative type="-1">fattlo Br</relative>
				<relative type="0">ho Br</relative>
				<relative type="1">fuddlo Br</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Birestaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Br adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="fri">
				<relative type="-1">fattlo Sukrar</relative>
				<relative type="0">ho Sukrar</relative>
				<relative type="1">fuddlo Sukrar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sukraranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Sukraram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="fri-short">
				<relative type="-1">fattlo Suk.</relative>
				<relative type="0">ho Suk.</relative>
				<relative type="1">fuddlo Suk.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sukraranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Suk. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="fri-narrow">
				<relative type="-1">fattlo Su</relative>
				<relative type="0">ho Su</relative>
				<relative type="1">fuddlo Su</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sukraranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Su adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="sat">
				<relative type="-1">fattlo Sonvar</relative>
				<relative type="0">ho Sonvar</relative>
				<relative type="1">fuddlo Sonvar</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sonvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Sonvaram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="sat-short">
				<relative type="-1">fattlo Son.</relative>
				<relative type="0">ho Son.</relative>
				<relative type="1">fuddlo Son.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sonvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Son. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="sat-narrow">
				<relative type="-1">fattlo Sn</relative>
				<relative type="0">ho Sn</relative>
				<relative type="1">fuddlo Sn</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} Sonvaranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} Sn adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="dayperiod-short">
				<displayName>AM/PM</displayName>
			</field>
			<field type="dayperiod">
				<displayName>AM/PM</displayName>
			</field>
			<field type="dayperiod-narrow">
				<displayName>AM/PM</displayName>
			</field>
			<field type="hour">
				<displayName>vor</displayName>
				<relative type="0">hem vor</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} voranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} voram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="hour-short">
				<displayName>vor</displayName>
				<relative type="0">hem vor</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} voranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} voram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="hour-narrow">
				<displayName>vor</displayName>
				<relative type="0">hem vor</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}voranim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}voram adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="minute">
				<displayName>minut</displayName>
				<relative type="0">ho minut</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} mintanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} mintam adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="minute-short">
				<displayName>min.</displayName>
				<relative type="0">ho min.</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} min.</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} min. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="minute-narrow">
				<displayName>min</displayName>
				<relative type="0">ho min</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}min</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}min adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="second">
				<displayName>sekond</displayName>
				<relative type="0">atam</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} sekondanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} sekond adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="second-short">
				<displayName>sek.</displayName>
				<relative type="0">atam</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0} sekondanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0} sek. adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="second-narrow">
				<displayName>sek</displayName>
				<relative type="0">atam</relative>
				<relativeTime type="future">
					<relativeTimePattern count="other">{0}sekondanim</relativeTimePattern>
				</relativeTime>
				<relativeTime type="past">
					<relativeTimePattern count="other">{0}sek adim</relativeTimePattern>
				</relativeTime>
			</field>
			<field type="zone">
				<displayName>vell kxetr</displayName>
			</field>
			<field type="zone-short">
				<displayName>kxetr</displayName>
			</field>
			<field type="zone-narrow">
				<displayName>kxetr</displayName>
			</field>
		</fields>

^ 42 displayName, which isn't a useful metric in there, so.. count= is better, which is 90...

which results in

$timeUnits = [
	'century-other' => '{0} xekdde',
	'day-future-other' => '{0} disanim',
	'day-narrow-future-other' => '{0}disanim',
	'day-narrow-past-other' => '{0}d adim',
	'day-other' => '{0} dis',
	'day-past-other' => '{0} dis adim',
	'day-short-future-other' => '{0} disanim',
	'day-short-past-other' => '{0} dis adim',
	'decade-other' => '{0} doskam',
	'fri-future-other' => '{0} Sukraranim',
	'fri-narrow-future-other' => '{0} Sukraranim',
	'fri-narrow-past-other' => '{0} Su adim',
	'fri-past-other' => '{0} Sukraram adim',
	'fri-short-future-other' => '{0} Sukraranim',
	'fri-short-past-other' => '{0} Suk. adim',
	'hour-future-other' => '{0} voranim',
	'hour-narrow-future-other' => '{0}voranim',
	'hour-narrow-past-other' => '{0}voram adim',
	'hour-other' => '{0} voram',
	'hour-past-other' => '{0} voram adim',
	'hour-short-future-other' => '{0} voranim',
	'hour-short-past-other' => '{0} voram adim',
	'microsecond-other' => '{0} maikrosekond',
	'millisecond-other' => '{0} milisekond',
	'minute-future-other' => '{0} mintanim',
	'minute-narrow-future-other' => '{0}min',
	'minute-narrow-past-other' => '{0}min adim',
	'minute-other' => '{0} mintam',
	'minute-past-other' => '{0} mintam adim',
	'minute-short-future-other' => '{0} min.',
	'minute-short-past-other' => '{0} min. adim',
	'mon-future-other' => '{0} Somaranim',
	'mon-narrow-future-other' => '{0} Somaranim',
	'mon-narrow-past-other' => '{0} Sm adim',
	'mon-past-other' => '{0} Somaram adim',
	'mon-short-future-other' => '{0} Somaranim',
	'mon-short-past-other' => '{0} Som. adim',
	'month-future-other' => '{0} mhoineanim',
	'month-narrow-future-other' => '{0}mhoineanim',
	'month-narrow-past-other' => '{0}mh adim',
	'month-other' => '{0} mhoine',
	'month-past-other' => '{0} mhoine adim',
	'month-short-future-other' => '{0} mhoineanim',
	'month-short-past-other' => '{0} mho. adim',
	'nanosecond-other' => '{0} nanosekond',
	'night-other' => '{0} rati',
	'quarter-future-other' => '{0} timhoinalleanim',
	'quarter-narrow-future-other' => '{0}timhoinalleanim',
	'quarter-narrow-past-other' => '{0}timh adim',
	'quarter-other' => '{0} timhoinalle',
	'quarter-past-other' => '{0} timhoinalle adim',
	'quarter-short-future-other' => '{0} timhoinalleanim',
	'quarter-short-past-other' => '{0} timho. adim',
	'sat-future-other' => '{0} Sonvaranim',
	'sat-narrow-future-other' => '{0} Sonvaranim',
	'sat-narrow-past-other' => '{0} Sn adim',
	'sat-past-other' => '{0} Sonvaram adim',
	'sat-short-future-other' => '{0} Sonvaranim',
	'sat-short-past-other' => '{0} Son. adim',
	'second-future-other' => '{0} sekondanim',
	'second-narrow-future-other' => '{0}sekondanim',
	'second-narrow-past-other' => '{0}sek adim',
	'second-other' => '{0} sekond',
	'second-past-other' => '{0} sekond adim',
	'second-short-future-other' => '{0} sekondanim',
	'second-short-past-other' => '{0} sek. adim',
	'sun-future-other' => '{0} Aitaranim',
	'sun-narrow-future-other' => '{0} Aitaranim',
	'sun-narrow-past-other' => '{0} Ai adim',
	'sun-past-other' => '{0} Aitaram adim',
	'sun-short-future-other' => '{0} Aitaranim',
	'sun-short-past-other' => '{0} Ait. adim',
	'thu-future-other' => '{0} Birestaranim',
	'thu-narrow-future-other' => '{0} Birestaranim',
	'thu-narrow-past-other' => '{0} Br adim',
	'thu-past-other' => '{0} Birestaram adim',
	'thu-short-future-other' => '{0} Birestaranim',
	'thu-short-past-other' => '{0} Bre. adim',
	'tue-future-other' => '{0} Mongllaranim',
	'tue-narrow-future-other' => '{0} Mongllaranim',
	'tue-narrow-past-other' => '{0} Mg adim',
	'tue-past-other' => '{0} Mongllaram adim',
	'tue-short-future-other' => '{0} Mongllaranim',
	'tue-short-past-other' => '{0} Mon. adim',
	'wed-future-other' => '{0} Budhvaranim',
	'wed-narrow-future-other' => '{0} Budhvaranim',
	'wed-narrow-past-other' => '{0} Bu adim',
	'wed-past-other' => '{0} Budhvaram adim',
	'wed-short-future-other' => '{0} Budhvaranim',
	'wed-short-past-other' => '{0} Bud. adim',
	'week-future-other' => '{0} sumananim',
	'week-narrow-future-other' => '{0}sumananim',
	'week-narrow-past-other' => '{0}sum adim',
	'week-other' => '{0} suman',
	'week-past-other' => '{0} suman adim',
	'week-short-future-other' => '{0} sumananim',
	'week-short-past-other' => '{0} suman adim',
	'year-future-other' => '{0} vorsanim',
	'year-narrow-future-other' => '{0}vorsanim',
	'year-narrow-past-other' => '{0}vorsam adim',
	'year-other' => '{0} vorsam',
	'year-past-other' => '{0} vorsam adim',
	'year-short-future-other' => '{0} vorsanim',
	'year-short-past-other' => '{0} vorsam adim',
];

^ That is 104 entries...

90+14...

It looks right to me.

Is it possible they've just not been approved, and hence, not released?

https://github.com/unicode-org/cldr/blob/release-47/common/main/kok_Latn.xml is the base file as included in version 47.

So I guess do we have examples of things that are approved, released/tagged, and MW/cldr isn't actually moving across?

FWIW, I don't believe I have access to the survey tool, so cannot look those parts up myself

Status update from upstream: The languages id and zh-hans are defined to not have differences between singular and plurals. The singular/plural rules have been added for gom and will be available in CLDR v48 to be released on 22 Oct 2025.

We just need to check that the missing time units are in Mediawiki once we update to v48.

Without any extra changes, the patch on T396100 doesn't seem to fix this...

Without any extra changes, the patch on T396100 doesn't seem to fix this...

That's strange. Comparing the v47 and v48 data in CLDR, the past-one variants appear in v48, which were missing in v47:

v48 kok (gom-deva)
v47 kok (gom-deva)

v48 kok_Latn (gom-latn)
v47 kok_Latn (gom-latn)

Maybe helps if I clean things out first... That looks better

Also, is my understanding correct that no other language has any changes in the generated Mediawiki files, apart from Kaj ? That would also be a little suspicious.