我让我的网站多语言化。因此,当单击语言按钮时,我通过jQuery更改文本。这适用于所有文本,但不适用于我在导航中用于悬停效果的链接的标题属性。
链接如下所示:
<div class="nav-container">
<!-- Navigation for Portfolio -->
<div class="nav" id="services">
<a href="#" class="thumb tr" title="Leistungen" key="menu_business"><span><img src="images/menu_icons/services.png" alt="" /></span></a>
</div>
</div>
我使用的文字,例如(有效!):
<h4 class="jobtitle tr" key="companyfield">blabla</h4>
我的功能如下:
$(document).ready(function() {
// onclick behavior
$('.lang').click( function() {
var lang = $(this).attr('id'); // obtain language id
// translate all translatable elements
$('.tr').each(function(i) {
if($(this).attr('key').indexOf("menu_") == 0) {
$(this).attr('title', aLangKeys[lang][ $(this).attr('key') ]);
} else {
$(this).text(aLangKeys[lang][ $(this).attr('key') ]);
}
});
});
});
在这里初始化用作字典的数组:
var aLangKeys = new Array();
aLangKeys['de'] = new Array();
aLangKeys['en'] = new Array();
aLangKeys['de']['menu_business'] = 'Leistungen';
aLangKeys['en']['menu_business'] = 'Business';
使用Firebug调试函数时标题为空,但我可以正确查看所有其他属性,例如href
或class
。
我尝试使用title
(&gt; = jquery 1.6),.prop
(&lt; jquery 1.6)和原生JavaScript .attr
来读/写.title
。它都不起作用。
jQuery包含我使用的是:
<!-- include jQuery library -->
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<!-- jquery tools script -->
<script type="text/javascript" src="js/jquery.tools.min.js"></script>
<!-- jqtransform script for forms -->
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.tinyscrollbar.min.js"></script>
答案 0 :(得分:1)
我认为您可以使用语言代码属性和语言选择器:
http://www.w3schools.com/tags/ref_language_codes.asp
http://api.jquery.com/lang-selector/
您可以通过CSS或Javascript / JQuery设置HTML元素的可见性,代码更少,灵活性更高,具体如下:
$('.lang').click( function() {
var lang = $(this).attr('id'); // obtain language id
// translate all translatable elements
$('div[lang]').css('display','none');
$(':lang('+lang+')').css('display','initial');
} );
使用重复的html元素(通过CSS隐藏第二语言):
<div lang="de">blabla deutch</div>
<div lang="en">blabla english</div>