################################################################################
##
##  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.
##
################################################################################

# flex2.tools
Mxmlc.OutputMessage=${name} (${length} byte)
Compc.OutputMessage=${name} (${length} byte)
Compiler.NoUpdateMessage=${name} er oppdatert og trenger ikke \u00e5 bygges p\u00e5 nytt.
Compc.NoUpdateMessage=${name} er oppdatert og trenger ikke \u00e5 bygges p\u00e5 nytt.
CompcPreLink.HigherMinimumSupportedVersionRequired=Swc-filen ${swc} krever en minimum st\u00f8ttet versjon p\u00e5 minst ${swcMinimumSupportedVersion}. 
CompcPreLink.PotentialForMissingSkins=Swc-filen ${swc} har stilstandarder og er i library-path, noe som vil si at avhengigheter blir koplet til uten stilene. Dette kan gj\u00f8re at applikasjoner som bruker utdata-swc-filen, mangler skall. Swc-filen b\u00f8r legges i external-library-path.
PreLink.DependencyNotCompatible=Avhengigheten ${definition} fra ${swc} har en minimum st\u00f8ttet versjon p\u00e5 ${swcMinimumVersion}, som er h\u00f8yere enn kompatibilitetsversjonen, ${compatibilityVersion}.
PreLink.NoExternalVisibleDefinition=M\u00e5lfilen har ikke en eksternt synlig definisjon.
PreLink.MissingFactoryClassInFrameMetadata=Denne kompileringsenheten har ikke en factoryClass angitt i Frame-metadataene for \u00e5 laste inn de konfigurerte, delte bibliotekene under kj\u00f8ring. Hvis du vil kompilere uten biblioteker som deles under kj\u00f8retid, kan du enten angi -static-link-runtime-shared-libraries som sann, eller fjerne alternativet -runtime-shared-libraries.
PreLink.InvalidBackgroundColor=Ugyldig bakgrunnsfarge: ${backgroundColor}
PreLink.CouldNotParseNumber=Kan ikke analysere ${num} som et tall for ${attribute}.
PreLink.MissingSignedLibraryDigest=Ingen signerte sammendrag funnet i catalog.xml i biblioteket, ${libraryPath}. Kompiler biblioteket med -create-digest=true, og pr\u00f8v p\u00e5 nytt.
PreLink.MissingUnsignedLibraryDigest=Ingen usignerte sammendrag funnet i catalog.xml i biblioteket, ${libraryPath}. Kompiler biblioteket med -create-digest=true, og pr\u00f8v p\u00e5 nytt.
PreLink.ClassesMappedToSameRemoteAlias=Fant en tilordning for ${existingClassName} til det eksterne klassealiaset ${alias} ved behandling av klassen ${className}. Flex genererer n\u00e5 kode for \u00e5 se om et alias er registrert allerede. Ved avserialisering av eksterne data kan et alias kun tilordnes \u00e9n klasse.
PreLink.RequiredRsls=P\u00e5krevde RSL-er:
PreLink.RequiredRslUrl=\u0020\u0020\u0020\u0020${rslUrl}
PreLink.RequiredRslUrlWithFailover=\u0020\u0020\u0020\u0020${rslUrl} med 1 failover.
PreLink.RequiredRslUrlWithMultipleFailovers=\u0020\u0020\u0020\u0020${rslUrl} med ${failoverCount} failover-tilfeller.
PreLink.CompiledAsAComponent=${className} er en modul eller et program som refereres direkte. Dette gj\u00f8r at ${className} og alle tilh\u00f8rende avhengigheter kobles til ${mainDefinition}. Det anbefales \u00e5 bruke et grensesnitt for \u00e5 unng\u00e5 dette.
ToolsConfiguration.FailedToLoadLicenseFile=Kan ikke laste inn lisensfilen: ${fileName}
ToolsConfiguration.BadAS3ESCombination=Ugyldig -as3- og -es-kombinasjon. -as3=${as3} og -es=${es}. Begge kan v\u00e6re true.
ToolsConfiguration.BadESStrictCombination=-es=${es} og -strict=${strict}. -strict er tillatt, men kan f\u00f8re til kompileringsfeil for referanser til dynamiske egenskaper.
ToolsConfiguration.DeprecatedConfigurationOption=${var} er avskrevet siden ${since}. Bruk ${replacement}.
Optimizer.NotAValidSwfFile=${fileName} er ikke en gyldig SWF-fil
