设置语言不起作用 select2
Set language not working select2
<select data-placeholder="Select or type" data-minlength="2" multiple = "multiple" name='arrAval' id='listAval' class="js-basic-multiple form-control" required>
问题来了:
正如文档所说,我应该能够为这个组件设置语言:
$(".js-basic-multiple").select2({
language: "language-wanted"
});
无论我设置哪种语言,它都会返回 "no results found"。只是要清楚,如 https://select2.github.io/examples.html#matcher 它 returns "No se encontraron resultados" for 'language:"es"'
<script src="libs/select2-4.0.2-rc.1/dist/js/i18n/<here-goes-language>.js"></script>
如Keving Brown所说,上面的包含丢失了。作为问题中引用的示例,西班牙语文件为 "es.js"
在select2插件后添加这样的脚本
$.fn.select2.amd.define('select2/i18n/ru',[],function () {
// Russian
return {
errorLoading: function () {
return 'Результат не может быть загружен.';
},
inputTooLong: function (args) {
var overChars = args.input.length - args.maximum;
var message = 'Пожалуйста, удалите ' + overChars + ' символ';
if (overChars >= 2 && overChars <= 4) {
message += 'а';
} else if (overChars >= 5) {
message += 'ов';
}
return message;
},
inputTooShort: function (args) {
var remainingChars = args.minimum - args.input.length;
var message = 'Пожалуйста, введите ' + remainingChars + ' или более символов';
return message;
},
loadingMore: function () {
return 'Загружаем ещё ресурсы…';
},
maximumSelected: function (args) {
var message = 'Вы можете выбрать ' + args.maximum + ' элемент';
if (args.maximum >= 2 && args.maximum <= 4) {
message += 'а';
} else if (args.maximum >= 5) {
message += 'ов';
}
return message;
},
noResults: function () {
return 'Ничего не найдено';
},
searching: function () {
return 'Поиск…';
}
};
});
设置选项
$(".js-basic-multiple").select2({
language: "ru"
});
CDN 脚本:
<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/i18n/[culture-name].js"></script>
如果你使用 Webpack,你可以像这样设置默认语言(例如法语):
require('select2');
$.fn.select2.amd.define('select2/i18n/fr',[],require("select2/src/js/select2/i18n/fr"));
除了@SummerRain 的回答,如果你已经将语言文件加载到你的页面,你可以使用下面的方式为所有 select2 设置默认语言,而不是一个一个地设置。
$.fn.select2.defaults.set("language", $.fn.select2.amd.require("select2/i18n/fr"));
select2 使用 amd 来定义其依赖项,如您在 $.fn.select2.amd 中所见。
“select2/i18n/fr”是法语语言定义的 amd 模块名称。
这是法语翻译的 cdn :
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/i18n/fr.js"></script>
<select data-placeholder="Select or type" data-minlength="2" multiple = "multiple" name='arrAval' id='listAval' class="js-basic-multiple form-control" required>
问题来了:
正如文档所说,我应该能够为这个组件设置语言:
$(".js-basic-multiple").select2({
language: "language-wanted"
});
无论我设置哪种语言,它都会返回 "no results found"。只是要清楚,如 https://select2.github.io/examples.html#matcher 它 returns "No se encontraron resultados" for 'language:"es"'
<script src="libs/select2-4.0.2-rc.1/dist/js/i18n/<here-goes-language>.js"></script>
如Keving Brown所说,上面的包含丢失了。作为问题中引用的示例,西班牙语文件为 "es.js"
在select2插件后添加这样的脚本
$.fn.select2.amd.define('select2/i18n/ru',[],function () {
// Russian
return {
errorLoading: function () {
return 'Результат не может быть загружен.';
},
inputTooLong: function (args) {
var overChars = args.input.length - args.maximum;
var message = 'Пожалуйста, удалите ' + overChars + ' символ';
if (overChars >= 2 && overChars <= 4) {
message += 'а';
} else if (overChars >= 5) {
message += 'ов';
}
return message;
},
inputTooShort: function (args) {
var remainingChars = args.minimum - args.input.length;
var message = 'Пожалуйста, введите ' + remainingChars + ' или более символов';
return message;
},
loadingMore: function () {
return 'Загружаем ещё ресурсы…';
},
maximumSelected: function (args) {
var message = 'Вы можете выбрать ' + args.maximum + ' элемент';
if (args.maximum >= 2 && args.maximum <= 4) {
message += 'а';
} else if (args.maximum >= 5) {
message += 'ов';
}
return message;
},
noResults: function () {
return 'Ничего не найдено';
},
searching: function () {
return 'Поиск…';
}
};
});
设置选项
$(".js-basic-multiple").select2({
language: "ru"
});
CDN 脚本:
<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/i18n/[culture-name].js"></script>
如果你使用 Webpack,你可以像这样设置默认语言(例如法语):
require('select2');
$.fn.select2.amd.define('select2/i18n/fr',[],require("select2/src/js/select2/i18n/fr"));
除了@SummerRain 的回答,如果你已经将语言文件加载到你的页面,你可以使用下面的方式为所有 select2 设置默认语言,而不是一个一个地设置。
$.fn.select2.defaults.set("language", $.fn.select2.amd.require("select2/i18n/fr"));
select2 使用 amd 来定义其依赖项,如您在 $.fn.select2.amd 中所见。 “select2/i18n/fr”是法语语言定义的 amd 模块名称。
这是法语翻译的 cdn :
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/i18n/fr.js"></script>