mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
Merged up to 1.15.0
This commit is contained in:
56
CHANGELOG
56
CHANGELOG
@@ -1,7 +1,63 @@
|
||||
queXS 2.0.0 - Changes since 1.15.0
|
||||
|
||||
queXS 2.0.0 removes the included version of Limesurvey 1.91+ and instead relies on an existing install of Limesurvey
|
||||
of at least version 2.0, with the JSON remote control API enabled to collect data.
|
||||
|
||||
Therefore queXS 2.0.0 has an additional requirement of a separate installation of Limesurvey with the JSON RPC API enabled.
|
||||
|
||||
Both the 1.x and 2.x branches will continue to be maintained for now. Be warned: If you choose to upgrade to the 2.0.0 version,
|
||||
there is "no going back" unless you restore from a backup.
|
||||
|
||||
Due to the previous tight integration of queXS and Limesurvey, some noteable features are NOT supported in the 2.x series, including:
|
||||
|
||||
- Data export:
|
||||
* Exporting data "by sample" or "by questionnaire" from Limesurvey directly
|
||||
* queXS paradata export from within Limesurvey
|
||||
|
||||
- Integration:
|
||||
* {SAMPLE:xxx} replacement fields in Limesurvey (you will need to replace these with {TOKEN:attribute_1}, {TOKEN:attribute_2}, etc)
|
||||
* queXS replacement fields including: CALLATTEMPTS, ONAPPOINTMENT, PERIODOFDAY, APPOINTMENTDATE, APPOINTMENTTIME, APPOINTMENTNUMBER, PERCCOMPLETE, ENDINTERVIEWURL, STARTINTERVIEWURL
|
||||
* Altering of template / mode of delivery for self complete surveys versus interviewer administered surveys
|
||||
|
||||
- Interface:
|
||||
* Automatically proceedingt to next question on answer selection (no need to press "NEXT")
|
||||
|
||||
Please note that you may be able to implement some of these in Limesurvey directly or work around them. If they are critical for your operations,
|
||||
please do not proceed with the upgrade to queXS 2.0.0
|
||||
|
||||
|
||||
|
||||
Upgrade procedure from 1.15.0 to 2.0.0:
|
||||
|
||||
|
||||
|
||||
ALTER TABLE `questionnaire` ADD `remote_id` INT NOT NULL ,
|
||||
ADD INDEX ( `remote_id` ) ;
|
||||
|
||||
|
||||
queXS 1.15.0 - Changes since 1.14.4
|
||||
|
||||
This release contains a weighted timeslot feature to allow for varying numbers of attempts in particular timeslots,
|
||||
as well as features and fixes to web/CATI mode integration.
|
||||
|
||||
New feature: Weighted timeslots (allow more attempts in particular timeslots)
|
||||
New feature: Allow for tokens to be imported in a queXS sample
|
||||
|
||||
Fixed issue: Database structure not optimised for sample_var_import_restrict table
|
||||
Fixed issue: Cases being generated without a valid email address when importing to Limesurvey
|
||||
Fixed issue: Limesurvey save form not displaying
|
||||
Fixed issue: Limesurvey welcome screen not displaying
|
||||
Fixed issue: Admin permissions not propogating to Limesurvey
|
||||
Fixed issue: Mode of delivery (single page, group by group, etc) not determined if no token in queXS
|
||||
|
||||
Database changes required:
|
||||
|
||||
INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', '');
|
||||
ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `var` ) ;
|
||||
ALTER TABLE `sample_import_var_restrict` ADD INDEX ( `sample_import_id` ) ;
|
||||
ALTER TABLE `questionnaire_timeslot` ADD `weight` INT( 11 ) NOT NULL DEFAULT '1';
|
||||
ALTER TABLE `questionnaire_sample_timeslot` ADD `weight` INT( 11 ) NOT NULL DEFAULT '1';
|
||||
|
||||
queXS 1.14.4 - Changes since 1.14.3
|
||||
|
||||
Fourth bug fix release.
|
||||
|
||||
@@ -81,7 +81,6 @@ global $db;
|
||||
|
||||
$error = "";
|
||||
|
||||
|
||||
if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['call_max']) && isset($_GET['call_attempt_max']))
|
||||
{
|
||||
//need to add sample to questionnaire
|
||||
@@ -106,7 +105,6 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
|
||||
|
||||
if (isset($_GET['generatecases']))
|
||||
{
|
||||
|
||||
//find the number of sample variables required
|
||||
$sql = "SELECT count(*)
|
||||
FROM sample_import_var_restrict
|
||||
@@ -122,28 +120,31 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample']) && isset($_GET['
|
||||
}
|
||||
|
||||
include_once("../functions/functions.operator.php");
|
||||
include_once("../functions/functions.limesurvey.php");
|
||||
|
||||
$db->StartTrans();
|
||||
|
||||
$lime_sid = $db->GetOne("SELECT lime_sid FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'");
|
||||
$testing = $db->GetOne("SELECT testing FROM questionnaire WHERE questionnaire_id = '$questionnaire_id'");
|
||||
|
||||
//generate one case for each sample record and set outcome to 41
|
||||
$sql = "SELECT sample_id
|
||||
FROM sample
|
||||
WHERE import_id = '$sid'";
|
||||
//generate one case for each sample record and set outcome to 41 (where an email address provided)
|
||||
$sql = "SELECT s.sample_id, sv.val as email
|
||||
FROM sample as s
|
||||
LEFT JOIN (sample_var as sv, sample_import_var_restrict as sivr) ON (sv.sample_id = s.sample_id and sv.var_id = sivr.var_id and sivr.type = 8)
|
||||
WHERE s.import_id = '$sid'";
|
||||
|
||||
$rs = $db->GetAll($sql);
|
||||
|
||||
foreach($rs as $r)
|
||||
{
|
||||
set_time_limit(30);
|
||||
if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, $addsample) === false) {
|
||||
$error = "Could not add case - please ensure there enough additional attributes available in your Limesurvey participant table";
|
||||
break;
|
||||
if (validate_email($r['email'])) {
|
||||
if (add_case($r['sample_id'],$questionnaire_id,"NULL",$testing,41, $addsample) === false) {
|
||||
$error = "Could not add case - please ensure there enough additional attributes available in your Limesurvey participant table";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$db->CompleteTrans();
|
||||
}
|
||||
}
|
||||
@@ -300,6 +301,9 @@ xhtml_head(T_("Assign samples to questionnaires"),true,$css,$js_head,false,false
|
||||
|
||||
print "<a href='' onclick='history.back();return false;' class='btn btn-default pull-left'><i class='fa fa-chevron-left fa-lg text-primary'></i> " . T_("Go back") . "</a>";
|
||||
|
||||
if (!empty($error)) {
|
||||
print "<div class='alert text-danger'>$error</div>";
|
||||
}
|
||||
|
||||
$questionnaire_id = false;
|
||||
if (isset($_GET['questionnaire_id'])) $questionnaire_id = bigintval($_GET['questionnaire_id']);
|
||||
@@ -401,7 +405,7 @@ if ($questionnaire_id != false)
|
||||
<div class="col-sm-1"><input type="checkbox" id = "allownew" name="allownew" checked="checked" class="col-sm-1" data-toggle="toggle" data-size="small" data-on="<?php echo T_("Yes");?>" data-off="<?php echo T_("No");?>" data-width="85"/></div>
|
||||
<label class="control-label text-info"><?php ;?></label><br/><br/><br/>
|
||||
|
||||
<label for="generatecases" class="control-label col-lg-4"><?php echo T_("Generate cases for all sample records and set outcome to 'Self completion email invitation sent'?");?></label>
|
||||
<label for="generatecases" class="control-label col-lg-4"><?php echo T_("Generate cases for all sample records with a valid email address and set outcome to 'Self completion email invitation sent'?");?></label>
|
||||
<div class="col-sm-1"><input type="checkbox" id = "generatecases" name="generatecases" class="col-sm-1" data-toggle="toggle" data-size="small" data-on="<?php echo T_("Yes");?>" data-off="<?php echo T_("No");?>" data-width="85"/></div>
|
||||
<em class="control-label"> * <?php echo T_("Ideal if you intend to send an email invitation to sample members before attempting to call using queXS") . " " . T_("Please ensure there are sufficient additional attribute fields in your Limesurvey questionnaire so that sample records can be inserted."); ?></em>
|
||||
<div class='clearfix '></div></br>
|
||||
|
||||
@@ -105,9 +105,10 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['ca_availability_group']))
|
||||
//need to add availability_group to questionnaire
|
||||
$questionnaire_id = bigintval($_GET['questionnaire_id']);
|
||||
$availability_group = bigintval($_GET['ca_availability_group']);
|
||||
$weight = bigintval($_GET['weight']);
|
||||
|
||||
$sql = "INSERT INTO questionnaire_timeslot(questionnaire_id,availability_group_id)
|
||||
VALUES('$questionnaire_id','$availability_group')";
|
||||
$sql = "INSERT INTO questionnaire_timeslot(questionnaire_id,availability_group_id,weight)
|
||||
VALUES('$questionnaire_id','$availability_group','$weight')";
|
||||
$db->Execute($sql);
|
||||
}
|
||||
|
||||
@@ -131,9 +132,10 @@ if (isset($_GET['questionnaire_id']) && isset($_GET['sample_import_id']) && isse
|
||||
$questionnaire_id = bigintval($_GET['questionnaire_id']);
|
||||
$sample_import_id = bigintval($_GET['sample_import_id']);
|
||||
$availability_group = bigintval($_GET['qs_availability_group']);
|
||||
$weight = bigintval($_GET['weights']);
|
||||
|
||||
$sql = "INSERT INTO questionnaire_sample_timeslot (questionnaire_id,sample_import_id,availability_group_id)
|
||||
VALUES('$questionnaire_id','$sample_import_id','$availability_group')";
|
||||
$sql = "INSERT INTO questionnaire_sample_timeslot (questionnaire_id,sample_import_id,availability_group_id,weight)
|
||||
VALUES('$questionnaire_id','$sample_import_id','$availability_group','$weight')";
|
||||
$db->Execute($sql);
|
||||
}
|
||||
|
||||
@@ -216,11 +218,12 @@ print "</div>";
|
||||
print "<div class=col-sm-4><h2>" . T_("Call attempt time slots") . "</h2>";
|
||||
print "<div class='well'>" . T_("Assigning call attempt time slots to questionnaires will only allow cases to be attempted in a time slot for the n + 1th time where it has been attempted at least n times in all assigned timeslots. Please note timeslots must cover all possible time periods otherwise no cases will be available during missing timeslots.") ."</div>";
|
||||
|
||||
$sql = "SELECT q.availability_group_id,a.description as description, CONCAT('<a href=\'?questionnaire_id=$questionnaire_id&ca_ravailability_group=', q.availability_group_id,'\' >" . T_("Click to unassign") . "</a>') as link
|
||||
|
||||
FROM questionnaire_timeslot as q, availability_group as a
|
||||
WHERE q.availability_group_id = a.availability_group_id
|
||||
AND q.questionnaire_id = '$questionnaire_id'";
|
||||
$sql = "SELECT q.availability_group_id,a.description as description,
|
||||
CONCAT('<a href=\'?questionnaire_id=$questionnaire_id&ca_ravailability_group=', q.availability_group_id,'\' >" . T_("Click to unassign") . "</a>') as link,
|
||||
q.weight
|
||||
FROM questionnaire_timeslot as q, availability_group as a
|
||||
WHERE q.availability_group_id = a.availability_group_id
|
||||
AND q.questionnaire_id = '$questionnaire_id'";
|
||||
|
||||
$qs = $db->GetAll($sql);
|
||||
print "</br><div class='panel-body'>";
|
||||
@@ -231,7 +234,7 @@ print "<div class='well'>" . T_("Assigning call attempt time slots to questionna
|
||||
else
|
||||
{
|
||||
print "<h4>" . T_("Call attempt time slots selected for this questionnaire") . "</h4>";
|
||||
xhtml_table ($qs,array("availability_group_id","description","link"),false,"table table-hover");
|
||||
xhtml_table ($qs,array("description","weight","link"),array(T_("Availability group"),T_("Weight"),T_("Unassign")),"table table-hover");
|
||||
}
|
||||
print "</div>";
|
||||
|
||||
@@ -251,9 +254,15 @@ print "<div class='well'>" . T_("Assigning call attempt time slots to questionna
|
||||
{
|
||||
print "<option value=\"{$q['availability_group_id']}\">{$q['description']}</option>";
|
||||
}
|
||||
print "</select></div>
|
||||
<input type='hidden' name='questionnaire_id' value='$questionnaire_id'/>
|
||||
 <input type='submit' class='btn btn-default' name='add_ca_availability' value='" . TQ_("Add call attempt time slot") . "'/>
|
||||
print "</select></div>";
|
||||
?>
|
||||
<div>
|
||||
<label for="weight"><?php echo T_("Weighting (relative number of calls in this slot)");?></label>
|
||||
<div><input type="number" min="1" max="20" style="width:6em;" name="weight" id="weight" value="1" class="form-control"/></div>
|
||||
</div>
|
||||
<?php
|
||||
print "<input type='hidden' name='questionnaire_id' value='$questionnaire_id'/>
|
||||
 <div><input type='submit' class='btn btn-default' name='add_ca_availability' value='" . TQ_("Add call attempt time slot") . "'/></div>
|
||||
</form></div>";
|
||||
}
|
||||
print "</div>";
|
||||
@@ -270,7 +279,9 @@ print "<div class='well'>" . T_("Assigning call attempt time slots to questionna
|
||||
|
||||
if ($sample_import_id !== false)
|
||||
{
|
||||
$sql = "SELECT q.availability_group_id,a.description as description, CONCAT('<a href=\'?sample_import_id=$sample_import_id&questionnaire_id=$questionnaire_id&qs_ravailability_group=', q.availability_group_id,'\' >" . T_("Click to unassign") . "</a>') as link
|
||||
$sql = "SELECT q.availability_group_id,a.description as description,
|
||||
CONCAT('<a href=\'?sample_import_id=$sample_import_id&questionnaire_id=$questionnaire_id&qs_ravailability_group=', q.availability_group_id,'\' >" . T_("Click to unassign") . "</a>') as link,
|
||||
q.weight
|
||||
FROM questionnaire_sample_timeslot as q, availability_group as a
|
||||
WHERE q.availability_group_id = a.availability_group_id
|
||||
AND q.questionnaire_id = '$questionnaire_id'
|
||||
@@ -285,7 +296,7 @@ print "<div class='well'>" . T_("Assigning call attempt time slots to questionna
|
||||
else
|
||||
{
|
||||
print "<h4>" . T_("Call attempt time slots selected for this sample") . ":</h4>";
|
||||
xhtml_table ($qs,array("availability_group_id","description","link"),false,"table table-hover");
|
||||
xhtml_table ($qs,array("description","weight","link"),array(T_("Availability group"),T_("Weight"),T_("Unassign")),"table table-hover");
|
||||
}
|
||||
|
||||
$sql = "SELECT si.availability_group_id,si.description
|
||||
@@ -304,8 +315,14 @@ print "<div class='well'>" . T_("Assigning call attempt time slots to questionna
|
||||
{
|
||||
print "<option value=\"{$q['availability_group_id']}\">{$q['description']}</option>";
|
||||
}
|
||||
print "</select></div>
|
||||
<input type='hidden' name='questionnaire_id' value='$questionnaire_id'/>
|
||||
print "</select></div>";
|
||||
?>
|
||||
<div>
|
||||
<label for="weights"><?php echo T_("Weighting (relative number of calls in this slot)");?></label>
|
||||
<div><input type="number" min="1" max="20" style="width:6em;" name="weights" id="weights" value="1" class="form-control"/></div>
|
||||
</div>
|
||||
<?php
|
||||
print "<input type='hidden' name='questionnaire_id' value='$questionnaire_id'/>
|
||||
<input type='hidden' name='sample_import_id' value='$sample_import_id'/>
|
||||
 <input type='submit' name='add_qs_availability' class='btn btn-default' value='" . T_("Add call attempt time slot for sample") . "'/>
|
||||
</form></div>";
|
||||
|
||||
@@ -72,7 +72,11 @@ if (isset($_POST['submit']))
|
||||
SET users_name = " . $db->qstr($_POST['username']) . ",
|
||||
email = " . $db->qstr($_POST['email']) . ",
|
||||
full_name = " . $db->qstr($_POST['firstName']) . ",
|
||||
superadmin = $superadmin";
|
||||
superadmin = $superadmin,
|
||||
create_survey = $superadmin,
|
||||
configurator = $superadmin,
|
||||
manage_template = $superadmin,
|
||||
manage_label = $superadmin";
|
||||
|
||||
if (!empty($_POST['password']))
|
||||
{
|
||||
|
||||
@@ -117,10 +117,9 @@ if (isset($_POST['operator']) && isset($_POST['adduser']))
|
||||
|
||||
include_once("../include/sha256.php");
|
||||
|
||||
//Insert into lime_users
|
||||
//Insert into users
|
||||
$sql = "INSERT INTO users (`users_name`,`password`,`full_name`,`superadmin`,`email`)
|
||||
VALUES ($operator, '" . SHA256::hashing($_POST['password']) . "',$firstname,$admin,$email)";
|
||||
|
||||
$db->Execute($sql);
|
||||
|
||||
if (FREEPBX_PATH !== false)
|
||||
|
||||
@@ -275,11 +275,8 @@ while (!is_process_killed($process_id)) //check if process killed every $sleepin
|
||||
WHERE c.current_operator_id IS NULL
|
||||
AND c.questionnaire_id = '$questionnaire_id'
|
||||
AND ((apn.appointment_id IS NOT NULL) OR casa.case_id IS NULL OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end ))
|
||||
|
||||
AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
|
||||
AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
|
||||
AND ((apn.appointment_id IS NOT NULL) OR qast.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_timeslot.weight) FROM `call_attempt`, availability, questionnaire_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_timeslot.availability_group_id = availability.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_timeslot.weight) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND ((apn.appointment_id IS NOT NULL) OR qasts.questionnaire_id IS NULL OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_sample_timeslot.weight) FROM `call_attempt`, availability, questionnaire_sample_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.availability_group_id = availability.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_sample_timeslot.weight) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND (a.call_id is NULL or (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC')))
|
||||
AND ap.case_id is NULL
|
||||
AND ((qsep.questionnaire_id is NULL) or qsep.exclude = 0)
|
||||
|
||||
@@ -760,6 +760,7 @@ CREATE TABLE `questionnaire_sample_timeslot` (
|
||||
`questionnaire_id` bigint(20) NOT NULL,
|
||||
`sample_import_id` bigint(20) NOT NULL,
|
||||
`availability_group_id` bigint(20) NOT NULL,
|
||||
`weight` int(11) NOT NULL DEFAULT '1',
|
||||
PRIMARY KEY (`questionnaire_id`,`availability_group_id`,`sample_import_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
@@ -772,6 +773,7 @@ CREATE TABLE `questionnaire_sample_timeslot` (
|
||||
CREATE TABLE `questionnaire_timeslot` (
|
||||
`questionnaire_id` bigint(20) NOT NULL,
|
||||
`availability_group_id` bigint(20) NOT NULL,
|
||||
`weight` int(11) NOT NULL DEFAULT '1',
|
||||
PRIMARY KEY (`questionnaire_id`,`availability_group_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
@@ -865,8 +867,10 @@ CREATE TABLE `sample_import_var_restrict` (
|
||||
`var` char(128) COLLATE utf8_unicode_ci DEFAULT NULL,
|
||||
`type` smallint(10) unsigned NOT NULL,
|
||||
`restrict` tinyint(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`var_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
PRIMARY KEY (`var_id`),
|
||||
KEY (`var`),
|
||||
KEY (`sample_import_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
@@ -943,6 +947,7 @@ INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(5, 'Postco
|
||||
INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(6, 'Respondent first name', '');
|
||||
INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(7, 'Respondent last name', '');
|
||||
INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(8, 'Email address', '');
|
||||
INSERT INTO `sample_var_type` (`type`, `description`, `table`) VALUES(9, 'Token', '');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
||||
@@ -95,6 +95,18 @@ function verify_fields($fields)
|
||||
}
|
||||
}
|
||||
|
||||
//check that only 0 or 1 token fields selected
|
||||
$count = 0;
|
||||
foreach($names as $val)
|
||||
{
|
||||
if ($val == 9) $count++;
|
||||
}
|
||||
|
||||
if ($count > 1)
|
||||
{
|
||||
return T_("No more than one field may be a token field");
|
||||
}
|
||||
|
||||
//check that there is one and one only primary phone selected
|
||||
$count = 0;
|
||||
foreach($names as $val)
|
||||
|
||||
@@ -333,10 +333,23 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing =
|
||||
{
|
||||
global $db;
|
||||
|
||||
//if token is specified, get from sample
|
||||
$sql = "SELECT sv.val
|
||||
FROM sample_var as sv, sample_import_var_restrict as sivr
|
||||
WHERE sv.sample_id = '$sample_id'
|
||||
AND sv.var_id = sivr.var_id
|
||||
AND sivr.type = 9"; //9 is the token value
|
||||
|
||||
$dtoken = $db->GetOne($sql);
|
||||
|
||||
$ttries = 0;
|
||||
|
||||
do {
|
||||
$token = sRandomChars();
|
||||
if (empty($dtoken)) {
|
||||
$token = sRandomChars();
|
||||
} else {
|
||||
$token = $dtoken;
|
||||
}
|
||||
|
||||
$sql = "SELECT count(*) as c
|
||||
FROM `case`
|
||||
@@ -344,7 +357,9 @@ function add_case($sample_id,$questionnaire_id,$operator_id = "NULL",$testing =
|
||||
|
||||
$ttries++;
|
||||
} while ($db->GetOne($sql) > 0 && $ttries < 10);
|
||||
|
||||
|
||||
if ($ttries >= 10) //failed to get a token
|
||||
return false;
|
||||
|
||||
$sql = "INSERT INTO `case` (case_id, sample_id, questionnaire_id, last_call_id, current_operator_id, current_call_id, current_outcome_id,token)
|
||||
VALUES (NULL, $sample_id, $questionnaire_id, NULL, $operator_id, NULL, '$current_outcome_id','$token')";
|
||||
@@ -674,8 +689,8 @@ function get_case_id($operator_id, $create = false)
|
||||
JOIN operator_skill as os on (os.operator_id = op.operator_id and os.outcome_type_id = ou.outcome_type_id)
|
||||
WHERE c.current_operator_id IS NULL
|
||||
AND ((apn.appointment_id IS NOT NULL) OR (casa.case_id IS NULL) OR (ava.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= ava.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= ava.end ))
|
||||
AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT COUNT(call_attempt_id) FROM `call_attempt`, availability WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = ( SELECT (SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND ((apn.appointment_id IS NOT NULL) OR (qast.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qast.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_timeslot.weight) FROM `call_attempt`, availability, questionnaire_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qast.availability_group_id AND questionnaire_timeslot.availability_group_id = availability.availability_group_id AND questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_timeslot.weight) as cou FROM availability_group, questionnaire_timeslot WHERE questionnaire_timeslot.questionnaire_id = c.questionnaire_id AND availability_group.availability_group_id = questionnaire_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND ((apn.appointment_id IS NOT NULL) OR (qasts.questionnaire_id IS NULL) OR ((SELECT COUNT(*) FROM availability WHERE availability.availability_group_id = qasts.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(NOW(),'System',s.Time_zone_name)) AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(NOW(), 'System' , s.Time_zone_name)) <= availability.end)) >= 1 AND (SELECT FLOOR(COUNT(call_attempt_id) / questionnaire_sample_timeslot.weight) FROM `call_attempt`, availability, questionnaire_sample_timeslot WHERE call_attempt.case_id = c.case_id AND (availability.availability_group_id = qasts.availability_group_id AND questionnaire_sample_timeslot.availability_group_id = availability.availability_group_id AND questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end))) = (SELECT FLOOR((SELECT COUNT(*) FROM availability, call_attempt WHERE call_attempt.case_id = c.case_id AND availability.availability_group_id = availability_group.availability_group_id AND (availability.day_of_week = DAYOFWEEK(CONVERT_TZ(call_attempt.start,'UTC',s.Time_zone_name)) AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) >= availability.start AND TIME(CONVERT_TZ(call_attempt.start, 'UTC' , s.Time_zone_name)) <= availability.end)) / questionnaire_sample_timeslot.weight) as cou FROM availability_group, questionnaire_sample_timeslot WHERE questionnaire_sample_timeslot.questionnaire_id = c.questionnaire_id AND questionnaire_sample_timeslot.sample_import_id = si.sample_import_id AND availability_group.availability_group_id = questionnaire_sample_timeslot.availability_group_id ORDER BY cou ASC LIMIT 1)))
|
||||
AND ((a.call_id is NULL) OR (a.end < CONVERT_TZ(DATE_SUB(NOW(), INTERVAL ou.default_delay_minutes MINUTE),'System','UTC')))
|
||||
AND ap.case_id is NULL
|
||||
AND ((qsep.questionnaire_id is NULL) OR (qsep.exclude = 0))
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-09-02 11:31+0000\n"
|
||||
"Last-Translator: Siddiq <sidik@sidiklepic.com>\n"
|
||||
"Language-Team: Bosnian <bs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-12-24 14:41+0000\n"
|
||||
"Last-Translator: Zbyněk Schwarz <Unknown>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
@@ -4502,9 +4502,11 @@ msgstr ""
|
||||
#~ msgid "retrieve_conf failed, config not applied"
|
||||
#~ msgstr "retrieve_conf selhalo, nastavení není použito"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Reload failed because retrieve_conf encountered an error: %s"
|
||||
#~ msgstr "Znovu načtení selhalo protože retrieve_conf narazilo na chybu: %s"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Exit code was %s and output was: %s"
|
||||
#~ msgstr "Kód ukončení byl %s a výstup byl: %s"
|
||||
|
||||
@@ -4837,6 +4839,7 @@ msgstr ""
|
||||
#~ msgid "Search for:"
|
||||
#~ msgstr "Hledat:"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Použit znak % cjako zástupný znak"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2014-03-18 17:48+0000\n"
|
||||
"Last-Translator: Daniel <weber@politik.uni-mainz.de>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Greek <el@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2016-06-28 17:43+0000\n"
|
||||
"Last-Translator: Nicolas <nreali@aresco.com>\n"
|
||||
"Language-Team: Spanish <es@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-05-09 18:23+0000\n"
|
||||
"Last-Translator: A J <jazayeri@gmail.com>\n"
|
||||
"Language-Team: Persian <fa@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Galician <gl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
@@ -4743,6 +4743,7 @@ msgstr ""
|
||||
#~ msgid "Link"
|
||||
#~ msgstr "Ligazón"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Usar o carácter % como comodín"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-12-30 05:48+0000\n"
|
||||
"Last-Translator: Gal Zilberman <Unknown>\n"
|
||||
"Language-Team: Hebrew <he@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2015-11-11 19:47+0000\n"
|
||||
"Last-Translator: Alen <alen@webstanica.net>\n"
|
||||
"Language-Team: Croatian <hr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Indonesian <id@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-12-17 13:37+0000\n"
|
||||
"Last-Translator: Cristiano Santinello <cristiano.santinello@unitn.it>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
@@ -4609,6 +4609,7 @@ msgstr ""
|
||||
#~ msgid "End call with outcome: Quota filled"
|
||||
#~ msgstr "Termina la chiamata con esito: Quota raggiunta"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Reload failed because retrieve_conf encountered an error: %s"
|
||||
#~ msgstr ""
|
||||
#~ "Ricarica non riuscita perché retrieve_conf ha incontrato un errore: %s"
|
||||
@@ -4631,6 +4632,7 @@ msgstr ""
|
||||
#~ "utilizzando lo script bounce_op.sh. Modifiche alle configurazioni potrebbero "
|
||||
#~ "non comparire nel pannello."
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Exit code was %s and output was: %s"
|
||||
#~ msgstr "Il codice in uscita è stato %s e l'output è stato: %s"
|
||||
|
||||
@@ -4901,6 +4903,7 @@ msgstr ""
|
||||
#~ msgid "Link"
|
||||
#~ msgstr "Crea legame"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Utilizza il carattere % come jolly"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Lithuanian <lt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
@@ -4687,6 +4687,7 @@ msgstr ""
|
||||
#~ msgid "Pre defined values for this question:"
|
||||
#~ msgstr "Šio klausimo išakstinio užpildymo reikšmės"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Use the % character as a wildcard"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Occitan (post 1500) <oc@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-10-21 18:44+0000\n"
|
||||
"Last-Translator: Paweł Timler <pawel.timler@gmail.com>\n"
|
||||
"Language-Team: Polish <pl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-12-04 16:38+0000\n"
|
||||
"Last-Translator: Marco Antonio Ciciliati <marco@ciciliati.com.br>\n"
|
||||
"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
@@ -4444,6 +4444,7 @@ msgstr ""
|
||||
#~ msgid "retrieve_conf failed, config not applied"
|
||||
#~ msgstr "Falha no arquivo retrieve_conf. Configurações não aplicadas"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Exit code was %s and output was: %s"
|
||||
#~ msgstr "Código de saída foi %s e saída foi: %s"
|
||||
|
||||
@@ -4605,6 +4606,7 @@ msgstr ""
|
||||
#~ msgid "Appointment:"
|
||||
#~ msgstr "Agendamentos:"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Reload failed because retrieve_conf encountered an error: %s"
|
||||
#~ msgstr "Falha ao recarregar. Arquivo retrieve_conf encontrou um erro: %s"
|
||||
|
||||
@@ -4927,6 +4929,7 @@ msgstr ""
|
||||
#~ msgid "Timezone: "
|
||||
#~ msgstr "Fuso horário: "
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Use the % character as a wildcard"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1294
locale/quexs.pot
1294
locale/quexs.pot
File diff suppressed because it is too large
Load Diff
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Romanian <ro@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs DDR\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2016-01-28 10:30+0000\n"
|
||||
"Last-Translator: Alex <ddrmoscow@gmail.com>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
"Language: ru\n"
|
||||
|
||||
#: appointment.php:76
|
||||
@@ -4978,6 +4978,7 @@ msgstr "Квота для опроса заполнена"
|
||||
#~ "bounce_op.sh . Изменения в конфигурации могли не отразиться на экране "
|
||||
#~ "панели."
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Reload failed because retrieve_conf encountered an error: %s"
|
||||
#~ msgstr ""
|
||||
#~ "Перезагрузка не удалась, т.к. выполнение файла retrieve_conf привело к "
|
||||
@@ -5012,12 +5013,14 @@ msgstr "Квота для опроса заполнена"
|
||||
#~ msgid "% complete"
|
||||
#~ msgstr "% завершено"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Use the % character as a wildcard"
|
||||
#~ msgstr "Используйте символ % для подстановки любого значения"
|
||||
|
||||
#~ msgid "End call with outcome: Quota filled"
|
||||
#~ msgstr "Закончить звонок с результатом: Квота заполнена"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Exit code was %s and output was: %s"
|
||||
#~ msgstr "Код выхода был %s с результатом : %s"
|
||||
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2013-03-08 01:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Swedish <sv@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
|
||||
#: appointment.php:76
|
||||
msgid "Appointment error"
|
||||
|
||||
@@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: quexs\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2016-10-25 15:08+1100\n"
|
||||
"POT-Creation-Date: 2017-01-06 15:16+1100\n"
|
||||
"PO-Revision-Date: 2014-09-01 03:16+0000\n"
|
||||
"Last-Translator: Daniel lee <liding@ruc.edu.cn>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2017-01-06 04:12+0000\n"
|
||||
"X-Generator: Launchpad (build 18302)\n"
|
||||
"X-Launchpad-Export-Date: 2017-03-21 03:24+0000\n"
|
||||
"X-Generator: Launchpad (build 18332)\n"
|
||||
"Language: zh\n"
|
||||
|
||||
#: appointment.php:76
|
||||
@@ -4410,6 +4410,7 @@ msgstr ""
|
||||
#~ msgid "End call with outcome: Quota filled"
|
||||
#~ msgstr "结束电话:配额已满"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Reload failed because retrieve_conf encountered an error: %s"
|
||||
#~ msgstr "重新加载失败,retrieve_conf 文件遇到错误:%s"
|
||||
|
||||
@@ -4421,6 +4422,7 @@ msgstr ""
|
||||
#~ "interface."
|
||||
#~ msgstr "重新加载失败,FreePBX无法连接到asterisk管理员界面"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "Exit code was %s and output was: %s"
|
||||
#~ msgstr "退出编码是 %s ,输出是:%s"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user