| | 478 | * Looks for fallback translation files to use if locale is not available. |
| | 479 | * |
| | 480 | * @since 4.0.0 |
| | 481 | * |
| | 482 | * @param string $domain Text domain. Unique identifier for retrieving translated strings. |
| | 483 | * @param string $mofile Path to the .mo file. |
| | 484 | * @return false or string $mofile Path |
| | 485 | */ |
| | 486 | function get_fallback_translations( $mofile, $domain ) { |
| | 487 | |
| | 488 | $languages = get_available_languages( dirname( $mofile ) ); |
| | 489 | |
| | 490 | if ( empty( $languages ) ) { |
| | 491 | return false; |
| | 492 | } |
| | 493 | |
| | 494 | $locale_base = substr( get_locale(), 0, 2); |
| | 495 | |
| | 496 | foreach ( $languages as $language ) { |
| | 497 | $language_base = substr( $language, -5, 2); |
| | 498 | if ( $locale_base == $language_base ) { |
| | 499 | $alt_mofile = dirname( $mofile ) . '/' . $language . '.mo'; |
| | 500 | $mofile = apply_filters( 'load_textdomain_mofile', $alt_mofile, $domain ); |
| | 501 | if ( is_readable( $mofile ) ) { |
| | 502 | return $mofile; |
| | 503 | } |
| | 504 | } |
| | 505 | } |
| | 506 | |
| | 507 | return false; |
| | 508 | } |
| | 509 | |
| | 510 | /** |