Localization Drupal6,以编程方式添加字符串转换

Localization Drupal6,以编程方式添加字符串转换,localization,drupal-6,Localization,Drupal 6,我需要以编程方式添加字符串翻译(例如翻译分类术语)。是否有类似于添加翻译($my\u term\u name,$language,$translation)的功能?不幸的是,内核中没有好的功能。您可以通过直接写入数据库来检查区域设置菜单的工作方式: function locale_translate_edit_form_submit($form, &$form_state) { $lid = $form_state['values']['lid']; foreach ($form

我需要以编程方式添加字符串翻译(例如翻译分类术语)。是否有类似于添加翻译($my\u term\u name,$language,$translation)的功能?

不幸的是,内核中没有好的功能。您可以通过直接写入数据库来检查区域设置菜单的工作方式:

function locale_translate_edit_form_submit($form, &$form_state) {
  $lid = $form_state['values']['lid'];
  foreach ($form_state['values']['translations'] as $key => $value) {
    $translation = db_result(db_query("SELECT translation FROM {locales_target} WHERE lid = %d AND language = '%s'", $lid, $key));
    if (!empty($value)) {
      // Only update or insert if we have a value to use.
      if (!empty($translation)) {
        db_query("UPDATE {locales_target} SET translation = '%s' WHERE lid = %d AND language = '%s'", $value, $lid, $key);
      }
      else {
        db_query("INSERT INTO {locales_target} (lid, translation, language) VALUES (%d, '%s', '%s')", $lid, $value, $key);
      }
    }
    elseif (!empty($translation)) {
      // Empty translation entered: remove existing entry from database.
      db_query("DELETE FROM {locales_target} WHERE lid = %d AND language = '%s'", $lid, $key);
    }

    // Force JavaScript translation file recreation for this language.
    _locale_invalidate_js($key);
  }

  drupal_set_message(t('The string has been saved.'));

  // Clear locale cache.
  _locale_invalidate_js();
  cache_clear_all('locale:', 'cache', TRUE);

  $form_state['redirect'] = 'admin/build/translate/search';
  return;
}
如果文本来自不受信任的来源(如用户输入),请不要忘记验证