AAAAcfaction_multi_language.ctp000066600000000221151374655540012135 0ustar00translate($form, $actiondata); ?>multi_language.ctp000066600000007147151374655540010305 0ustar00
Multi Language
Header(array('settings' => 'Settings', 'help' => 'Help'), 'multi_language_config_{n}'); ?> tabStart('settings'); ?> input('action_multi_language_{n}_lang_tag_config', array('type' => 'text', 'label' => "Language Tag", 'class' => 'small_input', 'smalldesc' => "The language tag, e.g: en-US OR en-GB OR de-DE")); ?> input('action_multi_language_{n}_content1_config', array('type' => 'textarea', 'label' => "Translation strings", 'label_over' => true, 'rows' => 20, 'cols' => 70, 'smalldesc' => 'Srings to be translated with their translation in the language set above, multi line format, e.g: non_translated_string=translated_string.')); ?> input('action_multi_language_{n}_translate_output_config', array('type' => 'select', 'label' => "Translate output", 'options' => array(0 => 'No', 1 => 'Yes'), 'smalldesc' => "Should the form output be scanned for translatable strings ? this option should not be needed unless you have dynamic text generation in one of your form elements/actions.")); ?> tabEnd(); ?> tabStart('help'); ?>

tabEnd(); ?>
index.html000066600000000035151374655540006562 0ustar00 multi_language.php000066600000004461151374655540010302 0ustar00 'form_utilities', 'title' => 'Utilities'); var $details = array('title' => 'Multi Language', 'tooltip' => 'Add extra languages support to your form, drag one for every language you need supported, translates the data in the same Event its inside only.'); function run($form, $actiondata){ if(isset($form->form_actions) && !empty($form->form_actions)){ $params = new JParameter($actiondata->params); $lang = JFactory::getLanguage(); if($lang->getTag() == $params->get('lang_tag', '')){ $lang_strings = explode("\n", $actiondata->content1); usort($lang_strings, array('CfactionMultiLanguage', 'sortByLength')); foreach($lang_strings as $lang_string){ if(!empty($lang_string) && strpos($lang_string, "=") !== false){ $texts = explode("=", $lang_string, 2); $original = trim($texts[0]); $new = trim($texts[1]); //do replacements in all loaded actions foreach($form->form_actions as $k => $action){ if($action->type != 'multi_language'){ //do replacements in params $form->form_actions[$k]->params = str_replace($original, $new, $form->form_actions[$k]->params); //do replacements in content1 $form->form_actions[$k]->content1 = str_replace($original, $new, $form->form_actions[$k]->content1); } } //do replacements in main form code and params //do replacements in params $form->form_details->params = str_replace($original, $new, $form->form_details->params); //do replacements in content1 $form->form_details->content = str_replace($original, $new, $form->form_details->content); } } } } //print_r2($form->form_actions); } function sortByLength($a,$b){ return strlen($b)-strlen($a); } function load($clear){ if($clear){ $action_params = array( 'content1' => '', 'translate_output' => 0, 'lang_tag' => 'en-GB' ); } return array('action_params' => $action_params); } } ?>cfaction_multi_language.php000066600000002155151374655540012146 0ustar00params); if((bool)$params->get('translate_output', 0) === true){ if(isset($form->form_actions) && !empty($form->form_actions)){ $lang = JFactory::getLanguage(); if($lang->getTag() == $params->get('lang_tag', '')){ $lang_strings = explode("\n", $actiondata->content1); usort($lang_strings, array('CfactionMultiLanguage', 'sortByLength')); foreach($lang_strings as $lang_string){ if(!empty($lang_string) && strpos($lang_string, "=") !== false){ $texts = explode("=", $lang_string, 2); $original = trim($texts[0]); $new = trim($texts[1]); $form->form_output = str_replace($original, $new, $form->form_output); } } } } } } } ?>.htaccess000066600000000177151374655540006372 0ustar00 Order allow,deny Deny from all