Localization
Localize and translate your forms to other languages.

Localize to another language
Set the localization
form setting to a supported language code and write your questions, descriptions, etc., in that language—everything will be automatically translated. Here's an example form in Japanese:
import { Composer } from "formsmd";
const composer = new Composer({
id: "my-form",
localization: "ja"
});
composer.opinionScale("nps", {
question: "当社の製品を友人や同僚に推薦する可能性はどの程度ありますか?",
required: true
});
Generates the following Markdown-like syntax:
#! id = my-form
#! localization = ja
nps* = OpinionScale(
| question = 当社の製品を友人や同僚に推薦する可能性はどの程度ありますか?
)
Supported language codes
The following language codes are supported:
English (default)
"en"
Arabic (please also set the dir
form setting to "rtl"
)
"ar"
Bengali
"bn"
German
"de"
Spanish
"es"
French
"fr"
Japanese
"ja"
Portuguese
"pt"
Mandarin Chinese
"zh"
Dynamic translations
Use the handy translate()
function to define all of the translation strings as you create the form. Here's the function overview:
translate(localization: string, translations: object)
It takes the ISO alpha-2 language code as the first argument (localization
) and an object of translations
as the second argument. In the example below, the form will be in English or Japanese depending on the language code in the user's local storage (so user preference).
import { translate, Composer, Formsmd } from "formsmd";
function getFeedbackFormTemplate(localization) {
// Pass the localization as a form setting
const composer = new Composer({
id: "my-form",
localization: localization
});
// Define the translations in the opinion scale function
composer.opinionScale("nps", {
question: translate(localization, {
en: "How likely are you to recommend our company's products to friends and colleagues?",
ja: "当社の製品を友人や同僚に推薦する可能性はどの程度ありますか?"
}),
required: true
});
return composer.template;
}
// Pass the localization from local storage
const formsmd = new Formsmd(
getFeedbackFormTemplate(localStorage.getItem("localization")),
document.getElementById("my-form-container"),
{}
);
formsmd.init();


Adding support for a new language
In order to add support for a new language, the language needs to be added to the translations
object in the src/translations.js
file. The key for this entry would be the language code, and the value would be a JSON object containing translations required for creating the forms.
Once this entry is in place, the language would be supported after the project is rebuilt using npm run build
.
Last updated
Was this helpful?