Changeset 37987
- Timestamp:
- 07/06/2016 02:45:55 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/comment-template.php
r37985 r37987 894 894 } else { 895 895 // % Comments 896 /* translators: If comment number in your language requires declension, 897 * translate this to 'on'. Do not translate into your own language. 898 */ 899 if ( 'on' === _x( 'off', 'Comment number declension: on or off' ) ) { 900 $text = preg_replace( '#<span class="screen-reader-text">.+?</span>#', '', $more ); 901 $text = preg_replace( '/&.+?;/', '', $text ); // Kill entities 902 $text = trim( strip_tags( $text ), '% ' ); 903 904 // Replace '% Comments' with a proper plural form 905 if ( $text && ! preg_match( '/[0-9]+/', $text ) && false !== strpos( $more, '%' ) ) { 906 /* translators: %s: number of comments */ 907 $new_text = _n( '%s Comment', '%s Comments', $number ); 908 $new_text = trim( sprintf( $new_text, '' ) ); 909 910 $more = str_replace( $text, $new_text, $more ); 911 if ( false === strpos( $more, '%' ) ) { 912 $more = '% ' . $more; 913 } 914 } 915 } 916 896 917 $output = str_replace( '%', number_format_i18n( $number ), $more ); 897 918 } -
trunk/tests/phpunit/tests/comment/template.php
r35242 r37987 31 31 } 32 32 33 /** 34 * @ticket 13651 35 */ 36 function test_get_comments_number_text_declension_with_default_args() { 37 $post_id = $this->factory->post->create(); 38 $permalink = get_permalink( $post_id ); 39 $this->go_to( $permalink ); 40 41 $this->assertEquals( __( 'No Comments' ), get_comments_number_text() ); 42 43 $this->factory->comment->create_post_comments( $post_id, 1 ); 44 $this->go_to( $permalink ); 45 46 $this->assertEquals( __( '1 Comment' ), get_comments_number_text() ); 47 48 $this->factory->comment->create_post_comments( $post_id, 1 ); 49 $this->go_to( $permalink ); 50 51 $this->assertEquals( sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), get_comments_number_text() ); 52 53 } 54 55 /** 56 * @ticket 13651 57 * @dataProvider data_get_comments_number_text_declension 58 */ 59 function test_get_comments_number_text_declension_with_custom_args( $number, $input, $output ) { 60 $post_id = $this->factory->post->create(); 61 $permalink = get_permalink( $post_id ); 62 63 $this->factory->comment->create_post_comments( $post_id, $number ); 64 $this->go_to( $permalink ); 65 66 add_filter( 'gettext_with_context', array( $this, '_enable_comment_number_declension' ), 10, 4 ); 67 68 $this->assertEquals( $output, get_comments_number_text( false, false, $input ) ); 69 70 remove_filter( 'gettext_with_context', array( $this, '_enable_comment_number_declension' ), 10, 4 ); 71 } 72 73 function _enable_comment_number_declension( $translation, $text, $context, $domain ) { 74 if ( 'Comment number declension: on or off' === $context ) { 75 $translation = 'on'; 76 } 77 78 return $translation; 79 } 80 81 function data_get_comments_number_text_declension() { 82 return array( 83 array( 84 2, 85 'Comments (%)', 86 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 87 ), 88 array( 89 2, 90 '2 Comments', 91 '2 Comments', 92 ), 93 array( 94 2, 95 '2 Comments<span class="screen-reader-text"> on Hello world!</span>', 96 '2 Comments<span class="screen-reader-text"> on Hello world!</span>', 97 ), 98 array( 99 2, 100 '2 Comments<span class="screen-reader-text"> on Hello % world!</span>', 101 '2 Comments<span class="screen-reader-text"> on Hello 2 world!</span>' // See #WP37103 102 ), 103 array( 104 2, 105 __( '% Comments', 'twentyten' ), 106 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 107 ), 108 array( 109 2, 110 _x( '%', 'comments number', 'twentyeleven' ), 111 '2', 112 ), 113 array( 114 2, 115 __( '<b>%</b> Replies', 'twentyeleven' ), 116 sprintf( _n( '%s Comment', '%s Comments', 2 ), '<b>2</b>' ), 117 ), 118 array( 119 2, 120 __( '% <span class="reply">comments →</span>', 'twentyeleven' ), 121 sprintf( '2 <span class="reply">%s →</span>', trim( sprintf( _n( '%s Comment', '%s Comments', 2 ), '' ) ) ), 122 ), 123 array( 124 2, 125 __( '% Replies', 'twentytwelve' ), 126 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 127 ), 128 array( 129 2, 130 __( 'View all % comments', 'twentythirteen' ), 131 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 132 ), 133 array( 134 2, 135 __( '% Comments', 'twentyfourteen' ), 136 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 137 ), 138 array( 139 2, 140 __( '% Comments', 'twentyfifteen' ), 141 sprintf( _n( '%s Comment', '%s Comments', 2 ), '2' ), 142 ), 143 ); 144 } 145 33 146 }
Note: See TracChangeset
for help on using the changeset viewer.