Opened 2 months ago
Last modified 2 weeks ago
#48244 new defect (bug)
script-loader.php Need to use _n() when more than one results are found
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Awaiting Review | Priority: | normal |
Severity: | normal | Version: | 4.5 |
Component: | Script Loader | Keywords: | good-first-bug needs-patch |
Focuses: | Cc: | ||
PR Number: |
Description
Location:
https://build.trac.wordpress.org/browser/trunk/wp-includes/script-loader.php?marks=1178#L1178
Content:
'manyResults' => __( '%d results found. Use up and down arrow keys to navigate.' ),
should (if possible) be converted to use _n() in order for some languages to be able to correctly construct the phrase.
Attachments (6)
Change History (10)
#3
@
6 weeks ago
Hey folks,
This ticket really got my attention. I found it an interesting issue to work with. I know there has been already said a lot about L10n which I have been reading and trying to catch up with for the past few days now but still, I am not sure how far I have come regarding this issue. I'd appreciate it if you could review the following code snippet and let me know what I am missing.
For script-loader.php
// Strings for 'jquery-ui-autocomplete' live region messages did_action( 'init' ) && $scripts->localize( 'jquery-ui-autocomplete', 'uiAutocompleteL10n', array( 'noResults' => __( 'No results found.' ), /* translators: %s: Number of results found when using jQuery UI Autocomplete. */ 'manyResults' => _n( '%s result found. Use up and down arrow keys to navigate.', '%s results found. Use up and down arrow keys to navigate.', did_action( 'init' ) ), 'itemSelected' => __( 'Item selected.' ), ) );
For plugin.js & tags-suggest.js
messages: { noResults: ( typeof window.uiAutocompleteL10n !== 'undefined' ) ? window.uiAutocompleteL10n.noResults : '', results: function( number ) { if ( typeof window.uiAutocompleteL10n !== 'undefined' ) { if ( number > 1 ) { return window.uiAutocompleteL10n.manyResults.replace( '%s', number ); } return window.uiAutocompleteL10n.oneResult; } } }
Thank you!
The correct number is only known client-side, so for correct results one would need to use
_n()
from the@wordpress/i18n
JS package.This would need to happen in at least two places:
https://github.com/WordPress/wordpress-develop/blob/3b14a06c8cb187d8abd3d4af8ea9c0ea3a475228/src/js/_enqueues/vendor/tinymce/plugins/wplink/plugin.js#L459-L469
https://github.com/WordPress/wordpress-develop/blob/715a65c56142262b938d6860f840e201b1fe074a/src/js/_enqueues/admin/tags-suggest.js#L135-L144
However, this is by far not the only place where plural forms in JS could or should be improved. In #20491 you can find a huge patch with possible changes.