From b2ff35a6d9e6ab65a96c54a13f5ebde8f16a8ca6 Mon Sep 17 00:00:00 2001 From: Erik Thuning <boooink@gmail.com> Date: Tue, 27 Feb 2024 15:19:30 +0100 Subject: [PATCH] Found even more untranslated strings! --- include/Ajax.php | 111 ++++++++++++------------ include/translations.php | 176 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+), 54 deletions(-) diff --git a/include/Ajax.php b/include/Ajax.php index bc4a4cc..9beb326 100644 --- a/include/Ajax.php +++ b/include/Ajax.php @@ -75,7 +75,7 @@ class Ajax extends Responder { if(isset($this->fragments[$fragment])) { return new Success($this->fragments[$fragment]); } - return new Failure("Ogiltigt fragment '$fragment'"); + return new Failure(i18n('Invalid fragment {fragment}', $fragment)); } private function checkout_product() { @@ -83,19 +83,19 @@ class Ajax extends Responder { try { $user = new User($_POST['user'], 'name'); } catch(Exception $e) { - return new Failure('Ogiltigt användar-id.'); + return new Failure(i18n('Invalid user ID.')); } $product = null; try { $product = new Product(trim($_POST['product']), 'serial'); } catch(Exception $e) { - return new Failure('Ogiltigt serienummer.'); + return new Failure(i18n('Invalid serial number.')); } try { Loan::create_loan($user, $product, $_POST['end']); - return new Success($product->get_name() . 'utlånad.'); + return new Success(i18n('{product} checked out.', $product)); } catch(Exception $e) { - return new Failure('Artikeln är redan utlånad.'); + return new Failure(i18n('The product is already on loan.')); } } @@ -104,7 +104,7 @@ class Ajax extends Responder { try { $product = new Product(trim($_POST['serial']), 'serial'); } catch(Exception $e) { - return new Failure('Ogiltigt serienummer.'); + return new Failure(i18n('Invalid serial number.')); } $loan = $product->get_active_loan(); if($loan) { @@ -119,9 +119,11 @@ class Ajax extends Responder { 'name' => $product->get_name()), $this->fragments['item_link']); $user = $loan->get_user(); - return new Success($productlink . ' åter från ' . $userlink); + return new Success(i18n('{product} returned from {user}', + $productlink, + $userlink)); } - return new Failure('Artikeln är inte utlånad.'); + return new Failure(i18n('The product is not on loan.')); } private function extend_loan() { @@ -129,50 +131,50 @@ class Ajax extends Responder { try { $product = new Product($_POST['product']); } catch(Exception $e) { - return new Failure('Ogiltigt ID.'); + return new Failure(i18n('Invalid serial number.')); } $loan = $product->get_active_loan(); if($loan) { $loan->extend($_POST['end']); - return new Success('Lånet förlängt'); + return new Success(i18n('Loan extended.')); } - return new Failure('Lån saknas.'); + return new Failure(i18n('The product is not on loan.')); } private function start_inventory() { try { Inventory::begin(); - return new Success('Inventering startad.'); + return new Success(i18n('Inventory started.')); } catch(Exception $e) { - return new Failure('Inventering redan igång.'); + return new Failure(i18n('Inventory already in progress.')); } } private function end_inventory() { $inventory = Inventory::get_active(); if($inventory === null) { - return new Failure('Ingen inventering pågår.'); + return new Failure(i18n('No inventory in progress.')); } $inventory->end(); - return new Success('Inventering avslutad.'); + return new Success(i18n('Inventory ended.')); } private function inventory_product() { $inventory = Inventory::get_active(); if($inventory === null) { - return new Failure('Ingen inventering pågår.'); + return new Failure(i18n('No inventory in progress.')); } $product = null; try { $product = new Product(trim($_POST['serial']), 'serial'); } catch(Exception $e) { - return new Failure('Ogiltigt serienummer.'); + return new Failure(i18n('Invalid serial number.')); } $result = $inventory->add_product($product); if(!$result) { - return new Failure('Artikeln är redan registrerad.'); + return new Failure(i18n('Product already registered.')); } - return new Success('Artikeln registrerad.'); + return new Success(i18n('Product registered.')); } private function update_product() { @@ -195,20 +197,21 @@ class Ajax extends Responder { unset($info[$key]); } if(!$name) { - return new Failure('Artikeln måste ha ett namn.'); + return new Failure(i18n('The product must have a name.')); } if(!$serial) { - return new Failure('Artikeln måste ha ett serienummer.'); + return new Failure( + i18n('The product must have a serial number.')); } if(!$invoice) { - return new Failure('Artikeln måste ha ett fakturanummer.'); + return new Failure( + i18n('The product must have an invoice number.')); } $product = null; if(!$id) { try { $temp = new Product($serial, 'serial'); - return new Failure( - 'Det angivna serienumret finns redan på en annan artikel.'); + return new Failure(i18n('The given serial number is taken.')); } catch(Exception $e) {} try { $product = Product::create_product($brand, @@ -221,14 +224,22 @@ class Ajax extends Responder { 'id' => $product->get_id(), 'name' => $product->get_name()), $this->fragments['item_link']); - return new Success("Artikeln '$prodlink' sparad."); + return new Success(i18n("Product {link} saved.", $prodlink)); } catch(Exception $e) { return new Failure($e->getMessage()); } } $product = new Product($id); if($product->get_discardtime()) { - return new Failure('Skrotade artiklar får inte modifieras.'); + return new Failure( + i18n('Discarded products may not be modified.')); + } + if($serial != $product->get_serial()) { + try { + $product->set_serial($serial); + } catch(Exception $e) { + return new Failure(i18n('The given serial number is taken.')); + } } if($brand != $product->get_brand()) { $product->set_brand($brand); @@ -236,13 +247,6 @@ class Ajax extends Responder { if($name != $product->get_name()) { $product->set_name($name); } - if($serial != $product->get_serial()) { - try { - $product->set_serial($serial); - } catch(Exception $e) { - return new Failure('Det angivna serienumret finns redan på en annan artikel.'); - } - } if($invoice != $product->get_invoice()) { $product->set_invoice($invoice); } @@ -271,7 +275,7 @@ class Ajax extends Responder { foreach($tags as $tag) { $product->add_tag($tag); } - return new Success('Ändringarna sparade.'); + return new Success(i18n('Changes saved.')); } private function update_user() { @@ -279,7 +283,7 @@ class Ajax extends Responder { $name = $_POST['name']; $notes = $_POST['notes']; if(!$name) { - return new Failure('Användarnamnet får inte vara tomt.'); + return new Failure(i18n('Username may not be empty.')); } $user = new User($id); if($user->get_name() != $name) { @@ -288,7 +292,7 @@ class Ajax extends Responder { if($user->get_notes() != $notes) { $user->set_notes($notes); } - return new Success('Ändringarna sparade.'); + return new Success(i18n('Changes saved.')); } private function save_template() { @@ -308,16 +312,15 @@ class Ajax extends Responder { unset($info[$key]); } if(!$name) { - return new Failure('Mallen måste ha ett namn.'); + return new Failure(i18n('The template must have a name.')); } $template = null; try { $template = new Template($name, 'name'); } catch(Exception $e) { $template = Template::create_template($name, $info, $tags); - $name = $template->get_name(); - return new Success( - "Aktuella fält och taggar har sparats till mallen '$name'."); + return new Success(i18n("Template {name} saved.", + $template->get_name())); } foreach($template->get_fields() as $field) { if(!isset($info[$field])) { @@ -341,18 +344,20 @@ class Ajax extends Responder { $template->add_tag($tag); } } - $name = $template->get_name(); - return new Success("Mallen '$name' uppdaterad."); + return new Success(i18n("Template {name} updated.", + $template->get_name())); } private function delete_template() { try { - $template = $_POST['template']; - Template::delete_template($template); - $name = ucfirst(strtolower($template)); - return new Success("Mallen '$name' har raderats."); + $request_name = $_POST['template']; + $template = new Template($request_name, 'name'); + $template_name = $template->get_name(); + Template::delete_template($template_name); + return new Success(i18n("Template {name} deleted.", + $template_name)); } catch(Exception $e) { - return new Failure('Det finns ingen mall med det namnet.'); + return new Failure(i18n('There is no template by that name.')); } } @@ -368,13 +373,12 @@ class Ajax extends Responder { $product = new Product($_POST['id']); if(!$product->get_discardtime()) { if($product->get_active_loan()) { - return new Failure('Artikeln har ett aktivt lån.<br/>' - .'Lånet måste avslutas innan artikeln skrotas.'); + return new Failure(i18n('Product on loan.')); } $product->discard(); - return new Success('Artikeln skrotad.'); + return new Success(i18n('Product scrapped.')); } else { - return new Failure('Artikeln är redan skrotad.'); + return new Failure(i18n('Product has been scrapped already.')); } } @@ -382,10 +386,9 @@ class Ajax extends Responder { $product = new Product($_POST['id']); try { $product->toggle_service(); - return new Success('Service-status uppdaterad.'); + return new Success(i18n('Product service status updated.')); } catch(Exception $e) { - return new Failure('Service kan inte registreras ' - .'på den här artikeln nu.'); + return new Failure(i18n('Cannot register service.')); } } diff --git a/include/translations.php b/include/translations.php index c3e8ac3..78479d5 100644 --- a/include/translations.php +++ b/include/translations.php @@ -273,6 +273,182 @@ $i18n = array( "en" => function() { return "Borrowed products"; }, "sv" => function() { return "Lånade artiklar"; }, ), + "Invalid fragment {fragment}" => array( + "en" => function($fragment) { + return "Invalid fragment '$fragment'"; + }, + "sv" => function($fragment) { + return "Ogiltigt fragment '$fragment'"; + }, + ), + "Invalid user ID." => array( + "en" => function() { return "Invalid user ID."; }, + "sv" => function() { return "Ogiltigt användar-ID."; }, + ), + "Invalid serial number." => array( + "en" => function() { return "Invalid serial number."; }, + "sv" => function() { return "Ogiltigt serienummer."; }, + ), + "The product is already on loan." => array( + "en" => function() { return "The product is already on loan."; }, + "sv" => function() { return "Artikeln är redan utlånad."; }, + ), + "{product} checked out." => array( + "en" => function($product) { + $name = $produt->get_name(); + return "$name checked out."; + }, + "sv" => function($product) { + $name = $produt->get_name(); + return "$name utlånad."; + }, + ), + "{product} returned from {user}" => array( + "en" => function($product, $user) { + return "$product returned from $user"; + }, + "sv" => function($product, $user) { + return "$product åter från $user"; + }, + ), + "The product is not on loan." => array( + "en" => function() { return "The product is not on loan."; }, + "sv" => function() { return "Artikeln är inte utlånad."; }, + ), + "Loan extended." => array( + "en" => function() { return "Loan extended."; }, + "sv" => function() { return "Lånet förlängt."; }, + ), + "Inventory started." => array( + "en" => function() { return "Inventory started."; }, + "sv" => function() { return "Inventering startad."; }, + ), + "Inventory already in progress." => array( + "en" => function() { return "Inventory already in progress."; }, + "sv" => function() { return "Inventering redan igång."; }, + ), + "No inventory in progress." => array( + "en" => function() { return "No inventory in progress."; }, + "sv" => function() { return "Ingen inventering pågår."; }, + ), + "Inventory ended." => array( + "en" => function() { return "Inventory ended."; }, + "sv" => function() { return "Inventering avslutad."; }, + ), + "Product already registered." => array( + "en" => function() { return "Product already registered."; }, + "sv" => function() { return "Artikeln är redan registrerad."; }, + ), + "Product registered." => array( + "en" => function() { return "Product registered."; }, + "sv" => function() { return "Artikeln registrerad."; }, + ), + "The product must have a name." => array( + "en" => function() { return "The product must have a name."; }, + "sv" => function() { return "Artikeln måste ha ett namn."; }, + ), + "The product must have a serial number." => array( + "en" => function() { + return "The product must have a serial number."; + }, + "sv" => function() { + return "Artikeln måste ha ett serienummer."; + }, + ), + "The product must have an invoice number." => array( + "en" => function() { + return "The product must have an invoice number."; + }, + "sv" => function() { + return "Artikeln måste ha ett fakturanummer."; + }, + ), + "The given serial number is taken." => array( + "en" => function() { return "The given serial number is taken."; }, + "sv" => function() { return "Det angivna serienumret är upptaget."; }, + ), + "Product {link} saved." => array( + "en" => function($prodlink) { + return "Product '$prodlink' saved."; + }, + "sv" => function($prodlink) { + return "Artikeln '$prodlink' sparad."; + }, + ), + "Discarded products may not be modified." => array( + "en" => function() { + return "Discarded products may not be modified."; + }, + "sv" => function() { + return "Skrotade artiklar får inte modifieras."; + }, + ), + "Changes saved." => array( + "en" => function() { return "Changes saved."; }, + "sv" => function() { return "Ändringarna sparade."; }, + ), + "Username may not be empty." => array( + "en" => function() { return "Username may not be empty."; }, + "sv" => function() { return "Användarnamnet får inte vara tomt."; }, + ), + "The template must have a name." => array( + "en" => function() { return "The template must have a name."; }, + "sv" => function() { return "Mallen måste ha ett namn."; }, + ), + "Template {name} saved." => array( + "en" => function($name) { + return "Current fields and tags have " + ."been saved to template '$name'."; + }, + "sv" => function($name) { + return "Aktuella fält och taggar har " + ."sparats till mallen '$name'."; + }, + ), + "Template {name} updated." => array( + "en" => function($name) { return "Template '$name' updated."; }, + "sv" => function($name) { return "Mallen '$name' uppdaterad."; }, + ), + "Template {name} deleted." => array( + "en" => function($name) { return "Template '$name' deleted."; }, + "sv" => function($name) { return "Mallen '$name' har raderats."; }, + ), + "There is no template by that name." => array( + "en" => function() { return "There is no template by that name."; }, + "sv" => function() { return "Det finns ingen mall med det namnet."; }, + ), + "Product on loan." => array( + "en" => function() { + return "The product is on loan.<br/>" + ."The loan must be ended before the product " + ."may be scrapped."; + }, + "sv" => function() { + return "Artikeln har ett aktivt lån.<br/>" + ."Lånet måste avslutas innan artikeln skrotas."; + }, + ), + "Product scrapped." => array( + "en" => function() { return "Product scrapped."; }, + "sv" => function() { return "Artikeln skrotad."; }, + ), + "Product has been scrapped already." => array( + "en" => function() { return "Product has been scrapped already."; }, + "sv" => function() { return "Artikeln är redan skrotad."; }, + ), + "Product service status updated." => array( + "en" => function() { return "Product service status updated."; }, + "sv" => function() { return "Artikelns service-status uppdaterad."; }, + ), + "Cannot register service." => array( + "en" => function() { + return "Service cannot be registered on the product " + ."in its current state."; + }, + "sv" => function() { + return "Service kan inte registreras på den här artikeln nu."; + }, + ), /* "" => array( "en" => function() { return ""; },