0

我有以下问题。为了翻译一个网站,我使用了jQuery Localize插件。这工作正常。However, I want a CSS styled selectbox with flags and languages, and when a different option is selected the call to $("[data-localize]").localize("example", { language: $(this).attr('value')should be made to translate the page.

我目前正在使用这段代码,它适用于普通的非样式选择框。

<script type="text/javascript">
    $(function() {
        $('#polyglot-language-options').change(function() {
            if ($(this).attr('value') == "en") {
                $("[data-localize]").localize("example", {
                    language: $(this).attr('value')
                });
            }
            else if ($(this).attr('value') == "nl") {
                location.reload();
            }
        });
    });
</script>

但我想对其进行样式设置,所以我尝试集成“polyglot”语言切换器。但是,当前代码不起作用。

如何整合 $("[data.localize]").localize(); 这段代码中的函数:

$('#polyglotLanguageSwitcher').polyglotLanguageSwitcher({
    effect: 'fade'
});
4

1 回答 1

1

此插件(源代码)不遵循jQuery 插件设计指南。我很快发现的错误:

  • 它不允许链接,因为它不返回this
  • 它一次只适用于一个元素(不使用each()

  • 它有一个奇怪的元素层次结构。它似乎需要一个带有 id 的元素,其中包含一个form包含 a select(如在演示中)。在我看来,这样的插件应该只在语言选择元素上调用。

  • 它似乎是自动导航,想要配置页面结构。该精美框中的每个li项目都包含指向相应页面的链接。
  • 因此,它既不会触发它所在的表单,也不会触发change您想要收听的事件。

就目前而言,您不能随意使用此特定插件。如果您想修复所有错误,我祝您度过愉快的时光:-) 尽管如此,还是可以操作插件代码,让您在选择事件上注册回调(您可以在其中调用本地化插件)。否则,您将需要选择其他选择插件(或自己从头构建一个,调整现有代码)

于 2012-07-18T16:22:42.990 回答