Bonjour,

Actuellement, au sein de mon site Web PHP/Joomla, je charge différents rapports BIRT au sein de ma page à l'aide du code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
define ("JAVA_HOSTS", $config->get('java_hosts'));
define ("JAVA_SERVLET", $config->get('java_servlet'));
 
require_once(JPATH_BASE . "/" . $config->get('tomcat_path'));
 
$ctx = java_context()->getServletContext();
$birtReportEngine = java("org.eclipse.birt.php.birtengine.BirtEngine")->getBirtEngine($ctx);
java_context()->onShutdown(java("org.eclipse.birt.php.birtengine.BirtEngine")->getShutdownHook());
 
try
{
	$report = $birtReportEngine->openReportDesign($myreport);
	$task = $birtReportEngine->createRunAndRenderTask($report);
 
	/*$mylocale = new java("java.util.Locale","en", "US");
	$task->setLocale($mylocale);*/
 
	//Defini les paramètres à envoyer au BIRT UNIQUEMENT S'il y en a
	if (isset($mybirt->result[0]->parameter_name) && $mybirt->result[0]->parameter_name != "") { $mybirt->setParameter($task); }
 
	$taskOptions = new java("org.eclipse.birt.report.engine.api.HTMLRenderOption");
	$outputStream = new java("java.io.ByteArrayOutputStream");
	$taskOptions->setOutputStream($outputStream);
	$taskOptions->setOutputFormat("html");
	$ih = new java( "org.eclipse.birt.report.engine.api.HTMLServerImageHandler");
	$taskOptions->setImageHandler($ih);
	$taskOptions->setEnableAgentStyleEngine(true);
	$taskOptions->setBaseImageURL($chemin . "media/com_projid/reports/" . session_id());
	$taskOptions->setImageDirectory(JPATH_BASE . "/media/com_projid/reports/" . session_id());				
	$task->setRenderOption( $taskOptions );
 
	$task->run();
	$task->close();
}
catch (JavaException $e) { return $e; }
 
return $outputStream;
Jusque là tout fonctionne très bien.

Désormais, dans mon rapport BIRT, le texte d'un label est géré de façon à ce qu'il s'affiche dans la langue voulue, gràce aux .properties
Le mécanisme mis en place est le suivant :
  • Mon label se nomme TR_WELCOME
  • Dans les propriétés de localization du label, je définis la clé à "welcome"
  • Je charge mes ressources : report.properties / report_fr_FR.properties / report_en_US.properties
  • Mon fichier fr_FR contient welcome=bienvenue et mon fichier en_US contient welcome=welcome

Dans le mode preview de l'editeur BIRT sous Eclipse, en modifiant la langue d'affichage, le texte s'affiche comme attendu

Je voudrais maintenant "appliquer ce language" au sein de mon code PHP.
Après pas mal de recherches, il me semblait avoir trouvé la bonne méthode pour "initialiser le language voulu" à l'aide des deux lignes de codes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$mylocale = new java("java.util.Locale","en", "US");
$task->setLocale($mylocale);
Or, quand j'affiche mon rapport BIRT au sein de mon site, c'est le texte TR_WELCOME qui apparait (aucune traduction a été prise en compte, même pas dans le fichier report.properties qui est censé être le language par défaut)

Quelle méthode dois-je utiliser afin de pouvoir "initialiser mon langage d'affichage" ?

Merci d'avance de vos réponses