diff --git a/application/controllers/Qrbcalc.php b/application/controllers/Qrbcalc.php index 2056ae154..247b492e6 100644 --- a/application/controllers/Qrbcalc.php +++ b/application/controllers/Qrbcalc.php @@ -23,8 +23,13 @@ class Qrbcalc extends CI_Controller { } public function calculate() { - $locator1 = $this->input->post("locator1"); - $locator2 = $this->input->post("locator2"); + + if(!$this->load->is_loaded('Qra')) { + $this->load->library('Qra'); + } + + $locator1 = strtoupper($this->input->post("locator1", TRUE)); + $locator2 = strtoupper($this->input->post("locator2", TRUE)); if ($this->session->userdata('user_measurement_base') == NULL) { $measurement_base = $this->config->item('measurement_base'); @@ -33,34 +38,39 @@ class Qrbcalc extends CI_Controller { $measurement_base = $this->session->userdata('user_measurement_base'); } - switch ($measurement_base) { - case 'M': - $var_dist = " miles"; - break; - case 'N': - $var_dist = " nautic miles"; - break; - case 'K': - $var_dist = " kilometers"; - break; - } - - if(!$this->load->is_loaded('Qra')) { - $this->load->library('Qra'); - } - - $data['result'] = $this->qra->bearing($locator1, $locator2, $measurement_base); - $data['distance'] = $this->qra->distance($locator1, $locator2, $measurement_base) . $var_dist; - $data['bearing'] = $this->qra->get_bearing($locator1, $locator2) . "º"; $latlng1 = $this->qra->qra2latlong($locator1); $latlng2 = $this->qra->qra2latlong($locator2); $latlng1[0] = number_format((float)$latlng1[0], 3, '.', '');; $latlng1[1] = number_format((float)$latlng1[1], 3, '.', '');; $latlng2[0] = number_format((float)$latlng2[0], 3, '.', '');; $latlng2[1] = number_format((float)$latlng2[1], 3, '.', '');; + $distance = $this->qra->distance($locator1, $locator2, $measurement_base); + $text_latlng1 = $locator1 . ' ' . sprintf(__("Latitude: %s, Longitude: %s"), $latlng1[0], $latlng1[1]); + $text_latlng2 = $locator2 . ' ' . sprintf(__("Latitude: %s, Longitude: %s"), $latlng2[0], $latlng2[1]); + + switch ($measurement_base) { + case 'M': + $var_dist = sprintf(_ngettext("The distance between %s and %s is %s mile.", "The distance between %s and %s is %s miles.", intval($distance)), $locator1, $locator2, $distance); + break; + case 'N': + $var_dist = sprintf(_ngettext("The distance between %s and %s is %s nautical mile.", "The distance between %s and %s is %s nautical miles.", intval($distance)), $locator1, $locator2, $distance); + break; + case 'K': + $var_dist = sprintf(_ngettext("The distance between %s and %s is %s kilometer.", "The distance between %s and %s is %s kilometers.", intval($distance)), $locator1, $locator2, $distance); + break; + } + + $data['result'] = $this->qra->bearing($locator1, $locator2, $measurement_base); + $data['distance'] = $var_dist; + $data['bearing'] = sprintf(__("The bearing is %s."), $this->qra->get_bearing($locator1, $locator2) . "º"); $data['latlng1'] = $latlng1; + $data['text_latlng1'] = $text_latlng1; + $data['text_latlng2'] = $text_latlng2; $data['latlng2'] = $latlng2; + + $data['latlong_info_text'] = __("Negative latitudes are south of the equator, negative longitudes are west of Greenwich."); + header('Content-Type: application/json'); echo json_encode($data); } diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index bc0066750..4625b603a 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -46,6 +46,8 @@ var lang_admin_clear = "= __("Clear"); ?>"; var lang_lotw_propmode_hint = "= __("Propagation mode is not supported by LoTW. LoTW QSL fields disabled."); ?>"; var lang_no_states_for_dxcc_available = "= __("No states for this DXCC available"); ?>"; + var lang_qrbcalc_title = '= __("Compute QRB and QTF"); ?>'; + var lang_qrbcalc_errmsg = '= __("Error in locators. Please check."); ?>'; diff --git a/application/views/qrbcalc/index.php b/application/views/qrbcalc/index.php index ecf7ad8e1..2e7aa2d6f 100644 --- a/application/views/qrbcalc/index.php +++ b/application/views/qrbcalc/index.php @@ -2,14 +2,14 @@