Hello Alshahim. I do not see a documented syntax to resolve a message key directly inside Bundle.sysDescriptions.
sysDescriptions stores the description text for each locale, for example:
<entry key="sysDescriptions">
<value>
<Map>
<entry key="en_US" value="This is the bundle description."/>
</Map>
</value>
</entry>
IIQ then uses the appropriate localized description based on the user’s language.
If you want to maintain the text in a .properties file, one practical approach would be to resolve the message key in your import or custom code first, then set the resolved text on the Bundle:
bundle.addDescription(locale, resolvedText);
If you are updating the Bundle directly in custom code, persist the change using the appropriate SailPointContext save/transaction handling.
So in your current example, value="custom_bundle_description" would normally be treated as the description value itself rather than automatically resolved as a message key.
@alshahim04System UI Labels (Buttons, menu headers, dialog titles, validation errors) live in .properties files and are looked up via native APIs. While Roles and Entitlements are Business Data stored in the database (spt_bundle table). When IdentityIQ renders a role in the Access Request catalog or Role Management, it calls bundle.getDescription(). It does not run the string through the message catalog
The best way is to define the different locale in the role xml itself like @punna0001 said. Here is an example of description with Dutch description.:
<entry key="sysDescriptions">
<value>
<Map>
<entry key="en_US" value="Manager access to the PRISM financial management system."/>
<entry key="nl" value="Managertoegang voor het financiële beheersysteem PRISM."/>
</Map>
</value>
</entry>
Based on browser language, it’ll pick the desciption. Here it is in Dutch: