This is a tool that eases development tasks in CRM. It supports changing of existing translations and adding of new translations for all kind of CRM parts. In addition to that, you can change properties such as field security status on fields in bulk.
There is an automated translation feature for missing labels, that tries to get a translation using the free Glosbe translation API.
This is a beta, use at your own risk and export a backup solution before testing.
After installing the solution (download latest version here), there will be some dashboards and their requirements added to your organization.
When using bulk edit features such as Auto Translate or Find and Replace, be sure to expand all rows. Not expanded rows will not be processed during those features. This is also valid for saving, so be sure that all your changes are visible when saving. This is a bug in w2ui and will eventually be fixed.
There will be a column in the translation grid for every language installed in the organization. Once the list of entities is loaded, select the one you want to translate, as well as which part. For entities and attributes you can even select, whether you want to translate the display names, or the descriptions. This does not have an effect on any of the other types right now. Just add/change the translations using inline-editing in the grid. For missing translations, you can click the Auto Translate button, which will try to find fitting translations and enter them for you. You’ll first have to select the source LCID, which is the column name of the column that contains the labels that should be translated and the destination LCID, which is the column name of the column that should be translated automatically.
After you did your changes, the save button will be enabled. By clicking it, the labels will be saved to CRM and the entity will be published.
Note regarding form translations: Unfortunately the CRM only returns the current user’s language labels when retrieving a system form. Other language labels, even if present, are not returned. Therefore the dashboard changes the user language to each installed language and retrieves the form, for being able to display all labels. After having retrieved all of the forms, your user language is restored to your initial value again. So please note that you should not abort loading of a form, as you might end up with a different language id (which you can of course just switch back in your options). In addition to that, sometimes publishing of CRM forms does not finish, if the UI language does not match the base language. Be sure to upgrade to at least v2.6.1 of this project, because since this version, the UI language is set to the base language before saving and publishing the changes. Your initial language is restored afterwards. If you still experience issues with the latest version, please file an issue on GitHub. When publishing should get stuck, publish changes on another entity and try again afterwards.
When clicking Find and Replace, you can enter your search text as either regex (JS style) or plain text. There is an option for ignoring the case when searching for matches. When using it with regular expressions, JS regular expressions are used. This gives you also the possibility for using capture groups and reordering in your replace expression. For example when using find text: (Account) (.*) and replace text: $2 $1 you can reorder the text, so that Account Number becomes Number Account.
After the find and replace has processed all records, you will be presented with a selection dialog. Select all replacements that you want to apply and they will be changed in the grid.
This is a dashboard for changing properties on CRM parts. Currently there is support for CRM fields only. You can change the following properties in bulk:
Afterwards hit “Save” and the updates will be sent and published. When changing the field security state on fields, you might receive the following error:
The user does not have full permissions to unsecure the attribute...
There seems to be a background workflow in CRM that works on change of these properties, if you receive above error, wait a few minutes and try again. Setting required level of a field to SystemRequired as well as trying to change a field’s level from SystemRequired will not send any updates for this, since this is not allowed.
This solution is available for CRM 2016 >= 8.0, since it requires the Web API for operating.
This tool uses a wide range of metadata operations, your user should best be system administrator.
I used jQuery and w2ui for working with the grid. Requests to the CRM are sent using my Web API Client. Automated translations are gathered using the awesome Glosbe translation API.
This tool is licensed under the MIT, enjoy!