Hi Ron, perhaps someone else can improve upon this, but here's a firt shot at German.
german_date ::= any_year | german_r_month dot any_year | day dot german_r_month dot any_year | german_r_month any_year dot ~ '.' any_year ::= year | year_bc year_bc ::= year german_bc year ::= number german_bc ~ 'vc' | 'v.c.' | 'v.chr.' | 'vchr' | 'vuz' | 'v.u.z.' day ~ digit | digit digit digit ~ [0-9] german_r_month ~ 'jan' | 'feb' | 'mär' | 'maer' | 'mrz' | 'apr' | 'mai' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'okt' | 'nov' | 'dez'