From 6fd22ede847adb1376c6d33beab807782784df21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CVeLiTi=E2=80=9D?= <“info@veliti.nl”> Date: Tue, 25 Mar 2025 15:41:53 +0100 Subject: [PATCH] CMXX - Translations, Service report improvements and API security --- api.php | 25 +-- assets/functions.php | 198 ++++++++++++---------- settings/translations/translations_DE.php | 86 +++++++++- settings/translations/translations_ES.php | 86 +++++++++- settings/translations/translations_NL.php | 84 ++++++++- settings/translations/translations_PT.php | 86 +++++++++- settings/translations/translations_US.php | 9 +- 7 files changed, 451 insertions(+), 123 deletions(-) diff --git a/api.php b/api.php index 55ed46e..275713a 100644 --- a/api.php +++ b/api.php @@ -20,9 +20,9 @@ include './settings/config_redirector.php'; // Header security - enabled via config //------------------------------------------ if (header_security){ - header('Content-Type: application/json'); - // Set strict security headers + // Strict security headers + header('Content-Type: application/json'); header('X-Content-Type-Options: nosniff'); header('X-Frame-Options: DENY'); header('X-XSS-Protection: 1; mode=block'); @@ -30,19 +30,22 @@ if (header_security){ header('Access-Control-Allow-Origin: ' . $_ENV['ALLOWED_ORIGIN']); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Accept, Authorization'); - + header('Strict-Transport-Security: max-age=31536000; includeSubDomains'); + header('Referrer-Policy: strict-origin-when-cross-origin'); + // Validate Content-Type - if (!str_contains($_SERVER['CONTENT_TYPE'],'application/json')) { - http_response_code(400); - exit(json_encode(['error' => 'Invalid Content-Type'])); + if (!str_contains($_SERVER['CONTENT_TYPE'] ?? '', 'application/json')) { + http_response_code(400); + exit(json_encode(['error' => 'Invalid Content-Type'])); } - + // Validate request size - if ($_SERVER['CONTENT_LENGTH'] > '5M') { - http_response_code(413); - exit(json_encode(['error' => 'Request too large'])); + $maxRequestSize = 5 * 1024 * 1024; // 5MB in bytes + if (isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH'] > $maxRequestSize) { + http_response_code(413); + exit(json_encode(['error' => 'Request too large'])); } - } +} //------------------------------------------ // Retrieve API version and Collection diff --git a/assets/functions.php b/assets/functions.php index 494ae93..d6e4f4c 100644 --- a/assets/functions.php +++ b/assets/functions.php @@ -1317,10 +1317,44 @@ function serviceReport($history, $request, $country_code) $maintenance_test = $stmt->fetch(); $test_fail = $maintenance_test['description']; $maintenance_test = json_decode($maintenance_test['description']); + + function combineAndSortKeys($object) { + // Convert object properties to arrays if needed + $key1 = (array)($object->doubletestvalues ?? []); + $key2 = (array)($object->stringtestvalues ?? []); + $key3 = (array)($object->booleantestvalues ?? []); + + // Combine all rows + $combined = array_merge($key1, $key2, $key3); + + // Group rows based on the "pass" boolean + $grouped = [ + 'failed' => [], + 'passed' => [] + ]; + + foreach ($combined as $row) { + // Check if $row is an object and convert if needed + if (is_object($row)) { + $row = (array)$row; + } + + if (isset($row['pass']) && $row['pass'] === true) { + $grouped['passed'][] = $row; + } else { + $grouped['failed'][] = $row; + } + } + + return $grouped; + } - //check if maintenance test has false test and update renewal date + // Example usage: + $sortedTestResults = combineAndSortKeys($maintenance_test); + + //check if maintenance test has false test and update renewal date if (str_contains($test_fail, "false")){ - $service_renewal_date = $service_report_outcome_attention; ; + $service_renewal_date = $service_report_outcome_attention; } } @@ -1340,6 +1374,10 @@ function serviceReport($history, $request, $country_code) font-size: 18px; line-height: 1.5; } + + table > thead:first-of-type > tr:last-child { + page-break-after: avoid; + } .servicereport { border-collapse: collapse; @@ -1544,8 +1582,16 @@ function serviceReport($history, $request, $country_code)
-
'.$summary_label1.'
-
'; @@ -1652,82 +1731,28 @@ function serviceReport($history, $request, $country_code) '.$service_report_maintenance_test_status.' - '; - - // +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // Check for measurements ++++++++++++++++++++++++++ - // +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - // +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - // Check if false test found +++++++ - // +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - $servicereport .= ''; + '; - //Check double test values - foreach($maintenance_test->doubletestvalues as $key => $value) + //SHOW FAILED VALUES + foreach($sortedTestResults['failed'] as $key => $value) { - //If test is not passed or not - if($value->pass == false){ - $text = $service_maintenance_test_fail; - $style = 'error'; - } - else - { - $text = $service_maintenance_test_pass; - $style = 'success'; - - } - - $servicereport .=' - - '.$value->name.' - '.$text.' - + $servicereport .=' + + '.$value['name'].' + '.$service_maintenance_test_fail.' + '; } - //Check string test values - foreach($maintenance_test->stringtestvalues as $key => $value) - { - //If test is not passed or not - if($value->pass == false){ - $text = $service_maintenance_test_fail; - $style = 'error'; - } - else - { - $text = $service_maintenance_test_pass; - $style = 'success'; - - } - $servicereport .=' - - '.$value->name.' - '.$text.' - - '; - } - - //Check boolean test values - foreach($maintenance_test->booleantestvalues as $key => $value) - { - //If test is not passed or not - if($value->pass == false){ - $text = $service_maintenance_test_fail; - $style = 'error'; - } - else - { - $text = $service_maintenance_test_pass; - $style = 'success'; - } - $servicereport .=' - - '.$value->name.' - '.$text.' - - '; - } - + //SHOW PASSED VALUES + foreach($sortedTestResults['passed'] as $key => $value) + { + $servicereport .=' + + '.$value['name'].' + '.$service_maintenance_test_pass.' + + '; + } $servicereport .= ' @@ -1834,6 +1859,7 @@ function serviceReport($history, $request, $country_code) //++++++++++++++++++++++++++++++++++++++++++++++ //Legacy Code //++++++++++++++++++++++++++++++++++++++++++++++ + if (isset($json_array->question25) && isset($json_array->newHistory)) { $servicereport .= ' diff --git a/settings/translations/translations_DE.php b/settings/translations/translations_DE.php index fb40312..eabe720 100644 --- a/settings/translations/translations_DE.php +++ b/settings/translations/translations_DE.php @@ -162,8 +162,8 @@ $service_report_maintenance_test_status = 'Status'; $service_report_outcome_good = 'Gut'; $service_report_outcome_attention = 'Achtung'; $service_report_no_text = 'Es gibt keine Serviceberichte '; -$service_maintenance_test_fail = 'Fehlgeschlagen'; -$service_maintenance_test_pass = 'Gut'; +$service_maintenance_test_fail = 'Nicht genehmigt'; +$service_maintenance_test_pass = 'Genehmigt'; $status0 = '0'; $status0_text = 'Neu'; $status1 = '1'; @@ -466,8 +466,8 @@ $contract_ignore_serial = 'Seriennummern ignorieren'; $contract_assigned_users = 'Zugewiesene Benutzer'; $contract_assigned_users_add = 'Benutzer hinzufügen'; $group_header_1 = 'Allgemein'; -$group_header_2 = 'Kopf - Typ 1'; -$group_header_3 = 'Kopf - Typ 2'; +$group_header_2 = 'Type 1 connector'; +$group_header_3 = 'Type 2 connector'; $group_header_4 = 'Batterieeinheit'; $group_header_5 = 'Gehäuse'; $group_header_6 = 'Aktionen'; @@ -500,7 +500,6 @@ $service_visual_12 = 'Zustand des Kunststoffgehäuses'; $service_visual_13 = 'Batteriefach vorhanden?'; $service_visual_14 = 'Korrosion an Batterieanschlüssen?'; $service_visual_15 = 'Batterieanschlüsse vorhanden?'; -$service_visual_15 = 'Batterieanschlüsse vorhanden?'; $service_visual_16 = 'Seriennummer lesbar?'; $service_visual_17 = 'USB-Anschluss sauber?'; $service_visual_18 = 'Bewegung am USB-Anschluss?'; @@ -663,9 +662,86 @@ $buildreport_onstock_text = 'Gesamtanzahl auf Lager'; $data_build_sfg_view = 'In den letzten 7 Tagen produzierte Halbfertigprodukte'; $data_build_fg_view = 'In den letzten 7 Tagen produzierte Fertigprodukte'; $menu_translations = 'Übersetzungen'; +$button_create_rma = 'RMA erstellen'; +$rmas_h2 = 'Rücksendematerial'; +$rmas_p = 'Anzeigen, verwalten und suchen von RMA-Details'; +$rma_h2 = 'Rücksendematerialanforderung'; +$message_rma_1 = 'RMA erfolgreich erstellt!'; +$message_rma_2 = 'RMA erfolgreich aktualisiert!'; +$message_rma_3 = 'RMA erfolgreich gelöscht!'; +$message_no_rma = 'Es gibt kein RMA'; +$rma_search = 'RMA suchen...'; +$rma_rowID = 'Anforderungsnummer'; +$rma_status = 'Status'; +$rma_status0_text = 'Neu'; +$rma_status1_text = 'In Bearbeitung'; +$rma_status2_text = 'Genehmigt'; +$rma_status3_text = 'Abgeschlossen'; +$rma_status4_text = 'Abgebrochen'; +$rma_sw_version_latest = 'Neueste Softwareversion'; +$rma_servicereport_latest = 'Servicebericht der letzten 7 Tage erstellt'; +$rma_information = 'RMA-Informationen'; +$rma_return_reason = 'Rücksendegrund'; +$rma_return_reason0_text = ''; +$rma_return_reason1_text = ''; +$rma_return_reason2_text = ''; +$rma_return_reason3_text = ''; +$rma_return_reason4_text = ''; +$rma_return_reasons_notes = 'Rücksendegrundnotizen'; +$rma_return_tab1 = 'Rücksendegrund'; +$rma_return_tab2 = 'Fragen'; +$rma_question_allowed_label1 = 'Ja'; +$rma_question_allowed_label2 = 'Nein'; +$rma_question_header_1 = ''; +$rma_question_1 = 'Funktionieren die Batterien?'; +$rma_question_2 = 'Funktioniert der Knopf richtig?'; +$rma_question_3 = ''; +$rma_question_4 = ''; +$rma_question_5 = ''; +$rma_question_6 = ''; +$rma_question_7 = ''; +$menu_rmas = 'Rücksendematerial'; +$button_create_text_variable = 'Variable erstellen'; +$message_no_text_variables = 'Es gibt keine Variablen'; +$text_variables_h2 = 'Übersetzungen'; +$text_variable_name = 'Variablenname'; +$text_variable_translation_languagekey = 'Sprache'; +$text_variable_translation_translation = 'Übersetzung'; +$menu_products_attributes = 'Produktattribute'; +$message_patt_1 = 'Produktattribut erfolgreich erstellt!'; +$message_patt_2 = 'Produktattribut erfolgreich aktualisiert!'; +$message_patt_3 = 'Produktattribut erfolgreich gelöscht!'; +$products_attributes_h2 = 'Produktattribute'; +$products_attributes_p = 'Anzeigen, verwalten und suchen von Produktattributen'; +$button_create_products_attribute = 'Attribut erstellen'; +$products_attribute_search = 'Attribut suchen'; +$products_attribute_rowID = 'Attribut-ID'; +$products_attribute_group_name = 'Name'; +$message_no_products_attributes = 'Es gibt keine Attribute'; +$products_attribute_group_status = 'Status'; +$products_attribute_group_type = 'Typ'; $general_status_0 = 'Inaktiv'; $general_status_1 = 'Aktiv'; +$products_attributes_group_status = 'Status'; +$products_attributes_group_name = 'Name der Gruppe'; +$general_form_0 = 'Auswahlfeld'; +$general_form_1 = 'Kontrollkästchen'; +$general_form_2 = 'Dropdown-Liste'; +$products_attributes_group_mandatory = 'Pflicht'; +$products_attributes_group_items = 'Elemente in der Gruppe'; +$products_attributes_item_rowID = 'Artikel-ID'; +$products_attributes_item_status = 'Status'; +$products_attributes_item_name = 'Artikelname'; +$products_attributes_item_quantity = 'Artikelanzahl'; +$products_attributes_item_position = 'Artikelposition'; +$products_attributes_item_media = 'Artikelmedien'; +$product_name_1 = 'Testproduktübersetzung'; +$menu_pricelists = 'Preislisten'; $menu_media = 'Medien'; +$general_currency_1 = ' $'; +$general_currency_0 = ' €'; +$general_modifier_0 = '-'; +$general_modifier_1 = '+'; $menu_catalog = 'Katalog'; $menu_sales_orders = 'Bestellungen'; $menu_identity = 'Identität'; diff --git a/settings/translations/translations_ES.php b/settings/translations/translations_ES.php index 997c3aa..74e265d 100644 --- a/settings/translations/translations_ES.php +++ b/settings/translations/translations_ES.php @@ -162,8 +162,8 @@ $service_report_maintenance_test_status = 'Estado'; $service_report_outcome_good = 'Bueno'; $service_report_outcome_attention = 'Atención'; $service_report_no_text = 'No hay informes de servicio'; -$service_maintenance_test_fail = 'falló'; -$service_maintenance_test_pass = 'bueno'; +$service_maintenance_test_fail = 'No aprobado'; +$service_maintenance_test_pass = 'Aprobado'; $status0 = '0'; $status0_text = 'Nuevo'; $status1 = '1'; @@ -466,8 +466,8 @@ $contract_ignore_serial = 'Ignorar números de serie'; $contract_assigned_users = 'Usuarios asignados'; $contract_assigned_users_add = 'Agregar usuario'; $group_header_1 = 'General'; -$group_header_2 = 'Cabeza - Tipo 1'; -$group_header_3 = 'Cabeza - Tipo 2'; +$group_header_2 = 'Type 1 connector'; +$group_header_3 = 'Type 2 connector'; $group_header_4 = 'Unidad de batería'; $group_header_5 = 'Carcasa'; $group_header_6 = 'Acciones'; @@ -500,7 +500,6 @@ $service_visual_12 = 'Estado de la carcasa de plástico'; $service_visual_13 = '¿Cubierta de batería disponible?'; $service_visual_14 = '¿Corrosión en los contactos de la batería?'; $service_visual_15 = '¿Número de serie legible?'; -$service_visual_15 = '¿Número de serie legible?'; $service_visual_16 = '¿Conector USB limpio?'; $service_visual_17 = '¿Movimiento en el conector USB?'; $service_visual_18 = '¿Tornillos fijos (5x)?'; @@ -669,9 +668,86 @@ $buildreport_onstock_text = 'Número total En stock'; $data_build_sfg_view = 'semiacabado producido en los últimos 7 días'; $data_build_fg_view = 'producto acabado producido en los últimos 7 días'; $menu_translations = 'Traducciones'; +$button_create_rma = 'Crear RMA'; +$rmas_h2 = 'Material de devolución'; +$rmas_p = 'Ver, gestionar y buscar detalles de RMA'; +$rma_h2 = 'Solicitud de material de devolución'; +$message_rma_1 = '¡RMA creado con éxito!'; +$message_rma_2 = '¡RMA actualizado con éxito!'; +$message_rma_3 = '¡RMA eliminado con éxito!'; +$message_no_rma = 'No hay RMA'; +$rma_search = 'Buscar RMA...'; +$rma_rowID = 'Número de solicitud'; +$rma_status = 'Estado'; +$rma_status0_text = 'Nuevo'; +$rma_status1_text = 'En progreso'; +$rma_status2_text = 'Aprobado'; +$rma_status3_text = 'Completado'; +$rma_status4_text = 'Cancelado'; +$rma_sw_version_latest = 'Última versión de software'; +$rma_servicereport_latest = 'Informe de servicio creado en los últimos 7 días'; +$rma_information = 'Información del RMA'; +$rma_return_reason = 'Motivo de devolución'; +$rma_return_reason0_text = ''; +$rma_return_reason1_text = ''; +$rma_return_reason2_text = ''; +$rma_return_reason3_text = ''; +$rma_return_reason4_text = ''; +$rma_return_reasons_notes = 'Notas sobre el motivo de devolución'; +$rma_return_tab1 = 'Motivo de devolución'; +$rma_return_tab2 = 'Preguntas'; +$rma_question_allowed_label1 = 'Sí'; +$rma_question_allowed_label2 = 'No'; +$rma_question_header_1 = ''; +$rma_question_1 = '¿Funcionan las baterías?'; +$rma_question_2 = '¿Funciona correctamente el botón?'; +$rma_question_3 = ''; +$rma_question_4 = ''; +$rma_question_5 = ''; +$rma_question_6 = ''; +$rma_question_7 = ''; +$menu_rmas = 'Material de devolución'; +$button_create_text_variable = 'Crear variable'; +$message_no_text_variables = 'No hay variables'; +$text_variables_h2 = 'Traducciones'; +$text_variable_name = 'Nombre de la variable'; +$text_variable_translation_languagekey = 'Idioma'; +$text_variable_translation_translation = 'Traducción'; +$menu_products_attributes = 'Atributos de producto'; +$message_patt_1 = '¡Atributo de producto creado con éxito!'; +$message_patt_2 = '¡Atributo de producto actualizado con éxito!'; +$message_patt_3 = '¡Atributo de producto eliminado con éxito!'; +$products_attributes_h2 = 'Atributos de producto'; +$products_attributes_p = 'Ver, gestionar y buscar atributos de producto'; +$button_create_products_attribute = 'Crear atributo'; +$products_attribute_search = 'Buscar atributo'; +$products_attribute_rowID = 'ID del atributo'; +$products_attribute_group_name = 'Nombre'; +$message_no_products_attributes = 'No hay atributos'; +$products_attribute_group_status = 'Estado'; +$products_attribute_group_type = 'Tipo'; $general_status_0 = 'Inactivo'; $general_status_1 = 'Activo'; +$products_attributes_group_status = 'Estado'; +$products_attributes_group_name = 'Nombre del grupo'; +$general_form_0 = 'Botón de opción'; +$general_form_1 = 'Casilla de verificación'; +$general_form_2 = 'Lista desplegable'; +$products_attributes_group_mandatory = 'Obligatorio'; +$products_attributes_group_items = 'Elementos en el grupo'; +$products_attributes_item_rowID = 'ID del artículo'; +$products_attributes_item_status = 'Estado'; +$products_attributes_item_name = 'Nombre del artículo'; +$products_attributes_item_quantity = 'Cantidad de artículos'; +$products_attributes_item_position = 'Posición del artículo'; +$products_attributes_item_media = 'Medios del artículo'; +$product_name_1 = 'Traducción del producto de prueba'; +$menu_pricelists = 'Listas de precios'; $menu_media = 'Medios'; +$general_currency_1 = ' $'; +$general_currency_0 = ' €'; +$general_modifier_0 = '-'; +$general_modifier_1 = '+'; $menu_catalog = 'Catálogo'; $menu_sales_orders = 'Pedidos'; $menu_identity = 'Identidad'; diff --git a/settings/translations/translations_NL.php b/settings/translations/translations_NL.php index ab6e7be..f85bdc8 100644 --- a/settings/translations/translations_NL.php +++ b/settings/translations/translations_NL.php @@ -162,8 +162,8 @@ $service_report_maintenance_test_status = 'Status'; $service_report_outcome_good = 'Goed'; $service_report_outcome_attention = 'Attentie'; $service_report_no_text = 'Geen service rapporten '; -$service_maintenance_test_fail = 'Afgekeurd'; -$service_maintenance_test_pass = 'Goed'; +$service_maintenance_test_fail = 'Niet goedgekeurd'; +$service_maintenance_test_pass = 'Goedgekeurd'; $status0 = '0'; $status0_text = 'Nieuw'; $status1 = '1'; @@ -466,8 +466,8 @@ $contract_ignore_serial = 'Negeer serienummers'; $contract_assigned_users = 'Gekoppelde gebruikers'; $contract_assigned_users_add = 'Gebruiker toevoegen'; $group_header_1 = 'Algemeen'; -$group_header_2 = 'Kop - Type 1'; -$group_header_3 = 'Kop - Type 2'; +$group_header_2 = 'Type 1 connector'; +$group_header_3 = 'Type 2 connector'; $group_header_4 = 'Batterij'; $group_header_5 = 'Behuizing'; $group_header_6 = 'Acties'; @@ -500,7 +500,6 @@ $service_visual_12 = 'Staat van de behuizing'; $service_visual_13 = 'Batterijklep aanwezig?'; $service_visual_14 = 'Corrosie op de batterij contacten?'; $service_visual_15 = 'Serienummer leesbaar?'; -$service_visual_15 = 'Serienummer leesbaar?'; $service_visual_16 = 'USB poort schoon?'; $service_visual_17 = 'Beweging op de USB poort?'; $service_visual_18 = 'All schroeven vast (5x)?'; @@ -669,13 +668,86 @@ $buildreport_onstock_text = 'Totaal aantal Voorraad'; $data_build_sfg_view = 'half-fabrikaat geproduceerd in de laatste 7 dagen'; $data_build_fg_view = 'Kompleet produkt geproduceerd in de laatste 7 dagen'; $menu_translations = 'Vertalingen'; +$button_create_rma = 'Maak RMA'; +$rmas_h2 = 'Retourmateriaal'; +$rmas_p = 'Bekijk, beheer en zoek RMA-gegevens.'; +$rma_h2 = 'Retourmateriaalverzoek'; +$message_rma_1 = 'RMA succesvol aangemaakt!'; +$message_rma_2 = 'RMA succesvol bijgewerkt!'; +$message_rma_3 = 'RMA succesvol verwijderd!'; +$message_no_rma = 'Er is geen RMA'; +$rma_search = 'Zoek RMA...'; +$rma_rowID = 'Verzoeknummer'; +$rma_status = 'Status'; +$rma_status0_text = 'Nieuw'; +$rma_status1_text = 'In uitvoering'; +$rma_status2_text = 'Goedgekeurd'; +$rma_status3_text = 'Voltooid'; +$rma_status4_text = 'Geannuleerd'; +$rma_sw_version_latest = 'Laatste softwareversie'; +$rma_servicereport_latest = 'Servicebericht gemaakt in de laatste 7 dagen'; +$rma_information = 'RMA informatie'; +$rma_return_reason = 'Retourreden'; +$rma_return_reason0_text = ''; +$rma_return_reason1_text = ''; +$rma_return_reason2_text = ''; +$rma_return_reason3_text = ''; +$rma_return_reason4_text = ''; +$rma_return_reasons_notes = 'Aantekeningen retourreden'; +$rma_return_tab1 = 'Retourreden'; +$rma_return_tab2 = 'Vragen'; +$rma_question_allowed_label1 = 'Ja'; +$rma_question_allowed_label2 = 'Nee'; +$rma_question_header_1 = ''; +$rma_question_1 = 'Werken de batterijen?'; +$rma_question_2 = 'Werkt de knop correct?'; +$rma_question_3 = ''; +$rma_question_4 = ''; +$rma_question_5 = ''; +$rma_question_6 = ''; +$rma_question_7 = ''; +$menu_rmas = 'Retourmateriaal'; +$button_create_text_variable = 'Maak variabele'; +$message_no_text_variables = 'Er zijn geen variabelen'; +$text_variables_h2 = 'Vertalingen'; +$text_variable_name = 'Naam van de variabele'; $text_variable_translation_languagekey = 'Taal'; $text_variable_translation_translation = 'Vertaling'; -$menu_products_attributes = 'Produkt attributen'; +$menu_products_attributes = 'Productattributen'; +$message_patt_1 = 'Productattribuut succesvol aangemaakt!'; +$message_patt_2 = 'Productattribuut succesvol bijgewerkt!'; +$message_patt_3 = 'Productattribuut succesvol verwijderd!'; +$products_attributes_h2 = 'Productattributen'; +$products_attributes_p = 'Bekijk, beheer en zoek productattributen'; +$button_create_products_attribute = 'Maak attribuut'; +$products_attribute_search = 'Zoek attribuut'; +$products_attribute_rowID = 'Attribuut ID'; +$products_attribute_group_name = 'Naam'; +$message_no_products_attributes = 'Er zijn geen attributen'; +$products_attribute_group_status = 'Status'; +$products_attribute_group_type = 'Type'; $general_status_0 = 'Inactief'; $general_status_1 = 'Actief'; +$products_attributes_group_status = 'Status'; +$products_attributes_group_name = 'Naam van de groep'; +$general_form_0 = 'Keuzerondje'; +$general_form_1 = 'Checkbox'; +$general_form_2 = 'Keuzelijst'; +$products_attributes_group_mandatory = 'Verplicht'; +$products_attributes_group_items = 'Items in groep'; +$products_attributes_item_rowID = 'Item ID'; +$products_attributes_item_status = 'Status'; +$products_attributes_item_name = 'Item naam'; +$products_attributes_item_quantity = 'Aantal items'; +$products_attributes_item_position = 'Positie van item'; +$products_attributes_item_media = 'Item media'; +$product_name_1 = 'Vertaling van testproduct'; $menu_pricelists = 'Prijslijsten'; $menu_media = 'Media'; +$general_currency_1 = ' $'; +$general_currency_0 = ' €'; +$general_modifier_0 = '-'; +$general_modifier_1 = '+'; $h2_brand_name_1 = 'MorvalWatches'; $h2_brand_name_2 = 'een merk met een verhaal'; $h2_brand_visit = 'Onze collectie'; diff --git a/settings/translations/translations_PT.php b/settings/translations/translations_PT.php index a1b4025..5f945a7 100644 --- a/settings/translations/translations_PT.php +++ b/settings/translations/translations_PT.php @@ -162,8 +162,8 @@ $service_report_maintenance_test_status = 'Status'; $service_report_outcome_good = 'Bom'; $service_report_outcome_attention = 'Atenção'; $service_report_no_text = 'Não há relatórios de serviço'; -$service_maintenance_test_fail = 'falhou'; -$service_maintenance_test_pass = 'bom'; +$service_maintenance_test_fail = 'Não aprovado'; +$service_maintenance_test_pass = 'Aprovado'; $status0 = '0'; $status0_text = 'Novo'; $status1 = '1'; @@ -466,8 +466,8 @@ $contract_ignore_serial = 'Ignorar números de série'; $contract_assigned_users = 'Usuários atribuídos'; $contract_assigned_users_add = 'Adicionar usuário'; $group_header_1 = 'Geral'; -$group_header_2 = 'Cabeça - Tipo 1'; -$group_header_3 = 'Cabeça - Tipo 2'; +$group_header_2 = 'Type 1 connector'; +$group_header_3 = 'Type 2 connector'; $group_header_4 = 'Unidade de bateria'; $group_header_5 = 'Carcaça'; $group_header_6 = 'Ações'; @@ -500,7 +500,6 @@ $service_visual_12 = 'Estado da carcaça de plástico'; $service_visual_13 = 'Cobertura da bateria disponível?'; $service_visual_14 = 'Corrosão nos contatos da bateria?'; $service_visual_15 = 'Número de série legível?'; -$service_visual_15 = 'Número de série legível?'; $service_visual_16 = 'Conector USB limpo?'; $service_visual_17 = 'Movimento no conector USB?'; $service_visual_18 = 'Parafusos fixos (5x)?'; @@ -669,9 +668,86 @@ $buildreport_onstock_text = 'Número total Em estoque'; $data_build_sfg_view = 'semi-acabado produzido nos últimos 7 dias'; $data_build_fg_view = 'produto acabado produzido nos últimos 7 dias'; $menu_translations = 'Traduções'; +$button_create_rma = 'Criar RMA'; +$rmas_h2 = 'Material de devolução'; +$rmas_p = 'Visualizar, gerenciar e buscar detalhes do RMA'; +$rma_h2 = 'Solicitação de material de devolução'; +$message_rma_1 = 'RMA criada com sucesso!'; +$message_rma_2 = 'RMA atualizada com sucesso!'; +$message_rma_3 = 'RMA excluída com sucesso!'; +$message_no_rma = 'Não há RMA'; +$rma_search = 'Procurar RMA...'; +$rma_rowID = 'Número de solicitação'; +$rma_status = 'Status'; +$rma_status0_text = 'Novo'; +$rma_status1_text = 'Em progresso'; +$rma_status2_text = 'Aprovado'; +$rma_status3_text = 'Concluído'; +$rma_status4_text = 'Cancelado'; +$rma_sw_version_latest = 'Última versão do software'; +$rma_servicereport_latest = 'Relatório de serviço criado nos últimos 7 dias'; +$rma_information = 'Informações do RMA'; +$rma_return_reason = 'Motivo de devolução'; +$rma_return_reason0_text = ''; +$rma_return_reason1_text = ''; +$rma_return_reason2_text = ''; +$rma_return_reason3_text = ''; +$rma_return_reason4_text = ''; +$rma_return_reasons_notes = 'Notas sobre o motivo de devolução'; +$rma_return_tab1 = 'Motivo de devolução'; +$rma_return_tab2 = 'Perguntas'; +$rma_question_allowed_label1 = 'Sim'; +$rma_question_allowed_label2 = 'Não'; +$rma_question_header_1 = ''; +$rma_question_1 = 'As baterias estão funcionando?'; +$rma_question_2 = 'O botão está funcionando corretamente?'; +$rma_question_3 = ''; +$rma_question_4 = ''; +$rma_question_5 = ''; +$rma_question_6 = ''; +$rma_question_7 = ''; +$menu_rmas = 'Material de devolução'; +$button_create_text_variable = 'Criar variável'; +$message_no_text_variables = 'Não há variáveis'; +$text_variables_h2 = 'Traduções'; +$text_variable_name = 'Nome da variável'; +$text_variable_translation_languagekey = 'Idioma'; +$text_variable_translation_translation = 'Tradução'; +$menu_products_attributes = 'Atributos de produto'; +$message_patt_1 = 'Atributo de produto criado com sucesso!'; +$message_patt_2 = 'Atributo de produto atualizado com sucesso!'; +$message_patt_3 = 'Atributo de produto excluído com sucesso!'; +$products_attributes_h2 = 'Atributos de produto'; +$products_attributes_p = 'Visualizar, gerenciar e buscar atributos'; +$button_create_products_attribute = 'Criar atributo'; +$products_attribute_search = 'Procurar atributo'; +$products_attribute_rowID = 'ID do atributo'; +$products_attribute_group_name = 'Nome'; +$message_no_products_attributes = 'Não há atributos'; +$products_attribute_group_status = 'Status'; +$products_attribute_group_type = 'Tipo'; $general_status_0 = 'Inativo'; $general_status_1 = 'Ativo'; +$products_attributes_group_status = 'Status'; +$products_attributes_group_name = 'Nome do grupo'; +$general_form_0 = 'Botão de opção'; +$general_form_1 = 'Caixa de seleção'; +$general_form_2 = 'Lista suspensa'; +$products_attributes_group_mandatory = 'Obrigatório'; +$products_attributes_group_items = 'Itens no grupo'; +$products_attributes_item_rowID = 'ID do item'; +$products_attributes_item_status = 'Status'; +$products_attributes_item_name = 'Nome do item'; +$products_attributes_item_quantity = 'Quantidade do item'; +$products_attributes_item_position = 'Posição do item'; +$products_attributes_item_media = 'Mídia do item'; +$product_name_1 = 'Tradução do produto de teste'; +$menu_pricelists = 'Listas de preços'; $menu_media = 'Mídia'; +$general_currency_1 = ' $'; +$general_currency_0 = ' €'; +$general_modifier_0 = '-'; +$general_modifier_1 = '+'; $menu_catalog = 'Catálogo'; $menu_sales_orders = 'Pedidos'; $menu_identity = 'Identidade'; diff --git a/settings/translations/translations_US.php b/settings/translations/translations_US.php index ebfe699..42c34cb 100644 --- a/settings/translations/translations_US.php +++ b/settings/translations/translations_US.php @@ -162,8 +162,8 @@ $service_report_maintenance_test_status = 'Status'; $service_report_outcome_good = 'Good'; $service_report_outcome_attention = 'Attention'; $service_report_no_text = 'There are no service reports '; -$service_maintenance_test_fail = 'fail'; -$service_maintenance_test_pass = 'good'; +$service_maintenance_test_fail = 'Not approved'; +$service_maintenance_test_pass = 'Approved'; $status0 = '0'; $status0_text = 'New'; $status1 = '1'; @@ -466,8 +466,8 @@ $contract_ignore_serial = 'Ignore serialnumbers'; $contract_assigned_users = 'Assigned users'; $contract_assigned_users_add = 'Add user'; $group_header_1 = 'General'; -$group_header_2 = 'Head - Type 1'; -$group_header_3 = 'Head - Type 2'; +$group_header_2 = 'Type 1 connector'; +$group_header_3 = 'Type 2 connector'; $group_header_4 = 'Battery unit'; $group_header_5 = 'Casing'; $group_header_6 = 'Actions'; @@ -499,7 +499,6 @@ $service_visual_11 = 'Corrosion visible on pins?'; $service_visual_12 = 'State of plastic housing'; $service_visual_13 = 'Battery cover available?'; $service_visual_14 = 'Corrosion on battery contacts?'; -$service_visual_15 = 'Battery contacts available?'; $service_visual_15 = 'Serialnumber readable?'; $service_visual_16 = 'USB connector clean?'; $service_visual_17 = 'Movement on USB connector?';