Index: tools/i18n/makepot.php
===================================================================
--- tools/i18n/makepot.php	(revision 42248)
+++ tools/i18n/makepot.php	(working copy)
@@ -50,6 +50,7 @@
 		'__ngettext' => array('singular', 'plural'),
 		'__ngettext_noop' => array('singular', 'plural'),
 		'_x' => array('string', 'context'),
+		'_g' => array( 'string' ),
 		'_ex' => array('string', 'context'),
 		'_nx' => array('singular', 'plural', null, 'context'),
 		'_nx_noop' => array('singular', 'plural', 'context'),
Index: tools/i18n/extract.php
===================================================================
--- tools/i18n/extract.php	(revision 42248)
+++ tools/i18n/extract.php	(working copy)
@@ -15,6 +15,7 @@
 		'_n' => array( 'singular', 'plural' ),
 	);
 	var $comment_prefix = 'translators:';
+	var $gender_context_prefix = '_wpg_';
 
 	function __construct( $rules = array() ) {
 		$this->rules = $rules;
@@ -106,6 +107,11 @@
 				break;
 			}
 		}
+
+		if ( '_g' === $call['name'] ) {
+			$entry->context = isset( $entry->context ) ? $this->gender_context_prefix . $entry->context : $this->gender_context_prefix;
+		}
+
 		if ( isset( $call['line'] ) && $call['line'] ) {
 			$references = array( $file_name . ':' . $call['line'] );
 			$entry->references = $references;
Index: src/wp-includes/l10n.php
===================================================================
--- src/wp-includes/l10n.php	(revision 42248)
+++ src/wp-includes/l10n.php	(working copy)
@@ -292,9 +292,25 @@
  * @return string Translated context string without pipe.
  */
 function _x( $text, $context, $domain = 'default' ) {
+	//error_log( var_export( func_get_args() , true ));
 	return translate_with_gettext_context( $text, $context, $domain );
 }
 
+function _g( $text, $gender = null, $domain ='default' ) {
+	if ( ! $gender ) {
+		$gender = get_current_user_gender();
+	}
+
+	switch ( $gender ) {
+		case 'unknown':
+			return _x( $text, '_wpg_', $domain );
+		case 'female':
+			return _x( $text, '_wpg_female_', $domain );
+		case 'male':
+			return _x( $text, '_wpg_male_', $domain );
+	}
+}
+
 /**
  * Display translated string with gettext context.
  *
