Bonjour à tous,

En vue de centraliser mon fichier langue et de faciliter la maintenance, je souhaite transférer une constante objet JS de PHP dans le fichier script JS.
Définition de la constante à transférer:
Code php : 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
define('DATA_TABLE_MSG', 
<<<DT_OBJ
	language: {
		processing:		"Traitement en cours...",
		search:			"Rechercher&nbsp;:",
		lengthMenu:		"Afficher&nbsp;&nbsp; _MENU_ lignes.",									/*"Afficher _MENU_ &eacute;l&eacute;ments",*/
		info:			"Affichage des lignes _START_ &agrave; _END_ sur un total de _TOTAL_",	/*"Affichage de l'&eacute;lement _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments",*/
		infoEmpty:		"Affichage de la ligne 0 &agrave; 0 sur un total de 0",					/*"Affichage de l&apos;&eacute;lement 0 &agrave; 0 sur 0 &eacute;l&eacute;ments",*/
		infoFiltered:	"(filtr&eacute; d'un total de _MAX_ lignes)",							/*"(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)",*/
		infoPostFix:	"",
		loadingRecords:	"Chargement en cours...",
		zeroRecords:	"Aucune ligne à afficher",												/*"Aucun &eacute;l&eacute;ment &agrave; afficher",*/
		emptyTable:		"Tableau vide",
		paginate: {
			first:		"&lt;&lt;",	/*"Premier"*/
			previous:	"&lt;",		/*"Pr&eacute;c&eacute;dent"*/
			next:		"&gt;",		/*"Suivant"*/
			last:		"&gt;&gt;"	/*"Dernier"*/
		},
		aria: {
			sortAscending:  ": activer pour trier la colonne par ordre croissant",
			sortDescending: ": activer pour trier la colonne par ordre décroissant"
		}
	}
DT_OBJ
);
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<script>
        const language = <?= DATA_TABLE_MSG; ?>;
</script>
Code JavaScript : 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
// Nouvelle version
$('#table').DataTable( { language } );
console.log(language);
 
// Version d'origine
// Traductions française (les lignes en commentaire correspondent à la traduction officielle de DataTable)
/*
$('#table').DataTable( {
	language: {
		processing:		"Traitement en cours...",
		search:			"Rechercher&nbsp;:",
		lengthMenu:		"Afficher&nbsp;&nbsp; _MENU_ lignes.",									//"Afficher _MENU_ &eacute;l&eacute;ments",
		info:			"Affichage des lignes _START_ &agrave; _END_ sur un total de _TOTAL_",	//"Affichage de l'&eacute;lement _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments",
		infoEmpty:		"Affichage de la ligne 0 &agrave; 0 sur un total de 0",					//"Affichage de l&apos;&eacute;lement 0 &agrave; 0 sur 0 &eacute;l&eacute;ments",
		infoFiltered:	"(filtr&eacute; d'un total de _MAX_ lignes)",							//"(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)",
		infoPostFix:	"",
		loadingRecords:	"Chargement en cours...",
		zeroRecords:	"Aucune ligne à afficher",												//"Aucun &eacute;l&eacute;ment &agrave; afficher",
		emptyTable:		"Tableau vide",
		paginate: {
			first:		"&lt;&lt;",	//"Premier"
			previous:	"&lt;",		//"Pr&eacute;c&eacute;dent"
			next:		"&gt;",		//"Suivant"
			last:		"&gt;&gt;"	//"Dernier"
		},
		aria: {
			sortAscending:  ": activer pour trier la colonne par ordre croissant",
			sortDescending: ": activer pour trier la colonne par ordre décroissant"
		}
	}
} );
*/
EDIT: Ajout des erreurs signalées dans la console:
';' attendu dans le fichier source PHP à la ligne const language = language: {.
':' attendu dans le fichier JS à la ligne $('#table').DataTable( { language } );.
Sur ce dernier point, si je mets les ':', j'ai une erreur de syntaxe.