我想在多语言(en,ru,lt)站点中使用lightbox,所以我需要翻译lightbox。要为lightbox设置正确的参数,我需要读取定义在以下位置的语言:
<body>
<div id="main">
<div id="logo">
<a href="/en/" ...因此,如果我使用的是另一种语言,徽标链接将是该语言代码。我有这个.js代码:
$(function() {
$('.object').lightBox({
txtOf: 'translation',
txtImage: 'another_translation'
});
});我应该如何修改JS来进行检查?
发布于 2011-02-17 21:50:10
$(function() {
// Define language map
var languageMap = {
en: {txtOf: 'Something', txtImage: 'This is an image'},
ru: {txtOf: 'что-то', txtImage: 'его является изображение'}
};
// Detect language from the logo images href attribute
var re = new RegExp('/([^/]*)/*');
var href = $('#logo a').eq(0).attr('href');
var lang = 'en'; //English by default
var match = re.exec(href);
if (match !== null) {
lang = match[1];
}
// initialize lightBox
$('.object').lightBox({
txtOf: languageMap[lang].txtOf,
txtImage: languageMap[lang].txtImage
});
})请参阅http://jsfiddle.net/ArtBIT/JzPZP/以获取实时示例。
此外,http://jsfiddle.net/ArtBIT/JzPZP/1还将向您展示俄语版本
发布于 2012-07-13 16:51:22
我修改了lightbox.js的get控件和它的选项:
//(function () {
// var $, Lightbox, LightboxOptions;
// $ = jQuery;
var Lightbox, LightboxOptions;
LightboxOptions = (function () {
[...]
})();
Lightbox = (function () {
[...]
})();
// $(function () {
// var lightbox, options;
// options = new LightboxOptions;
// return lightbox = new Lightbox(options);
// });
//}).call(this);另一方面,我必须在我想要的每个页面中调用一个小代码片段,而不是仅仅在头部添加de library:
$(function () {
var lightbox, options;
options = new LightboxOptions;
return lightbox = new Lightbox(options);
});但现在,我可以在不做额外更改的情况下以编程方式更改lightbox选项: ASP.net:
$(function () {
var lightbox, options;
options = new LightboxOptions;
options.labelImage = '<%=this.GetLocalResourceObject("Lightbox.options.labelImage").ToString() %>';
options.labelOf = '<%=this.GetLocalResourceObject("Lightbox.options.labelOf").ToString() %>';
return lightbox = new Lightbox(options);
});PHP:
$(function () {
var lightbox, options;
options = new LightboxOptions;
options.labelImage = '<?php echo $dictionary["Lightbox_options_labelOf"]; ?>';
options.labelOf = '<?php echo $dictionary["Lightbox.options.labelOf"]; ?>';
return lightbox = new Lightbox(options);
});https://stackoverflow.com/questions/5029684
复制相似问题