[wp-trac] [WordPress Trac] #55941: Empty string wrongly translated to '0'

WordPress Trac noreply at wordpress.org
Tue Jun 7 17:54:23 UTC 2022


#55941: Empty string wrongly translated to '0'
--------------------------+-----------------------------
 Reporter:  Chouby        |      Owner:  (none)
     Type:  defect (bug)  |     Status:  new
 Priority:  normal        |  Milestone:  Awaiting Review
Component:  I18N          |    Version:  2.8
 Severity:  normal        |   Keywords:
  Focuses:                |
--------------------------+-----------------------------
 I encountered a case where an empty string is translated to `'0'`, when I
 expected it to be `''`. This edge case is due to the translation file
 having the string `'0'`, translated to `'0'`.

 According to the PHP documentation
 https://www.php.net/manual/en/language.types.array.php, in array keys,
 - null is the same as ''
 - false and '0' are the same as 0

 In `Translation_Entry::key()` we can find:

 {{{#!php
 <?php
 if ( null === $this->singular || '' === $this->singular ) {
         return false;
 }
 }}}

 The singular string being the key of the entries array, that means that
 `null`, `''`, `false`, `0` and `'0'` all have the same translation.
 I don't expect non-string keys to be used, but `''` and `'0'` are two
 valid strings which should accept different translations.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/55941>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list