Ok, after reading all the topics related to traits, anciliaries and scripts, I finally found what was going on.
The SettlementName condition definitely looks for the display name (here, 'al-Quds aš-Šarīf'), not for the tag (in my case 'Jerusalem'). Since using the 'al-Quds aš-Šarīf' name in the trait file create a fatal error, I changed the display name to 'al-Quds as-Sarif', and changed the condition to
SettlemmentName al-Quds_as-Sarif
It didnt work, so I changed the display name to 'Jerusalem', and the condition to settlementname Jerusalem, and it worked fine.
It might be an old news to experienced traiters/scripters, but I haven't seen any reference to that in any topic.
Edit : I should have looked better - https://forums.totalwar.org/vb/showthread.php?t=43121
Bookmarks