4
プログラムで文字列の翻訳を追加する必要があります(分類の用語を翻訳するなど)。 add_translation($my_term_name, $language, $translation)
のような機能はありますか?Drupal 6、プログラムで文字列の変換を追加する
プログラムで文字列の翻訳を追加する必要があります(分類の用語を翻訳するなど)。 add_translation($my_term_name, $language, $translation)
のような機能はありますか?Drupal 6、プログラムで文字列の変換を追加する
残念ながら、コアには素晴らしい機能はありません。あなたは、ロケールメニューが直接データベースに書き込むことによってそれをしない方法を確認することができます:あなたのテキストは、(例えば、ユーザ入力など)信頼できないソースから来る場合
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;
}
は、検証を忘れないでください。