verifyPermission( 'bit_p_edit_master_strings' ); $languages = $gBitLanguage->listLanguages(); $gBitSmarty->assign_by_ref( 'languages', $languages ); if( !empty( $_REQUEST['change_master'] ) ) { $newSourceHash = $gBitLanguage->getSourceHash( $_REQUEST['edit_master'] ); $gBitLanguage->loadMasterStrings(); if( $newSourceHash != $_REQUEST['source_hash'] ) { if( $gBitLanguage->storeMasterString( array( 'source_hash' => $_REQUEST['source_hash'], 'new_source' => $_REQUEST['edit_master'] ) ) ) { $_REQUEST['source_hash'] = $newSourceHash; $masterMsg['success'] = 'Master translation string has been updated'; } else { $masterMsg['error'] = $gBitLanguage->mErrors['master']; } } $gBitLanguage->loadMasterStrings( $_REQUEST['source_hash'] ); $gBitSmarty->assign_by_ref( 'masterStrings', $gBitLanguage->mStrings['master'] ); $gBitSmarty->assign_by_ref( 'tranStrings', $gBitLanguage->getTranslatedStrings( $_REQUEST['source_hash'] ) ); $gBitSmarty->assign( 'sourceHash', $_REQUEST['source_hash'] ); } elseif( !empty( $_REQUEST['delete_master'] ) && !empty( $_REQUEST['source_hash'] ) ) { if( empty( $_REQUEST['confirm'] ) ) { $gBitSystem->setBrowserTitle( tra( 'Confirm Delete' ) ); $formHash['delete_master'] = TRUE; $formHash['source_hash'] = $_REQUEST['source_hash']; $msgHash = array( 'label' => tra( 'Delete Master String' ), 'confirm_item' => empty( $_REQUEST['edit_master'] ) ? NULL : $_REQUEST['edit_master'], 'warning' => tra( 'This will remove the language master string. If you are tracking translations and the string is still used, it will be inserted again, however, any translations associated with it will be lost.' ), ); $gBitSystem->confirmDialog( $formHash, $msgHash ); die; } else { if( $gBitLanguage->expungeMasterString( $_REQUEST['source_hash'] ) ) { $gBitSmarty->assign( 'successMsg', 'The master string was deleted successfully.' ); } else { $gBitSmarty->assign( 'errorMsg', 'The master string could not be deleted.' ); } } } elseif( !empty( $_REQUEST['guess_translations'] ) ) { $gBitLanguage->loadMasterStrings( $_REQUEST['source_hash'] ); $masterStrings = $gBitLanguage->mStrings['master']; if( strlen( $masterStrings[$_REQUEST['source_hash']]['source'] ) > 70 ) { $masterStrings[$_REQUEST['source_hash']]['textarea'] = TRUE; } $gBitSmarty->assign_by_ref( 'masterStrings', $masterStrings ); $masterString = $gBitLanguage->mStrings['master'][$_REQUEST['source_hash']]; $tranArray = array( 'de', 'es', 'fr', 'it', 'pt', 'ja', 'ko', 'zh-CN' ); $tranStrings = array(); foreach( $tranArray as $toLangCode ) { $handle = fopen("http://translate.google.com/translate_t?ie=UTF-8&oe=UTF-8&text=".urlencode( $masterString['source'] )."&langpair=en|$toLangCode", "r"); if($handle) { $contents = ''; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); preg_match_all( "/(.*)(