admin管理员组文章数量:1401849
I have used google translate element with code:
<div id="google_translate_element"></div>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en'
}, 'google_translate_element');
}
<script type="text/javascript" src="//translate.google/translate_a/element.js?cb=googleTranslateElementInit">
This gives me standard language selector dropdown with english labels.
How can I customize the language label to be in that language itself? The result that I want is:
<select>
<option selected="selected" value="">select</option>
<option value="af">Afrikaans</option>
<option value="sq">shqip</option>
<option dir="ltr" value="ar">العربية</option>
<option value="be">Беларуская</option>
<option value="bg">български</option>
<option value="ca">català</option>
<option value="zh-CN">中文(简体)</option>
<option value="zh-TW">中文(繁體)</option>
<option value="hr">Hrvatska</option>
<option value="cs">česky</option>
<option value="da">Dansk</option>
<option value="nl">Nederlands</option>
<option value="et">Eesti</option>
<option value="tl">Filipino</option>
<option value="fi">suomi</option>
<option value="fr">Français</option>
<option value="gl">Galego</option>
<option value="de">Deutsch</option>
<option value="el">Ελληνικά</option>
<option dir="ltr" value="iw">עברית</option>
<option value="hi">हिन्दी</option>
<option value="hu">magyar</option>
<option value="is">Íslenska</option>
<option value="id">Indonesia</option>
<option value="ga">Gaeilge</option>
<option value="it">Italiano</option>
<option value="ja">日本語</option>
<option value="ko">한국어</option>
....
</select>
UPDATE I though of replacing the innerHTML of the google-generated select
var googleDropdown = $("#google_translate_element .goog-te-bo");
var customDropdown = $("#custom-translate");
googleDropdown.innerHTML = customDropdown.innerHTML;
The custom select:
<select id="custom-translate" style="display:none;">
<option value="">Select Language</option>
<option value="af">Afrikaans</option>
<option value="sq">Albanian</option>
<option value="am">Amharic</option>
<option value="ar">Arabic (العربية)</option>
...
</select>
This works when I try it on the console when everything is loaded, but when I add this code in file, the problem is googleTranslateElementInit executes in the end.
So how do I make my code execute after the google translate is done?
I have used google translate element with code:
<div id="google_translate_element"></div>
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en'
}, 'google_translate_element');
}
<script type="text/javascript" src="//translate.google./translate_a/element.js?cb=googleTranslateElementInit">
This gives me standard language selector dropdown with english labels.
How can I customize the language label to be in that language itself? The result that I want is:
<select>
<option selected="selected" value="">select</option>
<option value="af">Afrikaans</option>
<option value="sq">shqip</option>
<option dir="ltr" value="ar">العربية</option>
<option value="be">Беларуская</option>
<option value="bg">български</option>
<option value="ca">català</option>
<option value="zh-CN">中文(简体)</option>
<option value="zh-TW">中文(繁體)</option>
<option value="hr">Hrvatska</option>
<option value="cs">česky</option>
<option value="da">Dansk</option>
<option value="nl">Nederlands</option>
<option value="et">Eesti</option>
<option value="tl">Filipino</option>
<option value="fi">suomi</option>
<option value="fr">Français</option>
<option value="gl">Galego</option>
<option value="de">Deutsch</option>
<option value="el">Ελληνικά</option>
<option dir="ltr" value="iw">עברית</option>
<option value="hi">हिन्दी</option>
<option value="hu">magyar</option>
<option value="is">Íslenska</option>
<option value="id">Indonesia</option>
<option value="ga">Gaeilge</option>
<option value="it">Italiano</option>
<option value="ja">日本語</option>
<option value="ko">한국어</option>
....
</select>
UPDATE I though of replacing the innerHTML of the google-generated select
var googleDropdown = $("#google_translate_element .goog-te-bo");
var customDropdown = $("#custom-translate");
googleDropdown.innerHTML = customDropdown.innerHTML;
The custom select:
<select id="custom-translate" style="display:none;">
<option value="">Select Language</option>
<option value="af">Afrikaans</option>
<option value="sq">Albanian</option>
<option value="am">Amharic</option>
<option value="ar">Arabic (العربية)</option>
...
</select>
This works when I try it on the console when everything is loaded, but when I add this code in file, the problem is googleTranslateElementInit executes in the end.
So how do I make my code execute after the google translate is done?
Share Improve this question edited Jan 13, 2021 at 14:51 K Shaikh asked Jan 13, 2021 at 12:50 K ShaikhK Shaikh 4017 silver badges13 bronze badges3 Answers
Reset to default 4Here is my solution
I struggled with this myself for a long time. I ended up having to learn a bit of JQuery to access the iframe and edit the text in the dropdown. Once I was able to access the text element I wrote a massive switch statement to change the text of the English version of the language into its native language. I used either google translate or the apps script LanguageApp to translate the language names.
$("#google_translate_element").on("click", function () {
var languages = $("iframe").contents().find(".text").get();
console.log(languages);
for (i = 0; i < languages.length; ++i) {
var languageElem = languages[i];
var Lang = languageElem.textContent;
console.log(Lang);
var nativeLang = getNativeLang(Lang);
if (!nativeLang) {
nativeLang = Lang;
}
languageElem.textContent = nativeLang;
console.log(nativeLang);
}
});
function getNativeLang(Lang) {
switch (Lang) {
case "Spanish":
return "Español";
case "Haitian Creole":
return "Kreyòl Ayisyen";
case "Portuguese":
return "Português";
case "Chinese (Simplified)":
return "中文";
case "Chinese (Traditional)":
return "中文";
case "Afrikaans":
return "Afrikaans";
case "Albanian":
return "Shqiptar";
case "Amharic":
return "አማርኛ";
case "Arabic":
return "عربى";
case "Armenian":
return "Հայերեն";
case "Azerbaijani":
return "AzəRbaycan";
case "Basque":
return "Euskal";
case "Belarusian":
return "Беларус";
case "Bengali":
return "বাংলা";
case "Bosnian":
return "Bosanski";
case "Bulgarian":
return "Български";
case "Catalan":
return "Català";
case "Cebuano":
return "Cebuano";
case "Corsican":
return "Corsu";
case "Croatian":
return "Hrvatski";
case "Czech":
return "Čeština";
case "Danish":
return "Dansk";
case "Dutch":
return "Nederlands";
case "Esperanto":
return "Esperanto";
case "Estonian":
return "Eestlane";
case "Filipino":
return "Pilipino";
case "Finnish":
return "Suomalainen";
case "French":
return "Français";
case "Frisian":
return "Frysk";
case "Galician":
return "Galego";
case "Georgian":
return "ᲥᲐᲠᲗᲣᲚᲘ";
case "German":
return "Deutsche";
case "Greek":
return "Ελληνικά";
case "Gujarati":
return "ગુજરાતી";
case "Hausa":
return "Hausa";
case "Hawaiian":
return "ʻŌlelo Hawaiʻi";
case "Hebrew":
return "עברית";
case "Hindi":
return "हिन्दी";
case "Hmong":
return "Hmong";
case "Hungarian":
return "Magyar";
case "Icelandic":
return "Íslensku";
case "Igbo":
return "Ndi Igbo";
case "Indonesian":
return "Bahasa Indonesia";
case "Irish":
return "Gaeilge";
case "Italian":
return "Italiano";
case "Japanese":
return "日本語";
case "Javanese":
return "Basa Jawa";
case "Kannada":
return "ಕನ್ನಡ";
case "Kazakh":
return "Қазақ";
case "Khmer":
return "ខ្មែរ";
case "Korean":
return "한국어";
case "Kinyarwanda":
return "Ikinyarwanda";
case "Kurdish (Kurmanji)":
return "Kurdî";
case "Kyrgyz":
return "Кыргызча";
case "Lao":
return "ລາວ";
case "Latin":
return "Latine";
case "Latvian":
return "Latvietis";
case "Lithuanian":
return "Lietuvis";
case "Luxembourgish":
return "Lëtzebuergesch";
case "Macedonian":
return "Македонски";
case "Malagasy":
return "Malagasy";
case "Malay":
return "Bahasa Melayu";
case "Malayalam":
return "മലയാളം";
case "Maltese":
return "Malti";
case "Maori":
return "Maori";
case "Marathi":
return "मराठी";
case "Mongolian":
return "Монгол";
case "Myanmar (Burmese)":
return "မြန်မာ";
case "Nepali":
return "नेपाली";
case "Norwegian":
return "Norsk";
case "Nyanja":
return "Nyanja";
case "Odia (Oriya)":
return "ଓଡିଆ";
case "Pashto":
return "پښتو";
case "Persian":
return "فارسی";
case "Polish":
return "Polskie";
case "Punjabi":
return "ਪੰਜਾਬੀ";
case "Romanian":
return "Română";
case "Russian":
return "Русский";
case "Samoan":
return "Sāmoa";
case "Serbian":
return "Српски";
case "Sesotho":
return "Sesotho";
case "Shona":
return "Shona";
case "Scots Gaelic":
return "Gàidhlig";
case "Sindhi":
return "سنڌي";
case "Sinhala":
return "සිංහල";
case "Slovak":
return "Slovenský";
case "Slovenian":
return "Slovenščina";
case "Somali":
return "Soomaali";
case "Sundanese":
return "Urang Sunda";
case "Swahili":
return "Kiswahili";
case "Swedish":
return "Svenska";
case "Tagalog":
return "Tagalog";
case "Tajik":
return "Точик";
case "Tamil":
return "தமிழ்";
case "Telugu":
return "తెలుగు";
case "Thai":
return "ไทย";
case "Turkish":
return "Türk";
case "Turkmen":
return "türkmençe";
case "Ukrainian":
return "Українська";
case "Urdu":
return "اردو";
case "Uyghur":
return "ئۇيغۇر تىلى";
case "Uzbek":
return "O'Zbek";
case "Vietnamese":
return "TiếNg ViệT";
case "Welsh":
return "Cymraeg";
case "Xhosa":
return "Isixhosa";
case "Yiddish":
return "יידיש";
case "Yoruba":
return "Yoruba";
case "Zulu":
return "Isizulu";
}
}
@margaret thank you for your response.
But I ended up using a function which sets the labels after the element is loaded. Called that function onclick of the drowdown:
<div id="google_translate_element" onclick="foo();">
function foo(){
$("option[value='ar']").text("عربى (Arabic)");
$("option[value='fr']").text("Français (French)");
//.... so on
}
Google Translate Language HTML Dropdown with native language labels
<select id="tl" class="form-control" name="tl">
<option id="languageStart" selected="selected" value="">select</option>
<option value="af">Afrikaans</option>
<option value="sq">shqip</option>
<option value="am">አማርኛ</option>
<option dir="ltr" value="ar">العربية</option>
<option value="hy">Հայերեն</option>
<option value="as">አማርኛ</option>
<option value="ay">aymar aru</option>
<option value="az">Azərbaycan</option>
<option value="bm">bamanankan</option>
<option value="eu">euskara</option>
<option value="be">Беларуская</option>
<option value="bn">বাংলা</option>
<option value="bho">भोजपुरी</option>
<option value="bs">bosanski</option>
<option value="bg">български</option>
<option value="ca">català</option>
<option value="ceb">Cebuano</option>
<option value="ny">njændʒə</option>
<option value="zh-CN">中文(简体)</option>
<option value="zh-TW">中文(繁體)</option>
<option value="co">Corsu</option>
<option value="hr">Hrvatska</option>
<option value="cs">česky</option>
<option value="da">Dansk</option>
<option value="dv">ދިވެހި</option>
<option value="doi">डोगरी</option>
<option value="nl">Nederlands</option>
<option value="eo">Esperanto</option>
<option value="et">Eesti</option>
<option value="ee">Eʋegbe</option>
<option value="tl">Filipino</option>
<option value="fi">suomi</option>
<option value="fr">Français</option>
<option value="fy">Frysk</option>
<option value="gl">Galego</option>
<option value="ka">ქართული</option>
<option value="de">Deutsch</option>
<option value="el">Ελληνικά</option>
<option value="gn">guarani</option>
<option value="gu">ગુજરાતી</option>
<option value="ht">Kreyòl ayisyen</option>
<option value="ha">Hausa</option>
<option value="haw">ʻŌlelo Hawaiʻi</option>
<option dir="ltr" value="iw">עברית</option>
<option value="hi">हिन्दी</option>
<option value="hmn">Hmoob</option>
<option value="hu">magyar</option>
<option value="is">Íslenska</option>
<option value="ig">Igbo</option>
<option value="ilo">Ilocano</option>
<option value="id">Indonesia</option>
<option value="ga">Gaeilge</option>
<option value="it">Italiano</option>
<option value="ja">日本語</option>
<option value="jw">basa jawa</option>
<option value="kn">ಕನ್ನಡ</option>
<option value="kk">қазақ</option>
<option value="km">ខ្មែរ</option>
<option value="rw">Kinyarwanda</option>
<option value="gom">कोंकणी</option>
<option value="ko">한국어</option>
<option value="kri">Krio</option>
<option value="ku">Kurdî</option>
<option value="ckb">کوردی</option>
<option value="ky">Кыргызча</option>
<option value="lo">ພາສາລາວ</option>
<option value="la">Latinus</option>
<option value="lv">latviešu valoda</option>
<option value="ln">Lingala</option>
<option value="lt">Lietuvių</option>
<option value="lg">Oluganda</option>
<option value="lb">lëtzebuergesch</option>
<option value="mk">Македонски</option>
<option value="mai">मैथिली</option>
<option value="mg">Malagasy</option>
<option value="ms">Bahasa Melayu</option>
<option value="ml">മലയാളം</option>
<option value="mt">Malti</option>
<option value="mi">Maori</option>
<option value="mr">मराठी</option>
<option value="mni-Mtei">ꯃꯩꯇꯩꯂꯣꯟ</option>
<option value="lus">Mizo tawng</option>
<option value="mn">Монгол</option>
<option value="my">မြန်မာ</option>
<option value="ne">नेपाली</option>
<option value="no">norsk</option>
<option value="or">ଓଡିଆ</option>
<option value="om">Afaan Oromoo</option>
<option value="ps">پښتو</option>
<option dir="ltr" value="fa">فارسی</option>
<option value="pl">Polski</option>
<option value="pt">Português</option>
<option value="pa">ਪੰਜਾਬੀ</option>
<option value="qu">Runasimi</option>
<option value="ro">Română</option>
<option value="ru">Русский</option>
<option value="sm">Samoa</option>
<option value="sa">संस्कृत</option>
<option value="gd">Gàidhlig na h-Alba</option>
<option value="nso">Sepedi</option>
<option value="sr">српски</option>
<option value="st">Sesotho</option>
<option value="sn">Shona</option>
<option value="sd">سنڌي(सिन्धी)</option>
<option value="si">සිංහල</option>
<option value="sk">slovenčina</option>
<option value="sl">slovenščina</option>
<option value="so">Soomaali</option>
<option value="es">Español</option>
<option value="su">basa Sunda</option>
<option value="sw">Kiswahili</option>
<option value="sv">Svenska</option>
<option value="tg">тоҷикӣ</option>
<option value="ta">தமிழ்</option>
<option value="tt">Татар</option>
<option value="te">తెలుగు</option>
<option value="th">แบบไทย</option>
<option value="ti">ትግሪኛ</option>
<option value="ts">Tsonga</option>
<option value="tr">Türkçe</option>
<option value="tk">Türkmenler</option>
<option value="ak">Twi</option>
<option value="uk">українська</option>
<option value="ur">اردو</option>
<option value="ug">ئۇيغۇر</option>
<option value="uz">o'zbek</option>
<option value="vi">Tiếng Việt</option>
<option value="cy">Cymraeg</option>
<option value="xh">isiXhosa</option>
<option dir="ltr" value="yi">ייִדיש</option>
<option value="yo">Yoruba</option>
<option value="zu">Zulu</option>
</select>
版权声明:本文标题:javascript - google translate dropdown - set the language option label in that language itself - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744316953a2600311.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论