| 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:
- debug
- 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.
- no_wrap
- 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.
- exclude_include
- Kolonavgränsad lista över filer som inte ska inkluderas av \input och \include.
- definitions
- 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.
- verbatim
- 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
- en asterisk (*)
- 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.
- ett plus (+)
- 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.
- ett minus (-)
- 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ö equationNä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¶
- pre_trans
- post_trans
- add_comment
- 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.
- translate
- 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.
- get_leading_command($buffer)
- Denna funktion returnerar:
- Ett kommandonamn
- 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.
- En variant
- 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.
- En matris av tupler (typ av argument, argument)
- Argumenttypen kan vara antingen '{' (för obligatoriska argument) eller '[' (för valfria argument).
- Den återstående buffert
- 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.
- get_trailing_command($buffer)
- Samma som get_leading_command, men för kommandon i slutet av en buffert.
- translate_buffer
- Ö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().
- read
- Överbelastar Transtractors read().
- läs_fil
- 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.
- parse_definition_file
- Subrutin för att analysera en fil med po4a-direktiv (definitioner för nya kommandon).
- parse_definition_line
- Analysera en definitionsrad av formen "% po4a: ".
Se avsnittet B-<INLINE CUSTOMIZATION> för mer information.
- is_closed
- parse
- docheader
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¶
- Automatisk upptäckt av nya kommandon
- 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.
- Vissa kommandon bör läggas till i miljöstacken
- Dessa kommandon ska anges av par. Detta kan användas för att ange kommandon som inleder eller avslutar en verbatim-miljö.
- Andra
- 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 |