Projects
Kolab:16:Enterprise
kolab-hkccp
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 6
View file
kolab-hkccp.spec
Changed
@@ -3,7 +3,7 @@ %endif Name: kolab-hkccp -Version: 0.7.18.1 +Version: 0.7.18.2 Release: 1%{?dist} Summary: Hosted Kolab Customer Control Panel License: AGPLv3+
View file
kolab-hkccp-0.7.18.1.tar.gz/lib/Kolab/Hosted/Controller/Auth2F.php -> kolab-hkccp-0.7.18.2.tar.gz/lib/Kolab/Hosted/Controller/Auth2F.php
Changed
@@ -197,13 +197,27 @@ } /** + * Remove all configured 2FA methods for the current user + * + * @return boolean True on success, False otherwise + */ + public function remove_factors() + { + if ($this->username && ($storage = $this->get_storage($this->username))) { + return $storage->remove_all_factors(); + } + + return false; + } + + /** * Load driver class for the given authentication factor * * @param string $factor Factor identifier (<method>:<id>) * * @return Kolab2FA\Driver\Base */ - public function get_driver($factor) + protected function get_driver($factor) { list($method) = explode(':', $factor, 2); @@ -236,7 +250,7 @@ /** * Getter for a storage instance singleton */ - public function get_storage($for = null) + protected function get_storage($for = null) { if (!isset($this->storage) || (!empty($for) && $this->storage->username !== $for)) { $config = $this->config->get('2fa', array());
View file
kolab-hkccp-0.7.18.1.tar.gz/lib/Kolab/Hosted/Controller/HostingController.php -> kolab-hkccp-0.7.18.2.tar.gz/lib/Kolab/Hosted/Controller/HostingController.php
Changed
@@ -278,6 +278,9 @@ if ($this->route[0] == 'dashboard') { $subscriptions = null; } + else { + $is_2fa = $kolabuser->is_2fa(); + } $success = $kolabuser->update($userdata, array(), null, $subscriptions, $errors); } @@ -318,6 +321,12 @@ $this->output->add_message(T('account.updatedinvoices', array('no' => join(', #', (array)$updated))), 'success'); } } + + // Remove all 2FA config when the subscription has been disabled + if (!empty($is_2fa) && !$kolabuser->is_2fa()) { + $auth2f = new Auth2F($this->session, $this->output, $kolabuser->email); + $auth2f->remove_factors(); + } } else { throw new \Exception('Failed to save KolabUser');
View file
kolab-hkccp-0.7.18.1.tar.gz/lib/Kolab/Hosted/Model/Account.php -> kolab-hkccp-0.7.18.2.tar.gz/lib/Kolab/Hosted/Model/Account.php
Changed
@@ -1101,19 +1101,35 @@ // check for subscriptions modified since the last invoice if (!$changed) { - $changed = $db->fetchColumn("SELECT COUNT(*)" + // we will compare subscription change date with creation date of the last invoice + // and change date of subscriptions on that invoice + $last_changed_sub = new \DateTime($db->fetchColumn("SELECT MAX(s.changed)" + . " FROM subscriptions s" + . " JOIN invoiceitems ii ON (ii.subscription = s.ID)" + . " WHERE ii.invoice = ?", + array($last_invoice->ID), 0)); + + $last_changed = $last_invoice->invoicedate; + if ($last_changed_sub > $last_changed) { + $last_changed = $last_changed_sub; + } + + // count changed subscriptions, ignore these with no price change + $changed = $db->fetchColumn("SELECT COUNT(s.ID)" . " FROM subscriptions s" . " JOIN kolabusers u ON (s.UUID = u.UUID)" - // we need to compare also with creation date of the last invoice - // because disabled subscriptions aren't included in the subquery - . " WHERE u.account = ? AND s.changed > ? AND s.changed > (" - . "SELECT MAX(ss.changed)" - . " FROM subscriptions ss" - . " JOIN invoiceitems ii ON (ii.subscription = ss.ID)" + . " RIGHT JOIN (SELECT sub.*" + . " FROM subscriptions sub" + . " JOIN invoiceitems ii ON (ii.subscription = sub.ID)" . " WHERE ii.invoice = ?" + . " ) ss ON (s.UUID = ss.UUID AND s.name = ss.name)" + . " WHERE u.account = ? AND s.changed > ? AND (" + . "(s.price <> ss.price)" + . " OR (s.price <> 0 AND ss.price IS NULL)" + . " OR (s.price IS NULL AND ss.price <> 0)" + . " OR (s.setup <> 0 AND ss.setup IS NULL)" . ")", - array($this->_key, $last_invoice->invoicedate->format(self::DATETIME_FORMAT), $last_invoice->ID), - 0); + array($last_invoice->ID, $this->_key, $last_changed->format(self::DATETIME_FORMAT)), 0); } } // no invoice - create initial invoice for new account?
View file
kolab-hkccp-0.7.18.1.tar.gz/lib/Kolab/Hosted/Model/KolabUser.php -> kolab-hkccp-0.7.18.2.tar.gz/lib/Kolab/Hosted/Model/KolabUser.php
Changed
@@ -176,6 +176,33 @@ } /** + * Determine whether this user has 2FA enabled + * + * @return boolean + */ + public function is_2fa() + { + $config = Config::get_instance(); + $role = $config->get('2fa.role'); + + if ($role && !empty($this->_ldapdata['nsroledn'])) { + if (strpos($role, '$root_dn') !== false) { + list(, $domain) = explode('@', $this->email); + $api = API\Client::get_user_instance(); + $api->select_domain($domain); + + $role = str_replace('$root_dn', $api->domain_root_dn(), $role); + } + + if (in_array($role, (array) $this->_ldapdata['nsroledn'])) { + return true; + } + } + + return false; + } + + /** * Validate the given data * * @param array Hash array with key => value pairs
View file
kolab-hkccp-0.7.18.1.tar.gz/lib/ext/Kolab2FA/Storage/HKCCP.php -> kolab-hkccp-0.7.18.2.tar.gz/lib/ext/Kolab2FA/Storage/HKCCP.php
Changed
@@ -71,6 +71,9 @@ { // $this->log(LOG_DEBUG, 'write() ' . @json_encode($value)); + // TODO: Not implemented + return false; + $factors = $this->get_factors(); $factors[$key] = $this->cache[$key] = $value; @@ -128,6 +131,17 @@ $this->cache = array(); } + public function remove_all_factors() + { + $this->cache = array(); + + $prefs = array(); + $prefs[$this->key2property('blob')] = null; + $prefs[$this->key2property('factors')] = null; + + return $this->username ? $this->save_prefs($prefs) : false; + } + /** * */ @@ -170,15 +184,16 @@ */ private function save_prefs($prefs) { -// TODO -return false; - $dbh = $this->get_dbh(); - $old_prefs = $this->get_prefs(); - - $prefs = serialize($prefs); + if ($old_prefs = $this->get_prefs()) { + $dbh = $this->get_dbh(); + $prefs = array_merge($old_prefs, $prefs); + } + else { + return false; + } - return $dbh->update('users', - array('preferences' => $prefs), + return (bool) $dbh->update('users', + array('preferences' => serialize($prefs)), array('username' => strtolower($this->username)) ); }
View file
kolab-hkccp-0.7.18.1.tar.gz/localization/da.php -> kolab-hkccp-0.7.18.2.tar.gz/localization/da.php
Changed
@@ -28,6 +28,10 @@ $texts['error.invalidrequest'] = 'Ugyldig forespørgsel! Gå venligst tilbage til forrige side og forsøg igen.'; $texts['error.querytooshort'] = 'Tekststrengen i søgningen er for kort. Indtast venligst 4 tegn som minimum.'; +// maintenance page +$texts['maintenance.title'] = 'Service Update'; +$texts['maintenance.message'] = 'The team is currently working on the {{sitename}} system.\nCreation of new users and accounts administration as well as payment of invoices are unavailable at the moment.\nEverything should be back to normal soon.\nWe apologize for any inconvenience.'; + // start page $texts['index.title'] = 'Velkommen til {{sitename}}.'; $texts['index.content'] = ''; @@ -41,7 +45,7 @@ $texts['login.invalid'] = 'Den angivne e-postadresse og adgangskode matcher ikke'; $texts['login.unconfirmed'] = 'Denne konto er endnu ikke aktiv. Klik venligst på henvisningen for bekræftelse som vi sendte til dig per e-post'; $texts['login.forgotpassword'] = 'Glemt din adgangskode?'; -$texts['login.unknown'] = 'This is not {{sitename}} email address. Please use an email address registered with us to initiate the password reset procedure.'; +$texts['login.unknown'] = 'This is not a {{sitename}} email address. Please use an email address registered with us to initiate the password reset procedure.'; // forgot password pages $texts['login.forgot.title'] = 'Glemt din adgangskode?'; @@ -106,6 +110,7 @@ $texts['user.c'] = 'Land'; $texts['user.c.description'] = 'Required for purposes of VAT accounting.'; $texts['user.postalcode'] = 'Postnummer'; +$texts['user.sharing_domain'] = 'Sharing Domain'; $texts['user.street'] = 'Vejnavn'; $texts['user.title'] = 'Titel'; $texts['user.mobile'] = 'Mobil'; @@ -142,10 +147,16 @@ "; $texts['signup.quota'] = 'Grænse på lagerplads {{value}}'; $texts['signup.subscriptions'] = 'Abonnementer'; + +$texts['signup.admin-user'] = 'Administrator'; +$texts['signup.kolab'] = 'User Account {{value}}'; +$texts['signup.domain'] = 'Domain {{value}}'; +$texts['signup.domain-admin'] = 'Domain Administrator {{value}}'; + $texts['signup.useraccount'] = 'Hostet bruger {{value}}'; $texts['signup.domainuser'] = 'Brugerkonto {{value}}'; $texts['signup.customdomain'] = 'Domænenavn {{value}}'; -$texts['signup.customdomain.description'] = "Your own domain to set up email hosting for"; +$texts['signup.customdomain.description'] = "e.g. yourbusiness.com. Other domains can be added to your account later."; $texts['signup.xmpp'] = 'XMPP/Jabber'; $texts['signup.xmpp.description'] = 'Turns your {{sitename}} email address into a Jabber account'; $texts['signup.activesync'] = 'Mobilsynkronisering'; @@ -176,6 +187,7 @@ $texts['signup.passwordsdontmatch'] = 'De angive adgangskoder stemmer ikke overens'; $texts['signup.userexists'] = 'Denne e-mailadresse er ikke tilgængelig'; $texts['signup.domaintaken'] = 'Dette domænenavn er ikke tilgængeligt på {{sitename}}'; +$texts['signup.domainprefixforbidden'] = 'Domain name with www. prefix is not allowed'; $texts['signup.domainnotregistered'] = 'Dette domæne er endnu ikke registreret eller aktivt. Læs venligst OSS-sektionen, om hvordan man registrerer et domæne først.'; $texts['signup.successconfirm'] = 'Oprettelsen af din konto er blevet gennemført. Før du kan logge ind, så kræves der at den bliver bekræftet.'; $texts['signup.successactive'] = 'Oprettelsen af din konto er blevet gennemført. Du kan logge ind med {{email}} og din adgangskode.'; @@ -336,6 +348,7 @@ $texts['billing.paymentfootnote.saferpay'] = 'Your credit card information will be securely stored for recurring payments.'; $texts['billing.paymentfootnote.paypal'] = "You'll be redirected to the PayPal website where you can authorize payment for this invoice."; $texts['billing.paymentfootnote.bitpay'] = "You'll be redirected to the BitPay website where you'll find instructions regarding the Bitcoin payment for this invoice."; +$texts['billing.paymentfootnote.stripe'] = "Your credit card information will be securely processed by the Stripe.com payment service. <noscript>This requires JavaScript enabled in your browser!</noscript>"; $texts['billing.validationerror'] = 'The payment form contains invalid values'; $texts['billing.paymenterror'] = 'Betalingsfejl: {{reason}}'; $texts['billing.paymentsuccess'] = 'Betalingen blev gennemført'; @@ -375,7 +388,7 @@ $texts['invoice.outstandingdebits'] = 'Outstanding amounts from previous invoice(s)'; $texts['invoice.remainingcredits'] = 'Remaining refunds from previous invoice(s)'; $texts['invoice.creditnextinvoice'] = 'Credit for next invoice'; -$texts['invoice.paymentpostponed'] = ' The payment has been postponed for next the invoice, because the amount to be paid is too small.'; +$texts['invoice.paymentpostponed'] = ' The payment has been postponed for the next invoice, because the amount to be paid is too small.'; $texts['invoice.transaction'] = 'Transaction No.'; $texts['invoice.account'] = 'Kundenr.'; $texts['invoice.bottomtext'] = "Many Thanks! It's a pleasure to do business with you. Please pay the total amount online using our Dashboard."; @@ -424,36 +437,46 @@ "; $texts['invoice.reminder.subject.1'] = 'Your invoice #{{no}} for {{sitename}} is overdue'; -$texts['invoice.reminder.body.1'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.1'] = "Dear {{sitename}} user, -We would like to inform you that you have overdue invoices for your {{sitename}} account '{{email}}' which need your attention. +Please allow us to remind you there is an open invoice (#{{no}}) for your account '{{email}}' seeking your attention that has been due for some time now. +To settle the outstanding amount, please go to {{url}} and proceed with the electronic payment right on that page. -Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page. +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! Sincerely, Your {{sitename}} Team "; $texts['invoice.reminder.subject.2'] = 'Second Reminder: Your invoice #{{no}} for {{sitename}} is overdue'; -$texts['invoice.reminder.body.2'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.2'] = "Dear {{sitename}} user, -We have to inform you that you have overdue invoices for your {{sitename}} account '{{email}}' which seek your immediate attention. +We have not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. -Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page right now. -This is the second reminder. +Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page right away. + +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! Sincerely, Your {{sitename}} Team "; $texts['invoice.reminder.subject.3'] = 'Third Reminder: Your invoice #{{no}} for {{sitename}} is overdue'; -$texts['invoice.reminder.body.3'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.3'] = "Dear {{sitename}} user, -We regret that we have to inform you again that you have overdue invoices for your {{sitename}} account '{{email}}' which seek your immediate attention. -This is already the third reminder. +We have still not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. +This invoice seeks your *immediate* attention. Please note this is the final reminder issued by our system. Please open the invoice #{{no}} right now at {{url}} and proceed with the electronic payment right on that page immediately. +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! + Sincerely, Your {{sitename}} Team "; @@ -470,6 +493,7 @@ $texts['payment.invalidexp'] = 'Ugyldig udløbsdato'; $texts['payment.invalidcvc'] = 'Ugyldig CVC-kode'; $texts['payment.billingagreement'] = 'Betalingsaftale'; +$texts['payment.recurringpayments'] = 'Recurring payments'; $texts['payment.billingagreementinfo'] = 'Registrér en betalingsaftale, der tillader at vi trækker fra din konto med gentagne faktureringer.'; $texts['payment.billingagreementstatement'] = 'Gentagne betalinger for onlinetjenester på {{sitename}}'; $texts['payment.awaitingconfirmation'] = 'Afventer bekræftelse for betaling. Tjek venligst igen på et senere tidspunkt.'; @@ -480,7 +504,7 @@ $texts['hosting.users'] = 'Brugerkonti'; $texts['hosting.nousers'] = 'No user accounts have been registered yet'; -$texts['hosting.updatesuccess'] = 'Succesfully saved changes'; +$texts['hosting.updatesuccess'] = 'Successfully saved changes'; $texts['hosting.savingerror'] = 'An error occurred while saving'; $texts['hosting.costswarning'] = 'Changes to subscriptions may result in increased costs and will trigger new invoices. Please note that this will also extend the current subscription period. The already paid amount will be carried forward and show up on the new invoice as pro-rata refund.'; $texts['hosting.addcostswarning'] = 'Adding a new user account will result in increased costs and trigger new invoices. Please note that this will also extend the current subscription period. The already paid amount will be carried forward and show up on the new invoice as pro-rata refund.'; @@ -514,7 +538,7 @@ When this is done press the button below to start the verification.</p>"; $texts['hosting.domain.dnstitle'] = 'DNS Settings for {{domain}}'; -$texts['hosting.domain.dnsbody'] = "<p>In order to let {{sitename}} handle the email traffic for your domain you need to adjust the DNS settings, more precisely the MX entries, accordingly.</p><p>Edit your domain's zone file and replace existing MX entries with the following values:</p>"; +$texts['hosting.domain.dnsbody'] = "<p>In order to let {{sitename}} receive email traffic for your domain you need to adjust the DNS settings, more precisely the MX entries, accordingly.</p><p>Edit your domain's zone file and replace existing MX entries with the following values:</p>"; $texts['hosting.domain.dnsfooter'] = '<p class="hint">If you don\'t know how to set DNS entries for your domain, please contact the registration service where you registered the domain or your web hosting provider.</p>'; $texts['user.uid'] = 'UID';
View file
kolab-hkccp-0.7.18.1.tar.gz/localization/de.php -> kolab-hkccp-0.7.18.2.tar.gz/localization/de.php
Changed
@@ -28,6 +28,10 @@ $texts['error.invalidrequest'] = 'Ungültige Anfrage! Bitte gehen Sie zurück zur vorherigen Seite und versuchen Sie es erneut.'; $texts['error.querytooshort'] = 'Der Suchbegriff ist zu kurz. Bitte geben Sie mindestens 4 Zeichen ein.'; +// maintenance page +$texts['maintenance.title'] = 'Service Update'; +$texts['maintenance.message'] = 'The team is currently working on the {{sitename}} system.\nCreation of new users and accounts administration as well as payment of invoices are unavailable at the moment.\nEverything should be back to normal soon.\nWe apologize for any inconvenience.'; + // start page $texts['index.title'] = 'Willkommen bei {{sitename}}.'; $texts['index.content'] = ''; @@ -41,7 +45,7 @@ $texts['login.invalid'] = 'Die angegebene E-Mail-Adresse und das Passwort stimmen nicht überein'; $texts['login.unconfirmed'] = 'Dieses Benutzerkonto ist noch nicht aktiv. Bitte öffnen Sie den Bestätigungslink, den wir an ihre E-Mail-Adresse gesendet haben'; $texts['login.forgotpassword'] = 'Haben Sie ihr Passwort vergessen?'; -$texts['login.unknown'] = 'Dies ist keine {{sitename}} E-Mail-Adresse. Bitte nutzen Sie die bei uns registrierte E-Mail-Adresse, um das Zurücksetzen des Passworts zu veranlassen.'; +$texts['login.unknown'] = 'This is not a {{sitename}} email address. Please use an email address registered with us to initiate the password reset procedure.'; // forgot password pages $texts['login.forgot.title'] = 'Haben Sie ihr Passwort vergessen?'; @@ -105,6 +109,7 @@ $texts['user.c'] = 'Land'; $texts['user.c.description'] = 'Wird für die Mehrwertsteuerberechnung benötigt.'; $texts['user.postalcode'] = 'Postleitzahl'; +$texts['user.sharing_domain'] = 'Sharing Domain'; $texts['user.street'] = 'Straße'; $texts['user.title'] = 'Titel'; $texts['user.mobile'] = 'Mobiltelefon'; @@ -143,10 +148,16 @@ "; $texts['signup.quota'] = 'Speicherplatzlimit {{value}}'; $texts['signup.subscriptions'] = 'Abonnements'; + +$texts['signup.admin-user'] = 'Administrator'; +$texts['signup.kolab'] = 'User Account {{value}}'; +$texts['signup.domain'] = 'Domain {{value}}'; +$texts['signup.domain-admin'] = 'Domain Administrator {{value}}'; + $texts['signup.useraccount'] = 'Gehosteter Benutzer {{value}}'; $texts['signup.domainuser'] = 'Benutzerkonto {{value}}'; $texts['signup.customdomain'] = 'Domäne {{value}}'; -$texts['signup.customdomain.description'] = "Ihre eigene Domäne, für die E-Mail-Hosting eingerichtet werden soll"; +$texts['signup.customdomain.description'] = "e.g. yourbusiness.com. Other domains can be added to your account later."; $texts['signup.xmpp'] = 'XMPP/Jabber'; $texts['signup.xmpp.description'] = 'Verwandelt ihre {{sitename}} E-Mail-Adresse in ein Jabber-Konto'; $texts['signup.activesync'] = 'Mobile Synchronisierung'; @@ -177,6 +188,7 @@ $texts['signup.passwordsdontmatch'] = 'Die eingegebenen Passwörter stimmen nicht überein'; $texts['signup.userexists'] = 'Diese E-Mail-Adresse ist nicht verfügbar'; $texts['signup.domaintaken'] = 'Diese Domäne ist nicht verfügbar bei {{sitename}}'; +$texts['signup.domainprefixforbidden'] = 'Domain name with www. prefix is not allowed'; $texts['signup.domainnotregistered'] = 'Diese Domäne ist noch nicht registriert oder noch nicht aktiv. Bitte lesen Sie die FAQ um zu erfahren, wie Sie zuerst eine Domäne registrieren.'; $texts['signup.successconfirm'] = 'Ihr Benutzerkonto wurde erfolgreich angelegt. Bevor Sie sich anmelden können, müssen sie es bestätigen.'; $texts['signup.successactive'] = 'Ihr Benutzerkonto wurde erfolgreich angelegt. Sie können sich jetzt mit {{email}} und ihrem Passwort anmelden.'; @@ -340,6 +352,7 @@ $texts['billing.paymentfootnote.saferpay'] = 'Ihre Kreditkarteninformationen werden sicher für wiederkehrende Zahkungen gespeichert.'; $texts['billing.paymentfootnote.paypal'] = "Sie werden auf die PayPal Webseite weitergeleitet, wo Sie die Zahlung für diese Rechnung autorisieren können."; $texts['billing.paymentfootnote.bitpay'] = "Sie werden auf die BitPay Webseite weitergeleitet, wo sie Informationen zur Zahlung dieser Rechnung mit Bitcoin finden."; +$texts['billing.paymentfootnote.stripe'] = "Your credit card information will be securely processed by the Stripe.com payment service. <noscript>This requires JavaScript enabled in your browser!</noscript>"; $texts['billing.validationerror'] = 'Das Zahlungsformular enthält ungültige Werte'; $texts['billing.paymenterror'] = 'Fehler bei der Zahlung: {{reason}}'; $texts['billing.paymentsuccess'] = 'Zahlung erfolgreich abgeschlossen'; @@ -379,7 +392,7 @@ $texts['invoice.outstandingdebits'] = 'Offene Beträge aus früheren Rechnungen'; $texts['invoice.remainingcredits'] = 'Restliche Erstattungen aus früheren Rechnungen'; $texts['invoice.creditnextinvoice'] = 'Guthaben für nächste Rechnung'; -$texts['invoice.paymentpostponed'] = 'Die Zahlung wurde auf die nächste Rechnung vertagt, da der zu zahlende Betrag zu gering ist.'; +$texts['invoice.paymentpostponed'] = ' The payment has been postponed for the next invoice, because the amount to be paid is too small.'; $texts['invoice.transaction'] = 'Zahlungsnr.'; $texts['invoice.account'] = 'Kundennr.'; $texts['invoice.bottomtext'] = "Vielen Dank! Es ist uns ein Vergnügen, mit Ihnen Geschäfte zu machen. Bitte überweisen Sie den Rechnungsbetrag online in unserem Dashboard."; @@ -427,36 +440,46 @@ "; $texts['invoice.reminder.subject.1'] = 'Ihre Rechnung Nr. {{no}} für {{sitename}} is überfällig'; -$texts['invoice.reminder.body.1'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.1'] = "Dear {{sitename}} user, + +Please allow us to remind you there is an open invoice (#{{no}}) for your account '{{email}}' seeking your attention that has been due for some time now. +To settle the outstanding amount, please go to {{url}} and proceed with the electronic payment right on that page. -We would like to inform you that you have overdue invoices for your {{sitename}} account '{{email}}' which need your attention. +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. -Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page. +Thank you for your confidence in choosing {{sitename}}! Sincerely, Your {{sitename}} Team "; $texts['invoice.reminder.subject.2'] = 'Zweite Erinnerung: Ihre Rechnung #{{no}} für {{sitename}} ist überfällig'; -$texts['invoice.reminder.body.2'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.2'] = "Dear {{sitename}} user, -We have to inform you that you have overdue invoices for your {{sitename}} account '{{email}}' which seek your immediate attention. +We have not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. -Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page right now. -This is the second reminder. +Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page right away. + +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! Sincerely, Your {{sitename}} Team "; $texts['invoice.reminder.subject.3'] = 'Dritte Erinnerung: Ihre Rechnung #{{no}} für {{sitename}} ist überfällig'; -$texts['invoice.reminder.body.3'] = "Dear {{sitename}} user +$texts['invoice.reminder.body.3'] = "Dear {{sitename}} user, -We regret that we have to inform you again that you have overdue invoices for your {{sitename}} account '{{email}}' which seek your immediate attention. -This is already the third reminder. +We have still not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. +This invoice seeks your *immediate* attention. Please note this is the final reminder issued by our system. Please open the invoice #{{no}} right now at {{url}} and proceed with the electronic payment right on that page immediately. +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! + Sincerely, Your {{sitename}} Team "; @@ -473,6 +496,7 @@ $texts['payment.invalidexp'] = 'Ungültiges Ablaufdatum'; $texts['payment.invalidcvc'] = 'Ungültige Prüfziffer'; $texts['payment.billingagreement'] = 'Zahlungsvereinbarung'; +$texts['payment.recurringpayments'] = 'Recurring payments'; $texts['payment.billingagreementinfo'] = 'Register a billing agreement that allows us to charge your Benutzerkonto for recurring invoices.'; $texts['payment.billingagreementstatement'] = 'Wiederkehrende Zahlungen für {{sitename}} Online-Dienste.'; $texts['payment.awaitingconfirmation'] = 'Warten auf Zahlungsbestätigung. Bitte sehen Sie später noch einmal nach.'; @@ -483,7 +507,7 @@ $texts['hosting.users'] = 'Benutzerkonten'; $texts['hosting.nousers'] = 'Es wurden noch keine Benutzerkonten registriert'; -$texts['hosting.updatesuccess'] = 'Änderungen erfolgreich gespeichert'; +$texts['hosting.updatesuccess'] = 'Successfully saved changes'; $texts['hosting.savingerror'] = 'Beim Speichern ist ein Fehler aufgetreten'; $texts['hosting.costswarning'] = 'Änderungen an den Abonnements können höhere Kosten verursachen und neue Rechnungen bewirken. Bitte beachten Sie, dass dadurch auch der aktuelle Rechnungszeitraum verlängert wird. Bereits gezahlte Beträge werden dabei übernommen und Ihnen anteilig auf der Rechnung gutgeschrieben.'; $texts['hosting.addcostswarning'] = 'Das Hinzufügen eines Nutzers verursacht neue Kosten und bewirkt eine neue Rechnungen. Bitte beachten Sie, dass dadurch auch der aktuelle Rechnungszeitraum verlängert wird. Bereits gezahlte Beträge werden dabei übernommen und Ihnen anteilig auf der Rechnung gutgeschrieben.'; @@ -517,7 +541,7 @@ When this is done press the button below to start the verification.</p>"; $texts['hosting.domain.dnstitle'] = 'DNS-Einstellungen für {{domain}}'; -$texts['hosting.domain.dnsbody'] = "<p>In order to let {{sitename}} handle the E-Mail-Adresse traffic for your domain you need to adjust the DNS settings, more precisely the MX entries, accordingly.</p><p>Edit your domain's zone file and replace existing MX entries with the following values:</p>"; +$texts['hosting.domain.dnsbody'] = "<p>In order to let {{sitename}} receive email traffic for your domain you need to adjust the DNS settings, more precisely the MX entries, accordingly.</p><p>Edit your domain's zone file and replace existing MX entries with the following values:</p>"; $texts['hosting.domain.dnsfooter'] = '<p class="hint">If you don\'t know how to set DNS entries for your domain, please contact the registration service where you registered the domain or your web hosting provider.</p>'; $texts['user.uid'] = 'UID'; @@ -608,7 +632,7 @@ $texts['admin.mailing.subject'] = 'Betreff'; $texts['admin.mailing.body'] = 'Nachricht'; $texts['admin.mailing.sending'] = 'Sende Nachricht...'; -$texts['admin.mailing.sendconfirm'] = "Do you really want to send this email message to the matching {{sitename}} users?<br/><br/>Note: the sending process may take a while so don't leave the page."; +$texts['admin.mailing.sendconfirm'] = "Möchten Sie wirklich diese EMail Nachricht an die passenden {{sitename}} Benutzer senden?<br/><br/>Hinweis: der Sendeprozess kann eine Weile dauern, daher die Seite nicht verlassen."; $texts['admin.mailing.numaccounts'] = '{{count}} Nutzer'; $texts['admin.mailing.sendsuccess'] = 'Nachricht wurde erfolgreich an {{count}} übereinstimmende Nutzer in {{sent}} Übertragungen gesendet.'; $texts['admin.mailing.nousersmatch'] = 'Keine mit den Filterkriterien übereinstimmende Empfänger gefunden';
View file
kolab-hkccp-0.7.18.1.tar.gz/localization/fr.php -> kolab-hkccp-0.7.18.2.tar.gz/localization/fr.php
Changed
@@ -5,7 +5,7 @@ // basic words $texts['yes'] = 'oui'; $texts['no'] = 'non'; -$texts['close'] = 'fermer'; +$texts['close'] = 'Fermer'; // main navigation $texts['nav.login'] = 'Se connecter'; @@ -28,6 +28,10 @@ $texts['error.invalidrequest'] = 'Requête non valide ! Veuillez retourner à la page précédente et réessayer.'; $texts['error.querytooshort'] = 'La chaîne de caractères recherchée est trop courte. Veuillez entrer au minimum 4 caractères.'; +// maintenance page +$texts['maintenance.title'] = 'Service Update'; +$texts['maintenance.message'] = 'The team is currently working on the {{sitename}} system.\nCreation of new users and accounts administration as well as payment of invoices are unavailable at the moment.\nEverything should be back to normal soon.\nWe apologize for any inconvenience.'; + // start page $texts['index.title'] = 'Bienvenue sur {{sitename}}.'; $texts['index.content'] = ''; @@ -41,7 +45,7 @@ $texts['login.invalid'] = 'L\'adresse mail et le mot de passes donnés ne correspondent pas.'; $texts['login.unconfirmed'] = 'Ce compte n\'est pas encore actif. Veuillez cliquer sur le lien de confirmation que nous vous avons envoyé par mail.'; $texts['login.forgotpassword'] = 'Mot de passe oublié ?'; -$texts['login.unknown'] = 'Ceci n\'est pas une adresse mail {{sitename}}. Veuillez utiliser une adresse mail enregistrée auprès de nous afin d\'initialiser la procédure de réinitialisation de mot de passe.'; +$texts['login.unknown'] = 'This is not a {{sitename}} email address. Please use an email address registered with us to initiate the password reset procedure.'; // forgot password pages $texts['login.forgot.title'] = 'Mot de passe oublié ?'; @@ -105,6 +109,7 @@ $texts['user.c'] = 'Pays'; $texts['user.c.description'] = 'Nécessité pour la comptabilité TVA.'; $texts['user.postalcode'] = 'Code postal'; +$texts['user.sharing_domain'] = 'Sharing Domain'; $texts['user.street'] = 'Rue'; $texts['user.title'] = 'Titre'; $texts['user.mobile'] = 'Mobile'; @@ -144,10 +149,16 @@ "; $texts['signup.quota'] = 'Limite de stockage {{value}}'; $texts['signup.subscriptions'] = 'Inscriptions'; + +$texts['signup.admin-user'] = 'Administrator'; +$texts['signup.kolab'] = 'User Account {{value}}'; +$texts['signup.domain'] = 'Domain {{value}}'; +$texts['signup.domain-admin'] = 'Domain Administrator {{value}}'; + $texts['signup.useraccount'] = 'Compte utilisateur {{value}}'; $texts['signup.domainuser'] = 'Compte utilisateur {{value}}'; $texts['signup.customdomain'] = 'Nom de domaine {{value}}'; -$texts['signup.customdomain.description'] = "Votre propre domaine pour lequel vous voulez mettre en place l'hébergement de mail"; +$texts['signup.customdomain.description'] = "e.g. yourbusiness.com. Other domains can be added to your account later."; $texts['signup.xmpp'] = 'XMPP/Jabber'; $texts['signup.xmpp.description'] = 'Transforme votre adresse mail {{sitename}} en compte Jabber'; $texts['signup.activesync'] = 'Synchronisation mobile'; @@ -179,6 +190,7 @@ $texts['signup.passwordsdontmatch'] = 'Les mots de passes ne sont pas identiques'; $texts['signup.userexists'] = 'Cette adresse mail n\'est pas disponible'; $texts['signup.domaintaken'] = 'Ce nom de domaine n\'est pas disponible sur {{sitename}}'; +$texts['signup.domainprefixforbidden'] = 'Domain name with www. prefix is not allowed'; $texts['signup.domainnotregistered'] = 'Ce domaine n\'est pas enregistré ou actif pour le moment. Veuillez au préalable lire la FAQ pour savoir comment enregistrer un domaine.'; $texts['signup.successconfirm'] = 'Votre compte a bien été créé. Avant de pouvoir vous connecter, il doit d\'abord être confirmé.'; $texts['signup.successactive'] = 'Votre compte a bien été créé. Vous pouvez vous connecter avec {{email}} et votre mot de passe.'; @@ -339,6 +351,7 @@ $texts['billing.paymentfootnote.saferpay'] = 'Vos coordonnées de carte de crédit sera sauvegardée de manière sécurisée pour les paiements récurrents.'; $texts['billing.paymentfootnote.paypal'] = "Vous serez redirigé(e) vers le site PayPal où vous pourrez autoriser le paiement pour cette facture."; $texts['billing.paymentfootnote.bitpay'] = "Vous serez redirigé(e) sur la page web BitPay où vous trouverez des instructions concernant le paiement Bitcoin de cette facture."; +$texts['billing.paymentfootnote.stripe'] = "Your credit card information will be securely processed by the Stripe.com payment service. <noscript>This requires JavaScript enabled in your browser!</noscript>"; $texts['billing.validationerror'] = 'Le formulaire de paiement contient des valeurs non valides.'; $texts['billing.paymenterror'] = 'Erreur de paiement : {{reason}}'; $texts['billing.paymentsuccess'] = 'Paiement effectué avec succès'; @@ -379,7 +392,7 @@ $texts['invoice.outstandingdebits'] = 'Montants impayés de facture(s) précédente(s)'; $texts['invoice.remainingcredits'] = 'Remboursements restants de facture(s) précédente(s)'; $texts['invoice.creditnextinvoice'] = 'Crédit pour prochaine facture'; -$texts['invoice.paymentpostponed'] = 'Paiement reporté pour prochaine facture.'; +$texts['invoice.paymentpostponed'] = ' The payment has been postponed for the next invoice, because the amount to be paid is too small.'; $texts['invoice.transaction'] = 'N°. de transaction'; $texts['invoice.account'] = 'Numéro de client'; $texts['invoice.bottomtext'] = "Merci beaucoup ! C'est un plaisir de faire affaires avec vous. Veuillez régler le montant total en ligne à l'aide de notre tableau de bord."; @@ -430,37 +443,48 @@ "; $texts['invoice.reminder.subject.1'] = 'Le paiement de votre facture #{{no}} pour {{sitename}} est en retard'; -$texts['invoice.reminder.body.1'] = "Cher utilisateur de {{sitename}}, +$texts['invoice.reminder.body.1'] = "Dear {{sitename}} user, -Nous aimerons vous informer que vous avez des factures en retard pour votre compte {{sitename}} '{{email}}', qui demande votre attention. +Please allow us to remind you there is an open invoice (#{{no}}) for your account '{{email}}' seeking your attention that has been due for some time now. +To settle the outstanding amount, please go to {{url}} and proceed with the electronic payment right on that page. -Veuillez ouvrir la facture #{{no}} sous {{url}} et procéder au règlement électronique directement sur la page. +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. -Cordialement, -Votre équipe de {{sitename}} +Thank you for your confidence in choosing {{sitename}}! + +Sincerely, +Your {{sitename}} Team "; $texts['invoice.reminder.subject.2'] = 'Deuxième Rappel: Paiement de Votre facture #{{no}} pour {{sitename}} est dépassé'; -$texts['invoice.reminder.body.2'] = "Cher utilisateur de {{sitename}}, +$texts['invoice.reminder.body.2'] = "Dear {{sitename}} user, -Nous devons vous informer que vous avez des factures en retard pour votre compte {{sitename}} '{{email}}', qui demande votre attention immédiate. +We have not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. -Veuillez maintenant ouvrir la facture #{{no}} sous {{url}} et procéder au règlement électronique directement sur la page. -Ceci est le deuxième rappel. +Please open the invoice #{{no}} at {{url}} and proceed with the electronic payment right on that page right away. -Cordialement, -Votre équipe de {{sitename}} +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! + +Sincerely, +Your {{sitename}} Team "; $texts['invoice.reminder.subject.3'] = 'Troisième Rappel: Paiement de Votre facture #{{no}} pour {{sitename}} est dépassé'; -$texts['invoice.reminder.body.3'] = "Cher utilisateur de {{sitename}}, +$texts['invoice.reminder.body.3'] = "Dear {{sitename}} user, -Nous regrettons de vous informer à nouveau que vous avez des factures en retard pour votre compte {{sitename}} '{{email}}', qui demande votre attention immédiate. +We have still not been able to match a payment to your overdue invoice (#{{no}}) for your account '{{email}}'. +This invoice seeks your *immediate* attention. Please note this is the final reminder issued by our system. -Veuillez immédiatement ouvrir la facture #{{no}} sous {{url}} et procéder au règlement électronique directement sur la page. +Please open the invoice #{{no}} right now at {{url}} and proceed with the electronic payment right on that page immediately. -Cordialement, -Votre équipe de {{sitename}} +If you have already settled the invoice, or believe this reminder is otherwise in error, please contact us so we can ensure to continue providing you the premium service we aim for. + +Thank you for your confidence in choosing {{sitename}}! + +Sincerely, +Your {{sitename}} Team "; $texts['payment.invoiceitem'] = '{{sitename}} Numéro de facture {{invoiceno}}'; @@ -475,6 +499,7 @@ $texts['payment.invalidexp'] = 'Date d\'expiration non valide'; $texts['payment.invalidcvc'] = 'Cryptogramme visuel non valide'; $texts['payment.billingagreement'] = 'Conditions de facturation'; +$texts['payment.recurringpayments'] = 'Recurring payments'; $texts['payment.billingagreementinfo'] = 'Souscrire à un accord de prélèvement nous permettant de débiter votre compte pour des factures récurrentes.'; $texts['payment.billingagreementstatement'] = 'Paiements réguliers pour les services en ligne pour {{sitename}}'; $texts['payment.awaitingconfirmation'] = 'En attente de la confirmation du paiement. Veuillez vérifier à nouveau ultérieurement'; @@ -487,7 +512,7 @@ $texts['hosting.users'] = 'Comptes utilisateur'; $texts['hosting.nousers'] = 'Aucun compte utilisateur n\'a été enregistré jusqu\'à maintenant'; -$texts['hosting.updatesuccess'] = 'Changements enregistrés avec succès'; +$texts['hosting.updatesuccess'] = 'Successfully saved changes'; $texts['hosting.savingerror'] = 'Une erreur est survenue lors de l\'enregistrement'; $texts['hosting.costswarning'] = 'Des changements appliqués aux abonnements peuvent entraîner une augmentation des coûts et déclencheront de nouvelles factures. Veuillez aussi noter que ceux-ci s\'étendront la période d\'abonnement en cours. Le montant déjà payé sera ainsi reporté et affichera sur la nouvelle facture comme remboursement au prorata. '; $texts['hosting.addcostswarning'] = 'En ajoutant un nouvel compte d\'utilisateur entraînera une augmentation des coûts et déclencheront de nouvelles factures. Veuillez aussi noter que ceux-ci s\'étendront la période d\'abonnement en cours. Le montant déjà payé sera ainsi reporté et affichera sur la nouvelle facture comme remboursement au prorata. '; @@ -521,7 +546,7 @@ Quand ceci est terminé, appuyer sur le bouton ci-dessous pour commencer la vérification.</p>"; $texts['hosting.domain.dnstitle'] = 'Paramètres DNS pour {{domain}}'; -$texts['hosting.domain.dnsbody'] = "<p>Afin de laisser {{sitename}} gérer le traffic de mail pour votre domaine, vous devez ajuster les paramètres DNS en conséquence, plus précisément les entrées MX.</p><p>Éditez le fichier de zone de votre domaine et remplacez les entrées MX avec les valeurs suivantes :</p>"; +$texts['hosting.domain.dnsbody'] = "<p>In order to let {{sitename}} receive email traffic for your domain you need to adjust the DNS settings, more precisely the MX entries, accordingly.</p><p>Edit your domain's zone file and replace existing MX entries with the following values:</p>"; $texts['hosting.domain.dnsfooter'] = '<p class="hint">Si vous ne savez pas comment changer les entrées DNS pour votre domaine, veuillez contacter votre hébergeur web ou le service d\'enregistrement où vous avez enregistré le domaine.</p>'; $texts['user.uid'] = 'UID'; @@ -824,7 +849,7 @@ $texts['country.SE'] = 'Suède'; $texts['country.CH'] = 'Suisse'; $texts['country.SY'] = 'Syrie, République Arabe de'; -$texts['country.TW'] = 'Taïwan'; +$texts['country.TW'] = 'Taiwan'; $texts['country.TJ'] = 'Tadjikistan'; $texts['country.TZ'] = 'Tanzanie, République-Unie de'; $texts['country.TH'] = 'Thaïlande';
View file
kolab-hkccp-0.7.18.1.tar.gz/public_html/skins/default/js/hostedadmin.js -> kolab-hkccp-0.7.18.2.tar.gz/public_html/skins/default/js/hostedadmin.js
Changed
@@ -214,7 +214,7 @@ return; } - var n, disabled, opt, value, elem, i, + var n, disabled, opt, value, elem, i, inputs = [], opt_len = env.options.length; for (n in env.paymentplans) { @@ -223,52 +223,61 @@ .closest('.control-group')[(disabled?'addClass':'removeClass')]('disabled'); } + disabled = []; + for (i=0; i < opt_len; i++) { opt = env.options[i]; elem = $('#ff'+opt.name); value = elem.val(); + if (elem.is('input')) { + inputs.push(elem[0]); + } + // add option price to summary when: // - it is implicit (hidden) option or // - it is checked checkbox option or // - it is required option (Bug #2606) or // - it is text input and the value is non-empty - if (opt.price && (opt.implicit || opt.required || elem.is(':checked') || (elem.length > 0 && elem.get(0).type == 'text' && value != ''))) { + if ((opt.implicit || opt.required || elem.is(':checked') || (elem.length > 0 && elem.get(0).type == 'text' && value != ''))) { value = $.isNumeric(value) ? parseFloat(value) : 1; if (isNaN(value)) value = 1; if (opt.unit) value = Math.round(value / opt.unit); if (opt.free_units) value -= opt.free_units; - total += opt.price * value; + total += (opt.price || 0) * value; // add setup costs according to the chosen payment plan if (typeof opt.setup_price == 'object') setup += opt.setup_price[subscriptionplan] || 0; else if (typeof opt.setup_price == 'number') setup += opt.setup_price || 0; + + if (opt.disable && opt.disable.length > 0) { + disabled = disabled.concat(opt.disable); + } } + } - if (opt.disable && opt.disable.length > 0) { - if (elem.is(':checked')) { - // Disable the other elements listed in opt.disable - for (var x=0; x < opt.disable.length; x++) { - if ($('#ff'+opt.disable[x]).is(':checked')) { - $('#ff'+opt.disable[x]).attr('checked', false); - for (var _opt, y=0; y < opt_len; y++) { - _opt = env.options[y]; - if (_opt.price && (_opt.name == opt.disable[x]) && !(_opt.implicit)) - total -= _opt.price; - } - } - $('#ff'+opt.disable[x]).attr('disabled', true); - } - } else { - for (var x=0; x < opt.disable.length; x++) { - $('#ff'+opt.disable[x]).attr('disabled', false); + // remove dupes + disabled = $.grep(disabled, function(v, k) { + return $.inArray(v, disabled) === k; + }); + + // Disable/enable options depending on other options' disable flag + $(inputs).attr('disabled', false); + for (x=0; x<disabled.length; x++) { + if ($('#ff'+disabled[x]).is(':checked')) { + $('#ff'+disabled[x]).attr('checked', false); + for (var _opt, y=0; y < opt_len; y++) { + _opt = env.options[y]; + if (_opt.price && (_opt.name == disabled[x]) && !(_opt.implicit)) { + total -= _opt.price; } } } + $('#ff'+disabled[x]).attr('disabled', true); } var vat, invoice_total, total_orig = total;
View file
kolab-hkccp-0.7.18.1.tar.gz/public_html/skins/mykolab/localization/da.php -> kolab-hkccp-0.7.18.2.tar.gz/public_html/skins/mykolab/localization/da.php
Changed
@@ -105,34 +105,29 @@ Dit team fra MyKolab.com "; -$texts['signup.cancellationstatement'] = "Try the service risk-free for 14 days: Right of Withdrawal +$texts['signup.cancellationstatement'] = "Prøv tjenesten uden risiko i 14 dage: Retten til at tilbagetrække -You can try the service risk free for 14 days. If within this period you decide to discontinue using MyKolab.com, you can simply delete your account from the dashboard. For a full re-fund, please contact us at sales@mykolab.com. If you haven't yet paid and do not wish to try the service, just deleting your account in the dashboard will be sufficient. Group manager accounts need to contact technical support. Since we constantly look to improve our service, please also tell us why you decided to quit. Your opinion is very much appreciated. +Du kan prøve tjenesten risikofrit i 14 dage. Hvis du inden for denne periode beslutter dig for, at du ikke vil fortsætte brugen af MyKolab.com, så kan du slette din konto via instrumentbrættet. For at få en fuld tilbagebetaling, så kontakt os gennem sales@mykolab.com. Hvis du endnu ikke har betalt og ikke ønsker at prøve tjenesten, så vil det være tilstrækkeligt at slette din konto via instrumentbrættet. For gruppeadministrator-konti kræves der kontakt til teknisk support. Da vi konstant prøver at forbedre vores tjeneste, så fortæl os hvorfor du besluttede at stoppe. Din mening betyder meget for os. "; $texts['billing.banktransfer.content'] = ' -<p>Please transfer the indicated amount in Swiss Francs or the equivalent in your native currency to the following account: +<p>Overfør venligst det angivne beløb i schweizerfranc eller tilsvarende i din egen valuta til følgende konto: <table style="margin: 10px 20px; font-weight: bold"> - <tr><td width="30%">Account Name:</td><td>{{accountname}}</td></tr> - <tr><td>IBAN:</td><td>{{iban}}</td></tr> - <tr><td>Bank:</td><td>{{bankname}}</td></tr> - <tr><td>SWIFT/BIC:</td><td>{{swiftno}}</td></tr> - <tr><td>Note to Payee:</td><td><strong>MyKolab {{invoiceno}}</strong></td></tr> - <tr><td>Bank address:</td><td>{{bankaddress}}</td></tr> +<tr><td width="30%">Kontonavn:</td><td>{{accountname}}</td></tr> +<tr><td>IBAN:</td><td>{{iban}}</td></tr> +<tr><td>Bank:</td><td>{{bankname}}</td></tr> +<tr><td>SWIFT/BIC:</td><td>{{swiftno}}</td></tr> +<tr><td>Notits til modtager:</td><td><strong>MyKolab {{invoiceno}}</strong></td></tr> +<tr><td>Bankens adresse:</td><td>{{bankaddress}}</td></tr> </table> </p> +<p>og sørg for at sikre at formålet/emnet for betalingen er angivet til "Mykolab {{invoiceno}}".</p> -<p>and make sure to make the purpose/subject of the payment is set to "MyKolab {{invoiceno}}".</p> +<p>Bemærk venligst at Faktura-ID\'et (ligesom dit kunde-ID) er delvist tilfældigt og +at ingen af bankerne som indgår i processen kan knytte det til din e-mailadresse. +Så selv om bankerne vil vide at du overførte penge til os for MyKolab, så vil din identitet i tjenesten stadig være beskyttet.</p> -<p>Please note that the Invoice ID (just like your Customer ID) is semi-random and -cannot be mapped to your email address by any of the banks involved in the -process. So while the banks will know you transferred money for us for -MyKolab, your identity in the service will still be protected.</p> +<p>Når du har foretaget overførslen, så vil der sandsynligvis gå nogle få dage, før overførslen er gået igennem og vores personale har koblet den med fakturaen.</p> -<p>After making the transfer you\'ll likely have to wait a few days for the -transfer to go through and staff at our end to match it to the invoice.</p> - -<p>If you haven\'t seen the invoice status changing to "paid" within 14 days of -the transfer, please get in touch with us since then something seems to have -gone wrong and we will be happy to help you in resolving the situation.</p> +<p>Hvis du ikke inden for 14 dage registrerer at fakturastatus er ændret til "betalt", så tag venligst kontakt til os, da noget tilsyneladen er gået galt - og vi vil med glæde hjælpe dig med at løse problemet.</p> ';
View file
kolab-hkccp-0.7.18.1.tar.gz/public_html/skins/mykolab/localization/de.php -> kolab-hkccp-0.7.18.2.tar.gz/public_html/skins/mykolab/localization/de.php
Changed
@@ -4,13 +4,13 @@ $texts['nav.home'] = 'Startseite'; $texts['nav.features'] = 'Funktionen'; -$texts['nav.screenshots'] = 'Bilder'; -$texts['nav.faq'] = 'Fragen'; +$texts['nav.screenshots'] = 'Bildschirmfotos'; +$texts['nav.faq'] = 'F&A'; $texts['nav.support'] = 'Hilfe'; $texts['nav.settings'] = 'Einstellungen'; $texts['nav.webmail'] = 'Webmail'; -$texts['footer.content'] = 'MyKolab.com Dashboard von'; +$texts['footer.content'] = 'MyKolab.com-Übersciht von'; $texts['footer.contact'] = 'Kontakt'; $texts['footer.imprint'] = 'Impressum'; $texts['footer.legal'] = 'Rechtliches'; @@ -20,7 +20,7 @@ $texts['index.signupnow'] = 'Jetzt registrieren'; $texts['index.learnmore'] = 'Mehr erfahren'; -$texts['account.cancellationstatement'] = '<b>Wichtig:>/b> Sie könnnen diesen Service risikofrei für 14 Tage testen. Falls sie sich in dieser Zeit entscheiden {{sitename}} nicht mehr zu benutzen, löschen sie einfach ihren Account. Bitte kontaktieren sie uns unter href="https://mykolab.com/contact"> für eine volle Rückerstattung. Stellen sie sicher, dass sie ihre Rechnungsnummer und falls möglich ihre PayPal Transaktions ID angeben.Falls Sie nich nicht gezahlt haben und nicht wünschen den Service zu versuchen, löschen'; +$texts['account.cancellationstatement'] = '<b>Wichtig:>/b> Sie könnnen diesen Service risikofrei für 14 Tage testen. Falls sie sich in dieser Zeit entscheiden {{sitename}} nicht mehr zu benutzen, löschen sie einfach ihren Account. Bitte kontaktieren sie uns unter href="https://mykolab.com/contact"> für eine volle Rückerstattung. Stellen sie sicher, dass sie ihre Rechnungsnummer und falls möglich ihre PayPal Transaktions ID angeben. Falls Sie nich nicht gezahlt haben und nicht wünschen den Service zu versuchen, löschen'; $texts['user.username'] = 'Gewünschte E-Mail-Adresse'; @@ -29,7 +29,7 @@ $texts['signup.type.useraccount.description'] = '<p class="description">Dies ist ein einzelnes Konto für E-Mail und Groupware als gehosteten Dienst. Es ist mit einer Reihe generischer Domänen verfügbar und erlaubt Ihnen, mit anderen Nutzern des Systems zusammenzuarbeiten, indem Sie einander Zugriff auf Ihre Groupwware-Ordner geben. Wählen Sie dies, wenn Sie nach einem Ersatz for Gmail/Outlook.com suchen. Wenn Sie ihre eigene Domäne nutzen wollen, wählen Sie bitte einen Gruppenverwalterkonto.</p>'; $texts['signup.type.domainaccount.description'] = '<p class="description">Dies ist ein rein administratives Konto, das immer mit einer von Ihnen verwalteten Domäne verbunden ist. Es stellt Ihnen einen Benutzer admin@<ihre-domain> zur Verfügung, der selbst keinen Zugriff auf Groupware-Dienste hat und nur zur Verwaltung der Benutzerkonten innerhalb der Domäne genutzt wird und auch von verschiedenen Abteilungen ihrer Firma, beispielsweise der Buchhaltung und der Systemadministration, benutzt werden kann. Wenn dies ihre persönliche Domäne ist, würden Sie mit dem Gruppenverwalter ihr eigentliches Groupware-Konto erstellen. Sie können beliebig viele Nutzerkonten anlegen, die Kosten sind die identisch mit denen für Einzelkonten. Auf anfrage können wir Ihnen ggf. Mengenrabatt einräumen, bitte <a href="https://mykolab.com/contact">kontaktieren Sie uns</a>.</p>'; -$texts['signup.lite.description'] = 'MyKolab Lite accounts are fully functional email accounts which provide no groupware functionality. You will still have an addressbook in the webclient and be able to synchronize emails to your mobile phone. You can activate full groupware functionality by deactivating this option later in your account settings.'; +$texts['signup.lite.description'] = 'MyKolab Lite Accounts sind vollfunktionale Email-Accounts, welche ihnen keine Groupware Funktionalität bieten. Sie werden immernoch ein Adressbuch in ihrem Webclient besitzen und es wird Ihnen möglich sein Ihre Emails mit ihrem Smartphone zu synchronisieren. Sie können das vollfunktionale Groupware später aktivieren, indem sie diese Option in Ihren Einstellungen deaktivieren.'; $texts['signup.savingerror'] = 'Ein interner Server Fehler ist aufgetreten. Bitte nochmal versuchen. Bleibt das Problem weiterhin bestehen, bitte <a href="https://MyKolab.com/contact">unseren technischen Support kontaktieren</a>.'; $texts['hosting.savingerror'] = 'Ein Fehler ist beim Speichern aufgetreten. Bitte nochmal versuchen. Bleibt das Problem weiterhin bestehen, bitte <a href="https://MyKolab.com/contact">unseren technischen Support kontaktieren</a>.'; @@ -40,29 +40,9 @@ $texts['billing.displayname.bitpay'] = 'Bitcoin'; -$texts['signup.confirm.mailbody'] = "Dear user, +$texts['signup.confirm.mailbody'] = "Sehr geehter User, -Thanks a lot for signing up and welcome to {{sitename}}, your privacy protected groupware service! - -For details on how we protect your privacy and data, please see our Terms of Service (TOS) at https://mykolab.com/tos and our Privacy Policy https://mykolab.com/privacy - -As a final step, please activate your {{sitename}} subscription by following this link: - - {{url}} - -You will then be guided through the payment procedure and once completed, your account will be activated. - -Please note that you can only use your account after your payment has been processed. This also means that a login into the webmail will only be possible after a successful activation. - -To log in you will need the password you entered in the signup form and the username we will send you in a separate message shortly after your account has been confirmed. Your old e-mail address you entered during signup will not work as a username. - -We hope you will enjoy this service and thank you for the confidence you are placing in us. - -If you have questions, please see the FAQ at https://mykolab.com/faq and if you experience problems, please contact us at https://mykolab.com/contact - -With best regards, -Your MyKolab.com Team -"; +Vielen Dank für Ihre Anmeldung und willkommen bei {{sitename}}, Ihrem Privatspähre geschütztem Groupware-Service. Für Details, wie wir ihre Privatspähre und ihre Daten schützen"; $texts['signup.welcome.mailbody'] = "Dear {{sitename}} user,
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.