【问题标题】:JQuery datepicker language not working correctlyJQuery 日期选择器语言无法正常工作
【发布时间】:2018-09-16 05:05:30
【问题描述】:

我在我的项目中使用 jquery datepickers,并且需要使用本地语言。

我需要通过gon.locale(rails stuff) 从后端传递语言

这是我的 ts 代码

 const search_legs_1_datepicker = $("#search_legs_1_datepicker");
var leg_1_datepicker = $("#search_legs_1_datepicker").datepicker({

  language: gon.locale,
  classes: 'inline-picker',
  altField: '#search_legs_1_date',
  defaultDate: new Date(search_legs_1_datepicker.attr("data-defaultDate")),
  minDate: new Date(search_legs_1_datepicker.attr('data-mindate')),
  maxDate: new Date(search_legs_1_datepicker.attr('data-maxdate')),
  altFormat: 'yy-mm-dd',
  onSelect: (formattedDate, date, inst) => {
    if ($("#search_legs_1_hotel_date").length > 0) {
      $('#search_legs_0_hotel_date').datepicker().data('datepicker').update('maxDate', date);
      $('#search_legs_1_hotel_date').datepicker().data('datepicker').update('maxDate', date);
      $('#search_legs_1_hotel_date').datepicker().data('datepicker').datepicker("setDate", date);
    }
  }
})

我用控制台检查了gon.locale,得到了sv-SE,所以这是通行证。

我也尝试这样做

language:"sv-SE"

也不行。

但由于某些原因,我的日期选择器上有 en

我的问题在哪里?

【问题讨论】:

标签: javascript jquery ruby-on-rails typescript


【解决方案1】:

检查您是否有语言文件。

Datepicker 支持对其内容进行本地化以满足 不同的语言和日期格式。每个本地化都包含 在其自己的文件中,并在名称后附加语言代码,例如, jquery.ui.datepicker-fr.js 用于法语。所需的本地化文件 应包含在主日期选择器代码之后。每个本地化 文件将其选项添加到可用的本地化集和 自动将它们应用为所有实例的默认值。

http://api.jqueryui.com/datepicker/

可以在那里找到本地化文件:https://github.com/jquery/jquery-ui/tree/master/ui/i18n

【讨论】:

  • 我需要在哪里放置语言文件?
  • 报价单里写着。所需的本地化文件应包含在主日期选择器代码之后。现在我猜你有元素了。此外,我在他们的 github 中没有看到 datepicker-sv-SE.js,所以也许您应该尝试从后端获取 sv 而不是 sv-SE。您将包含的文件将是这个github.com/jquery/jquery-ui/blob/master/ui/i18n/…
  • 谢谢它的帮助。
【解决方案2】:

您需要包含语言文件,然后将默认语言设置为“sv”。

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js"></script>

Date Picker on input field: <input type="text" id="search_legs_1_datepicker" name="date1"/>



const search_legs_1_datepicker = $("#search_legs_1_datepicker");
var leg_1_datepicker = $("#search_legs_1_datepicker").datepicker({

  //language: gon.locale,
  classes: 'inline-picker',
  altField: '#search_legs_1_date',
  defaultDate: new Date(search_legs_1_datepicker.attr("data-defaultDate")),
  minDate: new Date(search_legs_1_datepicker.attr('data-mindate')),
  maxDate: new Date(search_legs_1_datepicker.attr('data-maxdate')),
  altFormat: 'yy-mm-dd',
  onSelect: (formattedDate, date, inst) => {
    if ($("#search_legs_1_hotel_date").length > 0) {
      $('#search_legs_0_hotel_date').datepicker().data('datepicker').update('maxDate', date);
      $('#search_legs_1_hotel_date').datepicker().data('datepicker').update('maxDate', date);
      $('#search_legs_1_hotel_date').datepicker().data('datepicker').datepicker("setDate", date);
    }
  }
})


$.datepicker.setDefaults($.datepicker.regional['sv']);

此文件支持所有语言 - “https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js

如果您想包含特定文件,请从此处https://github.com/jquery/jquery-ui/tree/master/ui/i18n 获取特定语言文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多