Håndtering af tekstoversættelse i flersprogsapplikationer
|
|
- Harald Østergaard
- 5 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Håndtering af tekstoversættelse i flersprogsapplikationer Når man arbejder med internationalisering af systemer, er der en udfordring i hvordan man håndterer forskelligheden i sprogenes entals- og flertalsformer. Denne artikel forsøger at komme med et bud på, hvordan man kan håndtere dette. Skrevet den 29. apr 2013 af softspot I kategorien Programmering / Generelt Revisionshistorik: : artikel oprettet : rettelse af engelsk mønster (tak til olebole), samt tilpasning af indledningsteksten : tilføjelse af link til konkret løsningsforslag i C# Hvis man skal lave et site der kan håndtere forskellige sprog er der mange måder at gøre dette på. En metode er at vedligeholde flere sites i de forskellige sprog man ønsker at understøtte. En fordel ved dette er, at man så kan styre sitets udseende 100% indenfor hvert sprog. Det samme kan dog også være en ulempe, når man skal lave den samme ændring på alle sprogversioner. En anden metode kunne være at benytte samme sideskabeloner og blot indsætte tekst-pladsholdere fra en ordbog de steder, hvor indholdet skal sprogstyres. Fordelen er her, at man kun skal vedligeholde layout ét sted, men omvendt er differentiering af layoutet, afhængig af sprogvalget, mere komplekst. Jeg vil i denne artikel beskrive en version af den sidste metode. Når man vedligeholder en ordbog skal der ofte tages højde for en eller flere variable værdier i formuleringerne af teksterne i de forskellige sprog. Dette kunne f.eks. komme til udtryk i flg. tekst: "Der findes 20 personer" Dette ser lidt anderledes ud, hvis der kun findes 1 person "Der findes 1 person" Håndteringen af forskellen her, er til at overkomme, men man skal trods alt tage stilling til om der skal bruges flertals- eller entalsform for ordet "person". Dette kan gøres inline på siden: personendelse = "" if antalpersoner <> 1 then personendelse = "er" end if
2 Translate("Der findes " & antalpersoner & " person" & personendelse) Translate er her den funktion, som tager teksten og finder en tilsvarende oversættelse i ordbogen til det aktuelt valgte sprog og returnerer den. Der er umiddelbart tre udfordringer her: 1. Teksten indeholder en variabel (antalpersoner) 2. Placeringen af variablen er ikke nødvendigvis den samme på alle sprog 3. Teksten findes i 2 varianter, hvis man ser bort fra variablen Den første og anden udfordring kan løses ved at indsætte en pladsholder for variablen i teksten og så sende værdien med i en parameter til Translate. Translate("Der findes {0} person" & personendelse, antalpersoner) Dette giver dog kun mulighed for at sende én parameter med til oversætteren. Det er givetvis ikke nok i mere komplekse oversættelsesscenarier. Overvej f.eks. flg. tekst: "Der findes X personer i Y registre" hvor X er antal personer og Y er antal registre, altså to forskellige værdier. Pladsholdere til værdier Dette kan løses ved at sende et array af værdier med til Translate-funktionen. Translate("Der findes {0} personer i {1} registre", array(antalpersoner, antalregistre)) Som man kan måske kan se er udfordring 3 fra tidligere blevet endnu større, da der nu findes 4 varianter af den sidste tekst 1. ental af person 2. flertal af person 3. ental af register 4. flertal af register Det begynder at blive noget omstændigt at vedligeholde disse tekster! For at det ikke skal være løgn, kan der endda være forskel på hvormange former et ord har afhængig af sproget, så man kan altså ikke altid regne med at det er en eller flere der adskiller om der skal flertalsendelse på. Der er altså brug for endnu mere fleksibilitet i formateringen af den oversatte tekst. Mere fleksibilitet
3 Jeg har flg. forslag til hvordan man kan håndtere formendelser i tekster. Der anvendes en form i den oversatte tekst, som tillader at angive ord eller endelser alt efter hvilken værdi der sendes med til funktionen. Det kunne se således ud: "Der findes {0} person[#0!1:er] i {1} regist[#1!1:re =1:er]" Ovenstående er altså ikke tekst-pladsholderen, men den oversatte tekst som hentes frem via pladsholderen sammenholdt med sproget (som her er dansk). Pladsholderen kunne se således ud: "Der findes X personer i Y registre" Den engelske oversættelse kunne se nogenlunde således ud: "{0} person[#0!1:s] exist[#0=1:s] in {1} register[#1!1:s]" Som man kan se, er der ikke behov for de samme betingelser i den engelske oversættelse, som i den danske. Derfor er det vigtigt at forstå, at det er i OVERSÆTTELSEN betingelserne skal indsættes og ikke i tekst-pladsholderen. Tekst-pladsholderen er blot en nøgle til at få fat i oversættelsen med og kunne i princippet være et tal. Personligt foretrækker jeg bare, at tekst-pladsholderen giver mening i den kontekst hvor den skal bruges. Der ligger naturligvis nogle performance- og resurseovervejelser i formatet af tekstpladsholderen, da lange tekstuelle tekst-pladsholdere givetvis kræver flere resurser (RAM, database, netværk osv.) at benytte. Betinglser i oversættelserne Formatet af betingelserne er således: [#<feltnummer><betingelse>{ <betingelse>}] <feltnummer> := et tal fra 0 og opefter, som peger på en af de medsendte værdier <betingelse> := <operator><værdi>:<indsæt tekst> <operator> :=! = < > <værdi> := et heltal <indsæt tekst> := vilkårlig tekst der skal indsættes hvis udtrykket er sandt Dvs. værdien af feltnummer kan enten være! : forskellig fra = : lig med < : mindre end > : større end
4 den numeriske værdi og hvis betingelsen er opfyldt, så indsæt teksten efter kolon (og frem til næste pipekarakter, dvs. lodret streg) og afslut evalueringen af det aktuelle udtryk. Hver betingelse ud over den først foranstilles med en pipe-karakter. Med ovenstående format kan vi specificere meget mere komplekse oversættelsesmønstre med meget færre oversættelser (dvs. 1 pr. tekst der skal oversættes pr. sprog). Det er umiddelbart en optimal situation! Fleksibilitet for en pris Denne teknik kommer dog med nogle omkostninger, nemlig at der skal ske en fortolkning af formatet hver gang oversættelsen til en tekst skal hentes. Der kan foretages caching i forskellige grader, men det ændrer ikke på at oversættelse af en tekst involverer et funktionskald og en fortolkning af hvilken betingelse der er gældende. Det vigtigste er umiddelbart, at kompleksiteten vedr. det, at oversætte en tekst, er pakket ind i en funktion og dermed er oversættelseslogikken også lettere at optimere, fordi den er samlet ét sted. Hvordan den egentlige implementering til dette ser ud, afhænger af sproget man ønsker at implementere det i og jeg vil undlade at forsøge i denne artikel, men du kan evt. kigge i denne artikel, hvis du koder i C#: Parameteriseret tekstformatering i C#, hvor jeg kommer med et bud. Kommentar af olebole d. 25. aug <ole> Absolut et spændende koncept! Jeg har visse overvejelser/forbehold med hensyn til den aktuelle løsning, men jeg ser det som et godt grundlag for viderudvikling. Har du overvejet at GitHub'e det? Jeg forstår ikke helt, hvad du mener med begrebet 'placeholder' i denne forbindelse - og hvordan det adskiller sig fra begrebet 'oversættelse'. Jeg har også lidt svært ved at se, hvordan det skal virke. Hvis dette: "Der findes {0} person[#0!1:er] i {1} regist[#1!1:re =1:er]" - skal fodres med to antal, kan jeg se det fungere med tal som '1' og '2'... altså "Der findes 1 person i 2 registre". Men hvordan skal det kunne fungere med talord: "Der findes en person i to registre"? Eller hvis vi vil accentuere, at der kun findes én enkelt: "Der findes én person i to registre"? Den engelske version, du viser ovenfor, skal vist i øvrigt se sådan ud: "{0} person[#0!1:s] exist[#0=1:s] in {1} register[#1!1:s]" - men det ved jeg godt, er en lille 'tankefisk' *o) Til gengæld ser jeg frem til, at metoden kan anvendes på alle de, der har det med at sige: "Langelinje er ca. en kilomet lang" *D /mvh </bole> Kommentar af olebole d. 25. aug Glem kommentaren: "Jeg forstår ikke helt, hvad du mener med begrebet 'placeholder' i denne forbindelse -
5 og hvordan det adskiller sig fra begrebet 'oversættelse'" >> Det siger jo sig selv *o) Kommentar af softspot d. 25. aug Jeg har i øvrigt overvejet muligheden for også at kunne sende tekst-værdier med til Translate-funktionen, således man f.eks. kunne lave betingelser som anvendte disse. Noget á la: "{0} person[#0!en:er] findes" Der kan med stor sandsynlighed findes nogle mere eksotiske eksempler på brugen af dette, men blot for at lufte tanken... Kommentar af softspot d. 25. aug Tak for din feedback ole. Jeg kan ikke umiddelbart gennemskue konsekvenserne af at skulle arbejde med talord, da der vel findes et relativt stort antal ord til at dække alle mulige tal :-) Dog kan man, hvis man ved det er et begrænset antal talord der skal præsenteres, anvende betinglserne til at omsætte værdien til et talord. Nogenlunde således: "Der findes [#0=0:nul =1:én =2:to =3:tre >3:mange] person[#0!1:er] i [#1=0:nul =1:ét =2:to =3:tre >3:flere] regist[#1!1:re =1:er]" uagtet at der skal syv til mange. Jeg må indrømme, at jeg ikke har tænkt på at GitHub'e det, dels fordi jeg, well, ikke har tænkt tanken, dels fordi jeg ikke har sat mig ind i hvordan GitHub fungerer. Hvis du har det lyst, må du da gerne bære konceptet videre. Jeg fornemmer du er mere inde i, hvad der skal til, for at få sådan noget gjort officielt tilgængeligt end jeg er... NB: Beklager, men denne besked skulle have kommet før #3, men Eksperten synes åbenbart ikke Preview skal fixes for kommentarer til guides... :-) Kommentar af olebole d. 25. aug Undskyld, jeg trykte mig dårligt ud :D Jeg mente faktisk 'ordinal suffixes': 1st, 2nd, 3rd, 4th, 5th... osv, indtil 21st, 22nd, 23rd, 24th, osv, fremtil 30'erne, 40'erne, osv. På dansk er det bare et punktum efter tallet, men på andre sprog bruger man den slags suffixes. Man kunne dække et begrænset antal - f.eks. op til stykker. Og jeg kunne forestille mig, at man både dækkede talord og suffiks. I JS kunne det på engelsk gøres med: var sordnsuff = "st;nd;rd;th;th;th;th;th;th;th", aordnsuff = sordnsuff.split(";"); var snumwrds = "one;two;three;four;five;six;seven;eight;nine;ten",
6 anumwrds = snumwrds.split(";"); Man kunne så parse argumenterne, der bliver sendt med til funktionen. Er de tal, indsættes de som tal (og bruges til at afgøre fler- og entalsendelser): FUNC("{0} is more than {1}.", 3, 1) -> "3 is more than 1." Er de derimod strenge, parses de, og det første tegn afgør, om der skal indsættes et talord eller et tal med suffiks. Det efterfølgende tal bruges til at kalde ned i de to arrays (og til at afgøre fler- og entalsendelser): FUNC("The {0} brother is older than the {1}.", "o1", "o2") -> "The 1st brother is older than the 2nd." FUNC("{0} is more than {1}.", "w3", "w1") -> "three is more than one." Jeg kunne ikke lige finde på et eksempel med endelser, men du forstår sikkert meningen =) Kommentar af softspot d. 25. aug Umiddelbart ville jeg foretrække at de argumenter der medsendes ikke skal modificeres, så jeg ville da foreslå at beslutningen om suffix ligger i selve skabelonen (som det kendes fra.net's String.Format, se bla. f.eks. FUNC("The {0:o} brother is older than the {1:o}", 1, 2) Alternativt skulle man indføre nogle mere komplekse udtryksformer til det eksisterende format, f.eks. en modificering af værdien der sammenlignes med inden betingelserne evalueres: [#0%10=1:st =2:nd =3:rd th] Modificeringen (her med % for modulus) af den værdi jeg tjekker op imod sker inden de efterfølgende betingelser udføres. Desuden indføres en fallback-værdi der gælder for alle andre tilfælde end de forgående betingelser (evaluering fra venstre mod højre og første match stopper evalueringen). Jeg er klar over at alternativet ikke nødvendigvis gør formatet nemmere at sætte op (i modsætning til dit forslag), men det udvider i det mindste anvendelsesmulighederne lidt... :-) Der skal nok lige tænkes lidt over, hvordan man adskiller den første modificering med værdierne, hvis modificeringen skal være meget mere kompleks end det viste :-) Kommentar af olebole d. 25. aug Jeg tænkte bare højt - og for hurtigt. Naturligvis skal det derind og stå. 'o' og 'w' var bare eksempler *o) Jeg foretrækker dog stadig at have de forskellige suffiks og/eller talord gemt et centralt sted - fremfor at skulle definere dem i hver oversættelse =)
7 Der koges videre... =) Kommentar af softspot d. 25. aug Enig i at standardsuffiks (eller standardformater i det hele taget) bør ligger centralt. Mit udgangspunkt har været nogle simple regler, som kunne klare de fleste af mine behov for oversættelse og formatering af tekst og som gav oversætteren mulighed for at lave sine egne simple regler, hvor det måtte være nødvendigt. Jeg har en kørende implementering i C#, som jeg benytter i et projekt jeg udvikler på i øjeblikket. Det er altså moderat testet på dansk og engelsk, hvor jeg indtil videre ikke er stødt i umulige scenarier. Det skal dog siges, at jeg ikke har oversat SÅ mange tekster endnu (der er vel tekster pt.) og at disse tekster jo typisk er kortere ledetekster ifm. knapper, oversigter og labels på formularer. Jeg har dog en fornemmelse af, at det rækker til de fleste behov ifm. det aktuelle projekts behov (men jeg har jo heller ikke fået det oversat til nogle af de lidt mere eksotiske sprog endnu :-)). Kommentar af jensenjs d. 27. apr Jeg lavede en gang for maaaaaaange år siden et lignende projekt i BASIC på min ABC80. Jeg fik faktisk løst langt de fleste problemer :-) Jeg ville gerne liste den op her men den ligger på kasettebånd sammen med en hel del programmer, jeg har en ABC80 emulator men kan desværre ikke overfører båndene til mine PC'er Jeg er en habil programmør på både BACIS og C++ Men ikke så god. Kommentar af jensenjs d. 27. apr Glemte lige, godt skrevet :-) Kommentar af softspot d. 29. apr Tak for roserne :-) Jeg har faktisk et par løsningsforslag liggende (JavaScript og C#), men jeg mangler bare lidt tid til, at få dem publiceret her på Eksperten. Jeg håber de kan komme på snart :-) Kommentar af jokkejensen d. 02. maj syntes du bør holde javascript ude af denne, søgemaskinerne afvikler ikke dette. Det bør ske serverside imo. Thumbs up herfra. Kommentar af softspot d. 03. maj Tak Jokke! :-) JavaScript finder også anvendelse i andre kontekster end dem, hvor der skal tænkes på SEO (f.eks. SPA og ved brug af AJAX i øvrigt) og i disse sammenhænge kunne det være rart nok, at have mulighed for at formatere sine tekster med JS på klienten. Kommentar af arne_v d. 19. maj
8 Jeg har foreslaaet en alternativ syntax som kommentar til C# artiklen.
Kontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereAt klippe en streng over på det mest hensigtsmæssige sted
Denne guide er oprindeligt udgivet på Eksperten.dk At klippe en streng over på det mest hensigtsmæssige sted Formålet med denne artikel er at kaste lidt lys over, hvordan man klipper en streng over på
Læs mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereDenne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.
Denne guide er oprindeligt udgivet på Eksperten.dk CSS - en gennemgang Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW. Der er lidt CSS historie
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Læs mereArrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Arrays i PHP De fleste som har skrevet omfattende scripts, er før eller siden stødt på problemet med at de bliver vanskelige at overskue hvis man bruger
Læs mereListen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Læs mereINTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL
INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL I denne og yderligere at par artikler vil jeg se nærmere på diagramfunktionerne i Excel, men der er desværre ikke plads at gennemgå disse i alle detaljer, dertil
Læs mereRegulære udtryk, 2. del
Denne guide er oprindeligt udgivet på Eksperten.dk Regulære udtryk, 2. del Artiklen uddyber mange af de begreber, som blev introduceret i den 1. artikel. Den burde dog kunne læses alene, hvis man allerede
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereProcesbeskrivelse - Webprogrammering
Procesbeskrivelse - Webprogrammering Indholdsfortegnelse Forudsætninger... 1 Konceptet... 2 Hjemmesiden... 2 Server-side... 3 Filstrukturen... 3 Databasehåndtering og serverforbindelse... 4 Client-side...
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs merepoedit og oversættelse af sprogfiler
poedit og oversættelse af sprogfiler af Georg S. Adamsen WordPress.Blogos.dk 2009 http://kortlink.dk/wordpressblogosdk/6g38 1 af 11 14-04-2009 14:55 Jeg får af og til spørgsmål om, hvordan man bruger poedit,
Læs mereI denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.
Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien
Læs mereBrugerdefineret menuer i Access
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer
Læs mereMircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)
Mircobit Kursus Lektion 3 http://microbit.org/ (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. Man skulle lave et tabel
Læs mereMozilla Firefox (tidligere Firebird): Fremhæve ord
Denne guide er oprindeligt udgivet på Eksperten.dk Mozilla Firefox (tidligere Firebird): Fremhæve ord Du kender sikkert Google Værktøjslinjen til Internet Explorer, ellers har du sikkert hørt om den. I
Læs mereDM536. Rapport og debug
DM536 Rapport og debug Kilder Vigtig.it (Felix Palludan Hargreaves) http://vigtig.it/dm502/howto_report.pdf http://vigtig.it/blog/teaching/#toc-relevant-tips Peter Schneider-Kamp http://imada.sdu.dk/~petersk/dm536/project2.pdf
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereSproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract
Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget
Læs mereEndnu mere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP
Læs mere4.0 SharePoint redigering De lokale hjemmesider er bygget i et Microsoft program kaldet SharePoint2010.
4.0 SharePoint redigering De lokale hjemmesider er bygget i et Microsoft program kaldet SharePoint00. Hvis man som webmaster vælger at redigere hjemmesiden uden brug af guiderne sker det via de redigeringsmuligheder
Læs merePUT og INPUT funktionerne
PUT og INPUT funktionerne Af: Peter Kellberg Danmarks Statistik Sejrøgade 11 DK-2100 København Ø pke@dst.dk PUT og INPUT-funktionerne Denne artikel er foranlediget af en henvendelse til vores interne SAS
Læs mereUd for listen over det producerede indhold, har du mulighed for at klikke på Send til BPI:
Vejledning til BPI Send artikler til BPI: Der er 2 måder at sende en artikel på: 1: Når du er i gang med at skrive en nyhed. Når artiklen er færdig, klikker du på Gem & send til BPI: 2: I oversigten over
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereDelphi og Databaser for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med
Læs mereKapitel 3 Betinget logik i C#
Kapitel 3 i C# er udelukkende et spørgsmål om ordet IF. Det er faktisk umuligt at programmere effektivt uden at gøre brug af IF. Du kan skrive små simple programmer. Men når det bliver mere kompliceret
Læs mereAfsending af s vha. ASP
Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra
Læs mereHej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Tags på Eksperten.dk Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk Skrevet den 30. okt 2009 af mbm2007
Læs mereIT opgave. Informationsteknologi B. Vejleder: Karl. Navn: Devran Kücükyildiz. Klasse: 2,4
IT opgave Informationsteknologi B Vejleder: Karl Navn: Devran Kücükyildiz Klasse: 2,4 Dato:03-03-2009 1 Indholdsfortegnelse 1. Indledning... 3 2. Planlægning... 3 Kommunikationsplanlægning... 3 Problemstillingen...
Læs mereStart på javascript. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 03. Feb 2009 af webstuff I kategorien Programmering / JavaScript
Denne guide er oprindeligt udgivet på Eksperten.dk Start på javascript En begynder artikel til javascript som vil gennemgå: 1: Intro 2: Variabler 3: Arrays 4: Matematik 5: Betingelser 6: Løkker 7: Funktioner
Læs mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mereDatabase programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs merePHP 3 UGERS FORLØB PHP, MYSQL & SQL
PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereIntroduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Læs mereALMINDELIGT ANVENDTE FUNKTIONER
ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner
Læs merejquery - selectors, attributes, traversing og manipulation
Denne guide er oprindeligt udgivet på Eksperten.dk jquery - selectors, attributes, traversing og manipulation Jeg vil med denne første artikel fra mig om jquery komme kort ind på jquerys vidunderlige verden.
Læs mereKapitel 4 Løkker i C#
Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereEkstra hastighed med array's i Excel-VBA
Denne guide er oprindeligt udgivet på Eksperten.dk Ekstra hastighed med array's i Excel-VBA Brugen af arrays til indlæsning af og skrivning til celler i Excel kan give betragtelige hastighedsforøgelser
Læs mereHvad er BPI? BPI (Biblioteksproduceret indhold) er den fælles artikelbase for alle danske folkebiblioteker.
Hvad er BPI? BPI (Biblioteksproduceret indhold) er den fælles artikelbase for alle danske folkebiblioteker. Hvem har adgang til BPI? Webjournalister på alle DDB-biblioteker. Skribenterne skal have rettigheder
Læs mereSkrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel
Læs mereMircobit Kursus Lektion 1
Mircobit Kursus Lektion 1 I denne lektie skal vi se nærmere på den lille mini computer kaldt microbit. Egentlig kræver det at man har en fysisk microbit men man kan også næsten lave det samme med den simulator
Læs mereParameterisering af databasekald med ASP og ADO
Denne guide er oprindeligt udgivet på Eksperten.dk Parameterisering af databasekald med ASP og ADO Jeg har efterhånden set en del spørgsmål her på Eksperten vedr. SQL injections og hvordan man kan beskytte
Læs mereGreenfoot En kort introduktion til Programmering og Objekt-Orientering
Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.
Læs mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereDenne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)
Denne guide er oprindeligt udgivet på Eksperten.dk Batch genopfriskning Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-) Skrevet den 03.
Læs mereMircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)
Mircobit Kursus Lektion 4 http://microbit.org/ (Du skal her vælge Lets Code Og herefter Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. I skulle lave et stop ur man kunne
Læs mereIntroduktion til den afledede funktion
Introduktion til den afledede funktion Scenarie: Rutsjebanen Tilsigtede viden Bredere kompetencemål Nødvendige matematiske forudsætninger Tid Niveau Materialer til rådighed At give en forståelse for konceptet
Læs mereKære webansvarlige. Nye funktioner i Infoglue. Filtersøgning i Studieguiden
Kære webansvarlige Vi vil gerne informere jer om flere spændende ting omkring Infoglue, som vi har arbejdet med de sidste par måneder. Nogle af funktionerne er allerede lavet og klar til brug, mens andre
Læs mereProgrammering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereIT projekt person galleri
Denne guide er oprindeligt udgivet på Eksperten.dk IT projekt person galleri Denne artikel forsøger at forklare lidt om hvilke funktioner der ligger bag ved de forskellige titler som deltagerne i et IT
Læs merePython programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Læs mereIde med Diff. Mål. Tidsplan. 1.uge: 2.uge:
Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereOversættelse af LibreOffice. Adressen er https://translations.documentfoundation.org/da/
Oversættelse af LibreOffice Adressen er https://translations.documentfoundation.org/da/ Wiki Vi har en wikiside, hvor du kan finde flere oplysninger om Pootle: http://wiki.documentfoundation.org/da/pootle
Læs mereTracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version)
Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version) Introduktion til Google Tag Manager og Youtube... 1 Opsæt Tags, Variabler og Triggers... 4 A) Variabler (variables)...
Læs mereBRUGERVEJLEDNING TYPO3 CMS Nyhedsbrev modul
BRUGERVEJLEDNING TYPO3 CMS Nyhedsbrev modul TYPO3 CMS Ext:direct_mail Side 1 Indhold Tilmeldings / Afmeldings processen... 2 Manuel tilføjelse af e-mail adresser... 3 Oprettelse af nyhedsbreve... 4 Udsendelse
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereSIDEN PÅ WORDPRESS.COM
WordPress WordPress er et fantastisk program til blog og til hjemmesider, hvor du gerne vil kunne rette via din browser. WordPress er meget udbredt og det er derfor nemt at finde fora, templates og hjælp
Læs mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereForslag til ny FMK status ved brug af lokale systemer
Dato: 10.06.2013 Projektnavn: Fælles Medicinkort Ansvarlig: Helle Balle og Thomas Sonne Olesen Forslag til ny FMK status ved brug af lokale systemer Baggrund Under implementeringen af FMK i regionerne,
Læs mereODIN-webservice ændringer release 2010 v2.0
DOKUMENTATION OG VEJLEDNING ODIN-webservice ændringer release 2010 v2.0 Indholdsfortegnelse 1. Nye webservice metoder... 2 1.1 Anvendelse af køretøjer og personel fra fremmede beredskaber ifm. indberetning
Læs mereIt-sikkerhedstekst ST9
It-sikkerhedstekst ST9 Single Sign-On og log-ud Denne tekst må kopieres i sin helhed med kildeangivelse. Dokumentnavn: ST9 Version 1 Juli 2015 Single Sign-On og log-ud Betegnelsen Single Sign-On (SSO)
Læs mereHjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden.
Hjemmesiden er opdelt i et sidehoved, en sidefod og mellem disse 3 kolonner: venstre, midterste og højre. Højre kolonne vises dog kun på forsiden. VENSTRE kolonne indeholder flere elementer (se illustration
Læs mereBogfunktionen eller Slægtsbogen i FTM
Bogfunktionen eller Slægtsbogen i FTM En blandt mange af Family Tree Maker s styrker er evnen til at præsentere data på mange forskellige måder, og i dette skrift vil bogfunktionen blive gennemgået. Funktionen
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereNoter til C# Programmering Selektion
Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,
Læs mere24-03-2009. Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S
24-03-2009 Problemstilling ved DBK integration i BIM Software Hvad skal der til. Nicolai Karved, Betech Data A/S Problemstilling ved DBK integration i BIM Software Domæner og aspekter Det domæne, der primært
Læs mereProjekt - Valgfrit Tema
Projekt - Valgfrit Tema Søren Witek & Christoffer Thor Paulsen 2012 Projektet Valgfrit Tema var et projekt hvor vi nærmest fik frie tøjler til at arbejde med hvad vi ville. Så vi satte os for at arbejde
Læs mereDenne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.
Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter
Læs merePeter Kellberg. Rundt om Danmarks Statistiks makroer. Design, Standardisering, Teknik
Peter Kellberg Rundt om Danmarks Statistiks makroer Design, Standardisering, Teknik SAS Forum 2009 Ét makrobibliotek ca 50 makroer, vi selv har lavet mange andre fx CLAN Autocall makroer en makro er et
Læs mereIntroduktion til redigeringsfaciliteterne
Sitecore Foundry 3.0 Introduktion til redigeringsfaciliteterne 25. april 2012 - Version 1.2 Pentia A/S Store Kongensgade 66, Baghuset 1264 København K Telefon: 7023 3330 E-mail: info@foreningssite.dk Indholdsfortegnelse
Læs mereGuide til Danskmadogfestservice.dk (the back end)
Guide til Danskmadogfestservice.dk (the back end) Indhold Login... 2 Opdateringer... 4 Medier... 5 Sider... 6 Kontakt... 7 Newsletter... 9 Wocommerce... 10 Udseende... 11 Bruger... 13 Super Snow... 13
Læs mereOpret din egen blog og publicer dit første indlæg med 8 enkle trin
Opret din egen blog og publicer dit første indlæg med 8 enkle trin NB: Det vigtigste at forstå, når du arbejder med blogs, er at der er et interface, hvor du arbejder og et interface, som læsere/brugere
Læs mereNår man skal udfylde i feltet: branche, kan det være relevant, at se valgmulighederne lidt igennem for at finde den mest passende.
Sådan opretter du en LinkedIn profil: - Først starter man med at klikke ind på LinkedIn.com På forsiden ser man en boks til højre på skærmen. Her har man mulighed for at oprette sin profil ved hjælp af
Læs mereOversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005
Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet ved
Læs mereRoskilde Tekniske Gymnasium. Eksamensprojekt. Programmering C niveau
Roskilde Tekniske Gymnasium Eksamensprojekt Programmering C niveau Andreas Sode 09-05-2014 Indhold Eksamensprojekt Programmering C niveau... 2 Forord... 2 Indledning... 2 Problemformulering... 2 Krav til
Læs mereKlasse 1.4 Michael Jokil 03-05-2010
HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk
Læs mereMarkedsføringskanaler
Markedsføringskanaler Der findes et hav af markedsføringskanaler, som du kan bruge til at promovere og køre din forretning igennem, men vi har her udvalgt 3 digitale kanaler, som er stærke og effektive
Læs mere5. OPSÆTNING DOKUMENTSKABELONER 5.1 TRIN
5. OPSÆTNING DOKUMENTSKABELONER Under fanen Dok. skabeloner kan du arbejde med de skabeloner som du har i systemet, eller du kan oprette nye. I denne vejledning kigger vi på hvordan du kan tilrette selve
Læs mereUdarbejdet af CFU Absalon
Chatbots i Scratch Introduktion: En chatbot er et lille program, der kan chatte. De bruges mange steder på internettet, enten for at kunne hjælpe i nogle bestemte situationer eller for at underholde. De
Læs mereAdministration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN
Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN Indholdsfortegnelse Introduktion... 2 Definitioner... 2 Generelt... 3 Oprettelse af en skabelon... 4 Sidetypeskabeloner... 5 Globale displaymoduler...
Læs mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs mereNyhedsmodul brugermanual
Nyhedsmodul brugermanual version 6 Indholdsfortegnelse 1. Kategorier... 02 1.1. Hvordan opretter jeg en kategori?... 02 1.2. Hvordan viser jeg en nyhedskategori på websitet?... 02 2. Oprettelse/redigering
Læs mereNYHEDSBREVE MED MAILCHIMP
VÆRKTØJSKASSEN: NYHEDSBREVE MED MAILCHIMP VED JENS GRIEBEL DIGITAL KONSULENT, JENS@GRIEBEL.DK 1 Velkommen til MailChimp Denne guide vil hjælpe dig med at opsætte din første e-mail kampagne. Den vil også
Læs mereGrådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for
Læs mere