| 343 | /** |
| 344 | * Translates a string based on the gender pronouns passed to it. |
| 345 | * |
| 346 | * This function takes a string with an expected a placeholder to be |
| 347 | * swapped out with a gender specific pronoun which would allow for |
| 348 | * strings to change to cater towards the user's gender. |
| 349 | * |
| 350 | * Examples of using `_g` to use correct gender based pronouns. |
| 351 | * |
| 352 | * Male: He was editing the post. |
| 353 | * Female: She is creating a new taxonomy. |
| 354 | * Other: They have activated a plugin. |
| 355 | * |
| 356 | * @since 4.9 |
| 357 | * |
| 358 | * @param string $text The text to translate. |
| 359 | * @param string $male Male string version. |
| 360 | * @param string $female Female string version. |
| 361 | * @param string $other Non-specific gender version. |
| 362 | * @param int $user_id The user's id. |
| 363 | * @param string $domain The text domain. |
| 364 | * |
| 365 | * @return string The translated string with gender. |
| 366 | */ |
| 367 | function _g( $text, $male, $female, $other, $user_id = 0, $domain = 'default' ) { |
| 368 | |
| 369 | // Check if the user id was set. |
| 370 | if ( 0 == $user_id ) { |
| 371 | $user_id = get_current_user_id(); |
| 372 | } |
| 373 | |
| 374 | // Get the users gender preference. |
| 375 | $get_gender = get_user_meta($user_id, 'gender', true); |
| 376 | |
| 377 | // Translate each string that is provided. |
| 378 | $translate_text = translate( $text, $domain ); |
| 379 | $translate_male = translate( $male, $domain ); |
| 380 | $translate_female = translate( $female, $domain ); |
| 381 | $translate_other = translate( $other, $domain ); |
| 382 | |
| 383 | // Check which gender is selected. |
| 384 | if ( 'male' == $get_gender ) { |
| 385 | $the_gender = $translate_male; |
| 386 | } elseif ( 'female' == $user_gender ) { |
| 387 | $the_gender = $translate_female; |
| 388 | } else { |
| 389 | $the_gender = $translate_other; |
| 390 | } |
| 391 | |
| 392 | // Add the gender string to the main string. |
| 393 | $string = sprintf( $translate_text, $the_gender ); |
| 394 | |
| 395 | // Return string for output. |
| 396 | return $string |
| 397 | |
| 398 | } |
| 399 | |