From 9f134692b83a9a542f11f90e1f577d87f2282576 Mon Sep 17 00:00:00 2001 From: AndreasAdler Date: Sat, 21 Feb 2015 15:00:53 +0100 Subject: [PATCH 1/9] Fixed grammatical and spelling errors; translated new strings --- rainloop/v/0.0.0/langs/de.ini | 232 +++++++++++++++++----------------- 1 file changed, 116 insertions(+), 116 deletions(-) diff --git a/rainloop/v/0.0.0/langs/de.ini b/rainloop/v/0.0.0/langs/de.ini index 86d563024..e7a737246 100644 --- a/rainloop/v/0.0.0/langs/de.ini +++ b/rainloop/v/0.0.0/langs/de.ini @@ -5,7 +5,7 @@ LABEL_LOGIN = "Login" LABEL_PASSWORD = "Passwort" LABEL_SIGN_ME = "Anmeldung merken" LABEL_VERIFICATION_CODE = "Verifizierungscode" -LABEL_DONT_ASK_VERIFICATION_CODE = "Für 2 Wochen nicht nach dem Code fragen" +LABEL_DONT_ASK_VERIFICATION_CODE = "Für zwei Wochen nicht nach dem Code fragen" BUTTON_SIGN_IN = "Anmelden" TITLE_SIGN_IN_GOOGLE = "Mit Google anmelden" TITLE_SIGN_IN_FACEBOOK = "Mit Facebook anmelden" @@ -45,7 +45,7 @@ FULLSCREEN = "Vollbild umschalten" ZOOM = "Herein-/Herauszoomen" CLOSE = "Schließen (Esc)" LOADING = "Wird geladen ..." -GALLERY_PREV = "Vorher (Linke Pfeil-Taste)" +GALLERY_PREV = "Zurück (Linke Pfeil-Taste)" GALLERY_NEXT = "Weiter (Rechte Pfeil-Taste)" GALLERY_COUNTER = "%curr% von %total%" IMAGE_ERROR = "Die Grafikdatei konnte nicht geladen werden." @@ -62,7 +62,7 @@ TRASH_NAME = "Papierkorb" ARCHIVE_NAME = "Archiv" [QUOTA] -TITLE = "Speicherplatz-Verbrauch" +TITLE = "Speicherplatz-Nutzung" [MESSAGE_LIST] BUTTON_RELOAD = "Nachrichtenliste neu laden" @@ -119,7 +119,7 @@ BUTTON_NOTIFY_READ_RECEIPT = "Der Absender hat darum gebeten, benachrichtigt zu BUTTON_IN_NEW_WINDOW = "In neuem Fenster anzeigen" MENU_HEADERS = "Kopfzeilen anzeigen" MENU_VIEW_ORIGINAL = "Original anzeigen" -MENU_DOWNLOAD_ORIGINAL = "Als .eml - Datei herunterladen" +MENU_DOWNLOAD_ORIGINAL = "Als .eml-Datei herunterladen" MENU_FILTER_SIMILAR = "Ähnliche Nachrichten" MENU_PRINT = "Drucken" EMPTY_SUBJECT_TEXT = "(Kein Betreff)" @@ -131,20 +131,20 @@ LABEL_TO = "An" LABEL_TO_SHORT = "an" LABEL_CC = "CC" LABEL_BCC = "BCC" -LABEL_REPLY_TO = "Reply-To" +LABEL_REPLY_TO = "Antwort an" PRINT_LABEL_FROM = "Von" PRINT_LABEL_TO = "An" PRINT_LABEL_CC = "CC" PRINT_LABEL_BCC = "BCC" -PRINT_LABEL_REPLY_TO = "Reply-To" +PRINT_LABEL_REPLY_TO = "Antwort an" PRINT_LABEL_DATE = "Datum" PRINT_LABEL_SUBJECT = "Betreff" PRINT_LABEL_ATTACHMENTS = "Anhänge" MESSAGE_LOADING = "Nachricht wird geladen" MESSAGE_VIEW_DESC = "Wählen Sie eine Nachricht aus der Liste aus, um sie anzuzeigen." PGP_PASSWORD_INPUT_PLACEHOLDER = "Passwort" -PGP_SIGNED_MESSAGE_DESC = "OpenPGP signierte Nachricht (Klicken, um zu überprüfen)" -PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP verschlüsselte Nachricht (Klicken, um zu entschlüsseln)" +PGP_SIGNED_MESSAGE_DESC = "OpenPGP-signierte Nachricht (klicken, um zu überprüfen)" +PGP_ENCRYPTED_MESSAGE_DESC = "OpenPGP-verschlüsselte Nachricht (klicken, um zu entschlüsseln)" [READ_RECEIPT] SUBJECT = "Empfangsbestätigung (angezeigt) - %SUBJECT%" @@ -165,7 +165,7 @@ BUTTON_UPDATE_CONTACT = "Kontakt aktualisieren" BUTTON_IMPORT = "Import (csv, vcf, vCard)" BUTTON_EXPORT_VCARD = "Export (vcf, vCard)" BUTTON_EXPORT_CSV = "Export (csv)" -ERROR_IMPORT_FILE = "Import-Fehler (ungültiges Dateiformat)" +ERROR_IMPORT_FILE = "Importfehler (ungültiges Dateiformat)" LIST_LOADING = "Kontakte werden geladen" EMPTY_LIST = "Keine Kontakte" EMPTY_SEARCH = "Keine Kontakte gefunden" @@ -212,7 +212,7 @@ BUTTON_DELETE = "Löschen" BUTTON_CANCEL = "Abbrechen" BUTTON_MINIMIZE = "Minimieren" SAVED_TIME = "Gespeichert um %TIME%" -SAVED_ERROR_ON_SEND = "Die Nachricht wurde gesendet, konnte aber nicht im Ordner gespeichert werden." +SAVED_ERROR_ON_SEND = "Die Nachricht wurde gesendet, konnte aber nicht im Gesendet-Ordner gespeichert werden." DISCARD_UNSAVED_DATA = "Nicht gespeicherte Daten löschen?" ATTACH_FILES = "Dateien anhängen" ATTACH_DROP_FILES_DESC = "Fügen Sie hier Dateien ein" @@ -227,12 +227,12 @@ FORWARD_MESSAGE_TOP_CC = "CC" FORWARD_MESSAGE_TOP_SENT = "Gesendet" FORWARD_MESSAGE_TOP_SUBJECT = "Betreff" EMPTY_TO_ERROR_DESC = "Geben Sie bitte mindestens einen Empfänger an" -NO_ATTACHMENTS_HERE_DESC = "No attachments here." +NO_ATTACHMENTS_HERE_DESC = "Keine Anhänge vorhanden." ATTACHMENTS_ERROR_DESC = "Warnung! Nicht alle Anhänge wurden hochgeladen." ATTACHMENTS_UPLOAD_ERROR_DESC = "Es wurden noch nicht alle Anhänge hochgeladen." BUTTON_REQUEST_READ_RECEIPT = "Empfangsbestätigung anfordern" BUTTON_MARK_AS_IMPORTANT = "Als Wichtig markieren" -BUTTON_OPEN_PGP = "OpenPGP (Nur Text)" +BUTTON_OPEN_PGP = "OpenPGP (nur bei unformatiertem Text)" [POPUPS_ASK] BUTTON_YES = "Ja" @@ -257,15 +257,15 @@ BUTTON_UPDATE_IDENTITY = "Aktualisieren" LABEL_EMAIL = "E-Mail" LABEL_NAME = "Name" LABEL_REPLY_TO = "Antwort an" -LABEL_SIGNATURE = "Signature" -LABEL_CC = "Cc" +LABEL_SIGNATURE = "Signatur" +LABEL_CC = "CC" LABEL_BCC = "BCC" -LABEL_SIGNATURE_INSERT_BEFORE = "Insert this signature before quoted text in replies" +LABEL_SIGNATURE_INSERT_BEFORE = "Diese Signatur in Antworten vor dem zitierten Text einfügen" [POPUPS_CREATE_FOLDER] TITLE_CREATE_FOLDER = "Ordner anlegen?" SELECT_NO_PARENT = "" -LABEL_NAME = "Ordner-Name" +LABEL_NAME = "Ordnername" LABEL_PARENT = "Übergeordneter Ordner" BUTTON_CREATE = "Anlegen" BUTTON_CANCEL = "Abbrechen" @@ -283,16 +283,16 @@ DANGER_DESC_HTML_2 = "Einmal begonnen, kann dieser Vorgang nicht mehr abgebroche TITLE_CLEARING_PROCESS = "Ordner wird gelöscht ..." [POPUPS_IMPORT_OPEN_PGP_KEY] -TITLE_IMPORT_OPEN_PGP_KEY = "Import OpenPGP Schlüssel" -BUTTON_IMPORT_OPEN_PGP_KEY = "Import" +TITLE_IMPORT_OPEN_PGP_KEY = "OpenPGP-Schlüssel importieren" +BUTTON_IMPORT_OPEN_PGP_KEY = "Importieren" [POPUPS_VIEW_OPEN_PGP_KEY] -TITLE_VIEW_OPEN_PGP_KEY = "OpenPGP Schlüssel anzeigen" +TITLE_VIEW_OPEN_PGP_KEY = "OpenPGP-Schlüssel anzeigen" BUTTON_SELECT = "Auswählen" BUTTON_CLOSE = "Schließen" [POPUPS_GENERATE_OPEN_PGP_KEYS] -TITLE_GENERATE_OPEN_PGP_KEYS = "OpenPGP Schlüssel generieren" +TITLE_GENERATE_OPEN_PGP_KEYS = "OpenPGP-Schlüssel generieren" LABEL_EMAIL = "E-Mail" LABEL_NAME = "Name" LABEL_PASSWORD = "Passwort" @@ -309,7 +309,7 @@ BUTTON_ENCRYPT = "Verschlüsseln" BUTTON_SIGN_AND_ENCRYPT = "Unterschreiben und verschlüsseln" [POPUPS_TWO_FACTOR_TEST] -TITLE_TEST_CODE = "Zwei-Faktor-Autehntifizierung" +TITLE_TEST_CODE = "Zwei-Faktor-Authentifizierung" LABEL_CODE = "Code" BUTTON_TEST = "Testen" @@ -330,7 +330,7 @@ SELECT_ACTION_DISCARD = "Verwerfen" SELECT_FIELD_FROM = "Von" SELECT_FIELD_RECIPIENTS = "Empfänger (An oder CC)" SELECT_FIELD_SUBJECT = "Betreff" -SELECT_FIELD_HEADER = "Header" +SELECT_FIELD_HEADER = "Nachrichtenkopf" SELECT_FIELD_SIZE = "Größe" SELECT_TYPE_CONTAINS = "Enthält" SELECT_TYPE_NOT_CONTAINS = "Enthält nicht" @@ -350,10 +350,10 @@ EMAIL_LABEL = "E-Mail" VACATION_SUBJECT_LABEL = "Betreff (optional)" VACATION_MESSAGE_LABEL = "Nachricht" REJECT_MESSAGE_LABEL = "Ablehnnachricht" -ALL_INCOMING_MESSAGES_DESC = "Alle ankommende E-Mails" +ALL_INCOMING_MESSAGES_DESC = "Alle eingehenden Nachrichten" [POPUPS_SYSTEM_FOLDERS] -TITLE_SYSTEM_FOLDERS = "Wählen Sie den System-Ordner aus" +TITLE_SYSTEM_FOLDERS = "Wählen Sie die Systemordner aus" SELECT_CHOOSE_ONE = "Wählen Sie einen aus" SELECT_UNUSE_NAME = "Nicht anwenden" LABEL_SENT = "Gesendet" @@ -363,29 +363,29 @@ LABEL_TRASH = "Papierkorb" LABEL_ARCHIVE = "Archiv" BUTTON_CANCEL = "Abbrechen" BUTTON_CLOSE = "Schließen" -NOTIFICATION_SENT = "Sie haben keinen \"Gesendet\" System-Ordner gewählt, in dem Nachrichten nach dem Versenden gespeichert werden. +NOTIFICATION_SENT = "Sie haben keinen \"Gesendet\"-Systemordner gewählt, in dem Nachrichten nach dem Versenden gespeichert werden. Falls Sie versandte Nachrichten nicht speichern möchten, wählen Sie die Option \"Nicht anwenden\"." -NOTIFICATION_DRAFTS = "Sie haben keinen \"Entwürfe\" System-Ordner, in dem Nachrichten beim Erstellen gespeichert werden, gewählt." -NOTIFICATION_SPAM = "Sie haben keinen \"Spam\" System-Ordner gewählt, in dem die Spam-Nachrichten landen. -Falls Sie diese Nachrichten endgültig löschen möchten, wählen Sie die Option \"Nicht anwenden\"." -NOTIFICATION_TRASH = "Sie haben keinen \"Papierkorb\" System-Ordner gewählt, in dem die gelöschten Nachrichten abgelegt werden. +NOTIFICATION_DRAFTS = "Sie haben keinen \"Entwürfe\"-Systemordner gewählt, in dem Nachrichten beim Erstellen gespeichert werden." +NOTIFICATION_SPAM = "Sie haben keinen \"Spam\"-Systemordner gewählt, in dem die Spam-Nachrichten abgelegt werden. +Falls Sie Spam-Nachrichten endgültig löschen möchten, wählen Sie die Option \"Nicht anwenden\"." +NOTIFICATION_TRASH = "Sie haben keinen \"Papierkorb\"-Systemordner gewählt, in dem die gelöschten Nachrichten abgelegt werden. Falls Sie gelöschte Nachrichten endgültig löschen möchten, wählen Sie die Option \"Nicht anwenden\"." -NOTIFICATION_ARCHIVE = "Sie haben keinen \"Archiv\" System-Ordner gewählt, in dem die archivierten Nachrichten landen." +NOTIFICATION_ARCHIVE = "Sie haben keinen \"Archiv\"-Systemordner gewählt, in dem die archivierten Nachrichten abgelegt werden." [TITLES] LOADING = "Wird geladen" -LOGIN = "Login" +LOGIN = "Anmeldung" MAILBOX = "Postfach" SETTINGS = "Einstellungen" COMPOSE = "Erstellen" [UPLOAD] ERROR_FILE_IS_TOO_BIG = "Datei ist zu groß" -ERROR_FILE_PARTIALLY_UPLOADED = "Die Datei wurde aus einem nicht bekannten Grund unvollständig hochgeladen." +ERROR_FILE_PARTIALLY_UPLOADED = "Die Datei wurde aus einem unbekannten Grund unvollständig hochgeladen." ERROR_NO_FILE_UPLOADED = "Keine Datei hochgeladen" ERROR_MISSING_TEMP_FOLDER = "Die temporäre Datei fehlt" -ERROR_ON_SAVING_FILE = "Ein unbekannter Fehler trat beim Speichern auf" -ERROR_FILE_TYPE = "Ungültiger Datei-Typ" +ERROR_ON_SAVING_FILE = "Ein unbekannter Fehler trat beim Hochladen auf" +ERROR_FILE_TYPE = "Ungültiger Dateityp" ERROR_UNKNOWN = "Ein unbekannter Fehler trat beim Hochladen auf" [EDITOR] @@ -401,11 +401,11 @@ LABEL_FOLDERS_NAME = "Ordner" LABEL_ACCOUNTS_NAME = "Konten" LABEL_IDENTITY_NAME = "Identität" LABEL_IDENTITIES_NAME = "Identitäten" -LABEL_FILTERS_NAME = "Filters" -LABEL_TEMPLATES_NAME = "Templates" +LABEL_FILTERS_NAME = "Filter" +LABEL_TEMPLATES_NAME = "Vorlagen" LABEL_SECURITY_NAME = "Sicherheit" -LABEL_SOCIAL_NAME = "Sozial" -LABEL_THEMES_NAME = "Vorlagen" +LABEL_SOCIAL_NAME = "Social" +LABEL_THEMES_NAME = "Themen" LABEL_CHANGE_PASSWORD_NAME = "Passwort" LABEL_OPEN_PGP_NAME = "OpenPGP" BUTTON_BACK = "Zurück" @@ -415,7 +415,7 @@ LEGEND_FILTERS = "Filter" BUTTON_SAVE = "Speichern" BUTTON_ADD_FILTER = "Filter hinzufügen" BUTTON_DELETE = "Löschen" -BUTTON_RAW_SCRIPT = "Benutzerdefiniertes Script verwenden" +BUTTON_RAW_SCRIPT = "Benutzerdefiniertes Skript verwenden" SUBNAME_NONE = "Keine" SUBNAME_MOVE_TO = "Verschieben nach \"%FOLDER%\"" SUBNAME_FORWARD_TO = "Weiterleiten nach \"%EMAIL%\"" @@ -435,16 +435,16 @@ LABEL_SIGNATURE = "Signatur" LABEL_ADD_SIGNATURE_TO_ALL = "Signatur zu allen ausgehenden Nachrichten hinzufügen" [SETTINGS_SECURITY] -LEGEND_SECURITY = "Security" -LEGEND_TWO_FACTOR_AUTH = "2-Faktor-Authentifizierung" -LABEL_ENABLE_TWO_FACTOR = "2-Faktor-Authentifizierung aktivieren" +LEGEND_SECURITY = "Sicherheit" +LEGEND_TWO_FACTOR_AUTH = "Zwei-Faktor-Authentifizierung" +LABEL_ENABLE_TWO_FACTOR = "Zwei-Faktor-Authentifizierung aktivieren" LABEL_TWO_FACTOR_USER = "Benutzer" LABEL_TWO_FACTOR_STATUS = "Status" LABEL_TWO_FACTOR_SECRET = "Secret" LABEL_TWO_FACTOR_BACKUP_CODES = "Backup-Codes" -LABEL_AUTOLOGOUT = "Auto Logout" -AUTOLOGIN_NEVER_OPTION_NAME = "Never" -AUTOLOGIN_MINUTES_OPTION_NAME = "%MINUTES% minute(s)" +LABEL_AUTOLOGOUT = "Automatische Abmeldung" +AUTOLOGIN_NEVER_OPTION_NAME = "Nie" +AUTOLOGIN_MINUTES_OPTION_NAME = "%MINUTES% Minute(n)" BUTTON_CREATE = "Neuen Secret erstellen" BUTTON_CLEAR = "Zurücksetzen" BUTTON_TEST = "Testen" @@ -452,9 +452,9 @@ BUTTON_SHOW_SECRET = "Secret anzeigen" BUTTON_HIDE_SECRET = "Secret verbergen" TWO_FACTOR_SECRET_CONFIGURED_DESC = "Konfiguriert" TWO_FACTOR_SECRET_NOT_CONFIGURED_DESC = "Nicht konfiguriert" -TWO_FACTOR_SECRET_DESC = "Importieren Sie diese Informationen in Ihren Google Authenticator-Client (oder andere TOTP-Clienten) mit Hilfe des mitgelieferten QR-Code unten oder durch manuelle Eingabe des Codes." +TWO_FACTOR_SECRET_DESC = "Importieren Sie diese Informationen in Ihren Google-Authenticator-Client (oder andere TOTP-Clients) mit Hilfe des mitgelieferten QR-Codes unten oder durch manuelle Eingabe des Codes." TWO_FACTOR_BACKUP_CODES_DESC = "Wenn Sie keine Codes via Google Authenticator erhalten können, können Sie Backup-Codes für die Anmeldung verwenden. Nachdem Sie einen Backup-Code verwendet haben, um sich anzumelden, wird dieser inaktiv." -TWO_FACTOR_SECRET_TEST_BEFORE_DESC = "You can't change this setting before test." +TWO_FACTOR_SECRET_TEST_BEFORE_DESC = "Sie können diese Einstellung nicht vor einer Prüfung ändern." [SETTINGS_GENERAL] LEGEND_GENERAL = "Allgemein" @@ -463,19 +463,19 @@ LABEL_LAYOUT = "Layout" LABEL_LAYOUT_NO_SPLIT = "Keine Aufteilung" LABEL_LAYOUT_VERTICAL_SPLIT = "Vertikale Aufteilung" LABEL_LAYOUT_HORIZONTAL_SPLIT = "Horizontale Aufteilung" -LABEL_EDITOR = "Standard-Text-Editor" +LABEL_EDITOR = "Standard-Texteditor" LABEL_EDITOR_HTML = "HTML" -LABEL_EDITOR_PLAIN = "Text" +LABEL_EDITOR_PLAIN = "Unformatierter Text" LABEL_EDITOR_HTML_FORCED = "HTML (erzwungen)" -LABEL_EDITOR_PLAIN_FORCED = "Text (erzwungen)" +LABEL_EDITOR_PLAIN_FORCED = "Unformatierter Text (erzwungen)" LABEL_ANIMATION = "Interface-Animation" LABEL_ANIMATION_FULL = "Komplett" LABEL_ANIMATION_NORMAL = "Normal" LABEL_ANIMATION_NONE = "Keine" LABEL_VIEW_OPTIONS = "Optionen anzeigen" -LABEL_USE_PREVIEW_PANE = "Vorschau-Fenster nutzen" +LABEL_USE_PREVIEW_PANE = "Vorschaufenster nutzen" LABEL_USE_CHECKBOXES_IN_LIST = "Kontrollkästchen in der Liste anzeigen" -LABEL_USE_THREADS = "Thread-förmig anzeigen" +LABEL_USE_THREADS = "Als Unterhaltungen anzeigen" LABEL_REPLY_SAME_FOLDER = "Antworten im gleichen Ordner wie die Nachricht, auf die geantwortet wurde, abspeichern" LABEL_SHOW_IMAGES = "In der Nachricht enthaltene Bilder immer anzeigen" LABEL_SHOW_ANIMATION = "Animation anzeigen" @@ -487,65 +487,65 @@ LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Vom Browser blockiert.)" [SETTINGS_CONTACTS] LEGEND_CONTACTS = "Kontakte" -LABEL_CONTACTS_AUTOSAVE = "Automatisch Empfänger zu Ihrem Adressbuch hinzuzufügen" +LABEL_CONTACTS_AUTOSAVE = "Empfänger automatisch zu Ihrem Adressbuch hinzuzufügen" LEGEND_CONTACTS_SYNC = "Remote-Synchronisierung (CardDAV)" LABEL_CONTACTS_SYNC_ENABLE = "Remote-Synchronisierung aktivieren" LABEL_CONTACTS_SYNC_SERVER = "Server" -LABEL_CONTACTS_SYNC_AB_URL = "Adressbuch URL" +LABEL_CONTACTS_SYNC_AB_URL = "Adressbuch-URL" LABEL_CONTACTS_SYNC_USER = "Benutzer" LABEL_CONTACTS_SYNC_PASSWORD = "Passwort" [SETTINGS_THEMES] -LEGEND_THEMES = "Vorlagen" -LEGEND_THEMES_CUSTOM = "Konfiguration der selbst-definierten Vorlagen" +LEGEND_THEMES = "Themen" +LEGEND_THEMES_CUSTOM = "Konfiguration der selbsterstellten Themen" LABEL_CUSTOM_TYPE = "Typ" LABEL_CUSTOM_TYPE_LIGHT = "Hell" LABEL_CUSTOM_TYPE_DARK = "Dunkel" LABEL_CUSTOM_BACKGROUND_IMAGE = "Hintergrund" -BUTTON_UPLOAD_BACKGROUND_IMAGE = "Hintergrundvild hochladen(JPG, PNG)" +BUTTON_UPLOAD_BACKGROUND_IMAGE = "Hintergrundbild hochladen (JPG, PNG)" ERROR_FILE_IS_TOO_BIG = "Datei ist zu groß" -ERROR_FILE_TYPE_ERROR = "Ungültiger Datei-Typ! (nur JPG und PNG)" +ERROR_FILE_TYPE_ERROR = "Ungültiger Dateityp (nur JPG und PNG)" ERROR_UNKNOWN = "Ein unbekannter Fehler trat beim Hochladen auf" [SETTINGS_SOCIAL] LEGEND_GOOGLE = "Google" BUTTON_GOOGLE_CONNECT = "Mit Google verbinden" BUTTON_GOOGLE_DISCONNECT = "Von Google abmelden" -MAIN_GOOGLE_DESC = "Nach der Aktivierung der Anmeldung per Google können Sie sich hier mit dem Google-Button im Anmelde-Dialog anmelden." +MAIN_GOOGLE_DESC = "Nach der Aktivierung der Anmeldung per Google können Sie sich hier mit dem Google-Button im Anmeldedialog anmelden." LEGEND_FACEBOOK = "Facebook" BUTTON_FACEBOOK_CONNECT = "Mit Facebook verbinden" BUTTON_FACEBOOK_DISCONNECT = "Von Facebook abmelden" -MAIN_FACEBOOK_DESC = "Nach der Aktivierung der Anmeldung per Facebook können Sie sich hier mit dem Facebook-Button im Anmelde-Dialog anmelden." +MAIN_FACEBOOK_DESC = "Nach der Aktivierung der Anmeldung per Facebook können Sie sich hier mit dem Facebook-Button im Anmeldedialog anmelden." LEGEND_TWITTER = "Twitter" BUTTON_TWITTER_CONNECT = "Mit Twitter verbinden" BUTTON_TWITTER_DISCONNECT = "Von Twitter abmelden" -MAIN_TWITTER_DESC = "Nach der Aktivierung der Anmeldung per Twitter können Sie sich hier mit dem Twitter-Button im Anmelde-Dialog anmelden." +MAIN_TWITTER_DESC = "Nach der Aktivierung der Anmeldung per Twitter können Sie sich hier mit dem Twitter-Button im Anmeldedialog anmelden." [SETTINGS_FOLDERS] -LEGEND_FOLDERS = "Ordner-Liste" +LEGEND_FOLDERS = "Ordnerliste" BUTTON_CREATE = "Ordner anlegen" -BUTTON_SYSTEM = "System-Ordner wählen" +BUTTON_SYSTEM = "Systemordner wählen" BUTTON_DELETE = "Löschen" BUTTON_SUBSCRIBE = "Abonnieren" BUTTON_UNSUBSCRIBE = "Abonnement beenden" -LOADING_PROCESS = "Ordner-Liste wird geladen" +LOADING_PROCESS = "Ordnerliste wird geladen" CREATING_PROCESS = "Ordner wird angelegt" DELETING_PROCESS = "Ordner wird gelöscht" RENAMING_PROCESS = "Ordner wird umbenannt" DELETING_ASK = "Sind Sie sicher?" TO_MANY_FOLDERS_DESC_1 = "Sie haben zu viele Ordner!" -TO_MANY_FOLDERS_DESC_2 = "Wir zeigen aus Leistungsgründen nur einen Teil von ihnen." +TO_MANY_FOLDERS_DESC_2 = "Aus Leistungsgründen zeigen wir nur einen Teil davon an." [SETTINGS_ACCOUNTS] -LEGEND_ACCOUNTS = "Liste der Konten" -LEGEND_IDENTITIES = "Identities" -LEGEND_ACCOUNTS_AND_IDENTITIES = "Accounts and Identities" +LEGEND_ACCOUNTS = "Konten" +LEGEND_IDENTITIES = "Identitäten" +LEGEND_ACCOUNTS_AND_IDENTITIES = "Konten und Identitäten" BUTTON_ADD_ACCOUNT = "Konto hinzufügen" -BUTTON_ADD_IDENTITY = "Add an Identity" +BUTTON_ADD_IDENTITY = "Identität hinzufügen" BUTTON_DELETE = "Löschen" -LOADING_PROCESS = "Liste der Konten wird geladen" +LOADING_PROCESS = "Aktualisiere Kontenliste" DELETING_ASK = "Sind Sie sicher?" -DEFAULT_IDENTITY_LABEL = "default" +DEFAULT_IDENTITY_LABEL = "Standard" [SETTINGS_IDENTITIES] LEGEND_IDENTITY = "Identität" @@ -564,65 +564,65 @@ DELETING_ASK = "Sind Sie sicher?" LEGEND_CHANGE_PASSWORD = "Passwort ändern" LABEL_CURRENT_PASSWORD = "Aktuelles Passwort" LABEL_NEW_PASSWORD = "Neues Passwort" -LABEL_REPEAT_PASSWORD = "Neues Passwort wiederholen" +LABEL_REPEAT_PASSWORD = "Neues Passwort bestätigen" BUTTON_UPDATE_PASSWORD = "Neues Passwort setzen" -ERROR_PASSWORD_MISMATCH = "Passwörter stimmen nicht überein. Versuchen Sie es bitte erneut." +ERROR_PASSWORD_MISMATCH = "Passwörter stimmen nicht überein; versuchen Sie es bitte erneut" [SETTINGS_OPEN_PGP] LEGEND_OPEN_PGP = "OpenPGP" -BUTTON_ADD_OPEN_PGP_KEY = "Import OpenPGP Schlüssel" -BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP Schlüssel generieren" +BUTTON_ADD_OPEN_PGP_KEY = "OpenPGP-Schlüssel importieren" +BUTTON_GENERATE_OPEN_PGP_KEYS = "OpenPGP-Schlüssel generieren" TITLE_PRIVATE = "Privat" TITLE_PUBLIC = "Öffentlich" DELETING_ASK = "Sind Sie sicher?" [SHORTCUTS_HELP] -LEGEND_SHORTCUTS_HELP = "Tastaturkürzel Hilfe" +LEGEND_SHORTCUTS_HELP = "Tastaturkürzel-Hilfe" TAB_MAILBOX = "Postfach" TAB_MESSAGE_LIST = "Nachrichtenliste" TAB_MESSAGE_VIEW = "Nachrichtenansicht" TAB_COMPOSE = "Nachricht schreiben" -LABEL_OPEN_USER_DROPDOWN = "Benutzer-Auswahl öffnen" +LABEL_OPEN_USER_DROPDOWN = "Benutzerauswahl öffnen" LABEL_REPLY = "Antworten" LABEL_REPLY_ALL = "Allen Antworten" LABEL_FORWARD = "Weiterleiten" -LABEL_FORWARD_MULTIPLY = "Weiterleiten (mehrfach)" +LABEL_FORWARD_MULTIPLY = "Als Anhang/Anhänge weiterleiten" LABEL_HELP = "Hilfe" LABEL_CHECK_ALL = "Alle Nachrichten auswählen" LABEL_ARCHIVE = "Archivieren" LABEL_DELETE = "Löschen" LABEL_MOVE = "Verschieben" -LABEL_READ = "Ausgewählte Nachrichten gelesen" -LABEL_UNREAD = "Ausgewählte Nachrichten ungelesen" -LABEL_IMPORTANT = "Wichtig, Markiere ausgewählte Nachrichten" +LABEL_READ = "Ausgewählte Nachrichten als gelesen markieren" +LABEL_UNREAD = "Ausgewählte Nachrichten als ungelesen markieren" +LABEL_IMPORTANT = "Wichtig, ausgewählte Nachrichten markieren" LABEL_SEARCH = "Suchen" LABEL_CANCEL_SEARCH = "Suche abbrechen" LABEL_FULLSCREEN_ENTER = "Vollbild (Vorschaubereich-Layout)" -LABEL_VIEW_MESSAGE_ENTER = "Nachricht anzeigen (Kein Vorschaubereich-Layout)" +LABEL_VIEW_MESSAGE_ENTER = "Nachricht anzeigen (kein Vorschaubereich-Layout)" LABEL_SWITCH_TO_MESSAGE = "Fokus auf ausgewählte Nachricht schalten" -LABEL_SWITCH_TO_FOLDER_LIST = "Fokus auf Ordner-Liste schalten" +LABEL_SWITCH_TO_FOLDER_LIST = "Fokus auf Ordnerliste schalten" LABEL_FULLSCREEN_TOGGLE = "Vollbildmodus umschalten" -LABEL_BLOCKQUOTES_TOGGLE = "Nachricht-Blockzitate umschalten" +LABEL_BLOCKQUOTES_TOGGLE = "Nachrichten-Blockzitate umschalten" LABEL_PRINT = "Drucken" LABEL_EXIT_FULLSCREEN = "Vollbildmodus verlassen" -LABEL_CLOSE_MESSAGE = "Nachricht schließen (Kein Vorschaubereich-Layout)" +LABEL_CLOSE_MESSAGE = "Nachricht schließen (kein Vorschaubereich-Layout)" LABEL_SWITCH_TO_LIST = "Fokus auf Nachrichtenliste zurückschalten" -LABEL_OPEN_COMPOSE_POPUP = "Öffne Erstellen Popup" -LABEL_OPEN_IDENTITIES_DROPDOWN = "Öffne Identitätenauswahl" +LABEL_OPEN_COMPOSE_POPUP = "Erstellen-Popup öffnen" +LABEL_OPEN_IDENTITIES_DROPDOWN = "Identitätsauswahl öffnen" LABEL_SAVE_MESSAGE = "Nachricht speichern" LABEL_SEND_MESSAGE = "Nachricht senden" LABEL_CLOSE_COMPOSE = "Popup schließen" [PGP_NOTIFICATIONS] NO_PUBLIC_KEYS_FOUND = "Keine öffentlichen Schlüssel gefunden" -NO_PUBLIC_KEYS_FOUND_FOR = "Keine öffentlichen Schlüssel für E-Mail \"%EMAIL%\" gefunden" +NO_PUBLIC_KEYS_FOUND_FOR = "Keine öffentlichen Schlüssel für die E-Mail \"%EMAIL%\" gefunden" NO_PRIVATE_KEY_FOUND = "Keine privaten Schlüssel gefunden" -NO_PRIVATE_KEY_FOUND_FOR = "Keine privaten Schlüssel für E-Mail \"%EMAIL%\" gefunden" -UNVERIFIRED_SIGNATURE = "Unverifizierte Unterschrift" -DECRYPTION_ERROR = "OpenPGP Entschlüsselungsfehler" +NO_PRIVATE_KEY_FOUND_FOR = "Keine privaten Schlüssel für die E-Mail \"%EMAIL%\" gefunden" +UNVERIFIRED_SIGNATURE = "Nich verifizierte Unterschrift" +DECRYPTION_ERROR = "OpenPGP-Entschlüsselungsfehler" GOOD_SIGNATURE = "Gültige Unterschrift von %USER%" -PGP_ERROR = "OpenPGP Fehler: %ERROR%" -SPECIFY_FROM_EMAIL = "Bitte VON E-Mail-Adresse angeben" +PGP_ERROR = "OpenPGP-Fehler: %ERROR%" +SPECIFY_FROM_EMAIL = "Bitte die VON-E-Mail-Adresse angeben" SPECIFY_AT_LEAST_ONE_RECIPIENT = "Bitte geben Sie mindestens einen Empfänger an" [NOTIFICATIONS] @@ -631,26 +631,26 @@ AUTH_ERROR = "Authentifizierung fehlgeschlagen" ACCESS_ERROR = "Zugriffsfehler" CONNECTION_ERROR = "Kann nicht mit dem Server verbinden" CAPTCHA_ERROR = "Falsche CAPTCHA-Eingabe." -SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." -SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." -SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE = "Diese Social ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Daten an und aktivieren Sie dieses Feature in Ihren Konten-Einstellungen." +SOCIAL_FACEBOOK_LOGIN_ACCESS_DISABLE = "Diese Social-ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Anmeldedaten an und aktivieren Sie diese Funktion in Ihren Konteneinstellungen." +SOCIAL_TWITTER_LOGIN_ACCESS_DISABLE = "Diese Social-ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Anmeldedaten an und aktivieren Sie diese Funktion in Ihren Konteneinstellungen." +SOCIAL_GOOGLE_LOGIN_ACCESS_DISABLE = "Diese Social-ID ist bisher mit keinem E-Mail-Konto verbunden. Melden Sie sich mit Ihren E-Mail-Anmeldedaten an und aktivieren Sie diese Funktion in Ihren Konteneinstellungen." DOMAIN_NOT_ALLOWED = "Diese Domain ist nicht zugelassen." ACCOUNT_NOT_ALLOWED = "Konto ist nicht zugelassen." ACCOUNT_TWO_FACTOR_AUTH_REQUIRED = "Zwei-Faktor-Authentifizierung erforderlich" -ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Zwei-Faktor-Authentifizierung Fehler" +ACCOUNT_TWO_FACTOR_AUTH_ERROR = "Fehler bei Zwei-Faktor-Authentifizierung" COULD_NOT_SAVE_NEW_PASSWORD = "Neues Passwort konnte nicht gespeichert werden" -CURRENT_PASSWORD_INCORRECT = "Aktuelles Passwort inkorrekt" +CURRENT_PASSWORD_INCORRECT = "Aktuelles Passwort falsch" NEW_PASSWORD_SHORT = "Passwort ist zu kurz" NEW_PASSWORD_WEAK = "Passwort ist zu einfach" -NEW_PASSWORD_FORBIDDENT = "Passwort enthält verbotene Zeichen" -CONTACTS_SYNC_ERROR = "Kontakte Synchronisationsfehler" +NEW_PASSWORD_FORBIDDENT = "Passwort enthält unzulässige Zeichen" +CONTACTS_SYNC_ERROR = "Fehler bei Kontakte-Synchronisierung" CANT_GET_MESSAGE_LIST = "Die Nachrichtenliste ist nicht verfügbar" CANT_GET_MESSAGE = "Diese Nachricht ist nicht verfügbar" CANT_DELETE_MESSAGE = "Diese Nachricht kann nicht gelöscht werden" CANT_MOVE_MESSAGE = "Diese Nachricht kann nicht verschoben werden" CANT_SAVE_MESSAGE = "Diese Nachricht kann nicht gespeichert werden" CANT_SEND_MESSAGE = "Diese Nachricht kann nicht gesendet werden" -INVALID_RECIPIENTS = "Ungültige Empfänger-Adresse" +INVALID_RECIPIENTS = "Ungültige Empfängeradressen" CANT_SAVE_FILTERS = "Die Filter können nicht gespeichert werden" CANT_GET_FILTERS = "Die Filter sind nicht verfügbar" FILTERS_ARE_NOT_CORRECT = "Die Filter sind fehlerhaft" @@ -662,19 +662,19 @@ CANT_SUBSCRIBE_FOLDER = "Dieser Ordner kann nicht abonniert werden" CANT_UNSUBSCRIBE_FOLDER = "Das Abonnement dieses Ordners kann nicht gelöscht werden" CANT_SAVE_SETTINGS = "Einstellungen können nicht gespeichert werden" CANT_SAVE_PLUGIN_SETTINGS = "Einstellungen können nicht gespeichert werden" -DOMAIN_ALREADY_EXISTS = "Diese Domain gibt es schon" -CANT_INSTALL_PACKAGE = "Package konnte nicht installiert werden" -CANT_DELETE_PACKAGE = "Package konnte nicht entfernt werden" -INVALID_PLUGIN_PACKAGE = "Plugin-Package ist ungültig" -UNSUPPORTED_PLUGIN_PACKAGE = "Plugin-Package wird nicht unterstützt" -LICENSING_SERVER_IS_UNAVAILABLE = "Abonnement-Server kann nicht erreicht werden" -LICENSING_DOMAIN_EXPIRED = "Das Abonnement dieser Domain ist ausgelaufen" -LICENSING_DOMAIN_BANNED = "Das Abonnement dieser Domain ist gesperrt." -DEMO_SEND_MESSAGE_ERROR = "Dieser Demo-Account darf aus Sicherheitsgründen keine Nachrichten an externe E-Mail-Adressen versenden!" +DOMAIN_ALREADY_EXISTS = "Diese Domain existiert bereits" +CANT_INSTALL_PACKAGE = "Paket konnte nicht installiert werden" +CANT_DELETE_PACKAGE = "Paket konnte nicht entfernt werden" +INVALID_PLUGIN_PACKAGE = "Plugin-Paket ist ungültig" +UNSUPPORTED_PLUGIN_PACKAGE = "Plugin-Paket wird nicht unterstützt" +LICENSING_SERVER_IS_UNAVAILABLE = "Subscription-Server kann nicht erreicht werden" +LICENSING_DOMAIN_EXPIRED = "Die Subscription dieser Domain ist ausgelaufen." +LICENSING_DOMAIN_BANNED = "Die Subscription dieser Domain ist gesperrt." +DEMO_SEND_MESSAGE_ERROR = "Dieses Demokonto darf aus Sicherheitsgründen keine Nachrichten an externe E-Mail-Adressen versenden!" DEMO_ACCOUNT_ERROR = "Aus Sicherheitsgründen ist dieses Konto nicht zu dieser Aktion berechtigt!" -ACCOUNT_ALREADY_EXISTS = "Dieses Konto gibt es schon." +ACCOUNT_ALREADY_EXISTS = "Dieses Konto existiert bereits" MAIL_SERVER_ERROR = "Beim Zugriff auf den E-Mail-Server trat ein Fehler auf." -INVALID_INPUT_ARGUMENT = "Fehlerhafte Eingabe" +INVALID_INPUT_ARGUMENT = "Ungültige Eingabe" UNKNOWN_ERROR = "Unbekannter Fehler" [STATIC] @@ -684,10 +684,10 @@ PHP_EXSTENSIONS_ERROR_DESC = "Notwendige PHP-Erweiterungen sind in Ihrer PHP-Kon PHP_VERSION_ERROR_DESC = "Ihre PHP Version (%VERSION%) ist älter als die notwendige Version: 5.3.0!" NO_SCRIPT_TITLE = "Diese Anwendung benötigt JavaScript." NO_SCRIPT_DESC = "Ihr Browser unterstützt JavaScript nicht. -Aktivieren Sie bitte die Javascript-Unterstützung in Ihrem Browser und versuchen Sie es noch einmal." +Aktivieren Sie bitte die JavaScript-Unterstützung in Ihrem Browser und versuchen Sie es erneut." NO_COOKIE_TITLE = "Diese Anwendung benötigt Cookies." NO_COOKIE_DESC = "Ihr Browser unterstützt Cookies nicht. -Aktivieren Sie bitte die Cookie-Unterstützung in Ihrem Browser und versuchen Sie es noch einmal." +Aktivieren Sie bitte die Cookie-Unterstützung in Ihrem Browser und versuchen Sie es erneut." BAD_BROWSER_TITLE = "Ihr Browser ist veraltet." -BAD_BROWSER_DESC = "Um alle Features dieser Anwendung nutzen zu können, -sollten Sie einen aktuellen Browser installieren!" \ No newline at end of file +BAD_BROWSER_DESC = "Um alle Funktionen dieser Anwendung nutzen zu können, +sollten Sie einen der folgenden Browser herunterladen und installieren:" \ No newline at end of file From 7f9ad75257c059eb90ffe0c268e4224eb22a8794 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 21 Feb 2015 03:56:39 +0400 Subject: [PATCH 2/9] Additional ckeditor configurations --- dev/Common/Globals.js | 8 ++++++++ dev/Common/HtmlEditor.js | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/dev/Common/Globals.js b/dev/Common/Globals.js index cf5e999b1..c70e1839b 100644 --- a/dev/Common/Globals.js +++ b/dev/Common/Globals.js @@ -129,7 +129,15 @@ 'removeDialogTabs': 'link:advanced;link:target;image:advanced;images:advanced', 'extraPlugins': 'plain,signature', + 'allowedContent': true, + 'extraAllowedContent': true, + + 'forceEnterMode': true, + + 'autoParagraph': false, + 'fillEmptyBlocks': false, + 'ignoreEmptyParagraph': true, 'font_defaultLabel': 'Arial', 'fontSize_defaultLabel': '13', diff --git a/dev/Common/HtmlEditor.js b/dev/Common/HtmlEditor.js index 7a4bf479a..73e3fa328 100644 --- a/dev/Common/HtmlEditor.js +++ b/dev/Common/HtmlEditor.js @@ -267,6 +267,19 @@ window.CKEDITOR.env.isCompatible = true; } +// oConfig.allowedContent = { +// $1: { +// elements: window.CKEDITOR.dtd, +// attributes: true, +// styles: true, +// classes: true +// } +// }; +// +// oConfig.disallowedContent = 'script; style; iframe; frame; *[on*]'; + + window.CKEDITOR.dtd.$removeEmpty['p'] = 1; + self.editor = window.CKEDITOR.appendTo(self.$element[0], oConfig); self.editor.on('key', function(oEvent) { From d7d88bef7c337191f89ec04666ea7ab705f2fc86 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 21 Feb 2015 04:00:45 +0400 Subject: [PATCH 3/9] knockout 3.3 --- gulpfile.js | 2 +- vendors/knockout/knockout-3.3.0.js | 115 +++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 vendors/knockout/knockout-3.3.0.js diff --git a/gulpfile.js b/gulpfile.js index 86c1507d3..ff5587109 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -160,7 +160,7 @@ cfg.paths.js = { 'vendors/routes/signals.min.js', 'vendors/routes/hasher.min.js', 'vendors/routes/crossroads.min.js', - 'vendors/knockout/knockout-3.2.0.js', + 'vendors/knockout/knockout-3.3.0.js', // 'vendors/knockout-punches/knockout.punches.min.js', 'vendors/knockout-projections/knockout-projections-1.0.0.min.js', 'vendors/knockout-sortable/knockout-sortable.min.js', diff --git a/vendors/knockout/knockout-3.3.0.js b/vendors/knockout/knockout-3.3.0.js new file mode 100644 index 000000000..d1af860cd --- /dev/null +++ b/vendors/knockout/knockout-3.3.0.js @@ -0,0 +1,115 @@ +/*! + * Knockout JavaScript library v3.3.0 + * (c) Steven Sanderson - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */ + +(function() {(function(p){var y=this||(0,eval)("this"),w=y.document,M=y.navigator,u=y.jQuery,E=y.JSON;(function(p){"function"===typeof define&&define.amd?define(["exports","require"],p):"function"===typeof require&&"object"===typeof exports&&"object"===typeof module?p(module.exports||exports):p(y.ko={})})(function(N,O){function J(a,d){return null===a||typeof a in Q?a===d:!1}function R(a,d){var c;return function(){c||(c=setTimeout(function(){c=p;a()},d))}}function S(a,d){var c;return function(){clearTimeout(c); +c=setTimeout(a,d)}}function K(b,d,c,e){a.d[b]={init:function(b,k,h,l,g){var m,x;a.w(function(){var q=a.a.c(k()),n=!c!==!q,r=!x;if(r||d||n!==m)r&&a.Z.oa()&&(x=a.a.la(a.e.childNodes(b),!0)),n?(r||a.e.T(b,a.a.la(x)),a.Ja(e?e(g,q):g,b)):a.e.ma(b),m=n},null,{q:b});return{controlsDescendantBindings:!0}}};a.h.ka[b]=!1;a.e.R[b]=!0}var a="undefined"!==typeof N?N:{};a.b=function(b,d){for(var c=b.split("."),e=a,f=0;fa.a.m(c,b[g])&&c.push(b[g]);return c},Ka:function(a,b){a=a||[];for(var c=[],g=0,d=a.length;gd?g&&b.push(c):g||b.splice(d,1)},za:f,extend:d,Fa:c,Ga:f?c:d,A:b,pa:function(a,b){if(!a)return a;var c={},g;for(g in a)a.hasOwnProperty(g)&&(c[g]=b(a[g],g,a));return c},Ra:function(b){for(;b.firstChild;)a.removeNode(b.firstChild)},Jb:function(b){b=a.a.O(b);for(var c=(b[0]&&b[0].ownerDocument||w).createElement("div"),g=0,d=b.length;g< +d;g++)c.appendChild(a.S(b[g]));return c},la:function(b,c){for(var g=0,d=b.length,e=[];gg?a.setAttribute("selected",b):a.selected=b},ib:function(a){return null===a||a===p?"":a.trim?a.trim():a.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Dc:function(a,b){a=a||"";return b.length>a.length?!1:a.substring(0,b.length)===b},jc:function(a,b){if(a===b)return!0;if(11===a.nodeType)return!1;if(b.contains)return b.contains(3===a.nodeType? +a.parentNode:a);if(b.compareDocumentPosition)return 16==(b.compareDocumentPosition(a)&16);for(;a&&a!=b;)a=a.parentNode;return!!a},Qa:function(b){return a.a.jc(b,b.ownerDocument.documentElement)},tb:function(b){return!!a.a.vb(b,a.a.Qa)},v:function(a){return a&&a.tagName&&a.tagName.toLowerCase()},n:function(b,c,d){var m=g&&l[c];if(!m&&u)u(b).bind(c,d);else if(m||"function"!=typeof b.addEventListener)if("undefined"!=typeof b.attachEvent){var e=function(a){d.call(b,a)},f="on"+c;b.attachEvent(f,e);a.a.C.fa(b, +function(){b.detachEvent(f,e)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else b.addEventListener(c,d,!1)},qa:function(b,c){if(!b||!b.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var g;"input"===a.a.v(b)&&b.type&&"click"==c.toLowerCase()?(g=b.type,g="checkbox"==g||"radio"==g):g=!1;if(u&&!g)u(b).trigger(c);else if("function"==typeof w.createEvent)if("function"==typeof b.dispatchEvent)g=w.createEvent(h[c]||"HTMLEvents"),g.initEvent(c, +!0,!0,y,0,0,0,0,0,!1,!1,!1,!1,0,b),b.dispatchEvent(g);else throw Error("The supplied element doesn't support dispatchEvent");else if(g&&b.click)b.click();else if("undefined"!=typeof b.fireEvent)b.fireEvent("on"+c);else throw Error("Browser doesn't support triggering events");},c:function(b){return a.F(b)?b():b},cb:function(b){return a.F(b)?b.B():b},Ia:function(b,c,g){var d;c&&("object"===typeof b.classList?(d=b.classList[g?"add":"remove"],a.a.o(c.match(m),function(a){d.call(b.classList,a)})):"string"=== +typeof b.className.baseVal?e(b.className,"baseVal",c,g):e(b,"className",c,g))},Ha:function(b,c){var g=a.a.c(c);if(null===g||g===p)g="";var d=a.e.firstChild(b);!d||3!=d.nodeType||a.e.nextSibling(d)?a.e.T(b,[b.ownerDocument.createTextNode(g)]):d.data=g;a.a.mc(b)},Rb:function(a,b){a.name=b;if(7>=g)try{a.mergeAttributes(w.createElement(""),!1)}catch(c){}},mc:function(a){9<=g&&(a=1==a.nodeType?a:a.parentNode,a.style&&(a.style.zoom=a.style.zoom))},kc:function(a){if(g){var b=a.style.width; +a.style.width=0;a.style.width=b}},Bc:function(b,c){b=a.a.c(b);c=a.a.c(c);for(var g=[],d=b;d<=c;d++)g.push(d);return g},O:function(a){for(var b=[],c=0,g=a.length;c",""]||!f.indexOf("", +""]||(!f.indexOf("",""]||[0,"",""],k="ignored
"+f[1]+b+f[2]+"
";for("function"==typeof c.innerShiv?e.appendChild(c.innerShiv(k)):e.innerHTML=k;f[0]--;)e=e.lastChild;c=a.a.O(e.lastChild.childNodes)}return c};a.a.gb=function(b,d){a.a.Ra(b);d=a.a.c(d);if(null!==d&&d!==p)if("string"!=typeof d&&(d=d.toString()),u)u(b).html(d);else for(var c=a.a.ca(d,b.ownerDocument),e=0;ef[0]?r+f[0]:f[0]),r);for(var r=1===v?r:Math.min(d+(f[1]||0),r),v=d+v-2,t=Math.max(r,v),G=[],A=[],p=2;dc;c++)b=b();return b})};a.toJSON=function(b,c,d){b=a.Vb(b);return a.a.jb(b,c,d)};c.prototype={save:function(b,c){var d=a.a.m(this.keys,b);0<=d?this.mb[d]=c:(this.keys.push(b),this.mb.push(c))},get:function(b){b=a.a.m(this.keys,b);return 0<=b?this.mb[b]:p}}})();a.b("toJS",a.Vb);a.b("toJSON",a.toJSON);(function(){a.i={s:function(b){switch(a.a.v(b)){case "option":return!0===b.__ko__hasDomDataOptionValue__?a.a.f.get(b,a.d.options.ab):7>=a.a.M?b.getAttributeNode("value")&&b.getAttributeNode("value").specified? +b.value:b.text:b.value;case "select":return 0<=b.selectedIndex?a.i.s(b.options[b.selectedIndex]):p;default:return b.value}},Y:function(b,d,c){switch(a.a.v(b)){case "option":switch(typeof d){case "string":a.a.f.set(b,a.d.options.ab,p);"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__;b.value=d;break;default:a.a.f.set(b,a.d.options.ab,d),b.__ko__hasDomDataOptionValue__=!0,b.value="number"===typeof d?d:""}break;case "select":if(""===d||null===d)d=p;for(var e=-1,f=0,k=b.options.length, +h;f=n){c.push(x&&h.length?{key:x, +value:h.join("")}:{unknown:x||h.join("")});x=n=0;h=[];continue}}else if(58===t){if(!n&&!x&&1===h.length){x=h.pop();continue}}else 47===t&&r&&1a.a.M&&(a.g.register=function(a){return function(b){w.createElement(b); +return a.apply(this,arguments)}}(a.g.register),w.createDocumentFragment=function(b){return function(){var d=b(),f=a.g.$b,k;for(k in f)f.hasOwnProperty(k)&&d.createElement(k);return d}}(w.createDocumentFragment))})();(function(b){function d(b,c,d){c=c.template;if(!c)throw Error("Component '"+b+"' has no template");b=a.a.la(c);a.e.T(d,b)}function c(a,b,c,d){var e=a.createViewModel;return e?e.call(a,d,{element:b,templateNodes:c}):d}var e=0;a.d.component={init:function(f,k,h,l,g){function m(){var a=x&& +x.dispose;"function"===typeof a&&a.call(x);q=null}var x,q,n=a.a.O(a.e.childNodes(f));a.a.C.fa(f,m);a.w(function(){var l=a.a.c(k()),h,t;"string"===typeof l?h=l:(h=a.a.c(l.name),t=a.a.c(l.params));if(!h)throw Error("No component name specified");var p=q=++e;a.g.get(h,function(e){if(q===p){m();if(!e)throw Error("Unknown component '"+h+"'");d(h,e,f);var l=c(e,f,n,t);e=g.createChildContext(l,b,function(a){a.$component=l;a.$componentTemplateNodes=n});x=l;a.Ja(e,f)}})},null,{q:f});return{controlsDescendantBindings:!0}}}; +a.e.R.component=!0})();var P={"class":"className","for":"htmlFor"};a.d.attr={update:function(b,d){var c=a.a.c(d())||{};a.a.A(c,function(c,d){d=a.a.c(d);var k=!1===d||null===d||d===p;k&&b.removeAttribute(c);8>=a.a.M&&c in P?(c=P[c],k?b.removeAttribute(c):b[c]=d):k||b.setAttribute(c,d.toString());"name"===c&&a.a.Rb(b,k?"":d.toString())})}};(function(){a.d.checked={after:["value","attr"],init:function(b,d,c){function e(){var e=b.checked,f=x?k():e;if(!a.Z.Ca()&&(!l||e)){var h=a.k.u(d);g?m!==f?(e&&(a.a.ga(h, +f,!0),a.a.ga(h,m,!1)),m=f):a.a.ga(h,f,e):a.h.ra(h,c,"checked",f,!0)}}function f(){var c=a.a.c(d());b.checked=g?0<=a.a.m(c,k()):h?c:k()===c}var k=a.Nb(function(){return c.has("checkedValue")?a.a.c(c.get("checkedValue")):c.has("value")?a.a.c(c.get("value")):b.value}),h="checkbox"==b.type,l="radio"==b.type;if(h||l){var g=h&&a.a.c(d())instanceof Array,m=g?k():p,x=l||g;l&&!b.name&&a.d.uniqueName.init(b,function(){return!0});a.w(e,null,{q:b});a.a.n(b,"click",e);a.w(f,null,{q:b})}}};a.h.V.checked=!0;a.d.checkedValue= +{update:function(b,d){b.value=a.a.c(d())}}})();a.d.css={update:function(b,d){var c=a.a.c(d());null!==c&&"object"==typeof c?a.a.A(c,function(c,d){d=a.a.c(d);a.a.Ia(b,c,d)}):(c=String(c||""),a.a.Ia(b,b.__ko__cssValue,!1),b.__ko__cssValue=c,a.a.Ia(b,c,!0))}};a.d.enable={update:function(b,d){var c=a.a.c(d());c&&b.disabled?b.removeAttribute("disabled"):c||b.disabled||(b.disabled=!0)}};a.d.disable={update:function(b,d){a.d.enable.update(b,function(){return!a.a.c(d())})}};a.d.event={init:function(b,d,c, +e,f){var k=d()||{};a.a.A(k,function(h){"string"==typeof h&&a.a.n(b,h,function(b){var g,m=d()[h];if(m){try{var k=a.a.O(arguments);e=f.$data;k.unshift(e);g=m.apply(e,k)}finally{!0!==g&&(b.preventDefault?b.preventDefault():b.returnValue=!1)}!1===c.get(h+"Bubble")&&(b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation())}})})}};a.d.foreach={Ib:function(b){return function(){var d=b(),c=a.a.cb(d);if(!c||"number"==typeof c.length)return{foreach:d,templateEngine:a.P.Va};a.a.c(d);return{foreach:c.data,as:c.as, +includeDestroyed:c.includeDestroyed,afterAdd:c.afterAdd,beforeRemove:c.beforeRemove,afterRender:c.afterRender,beforeMove:c.beforeMove,afterMove:c.afterMove,templateEngine:a.P.Va}}},init:function(b,d){return a.d.template.init(b,a.d.foreach.Ib(d))},update:function(b,d,c,e,f){return a.d.template.update(b,a.d.foreach.Ib(d),c,e,f)}};a.h.ka.foreach=!1;a.e.R.foreach=!0;a.d.hasfocus={init:function(b,d,c){function e(e){b.__ko_hasfocusUpdating=!0;var f=b.ownerDocument;if("activeElement"in f){var g;try{g=f.activeElement}catch(m){g= +f.body}e=g===b}f=d();a.h.ra(f,c,"hasfocus",e,!0);b.__ko_hasfocusLastValue=e;b.__ko_hasfocusUpdating=!1}var f=e.bind(null,!0),k=e.bind(null,!1);a.a.n(b,"focus",f);a.a.n(b,"focusin",f);a.a.n(b,"blur",k);a.a.n(b,"focusout",k)},update:function(b,d){var c=!!a.a.c(d());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===c||(c?b.focus():b.blur(),a.k.u(a.a.qa,null,[b,c?"focusin":"focusout"]))}};a.h.V.hasfocus=!0;a.d.hasFocus=a.d.hasfocus;a.h.V.hasFocus=!0;a.d.html={init:function(){return{controlsDescendantBindings:!0}}, +update:function(b,d){a.a.gb(b,d())}};K("if");K("ifnot",!1,!0);K("with",!0,!1,function(a,d){return a.createChildContext(d)});var L={};a.d.options={init:function(b){if("select"!==a.a.v(b))throw Error("options binding applies only to SELECT elements");for(;0a.a.M)var k=a.a.f.I(),h=a.a.f.I(),l=function(b){var c=this.activeElement;(c=c&&a.a.f.get(c,h))&&c(b)},g=function(b,c){var d=b.ownerDocument;a.a.f.get(d,k)||(a.a.f.set(d,k,!0),a.a.n(d,"selectionchange",l));a.a.f.set(b,h,c)};a.d.textInput={init:function(b,c,l){function h(c,d){a.a.n(b,c,d)}function k(){var d=a.a.c(c());if(null===d||d===p)d="";w!==p&&d===w?setTimeout(k,4):b.value!==d&&(u=d,b.value=d)}function v(){A|| +(w=b.value,A=setTimeout(t,4))}function t(){clearTimeout(A);w=A=p;var d=b.value;u!==d&&(u=d,a.h.ra(c(),l,"textInput",d))}var u=b.value,A,w;10>a.a.M?(h("propertychange",function(a){"value"===a.propertyName&&t()}),8==a.a.M&&(h("keyup",t),h("keydown",t)),8<=a.a.M&&(g(b,t),h("dragend",v))):(h("input",t),5>e&&"textarea"===a.a.v(b)?(h("keydown",v),h("paste",v),h("cut",v)):11>d?h("keydown",v):4>f&&(h("DOMAutoComplete",t),h("dragdrop",t),h("drop",t)));h("change",t);a.w(k,null,{q:b})}};a.h.V.textInput=!0;a.d.textinput= +{preprocess:function(a,b,c){c("textInput",a)}}})();a.d.uniqueName={init:function(b,d){if(d()){var c="ko_unique_"+ ++a.d.uniqueName.fc;a.a.Rb(b,c)}}};a.d.uniqueName.fc=0;a.d.value={after:["options","foreach"],init:function(b,d,c){if("input"!=b.tagName.toLowerCase()||"checkbox"!=b.type&&"radio"!=b.type){var e=["change"],f=c.get("valueUpdate"),k=!1,h=null;f&&("string"==typeof f&&(f=[f]),a.a.ia(e,f),e=a.a.wb(e));var l=function(){h=null;k=!1;var e=d(),g=a.i.s(b);a.h.ra(e,c,"value",g)};!a.a.M||"input"!= +b.tagName.toLowerCase()||"text"!=b.type||"off"==b.autocomplete||b.form&&"off"==b.form.autocomplete||-1!=a.a.m(e,"propertychange")||(a.a.n(b,"propertychange",function(){k=!0}),a.a.n(b,"focus",function(){k=!1}),a.a.n(b,"blur",function(){k&&l()}));a.a.o(e,function(c){var d=l;a.a.Dc(c,"after")&&(d=function(){h=a.i.s(b);setTimeout(l,0)},c=c.substring(5));a.a.n(b,c,d)});var g=function(){var e=a.a.c(d()),f=a.i.s(b);if(null!==h&&e===h)setTimeout(g,0);else if(e!==f)if("select"===a.a.v(b)){var l=c.get("valueAllowUnset"), +f=function(){a.i.Y(b,e,l)};f();l||e===a.i.s(b)?setTimeout(f,0):a.k.u(a.a.qa,null,[b,"change"])}else a.i.Y(b,e)};a.w(g,null,{q:b})}else a.va(b,{checkedValue:d})},update:function(){}};a.h.V.value=!0;a.d.visible={update:function(b,d){var c=a.a.c(d()),e="none"!=b.style.display;c&&!e?b.style.display="":!c&&e&&(b.style.display="none")}};(function(b){a.d[b]={init:function(d,c,e,f,k){return a.d.event.init.call(this,d,function(){var a={};a[b]=c();return a},e,f,k)}}})("click");a.J=function(){};a.J.prototype.renderTemplateSource= +function(){throw Error("Override renderTemplateSource");};a.J.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock");};a.J.prototype.makeTemplateSource=function(b,d){if("string"==typeof b){d=d||w;var c=d.getElementById(b);if(!c)throw Error("Cannot find template with ID "+b);return new a.t.l(c)}if(1==b.nodeType||8==b.nodeType)return new a.t.ha(b);throw Error("Unknown template type: "+b);};a.J.prototype.renderTemplate=function(a,d,c,e){a=this.makeTemplateSource(a, +e);return this.renderTemplateSource(a,d,c,e)};a.J.prototype.isTemplateRewritten=function(a,d){return!1===this.allowTemplateRewriting?!0:this.makeTemplateSource(a,d).data("isRewritten")};a.J.prototype.rewriteTemplate=function(a,d,c){a=this.makeTemplateSource(a,c);d=d(a.text());a.text(d);a.data("isRewritten",!0)};a.b("templateEngine",a.J);a.kb=function(){function b(b,c,d,h){b=a.h.bb(b);for(var l=a.h.ka,g=0;g]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,c=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{lc:function(b, +c,d){c.isTemplateRewritten(b,d)||c.rewriteTemplate(b,function(b){return a.kb.xc(b,c)},d)},xc:function(a,f){return a.replace(d,function(a,c,d,e,m){return b(m,c,d,f)}).replace(c,function(a,c){return b(c,"\x3c!-- ko --\x3e","#comment",f)})},dc:function(b,c){return a.H.$a(function(d,h){var l=d.nextSibling;l&&l.nodeName.toLowerCase()===c&&a.va(l,b,h)})}}}();a.b("__tr_ambtns",a.kb.dc);(function(){a.t={};a.t.l=function(a){this.l=a};a.t.l.prototype.text=function(){var b=a.a.v(this.l),b="script"===b?"text": +"textarea"===b?"value":"innerHTML";if(0==arguments.length)return this.l[b];var d=arguments[0];"innerHTML"===b?a.a.gb(this.l,d):this.l[b]=d};var b=a.a.f.I()+"_";a.t.l.prototype.data=function(c){if(1===arguments.length)return a.a.f.get(this.l,b+c);a.a.f.set(this.l,b+c,arguments[1])};var d=a.a.f.I();a.t.ha=function(a){this.l=a};a.t.ha.prototype=new a.t.l;a.t.ha.prototype.text=function(){if(0==arguments.length){var b=a.a.f.get(this.l,d)||{};b.lb===p&&b.Na&&(b.lb=b.Na.innerHTML);return b.lb}a.a.f.set(this.l, +d,{lb:arguments[0]})};a.t.l.prototype.nodes=function(){if(0==arguments.length)return(a.a.f.get(this.l,d)||{}).Na;a.a.f.set(this.l,d,{Na:arguments[0]})};a.b("templateSources",a.t);a.b("templateSources.domElement",a.t.l);a.b("templateSources.anonymousTemplate",a.t.ha)})();(function(){function b(b,c,d){var e;for(c=a.e.nextSibling(c);b&&(e=b)!==c;)b=a.e.nextSibling(e),d(e,b)}function d(c,d){if(c.length){var e=c[0],f=c[c.length-1],h=e.parentNode,k=a.L.instance,r=k.preprocessNode;if(r){b(e,f,function(a, +b){var c=a.previousSibling,d=r.call(k,a);d&&(a===e&&(e=d[0]||b),a===f&&(f=d[d.length-1]||c))});c.length=0;if(!e)return;e===f?c.push(e):(c.push(e,f),a.a.na(c,h))}b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.ub(d,b)});b(e,f,function(b){1!==b.nodeType&&8!==b.nodeType||a.H.Xb(b,[d])});a.a.na(c,h)}}function c(a){return a.nodeType?a:0a.a.M?0:b.nodes)?b.nodes():null)return a.a.O(d.cloneNode(!0).childNodes);b=b.text();return a.a.ca(b,e)};a.P.Va=new a.P;a.hb(a.P.Va);a.b("nativeTemplateEngine",a.P);(function(){a.Ya=function(){var a=this.uc=function(){if(!u||!u.tmpl)return 0;try{if(0<=u.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(a){}return 1}();this.renderTemplateSource=function(b, +e,f,k){k=k||w;f=f||{};if(2>a)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var h=b.data("precompiled");h||(h=b.text()||"",h=u.template(null,"{{ko_with $item.koBindingContext}}"+h+"{{/ko_with}}"),b.data("precompiled",h));b=[e.$data];e=u.extend({koBindingContext:e},f.templateOptions);e=u.tmpl(h,b,e);e.appendTo(k.createElement("div"));u.fragments={};return e};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+ +a+" })()) }}"};this.addTemplate=function(a,b){w.write("