Bug 396 - Localize the Auth service (in German); including some fixes to make code...
authorRobert Kaiser <kairo@kairo.at>
Fri, 18 Nov 2016 17:08:06 +0000 (18:08 +0100)
committerRobert Kaiser <kairo@kairo.at>
Fri, 18 Nov 2016 17:08:06 +0000 (18:08 +0100)
app/authorize.php
app/authsystem.inc.php
app/authsystem.js
app/authutils.php-class
app/index.php
locale/de/LC_MESSAGES/kairo_auth.mo [new file with mode: 0644]
locale/de/LC_MESSAGES/kairo_auth.po [new file with mode: 0644]
locale/de/LC_MESSAGES/kairo_auth.po~ [new file with mode: 0644]
locale/en_US/LC_MESSAGES/kairo_auth.pot [new file with mode: 0644]
locale/l10n-finish [new file with mode: 0755]
locale/l10n-prepare [new file with mode: 0755]

index f06d8353dcdecc7617868581efb95933a3e6247e..744e4e010e352fb1473a081173b7a900bc2cbf27 100644 (file)
@@ -50,7 +50,7 @@ if (!count($errors)) {
     $user = array('id' => 0, 'email' => '');
   }
   if (is_null($session)) {
-    $errors[] = _('The session system is not working. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+    $errors[] = _('The session system is not working.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
   }
   elseif ($session['logged_in']) {
     // We are logged in, process authorization request.
@@ -73,11 +73,12 @@ if (!count($errors)) {
       $domain_name = parse_url($request->query['redirect_uri'], PHP_URL_HOST);
       if (!strlen($domain_name)) { $domain_name = $request->query['client_id']; }
       $form->appendElement('p', sprintf(_('Do you authorize %s to access %s?'), $domain_name, $request->query['scope']));
-      $submit = $form->appendInputSubmit(_('yes'));
-      $submit->setAttribute('name', 'authorized');
+      $authinput = $form->appendInputHidden('authorized', 'yes');
+      $authinput->setAttribute('id', 'isauthorized');
+      $submit = $form->appendInputSubmit(_('Yes'));
       $form->appendText(' ');
-      $submit = $form->appendInputSubmit(_('no'));
-      $submit->setAttribute('name', 'authorized');
+      $button = $form->appendButton(_('No'));
+      $button->setAttribute('id', 'cancelauth');
     }
     elseif (empty($_POST) && (@$request->query['scope'] == 'email')) {
       // Display an interstitial page for a login  when we have email scope (verified email for logging in).
@@ -85,8 +86,8 @@ if (!count($errors)) {
       if (!strlen($domain_name)) { $domain_name = $request->query['client_id']; }
       $para = $body->appendElement('p', sprintf(_('Sign in to %s using…'), $domain_name));
       $para->setAttribute('class', 'signinwelcome');
-      $form = $body->appendForm('', 'POST', 'loginauthform');
-      $form->setAttribute('id', 'loginauthform');
+      $form = $body->appendForm('', 'POST', 'authform');
+      $form->setAttribute('id', 'authform');
       $form->setAttribute('class', 'loginarea');
       $ulist = $form->appendElement('ul');
       $ulist->setAttribute('class', 'flat emaillist');
index 372c4db9c19b9c51afd220828a3ff9df4e5175dc..068fb2fadae62ed8fa6fa40b519f634d60a10880 100644 (file)
@@ -31,9 +31,16 @@ $db = new PDO($dbdata['dsn'], $dbdata['username'], $dbdata['password']);
 // Instantiate auth utils.
 $utils = new AuthUtils($settings, $db);
 
+// This is an array of locale tags in browser style mapping to unix system locale codes to use with gettext.
+$supported_locales = array(
+    'en-US' => 'en_US',
+    'de' => 'de_DE',
+);
+
 $textdomain = 'kairo_auth';
-$textlocale = $utils->negotiateLocale(array('en', 'de'));
-putenv('LC_ALL='.$textlocale);
+$textlocale = $utils->negotiateLocale(array_keys($supported_locales));
+putenv('LC_ALL='.$supported_locales[$textlocale]);
+$selectedlocale = setlocale(LC_ALL, $supported_locales[$textlocale]);
 bindtextdomain($textdomain, '../locale');
 bind_textdomain_codeset($textdomain, 'utf-8');
 textdomain($textdomain);
index 7a24d84af4b5efde87be187e217d3256c78ffedf..1e5c1b0fbe60d48922c5c79c6231c95385905174 100644 (file)
@@ -27,7 +27,7 @@ window.onload = function() {
   if (cancelAuth) {
     cancelAuth.onclick = function() {
       document.getElementById("isauthorized").value = "no";
-      document.getElementById("loginauthform").submit();
+      document.getElementById("authform").submit();
     }
   }
   var addAnotherEmail = document.getElementById("addanotheremail");
index f76ac18f9ffc9245f8def3d43dbbd16c1cd4630f..e5a080b0c6c77ffd6c8e2b3545348ab625eb4ef6 100755 (executable)
@@ -195,14 +195,14 @@ class AuthUtils {
       }
       else {
         $utils->log('create_session_failure', 'at login, prev session: '.$session['id'].', new user: '.$userid);
-        $errors[] = _('The session system is not working. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+        $errors[] = _('The session system is not working.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
       }
     }
     else {
       $result = $this->db->prepare('UPDATE `auth_sessions` SET `sesskey` = :sesskey, `user` = :userid, `logged_in` = TRUE, `time_expire` = :expire WHERE `id` = :sessid;');
       if (!$result->execute(array(':sesskey' => $sesskey, ':userid' => $userid, ':expire' => gmdate('Y-m-d H:i:s', strtotime('+1 day')), ':sessid' => $session['id']))) {
         $utils->log('login_failure', 'session: '.$session['id'].', user: '.$userid);
-        $errors[] = _('Login failed unexpectedly. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+        $errors[] = _('Login failed unexpectedly.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
       }
       else {
         // After update, actually fetch the session row from the DB so we have all values.
@@ -359,7 +359,7 @@ class AuthUtils {
   function negotiateLocale($supportedLanguages) {
     $nlocale = $supportedLanguages[0];
     $headers = getAllHeaders();
-    $accLcomp = explode(',', $headers['Accept-Language']);
+    $accLcomp = explode(',', @$headers['Accept-Language']);
     $accLang = array();
     foreach ($accLcomp as $lcomp) {
       if (strlen($lcomp)) {
index 5f091a26ae14b152d49f79e44f3f0ca145b1ea83..90be17fe99ce2579a08d6c96e049cab82fb85075 100644 (file)
@@ -34,7 +34,7 @@ if (!count($errors)) {
   $user = array('id' => 0, 'email' => '');
   $pagetype = 'default';
   if (is_null($session)) {
-    $errors[] = _('The session system is not working. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+    $errors[] = _('The session system is not working.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
   }
   elseif (array_key_exists('logout', $_GET)) {
     $result = $db->prepare('UPDATE `auth_sessions` SET `logged_in` = FALSE WHERE `id` = :sessid;');
@@ -104,7 +104,7 @@ if (!count($errors)) {
             $result = $db->prepare('INSERT INTO `auth_users` (`email`, `pwdhash`, `status`, `verify_hash`) VALUES (:email, :pwdhash, \'unverified\', :vcode);');
             if (!$result->execute(array(':email' => $_POST['email'], ':pwdhash' => $newHash, ':vcode' => $vcode))) {
               $utils->log('user_insert_failure', 'email: '.$_POST['email'].' - '.$result->errorInfo()[2]);
-              $errors[] = _('Could not add user. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+              $errors[] = _('Could not add user.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
             }
             $user = array('id' => $db->lastInsertId(),
                           'email' => $_POST['email'],
@@ -138,7 +138,7 @@ if (!count($errors)) {
             }
             else {
               $utils->log('verify_mail_failure', 'user: '.$user['id'].', email: '.$user['email']);
-              $errors[] = _('The confirmation email could not be sent to you. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+              $errors[] = _('The confirmation email could not be sent to you.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
             }
           }
           else {
@@ -147,7 +147,7 @@ if (!count($errors)) {
             $result = $db->prepare('UPDATE `auth_users` SET `verify_hash` = :vcode WHERE `id` = :userid;');
             if (!$result->execute(array(':vcode' => $vcode, ':userid' => $user['id']))) {
               $utils->log('vhash_set_failure', 'user: '.$user['id']);
-              $errors[] = _('Could not initiate reset request. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+              $errors[] = _('Could not initiate reset request.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
             }
             else {
               $utils->log('pwd_reset_request', 'user: '.$user['id'].', email: '.$user['email']);
@@ -174,7 +174,7 @@ if (!count($errors)) {
               }
               else {
                 $utils->log('pwd_reset_mail_failure', 'user: '.$user['id'].', email: '.$user['email']);
-                $errors[] = _('The email with password reset instructions could not be sent to you. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+                $errors[] = _('The email with password reset instructions could not be sent to you.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
               }
             }
           }
@@ -233,7 +233,7 @@ if (!count($errors)) {
       $result = $db->prepare('UPDATE `auth_users` SET `verify_hash` = \'\', `status` = \'ok\' WHERE `id` = :userid;');
       if (!$result->execute(array(':userid' => $user['id']))) {
         $utils->log('verification_save_failure', 'user: '.$user['id']);
-        $errors[] = _('Could not save confirmation. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+        $errors[] = _('Could not save confirmation.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
       }
       $pagetype = 'verification_done';
     }
@@ -294,7 +294,7 @@ if (!count($errors)) {
                                     ':scope' => $scope,
                                     ':userid' => $user['id']))) {
           $utils->log('client_save_failure', 'client: '.$clientid);
-          $errors[] = 'Unexpectedly failed to save new client information. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.';
+          $errors[] = _('Unexpectedly failed to save new client information.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
         }
       }
       if (!count($errors)) {
@@ -337,7 +337,7 @@ if (!count($errors)) {
         $result = $db->prepare('UPDATE `auth_users` SET `pwdhash` = :pwdhash, `verify_hash` = \'\' WHERE `id` = :userid;');
         if (!$result->execute(array(':pwdhash' => $newHash, ':userid' => $session['user']))) {
           $utils->log('pwd_reset_failure', 'user: '.$session['user']);
-          $errors[] = _('Password reset failed. Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
+          $errors[] = _('Password reset failed.').' '._('Please <a href="https://www.kairo.at/contact">contact KaiRo.at</a> and tell the team about this.');
         }
         else {
           $pagetype = 'reset_done';
diff --git a/locale/de/LC_MESSAGES/kairo_auth.mo b/locale/de/LC_MESSAGES/kairo_auth.mo
new file mode 100644 (file)
index 0000000..5b02bea
Binary files /dev/null and b/locale/de/LC_MESSAGES/kairo_auth.mo differ
diff --git a/locale/de/LC_MESSAGES/kairo_auth.po b/locale/de/LC_MESSAGES/kairo_auth.po
new file mode 100644 (file)
index 0000000..c56e7bc
--- /dev/null
@@ -0,0 +1,372 @@
+# L10n strings for the KaiRo.at authentication system.
+# This Source Code Form is subject to the terms of the Mozilla Public KaiRo.at
+# This file is distributed under the same license as the kairo-auth package.
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: kairo-auth\n"
+"Report-Msgid-Bugs-To: kairo@kairo.at\n"
+"POT-Creation-Date: 2016-11-18 18:05+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Source-Language: en_US\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Language: de\n"
+
+msgid ""
+"This login system does not work without JavaScript. Please activate "
+"JavaScript for this site to log in."
+msgstr ""
+"Dieses Login-System functioniert nicht ohne JavaScript. Bitte aktivieren Sie "
+"JavaScript für diese Seite, um sich anzumelden."
+
+msgid "Unexpected error while logging out."
+msgstr "Unerwarteter Fehler beim Abmelden."
+
+msgid "The session system is not working."
+msgstr "Das Sitzungssystem funktioniert nicht."
+
+msgid ""
+"Please <a href=\"https://www.kairo.at/contact\">contact KaiRo.at</a> and "
+"tell the team about this."
+msgstr ""
+"Bitte <a href=\"https://www.kairo.at/contact\">kontaktieren Sie KaiRo.at</a> "
+"und benachrichtigen Sie das Team darüber."
+
+#, php-format
+msgid "Hi %s!"
+msgstr "Hallo %s!"
+
+#, php-format
+msgid "Do you authorize %s to access %s?"
+msgstr "Erlauben Sie %s den Zugriff auf %s?"
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "No"
+msgstr "Nein"
+
+#, php-format
+msgid "Sign in to %s using…"
+msgstr "Bei %s anmelden mit…"
+
+msgid "Add another email address"
+msgstr "Weitere E-Mail-Adresse hinzufügen"
+
+msgid "This is not me"
+msgstr "Das bin nicht ich"
+
+msgid "Sign in"
+msgstr "Anmelden"
+
+msgid "Cancel"
+msgstr "Abbrechen"
+
+msgid "You need to log in or register to continue."
+msgstr "Sie müssen sich anmelden oder registrieren, um fortzusetzen."
+
+msgid "The following error was detected"
+msgstr "Der folgende Fehler ist aufgetreten"
+
+msgid "The following errors were detected"
+msgstr "Die folgenden Fehler sind aufgetreten"
+
+msgid "Back"
+msgstr "Zurück"
+
+msgid ""
+"You are not accessing this site on a secure connection, so authentication "
+"doesn't work."
+msgstr ""
+"Sie greifen auf diese Website nicht über eine sichere Verbindung zu, daher "
+"funktioniert die Anmeldung nicht."
+
+msgid "Login failed unexpectedly."
+msgstr "Anmeldung unerwartet fehlgeschlagen."
+
+msgid ""
+"Password must not start or end with a whitespace character like a space."
+msgstr ""
+"Das Passwort darf nicht mit unsichtbaren Zeichen wie Leerzeichen beginnen "
+"oder enden."
+
+#, php-format
+msgid "Password too short (min. %s characters)."
+msgstr "Passwort zu kurz (min. %s Zeichen)."
+
+#, php-format
+msgid "Password too long (max. %s characters)."
+msgstr "Passwort zu lang (max. %s Zeichen)."
+
+msgid "The passwort can not be equal to your email or any part of it."
+msgstr "Das Passwort darf nicht deine E-Mail-Adresse oder ein Teil davon sein."
+
+#, php-format
+msgid ""
+"Your password must use characters other than normal letters or contain least "
+"%s characters."
+msgstr ""
+"Das Passwort muss Zeichen außerhalb der normalen Buchstaben enthalten oder "
+"mindestens %s Zeichen lang sein."
+
+#, php-format
+msgid "Your password cannot consist only of numbers."
+msgstr "Das Passwort darf nicht nur aus Zahlen bestehen."
+
+#, php-format
+msgid "Password does have to contain at least %s different characters."
+msgstr "Das Passwort muss zumindest %s verschiedene Zeichen enthalten."
+
+msgid "Email"
+msgstr "E-Mail"
+
+msgid "Password"
+msgstr "Passwort"
+
+msgid "Forgot password?"
+msgstr "Passwort vergessen?"
+
+msgid "Log in / Register"
+msgstr "Anmelden / Registrieren"
+
+msgid "The email address is invalid."
+msgstr "Die E-Mail-Adresse ist ungültig."
+
+msgid ""
+"This password is invalid or your email is not verified yet. Did you type "
+"them correctly?"
+msgstr ""
+"Das Passwort ist ungültig oder Ihre E-Mail_Adresse ist noch nicht "
+"verifiziert. Haben Sie diese korrekt eingegeben?"
+
+msgid "Could not add user."
+msgstr "Benutzer konnte nicht hinzugefügt werden."
+
+msgid "KaiRo.at Authentication Service"
+msgstr "KaiRo.at Authentication Service"
+
+msgid "Welcome!"
+msgstr "Willkommen!"
+
+#, php-format
+msgid "This email address, %s, has been used for registration on \"%s\"."
+msgstr ""
+"Diese E-Mail-Adresse, %s, wurde zur Registrierung auf \"%s\" verwendet."
+
+msgid ""
+"Please confirm that registration by clicking the following link (or calling "
+"it up in your browser):"
+msgstr ""
+"Bitte bestätigen Sie diese Registrierung durch Klicken auf den folgenden "
+"Link (oder Aufruf der Adresse in Ihrem Browser):"
+
+msgid ""
+"With this confirmation, you accept that we handle your data for the purpose "
+"of logging you into other websites when you request that."
+msgstr ""
+"Mit dieser Bestätigung stimmen Sie zu, dass wir Ihre Daten zum Zweck Ihrer "
+"Anmeldung auf anderen Websites verwenden, wenn Sie solche Anmeldungen "
+"initiieren. "
+
+msgid ""
+"Those websites will get to know your email address but not your password, "
+"which we store securely."
+msgstr ""
+"Diesen Websiteswird Ihre E-Mail-Adresse weitergeleitet, aber nicht Ihre "
+"Passwort, das wir sicher speichern. "
+
+msgid ""
+"If you do not call this confirmation link within 72 hours, your data will be "
+"deleted from our database."
+msgstr ""
+"Wenn Sie diesen Bestätigungslink nicht innerhalb von 72 Stunden aufrufen, "
+"werden Ihre Daten aus unserer Datenbank gelöscht."
+
+#, php-format
+msgid "The %s team"
+msgstr "Das %s-Team"
+
+msgid "The confirmation email could not be sent to you."
+msgstr "Die Bestätigungs-E-Mail konnte nicht an Sie gesendet werden."
+
+msgid "Could not initiate reset request."
+msgstr "Anfrage zum Zurücksetzen konnte nicht initiiert werden."
+
+msgid "Hi,"
+msgstr "Hallo,"
+
+#, php-format
+msgid ""
+"A request for setting a new password for this email address, %s, has been "
+"submitted on \"%s\"."
+msgstr ""
+"Eine Anfrage zum Setzen eines neuen Passwortes für diese E-Mail-Adresse, %s, "
+"wurde auf \"%s\" abgeschickt."
+
+msgid ""
+"You can set a new password by clicking the following link (or calling it up "
+"in your browser):"
+msgstr ""
+"Sie können ein neues Passwort setzen, indem Sie auf den folgenden Link "
+"klicken (oder die Adresse in Ihrem Browser aufrufen):"
+
+msgid ""
+"If you do not call this confirmation link within 1 hour, this link expires "
+"and the existing password is being kept in place."
+msgstr ""
+"Wenn Sie diese Bestätigung nicht innerhalb einer Stunde aufrufen, erlischt "
+"dieser Link und das existente Passwort wird weiter verwendet. "
+
+msgid "The email with password reset instructions could not be sent to you."
+msgstr ""
+"Die E-Mail mit Anleitungen zum Zurücksetzen Ihres Passwortes konnte nicht an "
+"Sie gesendet werden."
+
+msgid ""
+"The form you used was not valid. Possibly it has expired and you need to "
+"initiate the action again, or you have disabled cookies for this site."
+msgstr ""
+"Das von Ihnen verwendete Formular war ungültig. Möglicherweise ist es "
+"erloschen und Sie müssen die Aktion nochmals beginnen, oder Sie haben "
+"Cookies für diese Website deaktiviert."
+
+msgid "Could not save confirmation."
+msgstr "Bestätigung konnte nicht gespeichert werden."
+
+msgid ""
+"The confirmation link you called is not valid. Possibly it has expired and "
+"you need to try registering again."
+msgstr ""
+"Der von Ihnen aufgerufene Bestätigungs-Link ist ungültig. Möglicherweise ist "
+"er erloschen und Sie müssen die Registrierung nochmals versuchen."
+
+msgid ""
+"The password reset link you called is not valid. Possibly it has expired and "
+"you need to call the \"Password forgotten?\" function again."
+msgstr ""
+"Der von Ihnen aufgerufene Passwort-Rücksetzungs-Link ist ungültig. "
+"Möglicherweise ist er erloschen und Sie müssen die Funktion \"Passwort "
+"vergessen?\" nochmals aufrufen."
+
+msgid "Unexpectedly failed to save new client information."
+msgstr "Unerwarteter Fehler beim Speicher der neuen Client-Informationen."
+
+msgid "This function is only available if you are logged in."
+msgstr "Diese Funktion ist nur verfügbar, wenn Sie angemeldet sind."
+
+msgid ""
+"Password reset failed. The reset form you used was not valid. Possibly it "
+"has expired and you need to initiate the password reset again."
+msgstr ""
+"Zurücksetzen des Passworts fehlgeschlagen. Das von Ihnen verwendete "
+"Rücksetzungsformular war ungültig. Möglicherweise ist es erloschen und Sie "
+"müssen die Passwort-Rücksetzung nochmals beginnen."
+
+msgid "Password reset failed."
+msgstr "Zurücksetzen des Passworts fehlgeschlagen."
+
+#, php-format
+msgid ""
+"An email for confirmation has been sent to %s. Please follow the link "
+"provided there to complete the process."
+msgstr ""
+"Eine E-Mail zur Bestätigung wurde an %s gesendet. Bitte folgen Sie dem dort "
+"angegebenen Link, um den Vorgang abzuschließen."
+
+msgid "Reload this page after you confirm to continue."
+msgstr "Laden Sie diese Seite nach der Bestätigung neu, um fortzusetzen."
+
+msgid "Reload"
+msgstr "Neu laden"
+
+msgid ""
+"An email has been sent to the requested account with further information. If "
+"you do not receive an email then please confirm you have entered the same "
+"email address used during account registration."
+msgstr ""
+"Eine E-Mail mit weiteren Informationen wurde an das angefragte Konto "
+"verschickt. Wenn Sie keine E-Mail bekommen, überprüfen Sie bitte, dass Sie "
+"dieselbe E-Mail-Adresse verwendet haben, mit der Sie sich ursprünglich "
+"registriert haben."
+
+msgid "Back to top"
+msgstr "Zurück zur Hauptseite"
+
+msgid ""
+"If you forgot your password or didn't receive the registration confirmation, "
+"please enter your email here."
+msgstr ""
+"Wenn Sie Ihr Passwort vergessen haben oder die Registrierungsbestätigung "
+"nicht bekommen haben, gebenm Sie bitte Ihre E-Mail-Adresse hier ein."
+
+msgid "Send instructions to email"
+msgstr "Anleitungen per E-Mail senden"
+
+#, php-format
+msgid "You can set a new password for %s here."
+msgstr "Sie können hier ein neues Passwort für %s setzen."
+
+msgid "Save password"
+msgstr "Passwort speichern"
+
+msgid "Client ID"
+msgstr "Client-ID"
+
+msgid "Client Secrect"
+msgstr "Client-Secret"
+
+msgid "Redirect URI"
+msgstr "Redirect-URI"
+
+msgid "Scope"
+msgstr "Scope"
+
+msgid "Create"
+msgstr "Anlegen"
+
+msgid "Your password has successfully been reset."
+msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt."
+
+msgid "Grouped with: "
+msgstr "Gruppiert mit:"
+
+msgid "Log out"
+msgstr "Abmelden"
+
+msgid "Manage OAuth2 clients"
+msgstr "OAuth2-Clients verwalten"
+
+msgid "Set new password"
+msgstr "Neues Passwort setzen"
+
+msgid "Hooray! Your email was successfully confirmed! You can log in now."
+msgstr ""
+"Hurra! Ihr E-Mail-Adresse wurde erfolgreich bestätigt! Sie können sich jetzt "
+"anmelden."
+
+msgid ""
+"Your password has successfully been reset. You can log in now with the new "
+"password."
+msgstr ""
+"Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich jetzt mit dem "
+"neuen Passwort anmelden."
+
+#, php-format
+msgid ""
+"Add another email grouped with %s by either logging in with it or specifying "
+"the email and a new password to use."
+msgstr ""
+"Fügen Sie eine neue E-Mail-Adresse in die Gruppe mit %s ein, indem Sie sich "
+"entweder damit anmelden oder die E-Mail-Adresse und ein neues Passwort dafür "
+"angeben."
+
+#~ msgid "no"
+#~ msgstr "Nein"
diff --git a/locale/de/LC_MESSAGES/kairo_auth.po~ b/locale/de/LC_MESSAGES/kairo_auth.po~
new file mode 100644 (file)
index 0000000..ec0abac
--- /dev/null
@@ -0,0 +1,369 @@
+# L10n strings for the KaiRo.at authentication system.
+# This Source Code Form is subject to the terms of the Mozilla Public KaiRo.at
+# This file is distributed under the same license as the kairo-auth package.
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: kairo-auth\n"
+"Report-Msgid-Bugs-To: kairo@kairo.at\n"
+"POT-Creation-Date: 2016-11-18 16:53+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Source-Language: en_US\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Language: de\n"
+
+msgid ""
+"This login system does not work without JavaScript. Please activate "
+"JavaScript for this site to log in."
+msgstr ""
+"Dieses Login-System functioniert nicht ohne JavaScript. Bitte aktivieren Sie "
+"JavaScript für diese Seite, um sich anzumelden."
+
+msgid "Unexpected error while logging out."
+msgstr "Unerwarteter Fehler beim Abmelden."
+
+msgid "The session system is not working."
+msgstr "Das Sitzungssystem funktioniert nicht."
+
+msgid ""
+"Please <a href=\"https://www.kairo.at/contact\">contact KaiRo.at</a> and "
+"tell the team about this."
+msgstr ""
+"Bitte <a href=\"https://www.kairo.at/contact\">kontaktieren Sie KaiRo.at</a> "
+"und benachrichtigen Sie das Team darüber."
+
+#, php-format
+msgid "Hi %s!"
+msgstr "Hallo %s!"
+
+#, php-format
+msgid "Do you authorize %s to access %s?"
+msgstr "Erlauben Sie %s den Zugriff auf %s?"
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "No"
+msgstr "Nein"
+
+#, php-format
+msgid "Sign in to %s using…"
+msgstr "Bei %s anmelden mit…"
+
+msgid "Add another email address"
+msgstr "Weitere E-Mail-Adresse hinzufügen"
+
+msgid "This is not me"
+msgstr "Das bin nicht ich"
+
+msgid "Sign in"
+msgstr "Anmelden"
+
+msgid "Cancel"
+msgstr "Abbrechen"
+
+msgid "You need to log in or register to continue."
+msgstr "Sie müssen sich anmelden oder registrieren, um fortzusetzen."
+
+msgid "The following error was detected"
+msgstr "Der folgende Fehler ist aufgetreten"
+
+msgid "The following errors were detected"
+msgstr "Die folgenden Fehler sind aufgetreten"
+
+msgid "Back"
+msgstr "Zurück"
+
+msgid ""
+"You are not accessing this site on a secure connection, so authentication "
+"doesn't work."
+msgstr ""
+"Sie greifen auf diese Website nicht über eine sichere Verbindung zu, daher "
+"funktioniert die Anmeldung nicht."
+
+msgid "Login failed unexpectedly."
+msgstr "Anmeldung unerwartet fehlgeschlagen."
+
+msgid ""
+"Password must not start or end with a whitespace character like a space."
+msgstr ""
+"Das Passwort darf nicht mit unsichtbaren Zeichen wie Leerzeichen beginnen "
+"oder enden."
+
+#, php-format
+msgid "Password too short (min. %s characters)."
+msgstr "Passwort zu kurz (min. %s Zeichen)."
+
+#, php-format
+msgid "Password too long (max. %s characters)."
+msgstr "Passwort zu lang (max. %s Zeichen)."
+
+msgid "The passwort can not be equal to your email or any part of it."
+msgstr "Das Passwort darf nicht deine E-Mail-Adresse oder ein Teil davon sein."
+
+#, php-format
+msgid ""
+"Your password must use characters other than normal letters or contain least "
+"%s characters."
+msgstr ""
+"Das Passwort muss Zeichen außerhalb der normalen Buchstaben enthalten oder "
+"mindestens %s Zeichen lang sein."
+
+#, php-format
+msgid "Your password cannot consist only of numbers."
+msgstr "Das Passwort darf nicht nur aus Zahlen bestehen."
+
+#, php-format
+msgid "Password does have to contain at least %s different characters."
+msgstr "Das Passwort muss zumindest %s verschiedene Zeichen enthalten."
+
+msgid "Email"
+msgstr "E-Mail"
+
+msgid "Password"
+msgstr "Passwort"
+
+msgid "Forgot password?"
+msgstr "Passwort vergessen?"
+
+msgid "Log in / Register"
+msgstr "Anmelden / Registrieren"
+
+msgid "The email address is invalid."
+msgstr "Die E-Mail-Adresse ist ungültig."
+
+msgid ""
+"This password is invalid or your email is not verified yet. Did you type "
+"them correctly?"
+msgstr ""
+"Das Passwort ist ungültig oder Ihre E-Mail_Adresse ist noch nicht "
+"verifiziert. Haben Sie diese korrekt eingegeben?"
+
+msgid "Could not add user."
+msgstr "Benutzer konnte nicht hinzugefügt werden."
+
+msgid "KaiRo.at Authentication Service"
+msgstr "KaiRo.at Authentication Service"
+
+msgid "Welcome!"
+msgstr "Willkommen!"
+
+#, php-format
+msgid "This email address, %s, has been used for registration on \"%s\"."
+msgstr ""
+"Diese E-Mail-Adresse, %s, wurde zur Registrierung auf \"%s\" verwendet."
+
+msgid ""
+"Please confirm that registration by clicking the following link (or calling "
+"it up in your browser):"
+msgstr ""
+"Bitte bestätigen Sie diese Registrierung durch Klicken auf den folgenden "
+"Link (oder Aufruf der Adresse in Ihrem Browser):"
+
+msgid ""
+"With this confirmation, you accept that we handle your data for the purpose "
+"of logging you into other websites when you request that."
+msgstr ""
+"Mit dieser Bestätigung stimmen Sie zu, dass wir Ihre Daten zum Zweck Ihrer "
+"Anmeldung auf anderen Websites verwenden, wenn Sie solche Anmeldungen "
+"initiieren. "
+
+msgid ""
+"Those websites will get to know your email address but not your password, "
+"which we store securely."
+msgstr ""
+"Diesen Websiteswird Ihre E-Mail-Adresse weitergeleitet, aber nicht Ihre "
+"Passwort, das wir sicher speichern. "
+
+msgid ""
+"If you do not call this confirmation link within 72 hours, your data will be "
+"deleted from our database."
+msgstr ""
+"Wenn Sie diesen Bestätigungslink nicht innerhalb von 72 Stunden aufrufen, "
+"werden Ihre Daten aus unserer Datenbank gelöscht."
+
+#, php-format
+msgid "The %s team"
+msgstr "Das %s-Team"
+
+msgid "The confirmation email could not be sent to you."
+msgstr "Die Bestätigungs-E-Mail konnte nicht an Sie gesendet werden."
+
+msgid "Could not initiate reset request."
+msgstr "Anfrage zum Zurücksetzen konnte nicht initiiert werden."
+
+msgid "Hi,"
+msgstr "Hallo,"
+
+#, php-format
+msgid ""
+"A request for setting a new password for this email address, %s, has been "
+"submitted on \"%s\"."
+msgstr ""
+"Eine Anfrage zum Setzen eines neuen Passwortes für diese E-Mail-Adresse, %s, "
+"wurde auf \"%s\" abgeschickt."
+
+msgid ""
+"You can set a new password by clicking the following link (or calling it up "
+"in your browser):"
+msgstr ""
+"Sie können ein neues Passwort setzen, indem Sie auf den folgenden Link "
+"klicken (oder die Adresse in Ihrem Browser aufrufen):"
+
+msgid ""
+"If you do not call this confirmation link within 1 hour, this link expires "
+"and the existing password is being kept in place."
+msgstr ""
+"Wenn Sie diese Bestätigung nicht innerhalb einer Stunde aufrufen, erlischt "
+"dieser Link und das existente Passwort wird weiter verwendet. "
+
+msgid "The email with password reset instructions could not be sent to you."
+msgstr ""
+"Die E-Mail mit Anleitungen zum Zurücksetzen Ihres Passwortes konnte nicht an "
+"Sie gesendet werden."
+
+msgid ""
+"The form you used was not valid. Possibly it has expired and you need to "
+"initiate the action again, or you have disabled cookies for this site."
+msgstr ""
+"Das von Ihnen verwendete Formular war ungültig. Möglicherweise ist es "
+"erloschen und Sie müssen die Aktion nochmals beginnen, oder Sie haben "
+"Cookies für diese Website deaktiviert."
+
+msgid "Could not save confirmation."
+msgstr "Bestätigung konnte nicht gespeichert werden."
+
+msgid ""
+"The confirmation link you called is not valid. Possibly it has expired and "
+"you need to try registering again."
+msgstr ""
+"Der von Ihnen aufgerufene Bestätigungs-Link ist ungültig. Möglicherweise ist "
+"er erloschen und Sie müssen die Registrierung nochmals versuchen."
+
+msgid ""
+"The password reset link you called is not valid. Possibly it has expired and "
+"you need to call the \"Password forgotten?\" function again."
+msgstr ""
+"Der von Ihnen aufgerufene Passwort-Rücksetzungs-Link ist ungültig. "
+"Möglicherweise ist er erloschen und Sie müssen die Funktion \"Passwort "
+"vergessen?\" nochmals aufrufen."
+
+msgid "This function is only available if you are logged in."
+msgstr "Diese Funktion ist nur verfügbar, wenn Sie angemeldet sind."
+
+msgid ""
+"Password reset failed. The reset form you used was not valid. Possibly it "
+"has expired and you need to initiate the password reset again."
+msgstr ""
+"Zurücksetzen des Passworts fehlgeschlagen. Das von Ihnen verwendete "
+"Rücksetzungsformular war ungültig. Möglicherweise ist es erloschen und Sie "
+"müssen die Passwort-Rücksetzung nochmals beginnen."
+
+msgid "Password reset failed."
+msgstr "Zurücksetzen des Passworts fehlgeschlagen."
+
+#, php-format
+msgid ""
+"An email for confirmation has been sent to %s. Please follow the link "
+"provided there to complete the process."
+msgstr ""
+"Eine E-Mail zur Bestätigung wurde an %s gesendet. Bitte folgen Sie dem dort "
+"angegebenen Link, um den Vorgang abzuschließen."
+
+msgid "Reload this page after you confirm to continue."
+msgstr "Laden Sie diese Seite nach der Bestätigung neu, um fortzusetzen."
+
+msgid "Reload"
+msgstr "Neu laden"
+
+msgid ""
+"An email has been sent to the requested account with further information. If "
+"you do not receive an email then please confirm you have entered the same "
+"email address used during account registration."
+msgstr ""
+"Eine E-Mail mit weiteren Informationen wurde an das angefragte Konto "
+"verschickt. Wenn Sie keine E-Mail bekommen, überprüfen Sie bitte, dass Sie "
+"dieselbe E-Mail-Adresse verwendet haben, mit der Sie sich ursprünglich "
+"registriert haben."
+
+msgid "Back to top"
+msgstr "Zurück zur Hauptseite"
+
+msgid ""
+"If you forgot your password or didn't receive the registration confirmation, "
+"please enter your email here."
+msgstr ""
+"Wenn Sie Ihr Passwort vergessen haben oder die Registrierungsbestätigung "
+"nicht bekommen haben, gebenm Sie bitte Ihre E-Mail-Adresse hier ein."
+
+msgid "Send instructions to email"
+msgstr "Anleitungen per E-Mail senden"
+
+#, php-format
+msgid "You can set a new password for %s here."
+msgstr "Sie können hier ein neues Passwort für %s setzen."
+
+msgid "Save password"
+msgstr "Passwort speichern"
+
+msgid "Client ID"
+msgstr "Client-ID"
+
+msgid "Client Secrect"
+msgstr "Client-Secret"
+
+msgid "Redirect URI"
+msgstr "Redirect-URI"
+
+msgid "Scope"
+msgstr "Scope"
+
+msgid "Create"
+msgstr "Anlegen"
+
+msgid "Your password has successfully been reset."
+msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt."
+
+msgid "Grouped with: "
+msgstr "Gruppiert mit:"
+
+msgid "Log out"
+msgstr "Abmelden"
+
+msgid "Manage OAuth2 clients"
+msgstr "OAuth2-Clients verwalten"
+
+msgid "Set new password"
+msgstr "Neues Passwort setzen"
+
+msgid "Hooray! Your email was successfully confirmed! You can log in now."
+msgstr ""
+"Hurra! Ihr E-Mail-Adresse wurde erfolgreich bestätigt! Sie können sich jetzt "
+"anmelden."
+
+msgid ""
+"Your password has successfully been reset. You can log in now with the new "
+"password."
+msgstr ""
+"Ihr Passwort wurde erfolgreich zurückgesetzt. Sie können sich jetzt mit dem "
+"neuen Passwort anmelden."
+
+#, php-format
+msgid ""
+"Add another email grouped with %s by either logging in with it or specifying "
+"the email and a new password to use."
+msgstr ""
+"Fügen Sie eine neue E-Mail-Adresse in die Gruppe mit %s ein, indem Sie sich "
+"entweder damit anmelden oder die E-Mail-Adresse und ein neues Passwort dafür "
+"angeben."
+
+#~ msgid "no"
+#~ msgstr "Nein"
diff --git a/locale/en_US/LC_MESSAGES/kairo_auth.pot b/locale/en_US/LC_MESSAGES/kairo_auth.pot
new file mode 100644 (file)
index 0000000..378912d
--- /dev/null
@@ -0,0 +1,310 @@
+# L10n strings for the KaiRo.at authentication system.
+# This Source Code Form is subject to the terms of the Mozilla Public KaiRo.at
+# This file is distributed under the same license as the kairo-auth package.
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: kairo-auth \n"
+"Report-Msgid-Bugs-To: kairo@kairo.at\n"
+"POT-Creation-Date: 2016-11-18 18:07+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_US\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid ""
+"This login system does not work without JavaScript. Please activate "
+"JavaScript for this site to log in."
+msgstr ""
+
+msgid "Unexpected error while logging out."
+msgstr ""
+
+msgid "The session system is not working."
+msgstr ""
+
+msgid ""
+"Please <a href=\"https://www.kairo.at/contact\">contact KaiRo.at</a> and "
+"tell the team about this."
+msgstr ""
+
+#, php-format
+msgid "Hi %s!"
+msgstr ""
+
+#, php-format
+msgid "Do you authorize %s to access %s?"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+#, php-format
+msgid "Sign in to %s using…"
+msgstr ""
+
+msgid "Add another email address"
+msgstr ""
+
+msgid "This is not me"
+msgstr ""
+
+msgid "Sign in"
+msgstr ""
+
+msgid "Cancel"
+msgstr ""
+
+msgid "You need to log in or register to continue."
+msgstr ""
+
+msgid "The following error was detected"
+msgstr ""
+
+msgid "The following errors were detected"
+msgstr ""
+
+msgid "Back"
+msgstr ""
+
+msgid ""
+"You are not accessing this site on a secure connection, so authentication "
+"doesn't work."
+msgstr ""
+
+msgid "Login failed unexpectedly."
+msgstr ""
+
+msgid ""
+"Password must not start or end with a whitespace character like a space."
+msgstr ""
+
+#, php-format
+msgid "Password too short (min. %s characters)."
+msgstr ""
+
+#, php-format
+msgid "Password too long (max. %s characters)."
+msgstr ""
+
+msgid "The passwort can not be equal to your email or any part of it."
+msgstr ""
+
+#, php-format
+msgid ""
+"Your password must use characters other than normal letters or contain least "
+"%s characters."
+msgstr ""
+
+#, php-format
+msgid "Your password cannot consist only of numbers."
+msgstr ""
+
+#, php-format
+msgid "Password does have to contain at least %s different characters."
+msgstr ""
+
+msgid "Email"
+msgstr ""
+
+msgid "Password"
+msgstr ""
+
+msgid "Forgot password?"
+msgstr ""
+
+msgid "Log in / Register"
+msgstr ""
+
+msgid "The email address is invalid."
+msgstr ""
+
+msgid ""
+"This password is invalid or your email is not verified yet. Did you type "
+"them correctly?"
+msgstr ""
+
+msgid "Could not add user."
+msgstr ""
+
+msgid "KaiRo.at Authentication Service"
+msgstr ""
+
+msgid "Welcome!"
+msgstr ""
+
+#, php-format
+msgid "This email address, %s, has been used for registration on \"%s\"."
+msgstr ""
+
+msgid ""
+"Please confirm that registration by clicking the following link (or calling "
+"it up in your browser):"
+msgstr ""
+
+msgid ""
+"With this confirmation, you accept that we handle your data for the purpose "
+"of logging you into other websites when you request that."
+msgstr ""
+
+msgid ""
+"Those websites will get to know your email address but not your password, "
+"which we store securely."
+msgstr ""
+
+msgid ""
+"If you do not call this confirmation link within 72 hours, your data will be "
+"deleted from our database."
+msgstr ""
+
+#, php-format
+msgid "The %s team"
+msgstr ""
+
+msgid "The confirmation email could not be sent to you."
+msgstr ""
+
+msgid "Could not initiate reset request."
+msgstr ""
+
+msgid "Hi,"
+msgstr ""
+
+#, php-format
+msgid ""
+"A request for setting a new password for this email address, %s, has been "
+"submitted on \"%s\"."
+msgstr ""
+
+msgid ""
+"You can set a new password by clicking the following link (or calling it up "
+"in your browser):"
+msgstr ""
+
+msgid ""
+"If you do not call this confirmation link within 1 hour, this link expires "
+"and the existing password is being kept in place."
+msgstr ""
+
+msgid "The email with password reset instructions could not be sent to you."
+msgstr ""
+
+msgid ""
+"The form you used was not valid. Possibly it has expired and you need to "
+"initiate the action again, or you have disabled cookies for this site."
+msgstr ""
+
+msgid "Could not save confirmation."
+msgstr ""
+
+msgid ""
+"The confirmation link you called is not valid. Possibly it has expired and "
+"you need to try registering again."
+msgstr ""
+
+msgid ""
+"The password reset link you called is not valid. Possibly it has expired and "
+"you need to call the \"Password forgotten?\" function again."
+msgstr ""
+
+msgid "Unexpectedly failed to save new client information."
+msgstr ""
+
+msgid "This function is only available if you are logged in."
+msgstr ""
+
+msgid ""
+"Password reset failed. The reset form you used was not valid. Possibly it "
+"has expired and you need to initiate the password reset again."
+msgstr ""
+
+msgid "Password reset failed."
+msgstr ""
+
+#, php-format
+msgid ""
+"An email for confirmation has been sent to %s. Please follow the link "
+"provided there to complete the process."
+msgstr ""
+
+msgid "Reload this page after you confirm to continue."
+msgstr ""
+
+msgid "Reload"
+msgstr ""
+
+msgid ""
+"An email has been sent to the requested account with further information. If "
+"you do not receive an email then please confirm you have entered the same "
+"email address used during account registration."
+msgstr ""
+
+msgid "Back to top"
+msgstr ""
+
+msgid ""
+"If you forgot your password or didn't receive the registration confirmation, "
+"please enter your email here."
+msgstr ""
+
+msgid "Send instructions to email"
+msgstr ""
+
+#, php-format
+msgid "You can set a new password for %s here."
+msgstr ""
+
+msgid "Save password"
+msgstr ""
+
+msgid "Client ID"
+msgstr ""
+
+msgid "Client Secrect"
+msgstr ""
+
+msgid "Redirect URI"
+msgstr ""
+
+msgid "Scope"
+msgstr ""
+
+msgid "Create"
+msgstr ""
+
+msgid "Your password has successfully been reset."
+msgstr ""
+
+msgid "Grouped with: "
+msgstr ""
+
+msgid "Log out"
+msgstr ""
+
+msgid "Manage OAuth2 clients"
+msgstr ""
+
+msgid "Set new password"
+msgstr ""
+
+msgid "Hooray! Your email was successfully confirmed! You can log in now."
+msgstr ""
+
+msgid ""
+"Your password has successfully been reset. You can log in now with the new "
+"password."
+msgstr ""
+
+#, php-format
+msgid ""
+"Add another email grouped with %s by either logging in with it or specifying "
+"the email and a new password to use."
+msgstr ""
diff --git a/locale/l10n-finish b/locale/l10n-finish
new file mode 100755 (executable)
index 0000000..6ed93d7
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+LOCALEDIR="$( dirname $0 )"
+
+if [ -n "$1" -a -e "$LOCALEDIR/$1" ]; then
+  msgfmt $LOCALEDIR/$1/LC_MESSAGES/kairo_auth.po -o $LOCALEDIR/$1/LC_MESSAGES/kairo_auth.mo
+else
+  echo "You have to specify a local code to finish."
+  echo "Accepted locales:"
+  for localesub in $LOCALEDIR/*; do
+    if [ -d $localesub ]; then
+      LOCALE="$( basename $localesub )"
+      if [ "$LOCALE" != "en_US" ]; then
+        echo " $LOCALE"
+      fi
+    fi
+  done
+fi
diff --git a/locale/l10n-prepare b/locale/l10n-prepare
new file mode 100755 (executable)
index 0000000..ca208c7
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+LOCALEDIR="$( dirname $0 )"
+
+xgettext $LOCALEDIR/../app/*.php* -o kairo_auth.pot -p $LOCALEDIR/en_US/LC_MESSAGES -L PHP --no-location --from-code=utf-8 --foreign-user --package-name="kairo-auth" --package-version="" --copyright-holder="KaiRo.at" --msgid-bugs-address="kairo@kairo.at"
+echo "Strings extracted into kairo_auth.pot."
+
+replace "# SOME DESCRIPTIVE TITLE." "# L10n strings for the KaiRo.at authentication system." \
+        "# Copyright (C) YEAR" "# This Source Code Form is subject to the terms of the Mozilla Public" \
+        "# This file is distributed under the same license as the PACKAGE package." "# License, v. 2.0. If a copy of the MPL was not distributed with this file," \
+        "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR." "# You can obtain one at http://mozilla.org/MPL/2.0/." \
+        "Language: \\\n" "Language: en_US\\n" -- $LOCALEDIR/en_US/LC_MESSAGES/kairo_auth.pot
+
+for localesub in $LOCALEDIR/*; do
+  if [ -d $localesub ]; then
+    LOCALE="$( basename $localesub )"
+    if [ "$LOCALE" != "en_US" ]; then
+      if [ ! -e "$LOCALEDIR/$LOCALE/LC_MESSAGES" ]; then
+        mkdir $LOCALEDIR/$LOCALE/LC_MESSAGES
+      fi
+      if [ -e "$LOCALEDIR/$LOCALE/LC_MESSAGES/kairo_auth.po" ]; then
+        echo "Merging $LOCALE..."
+        msgmerge $LOCALEDIR/$LOCALE/LC_MESSAGES/kairo_auth.po $LOCALEDIR/en_US/LC_MESSAGES/kairo_auth.pot --update --no-location
+      else
+        echo "Creating $LOCALE as a copy of en_US template..."
+        cp -a $LOCALEDIR/en_US/LC_MESSAGES/kairo_auth.pot $LOCALEDIR/$LOCALE/LC_MESSAGES/kairo_auth.po
+        replace "Language: en_US" "Language: $LOCALE" "MIME-Version: 1.0" "X-Source-Language: en_US" -- $LOCALEDIR/$LOCALE/LC_MESSAGES/kairo_auth.po
+      fi
+    fi
+  fi
+done