Internationalisation

Från Wiki.linux.se
Version från den 18 september 2024 kl. 07.14 av Admin (diskussion | bidrag) (Skapade sidan med '=== 18 Internationalisering === ==== 18.1 Teckenuppsättning ==== GRUB använder UTF-8 internt, förutom vid rendering där någon GRUB-specifik lämplig representation används. Alla textfiler (inklusive konfiguration) antas vara kodade i UTF-8. ==== 18.2 Filsystem ==== NTFS, JFS, UDF, HFS+, exFAT, långa filnamn i FAT och Joliet-delen av ISO9660 behandlas som UTF-16 enligt specifikationen. AFS och BFS läses som UTF-8, återigen enligt specifikationen. BtrFS, cpio,...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

18 Internationalisering

18.1 Teckenuppsättning

GRUB använder UTF-8 internt, förutom vid rendering där någon GRUB-specifik lämplig representation används. Alla textfiler (inklusive konfiguration) antas vara kodade i UTF-8.

18.2 Filsystem

NTFS, JFS, UDF, HFS+, exFAT, långa filnamn i FAT och Joliet-delen av ISO9660 behandlas som UTF-16 enligt specifikationen. AFS och BFS läses som UTF-8, återigen enligt specifikationen. BtrFS, cpio, tar, squash4, minix, minix2, minix3, ROMFS, ReiserFS, XFS, ext2, ext3, ext4, FAT (korta namn), F2FS, RockRidge-delen av ISO9660, nilfs2, UFS1, UFS2 och ZFS antas vara UTF-8. Detta kan vara fel på system som är konfigurerade med äldre teckenuppsättningar, men så länge den använda teckenuppsättningen är en övermängd av ASCII bör du kunna komma åt filer med ASCII-namn. Det rekommenderas att konfigurera ditt system för att använda UTF-8 för att komma åt filsystemet; `convmv` kan hjälpa till med migrering. ISO9660 (vanliga) filnamn specificeras som ASCII eller beskrivs med ospecificerade escape-sekvenser. GRUB antar att ISO9660-namnen är UTF-8 (eftersom all ASCII är giltig UTF-8). Det finns några gamla CD-ROM:er som använder CP437 på ett icke-kompatibelt sätt. Du kan ändå komma åt filer med namn som endast innehåller ASCII-tecken på sådana filsystem. Du kan också komma åt vilken fil som helst om filsystemet innehåller giltig Joliet (UTF-16) eller RockRidge (UTF-8). AFFS, SFS och HFS använder aldrig Unicode och GRUB antar att de är i Latin1, Latin1 respektive MacRoman. GRUB hanterar filsystem som inte är skiftlägeskänsliga, men inget försök görs att konvertera internationella tecken, så t.ex. en fil med namnet "grekisk alfa med gemener" behandlas som annorlunda än en med namnet "grekisk alfa med versaler". De filsystem som avses är NTFS (utom POSIX-namespace), HFS+ (konfigurerbart vid mkfs-tid, standard ej skiftlägeskänsligt), SFS (konfigurerbart vid mkfs-tid, standard ej skiftlägeskänsligt), JFS (konfigurerbart vid mkfs-tid, standard skiftlägeskänsligt), HFS, AFFS, FAT, exFAT och ZFS (konfigurerbart per subvolym med egenskapen "casesensitivity", standard skiftlägeskänsligt). På ZFS-subvolymer märkta som skiftlägesokänsliga är filer som innehåller gemena internationella tecken otillgängliga. Precis som alla stödda filsystem utom HFS+ och ZFS (konfigurerbart per subvolym med egenskapen "normalization", standard ingen) gör GRUB inget försök att kontrollera kanonisk ekvivalens, så ett filnamn "u-diaresis" behandlas som skilt från "u+combining diaresis". Detta innebär dock att för att komma åt en fil på HFS+ måste dess namn specificeras i normaliseringsform D. På normaliserade ZFS-subvolymer är filnamn utanför normalisering otillgängliga.

18.3 Utmatningsterminal

Firmware-utmatningskonsolen "console" på ARC och IEEE1275 är begränsad till ASCII.

BIOS-firmware-konsolen och VGA-text är begränsade till ASCII och vissa pseudografiska tecken.

Ingen av ovanstående är lämplig för att visa internationella tecken, och alla tecken som inte stöds ersätts med frågetecken, förutom pseudografik som vi försöker approximera med ASCII.

EFI-konsolen å andra sidan stöder nominellt UTF-16, men det faktiska språkutbudet beror på firmware och kan vara mycket begränsat.

Den kodning som används på seriell anslutning kan väljas med terminfo som antingen ASCII, UTF-8 eller "visual UTF-8". Den sistnämnda är emot specifikationen men resulterar i korrekt rendering av höger-till-vänster-text på vissa läsare som inte har egen bidi-implementering.

På emu kontrollerar GRUB om teckenuppsättningen är UTF-8 och använder den om så är fallet, annars används ASCII.

När du använder gfxterm eller gfxmenu ansvarar GRUB själv för att rendera texten. I detta fall är GRUB begränsad av laddade typsnitt. Om typsnitten innehåller alla nödvändiga tecken fungerar bidirektionell text, kursiva varianter och kombinerande markeringar utom inneslutande, halva (t.ex. vänster halvt tilde eller kombinerande överstrykning) och dubbla. Ligaturer stöds dock inte. Detta bör täcka europeiska, mellanöstern- (om du inte har något emot bristen på lam-alif-ligaturen i arabiska) och östasiatiska skript. Noterbart ej stödda skript är Brahmi-familjen och dess derivat samt mongoliska, Tifinagh, koreanska Jamo (förkomponerade tecken har inga problem) och tonalskrift (2e5-2e9). GRUB ignorerar också föråldrade tecken (enligt Unicode), t.ex. taggar. GRUB hanterar inte heller så kallade "annoteringstecken". Om du kan komplettera någon av de två listorna eller, ännu bättre, föreslå en patch för att förbättra renderingen, vänligen kontakta utvecklingsteamet.

18.4 Inmatningsterminal

Firmware-konsolen på BIOS, IEEE1275 och ARC tillåter dig inte att ange icke-ASCII-tecken. EFI-specifikationen tillåter sådana, men författaren är inte medveten om några faktiska implementationer. Seriell inmatning är för närvarande begränsad till Latin1 (osannolikt att ändras). Egna tangentbordsimplementationer (`at_keyboard` och `usb_keyboard`) stöder alla tangenter men arbetar med ett tecken per tangenttryckning. Så inga döda tangenter eller avancerade inmatningsmetoder. Det finns heller ingen snabbtangent för att byta tangentbordslayout. I praktiken gör detta det svårt att ange text med icke-latinska alfabet. Dessutom är alla nuvarande inmatningsmottagare begränsade till ASCII.

18.5 Gettext

GRUB stöder översättning. För detta behöver du ha språkfiler (*.mo) i `$prefix/locale`, ladda `gettext`-modulen och ställa in variabeln "lang".

18.6 Regexp

Reguljära uttryck fungerar på Unicode-tecken, men inget försök har gjorts att kontrollera kanonisk ekvivalens. Dessutom matchar klasser som `[:alpha:]` endast ASCII-delen.

18.7 Övrigt

För närvarande använder GRUB alltid datumformatet ÅR-MÅNAD-DAG TIMME:MINUT:SEKUND [VECKODAG] i 24-timmarsformat, men veckodagarna är översatta. GRUB använder alltid decimaltalsformatet med [0-9] som siffror och `.` som decimalavgränsare utan gruppavgränsare. IEEE1275-alias matchas skiftlägesokänsligt förutom icke-ASCII som matchas binärt. Liknande beteende gäller för matchning av `OSBundleRequired`. Eftersom IEEE1275-alias och `OSBundleRequired` inte innehåller några icke-ASCII-tecken bör det aldrig vara ett problem i praktiken. Skiftlägeskänsliga identifierare matchas som råa strängar; ingen kontroll av kanonisk ekvivalens utförs. Skiftlägesokänsliga identifierare matchas som råa strängar, men dessutom är `[a-z]` ekvivalent med `[A-Z]`. GRUB-definierade identifierare använder endast ASCII och det bör användardefinierade också göra. Identifierare som innehåller icke-ASCII kan fungera men stöds inte. Endast ASCII-blanksteg (mellanslag U+0020, tab U+000b, CR U+000d och LF U+000a) känns igen. Andra Unicode-blanksteg är inte giltiga fältavgränsare. Kommandot `test` (se test) testar `<`, `>`, `<=`, `>=`, `-pgt` och `-plt` genom att jämföra strängarna i lexikografisk ordning av Unicode-kodpunkter, vilket replikerar beteendet hos `test` från coreutils. Miljövariabler och kommandon listas i samma ordning.

Sidslut

Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Internationalisation.html#Internationalisation GNU GRUB Manual


Det här är en maskinöversättning av GNU-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webserver.