Localization examples

From Resco's Wiki
Jump to navigation Jump to search
Branding and customization

Entity item on home screen

In this example, we rename the title and subtitle of an entity on home screen, add a custom icon for the item.

  1. In Woodford, edit the home screen. Select the entity and click Rename. Use a unique one-word string, for example, "CustomAccount".
    Localization examples: Rename item on home screen
  2. Select Design > Localization from the Project menu and edit a language, Click Add to add a new localization string. As the ID, use "HomeTitle.HomeItemName"; in this particular example, "HomeTitle.CustomAccount". Add another string for HomeSubTitle.CustomAccount.
    Localization examples: Home title custom strings
  3. If you want to change the icon of the home screen item, select Design > Images from the Administrator menu. Go to the Home directory and click Add to add a new image. As the image name, use the name you used in step 1, for example "CustomAccount".
    Localization examples: Home item localization result
Note The icon change described in step 3 is an older way of changing icons; the recommended way is using to use the icon selector on the Images pane.

Section on home screen

You can localize section labels.

  1. Rename the section to a unique one-word string, for example, "section-1".
  2. In project localization, add a new localization string with the ID matching the section name.

Hub item on home screen

In this example, we create a new hub, add it to the home screen with a custom label and icon.

  1. In Woodford, go to Components > Entity Hubs and create a new hub. Give it a unique, one-worded name, for example "myHub".
  2. Go to Components > Home screen and add the new hub to your home.
  3. Go to Design > Localization and add new strings. As the ID, use "myHub" for the title and "myHub.SubTitle" for the subtitle.
  4. Go to Design > Images and add the new icon to the Home directory. Use "myHub" as the name.
    Localization examples: Hub item on home screen: Adding a custom icon for hub
  5. Result:
    Localization examples: Hub item on home screen: Home item localization result

Rename views

Views are internally identified by their names. As a result, renaming views is tricky; see the best practices. In this example, we use localization to change the label of a view in the app.

  1. In Woodford, go to Entities > Contact, click Show UI, and create a new view. Give it a unique, one-worded name, for example "USContacts".
  2. Go to Design > Localization, find the string for this new view and click Edit Project to enter a localized label.
    Localization examples: Rename views: Rename view using localization
  3. Result:
    Localization examples: Rename views: Renamed view in action

Rename view buttons and commands

When editing a view in Woodford, you can use Command editor to add actions to your views. Sometimes, it is appropriate to rename these actions so that users can understand them better.

Tip If you have only a single command on your view, the text of the command is displayed on the button; in this case, use a short text. If you have multiple commands, they are available from the hamburger menu, and there's enough room for multiple words.

To set a localized name for the buttons, go to Localization and open the appropriate language, for which you want to specify button names. Click Add to add a new localization item.

  • To localize a standard button that does not require additional setup (for example, Email, SMS, or Delete), the string ID is Buttons.NameOfTheCommand; for example Buttons.AssignToMe.
  • To localize the change of a status code, the ID is entityName.ChangeStatus.statusNumber; for example account.ChangeStatus.1.
  • To localize the Open button, specify the entity where the field exists and what is the field that points to that entity (lookup field), i.e. Buttons.Open.entityName.lookupFieldID; for example, Buttons.Open.contact.parentcustomerid.
  • If the button opens an Activity (to open a parent activity in case of a custom setup), the ID is Buttons.Open.entityName.lookupFieldID; for example, Buttons.Open.activitypointer.regardingobjectid.
  • To localize the Create button, e.g. you want to allow users to create a new Case from Account view, in addition to Buttons.Create, you need to specify the target entity name and the lookup field name on the target entity: Buttons.Create.targetEntityName.lookupFieldID. For example, when creating a Case record from Account view, the ID is Buttons.Create.incident.customerid. Again, the hint is that the targetEntityName and lookupFieldID name are displayed in the Button’s configuration.
Tip Some commands and buttons are hard-coded (e.g. Cancel). Creating localization strings for other commands and buttons that match these hard-coded values may cause your command or button to disappear.

Localize text labels in views

In addition to CRM data, you can also add constants - static text that can explain a value or serve as a label. Constants can also be localized so that in different languages, a different text is displayed. If you want to localize constants, they need to start with an at sign (@), e.g. @something.

The ID for localizing is equal to the constant text with the opening "@".

Rename form tabs

Sometimes you might want to change the display name of the tab (for example, if you want to use spaces and characters not allowed in tab names).

  1. Edit an app project.
  2. Select Localization from the Project menu.
  3. Open the language for which you want to change the tab name.
  4. Expand Customized App UI, then expand the entity you want to edit, such as Account.
  5. Select Forms to display the relevant strings only.
  6. Look for the name of the tab, for example "General". Or you can search for "account.DetailView.General".
  7. Select the row and click Edit Project to change the text.
  8. Save all changes and publish the project.

Localization examples: Rename form tabs: Localize label of the general tab of account form

Note The space for the tab name in the app is usually limited. We recommend using short names.

Rename form commands

Many of the form commands are available for localization out of the box. Go to Localization and search for Cmd..

Localization examples: Rename form commands: Form command labels

Many commands are used on a great number of forms (for example, Delete). When you localize the label of the Delete command, it changes on ALL forms where the command is enabled.

To change the display name of the form command that changes the status or state of a record, you need to add or change string ID entityName.ChangeStatus.#

Localization examples: Rename form commands: Changestatus localization

Custom commands

To localize custom commands on a form:

  1. Copy the label of the command.
    Localization examples: Custom commands: Edit Command Dialog
  2. In your language localization, add a new item.
    Enter the label of the command you've created into the ID field.
    Enter your desired localization into the Label field.
    Localization examples: Custom commands: Add localization string
  3. Verify the result in the app.
    Localization examples: Custom commands: Localized command

