Scroll to navigation

LOCALE::PO4A::TEX.3PM(1) User Contributed Perl Documentation LOCALE::PO4A::TEX.3PM(1)

NAMN

Locale::Po4a::TeX - konvertera TeX-dokument och derivat från/till PO-filer

BESKRIVNING

Målet med po4a-projektet (PO för allt) är att underlätta översättningar (och, ännu mer intressant, underhållet av översättningar) med hjälp av gettext-verktyg på områden där de inte förväntades användas, såsom dokumentation.

Locale::Po4a::TeX är ett modul som hjälper till att översätta TeX-dokument till andra [mänskliga] språk. Det kan också användas som bas för att bygga moduler för TeX-baserade dokument.

Användare bör antagligen använda LaTeX-modulen, som ärver från TeX-modulen och innehåller definitioner av vanliga LaTeX-kommandon.

ÖVERSÄTTNING MED PO4A::TEX

Denna modul kan användas direkt för att hantera generiska TeX-dokument. Detta delar upp ditt dokument i mindre block (stycken, verbatim-block eller ännu mindre som titlar eller index).

Det finns några flaggor (beskrivna i nästa avsnitt) som kan anpassa detta beteende. Om detta inte passar ditt dokumentformat uppmuntras du att skriva din egen derivatmodul utifrån denna, för att beskriva detaljerna i ditt format. Se avsnittet B-<WRITING DERIVATE MODULES> en nedan för en beskrivning av processen.

Denna modul kan också anpassas med rader som börjar med "% po4a:" i TeX-filen. Denna process beskrivs i avsnittet B-<INLINE CUSTOMIZATION>.

FLAGGOR SOM ACCEPTERAS AV DENNA MODUL

Detta är modulens specifika flaggor:

Aktivera felsökning för vissa interna mekanismer i denna modul. Använd källkoden för att se vilka delar som kan felsökas.
Kommaseparerad lista över miljöer som inte ska ombrytas.

Observera att det finns en skillnad mellan verbatim- och no_wrap-miljöer. Det finns ingen kommando- och kommentaranalys i verbatim-block.

Om denna miljö inte redan har registrerats kommer po4a att anta att denna miljö inte tar emot några parametrar.

Kolonavgränsad lista över filer som inte ska inkluderas av \input och \include.
Namnet på en fil som innehåller definitioner för po4a, enligt definitionen i avsnittet INLINE CUSTOMIZATION. Du kan använda denna flagga om det inte är möjligt att placera definitionerna i det dokument som översätts.
Kommaseparerad lista över miljöer som ska tas bokstavligt.

Om denna miljö inte redan har registrerats kommer po4a att anta att denna miljö inte tar emot några parametrar.

Använd dessa flaggor för att åsidosätta standardbeteendet för de definierade kommandona.

INLINE-ANPASSNING

TeX-modulen kan anpassas med rader som börjar med % po4a:. Dessa rader tolkas som kommandon till parsern. Följande kommandon känns igen:

% po4a: command command1 alias command2
Anger att argumenten för kommandot command1 ska behandlas som argument för kommandot command2.
% po4a: command command1 parameters
Här beskrivs i detalj parametrarna för kommandot command1. Denna information kommer att användas för att kontrollera antalet argument och deras typer.

Du kan föregå kommandot command1 med

po4a extraherar detta kommando från stycken (om det finns i början eller slutet av ett stycke). Översättarna måste sedan översätta de parametrar som är markerade som översättningsbara.
När det gäller asterisker extraheras kommandot om det förekommer i slutet av ett block, men parametrarna översätts inte separat. Översättaren måste översätta kommandot tillsammans med alla dess parametrar. Detta bevarar mer sammanhang och är användbart för kommandon med korta ord i parametrarna, som kan ha flera betydelser (och översättningar).

Observera: I detta fall behöver du inte ange vilka parametrar som är översättningsbara, men po4a måste känna till parametrarna typ och antal.

I det här fallet extraheras inte kommandot från något block. Men om det förekommer ensamt i ett block, kommer endast de parametrar som är markerade som översättningsbara att presenteras för översättaren. Detta är användbart för teckensnittskommandon. Dessa kommandon bör i allmänhet inte separeras från sitt stycke (för att behålla sammanhanget), men det finns ingen anledning att besvära översättaren med dem om en hel sträng är innesluten i ett sådant kommando.

Argumentet i<parameters> är en uppsättning av [] (för att ange ett valfritt argument) eller {} (för att ange ett obligatoriskt argument). Du kan placera ett understreck (_) mellan dessa parenteser för att ange att parametern måste översättas. Till exempel: % po4a: kommando *kapitel [_]{_}

Detta indikerar att kapitelkommandot har två parametrar: en valfri (kort titel) och en obligatorisk, som båda måste översättas. Om du vill ange att kommandot href har två obligatoriska parametrar, att du inte vill översätta URL:en (första parametern) och att du inte vill att detta kommando ska separeras från sitt stycke (vilket gör det möjligt för översättaren att flytta länken i meningen), kan du använda:
% po4a: command -href {}{_}

I detta fall används informationen som anger vilka argument som måste översättas endast om ett stycke endast består av detta href-kommando.

% po4a: environment env parameters
Detta definierar de parametrar som accepteras av I-<env> -miljön och specificerar vilka som ska översättas. Denna information används senare för att kontrollera antalet argument för \begin-kommandot. Syntaxen för I-<parameters> -argumentet är densamma som beskrivs för andra kommandon. Den första parametern för \begin-kommandot är namnet på miljön. Denna parameter får inte anges i listan över parametrar. Här är några exempel:
% po4a: miljö multicols {}
% po4a: miljö equation

