commit
edca938fe0
@ -0,0 +1,84 @@ |
|||||||
|
<?php /* For licensing terms, see /license.txt */ |
||||||
|
// External login module : WS (for Web Services) |
||||||
|
/** |
||||||
|
* |
||||||
|
* This file is included in main/inc/local.inc.php at user login if the user |
||||||
|
* have 'ws' in his auth_source field instead of 'platform' |
||||||
|
* |
||||||
|
* Variables that can be used : |
||||||
|
* - $uData : associative array with those keys : |
||||||
|
* -username |
||||||
|
* -password |
||||||
|
* -auth_source |
||||||
|
* -active |
||||||
|
* -expiration_date |
||||||
|
* |
||||||
|
* If login succeeds, we have 2 choices : |
||||||
|
* 1. - set $loginFailed to false, |
||||||
|
* - set $_SESSION['_user']['user_id'] with the Chamilo user_id |
||||||
|
* - set $uidReset to true |
||||||
|
* - upgrade user info in Chamilo database if needed |
||||||
|
* - let the script local.inc.php continue |
||||||
|
* |
||||||
|
* 2. - set $_SESSION['_user']['user_id'] with the Chamilo user_id |
||||||
|
* - set $_SESSION['_user']['uidReset'] to true |
||||||
|
* - upgrade user info in Chamilo database if needed |
||||||
|
* - redirect to any page and let local.inc.php do the magic |
||||||
|
* |
||||||
|
* If login fails we have to redirect to index.php with the right message |
||||||
|
* Possible messages are : |
||||||
|
* - index.php?loginFailed=1&error=access_url_inactive |
||||||
|
* - index.php?loginFailed=1&error=account_expired |
||||||
|
* - index.php?loginFailed=1&error=account_inactive |
||||||
|
* - index.php?loginFailed=1&error=user_password_incorrect |
||||||
|
* - index.php?loginFailed=1&error=unrecognize_sso_origin'); |
||||||
|
* |
||||||
|
* */ |
||||||
|
|
||||||
|
use \ChamiloSession as Session; |
||||||
|
|
||||||
|
// Configure the web service URL here. e.g. http://190.1.1.19:8051/login.asmx?WSDL |
||||||
|
$wsUrl = ''; |
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/functions.inc.php'; |
||||||
|
//error_log('Entering login.ws.php'); |
||||||
|
$isValid = loginWSAuthenticate($login, $password, $wsUrl); |
||||||
|
if ($isValid !== 0) { |
||||||
|
//error_log('ws_authenticate worked'); |
||||||
|
$chamiloUser = UserManager::get_user_info($login); |
||||||
|
|
||||||
|
$loginFailed = false; |
||||||
|
$_user['user_id'] = $chamiloUser['user_id']; |
||||||
|
$_user['status'] = (isset($chamiloUser['status']) ? $chamiloUser['status'] : 5); |
||||||
|
$_user['uidReset'] = true; |
||||||
|
Session::write('_user', $_user); |
||||||
|
$uidReset = true; |
||||||
|
$logging_in = true; |
||||||
|
event_login(); |
||||||
|
//error_log('Calling event_login'); |
||||||
|
} else { |
||||||
|
//error_log('ws_authenticate error'); |
||||||
|
$loginFailed = true; |
||||||
|
$uidReset = false; |
||||||
|
if (isset($_user) && isset($_user['user_id'])) { |
||||||
|
unset($_user['user_id']); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Checks whether a user has the right to enter on the platform or not |
||||||
|
* @param $username |
||||||
|
* @param $password |
||||||
|
*/ |
||||||
|
function loginWSAuthenticate($username, $password, $wsUrl) { |
||||||
|
if (empty($username) or empty($password) or empty($wsUrl)) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
$client = new SoapClient($wsUrl); |
||||||
|
if (!$client) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
$something = $client->validaUsuarioAD(array($username, $password, 'chamilo')); |
||||||
|
error_log(print_r($something,1)); |
||||||
|
return $something->validaUsuarioADResult; |
||||||
|
} |
||||||
@ -0,0 +1,101 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* Code for Aiken import integration. |
||||||
|
* @package chamilo.exercise |
||||||
|
* @author Ronny Velasquez |
||||||
|
* @author César Perales <cesar.perales@gmail.com> Updated function names and import files for Aiken format support |
||||||
|
* @version $Id: Aiken.php 2010-03-12 12:14:25Z $ |
||||||
|
*/ |
||||||
|
/** |
||||||
|
* Code |
||||||
|
*/ |
||||||
|
// name of the language file that needs to be included |
||||||
|
$language_file = 'exercice'; |
||||||
|
|
||||||
|
// including the global Chamilo file |
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
require_once api_get_path(LIBRARY_PATH).'document.lib.php'; |
||||||
|
|
||||||
|
// including additional libraries |
||||||
|
require_once 'exercise.class.php'; |
||||||
|
require_once 'question.class.php'; |
||||||
|
require_once 'answer.class.php'; |
||||||
|
require_once 'unique_answer.class.php'; |
||||||
|
|
||||||
|
|
||||||
|
// section (for the tabs) |
||||||
|
$this_section = SECTION_COURSES; |
||||||
|
|
||||||
|
// access restriction: only teachers are allowed here |
||||||
|
if (!api_is_allowed_to_edit(null, true)) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
|
||||||
|
// the breadcrumbs |
||||||
|
$interbreadcrumb[]= array ("url"=>"exercice.php", "name"=> get_lang('Exercices')); |
||||||
|
$is_allowedToEdit = api_is_allowed_to_edit(null, true); |
||||||
|
|
||||||
|
/** |
||||||
|
* This function displays the form for import of the zip file with qti2 |
||||||
|
*/ |
||||||
|
function aiken_display_form() { |
||||||
|
$name_tools = get_lang('ImportAikenQuiz'); |
||||||
|
$form = '<div class="actions">'; |
||||||
|
$form .= '<a href="exercice.php?show=test">' . Display :: return_icon('back.png', get_lang('BackToExercisesList'),'',ICON_SIZE_MEDIUM).'</a>'; |
||||||
|
$form .= '</div>'; |
||||||
|
$form_validator = new FormValidator('aiken_upload', 'post',api_get_self()."?".api_get_cidreq(), null, array('enctype' => 'multipart/form-data') ); |
||||||
|
$form_validator->addElement('header', $name_tools); |
||||||
|
$form_validator->addElement('file', 'userFile', get_lang('DownloadFile')); |
||||||
|
$form_validator->addElement('style_submit_button', 'submit', get_lang('Send'), 'class="upload"'); |
||||||
|
$form .= $form_validator->return_form(); |
||||||
|
|
||||||
|
echo $form; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* This function will import the zip file with the respective qti2 |
||||||
|
* @param array $uploaded_file ($_FILES) |
||||||
|
*/ |
||||||
|
function aiken_import_file($array_file) { |
||||||
|
|
||||||
|
$unzip = 0; |
||||||
|
$lib_path = api_get_path(LIBRARY_PATH); |
||||||
|
require_once $lib_path.'fileUpload.lib.php'; |
||||||
|
require_once $lib_path.'fileManage.lib.php'; |
||||||
|
$process = process_uploaded_file($array_file); |
||||||
|
if (preg_match('/\.zip$/i', $array_file['name'])) { |
||||||
|
// if it's a zip, allow zip upload |
||||||
|
$unzip = 1; |
||||||
|
} |
||||||
|
|
||||||
|
if ($process && $unzip == 1) { |
||||||
|
$main_path = api_get_path(SYS_CODE_PATH); |
||||||
|
require_once $main_path.'exercice/export/aiken/aiken_import.inc.php'; |
||||||
|
require_once $main_path.'exercice/export/aiken/aiken_classes.php'; |
||||||
|
$imported = import_exercise($array_file['name']); |
||||||
|
|
||||||
|
if ($imported) { |
||||||
|
header('Location: exercice.php?'.api_get_cidreq()); |
||||||
|
} else { |
||||||
|
Display::display_error_message(get_lang('UplNoFileUploaded')); |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// display header |
||||||
|
Display::display_header(get_lang('ImportAikenQuiz'), 'Exercises'); |
||||||
|
|
||||||
|
// import file |
||||||
|
if ((api_is_allowed_to_edit(null, true))) { |
||||||
|
if (isset($_POST['submit'])) { |
||||||
|
aiken_import_file($_FILES['userFile']); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
// display Aiken form |
||||||
|
aiken_display_form(); |
||||||
|
|
||||||
|
// display the footer |
||||||
|
Display::display_footer(); |
||||||
@ -0,0 +1,142 @@ |
|||||||
|
<?php // $Id: $
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* @author Claro Team <cvs@claroline.net> |
||||||
|
* @author Yannick Warnier <yannick.warnier@beeznest.com> - updated ImsAnswerHotspot to match QTI norms |
||||||
|
* @author César Perales <cesar.perales@gmail.com> Updated function names and import files for Aiken format support |
||||||
|
* @package chamilo.exercise |
||||||
|
*/ |
||||||
|
/** |
||||||
|
* Code |
||||||
|
*/ |
||||||
|
if ( count( get_included_files() ) == 1 ) die( '---' ); |
||||||
|
|
||||||
|
if (!function_exists('mime_content_type')) { |
||||||
|
require_once api_get_path(LIBRARY_PATH).'document.lib.php'; |
||||||
|
function mime_content_type($filename) { |
||||||
|
return DocumentManager::file_get_mime_type((string)$filename); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
require_once(api_get_path(SYS_CODE_PATH).'/exercice/answer.class.php'); |
||||||
|
require_once(api_get_path(SYS_CODE_PATH).'/exercice/exercise.class.php'); |
||||||
|
require_once(api_get_path(SYS_CODE_PATH).'/exercice/question.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/hotspot.class.php'); |
||||||
|
require_once(api_get_path(SYS_CODE_PATH).'/exercice/unique_answer.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/multiple_answer.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/multiple_answer_combination.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/matching.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/freeanswer.class.php'); |
||||||
|
//require_once(api_get_path(SYS_CODE_PATH).'/exercice/fill_blanks.class.php'); |
||||||
|
//include_once $path . '/../../lib/answer_multiplechoice.class.php'; |
||||||
|
//include_once $path . '/../../lib/answer_truefalse.class.php'; |
||||||
|
//include_once $path . '/../../lib/answer_fib.class.php'; |
||||||
|
//include_once $path . '/../../lib/answer_matching.class.php'; |
||||||
|
/** |
||||||
|
* |
||||||
|
* @package chamilo.exercise |
||||||
|
*/ |
||||||
|
class Aiken2Question extends Question |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Include the correct answer class and create answer |
||||||
|
*/ |
||||||
|
function setAnswer() |
||||||
|
{ |
||||||
|
switch($this->type) |
||||||
|
{ |
||||||
|
case MCUA : |
||||||
|
$answer = new AikenAnswerMultipleChoice($this->id); |
||||||
|
return $answer; |
||||||
|
default : |
||||||
|
$answer = null; |
||||||
|
break; |
||||||
|
} |
||||||
|
return $answer; |
||||||
|
} |
||||||
|
function createAnswersForm($form) |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
function processAnswersCreation($form) |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* Class |
||||||
|
* @package chamilo.exercise |
||||||
|
*/ |
||||||
|
class AikenAnswerMultipleChoice extends Answer |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Return the XML flow for the possible answers. |
||||||
|
* |
||||||
|
*/ |
||||||
|
function imsExportResponses($questionIdent, $questionStatment) |
||||||
|
{ |
||||||
|
$this->answerList = $this->getAnswersList(true); |
||||||
|
$out = ' <choiceInteraction responseIdentifier="' . $questionIdent . '" >' . "\n"; |
||||||
|
$out .= ' <prompt> ' . $questionStatment . ' </prompt>'. "\n"; |
||||||
|
if (is_array($this->answerList)) { |
||||||
|
foreach ($this->answerList as $current_answer) { |
||||||
|
|
||||||
|
|
||||||
|
$out .= ' <simpleChoice identifier="answer_' . $current_answer['id'] . '" fixed="false">' . $current_answer['answer']; |
||||||
|
if (isset($current_answer['comment']) && $current_answer['comment'] != '') |
||||||
|
{ |
||||||
|
$out .= '<feedbackInline identifier="answer_' . $current_answer['id'] . '">' . $current_answer['comment'] . '</feedbackInline>'; |
||||||
|
} |
||||||
|
$out .= '</simpleChoice>'. "\n"; |
||||||
|
} |
||||||
|
} |
||||||
|
$out .= ' </choiceInteraction>'. "\n"; |
||||||
|
return $out; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Return the XML flow of answer ResponsesDeclaration |
||||||
|
* |
||||||
|
*/ |
||||||
|
function imsExportResponsesDeclaration($questionIdent) |
||||||
|
{ |
||||||
|
$this->answerList = $this->getAnswersList(true); |
||||||
|
$type = $this->getQuestionType(); |
||||||
|
if ($type == MCMA) $cardinality = 'multiple'; else $cardinality = 'single'; |
||||||
|
|
||||||
|
$out = ' <responseDeclaration identifier="' . $questionIdent . '" cardinality="' . $cardinality . '" baseType="identifier">' . "\n"; |
||||||
|
|
||||||
|
//Match the correct answers |
||||||
|
|
||||||
|
$out .= ' <correctResponse>'. "\n"; |
||||||
|
if (is_array($this->answerList)) { |
||||||
|
foreach($this->answerList as $current_answer) { |
||||||
|
if ($current_answer['correct']) |
||||||
|
{ |
||||||
|
$out .= ' <value>answer_'. $current_answer['id'] .'</value>'. "\n"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
$out .= ' </correctResponse>'. "\n"; |
||||||
|
|
||||||
|
//Add the grading |
||||||
|
|
||||||
|
$out .= ' <mapping>'. "\n"; |
||||||
|
if (is_array($this->answerList)) { |
||||||
|
foreach($this->answerList as $current_answer) |
||||||
|
{ |
||||||
|
if (isset($current_answer['grade'])) |
||||||
|
{ |
||||||
|
$out .= ' <mapEntry mapKey="answer_'. $current_answer['id'] .'" mappedValue="'.$current_answer['grade'].'" />'. "\n"; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
$out .= ' </mapping>'. "\n"; |
||||||
|
|
||||||
|
$out .= ' </responseDeclaration>'. "\n"; |
||||||
|
|
||||||
|
return $out; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,224 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* @copyright (c) 2001-2006 Universite catholique de Louvain (UCL) |
||||||
|
* |
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html (GPL) GENERAL PUBLIC LICENSE |
||||||
|
* |
||||||
|
* @package chamilo.exercise |
||||||
|
* |
||||||
|
* @author claro team <cvs@claroline.net> |
||||||
|
* @author Guillaume Lederer <guillaume@claroline.net> |
||||||
|
* @author César Perales <cesar.perales@gmail.com> Parse function for Aiken format |
||||||
|
*/ |
||||||
|
/** |
||||||
|
* Security check |
||||||
|
*/ |
||||||
|
if (count(get_included_files()) == 1) |
||||||
|
die('---'); |
||||||
|
|
||||||
|
/** |
||||||
|
* function to create a temporary directory (SAME AS IN MODULE ADMIN) |
||||||
|
*/ |
||||||
|
|
||||||
|
function tempdir($dir, $prefix = 'tmp', $mode = 0777) { |
||||||
|
if (substr($dir, -1) != '/') |
||||||
|
$dir .= '/'; |
||||||
|
|
||||||
|
do { |
||||||
|
$path = $dir . $prefix . mt_rand(0, 9999999); |
||||||
|
} while (!mkdir($path, $mode)); |
||||||
|
|
||||||
|
return $path; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @return the path of the temporary directory where the exercise was uploaded and unzipped |
||||||
|
*/ |
||||||
|
|
||||||
|
function get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath) { |
||||||
|
global $_course, $_user; |
||||||
|
//Check if the file is valid (not to big and exists) |
||||||
|
if (!isset ($_FILES['userFile']) || !is_uploaded_file($_FILES['userFile']['tmp_name'])) { |
||||||
|
// upload failed |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (preg_match('/.zip$/i', $_FILES['userFile']['name']) && handle_uploaded_document($_course, $_FILES['userFile'], $baseWorkDir, $uploadPath, $_user['user_id'], 0, null, 1)) { |
||||||
|
if (!function_exists('gzopen')) { |
||||||
|
//claro_delete_file($uploadPath); |
||||||
|
return false; |
||||||
|
} |
||||||
|
// upload successfull |
||||||
|
return true; |
||||||
|
} else { |
||||||
|
//claro_delete_file($uploadPath); |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
/** |
||||||
|
* main function to import an exercise, |
||||||
|
* |
||||||
|
* @return an array as a backlog of what was really imported, and error or debug messages to display |
||||||
|
*/ |
||||||
|
|
||||||
|
function import_exercise($file) { |
||||||
|
global $exercise_info; |
||||||
|
global $element_pile; |
||||||
|
global $non_HTML_tag_to_avoid; |
||||||
|
global $record_item_body; |
||||||
|
// used to specify the question directory where files could be found in relation in any question |
||||||
|
global $questionTempDir; |
||||||
|
|
||||||
|
$archive_path = api_get_path(SYS_ARCHIVE_PATH) . 'aiken'; |
||||||
|
$baseWorkDir = $archive_path; |
||||||
|
|
||||||
|
if (!is_dir($baseWorkDir)) { |
||||||
|
mkdir($baseWorkDir, api_get_permissions_for_new_directories(), true); |
||||||
|
} |
||||||
|
|
||||||
|
$uploadPath = '/'; |
||||||
|
|
||||||
|
// set some default values for the new exercise |
||||||
|
$exercise_info = array (); |
||||||
|
$exercise_info['name'] = preg_replace('/.zip$/i', '', $file); |
||||||
|
$exercise_info['question'] = array(); |
||||||
|
$element_pile = array (); |
||||||
|
|
||||||
|
// create parser and array to retrieve info from manifest |
||||||
|
$element_pile = array (); //pile to known the depth in which we are |
||||||
|
//$module_info = array (); //array to store the info we need |
||||||
|
|
||||||
|
// if file is not a .zip, then we cancel all |
||||||
|
if (!preg_match('/.zip$/i', $file)) { |
||||||
|
Display :: display_error_message(get_lang('You must upload a zip file')); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
// unzip the uploaded file in a tmp directory |
||||||
|
if (!get_and_unzip_uploaded_exercise($baseWorkDir, $uploadPath)) { |
||||||
|
Display :: display_error_message(get_lang('You must upload a zip file')); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
// find the different manifests for each question and parse them. |
||||||
|
$exerciseHandle = opendir($baseWorkDir); |
||||||
|
//$question_number = 0; |
||||||
|
$file_found = false; |
||||||
|
$operation = false; |
||||||
|
$result = false; |
||||||
|
// parse every subdirectory to search txt question files |
||||||
|
while (false !== ($file = readdir($exerciseHandle))) { |
||||||
|
if (is_dir($baseWorkDir . '/' . $file) && $file != "." && $file != "..") { |
||||||
|
//find each manifest for each question repository found |
||||||
|
$questionHandle = opendir($baseWorkDir . '/' . $file); |
||||||
|
while (false !== ($questionFile = readdir($questionHandle))) { |
||||||
|
if (preg_match('/.txt$/i', $questionFile)) { |
||||||
|
$result = parse_file($baseWorkDir, $file, $questionFile); |
||||||
|
$file_found = true; |
||||||
|
} |
||||||
|
} |
||||||
|
} elseif (preg_match('/.txt$/i', $file)) { |
||||||
|
$result = parse_file($baseWorkDir, '', $file); |
||||||
|
$file_found = true; |
||||||
|
} // else ignore file |
||||||
|
} |
||||||
|
if (!$file_found) { |
||||||
|
Display :: display_error_message(get_lang('No TXT file found in the zip')); |
||||||
|
return false; |
||||||
|
} |
||||||
|
if ($result == false ) { |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
//add exercise in tool |
||||||
|
|
||||||
|
//1.create exercise |
||||||
|
$exercise = new Exercise(); |
||||||
|
$exercise->exercise = $exercise_info['name']; |
||||||
|
|
||||||
|
$exercise->save(); |
||||||
|
$last_exercise_id = $exercise->selectId(); |
||||||
|
if (!empty($last_exercise_id)) { |
||||||
|
//For each question found... |
||||||
|
foreach ($exercise_info['question'] as $key => $question_array) { |
||||||
|
//2.create question |
||||||
|
$question = new Aiken2Question(); |
||||||
|
$question->type = $question_array['type']; |
||||||
|
$question->setAnswer(); |
||||||
|
$question->updateTitle($question_array['title']); // question ... |
||||||
|
$type = $question->selectType(); |
||||||
|
$question->type = constant($type); // type ... |
||||||
|
$question->save($last_exercise_id); // save computed grade |
||||||
|
$last_question_id = $question->selectId(); |
||||||
|
//3.create answer |
||||||
|
$answer = new Answer($last_question_id); |
||||||
|
$answer->new_nbrAnswers = count($question_array['answer']); |
||||||
|
foreach ($question_array['answer'] as $key => $answers) { |
||||||
|
$key++; |
||||||
|
$answer->new_answer[$key] = $answers['value']; // answer ... |
||||||
|
$answer->new_comment[$key] = $answers['feedback']; // comment ... |
||||||
|
$answer->new_position[$key] = $key; // position ... |
||||||
|
// correct answers ... |
||||||
|
if (in_array($key, $question_array['correct_answers'])) { |
||||||
|
$answer->new_correct[$key] = 1; |
||||||
|
} else { |
||||||
|
$answer->new_correct[$key] = 0; |
||||||
|
} |
||||||
|
error_log($question_array['weighting']); |
||||||
|
$answer->new_weighting[$key] = $question_array['weighting'][$key - 1]; |
||||||
|
} |
||||||
|
$answer->save(); |
||||||
|
} |
||||||
|
// delete the temp dir where the exercise was unzipped |
||||||
|
my_delete($baseWorkDir . $uploadPath); |
||||||
|
$operation = true; |
||||||
|
} |
||||||
|
return $operation; |
||||||
|
} |
||||||
|
|
||||||
|
function parse_file($exercisePath, $file, $questionFile) { |
||||||
|
global $exercise_info; |
||||||
|
global $questionTempDir; |
||||||
|
|
||||||
|
$questionTempDir = $exercisePath . '/' . $file . '/'; |
||||||
|
$questionFilePath = $questionTempDir . $questionFile; |
||||||
|
|
||||||
|
|
||||||
|
$data = file($questionFilePath); |
||||||
|
|
||||||
|
$question_index = 0; |
||||||
|
$correct_answer = ''; |
||||||
|
$answers_array = array(); |
||||||
|
foreach ($data as $linea => $info) { |
||||||
|
$exercise_info['question'][$question_index]['type'] = 'MCUA'; |
||||||
|
if (preg_match('/^([A-Z])(\)|\.)\s(.*)/', $info, $matches)) { |
||||||
|
//adding one of the posible answers |
||||||
|
$exercise_info['question'][$question_index]['answer'][]['value'] = $matches[3]; |
||||||
|
$answers_array[] = $matches[1]; |
||||||
|
} elseif (preg_match('/^ANSWER:\s?([A-Z])\s?/', $info, $matches)) { |
||||||
|
//the correct answers |
||||||
|
$correct_answer_index = array_search($matches[1], $answers_array); |
||||||
|
$exercise_info['question'][$question_index]['correct_answers'][] = $correct_answer_index + 1; |
||||||
|
//weight for correct answer |
||||||
|
$exercise_info['question'][$question_index]['weighting'][$correct_answer_index] = 1; |
||||||
|
} elseif (preg_match('/^ANSWER_EXPLANATION:\s?(.*)\s?/', $info, $matches)) { |
||||||
|
//Comment of correct answer |
||||||
|
$exercise_info['question'][$question_index]['answer'][$correct_answer_index]['feedback'] = $matches[1]; |
||||||
|
} elseif (preg_match('/^TAGS:\s?([A-Z])\s?/', $info, $matches)) { |
||||||
|
//TAGS for chamilo >= 1.10 |
||||||
|
$exercise_info['question'][$question_index]['answer_tags'] = explode(',', $matches[1]); |
||||||
|
} elseif (preg_match('/^\n/',$info)) { |
||||||
|
//moving to next question |
||||||
|
$question_index++; |
||||||
|
//emptying answers array when moving to next question |
||||||
|
$answers_array = array(); |
||||||
|
} else { |
||||||
|
//Question itself |
||||||
|
$exercise_info['question'][$question_index]['title'] = $info; |
||||||
|
} |
||||||
|
} |
||||||
|
$total_questions = count($exercise_info['question']); |
||||||
|
foreach ($exercise_info['question'] as $key => $question) { |
||||||
|
$exercise_info['question'][$key]['weighting'][current(array_keys($exercise_info['question'][$key]['weighting']))] = 20 / $total_questions; |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
@ -0,0 +1,93 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
require_once 'HTML/QuickForm/select.php'; |
||||||
|
require_once 'HTML/QuickForm/html.php'; |
||||||
|
|
||||||
|
/** |
||||||
|
* A drop down list with all languages to use with QuickForm |
||||||
|
*/ |
||||||
|
class HTML_QuickForm_Select_Ajax extends HTML_QuickForm_select |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Class constructor |
||||||
|
*/ |
||||||
|
function HTML_QuickForm_Select_Ajax($elementName = null, $elementLabel = null, $options = null, $attributes = null) |
||||||
|
{ |
||||||
|
parent::HTML_QuickForm_Select($elementName, $elementLabel, $options, $attributes); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* The ajax call must contain an array of id and text |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
function toHtml() |
||||||
|
{ |
||||||
|
$html = api_get_js('select2/select2.js'); |
||||||
|
|
||||||
|
$iso = api_get_language_isocode(api_get_interface_language()); |
||||||
|
$localeFile = 'select2_locale_'.$iso.'.js'; |
||||||
|
if (file_exists(api_get_path(LIBRARY_PATH).'javascript/select2/'.$localeFile)) { |
||||||
|
$html .= api_get_js('select2/'.$localeFile); |
||||||
|
} |
||||||
|
$html .= api_get_css(api_get_path(WEB_LIBRARY_PATH).'javascript/select2/select2.css'); |
||||||
|
|
||||||
|
$formatResult = $this->getAttribute('formatResult'); |
||||||
|
|
||||||
|
$formatCondition = null; |
||||||
|
|
||||||
|
if (!empty($formatResult)) { |
||||||
|
$formatCondition = ', |
||||||
|
formatResult : '.$formatResult.', |
||||||
|
formatSelection : '.$formatResult.','; |
||||||
|
} |
||||||
|
|
||||||
|
$defaultValues = $this->getAttribute('defaults'); |
||||||
|
|
||||||
|
$dataCondition = null; |
||||||
|
$tags = null; |
||||||
|
if (!empty($defaultValues)) { |
||||||
|
|
||||||
|
$result = json_encode($defaultValues); |
||||||
|
$result = str_replace('"id"', 'id', $result); |
||||||
|
$result = str_replace('"text"', 'text', $result); |
||||||
|
$dataCondition = '$("#'.$this->getAttribute('name').'").select2("data", '.$result.')'; |
||||||
|
$tags = ',tags : function() { return '.$result.'} '; |
||||||
|
} |
||||||
|
|
||||||
|
$html .= '<script> |
||||||
|
$(function() { |
||||||
|
$("#'.$this->getAttribute('name').'").select2({ |
||||||
|
placeholder: "'.get_lang('SelectAnOption').'", |
||||||
|
allowClear: true, |
||||||
|
width: "element", |
||||||
|
minimumInputLength: 2, |
||||||
|
// instead of writing the function to execute the request we use Select2s convenient helper |
||||||
|
ajax: { |
||||||
|
url: "'.$this->getAttribute('url').'", |
||||||
|
dataType: "json", |
||||||
|
data: function (term, page) { |
||||||
|
return { |
||||||
|
q: term, // search term |
||||||
|
page_limit: 10, |
||||||
|
}; |
||||||
|
}, |
||||||
|
results: function (data, page) { // parse the results into the format expected by Select2. |
||||||
|
// since we are using custom formatting functions we do not need to alter remote JSON data |
||||||
|
return { |
||||||
|
results: data |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
||||||
|
'.$tags.' |
||||||
|
'.$formatCondition.' |
||||||
|
}); |
||||||
|
'.$dataCondition.' |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
</script>'; |
||||||
|
$html .= '<input id="'.$this->getAttribute('name').'" name = "'.$this->getAttribute('name').'" />'; |
||||||
|
return $html; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
Copyright 2012 Igor Vaynberg |
||||||
|
|
||||||
|
Version: @@ver@@ Timestamp: @@timestamp@@ |
||||||
|
|
||||||
|
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU |
||||||
|
General Public License version 2 (the "GPL License"). You may choose either license to govern your |
||||||
|
use of this software only upon the condition that you accept all of the terms of either the Apache |
||||||
|
License or the GPL License. |
||||||
|
|
||||||
|
You may obtain a copy of the Apache License and the GPL License at: |
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
http://www.gnu.org/licenses/gpl-2.0.html |
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the Apache License |
||||||
|
or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
||||||
|
either express or implied. See the Apache License and the GPL License for the specific language governing |
||||||
|
permissions and limitations under the Apache License and the GPL License. |
||||||
@ -0,0 +1,83 @@ |
|||||||
|
Select2 |
||||||
|
======= |
||||||
|
|
||||||
|
Select2 is a jQuery-based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results. |
||||||
|
|
||||||
|
To get started, checkout examples and documentation at http://ivaynberg.github.com/select2 |
||||||
|
|
||||||
|
Use cases |
||||||
|
--------- |
||||||
|
|
||||||
|
* Enhancing native selects with search. |
||||||
|
* Enhancing native selects with a better multi-select interface. |
||||||
|
* Loading data from JavaScript: easily load items via ajax and have them searchable. |
||||||
|
* Nesting optgroups: native selects only support one level of nested. Select2 does not have this restriction. |
||||||
|
* Tagging: ability to add new items on the fly. |
||||||
|
* Working with large, remote datasets: ability to partially load a dataset based on the search term. |
||||||
|
* Paging of large datasets: easy support for loading more pages when the results are scrolled to the end. |
||||||
|
* Templating: support for custom rendering of results and selections. |
||||||
|
|
||||||
|
Browser compatibility |
||||||
|
--------------------- |
||||||
|
* IE 8+ |
||||||
|
* Chrome 8+ |
||||||
|
* Firefox 10+ |
||||||
|
* Safari 3+ |
||||||
|
* Opera 10.6+ |
||||||
|
|
||||||
|
Integrations |
||||||
|
------------ |
||||||
|
|
||||||
|
* [Wicket-Select2](https://github.com/ivaynberg/wicket-select2) (Java / [Apache Wicket](http://wicket.apache.org)) |
||||||
|
* [select2-rails](https://github.com/argerim/select2-rails) (Ruby on Rails) |
||||||
|
* [AngularUI](http://angular-ui.github.com/#directives-select2) ([AngularJS](angularjs.org)) |
||||||
|
* [Django](https://github.com/applegrew/django-select2) |
||||||
|
* [Symfony](https://github.com/19Gerhard85/sfSelect2WidgetsPlugin) |
||||||
|
* [Bootstrap](https://github.com/t0m/select2-bootstrap-css) (CSS skin) |
||||||
|
* [Yii](https://github.com/tonybolzan/yii-select2) |
||||||
|
|
||||||
|
Internationalization (i18n) |
||||||
|
--------------------------- |
||||||
|
|
||||||
|
Select2 supports multiple languages by simply including the right |
||||||
|
language JS file (`select2_locale_it.js`, `select2_locale_nl.js`, etc.). |
||||||
|
|
||||||
|
Missing a language? Just copy `select2_locale_en.js.template`, translate |
||||||
|
it, and make a pull request back to Select2 here on GitHub. |
||||||
|
|
||||||
|
Bug tracker |
||||||
|
----------- |
||||||
|
|
||||||
|
Have a bug? Please create an issue here on GitHub! |
||||||
|
|
||||||
|
https://github.com/ivaynberg/select2/issues |
||||||
|
|
||||||
|
Mailing list |
||||||
|
------------ |
||||||
|
|
||||||
|
Have a question? Ask on our mailing list! |
||||||
|
|
||||||
|
select2@googlegroups.com |
||||||
|
|
||||||
|
https://groups.google.com/d/forum/select2 |
||||||
|
|
||||||
|
|
||||||
|
Copyright and license |
||||||
|
--------------------- |
||||||
|
|
||||||
|
Copyright 2012 Igor Vaynberg |
||||||
|
|
||||||
|
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU |
||||||
|
General Public License version 2 (the "GPL License"). You may choose either license to govern your |
||||||
|
use of this software only upon the condition that you accept all of the terms of either the Apache |
||||||
|
License or the GPL License. |
||||||
|
|
||||||
|
You may obtain a copy of the Apache License and the GPL License in the LICENSE file, or at: |
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
http://www.gnu.org/licenses/gpl-2.0.html |
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software distributed under the Apache License |
||||||
|
or the GPL License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, |
||||||
|
either express or implied. See the Apache License and the GPL License for the specific language governing |
||||||
|
permissions and limitations under the Apache License and the GPL License. |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"name": "select2", |
||||||
|
"version": "3.4.5", |
||||||
|
"main": ["select2.js", "select2.css", "select2.png", "select2x2.png", "select2-spinner.gif"], |
||||||
|
"dependencies": { |
||||||
|
"jquery": ">= 1.7.1" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,87 @@ |
|||||||
|
.form-control .select2-choice { |
||||||
|
border: 0; |
||||||
|
border-radius: 2px; |
||||||
|
} |
||||||
|
|
||||||
|
.form-control .select2-choice .select2-arrow { |
||||||
|
border-radius: 0 2px 2px 0; |
||||||
|
} |
||||||
|
|
||||||
|
.form-control.select2-container { |
||||||
|
height: auto !important; |
||||||
|
padding: 0px; |
||||||
|
} |
||||||
|
|
||||||
|
.form-control.select2-container.select2-dropdown-open { |
||||||
|
border-color: #5897FB; |
||||||
|
border-radius: 3px 3px 0 0; |
||||||
|
} |
||||||
|
|
||||||
|
.form-control .select2-container.select2-dropdown-open .select2-choices { |
||||||
|
border-radius: 3px 3px 0 0; |
||||||
|
} |
||||||
|
|
||||||
|
.form-control.select2-container .select2-choices { |
||||||
|
border: 0 !important; |
||||||
|
border-radius: 3px; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.warning .select2-container .select2-choice, |
||||||
|
.control-group.warning .select2-container .select2-choices, |
||||||
|
.control-group.warning .select2-container-active .select2-choice, |
||||||
|
.control-group.warning .select2-container-active .select2-choices, |
||||||
|
.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choice, |
||||||
|
.control-group.warning .select2-dropdown-open.select2-drop-above .select2-choices, |
||||||
|
.control-group.warning .select2-container-multi.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #C09853 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.warning .select2-container .select2-choice div { |
||||||
|
border-left: 1px solid #C09853 !important; |
||||||
|
background: #FCF8E3 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.error .select2-container .select2-choice, |
||||||
|
.control-group.error .select2-container .select2-choices, |
||||||
|
.control-group.error .select2-container-active .select2-choice, |
||||||
|
.control-group.error .select2-container-active .select2-choices, |
||||||
|
.control-group.error .select2-dropdown-open.select2-drop-above .select2-choice, |
||||||
|
.control-group.error .select2-dropdown-open.select2-drop-above .select2-choices, |
||||||
|
.control-group.error .select2-container-multi.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #B94A48 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.error .select2-container .select2-choice div { |
||||||
|
border-left: 1px solid #B94A48 !important; |
||||||
|
background: #F2DEDE !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.info .select2-container .select2-choice, |
||||||
|
.control-group.info .select2-container .select2-choices, |
||||||
|
.control-group.info .select2-container-active .select2-choice, |
||||||
|
.control-group.info .select2-container-active .select2-choices, |
||||||
|
.control-group.info .select2-dropdown-open.select2-drop-above .select2-choice, |
||||||
|
.control-group.info .select2-dropdown-open.select2-drop-above .select2-choices, |
||||||
|
.control-group.info .select2-container-multi.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #3A87AD !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.info .select2-container .select2-choice div { |
||||||
|
border-left: 1px solid #3A87AD !important; |
||||||
|
background: #D9EDF7 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.success .select2-container .select2-choice, |
||||||
|
.control-group.success .select2-container .select2-choices, |
||||||
|
.control-group.success .select2-container-active .select2-choice, |
||||||
|
.control-group.success .select2-container-active .select2-choices, |
||||||
|
.control-group.success .select2-dropdown-open.select2-drop-above .select2-choice, |
||||||
|
.control-group.success .select2-dropdown-open.select2-drop-above .select2-choices, |
||||||
|
.control-group.success .select2-container-multi.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #468847 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.control-group.success .select2-container .select2-choice div { |
||||||
|
border-left: 1px solid #468847 !important; |
||||||
|
background: #DFF0D8 !important; |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,615 @@ |
|||||||
|
/* |
||||||
|
Version: 3.4.5 Timestamp: Mon Nov 4 08:22:42 PST 2013 |
||||||
|
*/ |
||||||
|
.select2-container { |
||||||
|
margin: 0; |
||||||
|
position: relative; |
||||||
|
display: inline-block; |
||||||
|
/* inline-block for ie7 */ |
||||||
|
zoom: 1; |
||||||
|
*display: inline; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container, |
||||||
|
.select2-drop, |
||||||
|
.select2-search, |
||||||
|
.select2-search input { |
||||||
|
/* |
||||||
|
Force border-box so that % widths fit the parent |
||||||
|
container without overlap because of margin/padding. |
||||||
|
|
||||||
|
More Info : http://www.quirksmode.org/css/box.html |
||||||
|
*/ |
||||||
|
-webkit-box-sizing: border-box; /* webkit */ |
||||||
|
-moz-box-sizing: border-box; /* firefox */ |
||||||
|
box-sizing: border-box; /* css3 */ |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice { |
||||||
|
display: block; |
||||||
|
height: 26px; |
||||||
|
padding: 0 0 0 8px; |
||||||
|
overflow: hidden; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
border: 1px solid #aaa; |
||||||
|
white-space: nowrap; |
||||||
|
line-height: 26px; |
||||||
|
color: #444; |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
border-radius: 4px; |
||||||
|
|
||||||
|
background-clip: padding-box; |
||||||
|
|
||||||
|
-webkit-touch-callout: none; |
||||||
|
-webkit-user-select: none; |
||||||
|
-moz-user-select: none; |
||||||
|
-ms-user-select: none; |
||||||
|
user-select: none; |
||||||
|
|
||||||
|
background-color: #fff; |
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff)); |
||||||
|
background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%); |
||||||
|
background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%); |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0); |
||||||
|
background-image: linear-gradient(top, #fff 0%, #eee 50%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container.select2-drop-above .select2-choice { |
||||||
|
border-bottom-color: #aaa; |
||||||
|
|
||||||
|
border-radius: 0 0 4px 4px; |
||||||
|
|
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff)); |
||||||
|
background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%); |
||||||
|
background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%); |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0); |
||||||
|
background-image: linear-gradient(top, #eee 0%, #fff 90%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container.select2-allowclear .select2-choice .select2-chosen { |
||||||
|
margin-right: 42px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice > .select2-chosen { |
||||||
|
margin-right: 26px; |
||||||
|
display: block; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
white-space: nowrap; |
||||||
|
|
||||||
|
text-overflow: ellipsis; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice abbr { |
||||||
|
display: none; |
||||||
|
width: 12px; |
||||||
|
height: 12px; |
||||||
|
position: absolute; |
||||||
|
right: 24px; |
||||||
|
top: 8px; |
||||||
|
|
||||||
|
font-size: 1px; |
||||||
|
text-decoration: none; |
||||||
|
|
||||||
|
border: 0; |
||||||
|
background: url('select2.png') right top no-repeat; |
||||||
|
cursor: pointer; |
||||||
|
outline: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container.select2-allowclear .select2-choice abbr { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice abbr:hover { |
||||||
|
background-position: right -11px; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop-mask { |
||||||
|
border: 0; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
position: fixed; |
||||||
|
left: 0; |
||||||
|
top: 0; |
||||||
|
min-height: 100%; |
||||||
|
min-width: 100%; |
||||||
|
height: auto; |
||||||
|
width: auto; |
||||||
|
opacity: 0; |
||||||
|
z-index: 9998; |
||||||
|
/* styles required for IE to work */ |
||||||
|
background-color: #fff; |
||||||
|
filter: alpha(opacity=0); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop { |
||||||
|
width: 100%; |
||||||
|
margin-top: -1px; |
||||||
|
position: absolute; |
||||||
|
z-index: 9999; |
||||||
|
top: 100%; |
||||||
|
|
||||||
|
background: #fff; |
||||||
|
color: #000; |
||||||
|
border: 1px solid #aaa; |
||||||
|
border-top: 0; |
||||||
|
|
||||||
|
border-radius: 0 0 4px 4px; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15); |
||||||
|
box-shadow: 0 4px 5px rgba(0, 0, 0, .15); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop-auto-width { |
||||||
|
border-top: 1px solid #aaa; |
||||||
|
width: auto; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop-auto-width .select2-search { |
||||||
|
padding-top: 4px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop.select2-drop-above { |
||||||
|
margin-top: 1px; |
||||||
|
border-top: 1px solid #aaa; |
||||||
|
border-bottom: 0; |
||||||
|
|
||||||
|
border-radius: 4px 4px 0 0; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); |
||||||
|
box-shadow: 0 -4px 5px rgba(0, 0, 0, .15); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop-active { |
||||||
|
border: 1px solid #5897fb; |
||||||
|
border-top: none; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop.select2-drop-above.select2-drop-active { |
||||||
|
border-top: 1px solid #5897fb; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice .select2-arrow { |
||||||
|
display: inline-block; |
||||||
|
width: 18px; |
||||||
|
height: 100%; |
||||||
|
position: absolute; |
||||||
|
right: 0; |
||||||
|
top: 0; |
||||||
|
|
||||||
|
border-left: 1px solid #aaa; |
||||||
|
border-radius: 0 4px 4px 0; |
||||||
|
|
||||||
|
background-clip: padding-box; |
||||||
|
|
||||||
|
background: #ccc; |
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee)); |
||||||
|
background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%); |
||||||
|
background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%); |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0); |
||||||
|
background-image: linear-gradient(top, #ccc 0%, #eee 60%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container .select2-choice .select2-arrow b { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
background: url('select2.png') no-repeat 0 1px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-search { |
||||||
|
display: inline-block; |
||||||
|
width: 100%; |
||||||
|
min-height: 26px; |
||||||
|
margin: 0; |
||||||
|
padding-left: 4px; |
||||||
|
padding-right: 4px; |
||||||
|
|
||||||
|
position: relative; |
||||||
|
z-index: 10000; |
||||||
|
|
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-search input { |
||||||
|
width: 100%; |
||||||
|
height: auto !important; |
||||||
|
min-height: 26px; |
||||||
|
padding: 4px 20px 4px 5px; |
||||||
|
margin: 0; |
||||||
|
|
||||||
|
outline: 0; |
||||||
|
font-family: sans-serif; |
||||||
|
font-size: 1em; |
||||||
|
|
||||||
|
border: 1px solid #aaa; |
||||||
|
border-radius: 0; |
||||||
|
|
||||||
|
-webkit-box-shadow: none; |
||||||
|
box-shadow: none; |
||||||
|
|
||||||
|
background: #fff url('select2.png') no-repeat 100% -22px; |
||||||
|
background: url('select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee)); |
||||||
|
background: url('select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%); |
||||||
|
background: url('select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%); |
||||||
|
background: url('select2.png') no-repeat 100% -22px, linear-gradient(top, #fff 85%, #eee 99%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-drop.select2-drop-above .select2-search input { |
||||||
|
margin-top: 4px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-search input.select2-active { |
||||||
|
background: #fff url('select2-spinner.gif') no-repeat 100%; |
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee)); |
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%); |
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%); |
||||||
|
background: url('select2-spinner.gif') no-repeat 100%, linear-gradient(top, #fff 85%, #eee 99%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-active .select2-choice, |
||||||
|
.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #5897fb; |
||||||
|
outline: none; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3); |
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, .3); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-dropdown-open .select2-choice { |
||||||
|
border-bottom-color: transparent; |
||||||
|
-webkit-box-shadow: 0 1px 0 #fff inset; |
||||||
|
box-shadow: 0 1px 0 #fff inset; |
||||||
|
|
||||||
|
border-bottom-left-radius: 0; |
||||||
|
border-bottom-right-radius: 0; |
||||||
|
|
||||||
|
background-color: #eee; |
||||||
|
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee)); |
||||||
|
background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%); |
||||||
|
background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%); |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0); |
||||||
|
background-image: linear-gradient(top, #fff 0%, #eee 50%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-dropdown-open.select2-drop-above .select2-choice, |
||||||
|
.select2-dropdown-open.select2-drop-above .select2-choices { |
||||||
|
border: 1px solid #5897fb; |
||||||
|
border-top-color: transparent; |
||||||
|
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee)); |
||||||
|
background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%); |
||||||
|
background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%); |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0); |
||||||
|
background-image: linear-gradient(bottom, #fff 0%, #eee 50%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-dropdown-open .select2-choice .select2-arrow { |
||||||
|
background: transparent; |
||||||
|
border-left: none; |
||||||
|
filter: none; |
||||||
|
} |
||||||
|
.select2-dropdown-open .select2-choice .select2-arrow b { |
||||||
|
background-position: -18px 1px; |
||||||
|
} |
||||||
|
|
||||||
|
/* results */ |
||||||
|
.select2-results { |
||||||
|
max-height: 200px; |
||||||
|
padding: 0 0 0 4px; |
||||||
|
margin: 4px 4px 4px 0; |
||||||
|
position: relative; |
||||||
|
overflow-x: hidden; |
||||||
|
overflow-y: auto; |
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results ul.select2-result-sub { |
||||||
|
margin: 0; |
||||||
|
padding-left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results ul.select2-result-sub > li .select2-result-label { padding-left: 20px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 40px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 60px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 80px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 100px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 110px } |
||||||
|
.select2-results ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub ul.select2-result-sub > li .select2-result-label { padding-left: 120px } |
||||||
|
|
||||||
|
.select2-results li { |
||||||
|
list-style: none; |
||||||
|
display: list-item; |
||||||
|
background-image: none; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results li.select2-result-with-children > .select2-result-label { |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results .select2-result-label { |
||||||
|
padding: 3px 7px 4px; |
||||||
|
margin: 0; |
||||||
|
cursor: pointer; |
||||||
|
|
||||||
|
min-height: 1em; |
||||||
|
|
||||||
|
-webkit-touch-callout: none; |
||||||
|
-webkit-user-select: none; |
||||||
|
-moz-user-select: none; |
||||||
|
-ms-user-select: none; |
||||||
|
user-select: none; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results .select2-highlighted { |
||||||
|
background: #3875d7; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results li em { |
||||||
|
background: #feffde; |
||||||
|
font-style: normal; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results .select2-highlighted em { |
||||||
|
background: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results .select2-highlighted ul { |
||||||
|
background: #fff; |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.select2-results .select2-no-results, |
||||||
|
.select2-results .select2-searching, |
||||||
|
.select2-results .select2-selection-limit { |
||||||
|
background: #f4f4f4; |
||||||
|
display: list-item; |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
disabled look for disabled choices in the results dropdown |
||||||
|
*/ |
||||||
|
.select2-results .select2-disabled.select2-highlighted { |
||||||
|
color: #666; |
||||||
|
background: #f4f4f4; |
||||||
|
display: list-item; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
.select2-results .select2-disabled { |
||||||
|
background: #f4f4f4; |
||||||
|
display: list-item; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-results .select2-selected { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-more-results.select2-active { |
||||||
|
background: #f4f4f4 url('select2-spinner.gif') no-repeat 100%; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-more-results { |
||||||
|
background: #f4f4f4; |
||||||
|
display: list-item; |
||||||
|
} |
||||||
|
|
||||||
|
/* disabled styles */ |
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice { |
||||||
|
background-color: #f4f4f4; |
||||||
|
background-image: none; |
||||||
|
border: 1px solid #ddd; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice .select2-arrow { |
||||||
|
background-color: #f4f4f4; |
||||||
|
background-image: none; |
||||||
|
border-left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container.select2-container-disabled .select2-choice abbr { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
/* multiselect */ |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices { |
||||||
|
height: auto !important; |
||||||
|
height: 1%; |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
border: 1px solid #aaa; |
||||||
|
cursor: text; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
background-color: #fff; |
||||||
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff)); |
||||||
|
background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%); |
||||||
|
background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%); |
||||||
|
background-image: linear-gradient(top, #eee 1%, #fff 15%); |
||||||
|
} |
||||||
|
|
||||||
|
.select2-locked { |
||||||
|
padding: 3px 5px 3px 5px !important; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices { |
||||||
|
min-height: 26px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi.select2-container-active .select2-choices { |
||||||
|
border: 1px solid #5897fb; |
||||||
|
outline: none; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3); |
||||||
|
box-shadow: 0 0 5px rgba(0, 0, 0, .3); |
||||||
|
} |
||||||
|
.select2-container-multi .select2-choices li { |
||||||
|
float: left; |
||||||
|
list-style: none; |
||||||
|
} |
||||||
|
.select2-container-multi .select2-choices .select2-search-field { |
||||||
|
margin: 0; |
||||||
|
padding: 0; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-field input { |
||||||
|
padding: 5px; |
||||||
|
margin: 1px 0; |
||||||
|
|
||||||
|
font-family: sans-serif; |
||||||
|
font-size: 100%; |
||||||
|
color: #666; |
||||||
|
outline: 0; |
||||||
|
border: 0; |
||||||
|
-webkit-box-shadow: none; |
||||||
|
box-shadow: none; |
||||||
|
background: transparent !important; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-field input.select2-active { |
||||||
|
background: #fff url('select2-spinner.gif') no-repeat 100% !important; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-default { |
||||||
|
color: #999 !important; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice { |
||||||
|
padding: 3px 5px 3px 18px; |
||||||
|
margin: 3px 0 3px 5px; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
line-height: 13px; |
||||||
|
color: #333; |
||||||
|
cursor: default; |
||||||
|
border: 1px solid #aaaaaa; |
||||||
|
|
||||||
|
border-radius: 3px; |
||||||
|
|
||||||
|
-webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); |
||||||
|
box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05); |
||||||
|
|
||||||
|
background-clip: padding-box; |
||||||
|
|
||||||
|
-webkit-touch-callout: none; |
||||||
|
-webkit-user-select: none; |
||||||
|
-moz-user-select: none; |
||||||
|
-ms-user-select: none; |
||||||
|
user-select: none; |
||||||
|
|
||||||
|
background-color: #e4e4e4; |
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0); |
||||||
|
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee)); |
||||||
|
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); |
||||||
|
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); |
||||||
|
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); |
||||||
|
} |
||||||
|
.select2-container-multi .select2-choices .select2-search-choice .select2-chosen { |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
.select2-container-multi .select2-choices .select2-search-choice-focus { |
||||||
|
background: #d4d4d4; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-search-choice-close { |
||||||
|
display: block; |
||||||
|
width: 12px; |
||||||
|
height: 13px; |
||||||
|
position: absolute; |
||||||
|
right: 3px; |
||||||
|
top: 4px; |
||||||
|
|
||||||
|
font-size: 1px; |
||||||
|
outline: none; |
||||||
|
background: url('select2.png') right top no-repeat; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-search-choice-close { |
||||||
|
left: 3px; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover { |
||||||
|
background-position: right -11px; |
||||||
|
} |
||||||
|
.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close { |
||||||
|
background-position: right -11px; |
||||||
|
} |
||||||
|
|
||||||
|
/* disabled styles */ |
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices { |
||||||
|
background-color: #f4f4f4; |
||||||
|
background-image: none; |
||||||
|
border: 1px solid #ddd; |
||||||
|
cursor: default; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice { |
||||||
|
padding: 3px 5px 3px 5px; |
||||||
|
border: 1px solid #ddd; |
||||||
|
background-image: none; |
||||||
|
background-color: #f4f4f4; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none; |
||||||
|
background: none; |
||||||
|
} |
||||||
|
/* end multiselect */ |
||||||
|
|
||||||
|
|
||||||
|
.select2-result-selectable .select2-match, |
||||||
|
.select2-result-unselectable .select2-match { |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-offscreen, .select2-offscreen:focus { |
||||||
|
clip: rect(0 0 0 0) !important; |
||||||
|
width: 1px !important; |
||||||
|
height: 1px !important; |
||||||
|
border: 0 !important; |
||||||
|
margin: 0 !important; |
||||||
|
padding: 0 !important; |
||||||
|
overflow: hidden !important; |
||||||
|
position: absolute !important; |
||||||
|
outline: 0 !important; |
||||||
|
left: 0px !important; |
||||||
|
top: 0px !important; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-display-none { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
.select2-measure-scrollbar { |
||||||
|
position: absolute; |
||||||
|
top: -10000px; |
||||||
|
left: -10000px; |
||||||
|
width: 100px; |
||||||
|
height: 100px; |
||||||
|
overflow: scroll; |
||||||
|
} |
||||||
|
/* Retina-ize icons */ |
||||||
|
|
||||||
|
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 144dpi) { |
||||||
|
.select2-search input, .select2-search-choice-close, .select2-container .select2-choice abbr, .select2-container .select2-choice .select2-arrow b { |
||||||
|
background-image: url('select2x2.png') !important; |
||||||
|
background-repeat: no-repeat !important; |
||||||
|
background-size: 60px 40px !important; |
||||||
|
} |
||||||
|
.select2-search input { |
||||||
|
background-position: 100% -21px !important; |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,36 @@ |
|||||||
|
{ |
||||||
|
"name": "select2", |
||||||
|
"title": "Select2", |
||||||
|
"description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", |
||||||
|
"keywords": [ |
||||||
|
"select", |
||||||
|
"autocomplete", |
||||||
|
"typeahead", |
||||||
|
"dropdown", |
||||||
|
"multiselect", |
||||||
|
"tag", |
||||||
|
"tagging" |
||||||
|
], |
||||||
|
"version": "3.4.5", |
||||||
|
"author": { |
||||||
|
"name": "Igor Vaynberg", |
||||||
|
"url": "https://github.com/ivaynberg" |
||||||
|
}, |
||||||
|
"licenses": [ |
||||||
|
{ |
||||||
|
"type": "Apache", |
||||||
|
"url": "http://www.apache.org/licenses/LICENSE-2.0" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "GPL v2", |
||||||
|
"url": "http://www.gnu.org/licenses/gpl-2.0.html" |
||||||
|
} |
||||||
|
], |
||||||
|
"bugs": "https://github.com/ivaynberg/select2/issues", |
||||||
|
"homepage": "http://ivaynberg.github.com/select2", |
||||||
|
"docs": "http://ivaynberg.github.com/select2/", |
||||||
|
"download": "https://github.com/ivaynberg/select2/tags", |
||||||
|
"dependencies": { |
||||||
|
"jquery": ">=1.7.1" |
||||||
|
} |
||||||
|
} |
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 613 B |
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Arabic translation. |
||||||
|
*
|
||||||
|
* Author: Your Name <amedhat3@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "لا توجد نتائج"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "من فضلك أدخل " + n + " حروف أكثر"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "من فضلك أحذف " + n + " حروف"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "يمكنك ان تختار " + limit + " أختيارات فقط"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "تحمل المذيد من النتائج ..."; }, |
||||||
|
formatSearching: function () { return "جاري البحث ..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 <Language> translation. |
||||||
|
*
|
||||||
|
* Author: Lubomir Vikev <lubomirvikev@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Няма намерени съвпадения"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n == 1 ? "" : "а"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n == 1? "" : "а"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit == 1 ? " избор" : " избора"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Зареждат се още..."; }, |
||||||
|
formatSearching: function () { return "Търсене..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Catalan translation. |
||||||
|
*
|
||||||
|
* Author: David Planella <david.planella@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "No s'ha trobat cap coincidència"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats..."; }, |
||||||
|
formatSearching: function () { return "S'està cercant..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,49 @@ |
|||||||
|
/** |
||||||
|
* Select2 Czech translation. |
||||||
|
*
|
||||||
|
* Author: Michal Marek <ahoj@michal-marek.cz> |
||||||
|
* Author - sklonovani: David Vallner <david@vallner.net> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
// use text for the numbers 2 through 4
|
||||||
|
var smallNumbers = { |
||||||
|
2: function(masc) { return (masc ? "dva" : "dvě"); }, |
||||||
|
3: function() { return "tři"; }, |
||||||
|
4: function() { return "čtyři"; } |
||||||
|
} |
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nenalezeny žádné položky"; }, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
if (n == 1) { |
||||||
|
return "Prosím zadejte ještě jeden znak"; |
||||||
|
} else if (n <= 4) { |
||||||
|
return "Prosím zadejte ještě další "+smallNumbers[n](true)+" znaky"; |
||||||
|
} else { |
||||||
|
return "Prosím zadejte ještě dalších "+n+" znaků"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
if (n == 1) { |
||||||
|
return "Prosím zadejte o jeden znak méně"; |
||||||
|
} else if (n <= 4) { |
||||||
|
return "Prosím zadejte o "+smallNumbers[n](true)+" znaky méně"; |
||||||
|
} else { |
||||||
|
return "Prosím zadejte o "+n+" znaků méně"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
if (limit == 1) { |
||||||
|
return "Můžete zvolit jen jednu položku"; |
||||||
|
} else if (limit <= 4) { |
||||||
|
return "Můžete zvolit maximálně "+smallNumbers[limit](false)+" položky"; |
||||||
|
} else { |
||||||
|
return "Můžete zvolit maximálně "+limit+" položek"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { return "Načítají se další výsledky..."; }, |
||||||
|
formatSearching: function () { return "Vyhledávání..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Danish translation. |
||||||
|
* |
||||||
|
* Author: Anders Jenbo <anders@jenbo.dk> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Ingen resultater fundet"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; }, |
||||||
|
formatSearching: function () { return "Søger…"; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 German translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse..."; }, |
||||||
|
formatSearching: function () { return "Suche..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 <Language> translation. |
||||||
|
*
|
||||||
|
* Author: Your Name <your@email> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n == 1 ? "" : "υς") + " χαρακτήρ" + (n == 1 ? "α" : "ες"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n == 1 ? "α" : "ες"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit == 1 ? "ο" : "α"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων..."; }, |
||||||
|
formatSearching: function () { return "Αναζήτηση..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 <Language> translation. |
||||||
|
* |
||||||
|
* Author: Your Name <your@email> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "No matches found"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1 ? "" : "s"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Loading more results..."; }, |
||||||
|
formatSearching: function () { return "Searching..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Spanish translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "No se encontraron resultados"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Cargando más resultados..."; }, |
||||||
|
formatSearching: function () { return "Buscando..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Estonian translation. |
||||||
|
* |
||||||
|
* Author: Kuldar Kalvik <kuldar@kalvik.ee> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Tulemused puuduvad"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; }, |
||||||
|
formatSearching: function () { return "Otsin.."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,43 @@ |
|||||||
|
/** |
||||||
|
* Select2 Basque translation. |
||||||
|
* |
||||||
|
* Author: Julen Ruiz Aizpuru <julenx at gmail dot com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { |
||||||
|
return "Ez da bat datorrenik aurkitu"; |
||||||
|
}, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
if (n === 1) { |
||||||
|
return "Idatzi karaktere bat gehiago"; |
||||||
|
} else { |
||||||
|
return "Idatzi " + n + " karaktere gehiago"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
if (n === 1) { |
||||||
|
return "Idatzi karaktere bat gutxiago"; |
||||||
|
} else { |
||||||
|
return "Idatzi " + n + " karaktere gutxiago"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
if (limit === 1 ) { |
||||||
|
return "Elementu bakarra hauta dezakezu"; |
||||||
|
} else { |
||||||
|
return limit + " elementu hauta ditzakezu soilik"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { |
||||||
|
return "Emaitza gehiago kargatzen..."; |
||||||
|
}, |
||||||
|
formatSearching: function () { |
||||||
|
return "Bilatzen..."; |
||||||
|
} |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,28 @@ |
|||||||
|
/** |
||||||
|
* Select2 Finnish translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { |
||||||
|
return "Ei tuloksia"; |
||||||
|
}, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
return "Ole hyvä ja anna " + n + " merkkiä lisää"; |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
return "Ole hyvä ja anna " + n + " merkkiä vähemmän"; |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
return "Voit valita ainoastaan " + limit + " kpl"; |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { |
||||||
|
return "Ladataan lisää tuloksia..."; |
||||||
|
}, |
||||||
|
formatSearching: function () { |
||||||
|
return "Etsitään..."; |
||||||
|
} |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 French translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Aucun résultat trouvé"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de plus"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Merci de supprimer " + n + " caractère" + (n == 1? "" : "s"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires..."; }, |
||||||
|
formatSearching: function () { return "Recherche en cours..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,43 @@ |
|||||||
|
/** |
||||||
|
* Select2 Galician translation |
||||||
|
*
|
||||||
|
* Author: Leandro Regueiro <leandro.regueiro@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { |
||||||
|
return "Non se atoparon resultados"; |
||||||
|
}, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
if (n === 1) { |
||||||
|
return "Engada un carácter"; |
||||||
|
} else { |
||||||
|
return "Engada " + n + " caracteres"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
if (n === 1) { |
||||||
|
return "Elimine un carácter"; |
||||||
|
} else { |
||||||
|
return "Elimine " + n + " caracteres"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
if (limit === 1 ) { |
||||||
|
return "Só pode seleccionar un elemento"; |
||||||
|
} else { |
||||||
|
return "Só pode seleccionar " + limit + " elementos"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { |
||||||
|
return "Cargando máis resultados..."; |
||||||
|
}, |
||||||
|
formatSearching: function () { |
||||||
|
return "Buscando..."; |
||||||
|
} |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Hebrew translation. |
||||||
|
* |
||||||
|
* Author: Yakir Sitbon <http://www.yakirs.net/>
|
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "לא נמצאו התאמות"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות..."; }, |
||||||
|
formatSearching: function () { return "מחפש..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,42 @@ |
|||||||
|
/** |
||||||
|
* Select2 Croatian translation. |
||||||
|
* |
||||||
|
* Author: Edi Modrić <edi.modric@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
var specialNumbers = { |
||||||
|
1: function(n) { return (n % 100 != 11 ? "znak" : "znakova"); }, |
||||||
|
2: function(n) { return (n % 100 != 12 ? "znaka" : "znakova"); }, |
||||||
|
3: function(n) { return (n % 100 != 13 ? "znaka" : "znakova"); }, |
||||||
|
4: function(n) { return (n % 100 != 14 ? "znaka" : "znakova"); } |
||||||
|
}; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nema rezultata"; }, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
var nMod10 = n % 10; |
||||||
|
|
||||||
|
if (nMod10 > 0 && nMod10 < 5) { |
||||||
|
return "Unesite još " + n + " " + specialNumbers[nMod10](n); |
||||||
|
} |
||||||
|
|
||||||
|
return "Unesite još " + n + " znakova"; |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
var nMod10 = n % 10; |
||||||
|
|
||||||
|
if (nMod10 > 0 && nMod10 < 5) { |
||||||
|
return "Unesite " + n + " " + specialNumbers[nMod10](n) + " manje"; |
||||||
|
} |
||||||
|
|
||||||
|
return "Unesite " + n + " znakova manje"; |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { return "Maksimalan broj odabranih stavki je " + limit; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Učitavanje rezultata..."; }, |
||||||
|
formatSearching: function () { return "Pretraga..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Hungarian translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nincs találat."; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " kerekterrel több mint kellene."; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Töltés..."; }, |
||||||
|
formatSearching: function () { return "Keresés..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Indonesian translation. |
||||||
|
*
|
||||||
|
* Author: Ibrahim Yusuf <ibrahim7usuf@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi" + (n == 1 ? "" : "s"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapus " + n + " huruf" + (n == 1 ? "" : "s"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Mengambil data..."; }, |
||||||
|
formatSearching: function () { return "Mencari..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
/** |
||||||
|
* Select2 Icelandic translation. |
||||||
|
*
|
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Ekkert fannst"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n == 1 ? "" : "i") + " í viðbót"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n == 1 ? "" : "i"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður..."; },
|
||||||
|
formatSearching: function () { return "Leita..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Italian translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Caricamento in corso..."; }, |
||||||
|
formatSearching: function () { return "Ricerca..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Japanese translation. |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "該当なし"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "後" + n + "文字入れてください"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "検索文字列が" + n + "文字長すぎます"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "最多で" + limit + "項目までしか選択できません"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "読込中・・・"; }, |
||||||
|
formatSearching: function () { return "検索中・・・"; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 <Language> translation. |
||||||
|
*
|
||||||
|
* Author: Swen Mun <longfinfunnel@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "결과 없음"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "너무 짧습니다. "+n+"글자 더 입력해주세요."; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "너무 깁니다. "+n+"글자 지워주세요."; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "최대 "+limit+"개까지만 선택하실 수 있습니다."; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "불러오는 중…"; }, |
||||||
|
formatSearching: function () { return "검색 중…"; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
/** |
||||||
|
* Select2 lithuanian translation. |
||||||
|
*
|
||||||
|
* Author: CRONUS Karmalakas <cronus dot karmalakas at gmail dot com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Atitikmenų nerasta"; }, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length, |
||||||
|
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); |
||||||
|
return "Įrašykite dar " + n + " simbol" + suffix; |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max, |
||||||
|
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); |
||||||
|
return "Pašalinkite " + n + " simbol" + suffix; |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
var n = limit, |
||||||
|
suffix = (n % 10 == 1) && (n % 100 != 11) ? 'ą' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'us' : 'ų'); |
||||||
|
return "Jūs galite pasirinkti tik " + limit + " element" + suffix; |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų..."; }, |
||||||
|
formatSearching: function () { return "Ieškoma..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,16 @@ |
|||||||
|
/** |
||||||
|
* Select2 Latvian translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Sakritību nav"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : (/^\d*[1]$/im.test(n)? "u" : "us")); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : (/^\d*[1]$/im.test(n)? "u" : "iem")) + " mazāk"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : (/^\d*[1]$/im.test(limit)? "u" : "us")); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Datu ielāde..."; }, |
||||||
|
formatSearching: function () { return "Meklēšana..."; } |
||||||
|
}); |
||||||
|
|
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Macedonian translation. |
||||||
|
*
|
||||||
|
* Author: Marko Aleksic <psybaron@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Нема пронајдено совпаѓања"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Ве молиме внесете уште " + n + " карактер" + (n == 1 ? "" : "и"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Ве молиме внесете " + n + " помалку карактер" + (n == 1? "" : "и"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Можете да изберете само " + limit + " ставк" + (limit == 1 ? "а" : "и"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Вчитување резултати..."; }, |
||||||
|
formatSearching: function () { return "Пребарување..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Malay translation. |
||||||
|
*
|
||||||
|
* Author: Kepoweran <kepoweran@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan..."; }, |
||||||
|
formatSearching: function () { return "Mencari..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Dutch translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Geen resultaten gevonden"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " meer in"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " minder in"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Meer resultaten laden..."; }, |
||||||
|
formatSearching: function () { return "Zoeken..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
/** |
||||||
|
* Select2 Norwegian translation. |
||||||
|
* |
||||||
|
* Author: Torgeir Veimo <torgeir.veimo@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Ingen treff"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Laster flere resultater..."; }, |
||||||
|
formatSearching: function () { return "Søker..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
|
|
||||||
@ -0,0 +1,37 @@ |
|||||||
|
/** |
||||||
|
* Select2 Polish translation. |
||||||
|
*
|
||||||
|
* Author: Jan Kondratowicz <jan@kondratowicz.pl> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
var pl_suffix = function(n) { |
||||||
|
if(n == 1) return ""; |
||||||
|
if((n%100 > 1 && n%100 < 5) || (n%100 > 20 && n%10 > 1 && n%10 < 5)) return "i"; |
||||||
|
return "ów"; |
||||||
|
}; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { |
||||||
|
return "Brak wyników."; |
||||||
|
}, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
return "Wpisz jeszcze " + n + " znak" + pl_suffix(n) + "."; |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
return "Wpisana fraza jest za długa o " + n + " znak" + pl_suffix(n) + "."; |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
return "Możesz zaznaczyć najwyżej " + limit + " element" + pl_suffix(limit) + "."; |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { |
||||||
|
return "Ładowanie wyników..."; |
||||||
|
}, |
||||||
|
formatSearching: function () { |
||||||
|
return "Szukanie..."; |
||||||
|
} |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Brazilian Portuguese translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nenhum resultado encontrado"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Informe " + n + " caractere" + (n == 1? "" : "s"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caractere" + (n == 1? "" : "s"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Carregando mais resultados..."; }, |
||||||
|
formatSearching: function () { return "Buscando..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Portuguese (Portugal) translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nenhum resultado encontrado"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "A carregar mais resultados..."; }, |
||||||
|
formatSearching: function () { return "A pesquisar..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Romanian translation. |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nu a fost găsit nimic"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Se încarcă..."; }, |
||||||
|
formatSearching: function () { return "Căutare..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,15 @@ |
|||||||
|
/** |
||||||
|
* Select2 Russian translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Совпадений не найдено"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Пожалуйста, введите еще " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5) ? "а" : "ов")); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Пожалуйста, введите на " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5)? "а" : "ов")) + " меньше"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit == 1 ? "а" : "ов"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Загрузка данных..."; }, |
||||||
|
formatSearching: function () { return "Поиск..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,48 @@ |
|||||||
|
/** |
||||||
|
* Select2 Slovak translation. |
||||||
|
* |
||||||
|
* Author: David Vallner <david@vallner.net> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
// use text for the numbers 2 through 4
|
||||||
|
var smallNumbers = { |
||||||
|
2: function(masc) { return (masc ? "dva" : "dve"); }, |
||||||
|
3: function() { return "tri"; }, |
||||||
|
4: function() { return "štyri"; } |
||||||
|
} |
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Nenašli sa žiadne položky"; }, |
||||||
|
formatInputTooShort: function (input, min) { |
||||||
|
var n = min - input.length; |
||||||
|
if (n == 1) { |
||||||
|
return "Prosím zadajte ešte jeden znak"; |
||||||
|
} else if (n <= 4) { |
||||||
|
return "Prosím zadajte ešte ďalšie "+smallNumbers[n](true)+" znaky"; |
||||||
|
} else { |
||||||
|
return "Prosím zadajte ešte ďalších "+n+" znakov"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatInputTooLong: function (input, max) { |
||||||
|
var n = input.length - max; |
||||||
|
if (n == 1) { |
||||||
|
return "Prosím zadajte o jeden znak menej"; |
||||||
|
} else if (n <= 4) { |
||||||
|
return "Prosím zadajte o "+smallNumbers[n](true)+" znaky menej"; |
||||||
|
} else { |
||||||
|
return "Prosím zadajte o "+n+" znakov menej"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatSelectionTooBig: function (limit) { |
||||||
|
if (limit == 1) { |
||||||
|
return "Môžete zvoliť len jednu položku"; |
||||||
|
} else if (limit <= 4) { |
||||||
|
return "Môžete zvoliť najviac "+smallNumbers[limit](false)+" položky"; |
||||||
|
} else { |
||||||
|
return "Môžete zvoliť najviac "+limit+" položiek"; |
||||||
|
} |
||||||
|
}, |
||||||
|
formatLoadMore: function (pageNumber) { return "Načítavajú sa ďalšie výsledky..."; }, |
||||||
|
formatSearching: function () { return "Vyhľadávanie..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Swedish translation. |
||||||
|
* |
||||||
|
* Author: Jens Rantil <jens.rantil@telavox.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Inga träffar"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Laddar fler resultat..."; }, |
||||||
|
formatSearching: function () { return "Söker..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 Turkish translation. |
||||||
|
*
|
||||||
|
* Author: Salim KAYABAŞI <salim.kayabasi@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Sonuç bulunamadı"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Daha fazla..."; }, |
||||||
|
formatSearching: function () { return "Aranıyor..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
/** |
||||||
|
* Select2 <Language> translation. |
||||||
|
*
|
||||||
|
* Author: bigmihail <bigmihail@bigmir.net> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Нічого не знайдено"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка ще " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ]; }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка на " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ] + " менше"; }, |
||||||
|
formatSelectionTooBig: function (limit) {var s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Ви можете вибрати лише " + limit + " елемент" + s[ (limit%100>4 && limit%100<=20)? 2 : p[Math.min(limit%10, 5)] ]; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Завантаження даних..."; }, |
||||||
|
formatSearching: function () { return "Пошук..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,18 @@ |
|||||||
|
/** |
||||||
|
* Select2 Vietnamese translation. |
||||||
|
*
|
||||||
|
* Author: Long Nguyen <olragon@gmail.com> |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "Không tìm thấy kết quả"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự" + (n == 1 ? "" : "s"); }, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự" + (n == 1? "" : "s"); }, |
||||||
|
formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " tùy chọn" + (limit == 1 ? "" : "s"); }, |
||||||
|
formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả..."; }, |
||||||
|
formatSearching: function () { return "Đang tìm..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
|
|
||||||
@ -0,0 +1,14 @@ |
|||||||
|
/** |
||||||
|
* Select2 Chinese translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "没有找到匹配项"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";}, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";}, |
||||||
|
formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "加载结果中..."; }, |
||||||
|
formatSearching: function () { return "搜索中..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
/** |
||||||
|
* Select2 Traditional Chinese translation |
||||||
|
*/ |
||||||
|
(function ($) { |
||||||
|
"use strict"; |
||||||
|
$.extend($.fn.select2.defaults, { |
||||||
|
formatNoMatches: function () { return "沒有找到相符的項目"; }, |
||||||
|
formatInputTooShort: function (input, min) { var n = min - input.length; return "請再輸入" + n + "個字元";}, |
||||||
|
formatInputTooLong: function (input, max) { var n = input.length - max; return "請刪掉" + n + "個字元";}, |
||||||
|
formatSelectionTooBig: function (limit) { return "你只能選擇最多" + limit + "項"; }, |
||||||
|
formatLoadMore: function (pageNumber) { return "載入中..."; }, |
||||||
|
formatSearching: function () { return "搜尋中..."; } |
||||||
|
}); |
||||||
|
})(jQuery); |
||||||
|
After Width: | Height: | Size: 845 B |
@ -0,0 +1,29 @@ |
|||||||
|
-- Extra DB changes needed for new features in work tool |
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS c_student_publication_rel_document ( |
||||||
|
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||||
|
work_id INT NOT NULL, |
||||||
|
document_id INT NOT NULL, |
||||||
|
c_id INT NOT NULL |
||||||
|
); |
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS c_student_publication_rel_user ( |
||||||
|
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||||
|
work_id INT NOT NULL, |
||||||
|
user_id INT NOT NULL, |
||||||
|
c_id INT NOT NULL |
||||||
|
); |
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS c_student_publication_comment ( |
||||||
|
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, |
||||||
|
work_id INT NOT NULL, |
||||||
|
c_id INT NOT NULL, |
||||||
|
comment text, |
||||||
|
user_id int NOT NULL, |
||||||
|
sent_at datetime NOT NULL |
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8; |
||||||
|
|
||||||
|
ALTER TABLE c_student_publication ADD COLUMN document_id int DEFAULT 0; |
||||||
|
|
||||||
|
-- Update configuration.php: |
||||||
|
-- $_configuration['add_document_to_work'] = true; |
||||||
Loading…
Reference in new issue