diff --git a/.travis.yml b/.travis.yml index 595684269..6834d1549 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,19 @@ language: php php: - 5.3 + - 5.4 + +env: + - TESTDB=SQLITE + - TESTDB=MYSQL + - TESTDB=PGSQL + +matrix: + exclude: + - php: 5.4 + env: TESTDB=PGSQL + - php: 5.4 + env: TESTDB=SQLITE before_script: - ./tests/travis/before_script ~/builds/ss diff --git a/admin/javascript/LeftAndMain.Tree.js b/admin/javascript/LeftAndMain.Tree.js index 1e2ea02ac..bfa8b5b3d 100644 --- a/admin/javascript/LeftAndMain.Tree.js +++ b/admin/javascript/LeftAndMain.Tree.js @@ -285,7 +285,8 @@ } // Replace inner content - node.addClass(origClasses).html(newNode.html()); + var origChildren = node.children('ul').detach(); + node.addClass(origClasses).html(newNode.html()).append(origChildren); if (nextNode && nextNode.length) { this.jstree('move_node', node, nextNode, 'before'); @@ -354,23 +355,25 @@ return; } + var correctStateFn = function(node) { + self.jstree('deselect_all'); + self.jstree('select_node', node); + // Similar to jstree's correct_state, but doesn't remove children + var hasChildren = (node.children('ul').length > 0); + node.toggleClass('jstree-leaf', !hasChildren); + if(!hasChildren) node.removeClass('jstree-closed jstree-open'); + }; + // Check if node exists, create if necessary if(node.length) { self.updateNode(node, nodeData.html, nodeData); setTimeout(function() { - self.jstree('deselect_all'); - self.jstree('select_node', node); - // Manually correct state, which checks for children and - // removes toggle arrow (should really be done by jstree internally) - self.jstree('correct_state', node); + correctStateFn(node) ; }, 500); } else { includesNewNode = true; self.createNode(nodeData.html, nodeData, function(newNode) { - self.jstree('deselect_all'); - self.jstree('select_node', newNode); - // Manually remove toggle node, see above - self.jstree('correct_state', newNode); + correctStateFn(newNode); }); } }); diff --git a/dev/install/config-form.html b/dev/install/config-form.html index d4cfc2fc1..9cfecc056 100644 --- a/dev/install/config-form.html +++ b/dev/install/config-form.html @@ -1,4 +1,4 @@ - + @@ -244,8 +244,8 @@

Theme selection Step 4 of 5

You can change the theme or download another from the SilverStripe website after installation.

Confirm Install Step 5 of 5

diff --git a/docs/en/topics/datamodel.md b/docs/en/topics/datamodel.md index bccc2de7a..ac415d84b 100755 --- a/docs/en/topics/datamodel.md +++ b/docs/en/topics/datamodel.md @@ -246,44 +246,6 @@ use case could be when you want to find all the members that does not exist in a // ... Finding all members that does not belong to $group. $otherMembers = Member::get()->subtract($group->Members()); - -### Relation filters - -So far we have only filtered a data list by fields on the object that you're requesting. For simple cases, this might -be okay, but often, a data model is made up of a number of related objects. For example, in SilverStripe each member -can be placed in a number of groups, and each group has a number of permissions. - -For this, the SilverStripe ORM supports **Relation Filters**. Any ORM request can be filtered by fields on a related -object by specifying the filter key as `.`. You can chain relations together -as many times as is necessary. - -For example, this will return all members assigned to a group that has a permission record with the code "ADMIN". In -other words, it will return all administrators. - - :::php - $members = Member::get()->filter(array( - 'Groups.Permissions.Code:ExactMatch' => 'ADMIN', - )); - -Note that we are just joining these tables to filter the records. Even if a member is in more than 1 administrator -group, unique members will still be returned by this query. - -The other features of filters can be applied to relation filters as well. This will return all members in groups whose -names start with 'A' or 'B'. - - :::php - $members = Member::get()->filter(array( - 'Groups.Title:StartsWith' => array('A', 'B'), - )); - -You can even follow a relation back to the original model class! This will return all members are in at least 1 group -that also has a member called Sam. - - :::php - $members = Member::get()->filter(array( - 'Groups.Members.FirstName' => 'Sam' - )); - ### Raw SQL options for advanced users Occasionally, the system described above won't let you do exactly what you need to do. In these situtations, we have diff --git a/forms/gridfield/GridFieldDeleteAction.php b/forms/gridfield/GridFieldDeleteAction.php index 8229a8a8a..a1a489aa9 100644 --- a/forms/gridfield/GridFieldDeleteAction.php +++ b/forms/gridfield/GridFieldDeleteAction.php @@ -133,7 +133,11 @@ class GridFieldDeleteAction implements GridField_ColumnProvider, GridField_Actio if($actionName == 'deleterecord' && !$item->canDelete()) { throw new ValidationException(_t('GridFieldAction_Delete.DeletePermissionsFailure',"No delete permissions"),0); } - $gridField->getList()->remove($item); + if($actionName == 'deleterecord') { + $item->delete(); + } else { + $gridField->getList()->remove($item); + } } } } diff --git a/forms/gridfield/GridFieldDetailForm.php b/forms/gridfield/GridFieldDetailForm.php index f739514df..b5fa8acda 100644 --- a/forms/gridfield/GridFieldDetailForm.php +++ b/forms/gridfield/GridFieldDetailForm.php @@ -384,7 +384,13 @@ class GridFieldDetailForm_ItemRequest extends RequestHandler { $form->sessionMessage($message, 'good'); - return Controller::curr()->redirect($this->Link()); + if($new_record) { + return Controller::curr()->redirect($this->Link()); + } else { + // Return new view, as we can't do a "virtual redirect" via the CMS Ajax + // to the same URL (it assumes that its content is already current, and doesn't reload) + return $this->edit(Controller::curr()->getRequest()); + } } function doDelete($data, $form) { diff --git a/lang/de.yml.orig b/lang/de.yml.orig new file mode 100644 index 000000000..cc94e8843 --- /dev/null +++ b/lang/de.yml.orig @@ -0,0 +1,591 @@ +de: + AssetAdmin: +<<<<<<< HEAD + ADDFILES: 'Add files' +======= + ADDFILES: 'Dateien hinzufügen' +>>>>>>> origin/translation-staging + EditOrgMenu: 'Edit & organize' + NEWFOLDER: 'Neuer Ordner' + AssetTableField: + CREATED: 'Erstmalig hochgeladen' + DIM: Dimensionen + FILENAME: Dateiname + FOLDER: Ordner + LASTEDIT: 'Letzte Änderung' + OWNER: Eigentümer + SIZE: Größe + TITLE: Titel + TYPE: Typ + URL: URL + AssetUploadField: + ChooseFiles: 'Dateien auswählen' + DRAGFILESHERE: 'Dateien hier ablegen' + DROPAREA: Dateiablage + EDITALL: 'Alle Bearbeiten' + EDITANDORGANIZE: Bearbeiten + EDITINFO: 'Dateien bearbeiten' + FILES: Dateien + FROMCOMPUTER: 'Dateien auf Ihrem Computer auswählen' + FROMCOMPUTERINFO: 'Von ihrem Computer hochladen' + TOTAL: Gesamt + UPLOADINPROGRESS: 'Bitte warten sie... Upload im Gang' + UPLOADOR: ODER + BBCodeParser: + ALIGNEMENT: Ausrichtung + ALIGNEMENTEXAMPLE: 'Rechts ausgerichtet' + BOLD: 'Fett gedruckter Text' + BOLDEXAMPLE: Fett + CODE: 'Code Block' + CODEDESCRIPTION: 'Unformatierter Code Block' + CODEEXAMPLE: 'Code Block' + COLORED: 'Farbiger Text' + COLOREDEXAMPLE: 'Blauer Text' + EMAILLINK: 'E-Mail Link' + EMAILLINKDESCRIPTION: 'Link zu einer E-Mail Adresse erzeugen' + IMAGE: Bild + IMAGEDESCRIPTION: 'Bild im Post anzeigen' + ITALIC: 'Kursiv gedruckter Text' + ITALICEXAMPLE: Kursiv + LINK: 'Webseiten Link' + LINKDESCRIPTION: 'Link auf eine andere Webseite oder URL' + STRUCK: 'Durchgestrichener Text' + STRUCKEXAMPLE: Durchgestrichen + UNDERLINE: 'Unterstrichener Text' + UNDERLINEEXAMPLE: Unterstrichen + UNORDERED: 'Ungeordnete Liste' + UNORDEREDDESCRIPTION: 'Ungeordnete Liste' + UNORDEREDEXAMPLE1: 'Ungeordneter Eintrag 1' + BackLink_Button.ss: + Back: Zurück + BasicAuth: + ENTERINFO: 'Bitte geben Sie einen Nutzernamen und ein Passwort ein' + ERRORNOTADMIN: 'Dieser Nutzer ist kein Administrator' + ERRORNOTREC: 'Dieser/s Nutzername/Passwort wurde nicht erkannt' + Boolean: + 0: Falsch + ANY: alle + 1: Wahr + CMSLoadingScreen.ss: + LOADING: 'Lade Daten ...' + REQUIREJS: 'Für die Benutzung des CMS wird JavaScript benötigt.' + CMSMain: + ACCESS: 'Zugang zum Bereich ''{title}''' + ACCESSALLINTERFACES: 'Zugriff auf alle Bereiche des CMS' + ACCESSALLINTERFACESHELP: 'Hebt alle bereichspezifischen Berechtigungen auf.' + SAVE: Speichern + CMSProfileController: + MENUTITLE: CMSProfileController + ChangePasswordEmail.ss: + CHANGEPASSWORDTEXT1: 'Sie haben Ihr Passwort geändert für' + CHANGEPASSWORDTEXT2: 'Sie können nun folgende Angaben benutzen um sich einzuloggen' + EMAIL: E-Mail + HELLO: Hi + PASSWORD: Passwort + CheckboxField: + - Falsch + - Wahr + ComplexTableField: + CLOSEPOPUP: 'Popup schließen' + SUCCESSADD2: '{name} hinzugefügt' + SUCCESSEDIT: 'Gespeichert %s %s %s' + ComplexTableField.ss: + ADDITEM: '%s hinzufügen' + NOITEMSFOUND: 'Keine Elemente gefunden' + SORTASC: 'Aufsteigend sortieren' + SORTDESC: 'Absteigend sortieren' + ComplexTableField_popup.ss: + NEXT: nächste + PREVIOUS: vorherige + ConfirmedPasswordField: + ATLEAST: 'Passwörter müssen mindestens {min} Zeichen lang sein.' + BETWEEN: 'Passwörter müssen mindestens {min} bis maximal {max} Zeichen lang sein.' + MAXIMUM: 'Passwörter dürfen maxinal {max} Zeichen lang sein.' + SHOWONCLICKTITLE: 'Passwort ändern' + CreditCardField: + FIRST: Zuerst + FOURTH: vierte + SECOND: erste + THIRD: dritte + CurrencyField: + CURRENCYSYMBOL: € + DataObject: + PLURALNAME: DataObjects + SINGULARNAME: DataObject + Date: + DAY: Tag + DAYS: Tage + HOUR: Stunde + HOURS: Stunden + MIN: Minuten + MINS: Minuten + MONTH: Monat + MONTHS: Monat + SEC: Sekunden + SECS: Sekunden + TIMEDIFFAGO: 'vor {difference}' + TIMEDIFFIN: 'in {difference}' + YEAR: Jahr + YEARS: Jahre + DateField: + NOTSET: 'nicht gesetzt' + TODAY: heute + VALIDDATEFORMAT2: 'Bitte geben sie das Datum im korrekten Format ein ({format})' + VALIDDATEMAXDATE: 'Ihr Datum muss nach dem erlaubtem Datum ({date}) liegen oder gleich sein' + VALIDDATEMINDATE: 'Ihr Datum muss vor dem erlaubtem Datum ({date}) liegen oder gleich sein' + DatetimeField: +<<<<<<< HEAD + NOTSET: 'Not set' +======= + NOTSET: 'nicht gesetzt' +>>>>>>> origin/translation-staging + Director: + INVALID_REQUEST: 'Ungültige Anfrage' + DropdownField: + CHOOSE: (Auswahl) + EmailField: + VALIDATION: 'Bitte geben Sie eine E-Mail Adresse ein' + Email_BounceRecord: + PLURALNAME: 'E-Mail Rückläufer' + SINGULARNAME: 'E-Mail Rückläufer' + Enum: + ANY: alle + File: + Content: Inhalt + Filename: Dateiname + INVALIDEXTENSION: 'Dateityp ist nicht erlaubt (erlaubt sind: {extensions})' + INVALIDEXTENSIONSHORT: 'Dateityp ist nicht erlaubt' + NOFILESIZE: 'Dateigröße ist 0 bytes' + NOVALIDUPLOAD: 'Datei ist kein gültiger Upload' + Name: Dateiname + PLURALNAME: Dateien + SINGULARNAME: Datei + TOOLARGE: 'Die Datei ist zu groß, maximal sind {size} erlaubt' + TOOLARGESHORT: 'Dateigröße übersteigt {size}' + Title: Titel + FileIFrameField: + ATTACH: '{type} anhängen' + ATTACHONCESAVED: '{type}s können angehängt werden, sobald das Dokument zum ersten Mal gespeichert wurde.' + ATTACHONCESAVED2: 'Dateien können angehängt werden, sobald das Dokument zum ersten Mal gespeichert wurde.' + DELETE: 'Lösche {type}' + DISALLOWEDFILETYPE: 'Der Upload dieses Dateityps ist nicht erlaubt' + FILE: Datei + FROMCOMPUTER: 'Von Ihrem Computer' + FROMFILESTORE: 'Aus dem Datei-Storage' + NOSOURCE: 'Bitte wählen Sie eine Datei aus' + REPLACE: '{type} ersetzen' + FileIFrameField_iframe.ss: + TITLE: 'Iframe Bilderupload' + Filesystem: + SYNCRESULTS: 'Synchronisation beendet: {createdcount} Objekte erstellt, {deletedcount} Objekte gelöscht' + Folder: + PLURALNAME: Folders + SINGULARNAME: Folder + ForgotPasswordEmail.ss: + HELLO: Hallo + TEXT1: 'Hier ist Ihr' + TEXT2: 'Link zum Zurücksetzen des Passworts' + TEXT3: für + Form: + FIELDISREQUIRED: '%s wird benötigt' +<<<<<<< HEAD + SubmitBtnLabel: Go +======= + SubmitBtnLabel: Los +>>>>>>> origin/translation-staging + VALIDATIONCREDITNUMBER: 'Bitte stellen Sie sicher, dass Sie die Kreditkartennummer ({number}) korrekt eingegeben haben' + VALIDATIONNOTUNIQUE: 'Der eingegebene Wert ist nicht einzigartig' + VALIDATIONPASSWORDSDONTMATCH: 'Passwörter stimmen nicht überein' + VALIDATIONPASSWORDSNOTEMPTY: 'Passwortfelder dürfen nicht leer sein' + VALIDATIONSTRONGPASSWORD: 'Passwörter müssen mindestens eine Zahl und ein alphanumerisches Zeichen enthalten' + VALIDATOR: Prüfer + VALIDCURRENCY: 'Bitte geben Sie einen korrekten Betrag ein' + FormField: + NONE: keine + GridAction: + DELETE_DESCRIPTION: Löschen + Delete: Löschen + UnlinkRelation: 'Verbindung entfernen' + GridField: + Add: '{name} hinzufügen' + Filter: Filter + FilterBy: 'Filter nach' + Find: Suchen + LEVELUP: 'Eine Ebene hoch' + LinkExisting: Verknüpfen + NewRecord: 'Neue(r) %s' + NoItemsFound: 'Keine Elemente gefunden' + PRINTEDAT: 'Gedruckt am' + PRINTEDBY: 'Gedruckt von' + PlaceHolder: '{type} Suchen' + PlaceHolderWithLabels: 'Suche {type} über {name}' + RelationSearch: Relationssuche + ResetFilter: Zurücksetzen + GridFieldAction_Delete: + DeletePermissionsFailure: 'Keine Berechtigung zum Löschen' + GridFieldDetailForm: + Create: Erstellen + Delete: Löschen + DeletePermissionsFailure: 'Keine Berechtigung zum Löschen' + Deleted: 'Gelöscht %s %s' + Save: Speichern + Saved: 'Gespeichert %s %s' + GridFieldItemEditView.ss: null + Group: + AddRole: 'Rolle für die Gruppe hinzufügen' + Code: 'Gruppen Code' + DefaultGroupTitleAdministrators: Administratoren + DefaultGroupTitleContentAuthors: Inhaltsautoren + Description: Beschreibung + GroupReminder: 'Bei Zuweisung einer Übergruppe werden alle ihre Rollen übernommen' + Locked: 'Gesperrt?' + NoRoles: 'Keine Rollen gefunden' + PLURALNAME: Groups + Parent: Elterngruppe + RolesAddEditLink: 'Rollen hinzufügen/editieren' + SINGULARNAME: Group + Sort: Sortierreihenfolge + has_many_Permissions: Berechtigungen + many_many_Members: Mitglieder + GroupImportForm: + Help1: '

Eine oder mehrere Gruppen im CSV-Format (kommaseparierte Werte) importieren. Erweiterte Nutzung

' + Help2: '

Erweiterte Nutzung

  • Gültige Spalten: %s
  • Vorhandene Gruppen werden über ihren eindeutigen Code ermittelt und mit den Werten aus der importierten Datei aktualisiert.
  • Gruppen-Hierarchien können über die ParentCode Spalte definiert werden.
  • Berechtigungscodes können über die Splate PermissionCode zugewiesen werden, vorhandene Berechtigungen werden nicht gelöscht.
