Skip to main content

Salesforce

Translations using Custom Labels and Metadata

Concept Of Work On Translation From Different Languages

Handling translations in Salesforce can significantly enhance the user experience by presenting content in multiple languages. To implement this feature, you need to leverage Salesforce’s Custom Labels and Custom Metadata Types in conjunction with Lightning Web Components (LWC). In this blog, I’ll guide you through the process of setting up translations using these tools. Additionally, I will provide sample code, describe the expected output, and highlight common issues faced during implementation.

Setting Up Custom Labels for Translations

Custom Labels in Salesforce allow you to store text values that can be translated into different languages. This feature is crucial for maintaining consistency in user interfaces across various locales. Furthermore, by utilizing Custom Labels, you ensure that users receive a cohesive experience, regardless of their preferred language. As a result, it enhances usability and improves user satisfaction across diverse regions.

Steps to Create Custom Labels:

  1. Navigate to Custom Labels: Go to Setup in Salesforce. Search for Custom Labels and click on it.
  2. Create New Labels: Click on New Custom Label. Enter a name (e.g., WELCOME_MESSAGE) and a default value (e.g., Welcome to our application!). Save your changes. Repeat for each label, ensuring that translations are added for different languages.

Creating Custom Metadata Types

Custom Metadata Types allow for the storage of configuration data that can be managed without code changes. Additionally, they provide a flexible way to manage translations and other settings. Moreover, by using Custom Metadata Types, administrators can make adjustments directly through the user interface, ensuring a seamless experience. Consequently, this approach minimizes the need for frequent code deployments and enhances system adaptability.

Steps to Create Custom Metadata Types:

  1. Navigate to Custom Metadata Types: Go to Setup. Search for Custom Metadata Types and click on it.
  2. Create a New Custom Metadata Type: Click on New Custom Metadata Type. Name it (e.g., TranslationSettings). Add fields like Label, Translation, and Language to store the relevant data.
  3. Add Records: Go to Custom Metadata Types and select Manage Records for your type. Click New to create records with translations for different languages.

Developing the Lightning Web Component (LWC)

The LWC will dynamically fetch and display translations based on the user’s language preferences.

Sample Code:

HTML (translationComponent.html):

html

<template>

    <lightningcard title={cardTitle}>

        <div class="sldsparound_medium">

            <p>{translatedText}</p>

        </div>

    </lightningcard>

</template>

JavaScript (translationComponent.js):

javascript

import { LightningElement, wire } from 'lwc';

import getTranslations from '@salesforce/apex/TranslationController.getTranslations';




export default class TranslationComponent extends LightningElement {

    translatedText = '';

    cardTitle = 'Welcome Card';




    @wire(getTranslations)

    handleTranslations({ error, data }) {

        if (data) {

            this.translatedText = data.Translation__c;

        } else if (error) {

            console.error('Error retrieving translations:', error);

        }

    }

}





 

Apex Controller (TranslationController.cls):

apex

public with sharing class TranslationController {

    @AuraEnabled(cacheable=true)

    public static TranslationSettings__c getTranslations() {

        // Fetch the translation record based on user preferences

        return [SELECT Translation__c FROM TranslationSettings__c LIMIT 1];

    }

}

Testing and Output

After deploying the component, the translations should display based on the user’s locale settings.

Expected Output:

For a user whose language preference is set to French, if the custom metadata record contains the French translation, the output will be:

Bienvenue dans notre application !

 

This text will replace the default English message in the component.

Common Issues and Solutions

Issue 1: Translation Not Displaying

Problem: The translated text does not appear as expected.

Solution: Ensure that custom metadata records are properly set up and associated with the correct language. Also, check if the Apex method is correctly fetching the data.

Issue 2: Apex Method Errors

Problem: Errors occur when the Apex method is called.

Solution: Verify that the method is correctly annotated with @AuraEnabled and that it adheres to Salesforce governor limits. Ensure proper exception handling and debug the controller logic if needed.

Issue 3: Incorrect Custom Label Values

Problem: Custom label values are not displaying correctly.

Solution: Check the custom labels setup in Salesforce. Ensure that the correct namespace is used in the JavaScript file when importing labels and that translations are properly configured.

Conclusion

Implementing translations in Salesforce using Custom Labels, Custom Metadata Types, and Lightning Web Components involves setting up the necessary Salesforce configurations, developing the component to dynamically handle translations, and troubleshooting common issues. By following these steps, you can create a multilingual user experience that enhances accessibility and user satisfaction across different locales.

If you encounter any challenges, remember that Salesforce’s robust tools and community resources can assist you in resolving issues and optimizing your implementation. Happy coding!

Check out for more :

Custom Metadata Types in Salesforce

Custom Label

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Reena Joseph

Reena Joseph, our Senior Technical Consultant at Perficient, boasts 3.5 years of experience and holds the prestigious 3x Salesforce Certified title. Her trailblazing spirit is evident with 100 badges on Trailheads, showcasing her commitment to continuous learning. Not limited to Salesforce, Reena has also mastered SQL and Programming in HTML5 with JavaScript and CSS3 on Hacker Rank. Beyond certifications, her passion for staying abreast of technological advancements is seen in her avid reading habits. In the dynamic tech world, Reena Joseph stands ready to drive innovation and inspire with her dedication to excellence.

More from this Author

Categories
Follow Us