Indholdsguide til Brugerflade og Hjælp-filer
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Denne guide beskriver indholdet i Brugerfladen og Hjælp-filer i med hensyn til de elementer, der skal eller ikke må oversættes, såsom variabler eller xml-elementer, der bruges i .po-filerne.
Unikke udtryk
Nogle ord skal være unikke i dine oversættelsesfiler -- ellers vil det ødelægge produktet eller udsætte brugeren for datatab. Disse udtryk er:
- Typografinavne, som dem du finder i filen sw/source/ui/utlui.po
- Funktionsnavne i Calc (såsom STRLIST_FUNCTION_NAME), som du finder i filen formula/source/core/resource.po
- Matematiske symboler, som du finder i filen starmath/source.po. Bemærk også, at Matematiske symboler ikke må indeholde mellemrum. For eksempel må det matematiske symbol perthousand ikke oversættes med per tusinde eller promille og noelement må ikke oversættes med no element eller intet element
- Index entries i online-hjælpen som for eksempel <bookmark_value\>Editing;Help Files\<\/bookmark_value\>, selv om de slet ikke findes i den samme fil, da det vil ødelægge visningen af index-elementet.
- Symbolet | i Windows installeringsstrenge
Variabler og symboler i Brugerfladens filer
Selv om det er svært at give faste regler om variabler og symboler i Brugerfladens filer, da LibreOffice bruger blandede teknologier i forskellige del af kildekoden, er dette et forsøg på at give nogle regler.
- Nogle filer indeholder et | i slutningen af strengene. Dette tegn er obligatorisk, da der vil ske en kørselsfejl i installeringen, hvis det udelades.
Her er et eksempel fra instsetoo_native/inc_openoffice/windows/msi_languages.po:
Up one level| Create New Folder|
- $ og % introducerer det meste af tiden en variabel, som placeres i brugerfladen og ordet eller tallet, som følger $ eller % må ikke oversættes. Eksempler:
%PRODUCTNAME ''Dette vil vise produktnavnet'' Change object title of %1 ''%1 erstattes af objektnavnet'' Internal error $(ARG1). ''$(ARG1) erstattes af nummeret på den interne fejlkode''
Hvis $ bruges som valuta i den følgende streng, når det ikke er en variabel kan valuta frit oversættes, hvis det passer i sammenhængen:
Returnerer prisen pr. $100 pålydende værdi af et værdipapir med en skæv sidste termin
- \n antyder en ny linje i brugerfladen. Du bør prøve at oversætte strengen sådan, at den følger linjeskiftet, men ikke fjerner det, da strengen ellers afkortes i dialogfeltet. Eksempel:
#1 Kontroller, at Impress kører \n #2 Hvis Bluetooth-bruger, aktiver "Indstillinger"-"LibreOffice Impress"-"Generelt"-"Aktiver Fjernkontrol"\n #3 Hvis WiFi-bruger, tjek "Indstillinger"-"LibreOffice"-"Avanceret"-"Aktiver Eksperimentale funktioner" \n
- {x}, hvor 'x' er et tal, er en variabel, der bruges i Impress fjernstyringsprogram. Den må ikke ændres.
- <X>, hvor X er et ord med STORE bogstaver, er i de fleste tilfælde en varibel, som ikke må oversættes. Nogle eksempler er <FIELD>, <FIELDNAME>, <LOGICOPERATOR> og <VALUE>. Spørg på postlisten l10n@global.libreoffice.org om det specifikke tilfælde, hvis du er i tvivl.
- [n], hvor n er et tal, viser en parameter, hvis værdi bliver udvidet i den sidste streng. Tallet må ikke ændres eller oversættes.
- [x], hvor x er et ord (måske med et ciffer i slutningen) viser ofte en parameter, hvis værdi bliver udvidet i den sidste streng og hvis navn ikke må ændres eller oversættes (fx [ProductName]), men sommetider er det en streng, som faktisk skal oversættes (fx [M] og [T] i brugerfladen til Autokorrektur-indstillingerne). Spørg på postlisten l10n@global.libreoffice.org om det specifikke tilfælde, hvis du er i tvivl.
- {xxx}, hvor xxx er en streng, markerer en del af en streng, som vil blive udladt, hvis [parameter]værdierne i dem ikke har nogen værdi på visningstidspunktet.
- Eksempel:
filen [2][3] holdes i brug {af følgende proces: Navn: [4], ID: [5], Vinduestitel: [6]}. Luk programmet og prøv igen.
- Hvis en af variablerne [5] eller [6] ikke har nogen værdi på visningstidspunktet, bliver delstrengen "af følgende proces: Navn: [4], ID: [5], Vinduestitel: [6]" udeladt og ikke vist. I det tilfælde vil den sidste streng ikke give mening, men det er et andet spørgsmål. :-)
XML-elementer i Hjælp-filer
Hjælp-filerne indeholder mange XML-elementer, som gør dem vanskelige at oversætte for nytilkomne. Vi behandler dem her, så du ikke har nogen spørgsmål, når du oversætter. Læg mærke til, at elementer sommetider er indlejret i andre elementer, Elementer indeholder også attributter også indeholder attributter, som vi nævner in beskrivelsen af hvert element.
Den bedste måde at behandle disse elementer på er at kopiere-og-indsætte dem i din oversættelse, så du sørger for ikke at glemme en del af dem eller lave en slagfejl. Derefter oversætter du indholdet mellem de to flag, mens du også tager hensyn til de indlejrede elementer.
<ahelp></ahelp>
Dette er et element, som findes i Hjælp-mappen. Den information, det indeholder, vises imidlertid i brugerfladen som et Udvidet værktøjstip, når det er aktiveret på fanebladet LibreOffice-indstillinger. Dette element er <ahelp>det udvidede værktøjstip</ahelp>. Eksempel:
<ahelp hid=\".\">Denne menu indeholder kommandoer til redigering af det aktuelle dokuments indhold.</ahelp>
Dette elementer har to attributter, som ikke ikke skal oversætte:
- hid (som i eksemplet ovenfor)
- visibility
<alt></alt>
Dette element giver grafik en alternativ tekst: Det er ofte indlejret i <image>-elementet, eksempel:
<alt id=\"alt_id3159119\">Icon</alt>
- Her skal du oversætte ordet Icon, ellers intet.
- Det indeholder også xml-lang=\"en-US\" til lokaliseret grafik, hvor du skal erstatte en-US med dit sprogs ISO-kode.
<bookmark_value></bookmark_value>
Dette element bruges til online-hjælpens indeks-opslagsord. Det første ord er hovedopslagsordet, fulgt af et semikolon. Det andet ord repræsenterer det sekundære opslagsniveau, fx:
<bookmark_value>sidetypografier; sidehoveder</bookmark_value><bookmark_value>sidetypografier;sidefødder</bookmark_value>
<bookmark_value>sidehoveder; definere</bookmark_value><bookmark_value>sideføddder; definere</bookmark_value>
<bookmark_value>filnavne i sidehoveder/sidefødder</bookmark_value><bookmark_value>ændre;datoer,automatisk</bookmark_value>
<bookmark_value>datoer;opdatere automatisk</bookmark_value><bookmark_value>automatisk dato-opdateringer</bookmark_value>
- Sommetider sker det, at et ord i kilderne har andre betydninger på engelsk, men ikke på dit sprog, som header og titel. Hvis du finder opslag som <bookmark_value>Header;Title</bookmark_value>, kan du bare fjerne det fra din oversættelse, da det ikke har nogen virkning.
- De fleste gange er flere opslag grupperet i det samme afsnit.
- Der bør ikke være to ens opslag i Hjælp-mappen, da det vil ødelægge indeksvisningen på brugerfladen Hjælp.
<caseinline></caseinline>
Dette element tillader ændring af indholdet afhængigt af platformen (Windows, Linux eller Mac). Den viste tekst vil være forskellig. Det er ofte indlejret i <switchinline> eller <defaultinline>-elementer. Eksempel:
Press <switchinline select=\"sys\"> <caseinline select=\"MAC\">Kommando</caseinline><defaultinline>Ctrl</defaultinline></switchinline>
og klik på fanebladet på det ark, hvor du vil indsætte indholdet.
- i dette eksempel skal du kun oversætte strengen Command mellem de to caseinline-mærker. Hvis du bruger en anden tast end Ctrl på tastaturet på dit sprog, skal du også ændre det (som på tysk tastatur, hvor tasten er mærket Strg) selvom det hører til <defaultinline>-mærkerne.
- dette element har en attribut: select, som i eksemplet ovenfor. Denne attribut skal ikke oversættes.
<defaultinline></defaultinline>
Dette element indeholder standardteksten, som vises, når det er muligt at ændre teksten afhængigt af platform. Som set i det foregående eksempel er det ofte indlejret i <switchinline> og <caseinline>-elementer. Eksempel:
Tryk på <switchinline select=\"sys\"> <caseinline select=\"MAC\">Kommando</caseinline><defaultinline>Ctrl</defaultinline></switchinline> og klik på fanebladet på det ark, hvor du vil indsætte indholdet.
- dette element har ingen attribut.
<embedvar></embedvar>
Dette element har intet indhold, som skal lokaliseres, mellem sine mærker. Men også det kan være indlejret. Eksempel:
<embedvar href=\"text/scalc/00/00000004.xhp#optional\"/>
- dette element har en attribut: href som i eksemplet ovenfor
<emph></emph>
Dette element tillader fremhævelse af strengen mellem mærkerne, så du skal altid oversætte indholdet imellem dem. Eksempel:
Choose <emph>Formater - Flet celler - Flet og centrer celler</emph>
- dette element har ingen attributter
<image></image>
Dette element er til billeder, der er indlejret i filerne. I sig selv har det ikke lokaliserbart indhold, men andre elementer såsom <alt>, som indeholder lokaliserbare strenge er altid indlejret i det. Eksempel:
<image id=\"img_id3153714\" src=\"sc/res/sf01.png\" width=\"0.1665in\" height=\"0.1665in\"><alt id=\"alt_id3153714\">Icon</alt></image>
I dette eksempel ser du <alt></alt>-elementet, hvor Icon skal oversættes.
Dette element har fire attibutter, som ikke skal oversættes:
- id viser referencen til billedet
- src viser billedets placering
- width viser bredden på billedet, den anvendte måleenhed kan være forskellige (fx centimeter), men det har ingen virkning på billedvisningen
- height viser højden på billedet, også her kan måleenheden være forskellig
<item></item>
Dette element beskriver en særlig formatering, der anvendes på indholdet mellem mærkerne.
Eksempler:
For at acceptere udfyldningen, trykker du på <item type=\"keycode\">Enter</item> eller en piletast.
I dette eksempel ser du, at den særlige formatering anvendes til af fremhæve indtastede data.
I <item type=\"menuitem\"><switchinline select=\"sys\"><caseinline select=\"MAC\">
%PRODUCTNAME - Indstillinger</caseinline><defaultinline>Værktøjer - Indstillinger</defaultinline>
</switchinline> - $[officename] - Generelt </item>kan du indstille, fra hvilket år et tocifret tal skal genkendes som 20xx.
I dette mere komplekse eksempel, kan du se, at den særlige formatering bruges til at fremhæve et menu-element.
- type er dette elements eneste attribut. Den bestemmer typen på den indtastning, som skal fremhvæves.
<link></link>
Dette element viser et link til en anden Hjælp-fil eller til nettet. Eksempler:
<variable id=\"datedif\"><link href=\"text/scalc/01/func_datedif.xhp\">DATEDIF</link></variable>
I dette eksempel er indholdet, som skal vises, placeret i scalc/01/func_datedif.xhp. Du skal kun oversætte DATEDIF.
<link href=\"text/scalc/main0210.xhp\" name=\"Page View Object Bar\">Objektlinjen Sidevisning</link>
I dette eksempel skal indholdet efter attributten name også oversættes.
Dette element har fire attributter:
- href er referencen til filen. Den har intet lokaliserbart indhold.
- name er et helt ubrugt attribut. Lokalisering vil ikke have nogen effekt overhovedet.
- target er målet, når det drejer sig om web-indhold. Den har intet lokaliserbart indhold.
- type er typen af indhold, som skal vises. Den har intet lokaliserbart indhold.
<switchinline></switchinline>
Som set ovenfor med elementerne <caseinline></caseinline> og <defaultinline></defaultinline> tillader dette element uskiftning af indhold afhængigt af platformen (Windows, Linux eller Mac). Den har i sig selv intet oversætteligt indhold, men indeholder altid de senere indlejrede elementer. Eksempler:
Press <switchinline select=\"sys\"> <caseinline select=\"MAC\">Kommando</caseinline><defaultinline>Ctrl</defaultinline>
</switchinline>
og klik på fanebladet på det ark, hvor du vil indsætte indholdet.
- select er den eneste attribut. Den har intet lokaliserbart indhold.
<variable></variable>
Dette element bestemmer et indhold, som genbruges i filerne. Indholdet mellem mærkerne skal lokaliseres. Eksempel:
<variable id=\"kopfundfusszeilentext\"><ahelp hid=\".uno:EditHeaderAndFooter\">Lader dig definere og formatere sidehoveder og sidefødder.</ahelp></variable>
Dette element har to attributter:
- id er navnet på variablen og må ikke oversættes. Dets navn kunne give en antydning om indholdet, desværre er det oftest på tysk.
- visibility, hvor indholdet ikke skal oversættes.
Søg og håndter .po-files
Der er mange handlinger, du kan udføre direkte på dine .po-filer. De indeholder tekster og nogle scripts, som fx oversættelsesværktøjssættet kan bruges til at håndtere dem.
Da Søg-feltet i Weblate ikke er særligt effektiv, vil grep-kommandolinje-instruktioner under Linux give dig meget mere signifikante resultater, når du søger en streng i flere filer. Denne del indeholder en kort beskrivelse af nogle scripts, og eksempler på grep og sed-kommandoer, der vil hjælpe dig med at håndtere dine filer.
Du skal først downloade filerne fra Weblate og bruge cd-kommandoen til at stå i den mappe, du vil arbejde på (ui eller hjælp).
Oversættelsesværktøjssættet
For det meste er pakker med Oversættelsesværktøjssættet tilgængelige til din distribution. I det tilfælde, at den ikke er eller at det er en gammel version, kan du finde den her [1]. Hvis du har nogen som helst problemer med at installere eller bruge disse scripts, skal du ikke tøve med at bede om hjælp på postlisten L10n.
Adskillige scripts fra Oversættelsesværktøjssættet er implementeret i Weblate, som Tjek som fejler, som lader dig tjekke din oversættelse. Nogle kan imidlertid være relevante for dig:
- poterminology lader dig trække en terminologi-fil ud af .po/pot-filerne. Før du begynder på et et oversættelsesprojekt, er det en stor hjælp at have registreret og oversat de vigtigste eller mest dobbelttydige ord i en gloseliste. Du vil også kunne uploade denne fil under et Weblate-projekt. Syntaks og indstillinger forklares på webstedet.
- posegment vil hjælpe dig med at øge kvaliteten af din TM (Translation Memory = "oversættelsesdatabase") ved at segmentere po-filerne på sætningsniveau. Syntaks og indstillinger findes på webstedet.
- pocompendium lader dig oprette en stor po-fil fra en mappe med po-filer. Dette er nyttigt, hvis du fx skal opdele en stor po-fil for at fordele den mellem et hold oversættere. Syntaks og indstillinger forklares på webstedet.
- posplit lader dig udtrække tre .po-filer, der indeholder hhv. oversatte strenge, ikke-oversatte strenge og uklare strenge. Syntax og indstillinger forklares på webstedet.
Brug grep til at finde strenge
greb-kommandoen bruges under Linux, macOS eller Unix-lignende systemer til at den givne fil for linjer, der indeholder et match med de givne strenge eller ord. Kommandoen vil vise den linje, der matcher søgningen.
- Den enkleste syntax er:
grep 'ord' filnavn.po
- Eksempel:
sophie@sophie:~/libo_ui-fr$ grep 'Browse' accessibility/source/helper.po
- returnerer
msgid "Browse"
- Her beder vi grep-kommandoen om at finde ordet Browse i filen helper.po file, som findes i undermappen source i mappen accessibility.
- Dette er ikke særlig nyttigt, da du skal kende den mappe, hvor strengen er placeret -- og LibreOffice har så mange mapper. Så vi tilføjer vi en indstilling, som rekursivt vil gennemse alle mapper, der findes i hovedmappen. Det er indstillingen -r.
- Syntaksen er:
grep -r 'word' directory
- Eksempel:
sophie@sophie:~/libo_ui-fr$ grep -r 'Browse' accessibility/
- returnerer
accessibility/source/helper.po:msgid "Browse"
- det er lettere! Outputtet giver dig stien til strengen
- For tvangsmæssigt af ignorere ordets store og små bogstaver (for eksempel at søge versal-ufølsomt efter Browse, browse or BROWSE), tilføjer du indstillingen -i. Syntaksen er:
grep -r -i 'word' directory
- Nu vil vi også have linjenummeret på strengen med i outputtet. Det er indstillingen -n:
- Syntaksen er:
grep -r -i -n 'word' directory
- Lad mig vise dig et eksempel i din egen mappe med alle de indstillinger, vi kender:
sophie@sophie:~/libo_ui-fr$ grep -r -i -n 'Browse' accessibility/
- outputtet er:
accessibility/source/helper.po:23:"RID_STR_ACC_NAME_BROWSEBUTTON\n" accessibility/source/helper.po:25:msgid "Browse"
- Du kan se, at det andet element indeholder ordet, der skal oversættes.
- Hvis du vil have, at din søgning udelukkende matcher den streng, du har tastet, kan du tilføje indstillingen -w. For eksempel at søge efter is og ikke få this eller his osv.
- Hvis du vil søge efter flere ord og kun matche det, du har tastet, er syntaksen:
egrep -w -r -n 'word1|word2' directory/
- Eksempel:
sophie@sophie:~/libo_ui-fr$ egrep -w -r -n '~File|_File' sw/
- the output is:
sw/uiconfig/swriter/ui.po:313:msgid "_File System" sw/uiconfig/swriter/ui.po:1649:msgid "_File name" sw/source/ui/frmdlg.po:563:msgid "~File name" sw/source/ui/misc.po:591:#~ msgid "~File system" sw/source/ui/dialog.po:169:msgid "~File name" sw/source/ui/index.po:522:msgid "~File"
- Bemærk: vi bruger egrep til at matche et bestemt regulært udtryk. e-et står for extended grep, men du kan lige så godt bruge indstillingen -E til det: grep -E -r -n 'word1|word2' directory/
- Hvis der er andet end alfanumeriske tegn i din søgning, som en apostrof (fx child's book på engelsk eller l'objet på fransk), der den letteste måde at klare det på at sætte søgeordet mellem dobbelte citationstegn i stedet for enkelte, som i dette eksempel:
sophie@sophie:~/libo_ui-fr$ grep -r -n "l'objet" sw/ sw/source/ui/utlui.po:4106:msgstr "Cliquer sur l'objet" sw/source/ui/utlui.po:4133:msgstr "Souris sur l'objet" sw/source/ui/utlui.po:4151:msgstr "Souris quitte l'objet" sw/source/ui/utlui.po:4626:#~ msgstr "Renommer l'objet : " sw/source/core/undo.po:641:msgstr "Supprimer l'objet"
- de sædvanlige regulære udtryk anvendt i grep (*: matcher ingen eller flere af de foranstående tegn eller udtryk; ^: matcher udtryk i begyndelsen af en linje, som i ^A osv.)
brug sed til at ændre dine filer
Ligesom grep er sed en stærk kommando, der der lader dig ændre indholdet i dine .po-filer meget let. Sed står for "S"tream "ED"itor (strømredigering). Hvis du fx vil erstatte "hoved" med "titel" i en fil, vil syntaksen være:
sed 's/Header/Title/g' <file.po
- først har du kommandoens navn "s" for "substitute" (= erstat)
- så har du det oprindelige ord afgrænset med "/"-skilletegn
- derefter det ord, du vil erstatte det oprindelige med
- "g" står for "global" og vil erstatte alle forekomster i filen og ikke blot den første forekomst af det søgte ord
- derefter filen, hvor erstatningen skal ske
- læg også mærke til brugen af enkelte citationstegn.
Sed bruger regulære udtryk til at håndtere instruktionerne, men syntaksen forbliver den samme som ovenfor. Vi vil ikke behandle hele syntaksen i linjerne nedenfor, men de er ret enkle regulære udtryk, som du kan bruge sikkert på dine filer.
- Fjern kommentarer fra en fil
- Eksempel på filen, hvor du vil fjerne kommentaren # my comment i utlui.po
# my comment #. dnChg #: 04180400.xhp
- Indtast følgende i mappen sw/source/ui:
sophie@sophie:~/libo_ui-fr/sw/source/ui$ sed '/^#\ /d' utlui.po > tt
- dette vil oprette filen "tt" i samme mappe, som indeholder de strenge, hvor alle "#" i begyndelsen af en linje (^) fulgt af intet slettes (= delete = det i syntaksen).
- for at få tt-filen til at blive til utlui.po igen:
sophie@sophi:~/libo_ui-fr/sw/source/ui$ mv tt utlui.po
- og nu er det en renset fil!
- Vis linjen, der ændres
Vi tager igen fat i vort første eksempel, men nu vil du kun arbejde med en given linje, her 306:
sed '306 s/Header/Title/g' <file.po
så nu kan du bruge først grep på filen for at finde strengen og så bruge sed-kommandoen til at rette den.bb
- du finder flere oplysninger på gnu-webstedet om skilletegnene, de regulære udtryk og syntaksen.