' + ResultCreated: '{count} Gruppe(n) wurden erstellt' + ResultDeleted: '%d Gruppen gelöscht' + ResultUpdated: '%d Gruppen aktualisiert' + Hierarchy: + InfiniteLoopNotAllowed: 'Es wurde eine Endlosschleife innerhalb der "{type}"-Hierarchie gefunden. Bitte ändern Sie die übergeordnete Seite, um den Fehler zu beheben' + HtmlEditorField: + ADDURL: 'URL hinzufügen' + ADJUSTDETAILSDIMENSIONS: 'Details & Dimensionen' + ANCHORVALUE: Anker + BUTTONINSERT: Einfügen + BUTTONINSERTLINK: 'Verweis einfügen' + BUTTONREMOVELINK: 'Verweise entfernen' + BUTTONUpdate: Aktualisieren + CAPTIONTEXT: Beschriftungstext + CSSCLASS: Ausrichtung/Stil + CSSCLASSCENTER: 'Zentriert, selbstständig' + CSSCLASSLEFT: 'Links, mit umfließendem Text' + CSSCLASSLEFTALONE: 'Links, alleinstehend' + CSSCLASSRIGHT: 'Rechts, mit umfließendem Text' + DETAILS: Details + EMAIL: E-Mail-Adresse + FILE: Datei + FOLDER: Ordner + FROMCMS: 'Aus dem CMS' + FROMCOMPUTER: 'Von Ihrem Computer' + FROMWEB: 'Aus dem Internet' + FindInFolder: 'In Ordner suchen' + IMAGEALT: 'Alternativer Text (alt)' + IMAGEALTTEXT: 'Alternativer Text (alt) - angezeigt, wenn das Bild nicht dargestellt werden kann' + IMAGEALTTEXTDESC: 'Wird von Screenreadern vorgelesen oder angezeigt, falls das Bild nicht dargestellt werden kann' + IMAGEDIMENSIONS: Dimensionen + IMAGEHEIGHTPX: 'Höhe (px)' + IMAGETITLE: 'Titeltext (Tooltip) - für zusätzliche Informationen über das Bild' + IMAGETITLETEXT: 'Titeltext (Tooltip)' + IMAGETITLETEXTDESC: 'Weiterführende Informationen über das Bild' + IMAGEWIDTHPX: 'Breite (px)' + INSERTMEDIA: 'Medienobject einfügen' + LINK: Verweis + LINKANCHOR: 'Anker auf dieser Seite' + LINKDESCR: 'Beschreibung des Verweises' + LINKEMAIL: E-Mail-Adresse + LINKEXTERNAL: 'Andere Website' + LINKFILE: 'Datei herunterladen' + LINKINTERNAL: 'Seite auf der Website' + LINKOPENNEWWIN: 'Verweis in neuem Fenster öffnen?' + LINKTO: 'Verweis zu' + PAGE: Seite + URL: URL + URLNOTANOEMBEDRESOURCE: 'Die URL ''{url}'' konnte nicht in eine Medienquelle umgewandelt werden' + UpdateMEDIA: 'Medienobjekt aktualisieren' + Image: + PLURALNAME: Files +<<<<<<< HEAD + SINGULARNAME: File +======= + SINGULARNAME: Datei +>>>>>>> origin/translation-staging + ImageField: + IMAGE: Bild + Image_Cached: + PLURALNAME: Files + SINGULARNAME: File + Image_iframe.ss: + TITLE: 'Iframe Bilder hochladen' + LeftAndMain: + CANT_REORGANISE: 'Sie besitzen nicht die benötigten Zugriffsrechte um Seiten der höchsten Ebene zu bearbeiten. Ihre Änderungen wurden nicht gespeichert.' + DELETED: Gelöscht. + DropdownBatchActionsDefault: Aktionen + HELP: Hilfe + PAGETYPE: 'Seitentyp:' + PERMAGAIN: 'Sie wurden aus dem System ausgeloggt. Falls Sie sich wieder einloggen möchten, geben Sie bitte Benutzernamen und Passwort im untenstehenden Formular an.' + PERMALREADY: 'Leider dürfen Sie diesen Teil des CMS nicht aufrufen. Wenn Sie sich als jemand anderes einloggen wollen, benutzen Sie bitte das nachstehende Formular.' + PERMDEFAULT: 'Bitte wählen Sie eine Authentifizierungsmethode und geben Sie Ihre Benutzerdaten für den Zugang zum CMS ein.' + PLEASESAVE: 'Diese Seite konnte nicht aktualisiert werden weil sie noch nicht gespeichert wurde - bitte speichern.' + PreviewButton: Vorschau + REORGANISATIONSUCCESSFUL: 'Der Seitenbaum wurde erfolgreich sortiert.' + SAVEDUP: Gespeichert. + VersionUnknown: Unbekannt + LeftAndMain_Menu.ss: + Hello: Hi + LOGOUT: Ausloggen + LoginAttempt: + Email: E-Mail-Adresse + IP: IP-Adresse + PLURALNAME: 'Login Attempts' + SINGULARNAME: 'Login Attempt' + Status: Status + Member: + ADDGROUP: 'Gruppe hinzufügen' + BUTTONCHANGEPASSWORD: 'Passwort ändern' + BUTTONLOGIN: Einloggen + BUTTONLOGINOTHER: 'Als jemand anders einloggen' + BUTTONLOSTPASSWORD: 'Ich habe mein Passwort vergessen' + CONFIRMNEWPASSWORD: 'Neues Passwort bestätigen' + CONFIRMPASSWORD: 'Passwort bestätigen' +<<<<<<< HEAD + DATEFORMAT: 'Date format' +======= + DATEFORMAT: 'Bitte geben sie das Datum im korrekten Format ein ({format})' +>>>>>>> origin/translation-staging + DefaultAdminFirstname: Standardadmin + DefaultDateTime: Standard + EMAIL: E-Mail + EMPTYNEWPASSWORD: 'Das neue Passwort darf nicht leer sein. Bitte versuchen Sie es erneut.' + ENTEREMAIL: 'Bitte geben Sie eine E-Mail-Adresse ein, um einen Link zum Zurücksetzen des Passworts zu erhalten.' + ERRORLOCKEDOUT: 'Ihr Zugang wurde auf Grund von einer unzulässig hohen Anzahl von falschen Zugangsversuchen gesperrt. Bitte versuchen Sie es in 20 Minuten noch einmal.' + ERRORNEWPASSWORD: 'Sie haben Ihr neues Passwort unterschiedlich eingegeben, bitte versuchen Sie es erneut.' + ERRORPASSWORDNOTMATCH: 'Das Passwort stimmt nicht mit dem hinterlegten Passwort überein, bitte versuchen Sie es noch einmal' + ERRORWRONGCRED: 'Das Passwort oder die E-Mail-Adresse scheinen nicht richtig zu sein. Bitte versuchen Sie es erneut.' + FIRSTNAME: Vorname + INTERFACELANG: CMS-Sprache + INVALIDNEWPASSWORD: 'Das Passwort konnte nicht akzeptiert werden: {password}' + LOGGEDINAS: 'Sie sind als {name} eingeloggt.' + NEWPASSWORD: 'Neues Passwort' + PASSWORD: Passwort + PLURALNAME: Benutzer + PROFILESAVESUCCESS: 'Erfolgreich gespeichert.' + REMEMBERME: 'Für das nächste Mal merken?' + SINGULARNAME: Benutzer + SUBJECTPASSWORDCHANGED: 'Ihr Passwort wurde geändert' + SUBJECTPASSWORDRESET: 'Ihr Link zur Passwortrücksetzung' + SURNAME: Nachname +<<<<<<< HEAD + TIMEFORMAT: 'Time format' +======= + TIMEFORMAT: 'Bitte geben Sie die Uhrzeit im korrekten Format ein ({format})' +>>>>>>> origin/translation-staging + VALIDATIONMEMBEREXISTS: 'Es gibt bereits ein Mitglied mit dieser E-Mail-Adresse' + ValidationIdentifierFailed: 'Das vorhandene Mitglied #{id} mit identischer Bezeichnung kann nicht überschrieben werden ({name} = {value}))' + WELCOMEBACK: 'Hallo {firstname}. Schön, dass du wieder da bist' + YOUROLDPASSWORD: 'Ihr alten Passwort' + belongs_many_many_Groups: Gruppe + db_LastVisited: 'Zuletzt Besucht' + db_Locale: 'Interface Sprachumgebung' + db_LockedOutUntil: 'Gesperrt bis' + db_NumVisit: 'Anzahl der Besuche' + db_Password: Passwort + db_PasswordExpiry: 'Ablaufdatum des Passworts' + MemberAuthenticator: + TITLE: 'E-Mail & Passwort' + MemberDatetimeOptionsetField: + AMORPM: 'AM (vormittag) oder PM (nachmittag)' + 'APPLY FILTER': 'Filter anwenden' + Custom: Benutzerdefiniert + DATEFORMATBAD: 'Ungültiges Datumsformat' + DAYNOLEADING: 'Tag des Monats ohne führende Null' + DIGITSDECFRACTIONSECOND: 'Eine oder mehrere Ziffern, die einen Dezimalbruch einer Sekunde darstellen' + FOURDIGITYEAR: 'Vierstellige Jahreszahl' + FULLNAMEMONTH: 'Volle Monatsbezeichnung (z.B. Juni)' + HOURNOLEADING: 'Stunde ohne führende Null' + MINUTENOLEADING: Minute + MONTHNOLEADING: 'Monat ohne führende Null' + Preview: Vorschau + SHORTMONTH: 'Kurzname des Monats (z.B. Jun)' + TOGGLEHELP: 'Formatierungshilfe anzeigen' + TWODIGITDAY: 'Tag des Monats mit führender Null' + TWODIGITHOUR: 'Stunde im 24-Stunden-Format, mit führenden Nullen' + TWODIGITMINUTE: 'Minute mit führenden Nullen' + TWODIGITMONTH: 'Monat mit führender Null (z.B. 01 = Januar, usw.)' + TWODIGITSECOND: Sekunde + TWODIGITYEAR: 'Zweistellige Jahreszahl' + MemberImportForm: + Help1: '

Mitglieder im CSV-Format (kommaseparierte Werte) importieren. Erweiterte Nutzung

' + Help2: '

Advanced usage

  • Gültige Spalten: %s
  • Vorhandene Mitglieder werden über ihren eindeutigen Code ermittelt und mit den Werten aus der importierten Datei aktualisiert.
  • Gruppen können über die Spalte Gruppen zugewiesen werden. Gruppen werden über ihren eindeutigen Code ermittelt, mehrere Gruppen können durch ein Komma getrennt werden. Vorhandene Gruppenzugehörigkeiten werden nicht gelöscht.
' + ResultCreated: '{count} Mitglied(er) wurden erstellt' + ResultDeleted: '%d Mitglieder gelöscht' + ResultNone: 'Keine Änderungen' + ResultUpdated: '{count} Mitglied(er) wurde(n) aktualisiert' + MemberPassword: +<<<<<<< HEAD + PLURALNAME: 'Member Passwords' + SINGULARNAME: 'Member Password' +======= + PLURALNAME: Benutzerpasswörter + SINGULARNAME: Benutzerpasswort +>>>>>>> origin/translation-staging + MemberTableField: null + ModelAdmin: + DELETE: Löschen + DELETEDRECORDS: '{count} Datensätze wurden gelöscht.' + IMPORT: 'CSV Import' + IMPORTEDRECORDS: '{count} Datensätze wurden importiert.' + NOCSVFILE: 'Wählen Sie eine CSV-Datei zum Importieren' + NOIMPORT: 'Kein Import notwendig.' + RESET: Zurücksetzen + Title: Datenmodelle + UPDATEDRECORDS: '{count} Datensätze wurden aktualisiert.' + ModelAdmin_ImportSpec.ss: + IMPORTSPECFIELDS: Datenbankspalten + IMPORTSPECLINK: 'Show Specification for %s' + IMPORTSPECRELATIONS: Relationen + IMPORTSPECTITLE: 'Specification for %s' + ModelAdmin_Tools.ss: + FILTER: Filter + IMPORT: Importieren + ModelSidebar.ss: + IMPORT_TAB_HEADER: Importieren + SEARCHLISTINGS: Suche + MoneyField: + FIELDLABELAMOUNT: Betrag + FIELDLABELCURRENCY: Währung + NullableField: + IsNullLabel: 'ist NULL' + NumericField: + VALIDATION: '''{value}'' ist kein numerischer Wert, nur nummerische Werte sind in diesem Feld erlaubt' + Pagination: +<<<<<<< HEAD + Page: Page + View: View +======= + Page: Seite + View: Anzeige +>>>>>>> origin/translation-staging + Permission: + AdminGroup: Administrator + CMS_ACCESS_CATEGORY: 'CMS Zugriff' + FULLADMINRIGHTS: 'Unbeschränkte Administratorenrechte' + FULLADMINRIGHTS_HELP: 'Schließt alle anderen verfügbaren Berechtigungen ein' +<<<<<<< HEAD + PLURALNAME: Permissions + SINGULARNAME: Permission +======= + PLURALNAME: Berechtigungen + SINGULARNAME: Berechtigung +>>>>>>> origin/translation-staging + PermissionCheckboxSetField: + AssignedTo: 'Zugewiesen an "{title}"' + FromGroup: 'abgeleited von Gruppe "{title}"' + FromRole: 'abgeleited von Rolle "{title}"' + FromRoleOnGroup: 'geerbt von Rolle "%s" für die Gruppe "%s"' + PermissionRole: + PLURALNAME: Roles + SINGULARNAME: Role + PermissionRoleCode: + PLURALNAME: 'Permission Role Cods' + SINGULARNAME: 'Permission Role Code' + Permissions: + PERMISSIONS_CATEGORY: 'Rollen und Zugriffsberechtigungen' + PhoneNumberField: + VALIDATION: 'Bitte geben Sie eine gültige Telefonnummer ein' + RelationComplexTableField.ss: + ADD: Hinzufügen + CSVEXPORT: 'Als CSV exportieren' + NOTFOUND: 'Keine Elemente gefunden.' + Security: + ALREADYLOGGEDIN: 'Sie haben keinen Zugriff auf diese Seite. Wenn Sie ein anderes Konto besitzen, mit dem Sie auf diese Seite zugreifen können, melden Sie sich bitte unten an.' + BUTTONSEND: 'Senden Sie mir den Link zur Passwortrücksetzung' + CHANGEPASSWORDBELOW: 'Sie können Ihr Passwort unten ändern.' + CHANGEPASSWORDHEADER: 'Passwort ändern' + ENTERNEWPASSWORD: 'Bitte geben Sie ein neues Passwort ein' + ERRORPASSWORDPERMISSION: 'Sie müssen eingeloggt sein, um Ihr Passwort ändern zu können!' + LOGGEDOUT: 'Sie wurden ausgeloggt. Wenn Sie sich wieder einloggen möchten, geben Sie bitte unten Ihre Zugangsdaten ein.' + LOGIN: Anmelden + NOTEPAGESECURED: 'Diese Seite ist geschützt. Bitte melden Sie sich an und Sie werden sofort weitergeleitet.' + NOTERESETLINKINVALID: '

Der Link zum Zurücksetzen des Passworts ist entweder nicht korrekt oder abgelaufen

Sie können einen neuen Link anfordern oder Ihr Passwort nach dem einloggen ändern.

