Label Localization¶
Using Skuid SFX, it’s possible to create custom labels within the pages you create. Custom labels can be implemented in Apex classes, Visualforce pages, and Lightning components.
For the purposes of this documentation, we will focus on using custom labels and translations with Skuid. For specific information about custom labels, supported languages, and translation in Salesforce, check out their documentation on:
- Creating custom labels
- Enabling and disabling the Translation Workbench
- Creating translations in the Translation Workbench
Translating Skuid’s labels¶
Skuid ships with several label translations as part of its managed package, and it’s possible to expand on Skuid’s existing languages—or add your own—for labels in its user interface. See the Skuid label reference for a list of labels available to translate.
In Salesforce setup:
Navigate to Custom Labels.
Find the label you wish to translate in the list, and click the Name link.
Note
Clicking Edit navigates to a different screen. Be sure to click the label name instead.
Click New Local Translations / Overrides.
Select the proper language and enter the translation int he Translation text field.
Click Save.
Skuid label reference [[]]¶
The following labels are contained within Skuid’s managed package to represent its user interface. Translations for these labels can be added via the process described above.
Note
- This reference only contains the name and short description. Label values can be found in Salesforce’s Custom Labels screen.
- These labels may vary slightly depending on the Skuid version installed in your org.
Name | Short Description |
---|---|
Action | Action |
Actions | Actions |
Add_A_New | Add a New |
Add_All_Visible_Objects | Add All Visible Objects |
Add_Drilldown | Add Drilldown |
Add_New | Add New |
Add_This | Add This |
After_This | After This |
All_a_Rows_Loaded_For_b | All records loaded for specific model |
All_records_exported_to_CSV | All records exported to CSV |
All_Rows | All rows |
All_Time | All Time |
All_Values | All Values |
All_X | All_X |
Allow_external_emails | Allow external emails |
AM_PM_Markers | AM PM Markers |
Any_X | Any_X |
Apply | Apply |
Applying_Filter | Applying Filter |
applying_sort_order_change | Applying sort order change |
Approvals_Invalid_Action_Type | Invalid action type for Approval Process |
Approvals_Invalid_Approver_Id | The user Id is not valid for Next Approver |
Approvals_Invalid_Org_Type | Your Salesforce org does not support Approvals |
Approvals_Invalid_Record_Id | Invalid record Id |
Approvals_Invalid_WorkItem_Id | Invalid Work Item Id |
Approvals_Lock_Unlock_Insufficient_Access | Insufficient access to run the Lock/Unlock actions |
Approvals_Not_Authorized_Approver | You are not an authorized Approver |
Approvals_Not_Authorized_Recaller | You are not authorized to perform a recall |
Approvals_Record_Id_Not_Found | You need to provide a valid record Id for this action |
Approvals_Specified_Approver_Required | To proceed to the next step, you must specify the Next Approver |
Approvals_WorkItem_Not_Found | Work Item Id not found |
Assign_using_active_assignment_rule | Assign using active assignment rule |
Batches_Processed | Batches Processed |
Before_This | Before This |
Boolean_Off | Boolean - Off |
Boolean_On | Boolean - On |
Building_Page | Building Page |
Calendar_Loading_Additional_Events | Loading additional events… |
Calendar_Loading_Additional_Events_Complete | Events loaded. |
Cancel | Cancel |
Cancelled | Cancelled |
Cannot_Find_Object_Question | Cannot Find Object Question |
Check_All | Check All |
Clear_Value | Clear Value |
Click_Here_to_Return_to_Where_You_Started | Click Here to Return to Where You Started |
Click_To_Go_To_Object_Tab | Click To Go To {0} Tab |
Clone | Clone |
Column | Column |
Components | Components |
Confirm_Delete | Confirm Delete |
Connected | Connected to a Network |
Created_By | Created By |
Currently_Offline | Currently Offline |
Custom_Action | Custom Action |
DataSource | Data Source |
Date_Completed | Date Completed |
Date_Submitted | Date Submitted |
Datepicker_CloseText | Datepicker_CloseText |
Datepicker_CurrentText | Datepicker_CurrentText |
Datepicker_NextText | Datepicker_NextText |
Datepicker_PrevText | Datepicker_PrevText |
Datepicker_WeekHeader | Datepicker_WeekHeader |
Day_Names_Long | Day Names Long |
Day_Names_Min | Day Names Min |
Day_Names_Short | Day Names Short |
Day_Scheduling_View | Day Scheduling View |
Delete | Delete |
Deleting | Deleting |
Done | Done |
Download_Sample_File | Download Sample File |
Edit_In_DSS | Edit in DSS |
Edit_Page | Edit Page |
Edit_Row | Edit Row |
Edit_Rows_Action | Edit Rows Action |
End_Date | End Date |
Enter_keywords | Enter keywords |
Error | Error |
ERROR_All_Columns_Must_Be_Mapped_Before_Import | ERROR_All_Columns_Must_Be_Mapped_Before_Import |
ERROR_At_Least_One_Import_Job_Required | ERROR_At_Least_One_Import_Job_Required |
ERROR_Class_not_value_provider | ERROR_Class_not_value_provider |
ERROR_Content_Type_Not_Supported | ERROR_Content_Type_Not_Supported |
ERROR_Could_Not_Find_Skuid_Page | ERROR_Could_Not_Find_Skuid_Page |
ERROR_Could_Not_Find_Skuid_Page_Assignment | ERROR_Could_Not_Find_Skuid_Page_Assignment |
Error_Could_Not_Find_Upload_Method | Error Could Not Find Upload Method |
ERROR_Could_Not_Process_Page_Include_Merge | ERROR_Could_Not_Process_Page_Include_Merge |
ERROR_Could_Not_Retrieve_File_From_URL | ERROR_Could_Not_Retrieve_File_From_URL |
ERROR_DML_Operation_On_Model_X_Failed_Due_To_Error | ERROR_DML_Operation_On_Model_X_Failed_Due_To_Error |
ERROR_Duplicate_Value_for_Unique_Field | ERROR Duplicate Value for Unique Field |
ERROR_Empty_Column_Header_Found | ERROR_Empty_Column_Header_Found |
ERROR_Empty_File | ERROR_Empty_File |
Error_Exceeds_Max_File_Size | File exceeds the allowable size. |
ERROR_File_Contains_Invalid_Characters | ERROR_File_Contains_Invalid_Characters |
ERROR_File_Has_No_Columns | ERROR_File_Has_No_Columns |
ERROR_File_Only_Has_Header_Row | ERROR_File_Only_Has_Header_Row |
ERROR_Import_Process_Required | ERROR_Import_Process_Required |
ERROR_Insufficient_Privileges_To_Create_Field | ERROR_Insufficient_Privileges_To_Create_Field |
ERROR_Insufficient_Privileges_To_Delete_Record | ERROR_Insufficient_Privileges_To_Delete_Record |
ERROR_Insufficient_Privileges_To_Insert_Record | ERROR_Insufficient_Privileges_To_Insert_Record |
ERROR_Insufficient_Privileges_To_Update_Field | ERROR_Insufficient_Privileges_To_Update_Field |
ERROR_Insufficient_Privileges_To_Update_Record | ERROR_Insufficient_Privileges_To_Update_Record |
ERROR_Invalid_Api_Version | ERROR_Invalid_Api_Version |
ERROR_Invalid_Batch_Job_Id | ERROR_Invalid_Batch_Job_Id |
ERROR_Invalid_Field_Mappings_Still_Exist | ERROR_Invalid_Field_Mappings_Still_Exist |
Error_Invalid_File_Upload_Data_Source | Error Invalid File Upload Data Source |
ERROR_Invalid_SObject_No_Metadata_Retrieved | ERROR_Invalid_SObject_No_Metadata_Retrieved |
ERROR_Invalid_SObject_Type | ERROR_Invalid_SObject_Type |
ERROR_Invalid_SObjectType_For_Model | ERROR_Invalid_SObjectType_For_Model |
ERROR_Missing_Field_on_Field_from_Another_Model_Condition | Missing Field on Field from Another Model Condition |
ERROR_No_Fields_Selected_For_Model_Query | ERROR_No_Fields_Selected_For_Model_Query |
ERROR_No_Permission_To_Author_Arbitrary_JavaScript | ERROR_No_Permission_To_Author_Arbitrary_JavaScript |
ERROR_Page_Name_Conflict | Page Name Conflict |
ERROR_Page_or_Tab_Required | ERROR_Page_Name_or_Id_Required |
ERROR_Page_Version_Conflict | Page Revision Conflict |
ERROR_Page_with_Id_Could_Not_Be_Retrieved | ERROR_Page_with_Id_Could_Not_Be_Retrieved |
Error_Performing_Requested_Search | Error Performing Requested Search |
ERROR_Protected_Module | ERROR_Protected_Module |
ERROR_Unable_To_Redirect_To_Standard_Pages | ERROR_Unable_To_Redirect_To_Standard_Pages |
ERROR_Unknown_merge_value_provider | ERROR_Unknown_merge_value_provider |
ERROR_User_Not_Licensed | User Not Licensed |
ERROR_V1_In_Lightning | v1 pages are not supported in Lightning |
ERROR_Valid_DataTable_Required | ERROR_Valid_DataTable_Required |
Error_While_Loading_Visualforce_Page_Include | Error_While_Loading_Visualforce_Page_Include |
Example_Of_What_File_Should_Look_Like | Example_Of_What_File_Should_Look_Like |
Expand_Collapse | Expand/Collapse |
Export_Data | Export Data |
Field | Field |
Field_X_Does_Not_Exist_On_Object | Field_X_Does_Not_Exist_On_Object |
Fields | Fields |
File_Column_Header | File Column Header |
File_Resource | File Resource |
Filter | Filter |
Filter_could_not_be_applied | Filter could not be applied |
First | First |
Flag_for_Delete_Action | Flag for Delete Action |
Flag_For_Deletion | Flag For Deletion |
Global_Feedback_Attach_Button_Text | Global Feedback Attach Button Text |
Global_Feedback_Breadcrumb_Step_1 | Global Feedback Breadcrumb Step 1 |
Global_Feedback_Breadcrumb_Step_2 | Global Feedback Breadcrumb Step 2 |
Global_Feedback_Close_Button_Text | Global Feedback Close Button Text |
Global_Feedback_File_Button_Text | Global Feedback File Button Text |
Global_Feedback_File_Help_Text | Global Feedback File Help Text |
Global_Feedback_Question_Text | Global Feedback Question Text |
Global_Feedback_Submit_Button_Text | Global Feedback Submit Button Text |
Global_Feedback_Success_Emphasized_Message | Global Feedback Success Emphasized Message |
Global_Feedback_Success_Secondary_Message | Global Feedback Success Secondary Message |
Global_Feedback_Tab_Icon | Global Feedback Tab Icon |
Global_Feedback_Tab_Text | Global Feedback Tab Text |
Global_Feedback_Type_Text | Global Feedback Type Text |
Greater_Than | Greather Than |
Home | Home |
How_to_Format_Your_File | How to Format Your File |
Import | Import |
Import_Complete | Import Complete |
Import_Email_On_The_Way | Import Email On The Way |
Import_In_Progress | Import In Progress |
Import_Processing_In_Background | Import Processing In Background |
ImportWizard_OnceFinishedWithEditsSelectSaveAs | ImportWizard_OnceFinishedWithEditsSelectSaveAs |
ImportWizardStep1ReturnWarning | ImportWizardStep1ReturnWarning |
Invalid_Data_Source | Error Invalid Data Source |
Invalid_Data_Source_Type | Error Invalid Data Source Type |
Invalid_Field_Format | Invalid Field Client Side Validation |
Invalid_Field_Formula_Snippet | Invalid Field Client Side Validation |
Invalid_Field_On_Object_Requested_by_Model | Invalid Field On Object Requested by Model |
Invalid_Field_on_Object_Requested_by_Model_Condition | Invalid Field on Object Requested by Model Condition |
Invalid_Number_Format | Invalid Number Format |
Item_Selected | {0} item selected |
Items_Selected | {0} items selected |
Job_Details | Job Details |
Last | Last |
Last_Modified_By | Last Modified By |
Less_Than | Less Than |
List_View | List View |
Load_More | Load more |
Loading | Loading |
Loading_Calendar_Events | Loading Calendar Events |
Map_Column_Headers_To_Fields | Map Column Headers To Fields |
Mapping_Status | Mapping Status |
Mass_Update_Selected_Rows | Mass Update Selected Rows |
Model_Id_Not_Provided | Model_Id_Not_Provided |
Models | Models |
Module | Module |
Month_Names_Long | Month Names Long |
Month_Names_Short | Month Names Short |
Month_View | Month View |
MyCredentials | My Credentials |
New_Event | New Event |
Next | Next |
No | No |
No_But_I_Would_Like_To_Delete | No but I would like to Delete |
No_Dont_Delete_Anything | No Dont Delete Anything |
No_Module | No Module |
No_Objects_to_Display | No Objects to Display |
No_Page_Name_Provided_For_Visualforce_Page_Include | No Page Name Provided For Visualforce Page Include |
None_Option_Text | None_Option_Text |
None_Selected | None Selected |
Number_of_Items_Successfully_Created | Number of Items Successfully Created |
Number_of_Items_That_Failed | Number of Items That Failed |
Number_Selected | Number Selected |
Object_X_Does_Not_Exist | Object_X_Does_Not_Exist |
Objects_Per_Page | Objects Per Page |
Organization_Default | Organization Default |
Owner | Owner |
Page_Deprecated | Visualforce Page Deprecated |
Page_Error_Header | Page_Error_Header |
Page_Regions | Page Regions |
Pagination_Limit_Reached | Pagination Limit Reached |
Password | Password |
pb_No_component_renderer | No component renderer |
pb_No_properties_renderer | No properties renderer |
Picture_View | Picture View |
Please_Check_Requested_Model_Merge_Field | Please_Check_Requested_Model_Merge_Field |
Please_Check_Requested_URL_Parameter | Please Check Requested URL Parameter |
Preview | Preview |
Previous | Previous |
Profile_Object_Label | Profile Object Label |
Properties | Properties |
Reconnecting | Reconnecting to the Network |
Records_Successfully_Created | Records Successfully Created |
Records_Successfully_Created_Or_Updated | Records_Successfully_Created_Or_Updated |
Records_That_Failed | Records That Failed |
Redo | Redo |
Remove | Remove |
Remove_this_Column | Remove this Column |
Required | For indicating that a form field is required |
Required_Fields_have_no_Value | Required fields have no value: |
Resources | Resources |
Result | Result |
Results | Results |
Retrieving_data_for_export | Retrieving data for export |
Retrieving_records_a_to_b | Retrieving records a to b |
Row_Selected | Row Selected |
Rows | rows |
Rows_Selected | Rows Selected |
Save | Save |
Save_Anyway | Save anyway |
Saved | Saved |
Saving | Saving |
Saving_Offline_Changes | Saving your offline changes… |
Search | Search |
Searching | Searching |
Select | Select |
Select_A_File | Select A File |
Select_Cards | Select Cards |
Select_Event_Type_to_Create | Select Event Type to Create |
Select_Option_None | Select Option None |
Send_Anyways | Send Anyways |
Send_notification_email | Send notification email |
Send_notification_email_to | Send notification email to |
server_model_client_condition | server_client_cond |
Share | Share |
Show | Show |
Showing_Rows | Showing Rows |
Skoodat_Batch_Processing | Skuid Batch Processing |
Skuid_Page_Problems | Skuid Page Problems |
Skuid_Page_Problems_No_Click | Skuid Page Problems No Click |
Specific_Record_Type | Specific Record Type |
Start | Start |
Start_Date | Start Date |
Status_of_Import_Operation | Status of Import Operation |
Submitted_By | Submitted By |
summary_avg | Summary Function (AVG) |
summary_max | Summary Function (MAX) |
summary_med | Summary Function (MED) |
summary_min | Summary Function (MIN) |
summary_sum | Summary Function (SUM) |
Synced | Synced |
Syncing | Syncing |
Table_Settings | Table Settings |
To_See_Imported_Records | To_See_Imported_Records |
Toggle_Edit_Mode_on_Selected_Rows | Toggle Edit Mode on Selected Rows |
Toggle_Selected_Rows_for_Deletion | Flag Selected Rows for Deletion |
Total_Items_Requested_For_Import | Total Items Requested For Import |
Uncheck_All | Uncheck All |
Undo | Undo |
Unsaved_Changes_Warning | Unsaved Changes Warning |
Unsupported_Page_Include_Merge_Type | Unsupported_Page_Include_Merge_Type |
Upload | Upload |
Upload_Successful | Upload Successful |
Uploading | Uploading |
Username | Username |
Validate_date | Validate date |
Validate_email | Validate email |
Validate_field_length_multiple | Validate field length multiple |
Validate_field_length_single | Validate field length single |
Validate_formula_snippet | Validate formula or snippet |
Validate_Mappings | Validate Mappings |
Validate_Mappings_Tooltip | Validate Mappings Tooltip |
Validate_SSN | Validate Social Security number |
Validate_URL | Validate URL |
View | View |
View_More | View More |
Viewing_a_b_of_c | Viewing {0}-{1} of {2} |
Visible | Visible |
Week_View | Week View |
Welcome_To_Skuid | Welcome to Skuid |
Wizard_Step_Title | Wizard_Step_Title |
Yes | Yes |
Troubleshooting¶
If label overrides don’t appear at runtime, users may need to clear their browser’s site data.
For example, in Chrome:
- Click View > Developer > Developer Tools.
- Click Application.
- Click Clear site data.
In Firefox:
- Click the lock icon in the address bar.
- Click Clear cookies and site data…
- Click Remove.
Displaying custom labels in Skuid¶
To display custom labels in Skuid:
Click the Skuid Page container within the canvas to access Page Properties within the Properties pane.
Click the Labels tab.
Click
Add Label.Click the newly created label.
- For Label Id, enter the name of the label you wish to include in your page.
Click Save.
Repeat these steps for every label you want to use on this page.
Reference the label with merge syntax¶
Once you have created references to your labels in the Skuid page, you can reference them in any field in that page that accepts merge syntax using the $Label global merge variable. This includes Page Title, fields, etc.
For example, if you want to include a custom label “label_test” in a Page Title, you would reference the label using {{$Label.label_test}}.
Displaying other translations¶
Using Salesforce’s Translation Workbench and the $Label merge variable, you can automatically translate your custom labels into your end users’ native languages. This is especially useful if your organization has multiple locations across the globe. Just ensure you are using $Label on all buttons.
If labels have an appropriate translation, users will see that translation based on their personal language setting.
Note
If you are setting a specific button action, such as like Save or Cancel, these labels will defer to the default Salesforce label as long as no other label is inserted. This means you don’t need to include the $Label merge variable.
Additional translations in Skuid pages¶
The Translation Workbench can be used to display items beyond just labels and notes. However, these labels require double curly brackets to reflect translations for the user. This is because triple curly brackets tell Skuid to display only the raw (unformatted) data regardless of locale-specific settings.
Note
Using the field picker may automatically insert a field using triple curly brackets, which won’t display locale-specific info. (This means the translation won’t display.) Remember to check—and correct for—double curly brackets when using the field picker.
For example, you would like the values of a picklist—such as the Stage field on the Opportunity object—to be translated. If you want to use the Stage field in a filter set, set the Option Label Template to {{stageName}}, not {{{stageName}}}. (Triple brackets won’t translate the value.)
Troubleshooting¶
Having trouble with custom labels and translations? Make sure that:
- you have specified your labels in the Labels tab.
- your labels aren’t marked as protected components. Edit the custom label to unmark this property.