使用 Jquery/JavaScript 构建翻译功能?
use Jquery/JavaScript to build translator function?
我目前正在使用 Dreamweaver,我正在尝试构建一个简单的翻译器功能。我有一个包含多个选项的下拉列表(每种语言由专门的 id 指定),我希望用户 select 选择的语言并翻译所选的 HTML 字符串。到目前为止,我已经尝试了所有方法,但我似乎无法让它发挥作用,我认为这是最简单的方法。任何想法或编辑都会有很大帮助。 p.s。我完全是初学者
JQuery:
$("#French").click(function(){
$("#AppartmentB").replaceWith("maison");
});
HTML:
<select name="selectmenu" id="selectmenu">
<option value="option1" id="English">English</option>
<option value="option2" id="French">French</option>
</select>
<div data-role="page" id="AppartmentPage" class="page">
<h1 class="TopText" align="center" id="AppartmentT">Appartment</h1>
<h1 class="BotText" align="center" id="AppartmentB">Appartment</h1>
</div>
您正在替换整个匹配的标签而不是其内容,并且您无法监听 select 选项上的点击事件。
尝试监听 select 元素的 change
事件,并将语言用作选项值。
HTML:
<select name="selectmenu" id="selectmenu">
<option value="english">English</option>
<option value="french">French</option>
</select>
JS:
$("#selectmenu").on('change', function() {
var chosenLanguage = $(this).val();
switch (chosenLanguage) {
case 'french':
$('#AppartmentB').text('Maison');
break;
case 'english':
$('#AppartmentB').text('Appartment');
break;
}
});
在此处查看完整的工作示例:https://jsfiddle.net/r76hLLte/
我整理了一个基本示例。本质上,JS 有一个翻译数据库。我只放入了一个带有 1 个键的项目,text
。 JS 监听语言 select 下拉菜单的任何更改。
这基本上就是许多本地化库的工作原理。如果您想实现更强大的功能,请查看 jquery-localize。
// Translation database
var translations = {
'en': {
'text': 'Apartment'
},
'fr': {
'text': 'Maison'
}
}
// Li
$("#languageSelect").change(function() {
var str = '';
$("#languageSelect option:selected").each(function() {
var langCode = $(this).val();
str += translations[langCode]['text'];
});
$("#translatedText").text(str);
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="languageSelect">
<option value="en" selected="selected">English</option>
<option value="fr">French</option>
</select>
<div data-role="page" id="AppartmentPage" class="page">
<h1 id="translatedText">Apartment</h1>
</div>
我目前正在使用 Dreamweaver,我正在尝试构建一个简单的翻译器功能。我有一个包含多个选项的下拉列表(每种语言由专门的 id 指定),我希望用户 select 选择的语言并翻译所选的 HTML 字符串。到目前为止,我已经尝试了所有方法,但我似乎无法让它发挥作用,我认为这是最简单的方法。任何想法或编辑都会有很大帮助。 p.s。我完全是初学者
JQuery:
$("#French").click(function(){
$("#AppartmentB").replaceWith("maison");
});
HTML:
<select name="selectmenu" id="selectmenu">
<option value="option1" id="English">English</option>
<option value="option2" id="French">French</option>
</select>
<div data-role="page" id="AppartmentPage" class="page">
<h1 class="TopText" align="center" id="AppartmentT">Appartment</h1>
<h1 class="BotText" align="center" id="AppartmentB">Appartment</h1>
</div>
您正在替换整个匹配的标签而不是其内容,并且您无法监听 select 选项上的点击事件。
尝试监听 select 元素的 change
事件,并将语言用作选项值。
HTML:
<select name="selectmenu" id="selectmenu">
<option value="english">English</option>
<option value="french">French</option>
</select>
JS:
$("#selectmenu").on('change', function() {
var chosenLanguage = $(this).val();
switch (chosenLanguage) {
case 'french':
$('#AppartmentB').text('Maison');
break;
case 'english':
$('#AppartmentB').text('Appartment');
break;
}
});
在此处查看完整的工作示例:https://jsfiddle.net/r76hLLte/
我整理了一个基本示例。本质上,JS 有一个翻译数据库。我只放入了一个带有 1 个键的项目,text
。 JS 监听语言 select 下拉菜单的任何更改。
这基本上就是许多本地化库的工作原理。如果您想实现更强大的功能,请查看 jquery-localize。
// Translation database
var translations = {
'en': {
'text': 'Apartment'
},
'fr': {
'text': 'Maison'
}
}
// Li
$("#languageSelect").change(function() {
var str = '';
$("#languageSelect option:selected").each(function() {
var langCode = $(this).val();
str += translations[langCode]['text'];
});
$("#translatedText").text(str);
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="languageSelect">
<option value="en" selected="selected">English</option>
<option value="fr">French</option>
</select>
<div data-role="page" id="AppartmentPage" class="page">
<h1 id="translatedText">Apartment</h1>
</div>