' + NOTERESETPASSWORD: 'Geben Sie Ihre E-Mail-Adresse ein und wir werden Ihnen einen Link zuschicken, mit dem Sie Ihr Passwort zurücksetzen können.' + PASSWORDSENTHEADER: 'Der Link zum Zurücksetzen des Passworts wurde an {email} gesendet' + PASSWORDSENTTEXT: 'Vielen Dank! Wenn ein Account zu der E-Mail Adresse {email} existiert, wurde eine E-Mail mit dem Link zum Zurücksetzen des Passworts verschickt.' + SecurityAdmin: + ACCESS_HELP: 'Benutzer hinzufügen, anzeigen und editieren sowie diesen Berechtigungen und Rollen zuweisen.' + APPLY_ROLES: 'Rollen zu Gruppen zuweisen' + APPLY_ROLES_HELP: 'Möglichkeit die Zuweisungen von Rollen zu Gruppen zu editieren. Erfordert Zugriff auf den Bereich "Sicherheit".' + EDITPERMISSIONS: 'Bearbeiten der Rechte und IP-Adressen für jede Gruppe' + EDITPERMISSIONS_HELP: 'Möglichkeit Berechtigungen und IP-Adressen einer Gruppen zu editieren. Erfordert Zugriff auf den Bereich "Sicherheit".' + GROUPNAME: Gruppenname + IMPORTGROUPS: 'Gruppen importieren' + IMPORTUSERS: 'Benutzer importieren' + MEMBERS: Mitglieder + MENUTITLE: Sicherheit + MemberListCaution: 'Achtung: Das Entfernen von Mitgliedern aus dieser Liste löscht diese auch aus der Datenbank sowie die entsprechenden Gruppenzuweisungen.' + NEWGROUP: 'Neue Gruppe' + PERMISSIONS: Berechtigungen + ROLES: Rollen + ROLESDESCRIPTION: 'Hier können Sie der Gruppe Rollen zuweisen. Rollen sind logische Gruppierungen von Berechtigungen.' + TABROLES: Rollen + Users: Benutzer + SecurityAdmin_MemberImportForm: + BtnImport: Import + FileFieldLabel: 'CSV Datei (Erlaubte Dateierweiterung: *.csv)' + SilverStripeNavigator: + Edit: Bearbeiten + SimpleImageField: + NOUPLOAD: 'Es wurde kein Bild hochgeladen' + SiteTree: + TABMAIN: Hauptteil + TableField: + ISREQUIRED: 'In %s wird ''%s'' benötigt' + TableField.ss: + ADD: 'Eine neue Zeile hinzufügen' + ADDITEM: '%s hinzufügen' + TableListField: + CSVEXPORT: 'Als CSV-Datei exportieren' + PRINT: drucken + Print: Drucken + SELECT: 'Auswählen:' + TableListField.ss: + NOITEMSFOUND: 'Keine Elemente gefunden' + SORTASC: 'Aufsteigend sortieren' + SORTDESC: 'Absteigend sortieren' + TableListField_PageControls.ss: + DISPLAYING: Zeige + OF: von + TO: bis + VIEWFIRST: 'Ersten anzeigen' + VIEWLAST: 'Letzten anzeigen' + VIEWNEXT: 'Nächsten anzeigen' + VIEWPREVIOUS: 'Vorherigen anzeigen' + TimeField: + VALIDATEFORMAT: 'Bitte geben Sie die Uhrzeit im korrekten Format ein ({format})' + ToggleField: + LESS: weniger + MORE: mehr + UploadField: + ATTACHFILE: 'Datei anhängen' + ATTACHFILES: 'Dateien anhängen' + AttachFile: 'Dateien anhängen' + DELETE: 'Aus Dateien löschen' + DELETEINFO: 'Löscht die Datei dauerhaft aus dem Dateisystem' + DOEDIT: Speichern + DROPFILE: 'Datei hier ablegen' + DROPFILES: 'Dateien hier ablegen' + Dimensions: Dimensionen + EDIT: Bearbeiten + EDITINFO: 'Diese Datei bearbeiten' + FIELDNOTSET: 'Dateiinformationen nicht gefunden' + FROMCOMPUTER: 'Von Ihrem Computer' + FROMCOMPUTERINFO: 'Aus Dateien auswählen' + FROMFILES: 'Von "Dateien"' + HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.' + MAXNUMBEROFFILES: 'Maximale Anzahl an {count} Datei(en) überschritten' + MAXNUMBEROFFILESSHORT: 'SIe können maximal {count} Datei(en) hochladen' + REMOVE: Entfernen + REMOVEERROR: 'Fehler beim Entfernen der Datei' + REMOVEINFO: 'Entfernt die Datei von hier, löscht Sie aber nicht aus dem Dateisystem.' + STARTALL: 'Alle starten' + STARTALLINFO: 'Alle Uploads starten' + Saved: Gespeichert + Versioned: + has_many_Versions: Versionen diff --git a/lang/mi_NZ.yml.orig b/lang/mi_NZ.yml.orig new file mode 100644 index 000000000..6c9b13023 --- /dev/null +++ b/lang/mi_NZ.yml.orig @@ -0,0 +1,586 @@ +mi_NZ: + AssetAdmin: + ADDFILES: 'Tāpiri Kōnae' + EditOrgMenu: 'Whakatika me te Whakaraupapa' + NEWFOLDER: KōpakiHōu + AssetTableField: + CREATED: 'Tukuatu tuatahi' + DIM: 'Ngā Rahinga' + FILENAME: 'Ingoa Kōnae' + FOLDER: Kōpaki + LASTEDIT: 'Hurihanga tōmuri' + OWNER: Kaiūmanga + SIZE: Nuinga + TITLE: Taitara + TYPE: 'Tūmomo ' + URL: PRO + AssetUploadField: + ChooseFiles: 'Kōwhiri kōnae' + DRAGFILESHERE: 'Tōia mai ngā kōnae ki konei' + DROPAREA: 'Wāhi Taka' + EDITALL: 'Whakatika katoa' + EDITANDORGANIZE: 'Whakatika me te Whakaraupapa' + EDITINFO: 'Whakatika kōnae' + FILES: 'Ngā kōnae' + FROMCOMPUTER: 'Kōwhiri kōnae mai i tō rorohiko' + FROMCOMPUTERINFO: 'Tukuatu i tō rorohiko' + TOTAL: Tapeke + UPLOADINPROGRESS: 'Taihoa...he tukuatu kei te haere' + UPLOADOR: 'TĒNEI RĀNEI' + BBCodeParser: + ALIGNEMENT: Tiaroaro + ALIGNEMENTEXAMPLE: 'i tiaro matautia' + BOLD: 'Tuhinga Taekaha' + BOLDEXAMPLE: Taekaha + CODE: 'Paraka Waehere' + CODEDESCRIPTION: 'Paraka waehere kāore hōpututia' + CODEEXAMPLE: 'Paraka Waehere' + COLORED: 'Tuhinga whaikano' + COLOREDEXAMPLE: 'tuhinga kikorangi' + EMAILLINK: 'Hono īmēra' + EMAILLINKDESCRIPTION: 'Hanga hononga ki tētahi wāhitau īmēra' + IMAGE: Atahanga + IMAGEDESCRIPTION: 'Whakaaturia tētahi atahanga i tō tare' + ITALIC: 'Tuhinga Tītaha' + ITALICEXAMPLE: Tītaha + LINK: 'Hono paetukutuku' + LINKDESCRIPTION: 'Hono ki tētahi atu paetukutuku, PRO rānei' + STRUCK: 'Tuhinga i Tāhīpaetia' + STRUCKEXAMPLE: 'I tāhīpaetia' + UNDERLINE: 'Tuhinga i tōrarotia' + UNDERLINEEXAMPLE: 'I tōrarotia' + UNORDERED: 'Rārangi kāore i raupapatia' + UNORDEREDDESCRIPTION: 'Rārangi kāore i raupapatia' + UNORDEREDEXAMPLE1: 'tūemi 1 kāore i raupapatia' + BackLink_Button.ss: + Back: Hoki + BasicAuth: + ENTERINFO: 'Tāurua he ingoa kaiwhakamahi me te kupuhipa' + ERRORNOTADMIN: 'Ehara tēnā kaiwhakamahi i te kaiwhakahaere' + ERRORNOTREC: 'Kāore i te mōhiotia tēnā ingoa kaiwhakamahi / kupuhipa' + Boolean: + 0: Hē + ANY: 'Ko tētahi' + 1: Pono + CMSLoadingScreen.ss: + LOADING: 'Uta ana...' + REQUIREJS: 'Ka hiahia te CMS kia whakahohea te JavaScript' + CMSMain: + ACCESS: 'Uru ki te wāhanga ''{title}''' + ACCESSALLINTERFACES: 'Uru ki ngā wāhanga CMS katoa' + ACCESSALLINTERFACESHELP: 'Ka takahi i ngā tautuhinga uru tauwhāiti ake' + SAVE: Tiaki + CMSProfileController: + MENUTITLE: PūwhakamanaKōtahaCMS + ChangePasswordEmail.ss: + CHANGEPASSWORDTEXT1: 'Kua hurihia tō kupuhipa mō' + CHANGEPASSWORDTEXT2: 'Ka taea te whakamahi i ēnei taipitopito tuakiri ināianei hei takiuru:' + EMAIL: Īmēra + HELLO: 'Kia ora' + PASSWORD: Kupuhipa + CheckboxField: + - Hē + - Pono + ComplexTableField: + CLOSEPOPUP: 'Kati Pakū-Ake' + SUCCESSADD2: 'Kua tāpiritia a {name}' + SUCCESSEDIT: 'I tiakina a %s %s %s' + ComplexTableField.ss: + ADDITEM: 'Tāpiri %s' + NOITEMSFOUND: 'Kāore i kitea he tūemi' + SORTASC: 'Kōmaka aupiki' + SORTDESC: 'Kōmaka auheke' + ComplexTableField_popup.ss: + NEXT: Panuku + PREVIOUS: Tōmua + ConfirmedPasswordField: + ATLEAST: 'Kia {min} pūāhua i te iti rawa te roa o ngā kupuhipa.' + BETWEEN: 'Me noho te roa o ngā kupuhipa i waenga i te {min} ki te {max} ngā pūāhua' + MAXIMUM: 'Kaua i hipa i te {max} pūāhua te roa o ngā kupuhipa.' + SHOWONCLICKTITLE: 'Huri Kupuhipa' + CreditCardField: + FIRST: tuatahi + FOURTH: tuawhā + SECOND: tuarua + THIRD: tuatoru + CurrencyField: + CURRENCYSYMBOL: $ + DataObject: + PLURALNAME: 'Ngā Ahanoa Raraunga' + SINGULARNAME: 'Ahanoa Raraunga' + Date: + DAY: rā + DAYS: 'ngā rā' + HOUR: haora + HOURS: 'ngā haora' + MIN: meneti + MINS: 'ngā meneti' + MONTH: marama + MONTHS: 'ngā marama' + SEC: hēkona + SECS: 'ngā hēkona' + TIMEDIFFAGO: '{difference} i mua' + TIMEDIFFIN: 'i roto i te {difference}' + YEAR: tau + YEARS: 'ngā tau' + DateField: + NOTSET: 'kāore i tautuhia' + TODAY: 'i tēnei rā' + VALIDDATEFORMAT2: 'Tāurua he hōputu rā tika ({format})' + VALIDDATEMAXDATE: 'Me tawhito ake tō rā, kia ōrite rānei ki te rā mōrahi ({date}) kua whakaaetia' + VALIDDATEMINDATE: 'Me hōu ake tō rā, kia ōrite rānei ki te rā moroiti ({date}) kua whakaaetia' + DatetimeField: + NOTSET: 'Kāore i tautuhia' + Director: + INVALID_REQUEST: 'Tono muhu' + DropdownField: + CHOOSE: (Kōwhiri) + EmailField: + VALIDATION: 'Tāurua he wāhitau īmēra ' + Email_BounceRecord: + PLURALNAME: 'Ngā Pūrongo Tāwhana Īmēra' + SINGULARNAME: 'Pūrongo Tāwhana Īmēra' + Enum: + ANY: 'Ko tētahi' + File: + Content: 'Ngā Ihirangi' + Filename: 'Ingoa Kōnae' + INVALIDEXTENSION: 'Kāore e whakaaetia te toronga (valid: {extensions})' + INVALIDEXTENSIONSHORT: 'Kāore e whakaaetia te toronga' + NOFILESIZE: 'He kore ngā paita kei te kōnae' + NOVALIDUPLOAD: 'Ehara te kōnae i te tukuatu pono' + Name: Ingoa + PLURALNAME: 'Ngā Kōnae' + SINGULARNAME: Kōnae + TOOLARGE: 'He rahi rawa te rahi kōnae, he {size} te rahi mōrahi ka taea' + TOOLARGESHORT: 'Ka hipa te {size} i te rahi kōnae' + Title: Taitara + FileIFrameField: + ATTACH: 'Āpiti {type}' + ATTACHONCESAVED: 'Ka taea te āpiti i ngā {type} ina oti te tiaki tuatahi o te pūkete.' + ATTACHONCESAVED2: 'Ka taea te āpiti kōnae ina oti te tiaki tuatahi o te pūkete.' + DELETE: 'Muku {type}' + DISALLOWEDFILETYPE: 'Kāore e whakaaetia ki te tukuatu i tēnei momo kōnae' + FILE: Kōnae + FROMCOMPUTER: 'Mai i tō Rorohiko' + FROMFILESTORE: 'Mai i te pātaka kōnae' + NOSOURCE: 'Kōwhiria he kōnae pūtake hei tāpiri' + REPLACE: 'Whakakapi {type}' + FileIFrameField_iframe.ss: + TITLE: 'Iframe Tukuatu Atahanga' + Filesystem: + SYNCRESULTS: 'Kua oti te tukutahi: e {createdcount} ngā tūemi i hangaia, e {deletedcount} ngā tūemi i mukua' + Folder: +<<<<<<< HEAD + PLURALNAME: Folders + SINGULARNAME: Folder +======= + PLURALNAME: 'Ngā Kōpaki' + SINGULARNAME: Kōpaki +>>>>>>> origin/translation-staging + ForgotPasswordEmail.ss: + HELLO: 'Kia ora' + TEXT1: 'Anei tō' + TEXT2: 'hono tautuhi kupuhipa anō' + TEXT3: mā + Form: + FIELDISREQUIRED: 'Ka hiahiatia a %s' + SubmitBtnLabel: Haere + VALIDATIONCREDITNUMBER: 'Tirohia kua tika tō tāuru i te tau kāri nama {number}' + VALIDATIONNOTUNIQUE: 'Ehara te uara i tāurua i te ahurei' + VALIDATIONPASSWORDSDONTMATCH: 'Kāore ngā kupuhipa i te ōrite' + VALIDATIONPASSWORDSNOTEMPTY: 'Kia kaua e noho piako ngā kupuhipa' + VALIDATIONSTRONGPASSWORD: 'Kia kotahi tonu te mati, kia tahi hoki te pūāhua retawhika i te iti rawa o ngā kupuhipa' + VALIDATOR: Pūwhakamana + VALIDCURRENCY: 'Tāurua he moni tika' + FormField: + NONE: Kore + GridAction: + DELETE_DESCRIPTION: Muku + Delete: Muku + UnlinkRelation: Wetehono + GridField: + Add: 'Tāpiri {name}' + Filter: Tātari + FilterBy: 'Tātari mā' + Find: Rapu + LEVELUP: 'Whakaawhiwhi ki runga' + LinkExisting: 'Hono Tīari' + NewRecord: '%s hōu' + NoItemsFound: 'Kāore i kitea he tūemi' + PRINTEDAT: 'I tāngia i' + PRINTEDBY: 'I tāngia e' + PlaceHolder: 'Tapu {type}' + PlaceHolderWithLabels: 'Rapu {type} mā te {name}' + RelationSearch: 'Rapu whanaunga' + ResetFilter: 'Tautuhi anō' + GridFieldAction_Delete: + DeletePermissionsFailure: 'Kāore he muku whakaaetanga' + GridFieldDetailForm: + Create: Hanga + Delete: Muku + DeletePermissionsFailure: 'Kāore he muku whakaaetanga' + Deleted: 'Kua mukua %s %s' + Save: Tiaki + Saved: 'I tiakina a %s %s' + GridFieldItemEditView.ss: null + Group: + AddRole: 'Tāpiritia he tūnga mō tēnei rōpū' + Code: 'Waehere Rōpū' + DefaultGroupTitleAdministrators: 'Ngā Kaiwhakahaere' + DefaultGroupTitleContentAuthors: 'Ngā Kaituhi Ihirangi' + Description: Whakaahuatanga + GroupReminder: 'Mēnā ka kōwhiri koe i tētahi rōpū matua, ka whiwhi tēnei rōpū i ōna tūnga katoa' + Locked: 'Kua raka?' + NoRoles: 'Kāore i kitea he tūnga' +<<<<<<< HEAD + PLURALNAME: Groups + Parent: 'Rōpū Matua' + RolesAddEditLink: 'Whakahaere tūnga' + SINGULARNAME: Group +======= + PLURALNAME: 'Ngā Rōpū' + Parent: 'Rōpū Matua' + RolesAddEditLink: 'Whakahaere tūnga' + SINGULARNAME: Rōpū +>>>>>>> origin/translation-staging + Sort: 'Raupapa Kōmaka' + has_many_Permissions: 'Ngā Whakaaetanga' + many_many_Members: 'Ngā Mema' + GroupImportForm: + Help1: '

Kawea mai ngā kaiwhakamahi i te hōputu CSV (ngā uara ka wehea ki te piko). Whakaatu whakamahinga ara atu anō

' + Help2: "
\\n

Whakamahinga ara atu anō

\\n
    \\n
  • Ngā tīwae ka whakaaetia: %s
  • \\n
  • Ka whakaritea ngā kaiwhakamahi mā tō rātou āhuatangaWaehere ahurei, ā, ka whakahōutia ki ngā uara hōu mai i te kōnae kua kawea mai
  • \\n
  • Ka taea te hanga aroākapanga rōpū mā te whakamahi i te tīwae WaehereMatua.
  • \\n
  • Ka taea te tautapa waehere whakaaetanga mā te tīwaeWaehereWhakaaetanga. Kāore e ūkuia ngā waehere whakaaetanga o nāianei.
  • \\n
