I18N - Charset: Difference between revisions
add info about remapping |
define new characters |
||
Line 4: | Line 4: | ||
=== Encodings === | === Encodings === | ||
==== all.lang ==== | |||
This file is in '''UTF-8''', and converted with the help of the script '''devel/gen_lang.pl''': | |||
perl devel/gen_lang.pl | |||
This ensures that the generated language files are in their proper encodings (see below). | |||
==== All other language files ==== | |||
Note that the language files (f.i. '''strings/german.lang''') as well as the readables and the FM dictionariaries are expected to be in the following encodings: | Note that the language files (f.i. '''strings/german.lang''') as well as the readables and the FM dictionariaries are expected to be in the following encodings: | ||
Line 12: | Line 22: | ||
{{infobox|The core dictionaries are automatically | {{infobox|The core dictionaries are automatically generated in the right encoding, but make sure that you use the right encoding for the FM dictionary, too!}} | ||
Line 25: | Line 35: | ||
'''Color code:''' | '''Color code:''' | ||
{{box|#f0d0d0|Character not displayed by D3|Unusable}}{{box|#d0d0f0|Changed from the ISO-8859-1 default|Changed}} | {{box|#f0d0d0|Character not displayed by D3 or not defined|Unusable}}{{box|#c0ffc0|Character displayed in v1.08 or newer|Usable in v1.08}}{{box|#d0d0f0|Changed from the ISO-8859-1 default|Changed}} | ||
{|class="wikitable" border=1 style="border-collapse: collapse; font-size: 95%" cellspacing=0 cellpadding=2 width=100% | {|class="wikitable" border=1 style="border-collapse: collapse; font-size: 95%" cellspacing=0 cellpadding=2 width=100% | ||
Line 198: | Line 208: | ||
|align='center'|7D<br>'''}''' | |align='center'|7D<br>'''}''' | ||
|align='center'|7E<br>'''~''' | |align='center'|7E<br>'''~''' | ||
|align='center' style='background: #f0d0d0'|7F<br>''' | |align='center' style='background: #f0d0d0'|7F<br>'''''' | ||
|- | |- | ||
!8… | !8… | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|80<br>'''Ň''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|81<br>'''Ś''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|82<br>'''Ć''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|83<br>'''Ż''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|84<br>'''Ź''' | ||
|align='center' style='background: #f0d0d0'|85<br>'''–''' | |align='center' style='background: #f0d0d0'|85<br>'''–''' | ||
|align='center' style='background: #f0d0d0'|86<br>'''–''' | |align='center' style='background: #f0d0d0'|86<br>'''–''' | ||
Line 222: | Line 232: | ||
!9… | !9… | ||
|align='center' style='background: #f0d0d0'|90<br>'''–''' | |align='center' style='background: #f0d0d0'|90<br>'''–''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|91<br>'''ś''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|92<br>'''ć''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|93<br>'''ż''' | ||
|align='center' style='background: # | |align='center' style='background: #c0ffc0'|94<br>'''ź''' | ||
|align='center' style='background: #f0d0d0'|95<br>'''–''' | |align='center' style='background: #f0d0d0'|95<br>'''–''' | ||
|align='center' style='background: #f0d0d0'|96<br>'''–''' | |align='center' style='background: #f0d0d0'|96<br>'''–''' | ||
Line 356: | Line 366: | ||
=== Missing Characters === | === Missing Characters === | ||
The following characters are | The following characters are usuable from v1.08 onwards: | ||
* Ň (LATIN CAPITAL LETTER N WITH CARON, U+0147) | * Ň (LATIN CAPITAL LETTER N WITH CARON, U+0147) |
Revision as of 11:31, 19 February 2012
Introduction
The D3 code that handles the GUI bitmap font can only load a specific range of bytes as characters. To get the most out of the available entries, special charsets are used. The fonts (Carleton for the menu f.i.) are build/patched so that the right characters appear in the right place.
Encodings
all.lang
This file is in UTF-8, and converted with the help of the script devel/gen_lang.pl:
perl devel/gen_lang.pl
This ensures that the generated language files are in their proper encodings (see below).
All other language files
Note that the language files (f.i. strings/german.lang) as well as the readables and the FM dictionariaries are expected to be in the following encodings:
- Czech, Polish: ISO-8859-2 (not WIN-1250!)
- Russian: WIN-1251
- All other languages: ISO-8859-1
The characters are remapped upon loading the dictionary/readable. Responsible for the remapping are mapping files, f.i. "strings/czech.map". If a map file for a specific language is not found, "strings/default.map" is used instead, if this is not found, no remapping takes place.
European Languages
This mapping is used for European languages, f.i. Czech, French, German, Spanish, Portuguese, Polish. Note that the double accented characters in Hungarian Ő, ő, Ű and ű look a bit different from Ö, ö, Ü and ü!
In the table below, the original ISO 8859-1 characters are given in () below the TDM character.
Color code:
UnusableUsable in v1.08Changed
…0 | …1 | …2 | …3 | …4 | …5 | …6 | …7 | …8 | …9 | …A | …B | …C | …D | …E | …F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0… | 00 – |
01 – |
02 – |
03 – |
04 – |
05 – |
06 – |
07 – |
08 – |
09 – |
0A – |
0B – |
0C – |
0D – |
0E – |
0F – |
1… | 10 – |
11 – |
12 – |
13 – |
14 – |
15 – |
16 – |
17 – |
18 – |
19 – |
1A – |
1B – |
1C – |
1D – |
1E – |
1F – |
2… | 20 |
21 ! |
22 " |
23 # |
24 $ |
25 % |
26 & |
27 '' |
28 ( |
29 ) |
2A * |
2B + |
2C , |
2D - |
2E . |
2F / |
3… | 30 0 |
31 1 |
32 2 |
33 3 |
34 4 |
35 5 |
36 6 |
37 7 |
38 8 |
39 9 |
3A : |
3B ; |
3C < |
3D = |
3E > |
3F ? |
4… | 40 @ |
41 A |
42 B |
43 C |
44 D |
45 E |
46 F |
47 G |
48 H |
49 I |
4A J |
4B K |
4C L |
4D M |
4E N |
4F O |
5… | 50 P |
51 Q |
52 R |
53 S |
54 T |
55 U |
56 V |
57 W |
58 X |
59 Y |
5A Z |
5B [ |
5C \ |
5D ] |
5E ^ |
5F _ |
6… | 60 ` |
61 a |
62 b |
63 c |
64 d |
65 e |
66 f |
67 g |
68 h |
69 i |
6A j |
6B k |
6C l |
6D m |
6E n |
6F o |
7… | 70 p |
71 q |
72 r |
73 s |
74 t |
75 u |
76 v |
77 w |
78 x |
79 y |
7A z |
7B { |
7C | |
7D } |
7E ~ |
7F ' |
8… | 80 Ň |
81 Ś |
82 Ć |
83 Ż |
84 Ź |
85 – |
86 – |
87 – |
88 – |
89 – |
8A – |
8B – |
8C – |
8D – |
8E – |
8F – |
9… | 90 – |
91 ś |
92 ć |
93 ż |
94 ź |
95 – |
96 – |
97 – |
98 – |
99 – |
9A – |
9B – |
9C – |
9D – |
9E – |
9F – |
A… | A0 NBSP |
A1 ň (¡) |
A2 Ű (¢) |
A3 ě (£) |
A4 ű (¤) |
A5 Ě (¥) |
A6 Š (¦) |
A7 § |
A8 š (¨) |
A9 Ů (©) |
AA Ą (ª) |
AB Ę («) |
AC Č (¬) |
AD SHY |
AE č (®) |
AF ů (¯) |
B… | B0 Ő (°) |
B1 Ł (±) |
B2 Ť (²) |
B3 Ď (³) |
B4 Ž (´) |
B5 ł (µ) |
B6 ť (¶) |
B7 ď (·) |
B8 ž (¸) |
B9 ő (¹) |
BA ą (º) |
BB ę (») |
BC Œ (¼) |
BD œ (½) |
BE Ÿ (¾) |
BF ¿ |
C… | C0 À |
C1 Á |
C2 Â |
C3 Ã |
C4 Ä |
C5 Å |
C6 Æ |
C7 Ç |
C8 È |
C9 É |
CA Ê |
CB Ë |
CC Ì |
CD Í |
CE Î |
CF Ï |
D… | D0 Ð |
D1 Ñ |
D2 Ò |
D3 Ó |
D4 Ô |
D5 Õ |
D6 Ö |
D7 Ř (×) |
D8 Ø |
D9 Ù |
DA Ú |
DB Û |
DC Ü |
DD Ý |
DE Þ |
DF ß |
E… | E0 à |
E1 á |
E2 â |
E3 ã |
E4 ä |
E5 å |
E6 æ |
E7 ç |
E8 è |
E9 é |
EA ê |
EB ë |
EC ì |
ED í |
EE î |
EF ï |
F… | F0 ð |
F1 ñ |
F2 ò |
F3 ó |
F4 ô |
F5 õ |
F6 ö |
F7 ř (÷) |
F8 ø |
F9 ù |
FA ú |
FB û |
FC ü |
FD ý |
FE þ |
FF ÿ |
Missing Characters
The following characters are usuable from v1.08 onwards:
- Ň (LATIN CAPITAL LETTER N WITH CARON, U+0147)
- ś, Ś
- ć, Ć
- ż, Ż
- ź, Ź
Russian
The character 0xFF (я) is mapped to 0xB6 upon loading. Therefore any Russian font must contain я at the place 0xB6.
See Also
- I18N - Main article
Translation resources
- The charset TDM fonts use
- I18N.pl - a script to transform a FM into a mission and I18N data
- Bug Tracker entry #2779
- Text Decals for Signs etc.
- Fonts in TDM
- Font Conversion & Repair - with links to ExportFontToDoom3, Q3Font, Refont, and Font Patcher
Overview of translations
- I18N Status - Which FMs are translated into which language (not entirely up to date)
- Translating FMs
- List of translators
- Translator's Guide
Translation discussions