Form: localize shared variables, separators, text strings in rules

Shared variables

Using rules, you can define shared variables that can be then placed on forms. As long as the name of the shared variable is a single word with special characters, this word can be used as the localization ID. Make sure to use unique names for your shared variables, for example, myParentCity.

Separators

Form separators or spacers are used to organize fields into logical blocks. Separators can have labels defined in their Binding property. If the binding is a single word, it can be used as ID for localization.

Text strings

Text strings used in rules, for example, in Say Text, Warning, or Error messages, can be localized, as long as the text is a single word that starts with the at sign (@). Use the text without the @ as the localization ID.

Language-dependent behavior

You can use the language of the current app user as a condition in rules. Here you can find the language codes for many languages.

Localization examples: Language-dependent behavior: Rule condition on user language

Field empty validation error

When you try to save a form or questionnaire, without filling a required field, the following error message is displayed: Field/question must not be empty!

  • To change this, use the string Alert.FmtFieldNotEmpty.
  • The default value is {0} must not be empty!
  • The parameter {0} is replaced by field name or question name at run time.

Localization examples: Field empty validation error: Field must not be empty

Sync errors

You can localize the strings that are displayed in the app in case of synchronization errors. Use the following strings:

  • CantConnect
  • ServerLoginFailed
  • ServerError
  • HttpError403
  • HttpError404
  • HttpError408
  • WebRequestFailed

See also: Feature introduction Webinar

Placeholder text

See Placeholder text in forms.

Setup screen

The Setup screen in Resco mobile apps allows users to configure their application. The parameters are organized in several sections. You can use localization to change the labels of the parameters and sections.

The parameters are available by default; search for "setup.". The section headings must be created manually.

Localization examples: Setup screen: Localization strings for setup section headings

Caption on the signature tab

It is possible to adjust the text (Signature) on the Media tab with signature. Just name the Media tab using a unique name among other tabs on the entity edit form and then you can localize the Signature text.

If you need to do this on the hidden attachment tab of the Note (Annotation) entity, use the localization string "annotation.Attachment.Signature".

DocuSign messages

You can translate some of the strings related to DocuSign integration.

  • OfflineSign.ConnectingDocuSign
  • OfflineSign.DocuSigningDocs
  • OfflineSign.DocuSignAuthFailed
  • OfflineSign.TokenExpired
  • OfflineSign.SignedOffline
  • OfflineSign.ReauthorizationNeeded

Chart names

To localize chart names, use "Entity.Chart.chartname".

Business process flow

Business Process Flow uses the following localization strings:

  • "processflow.<stage label>" – name of a stage. Use the exact name as written in the web UI, including spaces; for example, "processflow.Initial Stage".
  • "processflow.<field label>" – name of a field. Again, use the exact name as written in the web UI. If the localization string does not exist, the app falls back to the localization of the field on the entity.

Drop-down options for text input fields

You can use localization to predefine drop-down list options for normal text fields.

First, you must enable this behavior for any field:

  1. Edit an entity in Woodford.
  2. Select a text field and on the Properties pane, set its Formatting to one of the following options:
    • DropDown: Users can select from a list of predefined options, or enter their own value.
    • DropDownList: Users can select from a list of predefined options.
    • Multi DropDown: Users can select multiple entries from a list of predefined options, or enter their own values.
    • Multi DropDownList: Users can select multiple entries from a list of predefined options.
      Localization examples: Drop-down options for text input fields: Set the format of the text field
  3. Click Save.

Next, add the fields using localization.

  1. Select Localization from the Project menu.
  2. Define the values as new strings:
    • As ID, enter entity.field.value, for example, account.address1_city.Vienna.
    • As Label, enter the localized name of the value, for example, "Wien".
      Localization examples: Drop-down options for text input fields: Add predefined options for text fields
  3. Save everything and publish the app project.

Finally, verify the result in the app.

Localization examples: Drop-down options for text input fields: Dropdown for text fields in action

Bulk update strings

The following strings related to bulk update can be localized:

Msg.BulkMaxRecordsExceeded=Only first {0} records can be updated in a single bulk update operation.\n\nDo you wish to continue?
Msg.Validating=Validating...
Msg.Finishing=Finishing up...
Msg.BulkOperationFailed=Operation failed.
Msg.BulkNoFieldsToUpdate=There are no fields to update.
Msg.BulkFieldsUpdated=The following fields will be updated: {0}.
Msg.BulkFieldsCleared=Warning: The following fields will be cleared or set to default value: {0}.
Msg.BulkValidatedOk=All {0} changes were successfully validated.\n\nDo you wish to save the changes?
Msg.BulkValidatedWithErrors=Do you wish to continue and skip {0} records with validation errors?
Msg.BulkValidatedWithWarnings=Do you wish to continue?
Msg.BulkInfoValidatedChanges={0} changes validated.
Msg.BulkInfoValidationErrors={0} validation errors detected.
Msg.BulkInfoValidationWarnings={0} items validated with warnings.
Msg.BulkIncludeWarnings={0} changes are validated and will be saved.\nThere are additional {1} changes validated with warnings.\n\nHow do you want to proceed?
Cmd.BulkIncludeWarningsYes=Save all
Cmd.BulkIncludeWarningsNo=Skip warnings
Msg.BulkSavedOk=All {0} changes successfully saved.
Msg.BulkInfoSavedOk={0} items saved.
Msg.BulkInfoSaveErrors={0} items not saved due to error.
Msg.BulkInfoSaveSkipped={0} items were skipped.
Alert.BulkUpdateFormAlreadyOpened=Please close already opened bulk update form first.
Alert.BulkNoRecordsSelected=There are no records selected.