\\n
" + ResultCreated: 'I hangaia e {count} ngā rōpū' + ResultDeleted: 'Kua mukua e %d ngā rōpū' + ResultUpdated: 'Kua whakahōutia e %d ngā rōpū' + Hierarchy: + InfiniteLoopNotAllowed: 'Kua kitea he koromeke mutunga kore i roto i te aroākapanga "{type}". Hurihia te matua hei whakaea i tēnei' + HtmlEditorField: + ADDURL: 'Tāpiri PRO' + ADJUSTDETAILSDIMENSIONS: 'Ngā taipitopito & ngā rahinga' + ANCHORVALUE: Punga + BUTTONINSERT: Kōkohu + BUTTONINSERTLINK: 'Kōkuhu hono' + BUTTONREMOVELINK: 'Tango hono' + BUTTONUpdate: Whakahōu + CAPTIONTEXT: 'Tuhinga tapanga' + CSSCLASS: 'Tiaroaro / kāhua' + CSSCLASSCENTER: 'I tauwaengatia, i tōna kotahi' + CSSCLASSLEFT: 'I te taha mauī, me te tuhinga e takai huri noa ana' + CSSCLASSLEFTALONE: 'Kei te mauī, i tōna kotahi' + CSSCLASSRIGHT: 'I te taha matau, me te tuhinga e takai huri noa ana' + DETAILS: 'Ngā Taipitopito' + EMAIL: 'Wāhitau Īmēra' + FILE: 'Ngā kōnae' + FOLDER: Kōpaki + FROMCMS: 'Mai i te CMS' + FROMCOMPUTER: 'Mai i tō rorohiko' + FROMWEB: 'Mai i te tukutuku' + FindInFolder: 'Rapu i te Kōpaki' + IMAGEALT: 'Tuhinga kē (alt)' + IMAGEALTTEXT: 'Tuhinga kē - ka whakaaturia ki te kore e taea te whakaatu atahanga' + IMAGEALTTEXTDESC: 'Ka whakaaturia ki ngā pūpānui mata, mēnā rānei kāore e taea te atahanga te whakaatu' + IMAGEDIMENSIONS: 'Ngā Rahinga' + IMAGEHEIGHTPX: Teitei + IMAGETITLE: 'Tuhinga taitara (ākiutauta) - mō ngā mōhiohio tāpiri mō te atahanga' + IMAGETITLETEXT: 'Tuhinga taitara (ākiutauta) ' + IMAGETITLETEXTDESC: 'Mō ētahi atu mōhiohio mō te atahanga' + IMAGEWIDTHPX: Whānui + INSERTMEDIA: 'Kōkuhu Pāpāho' + LINK: 'Kōkuhu hono' + LINKANCHOR: 'He punga kei tēnei whārangi' + LINKDESCR: 'Whakaahuatanga hono' + LINKEMAIL: 'Wāhitau Īmēra' + LINKEXTERNAL: 'Tētahi atu paetukutuku' + LINKFILE: 'Tīkina ake he kōnae' + LINKINTERNAL: 'Whārangi kei te pae' + LINKOPENNEWWIN: 'Ka whakatuwhera hono i te matapihi hōu?' + LINKTO: 'Hono ki' + PAGE: Whārangi + URL: PRO + URLNOTANOEMBEDRESOURCE: 'Kāore e taea te huri i te PRO ''{url}'' hei rawa pāpāho.' + UpdateMEDIA: 'Whakahōu Pāpāho' + Image: + PLURALNAME: 'Ngā Kōnae' + SINGULARNAME: Kōnae + ImageField: + IMAGE: Atahanga + Image_Cached: + PLURALNAME: 'Ngā kōnae' + SINGULARNAME: Kōnae + Image_iframe.ss: + TITLE: 'Iframe Tukuatu Atahanga' + LeftAndMain: + CANT_REORGANISE: 'Kāore tō mana whakakē i ngā whārangi taumata Matua. Kāore tō huringa i tiakina.' + DELETED: 'I mukua' + DropdownBatchActionsDefault: 'Ngā Mahi' + HELP: Āwhina + PAGETYPE: 'Momo whārangi:' + PERMAGAIN: 'Kua takiputaina atu koe i te CMS. Ki te pīrangi koe ki te takiuru atu anō, tāurutia tētahi ingoa kaiwhakamahi me te kupuhipa. ' + PERMALREADY: 'Aroha mai, kāore e taea te whakauru i tērā wāhanga o te CMS. Ki te pīrangi koe ki te takiuru atu mā tētahi atu ingoa, whakamahia ki raro nei.' + PERMDEFAULT: 'Whiriwhiria koa tētahi aratuka motuhēhēnga me te tāuru i ō pūkenga ki te whakauru i te CMS.' + PLEASESAVE: 'Tiaki Whārangi: Kāore i taea tēnei whārangi te whakahōu nā te mea kāore anō kia tiakina.' + PreviewButton: Arokite + REORGANISATIONSUCCESSFUL: 'Kua momoho te whakaraupapa anō i te rākau pae' + SAVEDUP: 'Kua Tiakina' + VersionUnknown: 'tē mōhiotia' + LeftAndMain_Menu.ss: + Hello: 'Kia ora' + LOGOUT: Takiputa + LoginAttempt: + Email: 'Wāhitau Īmēra' + IP: 'Wāhitau KI' +<<<<<<< HEAD + PLURALNAME: 'Login Attempts' + SINGULARNAME: 'Login Attempt' +======= + PLURALNAME: 'Ngā Whakamātau Takiuru' + SINGULARNAME: 'Whakamātau Takiuru' +>>>>>>> origin/translation-staging + Status: Tūnga + Member: + ADDGROUP: 'Tāpiri rōpū' + BUTTONCHANGEPASSWORD: 'Huri Kupuhipa' + BUTTONLOGIN: Takiuru + BUTTONLOGINOTHER: 'Takiuru hei tangata kē' + BUTTONLOSTPASSWORD: 'Kua ngaro i a au taku kupuhipa' + CONFIRMNEWPASSWORD: 'Whakaū Kupuhipa Hōu' + CONFIRMPASSWORD: 'Whakaū Kupuhipa' + DATEFORMAT: 'Date format' + DefaultAdminFirstname: 'Kaiwhakahaere Taunoa' + DefaultDateTime: taunoa + EMAIL: Īmēra + EMPTYNEWPASSWORD: 'Kāore e whakaaetia kia piako te kupuhipa hōu, ngana anō' + ENTEREMAIL: 'Tāurua he wāhitau īmēra kia whiwhi i te hono tautuhi kupuhipa anō.' + ERRORLOCKEDOUT: 'Kua mono rangitahitia tō pūkete nā te nui rawa o ngā whakamātau hē ki te takiuru. Ngana anō ā te 20 meneti.' + ERRORNEWPASSWORD: 'Kua rerekē tō tāuru kupuhipa, whakamātau anō' + ERRORPASSWORDNOTMATCH: 'Kāore i te ōrite tō kupuhipa o nāianei, ngana anō' + ERRORWRONGCRED: 'Te āhua nei ehara i te wāhitau īmerā tika, i te kuphipa tika rānei. Ngana anō' + FIRSTNAME: 'Ingoa Tuatahi' + INTERFACELANG: 'Reo Atanga' + INVALIDNEWPASSWORD: 'Kāore i taea te whakaae ki taua kupuhipa: {password}' + LOGGEDINAS: 'Kua takiuru koe hei {name}.' + NEWPASSWORD: 'Kupuhipa Hōu' + PASSWORD: Kupuhipa + PLURALNAME: 'Ngā Mema' + PROFILESAVESUCCESS: 'I momoho te tiaki' + REMEMBERME: 'Ka maumahara mai ā muri atu?' + SINGULARNAME: Mema + SUBJECTPASSWORDCHANGED: 'Kua hurihia tō kupuhipa' + SUBJECTPASSWORDRESET: 'Tō hono tautuhi kupuhipa anō' + SURNAME: 'Ingoa Whānau' + TIMEFORMAT: 'Time format' + VALIDATIONMEMBEREXISTS: 'Tīari kē ana tētahi mema me te %s ōrite' + ValidationIdentifierFailed: 'Kāore e whakaaetia ki te tuhirua i te mema #{id} ki te pūtautuhi ōrite ({name} = {value}))' + WELCOMEBACK: 'Nau mai, hoki mai, {firstname}' + YOUROLDPASSWORD: 'Tō kupuhipa tawhito' + belongs_many_many_Groups: 'Ngā Rōpū' + db_LastVisited: 'Rā Toronga Tōmua' + db_Locale: 'Tauwāhi Atanga' + db_LockedOutUntil: 'Ka maukatia tae atu ki te' + db_NumVisit: 'Maha o ngā Toronga' + db_Password: Kupuhipa + db_PasswordExpiry: 'Rā Mōnehu Kupuhipa' + MemberAuthenticator: + TITLE: 'Īmērā & Kupuhipa' + MemberDatetimeOptionsetField: + AMORPM: 'AM (Ante meridiem), PM (Post meridiem) rānei' + 'APPLY FILTER': 'Hoatu Tātari' + Custom: Ritenga + DATEFORMATBAD: 'He muhu te hōputu rā' + DAYNOLEADING: 'Rā o te marama kāore he kore i mua' + DIGITSDECFRACTIONSECOND: 'Kotahi neke atu ngā mati e tohu ana i te hautau ā-ira o te hēkona' + FOURDIGITYEAR: 'Tau matiwhā' + FULLNAMEMONTH: 'Ingoa marama katoa (hei tauira, Pipiri)' + HOURNOLEADING: 'Haora, kāore he kore i mua' + MINUTENOLEADING: 'Meneti, kāore he kore i mua' + MONTHNOLEADING: 'Mati marama kāore he kore i mua' + Preview: Arokite + SHORTMONTH: 'Ingoa marama poto (hei tauira, Pip)' + TOGGLEHELP: 'Takahurihia te āwhina whakahōputu' + TWODIGITDAY: 'Rā marama matirua' + TWODIGITHOUR: 'Ngā mati haora e rua (00 ki te 23)' + TWODIGITMINUTE: 'Ngā mati meneti e rua (00 ki te 59)' + TWODIGITMONTH: 'Marama matirua (01=Kohitātea)' + TWODIGITSECOND: 'Ngā mati hēkona e rua (00 ki te 59)' + TWODIGITYEAR: 'Tau matirua' + MemberImportForm: + Help1: '

Kawea mai ngā kaiwhakamahi i te hōputu CSV (ngā uara ka wehea ki te piko). Whakaatu whakamahinga ara atu anō

' + Help2: "
\\n

Whakamahinga ara atu anō

\\n
    \\n
  • Ngā tīwae ka whakaaetia: %s
  • \\n
  • Ka whakaritea ngā kaiwhakamahi mā tō rātou āhuatangaWaehere ahurei, ā, ka whakahōutia ki ngā uara hōu mai i te kōnae kua kawea mai.
  • \\n
  • Ka taea te tautapa rōpū mā te tīwae Ngā Rōpū. Ka tautohua ngā rōpū mā tō rātou āhuatanga Waehere, ka taea te whakawehe i ngā rōpū maha ki te piko. Kāore e ūkuia ngā mematanga rōpū o naianei.
  • \\n
\\n
" + ResultCreated: 'I hangaia e {count} ngā mema' + ResultDeleted: 'Kua mukua e %d ngā mema' + ResultNone: 'Kāore he huringa' + ResultUpdated: 'I whakahōutia e {count} mhā mema' + MemberPassword: +<<<<<<< HEAD + PLURALNAME: 'Member Passwords' + SINGULARNAME: 'Member Password' +======= + PLURALNAME: 'Ngā Kupuhipa Mema' + SINGULARNAME: 'Kupuhipa Mema' +>>>>>>> origin/translation-staging + MemberTableField: null + ModelAdmin: + DELETE: Muku + DELETEDRECORDS: 'I mukua e {count} ngā pūkete.' + IMPORT: 'Kawemai i CSV' + IMPORTEDRECORDS: 'I kawea mai e {count} ngā pūkete.' + NOCSVFILE: 'Pūtirotiro kia kitea he kōnae CSV hei kawemai' + NOIMPORT: 'Kāore he mea hei kawemai' + RESET: 'Tautuhi Anō' + Title: 'Ngā Tauira Raraunga' + UPDATEDRECORDS: 'I whakahōutia e {count} ngā pūkete.' + ModelAdmin_ImportSpec.ss: + IMPORTSPECFIELDS: 'Ngā tīwae pātengi raraunga' + IMPORTSPECLINK: 'Whakaatu Whakapūtātanga mō %s' + IMPORTSPECRELATIONS: 'Ngā Pānga' + IMPORTSPECTITLE: 'Whakapūtātanga mō %s' + ModelAdmin_Tools.ss: + FILTER: Tātari + IMPORT: Kawemai + ModelSidebar.ss: + IMPORT_TAB_HEADER: Kawemai + SEARCHLISTINGS: Rapu + MoneyField: + FIELDLABELAMOUNT: Rahinga + FIELDLABELCURRENCY: Moni + NullableField: + IsNullLabel: 'He Kore Tēnei' + NumericField: + VALIDATION: 'Ehara te ''{value}'' i te tau, ka taea ngā tau anake ki tēnei āpure' + Pagination: + Page: Whārangi +<<<<<<< HEAD + View: View +======= + View: Tiro +>>>>>>> origin/translation-staging + Permission: + AdminGroup: Kaiwhakahaere + CMS_ACCESS_CATEGORY: 'Uru CMS' + FULLADMINRIGHTS: 'Ngā motika kaiwhakahaere katoa' + FULLADMINRIGHTS_HELP: 'Ka whakapae me te takahi i ērā atu whakaaetanga katoa kua tautapatia.' + PLURALNAME: Permissions +<<<<<<< HEAD + SINGULARNAME: Permission +======= + SINGULARNAME: Whakaaetanga +>>>>>>> origin/translation-staging + PermissionCheckboxSetField: + AssignedTo: 'kua tautapatia ki "{title}"' + FromGroup: 'I tukuna iho i te rōpū "{title}"' + FromRole: 'I tukuna iho i te tūnga "{title}"' + FromRoleOnGroup: 'i tukuna iho i "%s" i te rōpū "%s"' + PermissionRole: + PLURALNAME: 'Ngā Tūnga' +<<<<<<< HEAD + SINGULARNAME: Role +======= + SINGULARNAME: Tūranga +>>>>>>> origin/translation-staging + PermissionRoleCode: + PLURALNAME: 'Permission Role Cods' + SINGULARNAME: 'Permission Role Code' + Permissions: + PERMISSIONS_CATEGORY: 'Ngā tūnga me ngā whakaaetanga uru' + PhoneNumberField: + VALIDATION: 'Tāurua he tau waea tika' + RelationComplexTableField.ss: + ADD: Tāpiri + CSVEXPORT: 'Kaweatu ki CSV' + NOTFOUND: 'Kāore i kitea he tūemi' + Security: + ALREADYLOGGEDIN: 'Kāore i te whakaaetia kia uru koe ki tēnei whārangi. Mēnā he pūkete anō tōu e taea ai te uru ki tēnā whārangi, ka taea te takiuru anō i raro.' + BUTTONSEND: 'Tukuna mai te hono tautuhi kupuhipa anō' + CHANGEPASSWORDBELOW: 'Ka taea te huri i tō kupuhipa i raro' + CHANGEPASSWORDHEADER: 'Hurihia tō kupuhipa' + ENTERNEWPASSWORD: 'Tāurua he kupuhipa hōu' + ERRORPASSWORDPERMISSION: 'Me takiuru koe i mua i te huri i tō kupuhipa!' + LOGGEDOUT: 'Kua takiputaina atu koe. Ki te pīrangi koe ki te takiuru atu anō, tāurutia ō taipitopito tuakiri ki raro. ' + LOGIN: Takiuru + NOTEPAGESECURED: 'Kua ngita tēnā whārangi. Tāurua ō taipitoptio tuakiri ki raro, ā, mā mātou koe e tuku kia haere tonu.' + NOTERESETLINKINVALID: '

He muhu, kua mōnehu rānei te hono tautuhi kupuhipa anō.

Ka taea te tono i te mea hōui konei ka huri rānei i tō kupuhipa ā muri i tōtakiuru.