När det gäller kommandona kan jag<env> föregås av ett plustecken (+) för att ange att kommandot \begin måste översättas med alla dess argument.

% po4a: separator env "regex"
Anger att en miljö ska delas upp enligt det angivna reguljära uttrycket.

Det reguljära uttrycket avgränsas av citattecken. Det bör inte skapa någon bakåtreferens. Du bör använda (?:) om du behöver en grupp. Det kan också behöva några escape-tecken.

LaTeX-modulen använder till exempel det reguljära uttrycket "(?:&|\\\\)" för att översätta varje cell i en tabell separat (raderna separeras med '\\' och cellerna med '&').

Begreppet miljö utvidgas till den typ som visas i PO-filen. Detta kan användas för att dela upp på "\\\\" i det första obligatoriska argumentet i kommandot title. I detta fall är miljön title{#1}.

% po4a: verbatim environment env
Ange att env är en ordagrann miljö. Kommentarer och kommandon ignoreras i denna miljö.

Om denna miljö inte redan har registrerats kommer po4a att anta att denna miljö inte tar emot några parametrar.

SKRIVA DERIVATMODULER

Lägg till en sträng som en kommentar som ska läggas till runt nästa översatta element. Detta är främst användbart för texinfo-modulen, eftersom kommentarer hanteras automatiskt i TeX.
Wrapper runt Transtractors översättning, med filter för för- och efterbearbetning.

Kommentarer till ett stycke infogas som en PO-kommentar till den första översatta strängen i detta stycke.

Denna funktion returnerar:
Om inget kommando hittas i början av den angivna buffert, kommer denna sträng att vara tom. Endast kommandon som kan separeras beaktas. Hash %separated_command innehåller listan över dessa kommandon.
Detta anger om en variant används. Till exempel kan en asterisk (*) läggas till i slutet av sektionskommandot för att ange att de inte ska numreras. I detta fall kommer fältet att innehålla "*". Om det inte finns någon variant är fältet en tom sträng.
Argumenttypen kan vara antingen '{' (för obligatoriska argument) eller '[' (för valfria argument).
Resten av buffertminnet efter borttagandet av detta inledande kommando och dess argument. Om inget kommando hittas, lämnas det ursprungliga buffertminnet orört och returneras i detta fält.
Samma som get_leading_command, men för kommandon i slutet av en buffert.
Översätt en buffert rekursivt genom att separera inledande och avslutande kommandon (de som ska översättas separat) från bufferten.

Om en funktion definieras i %translate_buffer_env för den aktuella miljön, kommer denna funktion att användas för att översätta bufferten istället för translate_buffer().

Överbelastar Transtractors read().
Läs en fil rekursivt och lägg till inkluderade filer som inte finns med i @exclude_include-matrisen. Inkluderade filer söks med hjälp av kommandot kpsewhich från Kpathsea-biblioteket.

Förutom delen om filinkludering är det ett utdrag ur Transtractors läsning.

Subrutin för att analysera en fil med po4a-direktiv (definitioner för nya kommandon).
Analysera en definitionsrad av formen "% po4a: ".

Se avsnittet B-<INLINE CUSTOMIZATION> för mer information.

INTERNA FUNKTIONER som används för att skriva derivatparsers

Kommando- och miljöfunktioner tar följande argument (utöver objektet $self):

De första tre argumenten extraheras av get_leading_command eller get_trailing_command.

Kommando- och miljöfunktioner returnerar översättningen av kommandot med dess argument och en ny miljö.

Miljöfunktioner anropas när ett \begin-kommando hittas. De anropas med \begin-kommandot och dess argument.

TeX-modulen föreslår endast en kommandofunktion och en miljöfunktion: generic_command och generic_environment.

generic_command använder den information som anges av register_generic_command eller genom att lägga till en definition i TeX-filen: % po4a: kommando command1 parameters

generic_environment använder den information som anges av register_generic_environment eller genom att lägga till en definition i TeX-filen: % po4a: environment env parameters

Båda funktionerna översätter endast de parametrar som har angetts som översättningsbara (med ett '_'). generic_environment lägger till namnet på miljön till miljöstacken och generic_command lägger till namnet på kommandot följt av en identifierare för parametern (som {#7} eller [#2]).

STATUS FÖR DENNA MODUL

Denna modul behöver testas mer.

Det testades på en bok och med Python-dokumentationen.

ATT GÖRA-LISTA

TeX-modulen kunde analysera newcommand-argumenten och försöka gissa antalet argument, deras typ och om de skulle översättas eller inte.
Översättning av miljöavgränsaren
När \item används som miljöavgränsare läggs argumentet item till följande sträng.
Dessa kommandon ska anges av par. Detta kan användas för att ange kommandon som inleder eller avslutar en verbatim-miljö.
Olika andra punkter är markerade med TODO i källkoden.

KÄNDA BUGGAR

Olika punkter är markerade med FIXME i källkoden.

SE ÄVEN

Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)

UPPHOVSPERSONER

 Nicolas François <nicolas.francois@centraliens.net>

UPPHOVSRÄTT OCH LICENS

Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.

Detta program är fri programvara; du får distribuera och/eller modifiera det enligt villkoren i GPL v2.0 eller senare (se filen COPYING).

2026-03-23 perl v5.42.0