`. 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();