Make WordPress Core

Changeset 57505


Ignore:
Timestamp:
01/31/2024 09:49:08 PM (3 years ago)
Author:
swissspidy
Message:

I18N: Revert [57386] pending further investigation.

Reverts the change for fallback string lookup due to a performance regression in the bad case scenario.

See #59656.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/l10n/class-wp-translation-file.php

    r57387 r57505  
    204204                }
    205205
    206                 if ( isset( $this->entries[ $text ] ) ) {
    207                         return $this->entries[ $text ];
    208                 }
    209 
    210                 /*
    211                  * Handle cases where a pluralized string is only used as a singular one.
    212                  * For example, when both __( 'Product' ) and _n( 'Product', 'Products' )
    213                  * are used, the entry key will have the format "ProductNULProducts".
    214                  * Fall back to looking up just "Product" to support this edge case.
    215                  */
    216                 foreach ( $this->entries as $key => $value ) {
    217                         if ( str_starts_with( $key, $text . "\0" ) ) {
    218                                 $parts = explode( "\0", $value );
    219                                 return $parts[0];
    220                         }
    221                 }
    222 
    223                 return false;
     206                return $this->entries[ $text ] ?? false;
    224207        }
    225208
  • trunk/tests/phpunit/tests/l10n/wpTranslationsConvert.php

    r57386 r57505  
    200200                $this->assertSame( 'translation0 with context', $controller->translate_plural( array( 'plural0 with context', 'plural1 with context' ), 1, 'context', 'unittest' ) );
    201201                $this->assertSame( 'translation1 with context', $controller->translate_plural( array( 'plural0 with context', 'plural1 with context' ), 2, 'context', 'unittest' ) );
    202 
    203                 $this->assertSame( 'Produkt', $controller->translate( 'Product', '', 'unittest' ) );
    204                 $this->assertSame( 'Produkt', $controller->translate_plural( array( 'Product', 'Products' ), 1, '', 'unittest' ) );
    205                 $this->assertSame( 'Produkte', $controller->translate_plural( array( 'Product', 'Products' ), 2, '', 'unittest' ) );
    206202        }
    207203
Note: See TracChangeset for help on using the changeset viewer.