Translate path controller
Routes != URLs, you can't translate a route, you only can translate URL aliases.
One route has only one path, which - through optional wildcards - could match more than one URL. Because no single part in your desired URLs is stable, you can't do this with one route. (And AFAIK the first /part/ of a route path must be constant too in Drupal, it cannot start with a wildcard.)
An URL alias is an optional, separate entity that matches an arbitrary URL to an existing route.
You either have to dynamically create/update URL aliases, or add new route only for the spanish translation. But it is allowed to reuse the same controller for multiple routes, so overhead would only be a single entry in a routing.yml file.