public function testSingleItem()
 {
     Translation::update('Model.1.field', 'Updated foo');
     Translation::update('Model.1.another_field', 'Updated bar');
     $in = array(array('Model' => array('id' => 1, 'field' => 'foo', 'another_field' => 'bar'), 'AnotherModel' => array('id' => 2, 'field' => 'foo', 'another_field' => 'bar')));
     $iterator = new TranslateInjector($in, array('Model.field', 'Model.another_field'), array('modelAlias' => 'Model', 'modelName' => 'Model'));
     $data = iterator_to_array($iterator);
     $expected = array(array('Model' => array('id' => 1, 'field' => 'Updated foo', 'another_field' => 'Updated bar'), 'AnotherModel' => array('id' => 2, 'field' => 'foo', 'another_field' => 'bar')));
     $this->assertSame($expected, $data);
 }
 /**
  * testReadTranslation
  *
  * Reading a translated field value should return the translated value
  *
  * @return void
  */
 public function testReadTranslation()
 {
     Translation::update('Tag.1.tag', 'Foo', array('domain' => 'data'));
     Translation::update('Tag.3.tag', 'Zum', array('domain' => 'data'));
     $expected = array(1 => 'Foo', 'tag2', 'Zum');
     $result = $this->Tag->find('list');
     $this->assertSame($expected, $result);
     Translation::update('Tag.2.tag', 'Bar', array('domain' => 'data'));
     $expected = array(1 => 'Foo', 'Bar', 'Zum');
     $result = $this->Tag->find('list');
     $this->assertSame($expected, $result);
 }
