How to make a SharePoint Web Part multilingual
If you want to easily allow users to have your SPFx Web Part in a language of their liking, this guide is for you. To enable this multi language feature, we need
- Define the keys and their types for localized strings in the
mystrings.d.ts
file like this:
declare interface ISvgToJsonWebPartStrings {
saveConfiguration: string;
libraryName: string;
column: string;
selectColumn: string;
}
declare module 'SvgToJsonWebPartStrings' {
const strings: ISvgToJsonWebPartStrings;
export = strings;
}
Depending on how much text you have in your Web Part, this can be a rather tedious task 😇.
(replace the SvgToJsonWebPartStrings
with your Web Part Name)
- Now in the
en-us.js
file (it’s in theloc
folder) you will define for each of your keys that you have in themystrings.d.ts
file, a key-value pair in english. If you also needde-de.js
for german, orfr-fr.js
for french or any other language, create a file with the name of that locale in theloc
folder and provide a translated version of the values of theen-us.js
file (Hello 👋 Copilot).
This should look a bit like this:
define([], function() {
return {
"saveConfiguration": "Konfiguration speichern",
"LibraryName": "Bibliotheksname",
"column": "Spalte",
"selectColumn": "Wählen Sie eine Spalte"
}
});
- Now replace all the hard coded strings like button texts, placeholders, labels, error messages etc. with
strings.<keyname>
, so for examplestrings.column
. - As a last step, you need to import the strings into the file you want to use them with something like
import * as strings from 'SvgToJsonWebPartStrings';
If you now run gulp build
and gulp serve
again to try out your masterpiece in te workbench and want to see your newly added languages, append the URL https://<your tenant>.sharepoint.com/_layouts/15/workbench.aspx
with ?locale=de-de
or any other locale that you created.
Congrats! You enabled a multi-language feature in your Web Part and also improved the logic of it. Now if you change a text, that will appear two or more times in your Web Part once it reflects this everywhere, so less manual changes!
If you want to have a look at the Web Part (which is still work in progress), you can do this here: react-svg-to-json-converter/. Let me know what you think!
Published on:
Learn moreRelated posts
Microsoft Viva: Viva Glint – Zero downtime for Viva Glint releases
Viva Glint releases previously needed several hours of downtime. With this feature, future releases will be transparent to customers, requirin...
Microsoft 365 app: Microsoft Loop – Add a Loop Workspace to your Teams Channel
Channels in Microsoft Teams streamline collaboration by bringing people, content, and apps together and helping to organize them by project or...
Microsoft Copilot (Microsoft 365): Clipchamp Copilot video creator
Create a video draft on any topic by providing a prompt. Clipchamp will create a video using stock video and music with an AI-generated voiceo...
New deployments of Microsoft 365 desktop client apps to include new Outlook
Microsoft 365 desktop client apps’ new deployments will now include new Outlook. Rollout starts late February 2025, with completion by e...
Microsoft 365 (Office) apps: The “Tags” feature will retire
The “Tags” feature in Microsoft 365 apps will be retired between January 6 and January 10, 2025. Users can use the “Favorite...
Microsoft 365 admin center: Enhancements to Copilot administration page
The Microsoft 365 admin center’s Copilot page will be updated with an enhanced Overview section and a new Health section. Rollout starts...
The Confusing Renaming of Microsoft 365 Copilot
Microsoft loves branding exercise. At least, that can be the only reason why the Microsoft 365 Copilot rename is happening. I can think of no ...
Power Platform & M365 Dev Community Call – December 19th, 2024 – Screenshot Summary
Call Highlights  SharePoint Quicklinks: Primary PnP Website: https://aka.ms/m365pnp Documentation & Guidance SharePoint Dev Videos Issues...