Tribe__Events__Main::get_i18n_strings_for_domains( array $strings, array $languages, array $domains = array('default') )

Get all possible translations for a String based on the given Languages and Domains

WARNING: This function is slow because it deals with files, so don’t overuse it! Differently from the get_i18n_strings method this will not use any domain that’s not specified.


Parameters

$strings

(array) (Required) An array of strings (required)

$languages

(array) (Required) Which l10n to fetch the string (required)

$domains

(array) (Optional) Possible Domains to re-load

Default value: array('default')


Top ↑

Return

(array) A multi level array with the possible translations for the given strings


Top ↑

Source

File: src/Tribe/Main.php

		public function get_i18n_strings_for_domains( $strings, $languages, $domains = array( 'default' ) ) {
			foreach ( $languages as $language ) {
				$this->_locale = $language;
				foreach ( (array) $domains as $domain => $file ) {
					// Configure the language
					add_filter( 'locale', array( $this, '_set_locale' ) );

					// Reload it with the correct language
					unload_textdomain( $domain );

					if ( 'default' === $domain ) {
						load_default_textdomain();
					} else {
						Tribe__Main::instance()->load_text_domain( $domain, $file );
					}

					// Loop on the strings the build the possible translations
					foreach ( $strings as $key => $value ) {
						$value = is_array( $value ) ? reset( $value ) : $value;
						if ( ! is_string( $value ) ) {
							continue;
						}

						// Make sure we have an Array
						$strings[ $key ] = (array) $strings[ $key ];

						// Grab the possible strings for Default and Any other domain
						if ( 'default' === $domain ) {
							$strings[ $key ][] = __( $value );
							$strings[ $key ][] = __( strtolower( $value ) );
							$strings[ $key ][] = __( ucfirst( $value ) );
						} else {
							$strings[ $key ][] = __( $value, $domain );
							$strings[ $key ][] = __( strtolower( $value ), $domain );
							$strings[ $key ][] = __( ucfirst( $value ), $domain );
						}
					}

					// Set back to the default language
					remove_filter( 'locale', array( $this, '_set_locale' ) );

					// Reload it with the correct language
					unload_textdomain( $domain );

					if ( 'default' === $domain ) {
						load_default_textdomain();
					} else {
						Tribe__Main::instance()->load_text_domain( $domain, $file );
					}
				}
			}

			// Prevent Empty Strings and Duplicates
			foreach ( $strings as $key => $value ) {
				$strings[ $key ] = array_filter( array_unique( array_map( 'sanitize_title_with_dashes', (array) $value ) ) );
			}

			return $strings;
		}