Changeset 64232
- Timestamp:
- 10/07/2026 05:33:55 PM (3 hours ago)
- Location:
- trunk/src/wp-includes
- Files:
-
- 2 edited
-
class-wp-locale.php (modified) (1 diff)
-
l10n.php (modified) (35 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/class-wp-locale.php
r61637 r64232 443 443 * @return string Localized word count type. Possible values are `characters_excluding_spaces`, 444 444 * `characters_including_spaces`, or `words`. Defaults to `words`. 445 * 446 * @phpstan-return 'characters_excluding_spaces'|'characters_including_spaces'|'words' 445 447 */ 446 448 public function get_word_count_type() { -
trunk/src/wp-includes/l10n.php
r64163 r64232 333 333 * Default 'default'. 334 334 * @return string Translated text. 335 * 336 * @phpstan-param literal-string $text 337 * @phpstan-param literal-string $domain 335 338 */ 336 339 function __( $text, $domain = 'default' ) { … … 349 352 * Default 'default'. 350 353 * @return string Translated text on success, original text on failure. 354 * 355 * @phpstan-param literal-string $text 356 * @phpstan-param literal-string $domain 351 357 */ 352 358 function esc_attr__( $text, $domain = 'default' ) { … … 366 372 * Default 'default'. 367 373 * @return string Translated text. 374 * 375 * @phpstan-param literal-string $text 376 * @phpstan-param literal-string $domain 368 377 */ 369 378 function esc_html__( $text, $domain = 'default' ) { … … 379 388 * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings. 380 389 * Default 'default'. 390 * 391 * @phpstan-param literal-string $text 392 * @phpstan-param literal-string $domain 381 393 */ 382 394 function _e( $text, $domain = 'default' ) { … … 397 409 * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings. 398 410 * Default 'default'. 411 * 412 * @phpstan-param literal-string $text 413 * @phpstan-param literal-string $domain 399 414 */ 400 415 function esc_attr_e( $text, $domain = 'default' ) { … … 415 430 * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings. 416 431 * Default 'default'. 432 * 433 * @phpstan-param literal-string $text 434 * @phpstan-param literal-string $domain 417 435 */ 418 436 function esc_html_e( $text, $domain = 'default' ) { … … 436 454 * Default 'default'. 437 455 * @return string Translated context string without pipe. 456 * 457 * @phpstan-param literal-string $text 458 * @phpstan-param literal-string $context 459 * @phpstan-param literal-string $domain 438 460 */ 439 461 function _x( $text, $context, $domain = 'default' ) { … … 450 472 * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings. 451 473 * Default 'default'. 474 * 475 * @phpstan-param literal-string $text 476 * @phpstan-param literal-string $context 477 * @phpstan-param literal-string $domain 452 478 */ 453 479 function _ex( $text, $context, $domain = 'default' ) { … … 468 494 * Default 'default'. 469 495 * @return string Translated text. 496 * 497 * @phpstan-param literal-string $text 498 * @phpstan-param literal-string $context 499 * @phpstan-param literal-string $domain 470 500 */ 471 501 function esc_attr_x( $text, $context, $domain = 'default' ) { … … 486 516 * Default 'default'. 487 517 * @return string Translated text. 518 * 519 * @phpstan-param literal-string $text 520 * @phpstan-param literal-string $context 521 * @phpstan-param literal-string $domain 488 522 */ 489 523 function esc_html_x( $text, $context, $domain = 'default' ) { … … 510 544 * Default 'default'. 511 545 * @return string The translated singular or plural form. 546 * 547 * @phpstan-param literal-string $single 548 * @phpstan-param literal-string $plural 549 * @phpstan-param literal-string $domain 512 550 */ 513 551 function _n( $single, $plural, $number, $domain = 'default' ) { … … 569 607 * Default 'default'. 570 608 * @return string The translated singular or plural form. 609 * 610 * @phpstan-param literal-string $single 611 * @phpstan-param literal-string $plural 612 * @phpstan-param literal-string $context 613 * @phpstan-param literal-string $domain 571 614 */ 572 615 function _nx( $single, $plural, $number, $context, $domain = 'default' ) { … … 634 677 * @type null $context Context information for the translators. 635 678 * @type string|null $domain Text domain. 679 * } 680 * 681 * @phpstan-param literal-string $singular 682 * @phpstan-param literal-string $plural 683 * @phpstan-param literal-string|null $domain 684 * @phpstan-return array{ 685 * 0: literal-string, 686 * 1: literal-string, 687 * singular: literal-string, 688 * plural: literal-string, 689 * context: null, 690 * domain: literal-string|null, 636 691 * } 637 692 */ … … 680 735 * @type string $context Context information for the translators. 681 736 * @type string|null $domain Text domain. 737 * } 738 * 739 * @phpstan-param literal-string $singular 740 * @phpstan-param literal-string $plural 741 * @phpstan-param literal-string $context 742 * @phpstan-param literal-string|null $domain 743 * @phpstan-return array{ 744 * 0: literal-string, 745 * 1: literal-string, 746 * 2: literal-string, 747 * singular: literal-string, 748 * plural: literal-string, 749 * context: literal-string, 750 * domain: literal-string|null, 682 751 * } 683 752 */ … … 720 789 * a text domain passed to _n_noop() or _nx_noop(), it will override this value. Default 'default'. 721 790 * @return string Either $singular or $plural translated text. 791 * 792 * @phpstan-param array{ 793 * singular: literal-string, 794 * plural: literal-string, 795 * context: literal-string|null, 796 * domain: literal-string|null, 797 * ... 798 * } $nooped_plural 799 * @phpstan-param literal-string $domain 722 800 */ 723 801 function translate_nooped_plural( $nooped_plural, $count, $domain = 'default' ) { … … 745 823 * @since 6.1.0 Added the `$locale` parameter. 746 824 * 747 * @global MO[]$l10n An array of all currently loaded text domains.748 * @global MO[]$l10n_unloaded An array of all text domains that have been unloaded again.749 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.825 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 826 * @global array<string, true> $l10n_unloaded An array of all text domains that have been unloaded again. 827 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. 750 828 * 751 829 * @param string $domain Text domain. Unique identifier for retrieving translated strings. … … 755 833 */ 756 834 function load_textdomain( $domain, $mofile, $locale = null ) { 757 /** @var WP_Textdomain_Registry $wp_textdomain_registry */758 835 global $l10n, $l10n_unloaded, $wp_textdomain_registry; 759 836 … … 900 977 * @since 6.1.0 Added the `$reloadable` parameter. 901 978 * 902 * @global MO[]$l10n An array of all currently loaded text domains.903 * @global MO[]$l10n_unloaded An array of all text domains that have been unloaded again.979 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 980 * @global array<string, true> $l10n_unloaded An array of all text domains that have been unloaded again. 904 981 * 905 982 * @param string $domain Text domain. Unique identifier for retrieving translated strings. … … 1017 1094 * @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism. 1018 1095 * 1019 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.1020 * @global array<string, WP_Translations|NOOP_Translations > $l10nAn array of all currently loaded text domains.1096 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. 1097 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 1021 1098 * 1022 1099 * @param string $domain Unique identifier for retrieving translated strings … … 1030 1107 */ 1031 1108 function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) { 1032 /** @var WP_Textdomain_Registry $wp_textdomain_registry */1033 /** @var array<string, WP_Translations|NOOP_Translations> $l10n */1034 1109 global $wp_textdomain_registry, $l10n; 1035 1110 … … 1064 1139 * @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism. 1065 1140 * 1066 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.1067 * @global array<string, WP_Translations|NOOP_Translations > $l10nAn array of all currently loaded text domains.1141 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. 1142 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 1068 1143 * 1069 1144 * @param string $domain Text domain. Unique identifier for retrieving translated strings. … … 1073 1148 */ 1074 1149 function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) { 1075 /** @var WP_Textdomain_Registry $wp_textdomain_registry */1076 /** @var array<string, WP_Translations|NOOP_Translations> $l10n */1077 1150 global $wp_textdomain_registry, $l10n; 1078 1151 … … 1105 1178 * @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism. 1106 1179 * 1107 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.1108 * @global array<string, WP_Translations|NOOP_Translations > $l10nAn array of all currently loaded text domains.1180 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. 1181 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 1109 1182 * 1110 1183 * @param string $domain Text domain. Unique identifier for retrieving translated strings. … … 1114 1187 */ 1115 1188 function load_theme_textdomain( $domain, $path = false ) { 1116 /** @var WP_Textdomain_Registry $wp_textdomain_registry */1117 /** @var array<string, WP_Translations|NOOP_Translations> $l10n */1118 1189 global $wp_textdomain_registry, $l10n; 1119 1190 … … 1239 1310 */ 1240 1311 function _load_script_textdomain_from_src( string $handle, string $src, string $domain, string $path, bool $is_module ) { 1241 /** @var WP_Textdomain_Registry $wp_textdomain_registry */1242 1312 global $wp_textdomain_registry; 1243 1313 … … 1447 1517 * @access private 1448 1518 * 1449 * @global MO[]$l10n_unloaded An array of all text domains that have been unloaded again.1519 * @global array<string, true> $l10n_unloaded An array of all text domains that have been unloaded again. 1450 1520 * @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry. 1451 1521 * … … 1454 1524 */ 1455 1525 function _load_textdomain_just_in_time( $domain ) { 1456 /** @var WP_Textdomain_Registry $wp_textdomain_registry */1457 1526 global $l10n_unloaded, $wp_textdomain_registry; 1458 1527 … … 1506 1575 * @since 2.8.0 1507 1576 * 1508 * @global MO[]$l10n An array of all currently loaded text domains.1577 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 1509 1578 * 1510 1579 * @param string $domain Text domain. Unique identifier for retrieving translated strings. 1511 * @return Translations|NOOP_Translations A Translations instance.1580 * @return WP_Translations|Translations|NOOP_Translations A Translations instance. 1512 1581 */ 1513 1582 function get_translations_for_domain( $domain ) { … … 1532 1601 * @since 3.0.0 1533 1602 * 1534 * @global MO[]$l10n An array of all currently loaded text domains.1603 * @global array<string, WP_Translations|NOOP_Translations|MO> $l10n An array of all currently loaded text domains. 1535 1604 * 1536 1605 * @param string $domain Text domain. Unique identifier for retrieving translated strings. … … 1624 1693 * 1625 1694 * @param string $type What to search for. Accepts 'plugins', 'themes', 'core'. 1626 * @return array Array of language data. 1695 * @return array<string, array<string, array<string, string>>> Array of language data, keyed by text domain 1696 * and then by locale, each value being the 1697 * translation file headers. 1698 * 1699 * @phpstan-return ( 1700 * $type is 'plugins'|'themes'|'core' 1701 * ? array<string, array<string, array{ 1702 * 'POT-Creation-Date': string, 1703 * 'PO-Revision-Date': string, 1704 * 'Project-Id-Version': string, 1705 * 'X-Generator': string, 1706 * }>> 1707 * : array{} 1708 * ) 1627 1709 */ 1628 1710 function wp_get_installed_translations( $type ) { … … 1684 1766 * 1685 1767 * @param string $po_file Path to PO file. 1686 * @return string[] Array of PO file header values keyed by header name. 1768 * @return array<string, string> Array of PO file header values keyed by header name. 1769 * 1770 * @phpstan-return array{ 1771 * 'POT-Creation-Date': string, 1772 * 'PO-Revision-Date': string, 1773 * 'Project-Id-Version': string, 1774 * 'X-Generator': string, 1775 * } 1687 1776 */ 1688 1777 function wp_get_pomo_file_data( $po_file ) { … … 1696 1785 ) 1697 1786 ); 1698 foreach ( $headers as $header => $value ) { 1699 // Remove possible contextual '\n' and closing double quote. 1700 $headers[ $header ] = preg_replace( '~(\\\n)?"$~', '', $value ); 1701 } 1702 return $headers; 1787 1788 $result = array( 1789 'POT-Creation-Date' => '', 1790 'PO-Revision-Date' => '', 1791 'Project-Id-Version' => '', 1792 'X-Generator' => '', 1793 ); 1794 1795 foreach ( array_keys( $result ) as $header ) { 1796 $value = $headers[ $header ]; 1797 1798 // Remove possible closing double quote and the contextual '\n' preceding it. 1799 if ( str_ends_with( $value, '"' ) ) { 1800 $value = substr( $value, 0, -1 ); 1801 if ( str_ends_with( $value, '\n' ) ) { 1802 $value = substr( $value, 0, -2 ); 1803 } 1804 } 1805 1806 $result[ $header ] = $value; 1807 } 1808 1809 return $result; 1703 1810 } 1704 1811 … … 1709 1816 * 1710 1817 * @param string $php_file Path to a `.l10n.php` file. 1711 * @return string[] Array of file header values keyed by header name. 1818 * @return array<string, string> Array of file header values keyed by header name. 1819 * 1820 * @phpstan-return array{ 1821 * 'POT-Creation-Date': string, 1822 * 'PO-Revision-Date': string, 1823 * 'Project-Id-Version': string, 1824 * 'X-Generator': string, 1825 * } 1712 1826 */ 1713 1827 function wp_get_l10n_php_file_data( $php_file ) { … … 1730 1844 1731 1845 foreach ( $headers as $po_header => $php_header ) { 1732 if ( isset( $data[ $php_header ] ) ) {1846 if ( isset( $data[ $php_header ] ) && is_string( $data[ $php_header ] ) ) { 1733 1847 $result[ $po_header ] = $data[ $php_header ]; 1734 1848 } … … 2099 2213 * @return string Locale-specific word count type. Possible values are `characters_excluding_spaces`, 2100 2214 * `characters_including_spaces`, or `words`. Defaults to `words`. 2215 * 2216 * @phpstan-return 'characters_excluding_spaces'|'characters_including_spaces'|'words' 2101 2217 */ 2102 2218 function wp_get_word_count_type() {
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)