# lang-norwegian.demo.txt - norwegian language file
# ! make sure this file is encoded as utf8, it contains non-ascii characters
# These variables are returned to the main script:
!scope from script: $back_to_start, $show_PHP_demo_source,
$show_demo_viewer_source, $show_template_definitions, $link_separator
# link labels
$back_to_start = 'tilbake til start'
$show_template_definitions = 'vis template-definisjonene'
$show_demo_viewer_source = 'vis kildekode for eksempel-viseren'
$show_PHP_demo_source = 'vis PHP demo kildekode'
$link_separator = ' eller '
=Title:"Demo
=Intro:"Dette er en demo av <code>LayoutProcessor</code> template-prosesseringsmotor.
=Content_intro:
<p>Nedenfor vises fire eksempler på hvordan man kan vise en enkel melding i en <code><div></code>.
De gjør alle den samme tingen, men på forskjellige måter.</p>
=Content_demo_source_invitation:
<p>Dette er bare grunnleggende eksempler, for mer avanserte eksempler kan du se
kildekoden for denne eksempel-viseren ved å klikke lenken nedenfor.</p>
=Example_invitation:
<p>Klikk linken nedenfor for å se template-definisjonene.</p>
=Example_explanation:
<p>Det første eksempelet bruker et layout for å lage en plassholder, det andre
bruker et layout for å lage en template som tar meldingen som input-parameter,
og det tredje lager en template som kan lese variabler, definerer en variabel
og bruker denne i parameteret som sendes til template'en, og den siste henter
variabelen fra konteksten der template'en brukes.</p>
=Demo_source_intro:
<p>Dette er kildekoden for eksempel-viseren (script.demo.txt).
Det meste skulle være greit å forstå for en utvkler, les
<a href="https://github.com/RogerBaklund/LayoutProcessor" target="_blank">GitHub siden</a>
for detaljer om syntaksen.
</p>
=Demo_source_description:
<p>Dette er teknsik sett et layout som heter 'script', det er den ytre template'en
for nettsiden og i dette tilfellet implementerer den hele "applikasjonen", bare
<a href="?lang=no&src=lang">språkfiler</a> og
<a href="?lang=no&src=footer">footer</a> er definert i separate filer
for å vise hvordan det fungerer.
I et virkelig prosjekt vil man ha flere ting i separate filer og antagelig også
hente ting fra en database.</p>
<p>Hvis du vil se hvordan dette er implementert i PHP kan du vise
PHP demo kildekode ved å klikke linken nedenfor.</p>
=PHP_source_intro:
<p>Dette er <code>demo.php</code>, scriptet som laster og kjører
<a href="?lang=no&src=demo_source">eksempel-viseren</a>.</p>
=PHP_source_description:
<p>Du behøver ikke alt dette for å kjøre denne enkle demo'en, men det fungerer som
et bra utgangspunkt for en applikasjon basert på <code>LayoutProcessor</code>.</p>
<p>Den viktigste biten er den statiske <code>load()</code> metoden. Denne metoden
kalles når et udefinert layout brukes. <code>load()</code> må returnere false
hvis layout'et ikke blir funnet. Hvis det finnes returneres det i en liten assosiativ
array med layout'et som en streng og med noe ekstra meta data som i utgangspunktet
bare brukes i feilmeldinger.</p>
<p><code>get()</code> metoden brukes bare for debug meldinger i dette tilfellet, den
skriver navnet på hvert layous etterhvert som de blir kallt, med innrykk tilsvarende
størrelsen på det interne scope-bufferet for å visualisere strukturen på koden som kjøres.
Se <a href="?lang=no&src=log">demo.log</a> filen.</p>
<p>Etter at klassen er definert blir feilhåntering og logging konfigurert. Du behøver ikke
å bruke dette, du kunne bruke standard innstillinger som er <code>ERR_TEXT</code>,
ingen logg. Feilmeldinger ville være synlige men ikke formatert for HTML.</p>
<p>Deretter kjøres <code>Demo::run_layout('script')</code>, og resutatet blir sendt til
netteseren. Fordi layout'et <code>'script'</code> ikke er definert på dette tidspunktet
blir <code>load()</code> metoden kjørt, denne henter og returnerer innholdet av filen
<code>script.demo.txt</code>.</p>
<p>Til slutt blir tidsforbruket skrevet til <a href="?lang=no&src=log">demo.log</a> filen
dersom debugging er aktivert.</p>
=Language_intro:
<p>Dette er språkfila, alle tekster som skal vises er lagret her, noen som variabler og noen
som layouts med HTML paragrafer.</p>
=Language_description:
<p>Dette er bare et eksempel på hvordan det kan gjøres, ofte har man innholdet i en database
og man bruker da andre mekanismer for å finne innhold for riktig språk.</p>
=Logfile_description:
<p>Dette er slutten av fila <code>demo.log</code>, bare noen få av de siste sidevisningene vises.</p>
=Footer_intro:!param string: $footer_file
"<p>Dette er <code>$footer_file</code> filen:</p>
=Footer_description:
<p>Det vil vanligvis være bedre å sette CSS regler for footer klassen, å sende inn
parametre på denne måten er bare gjort for demonstrasjonens skyld.</p>
|