You may use below steps to achieve language translation for custom form which is used in SharePoint multilingual site.
Create List named as: Translations

Above list contains information of translation for different language. I have used language pack Hindi for
Language Code: 1081 for SharePoint Site.
Columns detail for Translation list:
Title: Label code text. You can compare text by Title column to assign value +
TextToDisplay : English Language Text
TextToDisplay2: Hindi Or Other Language Text
Assign Language Translation Value to form control as shown in below code
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/css/fabric.min.css">
<link rel="stylesheet" href="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/css/fabric.components.min.css">
<script type="text/javascript" src="https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/js/fabric.min.js"></script>
<title>Responsive Test</title>
</head>
<body>
<script type="text/javascript">
$(document).ready(function () {
LaunchResponsivePage();
if (_spPageContextInfo.currentLanguage == 1033) {
alert("User Selected Language :English == Language Code" + _spPageContextInfo.currentLanguage);
} else {
alert("User Selected Language : Hindi == Language Code" + _spPageContextInfo.currentLanguage);
}
/********************************GEt Value from Translation List and Set Value to Controls Code Start ****************************************/
var listName = "Translations";
var url = _spPageContextInfo.webAbsoluteUrl;
var condition = "$select=Title,TextToDisplay,TextToDisplay2'";
getListItems(listName, url, condition, function (data) {
var items = data.d.results;
for (var i = 0; i < items.length; i++) {
if (_spPageContextInfo.currentLanguage == 1033)
{
if (items[i].Title == "Name") { $('#lname').html(items[i].TextToDisplay);}
if (items[i].Title == "City") { $('#lcity').html(items[i].TextToDisplay);}
if (items[i].Title == "Choose a programming language") { $('#lchooseprogram').html(items[i].TextToDisplay);}
if (items[i].Title == "Send me promotional emails from Microsoft") { $('#lpromotional').html(items[i].TextToDisplay);}
if (items[i].Title == "Male") { $('#lmale').html(items[i].TextToDisplay);}
if (items[i].Title == "Female") { $('#lfemale').html(items[i].TextToDisplay);}
}
else
{
if (items[i].Title == "Name") { $('#lname').html(items[i].TextToDisplay2);}
if (items[i].Title == "City") { $('#lcity').html(items[i].TextToDisplay2);}
if (items[i].Title == "Choose a programming language") { $('#lchooseprogram').html(items[i].TextToDisplay2);}
if (items[i].Title == "Send me promotional emails from Microsoft") { $('#lpromotional').html(items[i].TextToDisplay2);}
if (items[i].Title == "Male") { $('#lmale').html(items[i].TextToDisplay2);}
if (items[i].Title == "Female") { $('#lfemale').html(items[i].TextToDisplay2);}
}
}
}, function (data) {
alert("Ooops, an error occured. Please try again");
});
/********************************GEt Value from Translation List and Set Value to Controls Code End ****************************************/
});
</script>
<div id="ResponsiveTestDiv">
<div class="ms-Grid">
<div class="ms-Grid-row">
<div class="ms-Grid-col ms-u-sm12">
<div class="ms-fontSize-xl"> SharePoint Language Translation Form </div>
</div>
</div>
<div class="ms-Grid-row">
<div class="ms-Grid-col ms-u-sm12">
<div class="ms-TextField">
<label id="lname" class="ms-Label is-required">Name</label>
<input id="txtName" class="ms-TextField-field is-required" type="text" value="" placeholder=""> </div>
</div>
</div>
<div class="ms-Grid-row">
<div class="ms-Grid-col ms-u-sm12">
<div class="ms-TextField">
<label id="lcity" class="ms-Label">City</label>
<input id="txtCity" class="ms-TextField-field" type="text" value="" placeholder=""> </div>
</div>
</div>
<div class="ms-Grid-row">
<div class="ms-Grid-col ms-u-sm12">
<div class="ms-Dropdown" tabindex="0">
<label class="ms-Label" id="lchooseprogram">Choose a programming language</label>
<i class="ms-Dropdown-caretDown ms-Icon ms-Icon--ChevronDown"></i>
<select id="dropdownProg" class="ms-Dropdown-select">
<option>Choose a programming language</option>
<option>Javascript</option>
<option>C#</option>
<option>F#</option>
<option>Python</option>
<option>Other</option>
</select>
</div>
</div>
</div>
<div class="ms-ChoiceFieldGroup" id="choicefieldgroup" role="radiogroup">
<div class="ms-ChoiceFieldGroup-title">
<label class="ms-Label is-required" id="lgender">Gender</label>
</div>
<ul class="ms-ChoiceFieldGroup-list">
<li class="ms-RadioButton">
<input tabindex="-1" type="radio" class="ms-RadioButton-input">
<label role="radio" class="ms-RadioButton-field" tabindex="0" aria-checked="false" name="choicefieldgroup">
<span class="ms-Label">Option 1</span>
</label>
</li>
<li class="ms-RadioButton">
<input tabindex="-1" type="radio" class="ms-RadioButton-input">
<label role="radio" class="ms-RadioButton-field" tabindex="0" aria-checked="false" name="choicefieldgroup">
<span class="ms-Label">Option 2</span>
</label>
</li>
</ul>
</div>
<div class="ms-CheckBox">
<input tabindex="-1" type="checkbox" class="ms-CheckBox-input">
<label role="checkbox" class="ms-CheckBox-field" tabindex="0" name="checkboxa">
<span class="ms-Label" id="lpromotional">Send me promotional emails from Microsoft</span>
</label>
</div>
<div class="ms-Grid-row">
<div class="ms-Grid-col ms-u-sm6">
<button type="button" id="buttonSave" class="ms-Button ms-Button--primary">
<span class="ms-Button-label">Save</span>
</button>
<button id="buttonCancel" type="button" class="ms-Button">
<span class="ms-Button-label">Cancel</span>
</button>
</div>
</div>
</div>
</div>
</body>
<script>
function LaunchResponsivePage() {
MakeResponsive();
InitializeComponents();
AddEventHandlers();
}
// READ operation
// listName: The name of the list you want to get items from
// siteurl: The url of the site that the list is in.
// success: The function to execute if the call is sucesfull
// failure: The function to execute if the call fails
function getListItems(listName, siteurl, condition, success, failure) {
$.ajax({
url: siteurl + "/_api/web/lists/getbytitle('" + listName + "')/items?" + condition,
method: "GET",
async: false,
headers: {
"Accept": "application/json; odata=verbose"
},
success: function (data) {
success(data);
},
error: function (data) {
failure(data);
}
});
}
function MakeResponsive() {
$("#s4-ribbonrow").hide(); //hide the ribbon row
$("#s4-workspace").children().hide(); //hide all elements in workspace
var div = $("#ResponsiveTestDiv"); //move the div to make it visible
$("#s4-workspace").append(div); //add the div after s4-workspace
}
function InitializeComponents() {
var TextFieldElements = document.querySelectorAll(".ms-TextField");
for (var i = 0; i < TextFieldElements.length; i++) {
new fabric['TextField'](TextFieldElements[i]);
}
var ChoiceFieldGroupElements = document.querySelectorAll(".ms-ChoiceFieldGroup");
for (var i = 0; i < ChoiceFieldGroupElements.length; i++) {
new fabric['ChoiceFieldGroup'](ChoiceFieldGroupElements[i]);
}
var CheckBoxElements = document.querySelectorAll(".ms-CheckBox");
for (var i = 0; i < CheckBoxElements.length; i++) {
new fabric['CheckBox'](CheckBoxElements[i]);
}
var DropdownHTMLElements = document.querySelectorAll('.ms-Dropdown');
for (var i = 0; i < DropdownHTMLElements.length; ++i) {
var Dropdown = new fabric['Dropdown'](DropdownHTMLElements[i]);
}
}
function AddEventHandlers() {
$("#buttonSave").click(function () {
var output = "Hello " + $("#txtName").val();
alert(output);
return false;
});
$("#buttonCancel").click(function () {
alert("Cancelled");
return false
});
}
</script>
</html>
Once we implement above code to form it will appear as below for Hindi and English language site.
Form in Hindi Language Site

Form in English Language Site

Like this:
Like Loading...