How can I see if a prompt can be translated?

2 minute read time.
All of the visible captions within CRM can be translated.

One way of quickly proving if a caption can be translated is to log on as Hans Muller (Mullerh) in the demo data and see if his screens are translated. This is not a perfect way as there are loads of translations that are missing for this user but if a caption is in Dutch then it proves that it can be translated. But it doesn't make it necessarily easier to track down which caption is involved.

Can we track down the translations for a given page? To know this we need to think about how CRM uses the translations.

The translations are held in the custom_captions table. If they are defined in the database then at some point they must be referenced using SQL to load these translations into memory.

CRM loads its translations (and system parameters) partially on start up but for translations mostly on first demand.

That is the first time a page is referenced is the moment when the translations for that page are pulled from the custom_captions table. This is done per language as well so we can be very sure which set of translations are referenced within a screen.

To see the translations being referenced we would need to switch on SQL logging fully.

Go to Admin>System>Logging and make sure that all SQL over the threshold is switched on.

To monitor the contents of the log files it is best to use a text editor that prompts you when the file being examined changes. Textpad is good for this. (http://www.textpad.com)

Load the SQL log file into the text editor.
c:\program files\Sage\CRM\installname\Logs\yyyymmddewaresql.log

To make sure that the cache is cleared out you should restart IIS.
You may want to empty the log file too.

Once IIS is restarted, log on as Admin.

If you check the log file now you will see it filled with the SQL that has pulled up the system parameters and many translations as the CRM is started up.

You can navigate to the screen you want, and at each click you can check the contents of the log to see what translations are being referenced. The translations are loaded with statements that look like this:

SELECT Capt_Code, Capt_Family,Capt_DU FROM vCustom_Captions WHERE Capt_Family = N'Comm_Status' ORDER BY CAPT_FAMILY,CAPT_ORDER,CAPT_CODE