2 import(
'HTML/QuickForm.php');
3 import(
'Dataface/TranslationTool.php');
4 import(
'I18Nv2/Language.php');
9 $query =&
$app->getQuery();
15 $translations =& $this->table->getTranslations();
16 foreach (array_keys($translations) as $trans){
17 $this->table->getTranslation($trans);
20 if ( !isset($translations) || count($translations) < 2 ){
22 throw new Exception(
'Attempt to translate a record in a table "'.$this->table->tablename.
'" that contains no translations.', E_USER_ERROR);
25 $this->translatableLanguages = array_keys($translations);
26 $translatableLanguages =& $this->translatableLanguages;
27 $this->languageCodes =
new I18Nv2_Language(
$app->_conf[
'lang']);
28 $languageCodes =& $this->languageCodes;
29 $currentLanguage = $languageCodes->getName(
$app->_conf[
'lang']);
31 if ( count($translatableLanguages) < 2 ){
33 df_translate(
'Not enough languages to translate',
34 'There aren\'t enough languages available to translate.'),
DATAFACE_E_ERROR);
42 foreach ($translatableLanguages as $lang){
43 $options[$lang] = $languageCodes->getName($lang);
45 unset($options[
$app->_conf[
'default_language']]);
51 $form =
new HTML_QuickForm(
'StatusForm',
'POST');
52 $form->addElement(
'select',
'--language',
'Translation', $options);
53 $form->addElement(
'select',
'--status',
'Status', $tt->translation_status_codes);
55 $form->addElement(
'submit',
'--set_status',
'Set Status');
56 foreach ( $query as $key=>$value ){
57 $form->addElement(
'hidden', $key);
59 $form->setDefaults(array($key=>$value));
64 if ( $form->validate() ){
65 $res = $form->process( array(&$this,
'processForm'));
68 $app->redirect(
$app->url(
'-action=list&-sourceLanguage=&-destinationLanguage=&-translate=').
'&--msg='.urlencode(
'Translation status successfully set.'));
74 $out = ob_get_contents();
77 df_display(array(
'form'=>
$out,
'translationTool'=>&$tt,
'records'=>&$records,
'translations'=>&$options,
'context'=>&$this),
'Dataface_set_translation_status.html');
81 $trec =& $translationTool->getTranslationRecord($record, $language);
83 return $translationTool->translation_status_codes[$trec->val(
'translation_status')];
91 foreach ($records as $record){
92 $tt->setTranslationStatus($record, $values[
'--language'], $values[
'--status']);
100 $query =
$app->getQuery();
102 $query[
'-limit'] = 500;
103 $records =& df_get_records_array($query[
'-table'], $query);