| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | 
							- <?php
 
- /**
 
-  * @file
 
-  * The administration interface.
 
-  */
 
- /**
 
-  * Header of the translation table.
 
-  *
 
-  * @param $languages
 
-  *   languages to translate to
 
-  *
 
-  * @return
 
-  *   header row for theme_table
 
-  */
 
- function _translation_table_get_header($languages) {
 
-   // FIXME: this sortable header won't work, why?
 
-   // $header = array(array('data' => t('Original'), 'sort' => 'asc', 'field' => 'source'));
 
-   $header = array(array('data' => t('Original')));
 
-   foreach ($languages as $lang_code => $lang_name) {
 
-     $header[] = array('data' => $lang_name);
 
-   }
 
-   $header[] = array('data' => t('Operations'), 'colspan' => 3);
 
-   return $header;
 
- }
 
- /**
 
-  * One row of the translation table.
 
-  *
 
-  * @param $source
 
-  *   source string record
 
-  * @param $languages
 
-  *   languages to translate to
 
-  * @return
 
-  *   table row for theme_table
 
-  */
 
- function _translation_table_row($source, $languages) {
 
-   $form['source'] = array(
 
-     '#markup' => check_plain($source->source),
 
-   );
 
-   $form['location'] = array(
 
-     '#type' => 'value',
 
-     '#value' => check_plain($source->location),
 
-   );
 
-   foreach ($languages as $lang_code => $lang_name) {
 
-     $translation = db_query("SELECT lt.translation FROM {locales_target} lt WHERE lt.lid = :lid AND lt.language = :lang", array('lid' => $source->lid, 'lang' => $lang_code))->fetchField();
 
-     $form[$lang_code] = array(
 
-       '#type' => 'textfield',
 
-       '#default_value' => $translation,
 
-       '#size' => 35,
 
-       '#maxlength' => NULL,
 
-     );
 
-   }
 
-   return $form;
 
- }
 
- /**
 
-  * Submit handler for the translation table.
 
-  */
 
- function translation_table_submit_translations($form, &$form_state) {
 
-   switch ($form_state['clicked_button']['#id']) {
 
-     case 'edit-submit':
 
-       $language_list = locale_language_list('language', TRUE);
 
-       foreach ($form_state['values']['strings'] as $lid => $values) {
 
-         foreach ($values as $lang_code => $translation) {
 
-           if (in_array($lang_code, $language_list)) {
 
-             _translation_table_update_translation($lid, $lang_code, $translation);
 
-           }
 
-         }
 
-       }
 
-       break;
 
-   }
 
-   // Redirect to current page.
 
-   $query = isset($_GET['page']) ? array('page' => $_GET['page']) : array();
 
-   $form_state['redirect'] = array($_GET['q'], $query);
 
- }
 
- /**
 
-  * Update, create or delete translation as needed.
 
-  */
 
- function _translation_table_update_translation($lid, $lang_code, $translation) {
 
-   if ($translation == '') {
 
-     db_query("DELETE FROM {locales_target} WHERE lid = :lid AND language = :lang", array('lid' => $lid, 'lang' => $lang_code));
 
-     return;
 
-   }
 
-   db_merge("locales_target")
 
-     ->key(array('language' => $lang_code, 'lid' => $lid, 'plural' => 0))
 
-     ->fields(array('translation' => $translation))
 
-     ->execute();
 
- }
 
 
  |