' + NOTERESETPASSWORD: 'Tāurua tō wāhitau īmēra, mā mātou e tuku tētahi hono ki a koe e taea ai te tautuhi anō i tō kupuhipa' + PASSWORDSENTHEADER: 'I tukuna he hono tautuhi kupuhipa anō ki ''{email}''' + PASSWORDSENTTEXT: 'Kia ora! Kua tukuna he hono tautuhi anō ki ''{email}'',engari rā kei te tīariari he pūkete mō taua wāhitau īmēra.' + SecurityAdmin: + ACCESS_HELP: 'Tukuna te tiro, te tāpiri me te whakatika i ngā kaiwhakamahi, me te tautapa anō hoki i ngā whakaaetanga me ngā tūnga ki a rātou.' + APPLY_ROLES: 'Hoatu tūnga ki ngā rōpū' + APPLY_ROLES_HELP: 'Te āhei ki te whakatika tūnga kua tautapatia ki tētahi rōpū. Ka hiahiatia te whakaaetanga "Uru ki te wāhanga ''Ngā Kaiwhakamahi''"' + EDITPERMISSIONS: 'Whakahaere whakaaetanga mō ngā rōpū' + EDITPERMISSIONS_HELP: 'Te āhei ki te whakatika i Ngā Whakaaetanga me Ngā Wāhitau KI mō tētahi rōpū. Ka hiahiatia te whakaaetanga "Uru ki te wāhanga ''Haumarutanga''".' + GROUPNAME: 'Ingoa rōpū' + IMPORTGROUPS: 'Kawea mai ngā rōpū' + IMPORTUSERS: 'Kawe kaiwhakamahi mai' + MEMBERS: 'Ngā Mema' + MENUTITLE: Haumarutanga + MemberListCaution: 'Whakatūpato: Mā te tango mema i tēnei rārangi, ka tangohia i ngā rōpū katoa me te pātengi raraunga' + NEWGROUP: 'Rōpū Hōu' + PERMISSIONS: 'Ngā Whakaaetanga' + ROLES: 'Ngā Tūnga' + ROLESDESCRIPTION: 'Ko ngā tūnga he huinga o ngā whakaaetanga i tautuhia i mua, ā, ka taea te tautapa i ēnei ki ngā rōpū.
I tukuna iho i ngā rōpū matua ki te hiahiatia.' + TABROLES: 'Ngā Tūnga' + Users: 'Ngā Kaiwhakamahi' + SecurityAdmin_MemberImportForm: + BtnImport: 'Kawemai i CSV' + FileFieldLabel: 'Kōnae CSV (Ngā toronga ka whakaaetia: *.csv)' + SilverStripeNavigator: + Edit: Whakatika + SimpleImageField: + NOUPLOAD: 'Kāore He Atahanga Tukuatu' + SiteTree: + TABMAIN: Matua + TableField: + ISREQUIRED: 'Ka hiahiatia te %s i te ''%s'' ' + TableField.ss: + ADD: 'Tāpiri haupae hōu' + ADDITEM: 'Tāpiri %s' + TableListField: + CSVEXPORT: 'Kaweake ki CSV' + PRINT: Tā + Print: Tā + SELECT: 'Tīpako:' + TableListField.ss: + NOITEMSFOUND: 'Kāore i kitea he tūemi' + SORTASC: 'Kōmakatia ki te raupapa aupiki' + SORTDESC: 'Kōmakatia ki te raupapa auheke' + TableListField_PageControls.ss: + DISPLAYING: 'Whakaatu ana' + OF: o + TO: ki + VIEWFIRST: 'Tirohia te tuatahi' + VIEWLAST: 'Tirohia te whakamutunga' + VIEWNEXT: 'Tiro panuku' + VIEWPREVIOUS: 'Tiro tōmua' + TimeField: + VALIDATEFORMAT: 'Tāurua he hōputu wā tika ({format})' + ToggleField: + LESS: 'iti iho' + MORE: 'nui ake' + UploadField: + ATTACHFILE: 'Tāpiritia tētahi kōnae' + ATTACHFILES: 'Tāpiri kōnae' + AttachFile: 'Tāpiritia t/ētahi kōnae' + DELETE: 'Muku i ngā kōnae' + DELETEINFO: 'Muku pūmautia tēnei kōnae i te pātaka kōnae' + DOEDIT: Tiaki + DROPFILE: 'whakamakeretia tētahi kōnae' + DROPFILES: 'taka kōnae' + Dimensions: 'Ngā Rahinga' + EDIT: Whakatika + EDITINFO: 'Whakatikatia tēnei kōnae' + FIELDNOTSET: 'Kāore i kitea te mōhiohio kōnae' + FROMCOMPUTER: 'Mai i tō rorohiko' + FROMCOMPUTERINFO: 'Tīpako mai i ngā kōnae' + FROMFILES: 'I ngā kōnae' + HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.' + MAXNUMBEROFFILES: 'Kua hipa te mōrahi o ngā kōnae {count}.' + MAXNUMBEROFFILESSHORT: 'Ka taea te tukuatu i ngā kōnae {count} anake ' + REMOVE: Tango + REMOVEERROR: 'Kua rarua te tango kōnae' + REMOVEINFO: 'Tangohia tēnei kōane i konei, engari kaua e muku i te pātaka kōnae' + STARTALL: 'Tīmata katoa' + STARTALLINFO: 'Tīmataria ngā tukuatu katoa' + Saved: 'Kua Tiakina' + Versioned: + has_many_Versions: 'Ngā Putanga' diff --git a/lang/nl.yml.orig b/lang/nl.yml.orig new file mode 100644 index 000000000..423ae54af --- /dev/null +++ b/lang/nl.yml.orig @@ -0,0 +1,556 @@ +nl: + AssetAdmin: + ADDFILES: 'Add files' + EditOrgMenu: 'Edit & organize' + NEWFOLDER: 'Nieuwe Map' + AssetTableField: + CREATED: 'Eerste upload' + DIM: Dimensies + FILENAME: Bestandsnaam + FOLDER: Folder + LASTEDIT: 'Laatste wijziging' + OWNER: Eigenaar + SIZE: Grootte + TITLE: Titel + TYPE: Type + URL: URL + AssetUploadField: + ChooseFiles: 'Selecteer bestanden' + DRAGFILESHERE: 'Sleep bestanden hiernaar toe' + DROPAREA: 'Hierheen slepen' + EDITALL: 'Alles bewerken' + EDITANDORGANIZE: 'Bewerk en beheer' + EDITINFO: 'Edit files' + FILES: Bestanden + FROMCOMPUTER: 'Choose files from your computer' + FROMCOMPUTERINFO: 'Upload from your computer' + TOTAL: Totaal + UPLOADINPROGRESS: 'Ogenblikje... bezig met uploaden' + UPLOADOR: OF + BBCodeParser: + ALIGNEMENT: Uitlijning + ALIGNEMENTEXAMPLE: 'rechts uitgelijnd' + BOLD: 'Vetgedrukte tekst' + BOLDEXAMPLE: Vetgedrukt + CODE: 'Code Blok' + CODEDESCRIPTION: 'niet opgemaakt code blok' + CODEEXAMPLE: 'Code Blok' + COLORED: 'Gekleurde tekst' + COLOREDEXAMPLE: 'blauwe tekst' + EMAILLINK: 'Email link' + EMAILLINKDESCRIPTION: 'Maak een koppeling naar een e-mailadres' + IMAGE: Foto + IMAGEDESCRIPTION: 'Toon een afbeelding in uw bericht' + ITALIC: 'Cursieve tekst' + ITALICEXAMPLE: Cursief + LINK: 'Website link' + LINKDESCRIPTION: 'Link naar een andere website of URL' + STRUCK: 'Doorgehaalde tekst' + STRUCKEXAMPLE: Doorgehaald + UNDERLINE: 'Onderstreepte tekst' + UNDERLINEEXAMPLE: Onderstreept + UNORDERED: 'Ongesorteerde lijst' + UNORDEREDDESCRIPTION: 'Ongesorteerde lijst' + UNORDEREDEXAMPLE1: 'ongesorteerd item 1' + BackLink_Button.ss: + Back: Terug + BasicAuth: + ENTERINFO: 'Voer een gebruikers naam en wachtwoord in.' + ERRORNOTADMIN: 'Die gebruiker is geen beheerder.' + ERRORNOTREC: 'De gebruikersnaam en/of wachtwoord wordt niet herkend' + Boolean: + 0: 'False' + ANY: Elke + 1: 'True' + CMSLoadingScreen.ss: + LOADING: Laden... + REQUIREJS: 'The CMS requires that you have JavaScript enabled.' + CMSMain: + ACCESS: 'Toegang tot het ''{title}'' gedeelte' + ACCESSALLINTERFACES: 'Toegang tot alle CMS onderdelen' + ACCESSALLINTERFACESHELP: 'Overstemt meer specifieke toegangsinstellingen' + SAVE: Bewaar + CMSProfileController: + MENUTITLE: CMSProfileController + ChangePasswordEmail.ss: + CHANGEPASSWORDTEXT1: 'U heeft het wachtwoord veranderd voor' + CHANGEPASSWORDTEXT2: 'U kunt nu onderstaande gegevens gebruiken om in te loggen:' + EMAIL: E-mail + HELLO: Hallo + PASSWORD: Wachtwoord + CheckboxField: + - 'False' + - 'True' + ComplexTableField: + CLOSEPOPUP: 'Sluit Popup' + SUCCESSADD2: 'Toegevoegd {name}' + SUCCESSEDIT: '%s %s %s Opgeslagen' + ComplexTableField.ss: + ADDITEM: 'Add %s' + NOITEMSFOUND: 'No items found' + SORTASC: 'Sorteer oplopend' + SORTDESC: 'Sorteer aflopend' + ComplexTableField_popup.ss: + NEXT: Volgende + PREVIOUS: Vorige + ConfirmedPasswordField: + ATLEAST: 'Passwords must be at least {min} characters long.' + BETWEEN: 'Passwords must be {min} to {max} characters long.' + MAXIMUM: 'Passwords must be at most {max} characters long.' + SHOWONCLICKTITLE: 'Verander wachtwoord' + CreditCardField: + FIRST: eerste + FOURTH: vierde + SECOND: tweede + THIRD: derde + CurrencyField: + CURRENCYSYMBOL: $ + DataObject: + PLURALNAME: 'Gegeven Objecten' + SINGULARNAME: 'Gegeven Object' + Date: + DAY: dag + DAYS: dagen + HOUR: uur + HOURS: uren + MIN: minuut + MINS: minuten + MONTH: maand + MONTHS: maanden + SEC: seconde + SECS: seconden + TIMEDIFFAGO: '{difference} geleden' + TIMEDIFFIN: 'in {difference}' + YEAR: jaar + YEARS: jaren + DateField: + NOTSET: 'niet ingesteld' + TODAY: vandaag + VALIDDATEFORMAT2: 'Vul een valide datum in ({format})' + VALIDDATEMAXDATE: 'De datum moet eerder of gelijk zijn aan de maximale datum ({date})' + VALIDDATEMINDATE: 'De datum moet nieuwer of gelijk zijn aan de minimale datum ({date})' + DatetimeField: + NOTSET: 'Not set' + Director: + INVALID_REQUEST: 'Fout bij verwerken' + DropdownField: + CHOOSE: (Kies) + EmailField: + VALIDATION: 'Please enter an email address' + Email_BounceRecord: + PLURALNAME: 'Onbezorgbare emails' + SINGULARNAME: 'Onbezorgbare email' + Enum: + ANY: Elke + File: + Content: Inhoud + Filename: 'Bestandsnaam ' + INVALIDEXTENSION: 'Extension is not allowed (valid: {extensions})' + INVALIDEXTENSIONSHORT: 'Extension is not allowed' + NOFILESIZE: 'Bestandsgrootte is nul bytes.' + NOVALIDUPLOAD: 'Geen geldig bestand' + Name: Naam + PLURALNAME: Bestanden + SINGULARNAME: Bestand + TOOLARGE: 'Filesize is too large, maximum {size} allowed' + TOOLARGESHORT: 'Filesize exceeds {size}' + Title: 'Titel ' + FileIFrameField: + ATTACH: 'Attach {type}' + ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.' + ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.' + DELETE: 'Delete {type}' + DISALLOWEDFILETYPE: 'Dit type bestand mag niet worden opgeslagen' + FILE: Bestand + FROMCOMPUTER: 'Vanaf computer' + FROMFILESTORE: 'Vanaf de website''s bestandsopslag' + NOSOURCE: 'Selecteer een bron bestand om toe te voegen' + REPLACE: 'Replace {type}' + FileIFrameField_iframe.ss: + TITLE: 'Afbeelding uploaden' + Filesystem: + SYNCRESULTS: 'Synchroniseren compleet: {createdcount} bestanden aangemaakt, {deletedcount} bestanden verwijderd.' + Folder: + PLURALNAME: Folders + SINGULARNAME: Folder + ForgotPasswordEmail.ss: + HELLO: Hallo + TEXT1: 'Hier is uw' + TEXT2: 'wachtwoord reset link' + TEXT3: voor + Form: + FIELDISREQUIRED: '%s is verplicht' + SubmitBtnLabel: Go + VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly' + VALIDATIONNOTUNIQUE: 'De ingevoerde waarde is niet uniek' + VALIDATIONPASSWORDSDONTMATCH: 'Wachtwoorden komen niet overeen' + VALIDATIONPASSWORDSNOTEMPTY: 'Wachtwoorden mogen niet leeg zijn' + VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character' + VALIDATOR: Controleur + VALIDCURRENCY: 'Please enter a valid currency' + FormField: + NONE: geen + GridAction: + DELETE_DESCRIPTION: Verwijder + Delete: Verwijder + UnlinkRelation: Ontkoppelen + GridField: + Add: '{name} toevoegen' + Filter: Filteren + FilterBy: Filteren + Find: Zoek + LEVELUP: 'Niveau hoger' + LinkExisting: 'Koppelen aan' + NewRecord: 'Nieuw %s' + NoItemsFound: 'Geen items gevonden.' + PRINTEDAT: 'Geprint om' + PRINTEDBY: 'Geprint door' + PlaceHolder: 'Zoek {type}' + PlaceHolderWithLabels: 'Zoek {type} op {name}' + RelationSearch: 'Relation search' + ResetFilter: Herstel + GridFieldAction_Delete: + DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen' + GridFieldDetailForm: + Create: Create + Delete: Verwijder + DeletePermissionsFailure: 'Onvoldoende rechten om te verwijderen' + Deleted: 'Deleted %s %s' + Save: Opslaan + Saved: '%s %s %s Opgeslagen' + GridFieldItemEditView.ss: null + Group: + AddRole: 'Voeg een rol toe aan deze groep' + Code: 'Groep code' + DefaultGroupTitleAdministrators: Beheerders + DefaultGroupTitleContentAuthors: 'Inhoud Auteurs' + Description: 'Omschrijving ' + GroupReminder: 'Als je de bovenliggende groep selecteert, neemt deze groep alle rollen over' + Locked: 'Gesloten?' + NoRoles: 'Geen rollen gevonden' + PLURALNAME: Groups + Parent: 'Bovenliggende groep' + RolesAddEditLink: 'Toevoegen/wijzigingen rollen' + SINGULARNAME: Group + Sort: Sorteer-richting + has_many_Permissions: Rechten + many_many_Members: Lid + GroupImportForm: + Help1: '

Importeer en of meerdere groepen in CSV formaat (Kommagescheiden bestandsformaat). Toon geavanceerd gebruik

' + Help2: '

Geavanceerd gebruik

  • Toegestane kolommen: %s
  • Bestaande groepen worden geïdentificeerd door middel van hun unieke Code waarde en aangepast met de nieuwe waarden van het geïmporteerde bestand
  • Groep hiërarchieën kunnen aangemaakt worden met behulp van een ParentCode kolom.
  • Toegangsrechten kunnen worden toegekend met de PermissionCode kolom. Bestaande toegangsrechten worden niet gewist.
' + ResultCreated: 'Created {count} groups' + ResultDeleted: '%d groepen verwijderd' + ResultUpdated: '%d groepen aangepast' + Hierarchy: + InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this' + HtmlEditorField: + ADDURL: 'Voeg URL toe' + ADJUSTDETAILSDIMENSIONS: 'Details $amp; afmeting' + ANCHORVALUE: Anker + BUTTONINSERT: Invoegen + BUTTONINSERTLINK: 'Link invoegen' + BUTTONREMOVELINK: 'Link verwijderen' + BUTTONUpdate: Update + CAPTIONTEXT: Onderschrift + CSSCLASS: 'Uitlijning / stijl' + CSSCLASSCENTER: 'Gecentreerd, op zichzelf staand.' + CSSCLASSLEFT: 'Aan de linkerkant, met tekst eromheen.' + CSSCLASSLEFTALONE: 'Links, losstaand.' + CSSCLASSRIGHT: 'Aan de rechterkant, met tekst eromheen.' + DETAILS: Details + EMAIL: Emailadres + FILE: Bestand + FOLDER: Map + FROMCMS: 'Vanaf CMS' + FROMCOMPUTER: 'Vanaf computer' + FROMWEB: 'Vanaf een website' + FindInFolder: 'Zoek in map' + IMAGEALT: 'Alternatieve tekst (alt tekst) - wordt getoond als de afbeelding niet kan worden geladen' + IMAGEALTTEXT: 'Alternatieve tekst (alt tekst) - wordt getoond als de afbeelding niet kan worden geladen' + IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed' + IMAGEDIMENSIONS: Dimensies + IMAGEHEIGHTPX: Hoogte + IMAGETITLE: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding' + IMAGETITLETEXT: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding' + IMAGETITLETEXTDESC: 'Titel tekst (tooltip) - Toon extra informatie over de afbeelding' + IMAGEWIDTHPX: Breedte + INSERTMEDIA: Invoegen + LINK: Link + LINKANCHOR: 'Anker op deze pagina' + LINKDESCR: 'Link omschrijving' + LINKEMAIL: Emailadres + LINKEXTERNAL: 'Een andere website' + LINKFILE: 'Een bestand downloaden' + LINKINTERNAL: 'Pagina op deze site' + LINKOPENNEWWIN: 'Link in een nieuw venster openen?' + LINKTO: 'Verwijs naar' + PAGE: Pagina + URL: URL + URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.' + UpdateMEDIA: 'Update Media' + Image: + PLURALNAME: Files + SINGULARNAME: File + ImageField: + IMAGE: Afbeelding + Image_Cached: + PLURALNAME: Files + SINGULARNAME: File + Image_iframe.ss: + TITLE: 'Afbeelding uploaden' + LeftAndMain: + CANT_REORGANISE: 'You do not have permission to alter Top level pages. Your change was not saved.' + DELETED: Verwijderd. + DropdownBatchActionsDefault: Acties + HELP: Help + PAGETYPE: 'Pagina type: ' + PERMAGAIN: 'U bent uitgelogd uit het CMS. Als U weer wilt inloggen vul dan uw gebruikersnaam en wachtwoord hier beneden in.' + PERMALREADY: 'Helaas, dat deel van het CMS is niet toegankelijk voor U. Hieronder kunt U als iemand anders inloggen.' + PERMDEFAULT: 'Geef uw e-mailadres en wachtwoord voor toegang tot het CMS.' + PLEASESAVE: 'Deze pagina kon niet bijgewerkt worden, omdat deze nog niet is bewaard.' + PreviewButton: Preview + REORGANISATIONSUCCESSFUL: 'Menu-indeling is aangepast' + SAVEDUP: 'Succesvol opgeslagen' + VersionUnknown: onbekend + LeftAndMain_Menu.ss: + Hello: Hi + LOGOUT: 'Log out' + LoginAttempt: + Email: 'Email adres ' + IP: 'IP Adres' + PLURALNAME: 'Login Attempts' + SINGULARNAME: 'Login Attempt' + Status: Status + Member: + ADDGROUP: 'Groep toevoegen' + BUTTONCHANGEPASSWORD: 'Wachtwoord veranderen' + BUTTONLOGIN: Inloggen + BUTTONLOGINOTHER: 'Als iemand anders inloggen' + BUTTONLOSTPASSWORD: 'Ik ben mijn wachtwoord vergeten...' + CONFIRMNEWPASSWORD: 'Bevestig het nieuwe wachtwoord' + CONFIRMPASSWORD: 'Bevestig wachtwoord' + DATEFORMAT: 'Date format' + DefaultAdminFirstname: 'Standaard Beheerder' + DefaultDateTime: Standaard + EMAIL: Email + EMPTYNEWPASSWORD: 'Het nieuwe wachtwoord mag niet leeg zijn, probeer opnieuw' + ENTEREMAIL: 'Typ uw e-mailadres om een link te ontvangen waarmee u uw wachtwoord kunt resetten.' + ERRORLOCKEDOUT: 'Je account is tijdelijk geblokkeerd wegens te veel mislukte pogingen tot aanmelding. Gelieve het over 20 minuten opnieuw te proberen.' + ERRORNEWPASSWORD: 'Het nieuwe wachtwoord komt niet overeen met de bevestiging, probeer het nogmaals' + ERRORPASSWORDNOTMATCH: 'Huidige wachtwoord kom niet overeen, probeer het nogmaals' + ERRORWRONGCRED: 'Dat is niet het juiste email adres of wachtwoord. Probeert U het a.u.b. opnieuw.' + FIRSTNAME: Voornaam + INTERFACELANG: 'Interface Taal' + INVALIDNEWPASSWORD: 'Het wachtwoord {password} is niet geldig' + LOGGEDINAS: 'U bent ingelogd als {name}.' +<<<<<<< HEAD + NEWPASSWORD: 'Nieuw Wachtwoord' +======= + NEWPASSWORD: 'Nieuw wachtwoord' +>>>>>>> origin/translation-staging + PASSWORD: Wachtwoord + PLURALNAME: Leden + PROFILESAVESUCCESS: 'Succesvol opgeslagen' + REMEMBERME: 'Wachtwoord onthouden voor de volgende keer?' + SINGULARNAME: Lid + SUBJECTPASSWORDCHANGED: 'Uw wachtwoord is veranderd' + SUBJECTPASSWORDRESET: 'Link om Uw wachtwoord opnieuw aan te maken' + SURNAME: Achternaam + TIMEFORMAT: 'Time format' + VALIDATIONMEMBEREXISTS: 'Er bestaat reeds een gebruiker met dit emailadres' + ValidationIdentifierFailed: 'Een bestaande gebruiker #{id} kan niet dezelfde unieke velden hebben ({name} = {value}))' + WELCOMEBACK: 'Welkom terug {firstname}' + YOUROLDPASSWORD: 'Uw oude wachtwoord' + belongs_many_many_Groups: Groepen + db_LastVisited: 'Datum van het laatste bezoek' + db_Locale: 'Interface taal' + db_LockedOutUntil: 'Gesloten tot' + db_NumVisit: 'Aantal bezoeken' + db_Password: Wachtwoord + db_PasswordExpiry: 'Wachtwoord Vervaldatum' + MemberAuthenticator: + TITLE: 'Email & Wachtwoord' + MemberDatetimeOptionsetField: + AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)' + 'APPLY FILTER': 'Filter toepassen' + Custom: Aangepast + DATEFORMATBAD: 'Datum is niet correct opgegeven' + DAYNOLEADING: 'Dag van de maand zonder voorloop-nul' + DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second' + FOURDIGITYEAR: 'Four-digit year' + FULLNAMEMONTH: 'Full name of month (e.g. June)' + HOURNOLEADING: 'Hour without leading zero' + MINUTENOLEADING: 'Minute without leading zero' + MONTHNOLEADING: 'Month digit without leading zero' + Preview: Voorbeeld + SHORTMONTH: 'Short name of month (e.g. Jun)' + TOGGLEHELP: 'Toggle formatting help' + TWODIGITDAY: 'Two-digit day of month' + TWODIGITHOUR: 'Twee cijfer van het uur (00 tot 23)' + TWODIGITMINUTE: 'Two digits of minute (00 through 59)' + TWODIGITMONTH: 'Two-digit month (01=January, etc.)' + TWODIGITSECOND: 'Two digits of second (00 through 59)' + TWODIGITYEAR: 'Twee-cijferig jaar' + MemberImportForm: + Help1: '

Importeer leden in CSV formaat (Kommagescheiden bestandsformaat). Toon geavanceerd gebruik

' + Help2: '

Geavanceerd gebruik

  • Toegestane kolommen: %s
  • Bestaande leden worden geïdentificeerd door middel van hun unieke Code waarde en aangepast met de nieuwe waarden van het geïmporteerde bestand
  • Groepen kunnen toegewezen worden met de Groups kolom. Groepen worden geïdentificeerd met hun Code waarde en meerdere groepen kunnen worden gescheiden met een komma. Bestaande groep lidmaatschappen worden niet gewist.
' + ResultCreated: 'Created {count} members' + ResultDeleted: '%d leden verwijderd' + ResultNone: 'Geen wijzingen' + ResultUpdated: 'Updated {count} members' + MemberPassword: + PLURALNAME: 'Member Passwords' + SINGULARNAME: 'Member Password' + MemberTableField: null + ModelAdmin: + DELETE: Verwijderen + DELETEDRECORDS: 'Deleted {count} records.' + IMPORT: 'Importeren vanuit CSV' + IMPORTEDRECORDS: 'Imported {count} records.' + NOCSVFILE: 'Selecteer een CSV bestand op uw computer om te importeren' + NOIMPORT: 'Niks om te importeren' + RESET: Reset + Title: 'Data Models' + UPDATEDRECORDS: 'Updated {count} records.' + ModelAdmin_ImportSpec.ss: + IMPORTSPECFIELDS: 'Database columns' + IMPORTSPECLINK: 'Show Specification for %s' + IMPORTSPECRELATIONS: Relations + IMPORTSPECTITLE: 'Specification for %s' + ModelAdmin_Tools.ss: + FILTER: Filter + IMPORT: Importeer + ModelSidebar.ss: + IMPORT_TAB_HEADER: Importeer + SEARCHLISTINGS: Zoeken + MoneyField: + FIELDLABELAMOUNT: Aantal + FIELDLABELCURRENCY: Valuta + NullableField: + IsNullLabel: 'is nul' + NumericField: + VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field' + Pagination: + Page: Page + View: View + Permission: + AdminGroup: Beheerder + CMS_ACCESS_CATEGORY: 'CMS Toegang' + FULLADMINRIGHTS: 'Volledige admin rechten' + FULLADMINRIGHTS_HELP: 'Impliceert en overstemt alle andere toegewezen rechten.' + PLURALNAME: Permissions + SINGULARNAME: Permission + PermissionCheckboxSetField: + AssignedTo: 'assigned to "{title}"' + FromGroup: 'inherited from group "{title}"' + FromRole: 'inherited from role "{title}"' + FromRoleOnGroup: 'geërfd van rol "%s" in groep "%s"' + PermissionRole: + PLURALNAME: Roles + SINGULARNAME: Role + PermissionRoleCode: + PLURALNAME: 'Permission Role Cods' + SINGULARNAME: 'Permission Role Code' + Permissions: + PERMISSIONS_CATEGORY: 'Rollen en toegangsrechten' + PhoneNumberField: + VALIDATION: 'Voer een geldig telefoonnummer in' + RelationComplexTableField.ss: + ADD: Toevoegen + CSVEXPORT: 'Export to CSV' + NOTFOUND: 'No items found' + Security: + ALREADYLOGGEDIN: 'Je hebt niet de juiste rechten, om deze pagina te kunnen bekijken. Als je een ander account met de juiste rechten hebt, kun je hier opnieuw inloggen.' + BUTTONSEND: 'Zend mij de link om mijn wachtwoord opnieuw aan te maken' + CHANGEPASSWORDBELOW: 'U kunt Uw wachtwoord hier beneden veranderen.' + CHANGEPASSWORDHEADER: 'Verander Uw wachtwoord' + ENTERNEWPASSWORD: 'Voer een nieuw wachtwoord in.' + ERRORPASSWORDPERMISSION: 'U moet ingelogd zijn om Uw wachtwoord te kunnen veranderen!' + LOGGEDOUT: 'U bent uitgelogd. Als U weer wilt inloggen kunt U Uw gegevens hier beneden invoeren.' + LOGIN: 'Meld aan' + NOTEPAGESECURED: 'Deze pagina is beveiligd. Voer Uw gegevens in en U wordt automatisch doorgestuurd.' + NOTERESETLINKINVALID: '

De link om uw wachtwoord te kunnen wijzigen is niet meer geldig.

U kunt het opnieuw proberen of uw wachtwoord aanpassen door in te loggen.

' + NOTERESETPASSWORD: 'Voer Uw emailadres in en we zenden U een link waarmee U Uw wachtwoord opnieuw kunt aanmaken' + PASSWORDSENTHEADER: 'Password reset link sent to ''{email}''' + PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.' + SecurityAdmin: + ACCESS_HELP: 'Bevoegdheid voor bekijken, toevoegen en bewerken van leden, en toewijzen van rechten en rollen aan hen.' + APPLY_ROLES: 'Pas rollen toe aan groepen' + APPLY_ROLES_HELP: 'Bewerkingsmogelijkheid van rollen voor groepen. Heeft rechten voor "Beveiligingsectie" nodig.' + EDITPERMISSIONS: 'Bewerk rechten en IP-adressen bij elke groep' + EDITPERMISSIONS_HELP: 'Bewerkingsmogelijkheid van Rechten en IP adressen voor groepen. Heeft rechten voor "Beveiligingsectie" nodig.' + GROUPNAME: 'Groep naam' + IMPORTGROUPS: Groepen + IMPORTUSERS: 'Importeer gebruikers' + MEMBERS: Leden + MENUTITLE: Beveiliging + MemberListCaution: 'Let op: Verwijderen van leden van deze lijst heeft als gevolg dat deze uit alle groepen en de database worden verwijderd' + NEWGROUP: 'Nieuwe Groep' + PERMISSIONS: Rechten + ROLES: Rollen + ROLESDESCRIPTION: 'In deze sectie kan je rollen toevoegen aan deze groep. Rollen zijn logische groeperingen van rechten die in het Rollen tapblad gewijzigd kunnen worden.' + TABROLES: Rollen + Users: Gebruikers + SecurityAdmin_MemberImportForm: + BtnImport: Importeer + FileFieldLabel: 'CSV Bestand (Toegestane extensies: *.csv)' + SilverStripeNavigator: + Edit: Bewerken + SimpleImageField: + NOUPLOAD: 'Geen afbeeldingen ontvangen' + SiteTree: + TABMAIN: Hoofdgedeelte + TableField: + ISREQUIRED: 'In %s ''%s'' is required' + TableField.ss: + ADD: 'Nieuwe rij toevoegen' + ADDITEM: 'Add %s' + TableListField: + CSVEXPORT: 'Exporteer naar CSV' + PRINT: Afdrukken + Print: Print + SELECT: 'Selecteer:' + TableListField.ss: + NOITEMSFOUND: 'No items found' + SORTASC: 'Sorteer in oplopende volgorde' + SORTDESC: 'Sorteer in aflopende volgorde' + TableListField_PageControls.ss: + DISPLAYING: Displaying + OF: of + TO: to + VIEWFIRST: 'Bekijk eerste' + VIEWLAST: 'Bekijk laatste' + VIEWNEXT: 'Bekijk volgende' + VIEWPREVIOUS: 'Bekijk vorige' + TimeField: + VALIDATEFORMAT: 'Vul een valide datum in ({format})' + ToggleField: + LESS: minder + MORE: meer + UploadField: + ATTACHFILE: 'Voeg een bestand toe' + ATTACHFILES: 'Voeg bestanden toe' + AttachFile: 'Voeg bestanden toe' + DELETE: 'Delete from files' + DELETEINFO: 'Verwijder dit bestand uit bestandsopslag van de website.' + DOEDIT: Bewaar + DROPFILE: 'Bestand hiernaar toe slepen' + DROPFILES: 'Sleep hier je bestanden' + Dimensions: Afmetingen + EDIT: Edit + EDITINFO: 'Bewerk dit bestand' + FIELDNOTSET: 'Bestandsinformatie niet gevonden' + FROMCOMPUTER: 'Vanaf computer' + FROMCOMPUTERINFO: 'Select from files' + FROMFILES: 'Bestaande bestanden' + HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.' + MAXNUMBEROFFILES: 'Het maximale aantal ({count}) bestanden is overschreven' + MAXNUMBEROFFILESSHORT: 'Maximaal {count} bestanden uploaden' + REMOVE: Verwijder + REMOVEERROR: 'Fout bij verwijderen' + REMOVEINFO: 'Verwijder (ontkoppel) dit bestand, maar behoud het in bestandsopslag van de website.' + STARTALL: 'Start alles' + STARTALLINFO: 'Start all uploads' + Saved: 'Succesvol opgeslagen' + Versioned: + has_many_Versions: Versies diff --git a/lang/ru.yml.orig b/lang/ru.yml.orig new file mode 100644 index 000000000..28d5b11b2 --- /dev/null +++ b/lang/ru.yml.orig @@ -0,0 +1,586 @@ +ru: + AssetAdmin: + ADDFILES: 'Add files' + EditOrgMenu: 'Edit & organize' + NEWFOLDER: 'Новая папка' + AssetTableField: + CREATED: 'Первая загрузка' + DIM: Размеры + FILENAME: 'Имя файла' + FOLDER: Folder + LASTEDIT: 'Последнее изменение' + OWNER: Владелец + SIZE: Размер + TITLE: Название + TYPE: Тип + URL: URL + AssetUploadField: + ChooseFiles: 'Выбрать файлы' + DRAGFILESHERE: 'Перетащите файлы сюда' + DROPAREA: 'Drop Area' + EDITALL: 'Редактировать все' + EDITANDORGANIZE: 'Edit & organize' + EDITINFO: 'Edit files' + FILES: Файлы + FROMCOMPUTER: 'Choose files from your computer' + FROMCOMPUTERINFO: 'Upload from your computer' + TOTAL: 'Всего:' + UPLOADINPROGRESS: 'Please wait… upload in progress' + UPLOADOR: ИЛИ + BBCodeParser: + ALIGNEMENT: Выравнивание + ALIGNEMENTEXAMPLE: 'Выравнено по правому краю' + BOLD: 'Жирный текст' + BOLDEXAMPLE: Жирный + CODE: 'Блок кода' + CODEDESCRIPTION: 'Блок неформатированного кода' + CODEEXAMPLE: 'Блок кода' + COLORED: 'Цветной текст' + COLOREDEXAMPLE: 'голубой текст' + EMAILLINK: 'Ссылка email' + EMAILLINKDESCRIPTION: 'Создать ссылку на этот email' + IMAGE: Изображение + IMAGEDESCRIPTION: 'Показать изображ. в записи' + ITALIC: Курсив + ITALICEXAMPLE: Курсив + LINK: 'Сссылка с сайта' + LINKDESCRIPTION: 'Ссылка на другой сайт или URL' + STRUCK: 'Перечеркнутый текст' + STRUCKEXAMPLE: Перечеркнутый + UNDERLINE: 'Подчеркнутый текст' + UNDERLINEEXAMPLE: Подчеркнутый + UNORDERED: 'Ненумерованный список' + UNORDEREDDESCRIPTION: 'Ненумерованный список' + UNORDEREDEXAMPLE1: 'ненумерованный элемент 1' + BackLink_Button.ss: + Back: Назад + BasicAuth: + ENTERINFO: 'Пожалуйста, введите имя пользователя и пароль.' + ERRORNOTADMIN: 'Такой пользователь не является администратором.' + ERRORNOTREC: 'Такое имя пользователя или пароль не существует' + Boolean: + 0: 'False' + ANY: Any + 1: 'True' + CMSLoadingScreen.ss: + LOADING: 'Идет загрузка...' + REQUIREJS: 'The CMS requires that you have JavaScript enabled.' + CMSMain: + ACCESS: 'Доступ к разделу ''{title}''' + ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS' + ACCESSALLINTERFACESHELP: 'Overrules more specific access settings.' + SAVE: Сохранить + CMSProfileController: + MENUTITLE: CMSProfileController + ChangePasswordEmail.ss: + CHANGEPASSWORDTEXT1: 'Вы изменили свой пароль на' + CHANGEPASSWORDTEXT2: 'Для того, чтобы войти, используйте сейчас следующие учетные данные:' + EMAIL: Email + HELLO: Здравствуйте + PASSWORD: Пароль + CheckboxField: + - 'False' + - 'True' + ComplexTableField: + CLOSEPOPUP: 'Закрыть всплывающее окно' + SUCCESSADD2: 'Added {name}' + SUCCESSEDIT: 'Сохранено %s %s %s' + ComplexTableField.ss: + ADDITEM: 'Add %s' + NOITEMSFOUND: 'No items found' + SORTASC: 'Сортировать по возрастанию' + SORTDESC: 'Сортировать по убыванию' + ComplexTableField_popup.ss: + NEXT: Следующ. + PREVIOUS: Предыдущ. + ConfirmedPasswordField: + ATLEAST: 'Пароль должен быть не короче {min} символов.' + BETWEEN: 'Passwords must be {min} to {max} characters long.' + MAXIMUM: 'Пароль должен быть не длиннее {max} символов.' + SHOWONCLICKTITLE: 'Изменить Пароль' + CreditCardField: + FIRST: первая + FOURTH: четвертая + SECOND: вторая + THIRD: третья + CurrencyField: + CURRENCYSYMBOL: $ + DataObject: + PLURALNAME: Объекты + SINGULARNAME: Объект + Date: + DAY: день + DAYS: дней + HOUR: час + HOURS: час. + MIN: мин. + MINS: мин. + MONTH: месяц + MONTHS: месяца(ев) + SEC: сек. + SECS: сек. + TIMEDIFFAGO: '{difference} назад' + TIMEDIFFIN: 'in {difference}' + YEAR: год + YEARS: лет + DateField: + NOTSET: 'не установлено' + TODAY: сегодня + VALIDDATEFORMAT2: 'Please enter a valid date format ({format})' + VALIDDATEMAXDATE: 'Your date has to be older or matching the maximum allowed date ({date})' + VALIDDATEMINDATE: 'Your date has to be newer or matching the minimum allowed date ({date})' + DatetimeField: + NOTSET: 'Not set' + Director: + INVALID_REQUEST: 'Неверный запрос' + DropdownField: + CHOOSE: (Выберите) + EmailField: + VALIDATION: 'Please enter an email address' + Email_BounceRecord: + PLURALNAME: 'Email Bounce Records' + SINGULARNAME: 'Email Bounce Record' + Enum: + ANY: Любой + File: + Content: Содержание + Filename: 'Имя файла' + INVALIDEXTENSION: 'Недопустимое расширение файла (допустимые расширения: {extensions})' + INVALIDEXTENSIONSHORT: 'Недопустимое расширение файла' + NOFILESIZE: 'Размер файла 0 байт.' + NOVALIDUPLOAD: 'File is not a valid upload' + Name: Название + PLURALNAME: Файлы + SINGULARNAME: Файл + TOOLARGE: 'Filesize is too large, maximum {size} allowed' + TOOLARGESHORT: 'Filesize exceeds {size}' + Title: Заголовок + FileIFrameField: + ATTACH: 'Attach {type}' + ATTACHONCESAVED: '{type}s can be attached once you have saved the record for the first time.' + ATTACHONCESAVED2: 'Files can be attached once you have saved the record for the first time.' + DELETE: 'Delete {type}' + DISALLOWEDFILETYPE: 'This filetype is not allowed to be uploaded' + FILE: Файл + FROMCOMPUTER: 'From your Computer' + FROMFILESTORE: 'From the File Store' + NOSOURCE: 'Please select a source file to attach' + REPLACE: 'Replace {type}' + FileIFrameField_iframe.ss: + TITLE: 'Image Uploading Iframe' + Filesystem: +<<<<<<< HEAD + SYNCRESULTS: 'Sync complete: {createdcount} items created, {deletedcount} items deleted' +======= + SYNCRESULTS: 'Синхронизация завершена; создано элементов: {createdcount}, удалено элементов: {deletedcount}' +>>>>>>> origin/translation-staging + Folder: + PLURALNAME: Folders + SINGULARNAME: Folder + ForgotPasswordEmail.ss: + HELLO: Здравствуйте + TEXT1: 'Это ваша' + TEXT2: 'ссылка переустановки пароля' + TEXT3: для + Form: + FIELDISREQUIRED: 'Поле %s является обязательным' + SubmitBtnLabel: Go + VALIDATIONCREDITNUMBER: 'Please ensure you have entered the {number} credit card number correctly' + VALIDATIONNOTUNIQUE: 'Введенное значение не уникально' + VALIDATIONPASSWORDSDONTMATCH: 'Пароли не совпадают' + VALIDATIONPASSWORDSNOTEMPTY: 'Пароли не могут быть пустыми' + VALIDATIONSTRONGPASSWORD: 'Passwords must have at least one digit and one alphanumeric character' + VALIDATOR: Валидатор + VALIDCURRENCY: 'Please enter a valid currency' + FormField: + NONE: 'не выбрано' + GridAction: + DELETE_DESCRIPTION: Delete + Delete: Delete + UnlinkRelation: Unlink + GridField: + Add: 'Добавить {name}' + Filter: Filter + FilterBy: 'Фильтровать по' + Find: Find + LEVELUP: 'Уровень выше' + LinkExisting: 'Link Existing' + NewRecord: 'New %s' + NoItemsFound: 'No items found' + PRINTEDAT: 'Printed at' + PRINTEDBY: 'Printed by' + PlaceHolder: 'Найти {type}' + PlaceHolderWithLabels: 'Find {type} by {name}' + RelationSearch: 'Relation search' + ResetFilter: Reset + GridFieldAction_Delete: + DeletePermissionsFailure: 'No delete permissions' + GridFieldDetailForm: + Create: Создать + Delete: Удалить + DeletePermissionsFailure: 'No delete permissions' + Deleted: 'Deleted %s %s' + Save: Сохранить + Saved: 'Сохранено %s %s' + GridFieldItemEditView.ss: null + Group: + AddRole: 'Добавить роль для этой группы' + Code: 'Код группы' + DefaultGroupTitleAdministrators: Администраторы + DefaultGroupTitleContentAuthors: Авторы + Description: Описание + GroupReminder: 'If you choose a parent group, this group will take all it''s roles' + Locked: 'Блокировано?' +<<<<<<< HEAD + NoRoles: 'No roles found' +======= + NoRoles: 'Ролей не найдено' +>>>>>>> origin/translation-staging + PLURALNAME: Groups + Parent: 'Родительская группа' + RolesAddEditLink: 'Добавить/редактировать роли' + SINGULARNAME: Group + Sort: 'Порядок сортировки' + has_many_Permissions: 'Права групп пользователей' + many_many_Members: 'Члены группы' + GroupImportForm: + Help1: '

