From 661cf645d45bad3d1daa14d19add729373c570cd Mon Sep 17 00:00:00 2001 From: DanielS Date: Thu, 12 Nov 2026 00:41:51 +0100 Subject: [PATCH] German back office: hotel modules, reports, dashboard and menu names MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The German language pack leaves the Webkul hotel modules (Hotel Reservation System, Book Now, refunds, rooms, settings), reports, dashboard widgets, cron manager, channel manager, reviews and 31 menu names in English. - docker/find-missing-admin-translations.php: scans module admin controllers/classes/templates and core admin pages for keys without a German text - docker/translations-de-admin.php: 1361 translations (formal "Sie", shared glossary, placeholders/markup verified automatically) - docker/translations-de-tabs.php: menu names (Hotelverwaltung, Zimmer buchen, Zimmerstatus, Erstattungsanträge, Zeitgesteuerte Aufgaben ...) - apply-translations.php now also writes back-office module texts, core admin texts and menu names; module texts the core admin pack already translates are reused from it (modules do not fall back to the admin pack at runtime). Result locally: 0 untranslated strings. Co-Authored-By: Claude Opus 5.5 --- docker/apply-translations.php | 151 ++- docker/find-missing-admin-translations.php | 134 ++ docker/translations-de-admin.php | 1369 ++++++++++++++++++++ docker/translations-de-tabs.php | 39 + 4 files changed, 1664 insertions(+), 29 deletions(-) create mode 100644 docker/find-missing-admin-translations.php create mode 100644 docker/translations-de-admin.php create mode 100644 docker/translations-de-tabs.php diff --git a/docker/apply-translations.php b/docker/apply-translations.php index 179116225..b6d2c870b 100644 --- a/docker/apply-translations.php +++ b/docker/apply-translations.php @@ -1,38 +1,41 @@ /translations/.php. - * Usage: docker compose exec -u www-data app php docker/apply-translations.php [iso] - * Reads the dictionary docker/translations--front.php (English => target language) - * and only fills keys that are missing; existing translations are never overwritten. + * Fills translation gaps the official language pack leaves (shop, back office, menu names). + * docker compose exec -u www-data app php docker/apply-translations.php [iso] + * + * Dictionaries (English => target language), only missing keys are written, existing + * translations are never overwritten: + * docker/translations--front.php shop texts (scanner: find-missing-translations.php) + * docker/translations--admin.php back-office texts (scanner: find-missing-admin-translations.php) + * docker/translations--tabs.php menu names (tab class => name), English names only + * Module texts go to modules//translations/.php, core admin texts to + * translations//admin.php (both git-ignored upstream: re-run after every install). */ if (PHP_SAPI !== 'cli') { exit; } $iso = isset($argv[1]) ? $argv[1] : 'de'; $root = realpath(__DIR__.'/..'); -$dict = require __DIR__.'/translations-'.$iso.'-front.php'; -$json = shell_exec('php '.escapeshellarg(__DIR__.'/find-missing-translations.php').' '.escapeshellarg($iso).' 2>/dev/null'); -$missing = json_decode($json, true); -if (!is_array($missing)) { - fwrite(STDERR, "Could not read missing translations\n"); - exit(1); +function loadDict($file) +{ + return is_file($file) ? require $file : array(); } -$added = 0; -$untranslated = array(); -foreach ($missing['modules'] as $mod => $entries) { - $lines = array(); - foreach ($entries as $key => $english) { - if (!isset($dict[$english])) { - $untranslated[$mod][] = $english; - continue; - } - $lines[] = '$_MODULE['.var_export($key, true).'] = '.var_export($dict[$english], true).';'; - } - if (!$lines) { - continue; +function scan($script, $iso) +{ + $json = shell_exec('php '.escapeshellarg(__DIR__.'/'.$script).' '.escapeshellarg($iso).' 2>/dev/null'); + $data = json_decode((string)$json, true); + if (!is_array($data)) { + fwrite(STDERR, "Could not run $script\n"); + exit(1); } + return $data; +} + +/** Append $_MODULE lines before a trailing "return $_MODULE;" if the pack file has one. */ +function appendModuleLines($root, $mod, $iso, array $lines) +{ $file = $root.'/modules/'.$mod.'/translations/'.$iso.'.php'; if (!is_file($file)) { @mkdir(dirname($file), 0755, true); @@ -42,7 +45,6 @@ foreach ($missing['modules'] as $mod => $entries) { if (substr($content, -2) === '?>') { $content = rtrim(substr($content, 0, -2)); } - // Some language-pack files end with "return $_MODULE;" - new lines must go before it. $hasReturn = (bool)preg_match('/\n\s*return \$_MODULE;\s*$/', $content); if ($hasReturn) { $content = rtrim(preg_replace('/\n\s*return \$_MODULE;\s*$/', '', $content)); @@ -52,11 +54,40 @@ foreach ($missing['modules'] as $mod => $entries) { $content .= "\nreturn \$_MODULE;\n"; } file_put_contents($file, $content); - $added += count($lines); - echo sprintf(" %-26s +%d\n", $mod, count($lines)); } + +function applyModules($root, $iso, array $missing, array $dict, &$untranslated) +{ + $added = 0; + foreach ($missing as $mod => $entries) { + $lines = array(); + foreach ($entries as $key => $english) { + if (!isset($dict[$english]) || !is_string($dict[$english])) { + $untranslated[] = $english; + continue; + } + $lines[] = '$_MODULE['.var_export($key, true).'] = '.var_export($dict[$english], true).';'; + } + if ($lines) { + appendModuleLines($root, $mod, $iso, $lines); + $added += count($lines); + echo sprintf(" %-26s +%d\n", $mod, count($lines)); + } + } + return $added; +} + +$untranslated = array(); + +echo "Shop and module templates\n"; +$front = loadDict(__DIR__.'/translations-'.$iso.'-front.php'); +$admin = loadDict(__DIR__.'/translations-'.$iso.'-admin.php'); +$missing = scan('find-missing-translations.php', $iso); +// the template scanner also finds dashboard/report modules: their texts live in the admin dictionary +$added = applyModules($root, $iso, $missing['modules'], $front + $admin, $untranslated); + // Theme strings the language pack "translates" with English text: replace those values. -$themeFixes = isset($dict['__theme_value_fixes']) ? $dict['__theme_value_fixes'] : array(); +$themeFixes = isset($front['__theme_value_fixes']) ? $front['__theme_value_fixes'] : array(); $themeFile = $root.'/themes/hotel-reservation-theme/lang/'.$iso.'.php'; if ($themeFixes && is_file($themeFile)) { $c = file_get_contents($themeFile); @@ -69,6 +100,68 @@ if ($themeFixes && is_file($themeFile)) { echo " theme lang fixes $n\n"; } +if ($admin) { + echo "Back office\n"; + $missingAdmin = scan('find-missing-admin-translations.php', $iso); + // texts the core admin pack already translates (same English text): reuse its German value + $_LANGADM = array(); + if (is_file($root.'/translations/'.$iso.'/admin.php')) { + include $root.'/translations/'.$iso.'/admin.php'; + } + $byMd5 = array(); + foreach ($_LANGADM as $k => $v) { + if ($v !== '') { + $byMd5[substr($k, -32)] = $v; + } + } + $packDict = array(); + foreach ($missingAdmin['modules'] as $entries) { + foreach ($entries as $english) { + if (!isset($admin[$english]) && isset($byMd5[md5($english)])) { + $packDict[$english] = $byMd5[md5($english)]; + } + } + } + $added += applyModules($root, $iso, $missingAdmin['modules'], $admin + $packDict, $untranslated); + $lines = array(); + foreach ($missingAdmin['core'] as $key => $english) { + if (isset($admin[$english])) { + $lines[] = '$_LANGADM['.var_export($key, true).'] = '.var_export($admin[$english], true).';'; + } else { + $untranslated[] = $english; + } + } + if ($lines) { + $file = $root.'/translations/'.$iso.'/admin.php'; + $content = is_file($file) ? rtrim(file_get_contents($file)) : "\s*$/', '', $content); + file_put_contents($file, rtrim($content)."\n\n// Added by docker/apply-translations.php\n".implode("\n", $lines)."\n"); + $added += count($lines); + echo sprintf(" %-26s +%d\n", 'core admin', count($lines)); + } +} + +$tabs = loadDict(__DIR__.'/translations-'.$iso.'-tabs.php'); +if ($tabs) { + echo "Menu\n"; + define('_PS_ADMIN_DIR_', __DIR__); + require_once $root.'/config/config.inc.php'; + $idLang = (int)Language::getIdByIso($iso); + $n = 0; + foreach ($tabs as $class => $name) { + $idTab = (int)Tab::getIdFromClassName($class); + if (!$idTab || !$idLang) { + continue; + } + $current = (string)Db::getInstance()->getValue('SELECT `name` FROM `'._DB_PREFIX_.'tab_lang` WHERE `id_tab` = '.$idTab.' AND `id_lang` = '.$idLang); + // only replace names that are still the English default (leave own renames alone) + if ($current !== $name && preg_match('/^[\x20-\x7E]*$/', $current) && !preg_match('/(ung|en|e)$/', $current)) { + Db::getInstance()->update('tab_lang', array('name' => pSQL($name)), '`id_tab` = '.$idTab.' AND `id_lang` = '.$idLang); + $n++; + } + } + echo " menu names $n\n"; +} + echo "Added $added translations.\n"; -$skip = array_sum(array_map('count', $untranslated)); -echo "Not in dictionary: $skip (mostly back-office modules)\n"; +echo 'Not in dictionary: '.count(array_unique($untranslated))."\n"; diff --git a/docker/find-missing-admin-translations.php b/docker/find-missing-admin-translations.php new file mode 100644 index 000000000..8d1e1e441 --- /dev/null +++ b/docker/find-missing-admin-translations.php @@ -0,0 +1,134 @@ + missing.json + * Covers the hotel modules' admin controllers/classes/templates and the core admin pages + * the reception works with (orders, customers, carts, guest registration). + * Output: {"modules": {mod: {key: english}}, "core": {key: english}} + */ +if (PHP_SAPI !== 'cli') { + exit; +} +$iso = isset($argv[1]) ? $argv[1] : 'de'; +$root = realpath(__DIR__.'/..'); + +$modules = array('hotelreservationsystem', 'qlohotelreview', 'qlocmconnector', 'wkroomsearchblock', 'blocknavigationmenu', 'qlocrontaskmanager'); +$coreControllers = array('AdminOrders', 'AdminCustomers', 'AdminCarts', 'AdminGuestRegistration', 'AdminAddresses', 'AdminDashboard', 'AdminLogin'); +$coreTplDirs = array('orders', 'customers', 'carts', 'guest_registration', 'addresses', 'dashboard', 'login'); + +$rePhp = '/->l\(\s*\'((?:[^\'\\\\]|\\\\.)*)\'(?:\s*,\s*\'([^\']*)\')?/'; +$reTpl = '/\{l\s+s=(?:\'((?:[^\'\\\\]|\\\\.)*)\'|"((?:[^"\\\\]|\\\\.)*)")(?:[^}]*?\smod=[\'"]([\w-]+)[\'"])?[^}]*\}/'; + +function files($dir, $ext) +{ + $out = array(); + if (!is_dir($dir)) { + return $out; + } + $it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS)); + foreach ($it as $f) { + if (substr($f, -strlen($ext)) === $ext) { + $out[] = (string)$f; + } + } + return $out; +} + +$out = array('modules' => array(), 'core' => array()); + +// core admin pack: module strings fall back to any admin translation with the same md5 +$_LANGADM = array(); +if (is_file("$root/translations/$iso/admin.php")) { + include "$root/translations/$iso/admin.php"; +} +$haveMd5 = array(); +foreach ($_LANGADM as $k => $v) { + if ($v !== '') { + $haveMd5[substr($k, -32)] = true; + } +} + +// ---- modules +foreach ($modules as $mod) { + $_MODULE = array(); + foreach (array("$root/modules/$mod/translations/$iso.php", "$root/themes/hotel-reservation-theme/modules/$mod/translations/$iso.php") as $f) { + if (is_file($f)) { + include $f; + } + } + $have = $_MODULE; + $add = function ($source, $string) use (&$out, $have, $mod, $haveMd5) { + $key = strtolower('<{'.$mod.'}prestashop>'.$source).'_'.md5($string); + // module strings do NOT fall back to the admin pack at runtime: report them all + if (empty($have[$key])) { + $out['modules'][$mod][$key] = $string; + } + }; + foreach (files("$root/modules/$mod", '.php') as $f) { + if (strpos($f, '/translations/') !== false || strpos($f, '/vendor/') !== false) { + continue; + } + if (!preg_match_all($rePhp, file_get_contents($f), $m, PREG_SET_ORDER)) { + continue; + } + $base = basename($f, '.php'); + foreach ($m as $x) { + $string = stripslashes($x[1]); + if (!empty($x[2])) { + $source = $x[2]; + } elseif (preg_match('/Controller$/', $base) && strpos($f, '/controllers/admin/') !== false) { + $source = $base; // ModuleAdminController -> "controller" + } elseif (strpos($f, '/controllers/') !== false) { + $source = preg_replace('/\.php$/', '', basename($f)); // front controller file name + } else { + $source = $mod; + } + $add($source, $string); + } + } + foreach (files("$root/modules/$mod/views/templates/admin", '.tpl') as $f) { + if (!preg_match_all($reTpl, file_get_contents($f), $m, PREG_SET_ORDER)) { + continue; + } + foreach ($m as $x) { + $string = stripslashes($x[1] !== '' ? $x[1] : $x[2]); + $add(basename($f, '.tpl'), $string); + } + } +} + +// ---- core admin +$addCore = function ($class, $string) use (&$out, $_LANGADM, $haveMd5) { + $md5 = md5($string); + if (empty($_LANGADM[$class.$md5]) && empty($haveMd5[$md5])) { + $out['core'][$class.$md5] = $string; + } +}; +foreach ($coreControllers as $c) { + $f = "$root/controllers/admin/{$c}Controller.php"; + if (is_file($f) && preg_match_all($rePhp, file_get_contents($f), $m, PREG_SET_ORDER)) { + foreach ($m as $x) { + $addCore($c, stripslashes($x[1])); + } + } +} +foreach ($coreTplDirs as $i => $dir) { + $class = isset($coreControllers[$i]) ? $coreControllers[$i] : 'AdminTab'; + foreach (files("$root/admin-dev/themes/default/template/controllers/$dir", '.tpl') as $f) { + if (preg_match_all($reTpl, file_get_contents($f), $m, PREG_SET_ORDER)) { + foreach ($m as $x) { + if (!empty($x[3])) { + continue; // module string inside a core template + } + $addCore($class, stripslashes($x[1] !== '' ? $x[1] : $x[2])); + } + } + } +} + +$counts = array('core' => count($out['core'])); +foreach ($out['modules'] as $mod => $s) { + $counts[$mod] = count($s); +} +fwrite(STDERR, json_encode($counts).PHP_EOL); +echo json_encode($out, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); diff --git a/docker/translations-de-admin.php b/docker/translations-de-admin.php new file mode 100644 index 000000000..b70f8dd72 --- /dev/null +++ b/docker/translations-de-admin.php @@ -0,0 +1,1369 @@ + German) for the hotel modules, reports, dashboard + * and core admin pages the language pack leaves in English. Applied by docker/apply-translations.php. + * Generated from the find-missing-*-translations.php scanners; placeholders checked. + */ +return array ( + ' API Credentials.' => ' API-Zugangsdaten.', + ' Channel Manager Account.' => ' Channel-Manager-Konto.', + ' Note: Replace fa- with icon- in icon name.' => ' Hinweis: Ersetzen Sie im Symbolnamen fa- durch icon-.', + ' Then enter QloApps webservice credentials under PMS settings of channel manager .' => ' Geben Sie anschließend die QloApps-Webservice-Zugangsdaten in den PMS-Einstellungen des Channel Managers ein.', + '" from cart to proceed.' => '" aus dem Warenkorb, um fortzufahren.', + '". Please remove rooms from "' => '". Bitte entfernen Sie Zimmer aus "', + '% of' => '% von', + '%1$s between %2$s and %3$s' => '%1$s zwischen %2$s und %3$s', + '%1$s through %2$s' => '%1$s bis %2$s', + '%1$s%2$s%%' => '%1$s%2$s%%', + '%1$s, during hour %2$s' => '%1$s, während Stunde %2$s', + '%d room(s) currently in-house.' => '%d Zimmer derzeit belegt.', + '%s - 1' => '%s - 1', + '%s Available Rooms' => '%s verfügbare Zimmer', + '%s Partially Available Rooms' => '%s teilweise verfügbare Zimmer', + '%s cost:' => '%s Kosten:', + '%s paid amount:' => '%s bezahlter Betrag:', + '\'Date to\' must be a greater than \'date from\'.' => '„Bis“ muss nach „Von“ liegen.', + '(Amounts are tax exclusive)' => '(Beträge ohne Steuer)', + '(currently unavailable)' => '(derzeit nicht verfügbar)', + '1 Adult, 1 Room' => '1 Erwachsener, 1 Zimmer', + '15 Days' => '15 Tage', + '30 Days' => '30 Tage', + 5 => '5', + '5 Days' => '5 Tage', + 'A Zip / Postal code is required.' => 'Eine Postleitzahl ist erforderlich.', + 'A centralized cron scheduling system where a single server cron entry manages all module tasks.' => 'Eine zentrale Cron-Zeitplanung, bei der ein einziger Cron-Eintrag auf dem Server alle Modul-Aufgaben steuert.', + 'A channel manager is a centralized software that synchronizes availabilities and details of the property across all platforms i.e. online travel agencies (OTA) and other online distribution channels.' => 'Ein Channel Manager ist eine zentrale Software, die Verfügbarkeiten und Angaben zum Hotel auf allen Plattformen abgleicht, z. B. bei Online-Reiseportalen (OTA) und anderen Online-Vertriebskanälen.', + 'A short human-readable description of what this task does.' => 'Eine kurze, verständliche Beschreibung dieser Aufgabe.', + 'A unique identifier for this task within the module.' => 'Eine eindeutige Kennung für diese Aufgabe innerhalb des Moduls.', + 'ADD CATEGORY' => 'KATEGORIE HINZUFÜGEN', + 'ADR (Avg. Daily Rate)' => 'ADR (Durchschnittlicher Zimmerpreis)', + 'AM' => 'AM', + 'API Client ID' => 'API-Client-ID', + 'API Client Secret' => 'API-Client-Secret', + 'Abandoned Carts' => 'Abgebrochene Warenkörbe', + 'Active Booking Carts' => 'Aktive Buchungswarenkörbe', + 'Active if link is opened in a new window.' => 'Aktiv, wenn der Link in einem neuen Fenster geöffnet wird.', + 'Activity overview' => 'Aktivitätsübersicht', + 'Add Images' => 'Bilder hinzufügen', + 'Add More Restrictions' => 'Weitere Einschränkungen hinzufügen', + 'Add Navigation Link' => 'Navigationslink hinzufügen', + 'Add New Advanced Price Rule' => 'Neue Preisregel hinzufügen', + 'Add New Amenity' => 'Neue Ausstattung hinzufügen', + 'Add New Amenity Category' => 'Neue Ausstattungskategorie hinzufügen', + 'Add New Navigation Link' => 'Neuen Navigationslink hinzufügen', + 'Add New Property' => 'Neues Hotel hinzufügen', + 'Add New Refund Rule' => 'Neue Erstattungsregel hinzufügen', + 'Add To Cart' => 'In den Warenkorb', + 'Add images' => 'Bilder hinzufügen', + 'Add link from cms pages' => 'Link von CMS-Seiten hinzufügen', + 'Add new Amenity' => 'Neue Ausstattung hinzufügen', + 'Add new Amenity Category' => 'Neue Ausstattungskategorie hinzufügen', + 'Add new Hotel' => 'Neues Hotel hinzufügen', + 'Add new link' => 'Neuen Link hinzufügen', + 'Add new refund rule' => 'Neue Erstattungsregel hinzufügen', + 'Add new rule' => 'Neue Regel hinzufügen', + 'Add the first amenity.' => 'Fügen Sie die erste Ausstattung hinzu.', + 'Add the following cron entry to your server. This single command will manage all module cron tasks automatically.' => 'Fügen Sie den folgenden Cron-Eintrag auf Ihrem Server hinzu. Dieser eine Befehl steuert automatisch alle Cron-Aufgaben der Module.', + 'Added Time' => 'Hinzugefügt am', + 'Adding new category' => 'Neue Kategorie wird hinzugefügt', + 'Additional Guests' => 'Weitere Gäste', + 'Address' => 'Adresse', + 'Address :' => 'Adresse :', + 'Address Line1 field is required' => 'Das Feld Adresszeile 1 ist erforderlich', + 'Address is required field.' => 'Die Adresse ist ein Pflichtfeld.', + 'Adds a navigation block at top and footer section.' => 'Fügt einen Navigationsbereich oben und im Fußbereich hinzu.', + 'Admin approval' => 'Freigabe durch Administrator', + 'Adv. Payment Deduction Percentage/Amount' => 'Abzug Anzahlung in Prozent/Betrag', + 'Advance Payment Global Setting' => 'Allgemeine Einstellung für Anzahlungen', + 'Advance payment charges' => 'Anzahlungsgebühren', + 'Advanced Price Calculation Priorities' => 'Prioritäten der Preisberechnung', + 'Advanced Price Rule Name ' => 'Name der Preisregel ', + 'Advanced price rule Name field is too long (%d chars max) for "%s" room type in ' => 'Das Feld Name der Preisregel ist zu lang (max. %d Zeichen) für den Zimmertyp "%s" in ', + 'Advanced price rule Name field is too long (%d chars max) in ' => 'Das Feld Name der Preisregel ist zu lang (max. %d Zeichen) in ', + 'Advanced price rule name is invalid in ' => 'Der Name der Preisregel ist ungültig in ', + 'Advanced price rule name is required at least in %s' => 'Der Name der Preisregel ist mindestens in %s erforderlich', + 'Advantages of Channel Manager' => 'Vorteile des Channel Managers', + 'All' => 'Alle', + 'All Categories' => 'Alle Kategorien', + 'All Cron Task Logs' => 'Alle Cron-Aufgaben-Protokolle', + 'All Floors' => 'Alle Etagen', + 'All Guests' => 'Alle Gäste', + 'All Hotels' => 'Alle Hotels', + 'All Services' => 'Alle Leistungen', + 'All Types' => 'Alle Typen', + 'All sources' => 'Alle Quellen', + 'Allotment Type' => 'Kontingenttyp', + 'Allotment message' => 'Kontingent-Nachricht', + 'Allowed image formats: .gif, .jpg, .jpeg and .png' => 'Erlaubte Bildformate: .gif, .jpg, .jpeg und .png', + 'Already integrated with QloApps PMS that auto-synchronize inventories for the bookings created on QloApps PMS and connected OTA channels.' => 'Bereits in das QloApps PMS integriert. Die Bestände werden für Buchungen im QloApps PMS und in den verbundenen OTA-Kanälen automatisch abgeglichen.', + 'Amenity Name' => 'Name der Ausstattung', + 'Amenity name is invalid.' => 'Der Name der Ausstattung ist ungültig.', + 'Amenity name is required in default language.' => 'Der Name der Ausstattung ist in der Standardsprache erforderlich.', + 'Amount' => 'Betrag', + 'Amount (Tax excl.)' => 'Betrag (ohne Steuer)', + 'An advanced price rule already exists for "%s". Please update the restrictions to avoid duplication.' => 'Für "%s" gibt es bereits eine Preisregel. Bitte passen Sie die Einschränkungen an, um Doppelungen zu vermeiden.', + 'An advanced price rule already exists with overlapping conditions. Please update the existing rule to activate this one.' => 'Es gibt bereits eine Preisregel mit sich überschneidenden Bedingungen. Bitte passen Sie die bestehende Regel an, um diese zu aktivieren.', + 'An error occurred while deleting. Please try again.' => 'Beim Löschen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.', + 'An error occurred while updating object.' => 'Beim Aktualisieren des Objekts ist ein Fehler aufgetreten.', + 'Approval Status' => 'Freigabestatus', + 'Approval status of the review.' => 'Freigabestatus der Bewertung.', + 'Approved' => 'Freigegeben', + 'April' => 'April', + 'Are you sure you want to delete the selected image(s)? This cannot be undone.' => 'Möchten Sie die ausgewählten Bilder wirklich löschen? Dies kann nicht rückgängig gemacht werden.', + 'Are you sure you want to delete this? This action cannot be undone.' => 'Möchten Sie dies wirklich löschen? Dies kann nicht rückgängig gemacht werden.', + 'Are you sure you want to regenerate the token? You will need to update your server cron entry.' => 'Möchten Sie den Token wirklich neu erzeugen? Sie müssen dann Ihren Cron-Eintrag auf dem Server aktualisieren.', + 'Are you sure you want to uninstall this module? All cron task data will be lost.' => 'Möchten Sie dieses Modul wirklich deinstallieren? Alle Daten der Cron-Aufgaben gehen verloren.', + 'Are you sure you want to uninstall?' => 'Möchten Sie wirklich deinstallieren?', + 'Are you sure? This will revert the task settings to the module\'s original values.' => 'Sind Sie sicher? Die Einstellungen der Aufgabe werden auf die ursprünglichen Werte des Moduls zurückgesetzt.', + 'Arrival Date & Time' => 'Anreisedatum und -uhrzeit', + 'Arrival Date in Country' => 'Einreisedatum im Land', + 'Arrivals' => 'Anreisen', + 'Arrived From' => 'Angereist aus', + 'Arrows' => 'Pfeile', + 'As a guest' => 'Als Gast', + 'Assign' => 'Zuweisen', + 'Assign Features' => 'Ausstattung zuweisen', + 'Assign and stay' => 'Zuweisen und hier bleiben', + 'At %s' => 'Um %s', + 'At least one active image is required' => 'Mindestens ein aktives Bild ist erforderlich', + 'At least one active image is required.' => 'Mindestens ein aktives Bild ist erforderlich.', + 'At least one image must remain active.' => 'Mindestens ein Bild muss aktiv bleiben.', + 'At least one image must remain marked as cover.' => 'Mindestens ein Bild muss als Titelbild markiert bleiben.', + 'At least one restriction is required while creating advance price rule.' => 'Beim Erstellen einer Preisregel ist mindestens eine Einschränkung erforderlich.', + 'At minute %1$s, between %2$s and %3$s' => 'In Minute %1$s, zwischen %2$s und %3$s', + 'At minute %1$s, hour %2$s' => 'In Minute %1$s, Stunde %2$s', + 'At time of arrival' => 'Bei Anreise', + 'At time of booking' => 'Bei Buchung', + 'August' => 'August', + 'Auto Allotment' => 'Automatisches Kontingent', + 'Auto Slide' => 'Automatischer Bildwechsel', + 'Auto Slide Interval must be at least 500 milliseconds.' => 'Das Intervall für den automatischen Bildwechsel muss mindestens 500 Millisekunden betragen.', + 'Automatic sitemap generation' => 'Automatische Sitemap-Erstellung', + 'Automatic sitemap generation is turned off.' => 'Die automatische Sitemap-Erstellung ist ausgeschaltet.', + 'Automatic:' => 'Automatisch:', + 'Availability' => 'Verfügbarkeit', + 'Available' => 'Verfügbar', + 'Available %s' => 'Verfügbar %s', + 'Available Rooms' => 'Verfügbare Zimmer', + 'Average Daily Rate' => 'Durchschnittlicher Zimmerpreis', + 'Average Daily Rate (ADR) represents the average rental income per occupied room over a given time period.' => 'Der durchschnittliche Zimmerpreis (ADR) zeigt die durchschnittlichen Einnahmen pro belegtem Zimmer in einem bestimmten Zeitraum.', + 'Average Length of Stay' => 'Durchschnittliche Aufenthaltsdauer', + 'Average Length of Stay (ALOS) is the average amount of days guests stay at the hotel over a given time period.' => 'Die durchschnittliche Aufenthaltsdauer (ALOS) ist die durchschnittliche Anzahl an Tagen, die Gäste in einem bestimmten Zeitraum im Hotel bleiben.', + 'Average Occupancy Rate' => 'Durchschnittliche Auslastung', + 'Average Occupancy Rate (AOR) is the average percentage of rooms booked out over a given time period.' => 'Die durchschnittliche Auslastung (AOR) ist der durchschnittliche Prozentsatz der gebuchten Zimmer in einem bestimmten Zeitraum.', + 'Average Order Value' => 'Durchschnittlicher Bestellwert', + 'Average Order Value is a metric representing the value of an average order within the date range. It is calculated by dividing sales by bookings. This data is provided by the module "Data mining for statistics", so please make sure it is installed and configured.' => 'Der durchschnittliche Bestellwert zeigt den Wert einer durchschnittlichen Bestellung im gewählten Zeitraum. Er wird berechnet, indem der Umsatz durch die Anzahl der Buchungen geteilt wird. Diese Daten stammen aus dem Modul "Data mining for statistics". Bitte stellen Sie sicher, dass es installiert und eingerichtet ist.', + 'Average Order Value is the average amount spent on each booking over a given time period.' => 'Der durchschnittliche Bestellwert ist der durchschnittliche Betrag pro Buchung in einem bestimmten Zeitraum.', + 'Avg LOS' => 'Ø Aufenthaltsdauer', + 'Avg Spend Per Stay' => 'Ø Ausgaben pro Aufenthalt', + 'Avg. Length of Stay' => 'Ø Aufenthaltsdauer', + 'Avg. Order Value' => 'Ø Bestellwert', + 'Back to Tasks' => 'Zurück zu den Aufgaben', + 'Back to hotel list' => 'Zurück zur Hotelliste', + 'Below is the list of all the bookings created by QloApps Channel Manager.' => 'Unten sehen Sie alle Buchungen, die über den QloApps Channel Manager erstellt wurden.', + 'Best Selling' => 'Meistverkauft', + 'Billing & Corporate Details' => 'Rechnungs- und Firmendaten', + 'Blur' => 'Weichzeichnen', + 'Bold' => 'Fett', + 'Book Now' => 'Zimmer buchen', + 'Booked %s' => 'Gebucht %s', + 'Booking Calendar' => 'Buchungskalender', + 'Booking Date' => 'Buchungsdatum', + 'Booking Details' => 'Buchungsdetails', + 'Booking Form' => 'Buchungsformular', + 'Booking Information' => 'Buchungsinformationen', + 'Booking Ref.' => 'Buchungsnr.', + 'Booking Ref. No.' => 'Buchungsnummer', + 'Booking Reference No.' => 'Buchungsnummer', + 'Booking Source' => 'Buchungsquelle', + 'Booking Status' => 'Buchungsstatus', + 'Bookings (not paid)' => 'Buchungen (nicht bezahlt)', + 'Bookings requested for refund' => 'Buchungen mit Erstattungsantrag', + 'Both (Dots + Arrows)' => 'Beides (Punkte + Pfeile)', + 'Bulk Update Images' => 'Bilder gesammelt bearbeiten', + 'Bulk Update selection' => 'Auswahl gesammelt bearbeiten', + 'CMS Page Name' => 'Name der CMS-Seite', + 'CMS page' => 'CMS-Seite', + 'CSV Export' => 'CSV-Export', + 'CURL extension is not installed or enabled on your server. Cron execution will not work until CURL is available.' => 'Die CURL-Erweiterung ist auf Ihrem Server nicht installiert oder nicht aktiviert. Cron-Aufgaben funktionieren erst, wenn CURL verfügbar ist.', + 'Can not update position for object ID: %d to position %d' => 'Die Position von Objekt-ID %d kann nicht auf Position %d geändert werden.', + 'Can\'t update #%d status.' => 'Der Status von #%d kann nicht geändert werden.', + 'Cancel Rate %' => 'Stornoquote %', + 'Cancelation reason' => 'Stornierungsgrund', + 'Cancellation' => 'Stornierung', + 'Cancellation Count' => 'Anzahl Stornierungen', + 'Cancellation Date' => 'Stornierungsdatum', + 'Cancellation Rate' => 'Stornoquote', + 'Cancellation Rate (CR) is the percentage of all cancelled orders out of all orders over a given time period.' => 'Die Stornoquote (CR) ist der Prozentsatz der stornierten Bestellungen an allen Bestellungen in einem bestimmten Zeitraum.', + 'Cancellation Reason' => 'Stornierungsgrund', + 'Cancellations' => 'Stornierungen', + 'Cart Options' => 'Warenkorb-Optionen', + 'Category Name' => 'Kategoriename', + 'Category is required.' => 'Eine Kategorie ist erforderlich.', + 'Category name is invalid.' => 'Der Kategoriename ist ungültig.', + 'Category name is required at least in ' => 'Der Kategoriename ist mindestens erforderlich in ', + 'Category name is required in default language.' => 'Der Kategoriename ist in der Standardsprache erforderlich.', + 'Center' => 'Zentriert', + 'Change language for updating information in multiple language.' => 'Wechseln Sie die Sprache, um Angaben in mehreren Sprachen zu bearbeiten.', + 'Change language here to update information in multiple languages.' => 'Wechseln Sie hier die Sprache, um Angaben in mehreren Sprachen zu bearbeiten.', + 'Channel' => 'Kanal', + 'Channel Manager API Credentials' => 'API-Zugangsdaten des Channel Managers', + 'Channel Manager Bookings' => 'Buchungen des Channel Managers', + 'Check In date can not be before current date.' => 'Das Check-in-Datum darf nicht in der Vergangenheit liegen.', + 'Check In time is required field.' => 'Die Check-in-Zeit ist ein Pflichtfeld.', + 'Check Out Time is required field.' => 'Die Check-out-Zeit ist ein Pflichtfeld.', + 'Check Out date must be greater than Check In date.' => 'Das Check-out-Datum muss nach dem Check-in-Datum liegen.', + 'Check Out time must be before Check In time.' => 'Die Check-out-Zeit muss vor der Check-in-Zeit liegen.', + 'Check-in / Check-out Time' => 'Check-in- / Check-out-Zeit', + 'Check-in Date' => 'Check-in-Datum', + 'Check-in Time' => 'Check-in-Zeit', + 'Check-in:' => 'Check-in:', + 'Check-out Date' => 'Check-out-Datum', + 'Check-out:' => 'Check-out:', + 'Checked In' => 'Eingecheckt', + 'Checked Out' => 'Ausgecheckt', + 'Choose Language' => 'Sprache wählen', + 'Choose file...' => 'Datei auswählen ...', + 'Choose whether the home page header shows a slideshow of images or a background video.' => 'Legen Sie fest, ob der Kopfbereich der Startseite eine Bilderschau oder ein Hintergrundvideo zeigt.', + 'Choose your Country' => 'Land wählen', + 'City' => 'Stadt', + 'City / Country' => 'Ort / Land', + 'City :' => 'Ort :', + 'Client ID from your Channel Manager account API credentials' => 'Client-ID aus den API-Zugangsdaten Ihres Channel-Manager-Kontos', + 'Client Secret from your Channel Manager account API credentials' => 'Client-Secret aus den API-Zugangsdaten Ihres Channel-Manager-Kontos', + 'Close' => 'Schließen', + 'Collection Type' => 'Abholart', + 'Company' => 'Firma', + 'Company / Agent' => 'Firma / Vermittler', + 'Configuration' => 'Konfiguration', + 'Configure' => 'Konfigurieren', + 'Configure Cron Job' => 'Cron-Aufgabe einrichten', + 'Confirm Switch to Video' => 'Wechsel zu Video bestätigen', + 'Conflicting rows are' => 'Widersprüchliche Zeilen sind', + 'Connect It Now' => 'Jetzt verbinden', + 'Connect in Google Hotel Setup' => 'In der Google-Hotel-Einrichtung verbinden', + 'Connect to Google Hotel to get more commission-free direct bookings.' => 'Verbinden Sie sich mit Google Hotel, um mehr provisionsfreie Direktbuchungen zu erhalten.', + 'Connected' => 'Verbunden', + 'Connected to the Google Hotel Center, but some hotels are not listed.' => 'Mit dem Google Hotel Center verbunden, aber einige Hotels sind nicht gelistet.', + 'Connected to the Google Hotel Center.' => 'Mit dem Google Hotel Center verbunden.', + 'Connection status' => 'Verbindungsstatus', + 'Connection status with channel manager is showing according to the bookings fetched from QloApps Channel Manager.' => 'Der Verbindungsstatus zum Channel Manager richtet sich nach den Buchungen, die vom QloApps Channel Manager abgerufen wurden.', + 'Connection with PMS' => 'Verbindung mit PMS', + 'Consider guest as Infant below age' => 'Gast als Kleinkind zählen unter Alter', + 'Consider guest as child below age' => 'Gast als Kind zählen unter Alter', + 'Contact us' => 'Kontakt', + 'Content Alignment' => 'Ausrichtung des Inhalts', + 'Contribution %' => 'Anteil %', + 'Convenience Fee (Tax excl.):' => 'Servicegebühr (ohne Steuer):', + 'Conversion' => 'Konversion', + 'Conversion Rate' => 'Konversionsrate', + 'Conversion Rate is the percentage of visits that resulted in a validated booking.' => 'Die Konversionsrate ist der Prozentsatz der Besuche, die zu einer bestätigten Buchung geführt haben.', + 'Conversion is the measure of visitors who make a booking on your website over a given time period.' => 'Die Konversion misst, wie viele Besucher in einem bestimmten Zeitraum auf Ihrer Website eine Buchung abschließen.', + 'Copied!' => 'Kopiert!', + 'Copy to clipboard' => 'In die Zwischenablage kopieren', + 'Could not create the media directory.' => 'Das Medienverzeichnis konnte nicht erstellt werden.', + 'Country' => 'Land', + 'Country :' => 'Land :', + 'Country is required field.' => 'Das Land ist ein Pflichtfeld.', + 'Cover image' => 'Titelbild', + 'Cover image changed successfully' => 'Titelbild erfolgreich geändert', + 'Create Credit Slip' => 'Gutschrift erstellen', + 'Create Voucher' => 'Gutschein erstellen', + 'Create account on Channel Manager' => 'Konto beim Channel Manager erstellen', + 'Create for multiple room types' => 'Für mehrere Zimmertypen erstellen', + 'Create image category' => 'Bildkategorie erstellen', + 'Create your webservice key and enable all the APIs from Webservice tab.' => 'Erstellen Sie Ihren Webservice-Schlüssel und aktivieren Sie alle APIs im Reiter Webservice.', + 'Created By' => 'Erstellt von', + 'Created On' => 'Erstellt am', + 'Created on' => 'Erstellt am', + 'Credit Card Number' => 'Kreditkartennummer', + 'Credit Slip ID:' => 'Gutschrift-ID:', + 'Cron Command' => 'Cron-Befehl', + 'Cron Expression' => 'Cron-Ausdruck', + 'Cron Task' => 'Cron-Aufgabe', + 'Cron Task Logs' => 'Cron-Aufgaben-Protokolle', + 'Cron Task Manager' => 'Cron-Aufgaben-Verwaltung', + 'Cron job setting' => 'Cron-Einstellung', + 'Cron task not found.' => 'Cron-Aufgabe nicht gefunden.', + 'Cron task reset to module defaults successfully.' => 'Die Cron-Aufgabe wurde erfolgreich auf die Modul-Standardwerte zurückgesetzt.', + 'Current Guest' => 'Aktueller Gast', + 'Current Status' => 'Aktueller Status', + 'Current Video' => 'Aktuelles Video', + 'Current order state' => 'Aktueller Bestellstatus', + 'Current refund state' => 'Aktueller Erstattungsstatus', + 'Current status of the category.' => 'Aktueller Status der Kategorie.', + 'Current status of the settings link.' => 'Aktueller Status des Einstellungslinks.', + 'Currently Pending' => 'Derzeit offen', + 'Custom redirect url' => 'Eigene Weiterleitungs-URL', + 'Custom redirect url is required.' => 'Eine eigene Weiterleitungs-URL ist erforderlich.', + 'Customer Details' => 'Kundendaten', + 'Customer name' => 'Kundenname', + 'Customers & Newsletters' => 'Kunden & Newsletter', + 'Date' => 'Datum', + 'Date / Period' => 'Datum / Zeitraum', + 'Date Range' => 'Zeitraum', + 'Date Ranges' => 'Zeiträume', + 'Date Selection type' => 'Art der Datumsauswahl', + 'Date and time when this review was added.' => 'Datum und Uhrzeit, zu der diese Bewertung hinzugefügt wurde.', + 'Date from is invalid.' => 'Das Von-Datum ist ungültig.', + 'Date from is required.' => 'Das Von-Datum ist erforderlich.', + 'Date of Birth' => 'Geburtsdatum', + 'Date of Expiry' => 'Ablaufdatum', + 'Date of Issue' => 'Ausstellungsdatum', + 'Date ranges are conflicting with each other.' => 'Die Zeiträume überschneiden sich.', + 'Date to' => 'Bis', + 'Date to is invalid.' => 'Das Bis-Datum ist ungültig.', + 'Date to is required.' => 'Das Bis-Datum ist erforderlich.', + 'Dates are invalid in price rule restriction' => 'Die Daten in der Einschränkung der Preisregel sind ungültig', + 'Dates are invalid in price rule restriction.' => 'Die Daten in der Einschränkung der Preisregel sind ungültig.', + 'Days before check-in' => 'Tage vor dem Check-in', + 'Days of the Week' => 'Wochentage', + 'December' => 'Dezember', + 'Decrease Price' => 'Preis senken', + 'Deduction value for advance payment' => 'Abzugswert für Anzahlung', + 'Deduction value for full payment' => 'Abzugswert für Vollzahlung', + 'Default: 16px. Recommended: 12px–48px.' => 'Standard: 16 px. Empfohlen: 12 px–48 px.', + 'Delete failed.' => 'Löschen fehlgeschlagen.', + 'Delete image' => 'Bild löschen', + 'Delete selected images? This cannot be undone.' => 'Ausgewählte Bilder löschen? Dies kann nicht rückgängig gemacht werden.', + 'Departure Date & Time' => 'Abreisedatum und -uhrzeit', + 'Departures' => 'Abreisen', + 'Description :' => 'Beschreibung :', + 'Description Color' => 'Farbe der Beschreibung', + 'Description Font Size' => 'Schriftgröße der Beschreibung', + 'Description Font Weight' => 'Schriftstärke der Beschreibung', + 'Description font size must be between 8 and 72 pixels.' => 'Die Schriftgröße der Beschreibung muss zwischen 8 und 72 Pixeln liegen.', + 'Description is not valid in %s' => 'Die Beschreibung ist ungültig in %s', + 'Description is required at least in ' => 'Die Beschreibung ist mindestens erforderlich in ', + 'Description is too long: %d chars max.' => 'Die Beschreibung ist zu lang: max. %d Zeichen.', + 'Description...' => 'Beschreibung ...', + 'Detailed refund policy' => 'Ausführliche Erstattungsbedingungen', + 'Direct Revenue Ratio' => 'Direktumsatzanteil', + 'Direct Revenue Ratio (DRR) measures the percentage of online revenue that comes directly from your website vs. third party channels.' => 'Der Direktumsatzanteil (DRR) zeigt, welcher Prozentsatz des Online-Umsatzes direkt über Ihre Website statt über Drittanbieter kommt.', + 'Disable date duration' => 'Datumszeitraum deaktivieren', + 'Disable selected' => 'Auswahl deaktivieren', + 'Disabled navigation links will not be displayed anywhere.' => 'Deaktivierte Navigationslinks werden nirgendwo angezeigt.', + 'Disabled tasks are skipped.' => 'Deaktivierte Aufgaben werden übersprungen.', + 'Disapproved' => 'Abgelehnt', + 'Discount Amount' => 'Rabattbetrag', + 'Display Active Hotels Only' => 'Nur aktive Hotels anzeigen', + 'Display Contact Page Hotel List' => 'Hotelliste auf der Kontaktseite anzeigen', + 'Display Contact Us page Google map' => 'Google-Karte auf der Kontaktseite anzeigen', + 'Display Google Maps For Hotel Location' => 'Google Maps für den Hotelstandort anzeigen', + 'Display Hotel Name' => 'Hotelname anzeigen', + 'Display Properties link in Header' => 'Link „Unterkünfte“ in der Kopfzeile anzeigen', + 'Display Properties link in header in the front office' => 'Link „Unterkünfte“ in der Kopfzeile der Webseite anzeigen', + 'Display Properties page Google map' => 'Google-Karte auf der Unterkünfte-Seite anzeigen', + 'Displayed in emails sent to customers and on Contact Us page.' => 'Wird in E-Mails an Kunden und auf der Kontaktseite angezeigt.', + 'Displayed name for this property type.' => 'Angezeigter Name für diese Unterkunftsart.', + 'Displayed name when referring to more than one property of this type.' => 'Angezeigter Name, wenn mehrere Unterkünfte dieser Art gemeint sind.', + 'Displays the total number of nights (occupied, available, and unavailable) for the selected date range.' => 'Zeigt die Gesamtzahl der Nächte (belegt, verfügbar und nicht verfügbar) im gewählten Zeitraum.', + 'Dots' => 'Punkte', + 'Due Amount' => 'Offener Betrag', + 'Due to the dynamic nature of room availability, a single room can fall under multiple categories in the stats panel. For example, if a room is booked from 1st to 3th and then marked as unavailable for maintenance on 4th to 5th, it would be counted in both the "Booked Rooms" and "Unavailable Rooms" categories for those respective dates if search is done from 1st to 6th. This allows admin to understand the room\'s status across different periods accurately.' => 'Da sich die Verfügbarkeit von Zimmern ändern kann, kann ein Zimmer in der Statistik in mehreren Kategorien erscheinen. Beispiel: Ein Zimmer ist vom 1. bis 3. gebucht und vom 4. bis 5. wegen Wartung nicht verfügbar. Bei einer Suche vom 1. bis 6. wird es für die jeweiligen Tage sowohl bei „Gebuchte Zimmer“ als auch bei „Nicht verfügbare Zimmer“ gezählt. So sehen Sie den Status eines Zimmers in verschiedenen Zeiträumen genau.', + 'Duplicate values selected for advanced price rule priorities.' => 'Für die Prioritäten der Preisregeln wurden doppelte Werte ausgewählt.', + 'Duration (Days)' => 'Dauer (Tage)', + 'Edit Advanced Price Rule' => 'Preisregel bearbeiten', + 'Edit Amenity' => 'Ausstattung bearbeiten', + 'Edit Amenity Category' => 'Ausstattungskategorie bearbeiten', + 'Edit Cron Task: ' => 'Cron-Aufgabe bearbeiten: ', + 'Edit Image' => 'Bild bearbeiten', + 'Edit Navigation Link' => 'Navigationslink bearbeiten', + 'Edit Property' => 'Hotel bearbeiten', + 'Edit Refund Rule' => 'Erstattungsregel bearbeiten', + 'Editing' => 'Bearbeitung', + 'Eg. icon-user' => 'z. B. icon-user', + 'Either display Hotel location field on hotel search panel or hide it.' => 'Das Feld „Hotelstandort“ im Suchfeld für Hotels anzeigen oder ausblenden.', + 'Email' => 'E-Mail', + 'Email :' => 'E-Mail :', + 'Email is required field.' => 'E-Mail ist ein Pflichtfeld.', + 'Enable Advanced Price Rule' => 'Preisregel aktivieren', + 'Enable Hotel Location' => 'Hotelstandort aktivieren', + 'Enable Image' => 'Bild aktivieren', + 'Enable Order Refund' => 'Bestellerstattung aktivieren', + 'Enable QloApps webservice from Webservice tab.' => 'Aktivieren Sie den QloApps-Webservice im Reiter „Webservice“.', + 'Enable if you want each review to be approved by an employee.' => 'Aktivieren, wenn jede Bewertung von einem Mitarbeiter freigegeben werden soll.', + 'Enable if you want the next booking search field to be focused automatically after setting value for a field.' => 'Aktivieren, wenn nach der Eingabe in einem Feld automatisch das nächste Feld der Buchungssuche ausgewählt werden soll.', + 'Enable if you want to send email to customer when a management reply is posted to his review.' => 'Aktivieren, wenn der Kunde eine E-Mail erhalten soll, sobald die Leitung auf seine Bewertung antwortet.', + 'Enable if you want to send email to customer when his review is approved.' => 'Aktivieren, wenn der Kunde eine E-Mail erhalten soll, sobald seine Bewertung freigegeben wird.', + 'Enable on Google Hotel' => 'Bei Google Hotel aktivieren', + 'Enable order refunds to allow hotel-wise refunds.' => 'Bestellerstattungen aktivieren, um Erstattungen je Hotel zu ermöglichen.', + 'Enable refund' => 'Erstattung aktivieren', + 'Enable selected' => 'Ausgewählte aktivieren', + 'Enable the module' => 'Modul aktivieren', + 'Enable this option to add restriction to specific week days (for example, weekends) of the selected date range.' => 'Aktivieren, um die Einschränkung auf bestimmte Wochentage (z. B. Wochenenden) des gewählten Zeitraums zu begrenzen.', + 'Enable this option to create advance price rules for multiple room types.' => 'Aktivieren, um Preisregeln für mehrere Zimmertypen zu erstellen.', + 'Enable to display Google Maps for hotel locations. If disabled, Google Maps will not be shown.' => 'Aktivieren, um Google Maps für Hotelstandorte anzuzeigen. Wenn deaktiviert, wird Google Maps nicht angezeigt.', + 'Enable to display hotels list on the contact us page.' => 'Aktivieren, um die Hotelliste auf der Kontaktseite anzuzeigen.', + 'Enable to display map with hotels locations on the contact us page.' => 'Aktivieren, um eine Karte mit den Hotelstandorten auf der Kontaktseite anzuzeigen.', + 'Enable to display map with hotels locations on the properties page.' => 'Aktivieren, um eine Karte mit den Hotelstandorten auf der Unterkünfte-Seite anzuzeigen.', + 'Enable to open the link in a new window.' => 'Aktivieren, um den Link in einem neuen Fenster zu öffnen.', + 'Enable to show this link.' => 'Aktivieren, um diesen Link anzuzeigen.', + 'Enable, If you want to add a link from a cms page. Disable, if you want to add anavigation link or a page link.' => 'Aktivieren, wenn Sie einen Link zu einer CMS-Seite hinzufügen möchten. Deaktivieren, wenn Sie einen Navigationslink oder Seitenlink hinzufügen möchten.', + 'Enable, If you want to add a manual navigation redirect Url for navigation link. Disable, if you want to select a front end page.' => 'Aktivieren, wenn Sie für den Navigationslink eine eigene Weiterleitungs-URL eingeben möchten. Deaktivieren, wenn Sie eine Seite der Webseite auswählen möchten.', + 'Enable, If you want to show this link to the footer block.' => 'Aktivieren, wenn dieser Link im Fußbereich angezeigt werden soll.', + 'Enable, If you want to show this link to the navigation menu.' => 'Aktivieren, wenn dieser Link im Navigationsmenü angezeigt werden soll.', + 'Enable, if you want to display navigation block at footer.' => 'Aktivieren, wenn der Navigationsbereich im Fußbereich angezeigt werden soll.', + 'Enable, if you want to enable order refund feature.' => 'Aktivieren, wenn die Funktion Bestellerstattung genutzt werden soll.', + 'Enable, if you want to enable refund for this hotel.' => 'Aktivieren, wenn Erstattungen für dieses Hotel möglich sein sollen.', + 'End Date' => 'Enddatum', + 'Enter Minimum amount to pay in percentage for booking aroom.' => 'Geben Sie den Mindestbetrag in Prozent ein, der für die Buchung eines Zimmers zu zahlen ist.', + 'Enter a direct URL to an MP4, WebM, or OGG video file (server-hosted only). Streaming links (e.g., YouTube, Vimeo) are not supported.' => 'Geben Sie eine direkte URL zu einer MP4-, WebM- oder OGG-Videodatei ein (nur auf dem eigenen Server). Streaming-Links (z. B. YouTube, Vimeo) werden nicht unterstützt.', + 'Enter a hint for this link.' => 'Geben Sie einen Hinweis für diesen Link ein.', + 'Enter a memorable name for this link.' => 'Geben Sie einen einprägsamen Namen für diesen Link ein.', + 'Enter a valid deduction amount for advance payment.' => 'Geben Sie einen gültigen Abzugsbetrag für die Anzahlung ein.', + 'Enter a valid deduction amount for full payment.' => 'Geben Sie einen gültigen Abzugsbetrag für die Vollzahlung ein.', + 'Enter a valid deduction percentage for advance payment.' => 'Geben Sie einen gültigen Abzugsprozentsatz für die Anzahlung ein.', + 'Enter a valid deduction percentage for full payment.' => 'Geben Sie einen gültigen Abzugsprozentsatz für die Vollzahlung ein.', + 'Enter a valid percentage(0 < % and 100 > %) for advance payment.' => 'Geben Sie einen gültigen Prozentsatz (größer als 0 % und kleiner als 100 %) für die Anzahlung ein.', + 'Enter a valid percentage(0 < % and 100 >= %) for full payment.' => 'Geben Sie einen gültigen Prozentsatz (größer als 0 % und höchstens 100 %) für die Vollzahlung ein.', + 'Enter advanced price rule name' => 'Name der Preisregel eingeben', + 'Enter deduction value (percentage or fixed amount) from the total amount, which will be deducted as cancellation charges for advance payment.' => 'Geben Sie den Abzugswert (Prozentsatz oder Festbetrag) vom Gesamtbetrag ein, der bei einer Anzahlung als Stornogebühr abgezogen wird.', + 'Enter deduction value (percentage or fixed amount) from the total amount, which will be deducted as cancellation charges for full payment.' => 'Geben Sie den Abzugswert (Prozentsatz oder Festbetrag) vom Gesamtbetrag ein, der bei einer Vollzahlung als Stornogebühr abgezogen wird.', + 'Enter deduction value for advance payment.' => 'Geben Sie den Abzugswert für die Anzahlung ein.', + 'Enter deduction value for full payment.' => 'Geben Sie den Abzugswert für die Vollzahlung ein.', + 'Enter explore link name' => 'Namen des Entdecken-Links eingeben', + 'Enter number of days before check-in date for this rule to be applicable.' => 'Geben Sie die Anzahl der Tage vor dem Check-in ein, ab der diese Regel gilt.', + 'Enter room type name' => 'Namen des Zimmertyps eingeben', + 'Enter room type name and select the room for which you are going to create this advanced price rule.' => 'Geben Sie den Namen des Zimmertyps ein und wählen Sie das Zimmer aus, für das Sie diese Preisregel erstellen.', + 'Enter the Transaction Id of the payment through which you have refunded to the customer.' => 'Geben Sie die Transaktions-ID der Zahlung ein, mit der Sie den Kunden erstattet haben.', + 'Enter the age of the guest, which that guest will be considered as child.' => 'Geben Sie das Alter ein, bis zu dem ein Gast als Kind gilt.', + 'Enter the maximum age (in years) below which a guest is considered an infant.' => 'Geben Sie das Höchstalter (in Jahren) ein, unter dem ein Gast als Kleinkind gilt.', + 'Enter the mode of payment through which you have refunded to the customer.' => 'Geben Sie die Zahlungsart ein, mit der Sie den Kunden erstattet haben.', + 'Enter the name for the link. This name will appear for created link.' => 'Geben Sie den Namen für den Link ein. Dieser Name wird für den erstellten Link angezeigt.', + 'Enter the name of the hotel image category.' => 'Geben Sie den Namen der Hotelbild-Kategorie ein.', + 'Enter the number of properties after which user can search property by name.' => 'Geben Sie die Anzahl der Hotels ein, ab der Gäste nach dem Hotelnamen suchen können.', + 'Enter valid number of days.' => 'Geben Sie eine gültige Anzahl von Tagen ein.', + 'Enter your credentials into the fields below.' => 'Geben Sie Ihre Zugangsdaten in die folgenden Felder ein.', + 'Entering a new URL will replace the current video.' => 'Durch Eingabe einer neuen URL wird das aktuelle Video ersetzt.', + 'Error' => 'Fehler', + 'Error Message' => 'Fehlermeldung', + 'Error deleting amenity.' => 'Fehler beim Löschen der Ausstattung.', + 'Error deleting category.' => 'Fehler beim Löschen der Kategorie.', + 'Error saving amenity.' => 'Fehler beim Speichern der Ausstattung.', + 'Error saving category.' => 'Fehler beim Speichern der Kategorie.', + 'Error uploading amenity image.' => 'Fehler beim Hochladen des Ausstattungsbilds.', + 'Error while changing cover image' => 'Fehler beim Ändern des Titelbilds', + 'Every %1$d hours between %2$s and %3$s' => 'Alle %1$d Stunden zwischen %2$s und %3$s', + 'Every %1$s %2$s at %3$s' => 'Jeden %1$s %2$s um %3$s', + 'Every %1$s at %2$s' => 'Jeden %1$s um %2$s', + 'Every %d hours' => 'Alle %d Stunden', + 'Every %d minutes' => 'Alle %d Minuten', + 'Every day at %s' => 'Jeden Tag um %s', + 'Every day every %1$d months at %2$s' => 'Jeden Tag, alle %1$d Monate um %2$s', + 'Every day every month at %s' => 'Jeden Tag, jeden Monat um %s', + 'Every day from the %1$s to the %2$s of each month at %3$s' => 'Jeden Tag vom %1$s. bis zum %2$s. eines jeden Monats um %3$s', + 'Every hour' => 'Jede Stunde', + 'Every hour between %1$s and %2$s' => 'Jede Stunde zwischen %1$s und %2$s', + 'Every hour, at minute %s' => 'Jede Stunde, zu Minute %s', + 'Every minute' => 'Jede Minute', + 'Every minute on %s' => 'Jede Minute am %s', + 'Every minute on weekdays' => 'Jede Minute an Werktagen', + 'Every minute on weekends' => 'Jede Minute an Wochenenden', + 'Every weekday at %s' => 'Jeden Werktag um %s', + 'Every weekend at %s' => 'Jedes Wochenende um %s', + 'Execution Time' => 'Ausführungszeit', + 'Explore Channel Manager' => 'Channel Manager entdecken', + 'External Video URL' => 'Externe Video-URL', + 'External video URL' => 'Externe Video-URL', + 'Extra Service Revenue' => 'Umsatz Zusatzleistungen', + 'Extra Services Revenue' => 'Umsatz Zusatzleistungen', + 'Fade' => 'Überblenden', + 'Failed to reset cron task.' => 'Die Cron-Aufgabe konnte nicht zurückgesetzt werden.', + 'Failed to save image file.' => 'Die Bilddatei konnte nicht gespeichert werden.', + 'Failed to save image record.' => 'Der Bilddatensatz konnte nicht gespeichert werden.', + 'Failed to save video file.' => 'Die Videodatei konnte nicht gespeichert werden.', + 'Failed to update image.' => 'Das Bild konnte nicht aktualisiert werden.', + 'February' => 'Februar', + 'Field Maximum checkout offset cannot be be less than or equal to Minimum booking offset.' => 'Das Feld „Maximaler Check-out-Offset“ darf nicht kleiner oder gleich dem „Minimalen Buchungs-Offset“ sein.', + 'Field Maximum checkout offset cannot be be less than or equal to global Minimum booking offset.' => 'Das Feld „Maximaler Check-out-Offset“ darf nicht kleiner oder gleich dem globalen „Minimalen Buchungs-Offset“ sein.', + 'Field Minimum booking offset cannot be be greater than or equal to Global Maximum checkout offset.' => 'Das Feld „Minimaler Buchungs-Offset“ darf nicht größer oder gleich dem globalen „Maximalen Check-out-Offset“ sein.', + 'Field VAT number cannot exceed 64 characters.' => 'Das Feld „USt-IdNr.“ darf höchstens 64 Zeichen lang sein.', + 'Field VAT number is invalid.' => 'Das Feld „USt-IdNr.“ ist ungültig.', + 'Field fax in invalid.' => 'Das Feld „Fax“ ist ungültig.', + 'File exceeds maximum size.' => 'Die Datei überschreitet die maximale Größe.', + 'File exceeds the maximum allowed upload size.' => 'Die Datei überschreitet die maximal erlaubte Upload-Größe.', + 'Fill in the missing fields above to enable Google Hotel.' => 'Füllen Sie die fehlenden Felder oben aus, um Google Hotel zu aktivieren.', + 'Fix' => 'Festbetrag', + 'Fixed Price' => 'Festpreis', + 'Flight / Train Number' => 'Flug-/Zugnummer', + 'Floor' => 'Etage', + 'Focus next field automatically' => 'Nächstes Feld automatisch auswählen', + 'For Office Use Only' => 'Nur für den internen Gebrauch', + 'For channel manager information in detail' => 'Ausführliche Informationen zum Channel Manager', + 'For seamless syncing of availability from the PMS to the Channel Manager automatically, you need to set the following cron job to run every minute' => 'Damit die Verfügbarkeit automatisch und lückenlos vom PMS zum Channel Manager übertragen wird, richten Sie bitte den folgenden Cron-Job ein, der jede Minute ausgeführt wird', + 'Formats: .jpg, .jpeg, .png, .webp, .gif' => 'Formate: .jpg, .jpeg, .png, .webp, .gif', + 'Formats: .mp4, .webm, .ogg' => 'Formate: .mp4, .webm, .ogg', + 'Friendly URL :' => 'Sprechende URL :', + 'Friendly URL is required at least in ' => 'Die sprechende URL ist mindestens erforderlich in ', + 'From' => 'Von', + 'From date is required' => 'Das Von-Datum ist erforderlich', + 'Full Name (As per ID)' => 'Vollständiger Name (laut Ausweis)', + 'Full payment charges' => 'Gebühren bei Vollzahlung', + 'Generate sitemap' => 'Sitemap erstellen', + 'Generate your' => 'Erstellen Sie Ihre', + 'Getting more property impressions by travellers on the world’s leading Online Travel Agencies as well as on the QloApps Hotel booking website will boost your online brand visibility and returns you more reservations.' => 'Wenn Reisende Ihr Hotel häufiger bei den weltweit führenden Online-Reisebüros und auf der QloApps-Hotelbuchungsseite sehen, steigert das Ihre Sichtbarkeit im Internet und bringt Ihnen mehr Buchungen.', + 'Global Booking Amount Include Tax' => 'Globaler Buchungsbetrag inklusive Steuer', + 'Global Maximum checkout offset:' => 'Globaler maximaler Check-out-Offset:', + 'Global Minimum Booking Amount' => 'Globaler Mindestbuchungsbetrag', + 'Global Settings' => 'Globale Einstellungen', + 'Global minimum booking offset :' => 'Globaler minimaler Buchungs-Offset :', + 'Go to Google Hotel Connector configuration' => 'Zur Konfiguration des Google Hotel Connectors', + 'Google Hotel' => 'Google Hotel', + 'Google Hotel Connector' => 'Google Hotel Connector', + 'Google Hotel Setup' => 'Google-Hotel-Einrichtung', + 'Google Hotel is not configured yet. Please set up the webservice key before enabling hotels.' => 'Google Hotel ist noch nicht eingerichtet. Bitte richten Sie zuerst den Webservice-Schlüssel ein, bevor Sie Hotels aktivieren.', + 'Google Map ID' => 'Google-Map-ID', + 'Google Maps API Key' => 'Google-Maps-API-Schlüssel', + 'Google Maps API Key is required to display Google Maps.' => 'Zur Anzeige von Google Maps ist ein Google-Maps-API-Schlüssel erforderlich.', + 'Google Maps Settings' => 'Google-Maps-Einstellungen', + 'Google Status' => 'Google-Status', + 'Google reviews newly activated properties on a weekly basis. Once you enable the Google Channel for a hotel, it may take up to 1 week for the property to be processed and become available on Google. Once approved, the status will be automatically updated here.' => 'Google prüft neu aktivierte Hotels wöchentlich. Nachdem Sie den Google-Kanal für ein Hotel aktiviert haben, kann es bis zu 1 Woche dauern, bis das Hotel bearbeitet wird und bei Google verfügbar ist. Nach der Freigabe wird der Status hier automatisch aktualisiert.', + 'Grand Total' => 'Gesamtsumme', + 'Gross Operating Profit Per Available Room' => 'Bruttobetriebsgewinn pro verfügbarem Zimmer', + 'Gross Operating Profit Per Available Room (GOPPAR) measures how much gross operating profit comes from each room including service products.' => 'Der Bruttobetriebsgewinn pro verfügbarem Zimmer (GOPPAR) zeigt, wie viel Bruttobetriebsgewinn auf jedes Zimmer entfällt, einschließlich Zusatzleistungen.', + 'Gross Revenue' => 'Bruttoumsatz', + 'Group Access' => 'Gruppenzugriff', + 'Guest Contact' => 'Gastkontakt', + 'Guest Email' => 'E-Mail des Gastes', + 'Guest ID' => 'Gast-ID', + 'Guest Information' => 'Gastinformationen', + 'Guest Name' => 'Gastname', + 'Guest Phone' => 'Telefon des Gastes', + 'Guest Signature' => 'Unterschrift des Gastes', + 'Guest Type' => 'Gasttyp', + 'Header Image Configuration' => 'Kopfbild-Konfiguration', + 'Header Images' => 'Kopfbilder', + 'Header Media Settings' => 'Kopfmedien-Einstellungen', + 'Header Media Type' => 'Art des Kopfmediums', + 'Hint' => 'Hinweis', + 'Horizontal alignment of the title and description on the header.' => 'Horizontale Ausrichtung von Titel und Beschreibung im Kopfbereich.', + 'Hotel' => 'Hotel', + 'Hotel Booking and Reservation System' => 'Hotelbuchungs- und Reservierungssystem', + 'Hotel Branch Category' => 'Hotelfilial-Kategorie', + 'Hotel Image Category' => 'Hotelbild-Kategorie', + 'Hotel Name' => 'Hotelname', + 'Hotel Not found.' => 'Hotel nicht gefunden.', + 'Hotel Policies' => 'Hotelrichtlinien', + 'Hotel Reservation System > Manage Hotel' => 'Hotelreservierungssystem > Hotel verwalten', + 'Hotel info not found. Please try reloading the page' => 'Hotelinformationen nicht gefunden. Bitte laden Sie die Seite neu.', + 'Hotel name is required at least in ' => 'Der Hotelname ist mindestens erforderlich in ', + 'Hoteliers need not to worry about problems like over-bookings, inconsistent inventory management, and missed opportunities.' => 'Hoteliers müssen sich keine Sorgen über Überbuchungen, uneinheitliche Bestandsverwaltung und verpasste Chancen machen.', + 'Hotels with an issue:' => 'Hotels mit einem Problem:', + 'Housekeeping Status' => 'Zimmerstatus (Housekeeping)', + 'How to connect with channel manager?' => 'Wie verbinde ich den Channel Manager?', + 'How to get Channel Manager API Credentials' => 'So erhalten Sie die API-Zugangsdaten des Channel Managers', + 'ID Number' => 'Ausweisnummer', + 'ID Type' => 'Ausweisart', + 'ID Verified' => 'Ausweis geprüft', + 'ID of the category.' => 'ID der Kategorie.', + 'ID of the review.' => 'ID der Bewertung.', + 'ID of the settings link.' => 'ID des Einstellungslinks.', + 'Icon class must start with "icon-" (e.g. icon-wifi).' => 'Die Icon-Klasse muss mit „icon-“ beginnen (z. B. icon-wifi).', + 'Icon name is invalid.' => 'Der Icon-Name ist ungültig.', + 'Icon of the settings link.' => 'Icon des Einstellungslinks.', + 'Id order' => 'Bestell-ID', + 'Identification Document' => 'Ausweisdokument', + 'Identity Proof' => 'Identitätsnachweis', + 'If Hotel\'s country is not present in country list then import that country from' => 'Wenn das Land des Hotels nicht in der Länderliste enthalten ist, importieren Sie es über', + 'If No, Advance Payment functionality will be disabled' => 'Bei „Nein“ ist die Anzahlungsfunktion deaktiviert', + 'If not selected, image will be uncategorized.' => 'Wenn nichts ausgewählt ist, wird das Bild keiner Kategorie zugeordnet.', + 'If not selected, selected images will be uncategorized.' => 'Wenn nichts ausgewählt ist, werden die ausgewählten Bilder keiner Kategorie zugeordnet.', + 'If set to Yes, a room with this status cannot be edited, only deleted. If No, the room can still be edited. This setting is fixed for this status and cannot be changed.' => 'Bei „Ja“ kann ein Zimmer mit diesem Status nicht bearbeitet, sondern nur gelöscht werden. Bei „Nein“ kann das Zimmer weiterhin bearbeitet werden. Diese Einstellung ist für diesen Status fest vorgegeben und kann nicht geändert werden.', + 'If set to Yes, a room with this status cannot be edited, only deleted. If No, the room status can still be changed, e.g. to undo an accidental no-show or for a late check-in.' => 'Bei „Ja“ kann ein Zimmer mit diesem Status nicht bearbeitet, sondern nur gelöscht werden. Bei „Nein“ kann der Zimmerstatus weiterhin geändert werden, z. B. um ein versehentliches „Nicht erschienen“ rückgängig zu machen oder bei einem späten Check-in.', + 'If yes, only active hotels will be displayed on map.' => 'Bei „Ja“ werden nur aktive Hotels auf der Karte angezeigt.', + 'If you are still not connected with channel manager' => 'Wenn Sie noch nicht mit dem Channel Manager verbunden sind', + 'If you don\'t select "Free shipping," the normal shipping cost will be applied.' => 'Wenn Sie „Kostenloser Versand“ nicht auswählen, werden die normalen Versandkosten berechnet.', + 'Image Id' => 'Bild-ID', + 'Image Successfully Uploaded' => 'Bild erfolgreich hochgeladen', + 'Image deleted successfully' => 'Bild erfolgreich gelöscht', + 'Image deleted successfully.' => 'Bild erfolgreich gelöscht.', + 'Image not found.' => 'Bild nicht gefunden.', + 'Image updated successfully.' => 'Bild erfolgreich aktualisiert.', + 'Image uploaded successfully.' => 'Bild erfolgreich hochgeladen.', + 'Impact Way' => 'Art der Auswirkung', + 'In-Cart Rooms' => 'Zimmer im Warenkorb', + 'In-house Guests' => 'Gäste im Haus', + 'Increase Price' => 'Preis erhöhen', + 'Infant age is required' => 'Das Alter für Kleinkinder ist erforderlich', + 'Infant age must be at least 1 and less than the child max age.' => 'Das Kleinkindalter muss mindestens 1 und kleiner als das Höchstalter für Kinder sein.', + 'Insights' => 'Einblicke', + 'Install the module' => 'Modul installieren', + 'Invalid Client ID.' => 'Ungültige Client-ID.', + 'Invalid Client Secret.' => 'Ungültiges Client-Secret.', + 'Invalid Cron Task ID' => 'Ungültige Cron-Aufgaben-ID', + 'Invalid Friendly URL in ' => 'Ungültige sprechende URL in ', + 'Invalid Hotel name in ' => 'Ungültiger Hotelname in ', + 'Invalid Meta description in ' => 'Ungültige Meta-Beschreibung in ', + 'Invalid Meta keywords in ' => 'Ungültige Meta-Schlüsselwörter in ', + 'Invalid Meta title in ' => 'Ungültiger Meta-Titel in ', + 'Invalid adults' => 'Ungültige Anzahl Erwachsene', + 'Invalid advanced price rule ID %d.' => 'Ungültige Preisregel-ID %d.', + 'Invalid category name in ' => 'Ungültiger Kategoriename in ', + 'Invalid children' => 'Ungültige Anzahl Kinder', + 'Invalid children ages' => 'Ungültiges Alter der Kinder', + 'Invalid cms page.' => 'Ungültige CMS-Seite.', + 'Invalid cron expression' => 'Ungültiger Cron-Ausdruck', + 'Invalid cron expression.' => 'Ungültiger Cron-Ausdruck.', + 'Invalid cron expression. Must have exactly 5 parts: minute hour day month weekday. Example: * * * * *' => 'Ungültiger Cron-Ausdruck. Er muss genau 5 Teile haben: Minute Stunde Tag Monat Wochentag. Beispiel: * * * * *', + 'Invalid custom redirect url.' => 'Ungültige benutzerdefinierte Weiterleitungs-URL.', + 'Invalid description color. Use a 6-digit hex value (e.g. #ffffff).' => 'Ungültige Beschreibungsfarbe. Verwenden Sie einen 6-stelligen Hex-Wert (z. B. #ffffff).', + 'Invalid description font weight.' => 'Ungültige Schriftstärke der Beschreibung.', + 'Invalid description. Characters < > = { } are not allowed.' => 'Ungültige Beschreibung. Die Zeichen < > = { } sind nicht erlaubt.', + 'Invalid infant age' => 'Ungültiges Kleinkindalter', + 'Invalid item ID.' => 'Ungültige Element-ID.', + 'Invalid media type selected.' => 'Ungültige Medienart ausgewählt.', + 'Invalid minimum partial payment percentage.' => 'Ungültiger Mindestprozentsatz für Teilzahlungen.', + 'Invalid navigation link name for the language ' => 'Ungültiger Navigationslink-Name für die Sprache ', + 'Invalid occupancy' => 'Ungültige Belegung', + 'Invalid page selected.' => 'Ungültige Seite ausgewählt.', + 'Invalid payment mode entered.' => 'Ungültige Zahlungsart eingegeben.', + 'Invalid payment type.' => 'Ungültige Zahlungsart.', + 'Invalid refund amount(s) entered.' => 'Ungültige Erstattungsbeträge eingegeben.', + 'Invalid refund amount(s) for entering refund transaction details.' => 'Ungültige Erstattungsbeträge für die Eingabe der Erstattungstransaktion.', + 'Invalid refund amount(s) for generating credit slip.' => 'Ungültige Erstattungsbeträge für die Erstellung der Gutschrift.', + 'Invalid refund amount(s) for generating voucher.' => 'Ungültige Erstattungsbeträge für die Erstellung des Gutscheins.', + 'Invalid refund information found.' => 'Ungültige Erstattungsinformationen gefunden.', + 'Invalid refund state.' => 'Ungültiger Erstattungsstatus.', + 'Invalid status selected.' => 'Ungültiger Status ausgewählt.', + 'Invalid title or description. Characters < > = { } are not allowed.' => 'Ungültiger Titel oder ungültige Beschreibung. Die Zeichen < > = { } sind nicht erlaubt.', + 'Invalid title. Characters < > = { } are not allowed.' => 'Ungültiger Titel. Die Zeichen < > = { } sind nicht erlaubt.', + 'Invalid transaction id entered.' => 'Ungültige Transaktions-ID eingegeben.', + 'Invalid value for "Consider guest as child below age".' => 'Ungültiger Wert für „Gast gilt als Kind unter Alter“.', + 'Invalid value for terminal (final) status.' => 'Ungültiger Wert für den Endstatus.', + 'Invalid value of impact value.' => 'Ungültiger Wert für den Auswirkungswert.', + 'Invalid video file type detected.' => 'Ungültiger Videodateityp erkannt.', + 'Invalid voucher expiry date.' => 'Ungültiges Ablaufdatum des Gutscheins.', + 'January' => 'Januar', + 'July' => 'Juli', + 'June' => 'Juni', + 'LOS for date range in row no.' => 'Aufenthaltsdauer (LOS) für den Zeitraum in Zeile Nr.', + 'Last %d bookings' => 'Letzte %d Buchungen', + 'Last Payment Date' => 'Datum der letzten Zahlung', + 'Last Run' => 'Letzte Ausführung', + 'Last Status' => 'Letzter Status', + 'Last Stay Date' => 'Datum des letzten Aufenthalts', + 'Last updated' => 'Zuletzt aktualisiert', + 'Latitude :' => 'Breitengrad :', + 'Latitude is invalid.' => 'Der Breitengrad ist ungültig.', + 'Leave \'Select font weight\' to keep the current weight.' => 'Lassen Sie „Schriftstärke auswählen“ stehen, um die aktuelle Stärke beizubehalten.', + 'Leave \'Select status\' to keep the current status.' => 'Lassen Sie „Status auswählen“ stehen, um den aktuellen Status beizubehalten.', + 'Leave as 0 to keep the current size.' => 'Bei 0 bleibt die aktuelle Größe erhalten.', + 'Leave empty to clear the description for all selected images.' => 'Leer lassen, um die Beschreibung aller ausgewählten Bilder zu löschen.', + 'Leave empty to clear the title for all selected images.' => 'Leer lassen, um den Titel aller ausgewählten Bilder zu löschen.', + 'Leave empty to keep each image\'s current color unchanged.' => 'Leer lassen, um die aktuelle Farbe jedes Bildes beizubehalten.', + 'Leave this field blank if there\'s no change.' => 'Lassen Sie dieses Feld leer, wenn es keine Änderung gibt.', + 'Length of Stay (%)' => 'Aufenthaltsdauer (%)', + 'Length of stay restriction not satisfied' => 'Beschränkung der Aufenthaltsdauer nicht erfüllt', + 'Lifetime Revenue' => 'Gesamtumsatz bisher', + 'Link Information' => 'Link-Informationen', + 'Link of the page where admin is redirected.' => 'Link der Seite, auf die der Administrator weitergeleitet wird.', + 'List of booking requested for refund by the customer.' => 'Liste der Buchungen, für die der Kunde eine Erstattung beantragt hat.', + 'List of product requested for refund by the customer.' => 'Liste der Produkte, für die der Kunde eine Erstattung beantragt hat.', + 'Loading Duitku payment methods...' => 'Duitku-Zahlungsarten werden geladen...', + 'Localization' => 'Lokalisierung', + 'Log Retention (days)' => 'Aufbewahrung der Protokolle (Tage)', + 'Log in to your' => 'Melden Sie sich an bei Ihrem', + 'Log retention must be an integer value.' => 'Die Aufbewahrungsdauer der Protokolle muss eine ganze Zahl sein.', + 'Log retention must be between 1 and 365 days.' => 'Die Aufbewahrungsdauer der Protokolle muss zwischen 1 und 365 Tagen liegen.', + 'Logo Image' => 'Logo-Bild', + 'Logs for: ' => 'Protokolle für: ', + 'Longitude :' => 'Längengrad :', + 'Longitude is invalid.' => 'Der Längengrad ist ungültig.', + 'Manage Amenities' => 'Ausstattung verwalten', + 'Manage Order Refund Rules' => 'Erstattungsregeln für Bestellungen verwalten', + 'Manage links' => 'Links verwalten', + 'Management reply can not be empty.' => 'Die Antwort der Hotelleitung darf nicht leer sein.', + 'Management reply email' => 'E-Mail für Antwort der Hotelleitung', + 'Management reply is invalid.' => 'Die Antwort der Hotelleitung ist ungültig.', + 'Manual Allotment' => 'Manuelles Kontingent', + 'Manual sitemap generation' => 'Manuelle Sitemap-Erstellung', + 'Map Id for Google Maps (optional).' => 'Karten-ID für Google Maps (optional).', + 'Map formatted address is invalid.' => 'Die formatierte Kartenadresse ist ungültig.', + 'Map location text is invalid.' => 'Der Text zum Kartenstandort ist ungültig.', + 'Map:' => 'Karte:', + 'March' => 'März', + 'Mark this message as \'viewed\'' => 'Diese Nachricht als \'gelesen\' markieren', + 'Max Featured room type features on Checkout page' => 'Max. hervorgehobene Zimmertyp-Merkmale auf der Kassenseite', + 'Max Featured room type features on room search page' => 'Max. hervorgehobene Zimmertyp-Merkmale auf der Zimmersuche', + 'Max display values for room type Featured features' => 'Max. angezeigte Werte für hervorgehobene Zimmertyp-Merkmale', + 'Max featured amenities in room search' => 'Max. hervorgehobene Ausstattung in der Zimmersuche', + 'Max:' => 'Max.:', + 'Maximum checkout offset :' => 'Maximaler Check-out-Versatz :', + 'Maximum checkout offset is a required field.' => 'Der maximale Check-out-Versatz ist ein Pflichtfeld.', + 'Maximum checkout offset is invalid.' => 'Der maximale Check-out-Versatz ist ungültig.', + 'Maximum featured amenities in room search is invalid. Enter 0 or a positive number.' => 'Die maximale Anzahl hervorgehobener Ausstattung in der Zimmersuche ist ungültig. Geben Sie 0 oder eine positive Zahl ein.', + 'Maximum featured features in checkout is invalid. Enter 0 or a positive number.' => 'Die maximale Anzahl hervorgehobener Merkmale an der Kasse ist ungültig. Geben Sie 0 oder eine positive Zahl ein.', + 'Maximum featured features in room search is invalid. Enter 0 or a positive number.' => 'Die maximale Anzahl hervorgehobener Merkmale in der Zimmersuche ist ungültig. Geben Sie 0 oder eine positive Zahl ein.', + 'Maximum guests' => 'Maximale Gästezahl', + 'Maximum images per review' => 'Maximale Bilder pro Bewertung', + 'Maximum length of stay is invalid.' => 'Die maximale Aufenthaltsdauer ist ungültig.', + 'Maximum length of stay is required.' => 'Die maximale Aufenthaltsdauer ist erforderlich.', + 'Maximum length of stay must be greater than minimum length of stay.' => 'Die maximale Aufenthaltsdauer muss größer als die minimale Aufenthaltsdauer sein.', + 'Maximum number of featured amenities to display for each room type on the front office room search page.' => 'Maximale Anzahl hervorgehobener Ausstattung, die für jeden Zimmertyp auf der Zimmersuche der Website angezeigt wird.', + 'Maximum number of featured features to display for each room type on the front office checkout page.' => 'Maximale Anzahl hervorgehobener Merkmale, die für jeden Zimmertyp auf der Kassenseite der Website angezeigt wird.', + 'Maximum number of featured features to display for each room type on the front office room search page.' => 'Maximale Anzahl hervorgehobener Merkmale, die für jeden Zimmertyp auf der Zimmersuche der Website angezeigt wird.', + 'Maximum number of room type feature values to display for each featured feature in room search results and orders. For example, if the featured feature Bed Type has the values Single, Double, and Queen, and this setting is set to 2, only Single, Double will be displayed.' => 'Maximale Anzahl der Zimmertyp-Merkmalswerte, die für jedes hervorgehobene Merkmal in den Suchergebnissen und Bestellungen angezeigt wird. Beispiel: Hat das hervorgehobene Merkmal Bettart die Werte Einzel, Doppel und Queen und ist diese Einstellung auf 2 gesetzt, werden nur Einzel, Doppel angezeigt.', + 'Maximum room type feature values per featured feature is invalid. Enter 0 or a positive number.' => 'Die maximale Anzahl an Zimmertyp-Merkmalswerten pro hervorgehobenem Merkmal ist ungültig. Geben Sie 0 oder eine positive Zahl ein.', + 'May' => 'Mai', + 'Meta description cannot exceed 128 characters in ' => 'Die Meta-Beschreibung darf höchstens 128 Zeichen lang sein in ', + 'Meta description:' => 'Meta-Beschreibung:', + 'Meta keywords cannot exceed 128 characters in ' => 'Die Meta-Schlüsselwörter dürfen höchstens 128 Zeichen lang sein in ', + 'Meta keywords:' => 'Meta-Schlüsselwörter:', + 'Meta title cannot exceed 128 characters in ' => 'Der Meta-Titel darf höchstens 128 Zeichen lang sein in ', + 'Meta title:' => 'Meta-Titel:', + 'Milliseconds between slides. Min: 500. Example: 5000 = 5 s.' => 'Millisekunden zwischen den Folien. Min.: 500. Beispiel: 5000 = 5 s.', + 'Minimum booking offset :' => 'Minimaler Buchungsversatz :', + 'Minimum booking offset is a required field.' => 'Der minimale Buchungsversatz ist ein Pflichtfeld.', + 'Minimum booking offset is invalid.' => 'Der minimale Buchungsversatz ist ungültig.', + 'Minimum length of stay is invalid.' => 'Die minimale Aufenthaltsdauer ist ungültig.', + 'Minimum length of stay is required.' => 'Die minimale Aufenthaltsdauer ist erforderlich.', + 'Minimum partial payment percentage should be more than 0.' => 'Der Mindestprozentsatz der Teilzahlung muss größer als 0 sein.', + 'Minimum partial payment percentage should not be more than 100.' => 'Der Mindestprozentsatz der Teilzahlung darf nicht größer als 100 sein.', + 'Module' => 'Modul', + 'Module Name' => 'Modulname', + 'Module does not define any cron tasks.' => 'Das Modul definiert keine Cron-Aufgaben.', + 'Module returned an invalid task definition (bad cron expression or missing callback).' => 'Das Modul hat eine ungültige Aufgabendefinition geliefert (fehlerhafter Cron-Ausdruck oder fehlender Callback).', + 'Most Viewed' => 'Meistgesehen', + 'Most viewed room types' => 'Meistgesehene Zimmertypen', + 'Name :' => 'Name :', + 'Name of the category.' => 'Name der Kategorie.', + 'Name of the customer who added this review.' => 'Name des Kunden, der diese Bewertung abgegeben hat.', + 'Name of the property for which this review has been added.' => 'Name des Hotels, für das diese Bewertung abgegeben wurde.', + 'Name of the settings link.' => 'Name des Einstellungslinks.', + 'Navigate to Account Settings.' => 'Zu den Kontoeinstellungen wechseln.', + 'Navigation Type' => 'Navigationstyp', + 'Navigation block' => 'Navigationsblock', + 'Navigation link name is required at least in ' => 'Der Name des Navigationslinks ist mindestens erforderlich in ', + 'Need to fix the below mentioned issues:' => 'Die folgenden Probleme müssen behoben werden:', + 'Net Profit' => 'Nettogewinn', + 'Net Profit is the amount of money earned after deducting all operating costs and expenses over a period of time. You can provide these costs by clicking on the configuration icon right above here.' => 'Der Nettogewinn ist der Betrag, der nach Abzug aller Betriebskosten und Ausgaben in einem Zeitraum übrig bleibt. Diese Kosten können Sie angeben, indem Sie oben auf das Konfigurationssymbol klicken.', + 'Net Revenue' => 'Nettoumsatz', + 'New' => 'Neu', + 'New Bookings' => 'Neue Buchungen', + 'New Customers' => 'Neue Kunden', + 'New Guests' => 'Neue Gäste', + 'New Subscriptions' => 'Neue Anmeldungen', + 'New Window' => 'Neues Fenster', + 'Next Destination' => 'Nächstes Reiseziel', + 'Next Run' => 'Nächste Ausführung', + 'Nights Sold' => 'Verkaufte Nächte', + 'No' => 'Nein', + 'No Groups Available' => 'Keine Gruppen verfügbar', + 'No Image Found' => 'Kein Bild gefunden', + 'No Properties Available' => 'Keine Hotels verfügbar', + 'No Show' => 'Nicht erschienen', + 'No active hotels available for booking.' => 'Keine aktiven Hotels für Buchungen verfügbar.', + 'No amenities created yet.' => 'Es wurde noch keine Ausstattung angelegt.', + 'No amenities found in this category.' => 'In dieser Kategorie wurde keine Ausstattung gefunden.', + 'No amenities have been created. Please add amenities to at least one category before assigning them.' => 'Es wurde keine Ausstattung angelegt. Bitte fügen Sie Ausstattung zu mindestens einer Kategorie hinzu, bevor Sie sie zuweisen.', + 'No amenity categories found. Start by adding a new category.' => 'Keine Ausstattungskategorien gefunden. Legen Sie zuerst eine neue Kategorie an.', + 'No arrivals found for the selected date range.' => 'Keine Anreisen im gewählten Zeitraum gefunden.', + 'No booking found in the cart.' => 'Keine Buchung im Warenkorb gefunden.', + 'No bookings found for the selected period.' => 'Keine Buchungen im gewählten Zeitraum gefunden.', + 'No cancellations found for the selected date range.' => 'Keine Stornierungen im gewählten Zeitraum gefunden.', + 'No data for the selected period.' => 'Keine Daten für den gewählten Zeitraum.', + 'No departures found for the selected date range.' => 'Keine Abreisen im gewählten Zeitraum gefunden.', + 'No file received.' => 'Keine Datei empfangen.', + 'No guests currently in-house.' => 'Derzeit keine Gäste im Haus.', + 'No guests found for the selected period.' => 'Keine Gäste im gewählten Zeitraum gefunden.', + 'No hotels found.' => 'Keine Hotels gefunden.', + 'No images selected.' => 'Keine Bilder ausgewählt.', + 'No match found for entered room type name.' => 'Kein Treffer für den eingegebenen Zimmertyp-Namen.', + 'No match found for this search. Please try with an existing name.' => 'Kein Treffer für diese Suche. Bitte versuchen Sie es mit einem vorhandenen Namen.', + 'No out of order rooms for the selected period.' => 'Keine gesperrten Zimmer im gewählten Zeitraum.', + 'No outstanding balances found for the selected date range.' => 'Keine offenen Beträge im gewählten Zeitraum gefunden.', + 'No pages found' => 'Keine Seiten gefunden', + 'No payment data found for the selected period.' => 'Keine Zahlungsdaten im gewählten Zeitraum gefunden.', + 'No payments found for the selected date range.' => 'Keine Zahlungen im gewählten Zeitraum gefunden.', + 'No properties available' => 'Keine Hotels verfügbar', + 'No property found to assign features.' => 'Kein Hotel zum Zuweisen von Merkmalen gefunden.', + 'No records available' => 'Keine Datensätze verfügbar', + 'No records found' => 'Keine Datensätze gefunden', + 'No refund rules are created yet.' => 'Es wurden noch keine Erstattungsregeln angelegt.', + 'No refunds found for the selected date range.' => 'Keine Erstattungen im gewählten Zeitraum gefunden.', + 'No reservations found for the selected date range and filters.' => 'Keine Reservierungen für den gewählten Zeitraum und die gewählten Filter gefunden.', + 'No results found for this search' => 'Keine Ergebnisse für diese Suche gefunden', + 'No revenue data found for the selected date range.' => 'Keine Umsatzdaten im gewählten Zeitraum gefunden.', + 'No room type available.' => 'Kein Zimmertyp verfügbar.', + 'No room types found for this hotel.' => 'Keine Zimmertypen für dieses Hotel gefunden.', + 'No rooms found.' => 'Keine Zimmer gefunden.', + 'No service products found.' => 'Keine Zusatzleistungen gefunden.', + 'No service transactions for the selected period.' => 'Keine Servicebuchungen im gewählten Zeitraum.', + 'No sitemap has been generated yet.' => 'Es wurde noch keine Sitemap erstellt.', + 'No star' => 'Kein Stern', + 'No tasks returned by module.' => 'Das Modul hat keine Aufgaben geliefert.', + 'No tax data found for the selected date range.' => 'Keine Steuerdaten im gewählten Zeitraum gefunden.', + 'No valid images were updated.' => 'Es wurden keine gültigen Bilder aktualisiert.', + 'No video is currently set.' => 'Derzeit ist kein Video festgelegt.', + 'Normal' => 'Normal', + 'Not Connected' => 'Nicht verbunden', + 'Note' => 'Notiz', + 'Note: If auto added service is enabled, then tax of the booking\'s room type will be applicable.' => 'Hinweis: Ist die automatisch hinzugefügte Zusatzleistung aktiviert, gilt die Steuer des Zimmertyps der Buchung.', + 'Note: Replace fa- with icon- in icon name. Example: fa-wifi becomes icon-wifi.' => 'Hinweis: Ersetzen Sie im Symbolnamen fa- durch icon-. Beispiel: fa-wifi wird zu icon-wifi.', + 'November' => 'November', + 'Number of Guests' => 'Anzahl der Gäste', + 'Number of Rooms is required' => 'Die Anzahl der Zimmer ist erforderlich', + 'Number of days to keep execution logs.' => 'Anzahl der Tage, für die Ausführungsprotokolle aufbewahrt werden.', + 'Number of reviews displayed at once' => 'Anzahl der gleichzeitig angezeigten Bewertungen', + 'Number of times this review has been reported.' => 'Anzahl der Meldungen zu dieser Bewertung.', + 'OOO Status' => 'Status „Außer Betrieb“', + 'Object not loaded. Please try again.' => 'Objekt nicht geladen. Bitte versuchen Sie es erneut.', + 'Occupancy' => 'Belegung', + 'Occupancy %' => 'Belegung %', + 'Occupancy Rate %' => 'Auslastung %', + 'Occupancy Settings' => 'Belegungseinstellungen', + 'Occupancy exceeds room capacity' => 'Die Belegung übersteigt die Zimmerkapazität', + 'Occupied' => 'Belegt', + 'October' => 'Oktober', + 'On the %1$s of each month at %2$s' => 'Am %1$s jedes Monats um %2$s', + 'On the %1$s of every month at %2$s' => 'Am %1$s jedes Monats um %2$s', + 'One or more image IDs are invalid.' => 'Eine oder mehrere Bild-IDs sind ungültig.', + 'Ongoing' => 'Laufend', + 'Online Visitors' => 'Besucher online', + 'Only .mp4, .webm, and .ogg video formats are allowed.' => 'Nur die Videoformate .mp4, .webm und .ogg sind erlaubt.', + 'Only images with the following extensions are allowed: jpg, jpeg, png' => 'Nur Bilder mit den folgenden Endungen sind erlaubt: jpg, jpeg, png', + 'Order Cancellation Request Information' => 'Informationen zum Stornierungsantrag der Bestellung', + 'Order Error' => 'Bestellfehler', + 'Order ID' => 'Bestell-ID', + 'Order Id' => 'Bestell-ID', + 'Order Refund Setting' => 'Einstellung zur Bestellerstattung', + 'Order Status' => 'Bestellstatus', + 'Order total' => 'Bestellsumme', + 'Orders' => 'Bestellungen', + 'Original Booking Amount' => 'Ursprünglicher Buchungsbetrag', + 'Others' => 'Sonstige', + 'Out of Order' => 'Außer Betrieb', + 'Out of Order / Maintenance' => 'Außer Betrieb / Wartung', + 'Outstanding Balance' => 'Offener Betrag', + 'Overall Rating' => 'Gesamtbewertung', + 'Overall rating of the review.' => 'Gesamtbewertung der Bewertung.', + 'PM' => 'PM', + 'Partially Available' => 'Teilweise verfügbar', + 'Partially Available Rooms' => 'Teilweise verfügbare Zimmer', + 'Passport No.' => 'Reisepass-Nr.', + 'Pay using Duitku' => 'Mit Duitku bezahlen', + 'Pay using Duitku payment options.' => 'Mit den Zahlungsoptionen von Duitku bezahlen.', + 'Payment & Deposit' => 'Zahlung & Anzahlung', + 'Payment Date' => 'Zahlungsdatum', + 'Payment ID' => 'Zahlungs-ID', + 'Payment Method' => 'Zahlungsart', + 'Payment Status' => 'Zahlungsstatus', + 'Payment Type' => 'Zahlungsart', + 'Payment mode name' => 'Name der Zahlungsart', + 'Payment mode:' => 'Zahlungsart:', + 'Pending' => 'Ausstehend', + 'Pending Requests' => 'Ausstehende Anträge', + 'Phone' => 'Telefon', + 'Phone / Mobile' => 'Telefon / Mobil', + 'Phone :' => 'Telefon :', + 'Phone field is invalid' => 'Das Telefonfeld ist ungültig', + 'Phone field is required' => 'Das Telefonfeld ist erforderlich', + 'Phone number is required field.' => 'Die Telefonnummer ist ein Pflichtfeld.', + 'Place of Issue' => 'Ausstellungsort', + 'Please Quote following transaction id during conversation.' => 'Bitte nennen Sie im Gespräch die folgende Transaktions-ID.', + 'Please activate the linked CMS page to enable this navigation link.' => 'Bitte aktivieren Sie die verknüpfte CMS-Seite, um diesen Navigationslink zu aktivieren.', + 'Please add an address to your account before proceeding with the order.' => 'Bitte fügen Sie Ihrem Konto eine Adresse hinzu, bevor Sie mit der Bestellung fortfahren.', + 'Please add at least one active image before switching the header to Image mode.' => 'Bitte fügen Sie mindestens ein aktives Bild hinzu, bevor Sie den Kopfbereich auf den Bildmodus umstellen.', + 'Please choose a cms page.' => 'Bitte wählen Sie eine CMS-Seite aus.', + 'Please enable linked' => 'Bitte aktivieren Sie die verknüpfte', + 'Please enter Channel Manager API Client ID.' => 'Bitte geben Sie die Client-ID der Channel-Manager-API ein.', + 'Please enter Channel Manager API Client Secret.' => 'Bitte geben Sie das Client-Secret der Channel-Manager-API ein.', + 'Please enter Check In time' => 'Bitte geben Sie die Check-in-Zeit ein', + 'Please enter Check Out time' => 'Bitte geben Sie die Check-out-Zeit ein', + 'Please enter Google API key.' => 'Bitte geben Sie den Google-API-Schlüssel ein.', + 'Please enter a location' => 'Bitte geben Sie einen Ort ein', + 'Please enter a valid email.' => 'Bitte geben Sie eine gültige E-Mail-Adresse ein.', + 'Please enter a valid impact value.' => 'Bitte geben Sie einen gültigen Auswirkungswert ein.', + 'Please enter a valid phone number.' => 'Bitte geben Sie eine gültige Telefonnummer ein.', + 'Please enter a valid video URL.' => 'Bitte geben Sie eine gültige Video-URL ein.', + 'Please enter a video URL.' => 'Bitte geben Sie eine Video-URL ein.', + 'Please enter disable dates.' => 'Bitte geben Sie die Sperrdaten ein.', + 'Please enter maximum images per review.' => 'Bitte geben Sie die maximale Anzahl Bilder pro Bewertung ein.', + 'Please enter reviews per page.' => 'Bitte geben Sie die Anzahl Bewertungen pro Seite ein.', + 'Please enter the payment mode of the refund transaction.' => 'Bitte geben Sie die Zahlungsart der Erstattung ein.', + 'Please enter the transaction id of the refund transaction.' => 'Bitte geben Sie die Transaktions-ID der Erstattung ein.', + 'Please enter valid maximum images per review.' => 'Bitte geben Sie eine gültige maximale Anzahl Bilder pro Bewertung ein.', + 'Please enter valid reviews per page.' => 'Bitte geben Sie eine gültige Anzahl Bewertungen pro Seite ein.', + 'Please fill all date from and date to for disable dates fields.' => 'Bitte füllen Sie bei den Sperrdaten alle Felder Von und Bis aus.', + 'Please fill valid date in disable date fields' => 'Bitte geben Sie in den Sperrdaten-Feldern ein gültiges Datum ein', + 'Please save property information before assigning property amenities.' => 'Bitte speichern Sie die Hotelinformationen, bevor Sie die Hotelausstattung zuweisen.', + 'Please save property information before saving property images.' => 'Bitte speichern Sie die Hotelinformationen, bevor Sie die Hotelbilder speichern.', + 'Please save property information before saving refund policy options.' => 'Bitte speichern Sie die Hotelinformationen, bevor Sie die Optionen der Erstattungsrichtlinie speichern.', + 'Please save the property information before saving the property booking restrictions.' => 'Bitte speichern Sie die Hotelinformationen, bevor Sie die Buchungsbeschränkungen des Hotels speichern.', + 'Please select a different refund status.' => 'Bitte wählen Sie einen anderen Erstattungsstatus.', + 'Please select a property name' => 'Bitte wählen Sie ein Hotel aus', + 'Please select a schema of type \'synopsis\' to get the whole schema informations (which fields are required, which kind of content...) or \'blank\' to get an empty schema to fill before using POST request.' => 'Bitte wählen Sie ein Schema vom Typ \'synopsis\', um alle Schema-Informationen zu erhalten (welche Felder erforderlich sind, welche Art von Inhalt ...) oder \'blank\', um ein leeres Schema zum Ausfüllen vor der POST-Anfrage zu erhalten.', + 'Please select a valid Check-In' => 'Bitte wählen Sie ein gültiges Check-in', + 'Please select a valid Check-Out' => 'Bitte wählen Sie ein gültiges Check-out', + 'Please select a valid date range' => 'Bitte wählen Sie einen gültigen Zeitraum', + 'Please select at least one day for week days restriction.' => 'Bitte wählen Sie mindestens einen Tag für die Wochentagsbeschränkung.', + 'Please select at least one group for the group access' => 'Bitte wählen Sie mindestens eine Gruppe für den Gruppenzugriff aus', + 'Please select at least one image before uploading.' => 'Bitte wählen Sie vor dem Hochladen mindestens ein Bild aus.', + 'Please select at least one image file.' => 'Bitte wählen Sie mindestens eine Bilddatei aus.', + 'Please select at least one image to delete.' => 'Bitte wählen Sie mindestens ein Bild zum Löschen aus.', + 'Please select at least one image to update.' => 'Bitte wählen Sie mindestens ein Bild zum Aktualisieren aus.', + 'Please select at least one room type for creating multiple price rules.' => 'Bitte wählen Sie mindestens einen Zimmertyp, um mehrere Preisregeln zu erstellen.', + 'Please select the date until which the voucher can be used.' => 'Bitte wählen Sie das Datum, bis zu dem der Gutschein verwendet werden kann.', + 'Please upload a square image. Accepted formats: JPG, PNG, GIF.' => 'Bitte laden Sie ein quadratisches Bild hoch. Erlaubte Formate: JPG, PNG, GIF.', + 'Please upload an image for this amenity.' => 'Bitte laden Sie ein Bild für diese Ausstattung hoch.', + 'Please upload or link a video before switching the header to Video mode.' => 'Bitte laden Sie ein Video hoch oder verknüpfen Sie eines, bevor Sie den Kopfbereich auf den Videomodus umstellen.', + 'Policies :' => 'Richtlinien :', + 'Position is invalid.' => 'Die Position ist ungültig.', + 'Postal Code' => 'Postleitzahl', + 'Postcode' => 'Postleitzahl', + 'Primary hotel for website will be updated to first available active hotel.' => 'Das Haupthotel der Website wird auf das erste verfügbare aktive Hotel geändert.', + 'Primary property' => 'Haupthotel', + 'Primary property is used to default address for your business. The property address will be considered as your registered business address.' => 'Das Haupthotel wird als Standardadresse Ihres Unternehmens verwendet. Die Hoteladresse gilt als Ihre eingetragene Geschäftsadresse.', + 'Product added in cart' => 'Produkt zum Warenkorb hinzugefügt', + 'Product type' => 'Produkttyp', + 'Product type is required' => 'Der Produkttyp ist erforderlich', + 'Products requested for refund' => 'Produkte mit Erstattungsantrag', + 'Property Configuration' => 'Hotelkonfiguration', + 'Property Location' => 'Hotelstandort', + 'Property Name is required' => 'Der Hotelname ist erforderlich', + 'Property Regulations' => 'Hotelbestimmungen', + 'Property Settings' => 'Hoteleinstellungen', + 'Property Type' => 'Unterkunftstyp', + 'Property Type :' => 'Unterkunftstyp :', + 'Property Types' => 'Unterkunftstypen', + 'Property name search threshold' => 'Schwellenwert für die Hotelnamen-Suche', + 'Property name search threshold field is invalid.' => 'Das Feld Schwellenwert für die Hotelnamen-Suche ist ungültig.', + 'Property name search threshold field is required.' => 'Das Feld Schwellenwert für die Hotelnamen-Suche ist erforderlich.', + 'Property not found' => 'Hotel nicht gefunden', + 'Property not found.' => 'Hotel nicht gefunden.', + 'Provides an intuitive & analytical dashboard that brings useful data and stats.' => 'Bietet ein intuitives und analytisches Dashboard mit nützlichen Daten und Statistiken.', + 'Purpose of Visit' => 'Reisezweck', + 'QloApps Channel Manager Connector' => 'QloApps Channel-Manager-Connector', + 'QloApps Room Search Panels' => 'QloApps Zimmersuche-Panels', + 'QloApps channel manager synchronizes inventory, rates, restrictions with all connected OTA channels and automated bookings sync connected OTAs and QloApps PMS.' => 'Der QloApps Channel Manager synchronisiert Bestand, Preise und Beschränkungen mit allen verbundenen OTA-Kanälen. Die automatische Buchungssynchronisierung gleicht verbundene OTAs und das QloApps PMS ab.', + 'Rate' => 'Preis', + 'Rate Plan' => 'Tarif', + 'Rate per Night' => 'Preis pro Nacht', + 'Rating :' => 'Bewertung :', + 'Real-time sync with the world\'s most popular OTA channels like Booking, MakeMyTrip, Expedia, Airbnb, Agoda, Google Hotels, and many more.' => 'Echtzeit-Synchronisierung mit den beliebtesten OTA-Kanälen der Welt wie Booking, MakeMyTrip, Expedia, Airbnb, Agoda, Google Hotels und vielen weiteren.', + 'Reallocate Room' => 'Zimmer umbuchen', + 'Reason' => 'Grund', + 'Received amount' => 'Erhaltener Betrag', + 'Recommended: 1920×600 px' => 'Empfohlen: 1920×600 px', + 'Refer to the following link for available icons.' => 'Verfügbare Symbole finden Sie unter folgendem Link.', + 'Refer to the following link for available icons:' => 'Verfügbare Symbole finden Sie unter folgendem Link:', + 'Referenced booking not found.' => 'Referenzierte Buchung nicht gefunden.', + 'Refresh' => 'Aktualisieren', + 'Refund Amount' => 'Erstattungsbetrag', + 'Refund Date' => 'Erstattungsdatum', + 'Refund ID' => 'Erstattungs-ID', + 'Refund Method' => 'Erstattungsart', + 'Refund Policies' => 'Erstattungsrichtlinien', + 'Refund Remark' => 'Erstattungsvermerk', + 'Refund Status' => 'Erstattungsstatus', + 'Refund Transaction Amount' => 'Betrag der Erstattung', + 'Refund amount' => 'Erstattungsbetrag', + 'Refund request has been completed successfully.' => 'Der Erstattungsantrag wurde erfolgreich abgeschlossen.', + 'Refund request has been denied successfully.' => 'Der Erstattungsantrag wurde erfolgreich abgelehnt.', + 'Refunded amount:' => 'Erstatteter Betrag:', + 'Refunds' => 'Erstattungen', + 'Regenerate Token' => 'Token neu erzeugen', + 'Registration No.' => 'Registrierungsnr.', + 'Reply has been added successfully.' => 'Die Antwort wurde erfolgreich hinzugefügt.', + 'Request failed.' => 'Anfrage fehlgeschlagen.', + 'Request type' => 'Antragsart', + 'Required number of rooms are not available' => 'Die benötigte Anzahl an Zimmern ist nicht verfügbar', + 'Reset Cron Task' => 'Cron-Aufgabe zurücksetzen', + 'Reset Task' => 'Aufgabe zurücksetzen', + 'Resolved' => 'Erledigt', + 'Restrict to Week Days' => 'Auf Wochentage beschränken', + 'Returning' => 'Wiederkehrend', + 'Returning Guests' => 'Wiederkehrende Gäste', + 'RevPAR (Rev. Per Avail. Room)' => 'RevPAR (Umsatz pro verfügbarem Zimmer)', + 'Revenue' => 'Umsatz', + 'Revenue (excl. Tax)' => 'Umsatz (netto)', + 'Revenue (incl. Tax)' => 'Umsatz (brutto)', + 'Revenue Per Available Room' => 'Umsatz pro verfügbarem Zimmer', + 'Revenue Per Available Room (RevPAR) is calculated by dividing total rooms revenue by the total number of rooms in the period being measured.' => 'Der RevPAR (Umsatz pro verfügbarem Zimmer) ergibt sich, wenn der gesamte Zimmerumsatz durch die Anzahl der Zimmer im betrachteten Zeitraum geteilt wird.', + 'Revenue Source' => 'Umsatzquelle', + 'Review Options' => 'Bewertungsoptionen', + 'Review approval email' => 'E-Mail zur Freigabe von Bewertungen', + 'Review has been approved successfully.' => 'Die Bewertung wurde erfolgreich freigegeben.', + 'Review has been disapproved successfully.' => 'Die Bewertung wurde erfolgreich abgelehnt.', + 'Review has been marked not abusive successfully.' => 'Die Bewertung wurde erfolgreich als nicht missbräuchlich markiert.', + 'Reviews' => 'Bewertungen', + 'Right' => 'Rechts', + 'Room Charge' => 'Zimmerpreis', + 'Room Charges' => 'Zimmerpreise', + 'Room Nights' => 'Zimmernächte', + 'Room No.' => 'Zimmernr.', + 'Room Number' => 'Zimmernummer', + 'Room Rate Per Night' => 'Zimmerpreis pro Nacht', + 'Room Revenue' => 'Zimmerumsatz', + 'Room Revenue (excl. Tax)' => 'Zimmerumsatz (netto)', + 'Room Type' => 'Zimmertyp', + 'Room Types' => 'Zimmertypen', + 'Room added to cart successfully' => 'Zimmer erfolgreich zum Warenkorb hinzugefügt', + 'Room num' => 'Zimmernr.', + 'Room num(s)' => 'Zimmernr.', + 'Room removed from cart successfully' => 'Zimmer erfolgreich aus dem Warenkorb entfernt', + 'Room search blocks on different pages to search rooms as per user travel parameters.' => 'Zimmersuche-Blöcke auf verschiedenen Seiten, um Zimmer nach den Reisedaten des Nutzers zu suchen.', + 'Room statuses cannot be added or deleted.' => 'Zimmerstatus können nicht hinzugefügt oder gelöscht werden.', + 'Room type is not selected. Please try again.' => 'Zimmertyp ist nicht ausgewählt. Bitte versuchen Sie es erneut.', + 'Room type(s)' => 'Zimmertyp(en)', + 'Room/services refund state' => 'Erstattungsstatus Zimmer/Zusatzleistungen', + 'Rooms Amount (Tax excl.):' => 'Zimmerbetrag (ohne Steuer):', + 'Rooms Available' => 'Verfügbare Zimmer', + 'Rooms Booked' => 'Gebuchte Zimmer', + 'Rooms Occupied' => 'Belegte Zimmer', + 'Rooms Sold' => 'Verkaufte Zimmer', + 'Rooms cancelation charges' => 'Stornogebühren für Zimmer', + 'Rooms not found for this product.' => 'Für dieses Produkt wurden keine Zimmer gefunden.', + 'Runs ' => 'Läuft ', + 'Sales' => 'Verkäufe', + 'Sales is the measure of total sales on your website over a given time period.' => 'Die Verkäufe zeigen die gesamten Verkäufe auf Ihrer Website in einem bestimmten Zeitraum.', + 'Save' => 'Speichern', + 'Save the configuration. The old sitemap files will then be erased and new ones created automatically, based on the schedule.' => 'Speichern Sie die Konfiguration. Die alten Sitemap-Dateien werden dann gelöscht und gemäß dem Zeitplan automatisch neu erstellt.', + 'Save the hotel first. You will be able to select room types when editing this hotel.' => 'Speichern Sie zuerst das Hotel. Zimmertypen können Sie auswählen, wenn Sie dieses Hotel bearbeiten.', + 'Scheduled tasks will not run automatically until the cron command is added to your server.' => 'Geplante Aufgaben werden erst automatisch ausgeführt, wenn der Cron-Befehl auf Ihrem Server eingetragen ist.', + 'Search Panel Setting' => 'Einstellungen der Suchleiste', + 'Secure Token' => 'Sicherheits-Token', + 'Security Deposit' => 'Kaution', + 'Select Another Property' => 'Anderes Hotel auswählen', + 'Select CMS Page' => 'CMS-Seite auswählen', + 'Select CMS category' => 'CMS-Kategorie auswählen', + 'Select CMS category to display related CMS pages' => 'CMS-Kategorie auswählen, um die zugehörigen CMS-Seiten anzuzeigen', + 'Select CMS for detailed refund policy for the customer.' => 'CMS-Seite mit den ausführlichen Erstattungsbedingungen für den Kunden auswählen.', + 'Select Week Days' => 'Wochentage auswählen', + 'Select all the groups that you would like to apply to this advanced price rule.' => 'Wählen Sie alle Gruppen aus, für die diese Preisregel gelten soll.', + 'Select amenities for this hotel.' => 'Ausstattung für dieses Hotel auswählen.', + 'Select at least one booking for refund.' => 'Wählen Sie mindestens eine Buchung für die Erstattung aus.', + 'Select category' => 'Kategorie auswählen', + 'Select deduction type' => 'Abzugsart auswählen', + 'Select font weight' => 'Schriftstärke auswählen', + 'Select front end page of the theme. Guests will be redirected to this url for this navigation link.' => 'Wählen Sie eine Seite der Website aus. Gäste werden bei diesem Navigationslink auf diese Adresse weitergeleitet.', + 'Select new state for refund request.' => 'Neuen Status für den Erstattungsantrag auswählen.', + 'Select status' => 'Status auswählen', + 'Select the CMS page you want to attach with this navigation link. CMS page link will be used as redirect url and meta title of the CMS page will be considered as the name of footer navigation link.' => 'Wählen Sie die CMS-Seite für diesen Navigationslink aus. Der Link der CMS-Seite wird als Weiterleitungsadresse verwendet, der Meta-Titel der Seite als Name des Navigationslinks im Fußbereich.', + 'Select the method of payment through which you have refunded to the customer.' => 'Wählen Sie die Zahlungsart aus, mit der Sie den Kunden erstattet haben.', + 'Select the room types for which you are going to create this advanced price rule.' => 'Wählen Sie die Zimmertypen aus, für die Sie diese Preisregel erstellen.', + 'Select type of deduction (percentage or fixed amount).' => 'Abzugsart auswählen (Prozentsatz oder fester Betrag).', + 'Select which of the chosen amenities should be featured for this hotel.' => 'Wählen Sie aus, welche der ausgewählten Ausstattungsmerkmale für dieses Hotel hervorgehoben werden sollen.', + 'Selected image category is invalid.' => 'Die ausgewählte Bildkategorie ist ungültig.', + 'Selected images updated successfully.' => 'Die ausgewählten Bilder wurden erfolgreich aktualisiert.', + 'Selecting a new file will replace the current video.' => 'Wenn Sie eine neue Datei auswählen, wird das aktuelle Video ersetzt.', + 'Seo' => 'SEO', + 'September' => 'September', + 'Server cannot verify file type. Please enable the fileinfo PHP extension.' => 'Der Server kann den Dateityp nicht prüfen. Bitte aktivieren Sie die PHP-Erweiterung fileinfo.', + 'Server cron job not detected' => 'Server-Cronjob nicht erkannt', + 'Service Category' => 'Servicekategorie', + 'Service Charge' => 'Servicegebühr', + 'Service Charges' => 'Servicegebühren', + 'Service Name' => 'Servicename', + 'Services' => 'Services', + 'Services cost:' => 'Kosten der Zusatzleistungen:', + 'Services paid amount:' => 'Bezahlter Betrag für Zusatzleistungen:', + 'Set URL of the desired page. If it is a Back office URL please remove the token from it.' => 'Geben Sie die Adresse der gewünschten Seite ein. Bei einer Adresse im Verwaltungsbereich entfernen Sie bitte den Token daraus.', + 'Set icon class for this link.' => 'Symbol-Klasse für diesen Link festlegen.', + 'Set manual navigation redirect Url' => 'Weiterleitungsadresse für die Navigation manuell festlegen', + 'Set to 0 to always show the search box.' => 'Auf 0 setzen, um das Suchfeld immer anzuzeigen.', + 'Set to 0 to display all featured amenities.' => 'Auf 0 setzen, um alle hervorgehobenen Ausstattungsmerkmale anzuzeigen.', + 'Set to 0 to display all featured features.' => 'Auf 0 setzen, um alle hervorgehobenen Merkmale anzuzeigen.', + 'Set to 0 to display all values of each featured feature.' => 'Auf 0 setzen, um alle Werte jedes hervorgehobenen Merkmals anzuzeigen.', + 'Set your targets by clicking the configuration button at right position of the header in this section.' => 'Legen Sie Ihre Ziele fest, indem Sie auf die Einstellungen-Schaltfläche rechts in der Kopfzeile dieses Bereichs klicken.', + 'Setting this to Yes will make this the cover image, replacing the current one.' => 'Bei "Ja" wird dieses Bild zum Titelbild und ersetzt das aktuelle.', + 'Settings Links' => 'Links zu den Einstellungen', + 'Settings saved successfully.' => 'Einstellungen erfolgreich gespeichert.', + 'Short Description :' => 'Kurzbeschreibung:', + 'Short description cannot exceed %s characters in ' => 'Die Kurzbeschreibung darf höchstens %s Zeichen lang sein in ', + 'Short description is not valid in %s' => 'Die Kurzbeschreibung ist ungültig in %s', + 'Short text overlay shown on this image. Leave empty for no overlay.' => 'Kurzer Text, der über diesem Bild angezeigt wird. Leer lassen für keinen Text.', + 'Short title shown as an input field on this image. Leave empty for no title.' => 'Kurzer Titel, der auf diesem Bild angezeigt wird. Leer lassen für keinen Titel.', + 'Show at footer block' => 'Im Fußbereich anzeigen', + 'Show at navigation menu' => 'Im Navigationsmenü anzeigen', + 'Show navigation block at footer' => 'Navigationsblock im Fußbereich anzeigen', + 'Showing' => 'Angezeigt', + 'Showing guests who were in-house at any point during the selected date range.' => 'Es werden Gäste angezeigt, die zu irgendeinem Zeitpunkt im gewählten Zeitraum im Haus waren.', + 'Showing page' => 'Angezeigte Seite', + 'Showing room status as of the filter start date.' => 'Es wird der Zimmerstatus zum Startdatum des Filters angezeigt.', + 'Signature' => 'Unterschrift', + 'Sitemap generation' => 'Sitemap-Erstellung', + 'Slide' => 'Folie', + 'Slide Animation' => 'Folien-Animation', + 'Slide Interval' => 'Folien-Intervall', + 'Slider navigation and auto-slide controls take effect only when 2 or more images are active. With a single active image these settings have no visible impact on the front end.' => 'Die Navigation und der automatische Bildwechsel des Sliders funktionieren nur, wenn mindestens 2 Bilder aktiv sind. Bei nur einem aktiven Bild haben diese Einstellungen keine sichtbare Wirkung auf der Website.', + 'Some date are conflicting with each other. Please check and reselect the date ranges.' => 'Einige Daten überschneiden sich. Bitte prüfen Sie die Zeiträume und wählen Sie sie erneut aus.', + 'Some dates are conflicting. Please check and reselect the date ranges.' => 'Einige Daten überschneiden sich. Bitte prüfen Sie die Zeiträume und wählen Sie sie erneut aus.', + 'Some dates are conflicting. Please check and reselect the dates.' => 'Einige Daten überschneiden sich. Bitte prüfen Sie die Daten und wählen Sie sie erneut aus.', + 'Some days are conflicting. Please check and update the special days.' => 'Einige Tage überschneiden sich. Bitte prüfen und ändern Sie die Sondertage.', + 'Some error has occurred while deleting hotel amenity data.' => 'Beim Löschen der Ausstattungsdaten des Hotels ist ein Fehler aufgetreten.', + 'Some error has occurred while deleting images of hotel.' => 'Beim Löschen der Hotelbilder ist ein Fehler aufgetreten.', + 'Some error has occurred while deleting products of this hotel.' => 'Beim Löschen der Produkte dieses Hotels ist ein Fehler aufgetreten.', + 'Some error has occurred while deleting unused hotel categories.' => 'Beim Löschen nicht verwendeter Hotelkategorien ist ein Fehler aufgetreten.', + 'Some error occurred while adding hotel accesses to this profile' => 'Beim Hinzufügen der Hotelzugriffe zu diesem Profil ist ein Fehler aufgetreten.', + 'Some error occurred while creating cart' => 'Beim Erstellen des Warenkorbs ist ein Fehler aufgetreten.', + 'Some error occurred while creating customer address' => 'Beim Erstellen der Kundenadresse ist ein Fehler aufgetreten.', + 'Some error occurred while creating customer.' => 'Beim Erstellen des Kunden ist ein Fehler aufgetreten.', + 'Some error occurred while creating order' => 'Beim Erstellen der Bestellung ist ein Fehler aufgetreten.', + 'Some error occurred while deleting hotel accesses of the profile' => 'Beim Löschen der Hotelzugriffe des Profils ist ein Fehler aufgetreten.', + 'Some error occurred while saving advanced price rule.' => 'Beim Speichern der Preisregel ist ein Fehler aufgetreten.', + 'Some error occurred while updating advanced price rule priorities.' => 'Beim Aktualisieren der Prioritäten der Preisregeln ist ein Fehler aufgetreten.', + 'Some problem occurred while assigning amenities to the hotel.' => 'Beim Zuweisen der Ausstattung zum Hotel ist ein Problem aufgetreten.', + 'Something went wrong during order creation. Contact admin from ' => 'Bei der Erstellung der Bestellung ist ein Fehler aufgetreten. Wenden Sie sich an den Administrator über ', + 'Something went wrong while deleting image. Please try again later !!' => 'Beim Löschen des Bildes ist etwas schiefgelaufen. Bitte versuchen Sie es später erneut.', + 'Something went wrong while uploading images. Please try again later !!' => 'Beim Hochladen der Bilder ist etwas schiefgelaufen. Bitte versuchen Sie es später erneut.', + 'Sometimes one customer can fit into multiple advanced price rules. In this case priorities allow you to define which rule applies to the room type.' => 'Manchmal passt ein Kunde zu mehreren Preisregeln. In diesem Fall legen Sie mit den Prioritäten fest, welche Regel für den Zimmertyp gilt.', + 'Source' => 'Quelle', + 'Special Days' => 'Sondertage', + 'Special days are missing for price rule having restrict to week days' => 'Für die auf Wochentage beschränkte Preisregel fehlen die Sondertage.', + 'Specific Date' => 'Bestimmtes Datum', + 'Specific Date is missing for price rule restriction.' => 'Für die Einschränkung der Preisregel fehlt ein bestimmtes Datum.', + 'Staff Name' => 'Name des Mitarbeiters', + 'Start Date' => 'Startdatum', + 'State' => 'Bundesland', + 'State :' => 'Bundesland:', + 'State is required field.' => 'Das Bundesland ist ein Pflichtfeld.', + 'Status' => 'Status', + 'Status name is required at least in ' => 'Der Statusname ist mindestens erforderlich in ', + 'Subject of the review.' => 'Betreff der Bewertung.', + 'Submit the main sitemap URL in your search engine webmaster account (for example Google Search Console).' => 'Reichen Sie die URL der Haupt-Sitemap in Ihrem Webmaster-Konto der Suchmaschine ein (zum Beispiel Google Search Console).', + 'Success' => 'Erfolgreich', + 'Sum of revenue (excluding tax) generated within the date range by orders considered validated.' => 'Summe des Umsatzes (netto) im gewählten Zeitraum aus Bestellungen, die als bestätigt gelten.', + 'Support Contact Details' => 'Kontaktdaten des Supports', + 'Support Email' => 'E-Mail des Supports', + 'Support Email is invalid.' => 'Die E-Mail-Adresse des Supports ist ungültig.', + 'Support Phone Number' => 'Telefonnummer des Supports', + 'Support Phone Number is invalid.' => 'Die Telefonnummer des Supports ist ungültig.', + 'Switching to Video will delete all images except the one in the first position. Please confirm this action.' => 'Beim Wechsel zu Video werden alle Bilder außer dem ersten gelöscht. Bitte bestätigen Sie diese Aktion.', + 'Switching to Video will delete all images except the one in the first position. This cannot be undone. Continue?' => 'Beim Wechsel zu Video werden alle Bilder außer dem ersten gelöscht. Dies kann nicht rückgängig gemacht werden. Fortfahren?', + 'Synchronize and map QloApps hotels and room types in channel manager.' => 'Hotels und Zimmertypen aus QloApps im Channel Manager abgleichen und zuordnen.', + 'Target' => 'Ziel', + 'Targets are common for all the hotels, while the data is displayed for the selected hotel.' => 'Die Ziele gelten für alle Hotels, die Daten werden für das gewählte Hotel angezeigt.', + 'Task Name' => 'Name der Aufgabe', + 'Task definition not found in module.' => 'Aufgabendefinition im Modul nicht gefunden.', + 'Tax Amount' => 'Steuerbetrag', + 'Tax ID / VAT No.' => 'Steuernummer / USt-IdNr.', + 'Tax Name' => 'Steuername', + 'Tax Rate %' => 'Steuersatz %', + 'Tax Summary by Type' => 'Steuerübersicht nach Art', + 'Taxable Amount' => 'Steuerpflichtiger Betrag', + 'Terminal (final) status' => 'Endstatus (final)', + 'Terminal (final) status can not be changed for this room status.' => 'Der Endstatus (final) kann für diesen Zimmerstatus nicht geändert werden.', + 'Text color for the description overlay.' => 'Textfarbe für den Beschreibungstext auf dem Bild.', + 'The Room "%s" has been booked by another customer from "%s" to "%s" Please remove rooms from cart to proceed' => 'Das Zimmer "%s" wurde von einem anderen Kunden von "%s" bis "%s" gebucht. Bitte entfernen Sie die Zimmer aus dem Warenkorb, um fortzufahren.', + 'The Room "%s" is no longer available from "%s" to "%s" Please remove rooms from cart to proceed' => 'Das Zimmer "%s" ist von "%s" bis "%s" nicht mehr verfügbar. Bitte entfernen Sie die Zimmer aus dem Warenkorb, um fortzufahren.', + 'The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s' => 'Die eingegebene Postleitzahl ist ungültig. Sie muss diesem Format entsprechen: %s', + 'The address of the main branch.' => 'Die Adresse des Haupthauses.', + 'The email used for customer service. It will be shown on navigation bar.' => 'Die E-Mail-Adresse für den Kundenservice. Sie wird in der Navigationsleiste angezeigt.', + 'The following hotels are not listed on Google Hotel:' => 'Die folgenden Hotels sind nicht bei Google Hotel gelistet:', + 'The following required fields are missing. Please fill them in before enabling Google Hotel:' => 'Die folgenden Pflichtfelder fehlen. Bitte füllen Sie diese aus, bevor Sie Google Hotel aktivieren:', + 'The infant age cannot be greater than the Global child age (%s years)' => 'Das Alter für Kleinkinder darf nicht höher sein als das allgemeine Kindesalter (%s Jahre).', + 'The main sitemap lists one sitemap file for each active language.' => 'Die Haupt-Sitemap listet für jede aktive Sprache eine Sitemap-Datei auf.', + 'The module that owns this task.' => 'Das Modul, zu dem diese Aufgabe gehört.', + 'The number of maximum images that can be uploaded with a review.' => 'Die maximale Anzahl an Bildern, die mit einer Bewertung hochgeladen werden können.', + 'The number of reviews that are displayed at once when listing them.' => 'Die Anzahl der Bewertungen, die in der Liste gleichzeitig angezeigt werden.', + 'The object has been updated successfully.' => 'Das Objekt wurde erfolgreich aktualisiert.', + 'The object with ID: %d can not be loaded.' => 'Das Objekt mit der ID %d kann nicht geladen werden.', + 'The phone number of the main branch.' => 'Die Telefonnummer des Haupthauses.', + 'The phone number used for customer service. It will be shown on navigation bar.' => 'Die Telefonnummer für den Kundenservice. Sie wird in der Navigationsleiste angezeigt.', + 'The quantity you\'ve entered is invalid for %s.' => 'Die eingegebene Menge ist für %s ungültig.', + 'The selected images have successfully been moved.' => 'Die ausgewählten Bilder wurden erfolgreich verschoben.', + 'The sitemaps are regenerated automatically. Current schedule:' => 'Die Sitemaps werden automatisch neu erstellt. Aktueller Zeitplan:', + 'The sitemaps are regenerated automatically. You can configure the schedule in the' => 'Die Sitemaps werden automatisch neu erstellt. Den Zeitplan können Sie einstellen unter', + 'The status has been successfully updated.' => 'Der Status wurde erfolgreich aktualisiert.', + 'The total number of available room nights in the selected date range.' => 'Die Gesamtzahl der verfügbaren Zimmernächte im gewählten Zeitraum.', + 'The total number of booked room nights in the selected date range out of total available room nights.' => 'Die Gesamtzahl der gebuchten Zimmernächte im gewählten Zeitraum, bezogen auf alle verfügbaren Zimmernächte.', + 'The total number of unavailable room nights in the selected date range out of total available room nights.' => 'Die Gesamtzahl der nicht verfügbaren Zimmernächte im gewählten Zeitraum, bezogen auf alle verfügbaren Zimmernächte.', + 'The value for "Consider guest as child below age" must be at least 1.' => 'Der Wert für "Gast als Kind betrachten unter Alter" muss mindestens 1 betragen.', + 'The value for infant age must be at least 1.' => 'Der Wert für das Alter von Kleinkindern muss mindestens 1 betragen.', + 'The year when your hotel site was launched.' => 'Das Jahr, in dem Ihre Hotel-Website gestartet wurde.', + 'Theme Pages' => 'Seiten des Designs', + 'There isn\'t enough product in stock.' => 'Es ist nicht genügend Bestand vorhanden.', + 'This HTTP method is not allowed' => 'Diese HTTP-Methode ist nicht erlaubt.', + 'This command runs every minute and dispatches all registered module tasks based on their cron expressions.' => 'Dieser Befehl läuft jede Minute und startet alle registrierten Modulaufgaben entsprechend ihrer Cron-Ausdrücke.', + 'This field is disabled as option \'Enable newsletter registration\' is disabled. You can change it from %sPreferences > Customers%s page.' => 'Dieses Feld ist deaktiviert, da die Option "Newsletter-Anmeldung aktivieren" ausgeschaltet ist. Sie können dies auf der Seite %sEinstellungen > Kunden%s ändern.', + 'This group will be the user\'s default group.' => 'Diese Gruppe wird die Standardgruppe des Benutzers.', + 'This module connects the PMS with Channel Manager using a simplified API endpoint.' => 'Dieses Modul verbindet das PMS über einen vereinfachten API-Endpunkt mit dem Channel Manager.', + 'This module is the backbone of QloApps and handles all booking processes on your website.' => 'Dieses Modul ist das Herzstück von QloApps und steuert alle Buchungsvorgänge auf Ihrer Website.', + 'This module should not be uninstalled under any circumstances. Doing so may cause undesired results.' => 'Dieses Modul darf auf keinen Fall deinstalliert werden. Dies kann zu unerwünschten Ergebnissen führen.', + 'This option can be disabled if only one active hotel in the website. In case of more than one active hotel, Hotel Name will always be shown in the search panel.' => 'Diese Option kann ausgeschaltet werden, wenn es auf der Website nur ein aktives Hotel gibt. Bei mehr als einem aktiven Hotel wird der Hotelname in der Suchleiste immer angezeigt.', + 'This product is either a room type or extra service and cannot be added through this method.' => 'Dieses Produkt ist ein Zimmertyp oder eine Zusatzleistung und kann auf diesem Weg nicht hinzugefügt werden.', + 'This product is no longer available.' => 'Dieses Produkt ist nicht mehr verfügbar.', + 'This token secures the cron endpoint. After regenerating it, you will need to update your server cron entry.' => 'Dieser Token schützt den Cron-Endpunkt. Nach der Neuerstellung müssen Sie den Cron-Eintrag auf Ihrem Server anpassen.', + 'Title is too long: %d chars max.' => 'Der Titel ist zu lang: höchstens %d Zeichen.', + 'Title...' => 'Titel...', + 'To change it, select another option from the Sitemap generation schedule.' => 'Um dies zu ändern, wählen Sie eine andere Option im Zeitplan der Sitemap-Erstellung.', + 'To date is required' => 'Das Bis-Datum ist erforderlich', + 'To enable hotel-wise refunds, activate order refunds in' => 'Um Erstattungen pro Hotel zu ermöglichen, aktivieren Sie Bestellerstattungen in', + 'To know channel manager features and work-flow in details' => 'Details zu Funktionen und Ablauf des Channel Managers finden Sie hier', + 'To read the connection process in detail, visit' => 'Eine ausführliche Beschreibung der Verbindung finden Sie unter', + 'To turn it on, select Weekly, Monthly or Yearly from the Sitemap generation schedule.' => 'Um dies zu aktivieren, wählen Sie im Zeitplan der Sitemap-Erstellung „Wöchentlich“, „Monatlich“ oder „Jährlich“.', + 'To update the sitemap at any time, click the "Generate sitemap" button. This erases the old sitemap files and creates new ones.' => 'Um die Sitemap jederzeit zu aktualisieren, klicken Sie auf die Schaltfläche „Sitemap erstellen“. Dadurch werden die alten Sitemap-Dateien gelöscht und neue erstellt.', + 'Token has been regenerated. Update your server cron entry with the new URL.' => 'Der Token wurde neu erstellt. Passen Sie den Cron-Eintrag auf Ihrem Server an die neue URL an.', + 'Top %d most searched hotels' => 'Die %d meistgesuchten Hotels', + 'Top %d room types' => 'Die %d beliebtesten Zimmertypen', + 'Top Searches' => 'Häufigste Suchen', + 'Top searched hotel list is independent of hotel selection at the top. It will always display top searched hotels among all hotels.' => 'Die Liste der meistgesuchten Hotels ist unabhängig von der Hotelauswahl oben. Sie zeigt immer die meistgesuchten Hotels aus allen Hotels an.', + 'Total (excl. Tax)' => 'Gesamt (netto)', + 'Total (incl. Tax)' => 'Gesamt (brutto)', + 'Total Amount (Tax excl.):' => 'Gesamtbetrag (ohne Steuer):', + 'Total Amount Paid: ' => 'Gesamtbetrag bezahlt: ', + 'Total Available' => 'Gesamt verfügbar', + 'Total Bookings' => 'Buchungen gesamt', + 'Total Cancellations' => 'Stornierungen gesamt', + 'Total Charges' => 'Gesamtkosten', + 'Total Collected' => 'Gesamt eingenommen', + 'Total Collection' => 'Gesamteinnahmen', + 'Total Nights' => 'Nächte gesamt', + 'Total Order Amount' => 'Gesamtbetrag der Bestellung', + 'Total Orders' => 'Bestellungen gesamt', + 'Total Outstanding' => 'Gesamt offen', + 'Total Paid' => 'Gesamt bezahlt', + 'Total Price (excl. Tax)' => 'Gesamtpreis (netto)', + 'Total Refunded' => 'Gesamt erstattet', + 'Total Reports' => 'Berichte gesamt', + 'Total Revenue' => 'Gesamtumsatz', + 'Total Revenue Per Available Room' => 'Gesamtumsatz pro verfügbarem Zimmer', + 'Total Revenue Per Available Room (TrevPAR) measures the total revenue being generated per available room including service products.' => 'Der TrevPAR (Gesamtumsatz pro verfügbarem Zimmer) misst den gesamten Umsatz pro verfügbarem Zimmer, einschließlich Serviceleistungen.', + 'Total Room Bookings' => 'Zimmerbuchungen gesamt', + 'Total Room Nights Available' => 'Verfügbare Zimmernächte gesamt', + 'Total Room Nights Sold' => 'Verkaufte Zimmernächte gesamt', + 'Total Room Revenue' => 'Gesamter Zimmerumsatz', + 'Total Rooms' => 'Zimmer gesamt', + 'Total Rooms (Inventory)' => 'Zimmer gesamt (Bestand)', + 'Total Stays' => 'Aufenthalte gesamt', + 'Total Subscribers' => 'Abonnenten gesamt', + 'Total Tax Collected' => 'Steuern gesamt eingenommen', + 'Total Taxable Amount' => 'Steuerpflichtiger Betrag gesamt', + 'Total cost (tax incl.)' => 'Gesamtkosten (inkl. Steuer)', + 'Total number of orders received within the date range that are considered validated.' => 'Gesamtzahl der im gewählten Zeitraum eingegangenen Bestellungen, die als bestätigt gelten.', + 'Total number of visits within the date range. A visit is the period of time a user is actively engaged with your website. This data is provided by the module "Data mining for statistics", so please make sure it is installed and configured.' => 'Gesamtzahl der Besuche im gewählten Zeitraum. Ein Besuch ist der Zeitraum, in dem ein Nutzer aktiv auf Ihrer Website unterwegs ist. Diese Daten liefert das Modul „Data mining for statistics“. Bitte stellen Sie sicher, dass es installiert und eingerichtet ist.', + 'Total order amount' => 'Gesamtbetrag der Bestellung', + 'Total paid amount' => 'Gesamt bezahlter Betrag', + 'Total paid amount (tax incl.)' => 'Gesamt bezahlter Betrag (inkl. Steuer)', + 'Total products' => 'Produkte gesamt', + 'Total rooms' => 'Zimmer gesamt', + 'Totals' => 'Summen', + 'Tourism Tax paid:' => 'Bezahlte Tourismussteuer:', + 'Traffic' => 'Besucherverkehr', + 'Traffic Sources' => 'Besucherquellen', + 'Traffic is the measure of number of visitors on your website over a given time period.' => 'Der Besucherverkehr zeigt die Anzahl der Besucher auf Ihrer Website in einem bestimmten Zeitraum.', + 'Transaction ID:' => 'Transaktions-ID:', + 'Transaction Id: ' => 'Transaktions-ID: ', + 'Transaction Reference' => 'Transaktionsreferenz', + 'Transition effect between slides.' => 'Übergangseffekt zwischen den Folien.', + 'Travel Information' => 'Reiseinformationen', + 'Turn on to overwrite the description text for all selected images.' => 'Einschalten, um den Beschreibungstext aller ausgewählten Bilder zu überschreiben.', + 'Turn on to overwrite the title text for all selected images.' => 'Einschalten, um den Titel aller ausgewählten Bilder zu überschreiben.', + 'Unable to activate Advanced Price Rule with ID #%d. A rule with similar conditions already exists.' => 'Die Preisregel mit der ID #%d kann nicht aktiviert werden. Es existiert bereits eine Regel mit ähnlichen Bedingungen.', + 'Unable to delete image.' => 'Das Bild kann nicht gelöscht werden.', + 'Unable to update active status.' => 'Der Aktiv-Status kann nicht aktualisiert werden.', + 'Unable to upload image. Please try again' => 'Das Bild kann nicht hochgeladen werden. Bitte versuchen Sie es erneut.', + 'Unavailable' => 'Nicht verfügbar', + 'Unavailable %s' => 'Nicht verfügbar: %s', + 'Unavailable Rooms' => 'Nicht verfügbare Zimmer', + 'Unique API key for Google Maps.' => 'Eindeutiger API-Schlüssel für Google Maps.', + 'Unique Visitors' => 'Einzelne Besucher', + 'Update Description' => 'Beschreibung aktualisieren', + 'Update Image' => 'Bild aktualisieren', + 'Update Title' => 'Titel aktualisieren', + 'Update failed.' => 'Aktualisierung fehlgeschlagen.', + 'Update image' => 'Bild aktualisieren', + 'Upload failed.' => 'Hochladen fehlgeschlagen.', + 'Upload video file' => 'Videodatei hochladen', + 'Uploading, please wait...' => 'Wird hochgeladen, bitte warten...', + 'Use Global Maximum checkout offset:' => 'Globalen maximalen Check-out-Vorlauf verwenden:', + 'Use Global minimum booking offset :' => 'Globalen minimalen Buchungsvorlauf verwenden:', + 'Use {room_type_name} to generate dynamic feature price names.' => 'Verwenden Sie {room_type_name}, um dynamische Namen für Preisregeln zu erzeugen.', + 'VAT Number' => 'USt-IdNr.', + 'Vacant' => 'Frei', + 'Valid Until' => 'Gültig bis', + 'Vehicle Reg. No.' => 'Kfz-Kennzeichen', + 'Video' => 'Video', + 'Video File' => 'Videodatei', + 'Video Source' => 'Videoquelle', + 'Video deleted successfully.' => 'Video erfolgreich gelöscht.', + 'Video file exceeds the maximum allowed upload size.' => 'Die Videodatei überschreitet die maximal erlaubte Upload-Größe.', + 'View All Logs' => 'Alle Protokolle anzeigen', + 'View Logs' => 'Protokolle anzeigen', + 'View Order Detail' => 'Bestelldetails anzeigen', + 'Viewing' => 'Anzeige', + 'Visa Number' => 'Visumnummer', + 'Visible only when 2 or more active images exist.' => 'Nur sichtbar, wenn mindestens 2 aktive Bilder vorhanden sind.', + 'Visit Documentation' => 'Dokumentation öffnen', + 'Visits' => 'Besuche', + 'Voucher ID:' => 'Gutschein-ID:', + 'Voucher expiry date' => 'Ablaufdatum des Gutscheins', + 'Voucher expiry date is required.' => 'Das Ablaufdatum des Gutscheins ist erforderlich.', + 'Voucher for order #%d' => 'Gutschein für Bestellung #%d', + 'Way of payment' => 'Zahlungsart', + 'We noticed a problem with your payment.' => 'Bei Ihrer Zahlung ist ein Problem aufgetreten.', + 'Website Configuration' => 'Website-Konfiguration', + 'Website Contact Details' => 'Kontaktdaten der Website', + 'Website Launch Year' => 'Startjahr der Website', + 'Website name field is required' => 'Der Website-Name ist ein Pflichtfeld.', + 'What is channel manager?' => 'Was ist ein Channel Manager?', + 'With the one-click rate and inventory updates, directly push availability and rates on the connected OTA channels.' => 'Mit den Aktualisierungen von Preisen und Bestand per Mausklick übertragen Sie Verfügbarkeit und Preise direkt an die verbundenen OTA-Kanäle.', + 'Wrong credentials used.' => 'Falsche Zugangsdaten verwendet.', + 'Yes' => 'Ja', + 'Yes, if you want to take tax with Advance payment otherwise No.' => 'Ja, wenn die Steuer mit der Anzahlung erhoben werden soll, sonst Nein.', + 'You are not authorized to submit a review.' => 'Sie sind nicht berechtigt, eine Bewertung abzugeben.', + 'You can also reallocate an overbooked room with an available room to resolve room\'s overbooking.' => 'Sie können ein überbuchtes Zimmer auch auf ein verfügbares Zimmer umbuchen, um die Überbuchung zu beheben.', + 'You can connect with channel manager through few simple steps' => 'Sie können sich in wenigen einfachen Schritten mit dem Channel Manager verbinden.', + 'You can create amenities by visiting ' => 'Sie können Ausstattung erstellen unter ', + 'You can create refund rules by visiting ' => 'Sie können Erstattungsregeln erstellen unter ', + 'You can customize the sitemap configuration from here.' => 'Hier können Sie die Sitemap-Einstellungen anpassen.', + 'You can manage hotels from ' => 'Sie können Hotels verwalten unter ', + 'You can not book rooms for hotel "%s" after date %s. Please remove rooms from %s - %s to proceed.' => 'Sie können für das Hotel "%s" keine Zimmer nach dem %s buchen. Bitte entfernen Sie die Zimmer von %s - %s, um fortzufahren.', + 'You can not book rooms for hotel "%s" before date %s. Please remove rooms from %s - %s to proceed.' => 'Sie können für das Hotel "%s" keine Zimmer vor dem %s buchen. Bitte entfernen Sie die Zimmer von %s - %s, um fortzufahren.', + 'You can not book rooms from "' => 'Sie können keine Zimmer buchen ab "', + 'You can resolve room overbooking with \'Resolve\' column only when the overbooked room is now free for booked duration.' => 'Sie können eine Überbuchung über die Spalte "Beheben" nur lösen, wenn das überbuchte Zimmer für den gebuchten Zeitraum jetzt frei ist.', + 'You can\'t Book room after date ' => 'Sie können kein Zimmer buchen nach dem ', + 'You cannot delete this property type because it is currently assigned to one or more properties.' => 'Sie können diesen Unterkunftstyp nicht löschen, da er derzeit einer oder mehreren Unterkünften zugewiesen ist.', + 'You cannot disable this property type because it is currently assigned to one or more properties.' => 'Sie können diesen Unterkunftstyp nicht deaktivieren, da er derzeit einer oder mehreren Unterkünften zugewiesen ist.', + 'You cannot generate a voucher.' => 'Sie können keinen Gutschein erstellen.', + 'You do not have permission to delete.' => 'Sie haben keine Berechtigung zum Löschen.', + 'Your browser does not support the video tag.' => 'Ihr Browser unterstützt das Video-Tag nicht.', + 'Your last update was made on this date:' => 'Ihre letzte Aktualisierung erfolgte an diesem Datum:', + 'Your payment has failed. Please contact admin regarding this issue from' => 'Ihre Zahlung ist fehlgeschlagen. Bitte wenden Sie sich deswegen an den Administrator über', + 'Your payment on %s is under processing.' => 'Ihre Zahlung vom %s wird bearbeitet.', + 'Your sitemap' => 'Ihre Sitemap', + 'Zip Code :' => 'Postleitzahl:', + 'Zoom' => 'Zoom', + 'and' => 'und', + 'contact us' => 'Kontakt', + 'create refund rules' => 'Erstattungsregeln erstellen', + 'day of the month (1 - 31)' => 'Tag des Monats (1 - 31)', + 'day of the week (0 - 6)' => 'Wochentag (0 - 6)', + 'e.g. 0 0 * * *' => 'z. B. 0 0 * * *', + 'e.g. Sends the daily booking summary report' => 'z. B. Sendet den täglichen Buchungsbericht', + 'e.g. send_daily_report' => 'z. B. send_daily_report', + 'enter the url to which you want to redirect your guests for this navigation link.' => 'Geben Sie die Adresse ein, auf die Ihre Gäste bei diesem Navigationslink weitergeleitet werden sollen.', + 'every %d months' => 'alle %d Monate', + 'every month' => 'jeden Monat', + 'filtered from' => 'gefiltert aus', + 'from the %1$s to the %2$s of the month' => 'vom %1$s bis zum %2$s des Monats', + 'hotel' => 'Hotel', + 'hour (0 - 23)' => 'Stunde (0 - 23)', + 'id_property is required!' => 'id_property ist erforderlich!', + 'in %s' => 'in %s', + 'in the last %d minutes' => 'in den letzten %d Minuten', + 'manage hotel amenities.' => 'Hotelausstattung verwalten.', + 'minute (0-59)' => 'Minute (0-59)', + 'month (1 - 12)' => 'Monat (1 - 12)', + 'of' => 'von', + 'on %s' => 'am %s', + 'on day %s of the month' => 'am %s. Tag des Monats', + 'on the %s of the month' => 'am %s des Monats', + 'page.' => 'Seite.', + 'policies are not valid in %s' => 'Bedingungen sind ungültig in %s', + 'records per page' => 'Einträge pro Seite', + 'rooms' => 'Zimmer', + 'tab.' => 'Registerkarte.', + 'the Cron Task Manager module (qlocrontaskmanager) is not present, so the sitemaps are not regenerated automatically. Add the module to turn on the automatic generation.' => 'das Modul Cron Task Manager (qlocrontaskmanager) ist nicht vorhanden, daher werden die Sitemaps nicht automatisch neu erstellt. Fügen Sie das Modul hinzu, um die automatische Erstellung zu aktivieren.', + 'the Cron Task Manager module is disabled, so the sitemaps are not regenerated automatically.' => 'das Modul Cron Task Manager ist deaktiviert, daher werden die Sitemaps nicht automatisch neu erstellt.', + 'the Cron Task Manager module is not installed, so the sitemaps are not regenerated automatically.' => 'das Modul Cron Task Manager ist nicht installiert, daher werden die Sitemaps nicht automatisch neu erstellt.', + 'to' => 'bis', + 'to enable this navigation link.' => 'um diesen Navigationslink zu aktivieren.', + 'to turn on the automatic generation.' => 'um die automatische Erstellung zu aktivieren.', + 'total records' => 'Einträge insgesamt', + 'view details' => 'Details anzeigen', + 'weekdays' => 'Wochentage', + 'weekends' => 'Wochenenden', +); diff --git a/docker/translations-de-tabs.php b/docker/translations-de-tabs.php new file mode 100644 index 000000000..a8b77493d --- /dev/null +++ b/docker/translations-de-tabs.php @@ -0,0 +1,39 @@ + name) for entries the language pack leaves + * in English. Applied by docker/apply-translations.php (only replaces English names). + */ +return array( + 'AdminHotelReservationSystemManagement' => 'Hotelverwaltung', + 'AdminHotelRoomsBooking' => 'Zimmer buchen', + 'AdminAddHotel' => 'Hotel verwalten', + 'AdminHotelPropertyTypes' => 'Unterkunftsarten', + 'AdminHotelAmenities' => 'Ausstattung', + 'AdminOrderRefundRules' => 'Stornoregeln', + 'AdminOrderRefundRequests' => 'Erstattungsanträge', + 'AdminHotelConfigurationSetting' => 'Einstellungen', + 'AdminHotelGeneralSettings' => 'Allgemeine Hoteleinstellungen', + 'AdminHotelFeaturePricesSettings' => 'Preisregeln', + 'AdminHotelHeaderImage' => 'Titelbilder', + 'AdminBookingDocument' => 'Buchungsdokumente', + 'AdminHotelImageCategory' => 'Bildkategorien', + 'AdminRoomStatuses' => 'Zimmerstatus', + 'AdminHotelRoomModuleSetting' => 'Zimmeranzeige auf der Startseite', + 'AdminAboutHotelBlockSetting' => 'Hotelbeschreibung', + 'AdminFeaturesModuleSetting' => 'Ausstattung auf der Startseite', + 'AdminTestimonialsModuleSetting' => 'Gästestimmen', + 'AdminParentHotelReview' => 'Hotelbewertungen', + 'AdminHotelReviewHotelReview' => 'Bewertungen', + 'AdminHotelReviewCategory' => 'Einstellungen', + 'AdminFooterPaymentBlockSetting' => 'Zahlungsarten im Fußbereich', + 'AdminCustomNavigationLinkSetting' => 'Navigationslinks', + 'AdminDashgoals' => 'Ziele', + 'AdminCronTaskManager' => 'Zeitgesteuerte Aufgaben', + 'AdminCronTaskLogs' => 'Protokoll zeitgesteuerter Aufgaben', + 'AdminQloappsChannelManagerConnector' => 'Channel Manager', + 'AdminGoogleHotelParent' => 'Google Hotel', + 'AdminGoogleHotelConfig' => 'Einstellungen', + 'AdminGoogleHotelLogs' => 'API-Protokoll', + 'AdminModulesCatalog' => 'Modulkatalog', + 'AdminNewsletter' => 'Einstellungen', +);