Пример #3
0
     echo Config::toJSON(Translation::translations());
     break;
     /**
       @param $_GET['TranslationId']
       @param $_GET['Payload'] The payload that determines what will be updated.
       @param $_GET['Update'] The update value to write
       @param $_GET['Provider'] The Provider to perform the update to
     */
 /**
   @param $_GET['TranslationId']
   @param $_GET['Payload'] The payload that determines what will be updated.
   @param $_GET['Update'] The update value to write
   @param $_GET['Provider'] The Provider to perform the update to
 */
 case 'update':
     Translation::update($_GET['TranslationId'], $_GET['Payload'], $_GET['Update'], $_GET['Provider']);
     break;
     /**
       @param Req
       @param Description
     */
 /**
   @param Req
   @param Description
 */
 case 'updateDescription':
     Translation::updateDescription($_GET['Req'], $_GET['Description']);
     break;
     /**
       @param TranslationId
       @param TranslationName
 /**
  * afterSave Callback
  *
  * Loop on pending translations, and update translations
  *
  * @param Model $Model Model the callback is called on
  * @param boolean $created Whether or not the save created a record.
  * @return void */
 public function afterSave(Model $Model, $created)
 {
     if ($this->_pendingTranslations) {
         foreach ($this->_pendingTranslations as $locale => $translations) {
             $params = array('domain' => $this->settings[$Model->alias]['domain'], 'locale' => $locale, 'autoPopulate' => true);
             foreach ($translations as $key => $value) {
                 if (strpos($key, '{') !== false) {
                     if (!$Model->id) {
                         continue;
                     }
                     $key = String::insert($key, array('id' => $Model->id), array('before' => '{', 'after' => '}'));
                 }
                 Translation::update($key, $value, $params);
             }
         }
         $this->_pendingTranslations = array();
     }
 }
 /**
  * _translate
  *
  * Translate one field value. If there is no translation at all - return the original
  *
  * @param string $key
  * @param string $value
  * @return string
  */
 protected function _translate($key, $value, $id)
 {
     $field = preg_replace('@.*\\.@', '', $key);
     $key = sprintf('%s.%s.%s', $this->_settings['modelName'], $id, $field);
     $translated = Translation::translate($key, array('domain' => $this->_settings['domain']));
     if ($translated === $key) {
         Translation::update($key, $value, array('locale' => Configure::read('Config.defaultLanguage'), 'domain' => $this->_settings['domain']));
         return $value;
     }
     return $translated;
 }
 /**
  * testAddActionTranslatedDefaultDomain
  *
  * Simulate the controller's components array having defined the default domain for crud messages
  * Verify that that is the default domain is used for the crud translations
  *
  * @return void
  */
 public function testAddActionTranslatedDefaultDomain()
 {
     $this->skipIf(!class_exists('Translation'), 'Test depends on the Translations plugin');
     $translatedMessage = 'eksemplet blev oprettet med succes';
     Translation::update('Successfully created CrudExample', $translatedMessage);
     $this->assertSame($translatedMessage, __d('default', 'Successfully created CrudExample'));
     Router::connect("/:action", array('controller' => 'crud_examples'));
     CrudExamplesController::$componentsArray['Crud.Crud']['translations']['domain'] = 'default';
     $this->Controller = $this->generate('CrudExamples', array('methods' => array('header', 'redirect', 'render'), 'components' => array('Session')));
     $this->Controller->Session->expects($this->once())->method('setFlash')->with($translatedMessage);
     $this->testAction('/add', array('data' => array('CrudExample' => array('title' => __METHOD__, 'description' => __METHOD__, 'author_id' => 0))));
 }
 public function employeeSettingsAction()
 {
     require_once 'models/table/System.php';
     $sysTable = new System();
     // For "Labels"
     // same logic as other Settings pages - except the employee_header setting below
     require_once 'models/table/Translation.php';
     $labelNames = array('label_partner' => 'Partner', 'label_sub_partner' => 'Sub Partner', 'label_type' => 'Type of Partner', 'label_funder' => 'Funder', 'label_full_time' => 'Full Time', 'label_base' => 'Employee Based at', 'label_funded_hours_per_week' => 'Funded hours per week', 'label_cadre' => 'Staff Cadre', 'label_staff_category' => 'Staff Category', 'label_annual_cost' => 'Annual Cost', 'label_primary_role' => 'Primary Role', 'label_importance' => 'Importance', 'label_intended_transition' => 'Intended Transition', 'label_incoming_partner' => 'Incoming partner', 'label_relationship' => 'Relationship', 'label_referral_mechanism' => 'Referral Mechanism', 'label_chw_supervisor' => 'CHW Supervisor', 'label_trainings_provided' => 'Trainings provided', 'label_courses_completed' => 'Courses Completed', 'label_other_id' => 'Other ID', 'label_disability' => 'Disability', 'label_disability_comments' => 'Disability Comments', 'label_nationality' => 'Employee Nationality', 'label_race' => 'Race', 'label_registration_number' => 'Registration Number', 'label_salary' => 'Salary', 'label_benefits' => 'Benefits', 'label_additional_expenses' => 'Additional Expenses', 'label_stipend' => 'Stipend');
     $checkboxFields = array('check_partner' => 'display_employee_partner', 'check_sub_partner' => 'display_employee_sub_partner', 'check_type' => 'display_partner_type', 'check_funder' => 'display_employee_funder', 'check_full_time' => 'display_employee_full_time', 'check_base' => 'display_employee_base', 'check_site_type' => 'display_employee_site_type', 'check_funded_hours_per_week' => 'display_employee_funded_hours_per_week', 'check_staff_category' => 'display_employee_staff_category', 'check_annual_cost' => 'display_employee_annual_cost', 'check_primary_role' => 'display_employee_primary_role', 'check_importance' => 'display_employee_importance', 'check_contract_end_date' => 'display_employee_contract_end_date', 'check_agreement_end_date' => 'display_employee_agreement_end_date', 'check_intended_transition' => 'display_employee_intended_transition', 'check_transition_confirmed' => 'display_employee_transition_confirmed', 'check_transition_complete' => 'display_employee_complete_transition', 'check_transition_complete_date' => 'display_employee_actual_transition_date', 'check_incoming_partner' => 'display_employee_incoming_partner', 'check_relationship' => 'display_employee_relationship', 'check_referral_mechanism' => 'display_employee_referral_mechanism', 'check_chw_supervisor' => 'display_employee_chw_supervisor', 'check_trainings_provided' => 'display_employee_trainings_provided', 'check_courses_completed' => 'display_employee_courses_completed', 'check_site_name' => 'display_employee_site_name', 'check_employee_header' => 'display_employee_employee_header', 'check_other_id' => 'display_employee_other_id', 'check_disability' => 'display_employee_disability', 'check_nationality' => 'display_employee_nationality', 'check_race' => 'display_employee_race', 'check_registration_number' => 'display_employee_registration_number', 'check_salary' => 'display_employee_salary', 'check_benefits' => 'display_employee_benefits', 'check_additional_expenses' => 'display_employee_additional_expenses', 'check_stipend' => 'display_employee_stipend');
     if ($this->getRequest()->isPost()) {
         // Update db
         $updateData = array();
         // update translation labels
         $tranTable = new Translation();
         foreach ($labelNames as $input_key => $db_key) {
             if ($this->_getParam($input_key)) {
                 try {
                     $tranTable->update(array('phrase' => $this->_getParam($input_key)), "key_phrase = '{$db_key}'");
                     $this->viewAssignEscaped($input_key, $this->_getParam($input_key));
                 } catch (Zend_Exception $e) {
                     error_log($e);
                 }
             }
         }
         // update _system (checkboxes)
         foreach ($checkboxFields as $input_key => $db_field) {
             $value = $this->_getParam($input_key) == NULL ? 0 : 1;
             $updateData[$db_field] = $value;
             $this->view->assign($input_key, $value);
         }
         $updateData['employee_header'] = $this->_getParam('employee_header');
         $this->view->assign('employee_header', $this->_getParam('employee_header') ? $this->_getParam('employee_header') : '');
         $sysTable->update($updateData, '');
     } else {
         // view
         // checkboxes
         $sysRows = $sysTable->fetchRow($sysTable->select()->limit(1));
         $this->view->assign('employee_header', isset($sysRows->employee_header) ? $sysRows->employee_header : '');
         foreach ($checkboxFields as $input_key => $field_key) {
             if (isset($sysRows->{$field_key})) {
                 $this->view->assign($input_key, $sysRows->{$field_key});
             }
         }
         // labels
         $t = Translation::getAll();
         foreach ($labelNames as $input_key => $db_key) {
             $this->viewAssignEscaped($input_key, $t[$db_key]);
         }
     }
     // redirect to next page
     if ($this->_getParam('redirect')) {
         header("Location: " . $this->_getParam('redirect'));
         exit;
     } else {
         if ($this->_getParam('saveonly')) {
             $status = ValidationContainer::instance();
             $status->setStatusMessage(t('Your settings have been updated.'));
         }
     }
 }