Import one or more groups in CSV format (comma-separated values). Show advanced usage

' + Help2: '

Advanced usage

  • Allowed columns: %s
  • Existing groups are matched by their unique Code value, and updated with any new values from the imported file
  • Group hierarchies can be created by using a ParentCode column.
  • Permission codes can be assigned by the PermissionCode column. Existing permission codes are not cleared.
' + ResultCreated: 'Создано {count} групп' + ResultDeleted: 'Deleted %d groups' + ResultUpdated: 'Updated %d groups' + Hierarchy: + InfiniteLoopNotAllowed: 'Infinite loop found within the "{type}" hierarchy. Please change the parent to resolve this' + HtmlEditorField: + ADDURL: 'Добавить URL' + ADJUSTDETAILSDIMENSIONS: 'Details & dimensions' + ANCHORVALUE: Якорь + BUTTONINSERT: Insert + BUTTONINSERTLINK: 'Вставить ссылку' + BUTTONREMOVELINK: 'Удалить ссылку' + BUTTONUpdate: Update + CAPTIONTEXT: 'Caption text' + CSSCLASS: Выравнивание/Стиль + CSSCLASSCENTER: 'По центру без текста по бокам' + CSSCLASSLEFT: 'Слева с обтеканием текста' + CSSCLASSLEFTALONE: 'Независимо слева.' + CSSCLASSRIGHT: 'Справа с обтеканием текста' + DETAILS: Details + EMAIL: 'Адрес email' + FILE: Файл + FOLDER: Папка + FROMCMS: 'From the CMS' + FROMCOMPUTER: 'From your computer' + FROMWEB: 'From the web' + FindInFolder: 'Найти в папке' + IMAGEALT: 'Альтернативный текст (alt)' + IMAGEALTTEXT: 'Альтернативный текст (alt) - показывается, если изображение недоступно' + IMAGEALTTEXTDESC: 'Shown to screen readers or if image can not be displayed' + IMAGEDIMENSIONS: Размеры + IMAGEHEIGHTPX: Высота + IMAGETITLE: 'Title text (tooltip) - for additional information about the image' + IMAGETITLETEXT: 'Title text (tooltip)' + IMAGETITLETEXTDESC: 'For additional information about the image' + IMAGEWIDTHPX: Ширина + INSERTMEDIA: 'Insert Media' + LINK: Ссылка + LINKANCHOR: 'Якорь на этой странице' + LINKDESCR: 'Описание ссылки' + LINKEMAIL: 'Адрес email' + LINKEXTERNAL: 'Другой сайт' + LINKFILE: 'Скачивание файла' + LINKINTERNAL: 'Страницу данного сайта' + LINKOPENNEWWIN: 'Открыть ссылку в новом окне?' + LINKTO: 'Ссылка на' + PAGE: Страница + URL: URL + URLNOTANOEMBEDRESOURCE: 'The URL ''{url}'' could not be turned into a media resource.' + UpdateMEDIA: 'Update Media' + Image: +<<<<<<< HEAD + PLURALNAME: Files + SINGULARNAME: File +======= + PLURALNAME: Файлы + SINGULARNAME: Файл +>>>>>>> origin/translation-staging + ImageField: + IMAGE: Image + Image_Cached: + PLURALNAME: Files + SINGULARNAME: File + Image_iframe.ss: + TITLE: 'Iframe загрузки изображений' + LeftAndMain: + CANT_REORGANISE: 'У вас нет права редактировать страницы верхнего уровня. Изменения не были сохранены.' + DELETED: Удалено. + DropdownBatchActionsDefault: Actions + HELP: Помощь + PAGETYPE: 'Тип страницы:' + PERMAGAIN: 'Вы вышли из Системы Управления Сайтом. Если Вы хотите войти снова, введите внизу имя пользователя и пароль.' + PERMALREADY: 'Извините, у вас нет доступа к этому разделу Системы Управления. Если Вы хотите войти под другой учетной записью, сделайте это ниже' + PERMDEFAULT: 'Введите ваши адрес электр. почты и пароль для доступа к системе.' + PLEASESAVE: 'Пожалуйста, сохраните страницу: ее нельзя обновить, т.к. она еще не была сохранена.' + PreviewButton: Просмотр + REORGANISATIONSUCCESSFUL: 'Reorganised the site tree successfully.' + SAVEDUP: Сохранено. + VersionUnknown: unknown + LeftAndMain_Menu.ss: + Hello: Hi + LOGOUT: 'Log out' + LoginAttempt: + Email: Email + IP: IP-адрес + PLURALNAME: 'Login Attempts' + SINGULARNAME: 'Login Attempt' + Status: Статус + Member: + ADDGROUP: 'Добавить группу' + BUTTONCHANGEPASSWORD: 'Изменить пароль' + BUTTONLOGIN: Войти + BUTTONLOGINOTHER: 'Войти под другим именем' + BUTTONLOSTPASSWORD: 'Я забыл пароль' + CONFIRMNEWPASSWORD: 'Подтвердить новый пароль' + CONFIRMPASSWORD: 'Подтвердить пароль' + DATEFORMAT: 'Date format' + DefaultAdminFirstname: 'Default Admin' + DefaultDateTime: 'по умолчанию' + EMAIL: Email + EMPTYNEWPASSWORD: 'Поле для нового пароля не может быть пустым; пожалуйста, повторите попытку' + ENTEREMAIL: 'Введите email, чтобы получить ссылку на сброс пароля.' + ERRORLOCKEDOUT: 'Ваша учетная запись временно заблокирована из-за слишком большого количества неудачных попыток авторизации. Пожалуйста, попытайтесь снова через 20 минут.' + ERRORNEWPASSWORD: 'Вы ввели Ваш новый пароль по-разному, попробуйте снова' + ERRORPASSWORDNOTMATCH: 'Введенный пароль неверен, попробуйте снова' + ERRORWRONGCRED: 'Вероятно адрес email или пароль введены неверно. Попробуйте снова.' + FIRSTNAME: Имя + INTERFACELANG: 'Язык интерфейса' + INVALIDNEWPASSWORD: 'Недопустимый пароль: {password}' + LOGGEDINAS: 'Вы вошли в систему как {name}.' + NEWPASSWORD: 'Новый пароль' + PASSWORD: Пароль + PLURALNAME: 'Члены группы' + PROFILESAVESUCCESS: 'Сохранение прошло успешно' + REMEMBERME: 'Запомнить меня?' + SINGULARNAME: 'Член группы' + SUBJECTPASSWORDCHANGED: 'Ваш пароль изменен' + SUBJECTPASSWORDRESET: 'Ссылка для переустановки пароля' + SURNAME: Фамилия +<<<<<<< HEAD + TIMEFORMAT: 'Time format' +======= + TIMEFORMAT: 'Формат времени' +>>>>>>> origin/translation-staging + VALIDATIONMEMBEREXISTS: 'Этот адрес email уже зарегистрирован' + ValidationIdentifierFailed: 'Can''t overwrite existing member #{id} with identical identifier ({name} = {value}))' + WELCOMEBACK: 'Добро пожаловать, {firstname}' + YOUROLDPASSWORD: 'Ваш прежний пароль' + belongs_many_many_Groups: Группы + db_LastVisited: 'Дата последнего видита' + db_Locale: 'Локаль интерфейса' + db_LockedOutUntil: 'Заблокировано до' + db_NumVisit: 'Количество посещений' + db_Password: Пароль + db_PasswordExpiry: 'Дата устаревания пароля' + MemberAuthenticator: + TITLE: 'Email и Пароль' + MemberDatetimeOptionsetField: + AMORPM: 'AM (Ante meridiem) or PM (Post meridiem)' +<<<<<<< HEAD + 'APPLY FILTER': 'Apply Filter' +======= + 'APPLY FILTER': 'Применить фильтр' +>>>>>>> origin/translation-staging + Custom: Custom + DATEFORMATBAD: 'Date format is invalid' + DAYNOLEADING: 'Day of month without leading zero' + DIGITSDECFRACTIONSECOND: 'One or more digits representing a decimal fraction of a second' + FOURDIGITYEAR: 'Four-digit year' + FULLNAMEMONTH: 'Full name of month (e.g. June)' + HOURNOLEADING: 'Hour without leading zero' + MINUTENOLEADING: 'Minute without leading zero' + MONTHNOLEADING: 'Month digit without leading zero' + Preview: Preview + SHORTMONTH: 'Short name of month (e.g. Jun)' + TOGGLEHELP: 'Toggle formatting help' + TWODIGITDAY: 'Two-digit day of month' + TWODIGITHOUR: 'Two digits of hour (00 through 23)' + TWODIGITMINUTE: 'Two digits of minute (00 through 59)' + TWODIGITMONTH: 'Two-digit month (01=January, etc.)' + TWODIGITSECOND: 'Two digits of second (00 through 59)' + TWODIGITYEAR: 'Two-digit year' + MemberImportForm: + Help1: '

