[wp-trac] [WordPress Trac] #50493: more detailed notice for register_rest_route

WordPress Trac noreply at wordpress.org
Sun Jul 19 20:35:43 UTC 2020

#50493: more detailed notice for register_rest_route
 Reporter:  Lwangaman     |       Owner:  (none)
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  Future Release
Component:  REST API      |     Version:  5.4.2
 Severity:  normal        |  Resolution:
 Keywords:  has-patch     |     Focuses:  rest-api

Comment (by TimothyBlynJacobs):

 > The reasoning behind the numbering order of the variables was the fact
 that logically, namespaces precede routes. So I ordered the sprintf
 variables logically: you will always find the namespace first and the
 route second. However in the error message itself, depending on the
 wording, sometimes the route might be mentioned before the namespace.

 In every error message the route is mentioned before the namespace. I
 agree its more logical for the namespace to come first when both are
 necessary. So why don't we order the error message that way?

 > That's the whole reason for using numbered variables: you can change the
 order in the sentence any which way without having to change the order of
 the variables as they are passed in.

 Right, but that's primarily used in WordPress so that translators can
 safely reorder variables.

 > So I would really prefer not to change that order, I believe it is more
 clear to leave the logical ordering namespace->route for the order of the
 variables as they are passed in.

 More logical for who? Translators aren't seeing the order of the function
 arguments, just the original string. I think for them it'll be more
 confusing for the order to be mismatched.

 In functions where translations and sprintf placeholders are used, the
 order doesn't always match the function signature. For instance,
 `map_meta_cap` or `rest_handle_deprecated_function`.

 Throughout the codebase I could only find one example of the `%2$s`
 placeholder preceding the first `%1$s` in the original string, and that is
 in a [https://github.com/WordPress/wordpress-
 test case and isn't translated].

 I searched for the pattern `%2\$s.+%1\$s` which wouldn't catch everything,
 but it seems clear to me that by far the dominant pattern in WordPress is
 for the parameters to match the order of the English string.

Ticket URL: <https://core.trac.wordpress.org/ticket/50493#comment:10>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list