Posted by span on May 14, 2010 at 4:12pm
Hej!
Jag försöker i en egen "custom-modul" sätta ett meddelande med drupal_set_message(). Detta meddelande vill jag ska vara "översättbart" via "translate interface/översätt gränssnitt". Jag har aktiverat i18n modulerna, locale och content translation men jag lyckas inte få strängen som jag skickar in i t() att bli 'översättbar'.
Här är min hook:
<?php
function my_module_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch ($op) {
case 'view':
drupal_set_message(t("Translate this please."));
break;
}
}
?>Har jag fundamentalt missförstått t() funktionen eller ska den inte automatiskt lägga till strängen för översättning? Behöver man implementera hook_locale för att kunna söka på strängen och göra den översättbar?
span
Comments
Du måste anropa t() med din
Du måste anropa
t()med din sträng för att Drupal skall "känna till" dess existens och den skall vara översättbar. Du kan använda Devels Execute PHP-block för att köra:Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog
Tack för ditt svar Jakob! Jag
Tack för ditt svar Jakob! Jag har nu försökt köra strängen genom t() i execute blocket. Koden körs ju även varje gång jag går in på en sida och den byggs. Jag får meddelandet varje gång jag går in på en nod men det läggs fortfarande inte till så att jag kan söka på det. Jag har testat köra cron, tömma cachen och göra om processen ett flertal gånger men ingen lycka än så länge. Jag har nu även installerat en helt ren drupal installation och det vill sig inte.
På den 'gamla' installationen så hade jag i18n helt aktiverat men har inte kört in modulen på denna nya installation. Visst är det så att man bara behöver 'locale' och 'content translation' aktiverat? Jag har naturligtvis även lagt till ett extra språk att översätta till utifall att, emot all förmodan, det skulle fungera :P
Jag har suttit med detta i två dagar snart och kan inte förstå vad som är tokigt. Jag har utvecklat moduler förut och aldrig haft detta problem.
Behöver man ha några andra hookar implementerade för att modulen ska agera som en 'riktig modul'? Detta bör väl räcka?
Jag är helt nollställd och uppskattar om någon har fler idéer på vad man kan prova.
Jag har även ändrat koden till följande och testat köra 'meddelande raderna' genom execute blocket:
<?phpfunction my_module_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch ($op) {
case 'view':
$message = t("Translate this please.");
drupal_set_message($message);
break;
}
}
?>
Daniel
// Daniel Kvist