Import users in CSV format (comma-separated values). Show advanced usage

' + Help2: '

Advanced usage

  • Allowed columns: %s
  • Existing users are matched by their unique Code property, and updated with any new values from the imported file.
  • Groups can be assigned by the Groups column. Groups are identified by their Code property, multiple groups can be separated by comma. Existing group memberships are not cleared.
' + ResultCreated: 'Создано {count} пользователей' + ResultDeleted: 'Deleted %d members' + ResultNone: 'No changes' + ResultUpdated: 'Updated {count} members' + MemberPassword: + PLURALNAME: 'Member Passwords' + SINGULARNAME: 'Member Password' + MemberTableField: null + ModelAdmin: + DELETE: Удалить + DELETEDRECORDS: 'Deleted {count} records.' + IMPORT: 'Импорт из CSV' + IMPORTEDRECORDS: 'Imported {count} records.' + NOCSVFILE: 'Выберите CSV-файл для импорта' + NOIMPORT: 'Нечего импортировать' + RESET: Reset + Title: 'Data Models' + UPDATEDRECORDS: 'Updated {count} records.' + ModelAdmin_ImportSpec.ss: + IMPORTSPECFIELDS: 'Database columns' + IMPORTSPECLINK: 'Show Specification for %s' + IMPORTSPECRELATIONS: Relations + IMPORTSPECTITLE: 'Specification for %s' + ModelAdmin_Tools.ss: + FILTER: Filter + IMPORT: Import + ModelSidebar.ss: + IMPORT_TAB_HEADER: Import + SEARCHLISTINGS: Search + MoneyField: + FIELDLABELAMOUNT: Amount + FIELDLABELCURRENCY: Currency + NullableField: + IsNullLabel: Недействительно + NumericField: + VALIDATION: '''{value}'' is not a number, only numbers can be accepted for this field' + Pagination: + Page: Page + View: View + Permission: + AdminGroup: Administrator + CMS_ACCESS_CATEGORY: 'Доступ к CMS' + FULLADMINRIGHTS: 'Все права администратора' + FULLADMINRIGHTS_HELP: 'Implies and overrules all other assigned permissions.' + PLURALNAME: Permissions +<<<<<<< HEAD + SINGULARNAME: Permission +======= + SINGULARNAME: 'Право доступа' +>>>>>>> origin/translation-staging + PermissionCheckboxSetField: + AssignedTo: 'assigned to "{title}"' + FromGroup: 'inherited from group "{title}"' + FromRole: 'inherited from role "{title}"' + FromRoleOnGroup: 'inherited from role "%s" on group "%s"' + PermissionRole: + PLURALNAME: Roles + SINGULARNAME: Role + PermissionRoleCode: + PLURALNAME: 'Permission Role Cods' + SINGULARNAME: 'Permission Role Code' + Permissions: + PERMISSIONS_CATEGORY: 'Роли и разрешения доступа' + PhoneNumberField: + VALIDATION: 'Пожалуйста, введите верный номер телефона' + RelationComplexTableField.ss: + ADD: Добавить + CSVEXPORT: 'Export to CSV' + NOTFOUND: 'No items found' + Security: + ALREADYLOGGEDIN: 'У Вас нет доступа к этой странице. Если у вас имеется другая учетная запись, имеющая доступ к этой странице, введите ее данные ниже.' + BUTTONSEND: 'Отправить мне ссылку переустановки пароля' + CHANGEPASSWORDBELOW: 'Ниже Вы можете изменить свой пароль.' + CHANGEPASSWORDHEADER: 'Измените свой пароль' + ENTERNEWPASSWORD: 'Пожалуйста, введите новый пароль.' + ERRORPASSWORDPERMISSION: 'Вы должны войти в систему, чтобы изменить Ваш пароль!' + LOGGEDOUT: 'Вы вышли. Если Вы хотите войти снова, введите ваши учетные данные ниже.' + LOGIN: Вход + NOTEPAGESECURED: 'Эта страница защищена. Пожалуйста, введите свои учетные данные для входа.' + NOTERESETLINKINVALID: '

The password reset link is invalid or expired.

You can request a new one here or change your password after you logged in.

