如何在多语言网站中翻译JS中的单词?

时间:2015-02-21 22:58:49

标签: javascript jquery translation nopcommerce

使用的是nopCommerce,版本3.50。我的网站是多语种:俄语,英语,西班牙语。有一个显示产品图像的脚本 - magnific-popup。

因此,当您点击照片时,它会出现在一个脚本框中(如fancybox),并且有一些标题,如"正在加载..,关闭(Esc),下一个,上一个,2个中的一个"。他们总是使用英语,而不是根据网站上选定的语言。我希望它是一种被选中的语言。

怎么做?

有可能创建不同语言的字符串,为它们提供翻译并将它们放在jquery.magnific-popup.js文件中。字符串看起来像这样 - @T(" magnificpopup.right")。但是JS忽略了字符串,可能是因为它是一个单独的脚本,它不会触及这个CMS。

options: {
    enabled: false,
    arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
    preload: [0,2],
    navigateByImgClick: true,
    arrows: true,

    tPrev: 'Previous (Left arrow key)',
    tNext: '@T("magnificpopup.right")',
    tCounter: '%curr% of %total%'
}

如何在JS文件中正确设置这些字符串? 我该如何解决我的问题?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

以下是Magnific popup l18n的文档:http://dimsemenov.com/plugins/magnific-popup/documentation.html#translating

根据它,您应该在页面的JS代码中加载magnific-popup.js脚本的行。

var language = //you should get it from browser settings/cookies or server side

if(language == 'ru_RU'){

$.extend(true, $.magnificPopup.defaults, {
  tClose: 'Закрыть (Esc)', // Alt text on close button
  tLoading: 'Загрузка...', // Text that is displayed during loading. Can contain %curr% and %total% keys
//other lines 
  });

} else if (language == 'en_US'){

$.extend(true, $.magnificPopup.defaults, {
  tClose: 'Close (Esc)', // Alt text on close button
  tLoading: 'Loading...', // Text that is displayed during loading. Can contain %curr% and %total% keys
//other lines 
  });
} else if ( // other languages

答案 1 :(得分:1)

您必须在网站标题中创建一个简单对象,例如:

<script>
var mysite_lang = {
button_title: "<?php echo $lang['button_title'];?>",
box_title: "<?php echo $lang['box_title'];?>"
..etc..
};
</script>

添加你的js文件后。

现在你可以使用

options: {
    enabled: false,
    arrowMarkup: '<button title="'+mysite_lang.button_title+'" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>'};