################################################################################
##
##  Licensed to the Apache Software Foundation (ASF) under one or more
##  contributor license agreements.  See the NOTICE file distributed with
##  this work for additional information regarding copyright ownership.
##  The ASF licenses this file to You under the Apache License, Version 2.0
##  (the "License"); you may not use this file except in compliance with
##  the License.  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
##  Unless required by applicable law or agreed to in writing, software
##  distributed under the License is distributed on an "AS IS" BASIS,
##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
##  See the License for the specific language governing permissions and
##  limitations under the License.
##
################################################################################

# Developer RTE Section

# Shared

outOfBounds=Angitt indeks {0} er utenfor område.
invalidIndex=Ugyldig indeks: {0}.

# ListCollectionView

unknownProperty=Ukjent egenskap: {0}.
incorrectAddition=Forsøk på å legge til et element som allerede finnes i visningen.
itemNotFound=Kan ikke søke når visning ikke er sortert.
bookmarkNotFound=Bokmerke er ikke fra denne visningen.

# ListCollectionViewCursor

invalidInsert=Kan ikke sette inn når gjeldende er beforeFirst.
invalidRemove=Kan ikke fjerne når gjeldende er beforeFirst eller afterLast.
bookmarkInvalid=Bokmerke er ikke gyldig lenger.
invalidCursor=Markør er ikke gyldig lenger.

# NumericDataProvider

addItemError=addItem() er ikke tilgjengelig i denne klassen.
addItemAtError=addItemAt() er ikke tilgjengelig i denne klassen.
itemUpdatedError=itemUpdated() er ikke tilgjengelig i denne klassen.
removeAllError=removeAll() er ikke tilgjengelig i denne klassen.
removeItemError=removeItem() er ikke tilgjengelig i denne klassen.
removeItemAtError=removeItemAt() er ikke tilgjengelig i denne klassen.
setItemAtError=setItemAt() er ikke tilgjengelig i denne klassen.
stepSizeError=stepSize kan ikke settes til verdi null.

# OnDemandDataProvider

addItemError=addItem() er ikke tilgjengelig i denne klassen.
addItemAtError=addItemAt() er ikke tilgjengelig i denne klassen.
itemUpdatedError=itemUpdated() er ikke tilgjengelig i denne klassen.
getItemAtError=getItemAt() er ikke tilgjengelig i denne klassen.
getItemIndexError=getItemIndex() er ikke tilgjengelig i denne klassen.
lengthError=length() er ikke tilgjengelig i denne klassen.
removeAllError=removeAll() er ikke tilgjengelig i denne klassen.
removeItemAtError=removeItemAt() er ikke tilgjengelig i denne klassen.
setItemAtError=setItemAt() er ikke tilgjengelig i denne klassen.
toArrayError=toArray() er ikke tilgjengelig i denne klassen.

# Sort

noItems=Ingen elementer å søke etter.
findCondition=Søkekriterier må inneholde alle sorteringsfelt opp til {0}.
findRestriction=Søkekriterier må inneholde minst én sorteringsfeltverdi.
unknownMode=Ukjent søkemodus.
nonUnique=Ikke-unike verdier i elementer.
noComparator=Kan ikke fastsette sammenligning for {0}.

# SortField

noComparatorSortField=Kan ikke fastsette sammenligning for SortField med navnet {0}.

# XMLListAdapter

invalidType=Ugyldig type. Må være av typen XML eller en XMLList som inneholder ett XML-objekt. 