' + NOTERESETPASSWORD: 'Введите Ваш адрес email, и Вам будет отправлена ссылка, по которой Вы сможете переустановить свой пароль' + PASSWORDSENTHEADER: 'Ссылка для переустановки пароля выслана на ''{email}''' + PASSWORDSENTTEXT: 'Thank you! A reset link has been sent to ''{email}'', provided an account exists for this email address.' + SecurityAdmin: + ACCESS_HELP: 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.' + APPLY_ROLES: 'Apply roles to groups' + APPLY_ROLES_HELP: 'Возможность редактировать роли, присвоенные той или иной группе. Необходимо разрешение на доступ к разделу "Пользователи".' + EDITPERMISSIONS: 'Задать разрешения и IP адреса для каждой группы' + EDITPERMISSIONS_HELP: 'Возможность редактировать права доступа и IP-адреса определенной группы. Необходимо разрешение на доступ к разделу "Безопасность".' + GROUPNAME: 'Имя группы' + IMPORTGROUPS: 'Импортировать группы' + IMPORTUSERS: 'Импортировать пользователей' + MEMBERS: Участники + MENUTITLE: Безопасность + MemberListCaution: 'Внимание: при удалении участников из этого списка они будут удалены из всех групп и из базы данных' + NEWGROUP: 'Новая группа' + PERMISSIONS: 'Права доступа' + ROLES: Роли + ROLESDESCRIPTION: 'Roles are predefined sets of permissions, and can be assigned to groups.
They are inherited from parent groups if required.' + TABROLES: Роли + Users: Пользователи + SecurityAdmin_MemberImportForm: + BtnImport: 'Import from CSV' + FileFieldLabel: 'CSV File (Allowed extensions: *.csv)' + SilverStripeNavigator: + Edit: Edit + SimpleImageField: + NOUPLOAD: 'Не загружено ни одного изображения' + SiteTree: + TABMAIN: Основное + TableField: + ISREQUIRED: 'In %s ''%s'' is required' + TableField.ss: + ADD: 'Добавить новый ряд' + ADDITEM: 'Add %s' + TableListField: + CSVEXPORT: 'Экспорт в CSV' + PRINT: Печать + Print: Печать + SELECT: 'Выбрать:' + TableListField.ss: + NOITEMSFOUND: 'No items found' + SORTASC: 'По возрастанию' + SORTDESC: 'По убыванию' + TableListField_PageControls.ss: + DISPLAYING: Displaying + OF: of + TO: to + VIEWFIRST: Первый + VIEWLAST: Последний + VIEWNEXT: Следующий + VIEWPREVIOUS: Предыдущий + TimeField: + VALIDATEFORMAT: 'Please enter a valid time format ({format})' + ToggleField: + LESS: меньше + MORE: больше + UploadField: + ATTACHFILE: 'Прикрепить файл' + ATTACHFILES: 'Прикрепить файл(ы)' + AttachFile: 'Прикрепить файл(ы)' + DELETE: 'Delete from files' + DELETEINFO: 'Permanently delete this file from the file store' + DOEDIT: Сохранить + DROPFILE: 'drop a file' + DROPFILES: 'drop files' + Dimensions: Dimensions + EDIT: Edit + EDITINFO: 'Редактировать этот файл' + FIELDNOTSET: 'Информация о файле не найдена' + FROMCOMPUTER: 'С компьютера' + FROMCOMPUTERINFO: 'Select from files' +<<<<<<< HEAD + FROMFILES: 'From files' + HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.' + MAXNUMBEROFFILES: 'Max number of {count} file(s) exceeded.' + MAXNUMBEROFFILESSHORT: 'Can only upload {count} files' + REMOVE: Remove + REMOVEERROR: 'Error removing file' +======= + FROMFILES: 'Из файлов' + HOTLINKINFO: 'Info: This image will be hotlinked. Please ensure you have permissions from the original site creator to do so.' + MAXNUMBEROFFILES: 'Превышено максимальное количество файлов ({count}).' + MAXNUMBEROFFILESSHORT: 'Можно загрузить не более {count} файлов' + REMOVE: Удалить + REMOVEERROR: 'Ошибка при удалении файла' +>>>>>>> origin/translation-staging + REMOVEINFO: 'Remove this file from here, but do not delete it from the file store' + STARTALL: 'Стартовать все' + STARTALLINFO: 'Start all uploads' + Saved: Saved + Versioned: + has_many_Versions: Версии diff --git a/model/DataQuery.php b/model/DataQuery.php index 2445df599..625dbe502 100644 --- a/model/DataQuery.php +++ b/model/DataQuery.php @@ -656,6 +656,7 @@ function max($field) { $fieldExpression = $this->expressionForField($field, $subSelect); $subSelect->setSelect(array()); $subSelect->selectField($fieldExpression, $field); + $subSelect->setOrderBy(null); $this->where($this->expressionForField($field, $this).' NOT IN ('.$subSelect->sql().')'); return $this; diff --git a/model/Hierarchy.php b/model/Hierarchy.php index d6100fa29..7aefd0868 100644 --- a/model/Hierarchy.php +++ b/model/Hierarchy.php @@ -575,22 +575,9 @@ class Hierarchy extends DataExtension { if(!$showAll) $children = $children->where('"ShowInMenus" = 1'); // Query the live site - $children->dataQuery()->setQueryParam('Versioned.mode', 'stage'); + $children->dataQuery()->setQueryParam('Versioned.mode', $onlyDeletedFromStage ? 'stage_unique' : 'stage'); $children->dataQuery()->setQueryParam('Versioned.stage', 'Live'); - - if($onlyDeletedFromStage) { - // Note that this makes a second query, and could be optimised to be a join - $stageChildren = DataObject::get($baseClass) - ->where("\"{$baseClass}\".\"ID\" != $id"); - $stageChildren->dataQuery()->setQueryParam('Versioned.mode', 'stage'); - $stageChildren->dataQuery()->setQueryParam('Versioned.stage', ''); - - $ids = $stageChildren->column("ID"); - if($ids) { - $children = $children->where("\"$baseClass\".\"ID\" NOT IN (" . implode(',',$ids) . ")"); - } - } - + return $children; } diff --git a/model/Versioned.php b/model/Versioned.php index 705e6a3a6..5930424d6 100644 --- a/model/Versioned.php +++ b/model/Versioned.php @@ -162,16 +162,16 @@ class Versioned extends DataExtension { // Link to the version archived on that date $safeDate = Convert::raw2sql($date); $query->addWhere( - "`{$baseTable}_versions`.`Version` IN + "\"{$baseTable}_versions\".\"Version\" IN (SELECT LatestVersion FROM (SELECT - `{$baseTable}_versions`.`RecordID`, - MAX(`{$baseTable}_versions`.`Version`) AS LatestVersion - FROM `{$baseTable}_versions` - WHERE `{$baseTable}_versions`.`LastEdited` <= '$safeDate' - GROUP BY `{$baseTable}_versions`.`RecordID` - ) AS `{$baseTable}_versions_latest` - WHERE `{$baseTable}_versions_latest`.`RecordID` = `{$baseTable}_versions`.`RecordID` + \"{$baseTable}_versions\".\"RecordID\", + MAX(\"{$baseTable}_versions\".\"Version\") AS LatestVersion + FROM \"{$baseTable}_versions\" + WHERE \"{$baseTable}_versions\".\"LastEdited\" <= '$safeDate' + GROUP BY \"{$baseTable}_versions\".\"RecordID\" + ) AS \"{$baseTable}_versions_latest\" + WHERE \"{$baseTable}_versions_latest\".\"RecordID\" = \"{$baseTable}_versions\".\"RecordID\" )"); break; @@ -191,8 +191,28 @@ class Versioned extends DataExtension { } } break; - - + + // Reading a specific stage, but only return items that aren't in any other stage + case 'stage_unique': + $stage = $dataQuery->getQueryParam('Versioned.stage'); + + // Recurse to do the default stage behavior (must be first, we rely on stage renaming happening before below) + $dataQuery->setQueryParam('Versioned.mode', 'stage'); + $this->augmentSQL($query, $dataQuery); + + // Now exclude any ID from any other stage. Note that we double rename to avoid the regular stage rename + // renaming all subquery references to be Versioned.stage + foreach($this->stages as $excluding) { + if ($excluding == $stage) continue; + + $tempName = 'ExclusionarySource_'.$excluding; + $excludingTable = $baseTable . ($excluding && $excluding != $this->defaultStage ? "_$excluding" : ''); + + $query->addWhere('"'.$baseTable.'"."ID" NOT IN (SELECT "ID" FROM "'.$tempName.'")'); + $query->renameTable($tempName, $excludingTable); + } + break; + // Return all version instances case 'all_versions': case 'latest_versions': @@ -208,21 +228,22 @@ class Versioned extends DataExtension { $query->selectField(sprintf('"%s_versions"."%s"', $baseTable, $name), $name); } $query->selectField(sprintf('"%s_versions"."%s"', $baseTable, 'RecordID'), "ID"); + $query->addOrderBy(sprintf('"%s_versions"."%s"', $baseTable, 'Version')); // latest_version has one more step // Return latest version instances, regardless of whether they are on a particular stage // This provides "show all, including deleted" functonality if($dataQuery->getQueryParam('Versioned.mode') == 'latest_versions') { $query->addWhere( - "`{$alias}_versions`.`Version` IN + "\"{$alias}_versions\".\"Version\" IN (SELECT LatestVersion FROM (SELECT - `{$alias}_versions`.`RecordID`, - MAX(`{$alias}_versions`.`Version`) AS LatestVersion - FROM `{$alias}_versions` - GROUP BY `{$alias}_versions`.`RecordID` - ) AS `{$alias}_versions_latest` - WHERE `{$alias}_versions_latest`.`RecordID` = `{$alias}_versions`.`RecordID` + \"{$alias}_versions\".\"RecordID\", + MAX(\"{$alias}_versions\".\"Version\") AS LatestVersion + FROM \"{$alias}_versions\" + GROUP BY \"{$alias}_versions\".\"RecordID\" + ) AS \"{$alias}_versions_latest\" + WHERE \"{$alias}_versions_latest\".\"RecordID\" = \"{$alias}_versions\".\"RecordID\" )"); } break; @@ -363,7 +384,7 @@ class Versioned extends DataExtension { $versionIndexes = array_merge( array( - 'RecordID_Version' => array('type' => 'unique', 'value' => 'RecordID,Version'), + 'RecordID_Version' => array('type' => 'unique', 'value' => '"RecordID","Version"'), 'RecordID' => true, 'Version' => true, ), diff --git a/search/filters/GreaterThanFilter.php b/search/filters/GreaterThanFilter.php index 5d9b753cc..8756d908c 100644 --- a/search/filters/GreaterThanFilter.php +++ b/search/filters/GreaterThanFilter.php @@ -14,11 +14,12 @@ class GreaterThanFilter extends SearchFilter { */ public function apply(DataQuery $query) { $this->model = $query->applyRelation($this->relation); - return $query->where(sprintf( - "%s > '%s'", - $this->getDbName(), - Convert::raw2sql($this->getDbFormattedValue()) - )); + $value = $this->getDbFormattedValue(); + + if(is_numeric($value)) $filter = sprintf("%s > %s", $this->getDbName(), Convert::raw2sql($value)); + else $filter = sprintf("%s > '%s'", $this->getDbName(), Convert::raw2sql($value)); + + return $query->where($filter); } public function isEmpty() { diff --git a/tests/forms/RequirementsTest.php b/tests/forms/RequirementsTest.php index ac588a0ba..0958fd8bc 100644 --- a/tests/forms/RequirementsTest.php +++ b/tests/forms/RequirementsTest.php @@ -18,8 +18,10 @@ class RequirementsTest extends SapphireTest { $backend->javascript('http://www.mydomain.com/test.js'); $backend->javascript('https://www.mysecuredomain.com/test.js'); + $backend->javascript('//scheme-relative.example.com/test.js'); $backend->css('http://www.mydomain.com/test.css'); $backend->css('https://www.mysecuredomain.com/test.css'); + $backend->css('//scheme-relative.example.com/test.css'); $html = $backend->includeInHTML(false, self::$html_template); @@ -31,6 +33,10 @@ class RequirementsTest extends SapphireTest { (strpos($html, 'https://www.mysecuredomain.com/test.js') !== false), 'Load external secure javascript URL' ); + $this->assertTrue( + (strpos($html, '//scheme-relative.example.com/test.js') !== false), + 'Load external scheme-relative javascript URL' + ); $this->assertTrue( (strpos($html, 'http://www.mydomain.com/test.css') !== false), 'Load external CSS URL' @@ -39,6 +45,10 @@ class RequirementsTest extends SapphireTest { (strpos($html, 'https://www.mysecuredomain.com/test.css') !== false), 'Load external secure CSS URL' ); + $this->assertTrue( + (strpos($html, '//scheme-relative.example.com/test.css') !== false), + 'Load scheme-relative CSS URL' + ); } protected function setupCombinedRequirements($backend) { diff --git a/tests/model/DataObjectLazyLoadingTest.php b/tests/model/DataObjectLazyLoadingTest.php index 8ade64c9c..4b555f9f9 100644 --- a/tests/model/DataObjectLazyLoadingTest.php +++ b/tests/model/DataObjectLazyLoadingTest.php @@ -28,8 +28,10 @@ class DataObjectLazyLoadingTest extends SapphireTest { $expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' . '"DataObjectTest_Team"."LastEdited", "DataObjectTest_Team"."ID", CASE WHEN '. '"DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' . - $db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' . - '("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))'; + $db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName", "DataObjectTest_Team"."Title" '. + 'FROM "DataObjectTest_Team" ' . + 'WHERE ("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))' . + ' ORDER BY "DataObjectTest_Team"."Title" ASC'; $this->assertEquals($expected, $playerList->sql()); } @@ -43,7 +45,8 @@ class DataObjectLazyLoadingTest extends SapphireTest { '"DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' . $db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" LEFT JOIN ' . '"DataObjectTest_SubTeam" ON "DataObjectTest_SubTeam"."ID" = "DataObjectTest_Team"."ID" WHERE ' . - '("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))'; + '("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').')) ' . + 'ORDER BY "DataObjectTest_Team"."Title" ASC'; $this->assertEquals($expected, $playerList->sql()); } @@ -55,7 +58,8 @@ class DataObjectLazyLoadingTest extends SapphireTest { '"DataObjectTest_Team"."LastEdited", "DataObjectTest_Team"."Title", "DataObjectTest_Team"."ID", ' . 'CASE WHEN "DataObjectTest_Team"."ClassName" IS NOT NULL THEN "DataObjectTest_Team"."ClassName" ELSE ' . $db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM "DataObjectTest_Team" WHERE ' . - '("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))'; + '("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').')) ' . + 'ORDER BY "DataObjectTest_Team"."Title" ASC'; $this->assertEquals($expected, $playerList->sql()); } @@ -66,9 +70,10 @@ class DataObjectLazyLoadingTest extends SapphireTest { $expected = 'SELECT DISTINCT "DataObjectTest_Team"."ClassName", "DataObjectTest_Team"."Created", ' . '"DataObjectTest_Team"."LastEdited", "DataObjectTest_SubTeam"."SubclassDatabaseField", ' . '"DataObjectTest_Team"."ID", CASE WHEN "DataObjectTest_Team"."ClassName" IS NOT NULL THEN ' . - '"DataObjectTest_Team"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName" FROM ' . + '"DataObjectTest_Team"."ClassName" ELSE '.$db->prepStringForDB('DataObjectTest_Team').' END AS "RecordClassName", "DataObjectTest_Team"."Title" FROM ' . '"DataObjectTest_Team" LEFT JOIN "DataObjectTest_SubTeam" ON "DataObjectTest_SubTeam"."ID" = ' . - '"DataObjectTest_Team"."ID" WHERE ("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').'))'; + '"DataObjectTest_Team"."ID" WHERE ("DataObjectTest_Team"."ClassName" IN ('.$db->prepStringForDB('DataObjectTest_SubTeam').')) ' . + 'ORDER BY "DataObjectTest_Team"."Title" ASC'; $this->assertEquals($expected, $playerList->sql()); } diff --git a/tests/model/DataObjectTest.php b/tests/model/DataObjectTest.php index 0d88f0ace..03a5a699f 100644 --- a/tests/model/DataObjectTest.php +++ b/tests/model/DataObjectTest.php @@ -863,7 +863,7 @@ class DataObjectTest extends SapphireTest { // Check that the values of those fields are properly read from the database $values = DataObject::get("DataObjectTest_Team", "\"DataObjectTest_Team\".\"ID\" IN ($obj1->ID, $obj2->ID)")->column("SubclassDatabaseField"); - $this->assertEquals(array('obj1', 'obj2'), $values); + $this->assertEquals(array_intersect($values, array('obj1', 'obj2')), $values); } function testClassNameSetForNewObjects() { @@ -1111,6 +1111,8 @@ class DataObjectTest_Team extends DataObject implements TestOnly { ) ); + static $default_sort = "Title"; + function MyTitle() { return 'Team ' . $this->Title; } diff --git a/tests/travis/_ss_environment.php b/tests/travis/_ss_environment.php index 9b77c4788..eb388291e 100644 --- a/tests/travis/_ss_environment.php +++ b/tests/travis/_ss_environment.php @@ -3,13 +3,33 @@ ob_start(); define('SS_ENVIRONMENT_TYPE', 'dev'); -/* Database connection */ -define('SS_DATABASE_CLASS', 'SQLitePDODatabase'); +/* Database connection */ +$db = getenv('TESTDB'); +switch($db) { +case "PGSQL"; + define('SS_DATABASE_CLASS', 'PostgreSQLDatabase'); + define('SS_DATABASE_USERNAME', 'postgres'); + define('SS_DATABASE_PASSWORD', ''); + break; + +case "MYSQL": + define('SS_DATABASE_CLASS', 'MySQLDatabase'); + define('SS_DATABASE_USERNAME', 'root'); + define('SS_DATABASE_PASSWORD', ''); + break; + +default: + define('SS_DATABASE_CLASS', 'SQLitePDODatabase'); + define('SS_DATABASE_USERNAME', 'root'); + define('SS_DATABASE_PASSWORD', ''); +} + +echo SS_DATABASE_CLASS; + define('SS_DATABASE_SERVER', 'localhost'); -define('SS_DATABASE_USERNAME', 'root'); -define('SS_DATABASE_PASSWORD', ''); define('SS_DATABASE_CHOOSE_NAME', true); + /* Configure a default username and password to access the CMS on all sites in this environment. */ define('SS_DEFAULT_ADMIN_USERNAME', 'username'); define('SS_DEFAULT_ADMIN_PASSWORD', 'password'); diff --git a/tests/travis/before_script b/tests/travis/before_script index 17ab5f066..9ebeded35 100755 --- a/tests/travis/before_script +++ b/tests/travis/before_script @@ -1,6 +1,7 @@ BUILD_DIR=$1 git clone --depth=100 --quiet git://github.com/silverstripe/silverstripe-installer.git $BUILD_DIR git clone --depth=100 --quiet git://github.com/silverstripe-labs/silverstripe-sqlite3.git $BUILD_DIR/sqlite3 +git clone --depth=100 --quiet git://github.com/silverstripe/silverstripe-postgresql.git $BUILD_DIR/postgresql cp ./tests/travis/_ss_environment.php $BUILD_DIR cp ./tests/travis/_config.php $BUILD_DIR/mysite cp -r . $BUILD_DIR/framework diff --git a/view/Requirements.php b/view/Requirements.php index 005ef1997..46702088e 100644 --- a/view/Requirements.php +++ b/view/Requirements.php @@ -781,7 +781,7 @@ class Requirements_Backend { * @return string|boolean */ protected function path_for_file($fileOrUrl) { - if(preg_match('/^http[s]?/', $fileOrUrl)) { + if(preg_match('{^//|http[s]?}', $fileOrUrl)) { return $fileOrUrl; } elseif(Director::fileExists($fileOrUrl)) { $prefix = Director::baseURL();