Manualer er nødt til at følge trop med den fortsatte udvikling af programmerne. Derfor kan det anbefales at anbringe alt dit kildestof på en delt server, at give alle forfattere og oversættere direkte adgang til materialet. Vi mener at Subversion er det perfekte værktøj for dette job.
Takket være Subversion (herefter kaldet SVN) kan vi give vores manual forfattere og oversættere direkte adgang til vores manualer og samtidig sikre at ingen kan ødelægge kilderne, flere forfattere kan arbejde samtidig på filerne og alle filer vil altid have en unik tilstand.
Som en manual forfatter, behøver du ikke at forstå SVN komplet, kun disse begreber:
Kun vores udviklere, manual forfattere og oversættere får adgang til vores SVN server. SVN serveren gemmer og håndterer flere forskellige lagre men hvert lager har dets egne adgangsregler.Vores holdning: For meget frihed kan bringe dig i vanskeligheder. Hvis du ønsker at få adgang til et bestemt lager på vores SVN server, skal du bruge en SVN konto, og et SVN password. Begge kan fås fra os på admodning.
Hvis du arbejder med Apple's udviklingsværktøj Xcode, behøver du ikke at installere andre værktøjer, idet Xcode understøtter SVN automatisk. Du behøver kun at aktivere det. Se hvordan i Xcode manualen.
Ellers er Subversion og et grafisk brugerinterface (GUI) for SVN nødvendigt, for at gøre det lidt sjovere at bruge Checkout og Commit end fra command-linjen.
Subversion og et grafisk brugerinterface (GUI) for SVN nødvendigt, for at gøre det lidt sjovere at bruge Checkout og Commit end fra command-linjen. Vi anbefaler GUI værktøjet TortoiseSVN.
Vi skriver vores manualer i UDO format, et universelt format med en let tilgang. Lagrene er grundlæggende organiseret som følgende eksempel (som refererer til OS X programmer):
/cs.lproj/
/cs.lproj/<Help Book name>/
/da.lproj/
/da.lproj/<Help Book name>/
/de.lproj/
/de.lproj/<Help Book name>/
/en.lproj/
/en.lproj/<Help Book name>/
/fr.lproj/
/fr.lproj/<Help Book name>/
/it.lproj/
/it.lproj/<Help Book name>/
/nl.lproj/
/nl.lproj/<Help Book name>/
/UDoSource/
/UDoSource/_INCLUDE/
/UDoSource/<various folders>
/UDoSource/<ProjectName>_main_cs.u
/UDoSource/<ProjectName>_main_da.u
/UDoSource/<ProjectName>_main_de.u
/UDoSource/<ProjectName>_main_en.u
/UDoSource/<ProjectName>_main_fr.u
/UDoSource/<ProjectName>_main_it.u
/UDoSource/<ProjectName>_main_nl.u
Mappestrukturen (*.lproj) som vist herunder er en kopi af de sprogafhængige projektmapper for programmet. De indeholder Apple Help Book mapper som kan kopieres direktet til program kilden.
Mappen UDoSource indeholder alle data som skal oversættes. Vi har defineret vores egen nomenklatur for fil-typer, såsom disse:
Selvfølgelig behøver lagrene ikke præcist at indeholde disse viste mapper og sprog.
UDO anvender en meget simpel syntaks til at strukturere teksten, tilføje tekst egenskaber, inkludere billeder, links o.s.v. Det gode i UDO er det's virkelig nemme tilgang, selvom det giver mange forskellige muligheder. Vi prøver at undgå 'overflods-smartness' i vores manualer og bruger kun enkelte af UDO's syntaks elementer.Her er nogle eksempler:
!begin_node starter et nyt afsnit.
!end_node slutter et afsnit.
# i starten af en linje, adviserer UDO om at ignorere hele linjen (kommentar-linje).
!hline viser en vandret linje.
(!nl) tvunget linje-skift. (Grundlæggende slutter UDO et tekstafsnit når det møder to linjeskift.)
!begin_node Nyt afsnit
Jeg er en meget normal tekst. To linjeskift i slutningen af denne tekst informerer UDO om at afsnittet ender her.
Jeg er et afsnit som er blevet (!nl)
krydret med ny-linje (!nl)
kommando.
!hline
# Note: Her mangler tekst.
!end_node
Nyt afsnit
Jeg er en meget normal tekst. To linjeskift i slutningen af denne tekst informerer UDO om at afsnittet ender her.
Jeg er et afsnit som er blevet
krydret med ny-linje
kommando.
(!B) og (!b) slår fed skrift til/fra.
(!I) og (!i) slår kursiv skrift til/fra.
(!U) og (!u) slår understregning til/fra.
(Der er mange andre egenskabs-kommandoer; vi ignorerer de fleste af dem.)
!begin_itemize og !end_itemize omfatter en usorteret liste.
!begin_enumerate og !end_enumerate omfatter en nummereret liste.
!begin_description og !end_description omfatter en beskrivende liste.
!item opretter et liste-punkt.
(Der er mange flere layout-kommandoer; vi ignorerer de fleste af dem.)
!begin_itemize
!item Jeg er et liste punkt.
!item Det er jeg også.
!item Også mig.
!end_itemize
!begin_enumerate
!item Jeg er det (!B)første(!b) punkt på denne liste.
!item Jeg er det (!I)følgende(!i) punkt på denne liste.
!item Jeg er det (!U)sidste(!u) punkt på denne liste.
!end_enumerate
!begin_description
!item [Liste punkt]
En beskrivende liste formaterer udtrykket som er indeholdt i firkantede paranteser med fed skrift. Beskrivelsen af dette udtryk placeres nedenunder.
!end_description
- Jeg er et liste punkt.
- Det er jeg også.
- Også mig.
- Jeg er det første punkt på denne liste.
- Jeg er det følgende punkt på denne liste.
- Jeg er det sidste punkt på denne liste.
- Liste punkt
- En beskrivende liste formaterer udtrykket som er indeholdt i firkantede paranteser med fed skrift. Beskrivelsen af dette udtryk placeres nedenunder.