here you go:
Working on the massive presumption that you have your [people] tags set on your photos, the following expression will give you the following:
If Aisling is in the [people] tag, the caption will show, for example:
(Aisling, aged 4 months) 3 April 2006
If Aisling does not feature in the picture, it will output the date alone, like so: (3 April 2006)
It can be used as both thumbnail text in the 'customise current view' dialogue, and the "Caption" field in the 'Image playback' settings.
It's good until Aisling's 5th birthday, after which, it will prompt you to "Fix the caption"
If you like, you can right-click
HERE and 'save target as...'. It's a text file with the expression as shown below, and also in columns, which makes it easier to follow.
It was a pleasure to work on, I hope it cuts it for you too.
(if(isequal([people],aisling,8),if(isequal([date],2005//11//20,8),Aisling's birthday,if(isequal([date],2006//11//20,8),Aisling's 1st birthday,if(isequal([date],2007//11//20,8),Aisling's 2nd birthday,if(isequal([date],2008//11//20,8),Aisling's 3rd birthday,if(isequal([date],2009//11//20,8),Aisling's 4th birthday,if(isequal([date],2010//11//20,8),Aisling's 5th birthday,if(isequal([date],2005//11//21,8),Aisling/, aged 1 day,if(isequal([date],2005//11//22,8),Aisling/, aged 2 days,if(isequal([date],2005//11//23,8),Aisling/, aged 3 days,if(isequal([date],2005//11//24,8),Aisling/, aged 4 days,if(isequal([date],2005//11//25,8),Aisling/, aged 5 days,if(isequal([date],2005//11//26,8),Aisling/, aged 6 days,if(isequal([numbers],051203,4),Aisling/, aged 1 week,if(isequal([numbers],051210,4),Aisling/, aged 2 weeks,if(isequal([numbers],051217,4),Aisling/, aged 3 weeks,if(isequal([numbers],051224,4),Aisling/, aged 4 weeks,if(isequal([numbers],051231,4),Aisling/, aged 5 weeks,if(isequal([numbers],060107,4),Aisling/, aged 6 weeks,if(isequal([numbers],060114,4),Aisling/, aged 7 weeks,if(isequal([numbers],060121,4),Aisling/, aged 8 weeks,if(isequal([numbers],060219,4),Aisling/, aged 2 months,if(isequal([numbers],060319,4),Aisling/, aged 3 months,if(isequal([numbers],060419,4),Aisling/, aged 4 months,if(isequal([numbers],060519,4),Aisling/, aged 5 months,if(isequal([numbers],060619,4),Aisling/, aged 6 months,if(isequal([numbers],060719,4),Aisling/, aged 7 months,if(isequal([numbers],060819,4),Aisling/, aged 8 months,if(isequal([numbers],060919,4),Aisling/, aged 9 months,if(isequal([numbers],061019,4),Aisling/, aged 10 months,if(isequal([numbers],061119,4),Aisling/, aged 11 months,if(isequal([numbers],061219,4),Aisling/, aged 1 year,if(isequal([numbers],070119,4),Aisling/, aged 13 months,if(isequal([numbers],070219,4),Aisling/, aged 14 months,if(isequal([numbers],070319,4),Aisling/, aged 15 months,if(isequal([numbers],070419,4),Aisling/, aged 16 months,if(isequal([numbers],070519,4),Aisling/, aged 17 months,if(isequal([numbers],070619,4),Aisling/, aged 18 months,if(isequal([numbers],070719,4),Aisling/, aged 19 months,if(isequal([numbers],070819,4),Aisling/, aged 20 months,if(isequal([numbers],070919,4),Aisling/, aged 21 months,if(isequal([numbers],071019,4),Aisling/, aged 22 months,if(isequal([numbers],071119,4),Aisling/, aged 23 months,if(isequal([numbers],081119,4),Aisling/, aged 2 years,if(isequal([numbers],091119,4),Aisling/, aged 3 years,if(isequal([numbers],101119,4),Aisling/, aged 4 years,if(isequal([numbers],111119,4),Aisling/, aged 5 years,FIX THE CAPTION))))))))))))))))))))))))))))))))))))))))))))))/) formatdate([date,0],dd MMMM yyyy),formatdate([date,0],dd MMMM yyyy)/)
regards,
-marko.