1
0
forked from 0ad/0ad

Remove all references to serif fonts in the GUI files (see cde72788a2)

Rebuild the sans fonts to include the missing glyph character (fixes
#2483)
Update the pot files

This was SVN commit r14980.
This commit is contained in:
sanderd17 2014-04-24 13:33:15 +00:00
parent bfa6bbd0e0
commit 73470a3610
67 changed files with 96207 additions and 96205 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
binaries/data/mods/public/fonts/sans-9.png (Stored with Git LFS)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -53,7 +53,7 @@ function initCivNameList()
// Function to make first char of string big
function bigFirstLetter(str, size)
{
return '[font="serif-bold-'+(size+6)+'"]' + str[0] + '[/font]' + '[font="serif-bold-'+size+'"]' + str.substring(1) + '[/font]';
return '[font="sans-bold-'+(size+6)+'"]' + str[0] + '[/font]' + '[font="sans-bold-'+size+'"]' + str.substring(1) + '[/font]';
}
// Heading font - bold and mixed caps
@ -71,7 +71,7 @@ function heading(string, size)
if (word.length && word[0].toLowerCase() != word[0])
textArray[i] = bigFirstLetter(wordCaps, size);
else
textArray[i] = '[font="serif-bold-'+size+'"]' + wordCaps + '[/font]'; // TODO: Would not be necessary if we could do nested tags
textArray[i] = '[font="sans-bold-'+size+'"]' + wordCaps + '[/font]'; // TODO: Would not be necessary if we could do nested tags
}
return textArray.join(" ");
@ -98,7 +98,7 @@ function selectCiv(code)
for(var i = 0; i < civInfo.CivBonuses.length; ++i)
{
bonusCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.CivBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
bonusCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.CivBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
+ escapeChars(civInfo.CivBonuses[i].History) + '" tooltip_style="civInfoTooltip"]\n ' + civInfo.CivBonuses[i].Description + '\n[/color]';
}
@ -106,7 +106,7 @@ function selectCiv(code)
for(var i = 0; i < civInfo.TeamBonuses.length; ++i)
{
bonusCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.TeamBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
bonusCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.TeamBonuses[i].Name + '[/font] [icon="iconInfo" tooltip="'
+ escapeChars(civInfo.TeamBonuses[i].History) + '" tooltip_style="civInfoTooltip"]\n ' + civInfo.TeamBonuses[i].Description + '\n[/color]';
}
@ -121,7 +121,7 @@ function selectCiv(code)
var faction = civInfo.Factions[i];
for(var j = 0; j < faction.Technologies.length; ++j)
{
techCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + faction.Technologies[j].Name + '[/font] [icon="iconInfo" tooltip="'
techCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + faction.Technologies[j].Name + '[/font] [icon="iconInfo" tooltip="'
+ escapeChars(faction.Technologies[j].History) + '" tooltip_style="civInfoTooltip"]\n ' + faction.Technologies[j].Description + '\n[/color]';
}
}
@ -130,7 +130,7 @@ function selectCiv(code)
for(var i = 0; i < civInfo.Structures.length; ++i)
{
techCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + civInfo.Structures[i].Name + '[/font][/color] [icon="iconInfo" tooltip="'
techCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + civInfo.Structures[i].Name + '[/font][/color] [icon="iconInfo" tooltip="'
+ escapeChars(civInfo.Structures[i].History) + '" tooltip_style="civInfoTooltip"]\n';
}
@ -145,7 +145,7 @@ function selectCiv(code)
var faction = civInfo.Factions[i];
for(var j = 0; j < faction.Heroes.length; ++j)
{
heroCaption += '[color="' + TEXTCOLOR + '"][font="serif-bold-14"]' + faction.Heroes[j].Name + '[/font][/color] [icon="iconInfo" tooltip="'
heroCaption += '[color="' + TEXTCOLOR + '"][font="sans-bold-14"]' + faction.Heroes[j].Name + '[/font][/color] [icon="iconInfo" tooltip="'
+ escapeChars(faction.Heroes[j].History) + '" tooltip_style="civInfoTooltip"]\n';
}
heroCaption += '\n';

View File

@ -21,7 +21,7 @@
<object
name="civSelectionHeading"
type="text"
font="serif-bold-20"
font="sans-bold-20"
textcolor="white"
text_align="left"
size="50%-420 10 50%-96 48">
@ -39,7 +39,7 @@
<object
name="civGameplayHeading"
type="text"
font="serif-bold-16"
font="sans-bold-16"
textcolor="white"
text_align="left"
text_valign="center"
@ -51,7 +51,7 @@
<object
name="civBonuses"
type="text"
font="serif-14"
font="sans-14"
textcolor="white"
text_align="left"
size="10 0 100%-10 100%-10"
@ -62,7 +62,7 @@
<object
name="civTechs"
type="text"
font="serif-14"
font="sans-14"
textcolor="white"
text_align="left"
size="10 0 100%-10 100%-10"
@ -73,7 +73,7 @@
<object
name="civHeroes"
type="text"
font="serif-14"
font="sans-14"
textcolor="white"
text_align="left"
size="10 0 100%-10 100%-10"
@ -89,7 +89,7 @@
<object
name="civHistoryHeading"
type="text"
font="serif-bold-16"
font="sans-bold-16"
textcolor="white"
text_align="left"
text_valign="center"
@ -101,7 +101,7 @@
<object
name="civHistoryText"
type="text"
font="serif-14"
font="sans-14"
textcolor="white"
text_align="left"
size="10 0 100% 100%"

View File

@ -5,7 +5,7 @@
anchor="top"
buffer_zone="10"
delay="50"
font="serif-12"
font="sans-12"
textcolor="white"
maxwidth="440"
offset="16 24"

View File

@ -18,7 +18,7 @@ function cancelOnError(msg)
Engine.PushGuiPage("page_msgbox.xml", {
width: 500,
height: 200,
message: '[font="serif-bold-18"]' + msg + '[/font]',
message: '[font="sans-bold-18"]' + msg + '[/font]',
title: translate("Loading Aborted"),
mode: 2
});

View File

@ -20,7 +20,7 @@
anchor="top"
buffer_zone="4"
delay="500"
font="serif-14"
font="sans-14"
maxwidth="300"
offset="16 32"
sprite="colour:255 255 255"

View File

@ -79,7 +79,7 @@
anchor="top"
buffer_zone="4"
delay="500"
font="serif-14"
font="sans-14"
maxwidth="300"
offset="16 32"
sprite="bkWhiteBorderBlack"
@ -90,7 +90,7 @@
anchor="top"
buffer_zone="4"
delay="500"
font="serif-14"
font="sans-14"
maxwidth="300"
offset="16 32"
sprite="bkWhiteBorderBlack"
@ -101,7 +101,7 @@
anchor="bottom"
buffer_zone="4"
delay="500"
font="serif-14"
font="sans-14"
maxwidth="300"
offset="-4 -4"
sprite="bkWhiteBorderBlack"
@ -117,7 +117,7 @@
anchor="top"
buffer_zone="4"
delay="100"
font="serif-14"
font="sans-14"
maxwidth="300"
offset="16 32"
sprite="BackgroundSessionTooltip"
@ -128,7 +128,7 @@
anchor="bottom"
buffer_zone="4"
delay="100"
font="serif-14"
font="sans-14"
maxwidth="400"
offset="-4 -4"
sprite="BackgroundSessionTooltip"
@ -139,7 +139,7 @@
anchor="top"
buffer_zone="4"
delay="100"
font="serif-bold-14"
font="sans-bold-14"
maxwidth="300"
offset="16 32"
sprite="BackgroundSessionTooltip"
@ -150,7 +150,7 @@
anchor="bottom"
buffer_zone="4"
delay="100"
font="serif-bold-14"
font="sans-bold-14"
maxwidth="400"
offset="-4 -4"
sprite="BackgroundSessionTooltip"

View File

@ -55,7 +55,7 @@ var g_MapFilters = [];
// Warn about the AI's nonexistent naval map support.
var g_NavalWarning = "\n\n" + sprintf(
translate("%(warning)s The AI does not support naval maps and may cause severe performance issues. Naval maps are recommended to be played with human opponents only."),
{ warning: "[font=\"serif-bold-12\"][color=\"orange\"]" + translate("Warning:") + "[/color][/font]" }
{ warning: "[font=\"sans-bold-12\"][color=\"orange\"]" + translate("Warning:") + "[/color][/font]" }
);
// To prevent the display locking up while we load the map metadata,
@ -1516,18 +1516,18 @@ function addChatMessage(msg)
switch (msg.type)
{
case "connect":
var formattedUsername = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
var formattedUsername = '[font="sans-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
formatted = '[color="gold"]' + sprintf(translate("%(username)s has joined"), { username: formattedUsername });
break;
case "disconnect":
var formattedUsername = '[font="serif-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
var formattedUsername = '[font="sans-bold-13"][color="'+ color +'"]' + username + '[/color][/font][color="gold"]'
formatted = '[color="gold"]' + sprintf(translate("%(username)s has left"), { username: formattedUsername });
break;
case "message":
var formattedUsername = '[color="'+ color +'"]' + username + '[/color]'
var formattedUsernamePrefix = '[font="serif-bold-13"]' + sprintf(translate("<%(username)s>"), { username: formattedUsername }) + '[/font]'
var formattedUsernamePrefix = '[font="sans-bold-13"]' + sprintf(translate("<%(username)s>"), { username: formattedUsername }) + '[/font]'
formatted = sprintf(translate("%(username)s %(message)s"), { username: formattedUsernamePrefix, message: message });
break;

View File

@ -96,7 +96,7 @@
</object>
<object name="playerConfig[n]" type="button" style="StoneButton" size="50%+5 6 50%+60 26"
tooltip_style="onscreenToolTip"
font="serif-bold-stroke-12"
font="sans-bold-stroke-12"
>
<translatableAttribute id="caption">Settings</translatableAttribute>
<translatableAttribute id="tooltip">Configure AI settings.</translatableAttribute>
@ -203,7 +203,7 @@
<!-- Tooltip -->
<object name="onscreenToolTip"
type="text"
font="serif-14"
font="sans-14"
textcolor="white"
sprite="BackgroundTranslucent"
hidden="true"

View File

@ -751,24 +751,24 @@ function ircFormat(text, from, color, key)
{
case "me":
// Translation: IRC message prefix when the sender uses the /me command.
var senderString = '[font="serif-bold-13"]' + sprintf(translate("* %(sender)s"), { sender: coloredFrom }) + '[/font]';
var senderString = '[font="sans-bold-13"]' + sprintf(translate("* %(sender)s"), { sender: coloredFrom }) + '[/font]';
// Translation: IRC message issued using the ‘/me’ command.
var formattedMessage = sprintf(translate("%(sender)s %(action)s"), { sender: senderString, action: message });
break;
case "say":
// Translation: IRC message prefix.
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
// Translation: IRC message.
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: message });
break
case "special":
if (key === g_specialKey)
// Translation: IRC system message.
var formattedMessage = '[font="serif-bold-13"]' + sprintf(translate("== %(message)s"), { message: message }) + '[/font]';
var formattedMessage = '[font="sans-bold-13"]' + sprintf(translate("== %(message)s"), { message: message }) + '[/font]';
else
{
// Translation: IRC message prefix.
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
// Translation: IRC message.
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: message });
}
@ -781,7 +781,7 @@ function ircFormat(text, from, color, key)
else
{
// Translation: IRC message prefix.
var senderString = '[font="serif-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
var senderString = '[font="sans-bold-13"]' + sprintf(translate("<%(sender)s>"), { sender: coloredFrom }) + '[/font]';
// Translation: IRC message.
var formattedMessage = sprintf(translate("%(sender)s %(message)s"), { sender: senderString, message: text });
}
@ -798,7 +798,7 @@ function ircFormat(text, from, color, key)
var timeString = Engine.FormatMillisecondsIntoDateString(time.getTime(), translate("HH:mm"));
// Translation: Time prefix as shown in the multiplayer lobby (when you enable it in the options page).
var timePrefixString = '[font="serif-bold-13"]' + sprintf(translate("[%(time)s]"), { time: timeString }) + '[/font]';
var timePrefixString = '[font="sans-bold-13"]' + sprintf(translate("[%(time)s]"), { time: timeString }) + '[/font]';
// Translation: IRC message format when there is a time prefix.
return sprintf(translate("%(time)s %(message)s"), { time: timePrefixString, message: formattedMessage });

View File

@ -20,7 +20,7 @@
<!-- Left panel: Player list. -->
<object name="leftPanel" size="20 30 20% 100%-50">
<object name="playersBox" style="ModernList" type="olist" size="0 0 100% 100%" font="serif-bold-stroke-13">
<object name="playersBox" style="ModernList" type="olist" size="0 0 100% 100%" font="sans-bold-stroke-13">
<def id="status" width="27%">
<translatableAttribute id="heading">Status</translatableAttribute>
</def>
@ -147,7 +147,7 @@
type="dropdown"
style="ModernDropDown"
size="45%-10 0 68% 100%"
font="serif-bold-13">
font="sans-bold-13">
<action on="SelectionChange">applyFilters();</action>
</object>
@ -155,7 +155,7 @@
type="dropdown"
style="ModernDropDown"
size="70% 0 88% 100%"
font="serif-bold-13">
font="sans-bold-13">
<action on="SelectionChange">applyFilters();</action>
</object>
@ -163,7 +163,7 @@
type="dropdown"
style="ModernDropDown"
size="90% 0 100% 100%"
font="serif-bold-13">
font="sans-bold-13">
<action on="SelectionChange">applyFilters();</action>
</object>
@ -175,14 +175,14 @@
checked="true"
style="ModernTickBox"
size="0 0 20 20"
font="serif-bold-13">
font="sans-bold-13">
<action on="Press">applyFilters();</action>
</object>
</object>
<object name="chatPanel" size="0 49% 100% 100%" type="image" sprite="ModernDarkBoxGold">
<object name="chatText" size="0 0 100% 94%" type="text" style="ChatPanel" font="serif-13"/>
<object name="chatInput" size="0 94% 100% 100%" type="input" style="ModernInput" font="serif-13">
<object name="chatText" size="0 0 100% 94%" type="text" style="ChatPanel" font="sans-13"/>
<object name="chatInput" size="0 94% 100% 100%" type="input" style="ModernInput" font="sans-13">
<action on="Press">submitChatInput();</action>
<action on="Tab">completeNick();</action>
</object>

View File

@ -1,12 +1,12 @@
[font="serif-bold-18"]0 A.D. in-game manual
[font="serif-14"]
[font="sans-bold-18"]0 A.D. in-game manual
[font="sans-14"]
Thank you for installing 0 A.D.! This page will give a brief overview of the features available in this incomplete, under-development, alpha version of the game.
[font="serif-bold-16"]Graphics settings
[font="serif-14"]You can switch between fullscreen and windowed mode by pressing Alt + Enter. In windowed mode, you can resize the window. If the game runs too slowly, you can change some settings in the configuration file: look for binaries/data/config/default.cfg in the location where the game is installed, which gives instructions for editing, and try disabling the "fancywater" and "shadows" options.
[font="sans-bold-16"]Graphics settings
[font="sans-14"]You can switch between fullscreen and windowed mode by pressing Alt + Enter. In windowed mode, you can resize the window. If the game runs too slowly, you can change some settings in the configuration file: look for binaries/data/config/default.cfg in the location where the game is installed, which gives instructions for editing, and try disabling the "fancywater" and "shadows" options.
[font="serif-bold-16"]Playing the game
[font="serif-14"]The controls and gameplay should be familiar to players of traditional RTS games. There are currently a lot of missing features and poorly-balanced stats – you will probably have to wait until a beta release for it to work well.
[font="sans-bold-16"]Playing the game
[font="sans-14"]The controls and gameplay should be familiar to players of traditional RTS games. There are currently a lot of missing features and poorly-balanced stats – you will probably have to wait until a beta release for it to work well.
Basic controls:
• Left-click to select units.
@ -16,17 +16,17 @@ Basic controls:
• Ctrl + arrow keys, or shift + mouse wheel, to rotate the camera.
• Mouse wheel, or "+" and "-" keys, to zoom.
[font="serif-bold-16"]Modes
[font="serif-14"]The main menu gives access to two game modes:
[font="sans-bold-16"]Modes
[font="sans-14"]The main menu gives access to two game modes:
• [font="serif-bold-14"]Single-player[font="serif-14"] — play a sandbox game or against one or more AI opponents. The AI/AIs are under development and may not always be up to date on the new features, but you can test playing the game against an actual opponent if you aren't able to play with a human.
• [font="sans-bold-14"]Single-player[font="sans-14"] — play a sandbox game or against one or more AI opponents. The AI/AIs are under development and may not always be up to date on the new features, but you can test playing the game against an actual opponent if you aren't able to play with a human.
• [font="serif-bold-14"]Multiplayer[font="serif-14"] — play against human opponents over the internet.
• [font="sans-bold-14"]Multiplayer[font="sans-14"] — play against human opponents over the internet.
To set up a multiplayer game, one player must select the "Host game" option. The game uses UDP port 20595, so the host must configure their NAT/firewall/etc to allow this. Other players can then select "Join game" and enter the host's IP address.
[font="serif-bold-16"]Game setup
[font="serif-14"]In a multiplayer game, only the host can alter the game setup options.
[font="sans-bold-16"]Game setup
[font="sans-14"]In a multiplayer game, only the host can alter the game setup options.
First, select whether you want to play on a random map (created automatically from a random map script) or a scenario (created by a map designer). Scenarios can be filtered to show only some maps. The default maps are shown immediately, but custom maps are often not so select "All maps" to see a list of all available maps. Then select a map to play on. The "Demo Maps" are designed for testing particular gameplay features and are probably not generally useful.
@ -34,9 +34,9 @@ Finally change the settings. For random maps this includes the number of players
When you are ready to start, click the "Start game" button.
[font="serif-bold-16"]Hotkeys:
[font="serif-bold-14"]Always
[font="serif-14"]Alt + F4: Close the game, without confirmation
[font="sans-bold-16"]Hotkeys:
[font="sans-bold-14"]Always
[font="sans-14"]Alt + F4: Close the game, without confirmation
Alt + Enter: Toggle between fullscreen and windowed
~ or F9: Show/hide console
Alt + F: Show/hide frame counter (FPS)
@ -45,8 +45,8 @@ Shift + F11: Save current profiler data to "logs/profile.txt"
F2: Take screenshot (in .png format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
Shift + F2: Take huge screenshot (6400px*4800px, in .bmp format, location is displayed in the top left of the GUI after the file has been saved, and can also be seen in the console/logs if you miss it there)
[font="serif-bold-14"]In Game
[font="serif-14"]Double Left Click [on unit]: Select all of your units of the same kind on the screen (even if they're different ranks)
[font="sans-bold-14"]In Game
[font="sans-14"]Double Left Click [on unit]: Select all of your units of the same kind on the screen (even if they're different ranks)
Triple Left Click [on unit]: Select all of your units of the same kind and the same rank on the screen
Alt + Double Left Click [on unit]: Select all your units of the same kind on the entire map (even if the are different ranks)
Alt + Triple Left Click [on unit]: Select all your units of the same kind and rank on the entire map
@ -69,8 +69,8 @@ Ctrl + F5 (and so on up to F8): Mark the current camera position, for jumping ba
F5, F6, F7, and F8: Move the camera to a marked position. Jump back to the last location if the camera is already over the marked position.
Z, X, C, V, B, N, M: With training buildings selected. Add the 1st, 2nd, ... unit shown to the training queue for all the selected buildings.
[font="serif-bold-14"]Modify mouse action
[font="serif-14"]Ctrl + Right Click on building: Garrison
[font="sans-bold-14"]Modify mouse action
[font="sans-14"]Ctrl + Right Click on building: Garrison
Shift + Right Click: Queue the move/build/gather/etc order
Shift + Left click when training unit/s: Add units in batches of five
Shift + Left Click or Left Drag over unit on map: Add unit to selection
@ -82,15 +82,15 @@ Ctrl + Right Click with units selected:
- If the cursor is over a structure: Garrison
- Otherwise: Attack move
[font="serif-bold-14"]Overlays
[font="serif-14"]Alt + G: Hide/show the GUI
[font="sans-bold-14"]Overlays
[font="sans-14"]Alt + G: Hide/show the GUI
Alt + D: Show/hide developer overlay (with developer options)
Alt + W: Toggle wireframe mode (press once to get wireframes overlaid over the textured models, twice to get just the wireframes colored by the textures, thrice to get back to normal textured mode)
Alt + S: Toggle unit silhouettes (might give a small performance boost)
Alt + Z: Toggle sky
[font="serif-bold-14"]Camera manipulation
[font="serif-14"]W or [up]: Pan screen up
[font="sans-bold-14"]Camera manipulation
[font="sans-14"]W or [up]: Pan screen up
S or [down]: Pan screen down
A or [left]: Pan screen left
D or [right]: Pan screen right
@ -109,7 +109,7 @@ R: Reset camera zoom/orientation
Alt + W: Toggle through wireframe modes
Middle Mouse Button or / (Forward Slash): Keep pressed and move the mouse to pan
[font="serif-bold-14"]During Building Placement
[font="serif-14"][: Rotate building 15 degrees counter-clockwise
[font="sans-bold-14"]During Building Placement
[font="sans-14"][: Rotate building 15 degrees counter-clockwise
]: Rotate building 15 degrees clockwise
Left Drag: Rotate building using mouse (foundation will be placed on mouse release)

View File

@ -172,7 +172,7 @@ function ShowRenderPathMessage()
messageBox(
600,
300,
"[font=\"serif-bold-16\"]" +
"[font=\"sans-bold-16\"]" +
sprintf(translate("%(startWarning)sWarning:%(endWarning)s You appear to be using non-shader (fixed function) graphics. This option will be removed in a future 0 A.D. release, to allow for more advanced graphics features. We advise upgrading your graphics card to a more recent, shader-compatible model."), { startWarning: "[color=\"200 20 20\"]", endWarning: "[/color]"}) +
"\n\n" +
// Translation: This is the second paragraph of a warning. The

View File

@ -93,7 +93,7 @@
style="userReportText"
>
<attribute id="caption">
<keep>[font="serif-bold-16"]</keep>
<keep>[font="sans-bold-16"]</keep>
<translate>Help improve 0 A.D.!</translate>
<keep>[/font]\n</keep>
<translate>You can automatically send us anonymous feedback that will help us fix bugs, and improve performance and compatibility.</translate>
@ -121,7 +121,7 @@
style="userReportText"
>
<attribute id="caption">
<keep>[font="serif-bold-16"]</keep>
<keep>[font="sans-bold-16"]</keep>
<translate>Thank you for helping improve 0 A.D.!</translate>
<keep>[/font]\n\n</keep>
<translate>Anonymous feedback is currently enabled.</translate>
@ -469,7 +469,7 @@
<!-- PRE-RELEASE WARNING -->
<object
font="serif-14"
font="sans-14"
type="text"
textcolor="white"
size="8 8 100%-8 100%-36"
@ -477,7 +477,7 @@
>
<!-- IMPORTANT: remember to update session/session.xml in sync with this: -->
<attribute id="caption">
<keep>[font="serif-bold-16"]</keep>
<keep>[font="sans-bold-16"]</keep>
<translate>Alpha XV: Osiris</translate>
<keep>[/font]\n\n</keep>
<translate>WARNING: This is an early development version of the game. Many features have not been added yet.</translate>

View File

@ -93,13 +93,13 @@ function displaySingle(entState, template)
if (entState.promotion.curr < entState.promotion.req)
Engine.GetGUIObjectByName("experience").tooltip = sprintf(translate("%(experience)s %(current)s / %(required)s"), {
experience: "[font=\"serif-bold-13\"]" + translate("Experience:") + "[/font]",
experience: "[font=\"sans-bold-13\"]" + translate("Experience:") + "[/font]",
current: Math.floor(entState.promotion.curr),
required: entState.promotion.req
});
else
Engine.GetGUIObjectByName("experience").tooltip = sprintf(translate("%(experience)s %(current)s"), {
experience: "[font=\"serif-bold-13\"]" + translate("Experience:") + "[/font]",
experience: "[font=\"sans-bold-13\"]" + translate("Experience:") + "[/font]",
current: Math.floor(entState.promotion.curr)
});
Engine.GetGUIObjectByName("experience").hidden = false;
@ -223,7 +223,7 @@ function displaySingle(entState, template)
Engine.GetGUIObjectByName("icon").sprite = "bkFillBlack";
}
var armorLabel = "[font=\"serif-bold-13\"]" + translate("Armor:") + "[/font]"
var armorLabel = "[font=\"sans-bold-13\"]" + translate("Armor:") + "[/font]"
var armorString = sprintf(translate("%(label)s %(details)s"), { label: armorLabel, details: armorTypeDetails(entState.armour) });
// Attack and Armor
@ -231,9 +231,9 @@ function displaySingle(entState, template)
{
// Rate
if (entState.buildingAI)
var rateLabel = "[font=\"serif-bold-13\"]" + translate("Interval:") + "[/font]";
var rateLabel = "[font=\"sans-bold-13\"]" + translate("Interval:") + "[/font]";
else
var rateLabel = "[font=\"serif-bold-13\"]" + translate("Rate:") + "[/font]";
var rateLabel = "[font=\"sans-bold-13\"]" + translate("Rate:") + "[/font]";
var rate = sprintf(translate("%(label)s %(details)s"), {
label: rateLabel,
@ -241,12 +241,12 @@ function displaySingle(entState, template)
});
var attack;
var label = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(entState.attack.type) + "[/font]"
var label = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(entState.attack.type) + "[/font]"
if (entState.attack.type == "Ranged")
{
var realRange = entState.attack.elevationAdaptedRange;
var range = entState.attack.maxRange;
var rangeLabel = "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]"
var rangeLabel = "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]"
var relativeRange = Math.round((realRange - range));
var meters = "[font=\"sans-10\"][color=\"orange\"]" + translate("meters") + "[/color][/font]";
@ -300,10 +300,10 @@ function displaySingle(entState, template)
var iconTooltip = "";
if (genericName)
iconTooltip = "[font=\"serif-bold-16\"]" + genericName + "[/font]";
iconTooltip = "[font=\"sans-bold-16\"]" + genericName + "[/font]";
if (template.tooltip)
iconTooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
iconTooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
Engine.GetGUIObjectByName("iconBorder").tooltip = iconTooltip;
@ -338,7 +338,7 @@ function displayMultiple(selection, template)
healthSize.rtop = 100-100*Math.max(0, Math.min(1, averageHealth / maxHealth));
unitHealthBar.size = healthSize;
var hitpointsLabel = "[font=\"serif-bold-13\"]" + translate("Hitpoints:") + "[/font]"
var hitpointsLabel = "[font=\"sans-bold-13\"]" + translate("Hitpoints:") + "[/font]"
var hitpoints = sprintf(translate("%(label)s %(current)s / %(max)s"), { label: hitpointsLabel, current: averageHealth, max: maxHealth });
var healthMultiple = Engine.GetGUIObjectByName("healthMultiple");
healthMultiple.tooltip = hitpoints;

View File

@ -627,10 +627,10 @@ function updateHero()
unitHeroPanel.hidden = false;
// Setup tooltip
var tooltip = "[font=\"serif-bold-16\"]" + template.name.specific + "[/font]";
var healthLabel = "[font=\"serif-bold-13\"]" + translate("Health:") + "[/font]";
var tooltip = "[font=\"sans-bold-16\"]" + template.name.specific + "[/font]";
var healthLabel = "[font=\"sans-bold-13\"]" + translate("Health:") + "[/font]";
tooltip += "\n" + sprintf(translate("%(label)s %(current)s / %(max)s"), { label: healthLabel, current: heroState.hitpoints, max: heroState.maxHitpoints });
var attackLabel = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(heroState.attack.type) + "[/font]";
var attackLabel = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(heroState.attack.type) + "[/font]";
if (heroState.attack && heroState.attack.type == "Ranged")
// Show max attack range if ranged attack, also convert to tiles (4m per tile)
tooltip += "\n" + sprintf(
@ -638,14 +638,14 @@ function updateHero()
{
attackLabel: attackLabel,
details: damageTypeDetails(heroState.attack),
rangeLabel: "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]",
rangeLabel: "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]",
range: Math.round(heroState.attack.maxRange/4)
}
);
else
tooltip += "\n" + sprintf(translate("%(label)s %(details)s"), { label: attackLabel, details: damageTypeDetails(heroState.armour) });
var armorLabel = "[font=\"serif-bold-13\"]" + translate("Armor:") + "[/font]";
var armorLabel = "[font=\"sans-bold-13\"]" + translate("Armor:") + "[/font]";
tooltip += "\n" + sprintf(translate("%(label)s %(details)s"), { label: armorLabel, details: damageTypeDetails(heroState.attack) });
tooltip += "\n" + template.tooltip;

View File

@ -754,7 +754,7 @@
<!-- ================================ ================================ -->
<!-- Phase -->
<!-- ================================ ================================ -->
<!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="serif-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>-->
<!--<object size="50%+50 4 50%+300 100%-2" name="PhaseTitleBar" type="text" font="sans-bold-stroke-14" textcolor="white"> Death Match :: Village Phase</object>-->
<!-- ================================ ================================ -->
<!-- Observer Mode Warning -->

View File

@ -190,7 +190,7 @@ function formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize
}
var remainderBatchString = remainderBatch > 0 ? remainderBatch : "";
var batchDetailsString = "";
var action = "[font=\"serif-bold-13\"]" + translate("Shift-click") + "[/font][font=\"serif-13\"]"
var action = "[font=\"sans-bold-13\"]" + translate("Shift-click") + "[/font][font=\"sans-13\"]"
// We need to display the batch details part if there is either more than
// one building with full batch or one building with the full batch and
@ -199,21 +199,21 @@ function formatBatchTrainingString(buildingsCountToTrainFullBatch, fullBatchSize
(buildingsCountToTrainFullBatch == 1 && remainderBatch > 0))
{
if (remainderBatch > 0)
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s + %(remainderBatch)s)."), {
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s + %(remainderBatch)s)."), {
action: action,
number: totalBatchTrainingCount,
fullBatch: fullBatchesString,
remainderBatch: remainderBatch
}) + "[/font]";
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s)."), {
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s (%(fullBatch)s)."), {
action: action,
number: totalBatchTrainingCount,
fullBatch: fullBatchesString
}) + "[/font]";
}
return "\n[font=\"serif-13\"]" + sprintf(translate("%(action)s to train %(number)s."), {
return "\n[font=\"sans-13\"]" + sprintf(translate("%(action)s to train %(number)s."), {
action: action,
number: totalBatchTrainingCount
}) + "[/font]";
@ -499,10 +499,10 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
var tooltip = getEntityNamesFormatted(template);
var key = Engine.ConfigDB_GetValue("user", "hotkey.session.queueunit." + (i + 1));
if (key)
tooltip = "[color=\"255 251 131\"][font=\"serif-bold-16\"][" + key + "][/font][/color] " + tooltip;
tooltip = "[color=\"255 251 131\"][font=\"sans-bold-16\"][" + key + "][/font][/color] " + tooltip;
if (template.tooltip)
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
var [buildingsCountToTrainFullBatch, fullBatchSize, remainderBatch] =
getTrainingBatchStatus(playerState, unitEntState.id, entType, selection);
@ -521,7 +521,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
case RESEARCH:
var tooltip = getEntityNamesFormatted(template);
if (template.tooltip)
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
tooltip += "\n" + getEntityCostTooltip(template);
@ -529,7 +529,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
{
var tooltip1 = getEntityNamesFormatted(template1);
if (template1.tooltip)
tooltip1 += "\n[font=\"serif-13\"]" + template1.tooltip + "[/font]";
tooltip1 += "\n[font=\"sans-13\"]" + template1.tooltip + "[/font]";
tooltip1 += "\n" + getEntityCostTooltip(template1);
}
@ -538,7 +538,7 @@ function setupUnitPanel(guiName, usedPanels, unitEntState, playerState, items, c
case CONSTRUCTION:
var tooltip = getEntityNamesFormatted(template);
if (template.tooltip)
tooltip += "\n[font=\"serif-13\"]" + template.tooltip + "[/font]";
tooltip += "\n[font=\"sans-13\"]" + template.tooltip + "[/font]";
tooltip += "\n" + getEntityCostTooltip(template);
tooltip += getPopulationBonusTooltip(template);

View File

@ -152,7 +152,7 @@ function damageValues(dmg)
function damageTypeDetails(dmg)
{
if (!dmg)
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
var dmgArray = [];
if (dmg.hack)
@ -199,7 +199,7 @@ function armorLevelToPercentageString(level)
function armorTypeDetails(dmg)
{
if (!dmg)
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
var dmgArray = [];
if (dmg.hack)
@ -228,55 +228,55 @@ function armorTypeDetails(dmg)
function damageTypesToText(dmg)
{
if (!dmg)
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
var dmgArray = [];
if (dmg.hack)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
damage: dmg.hack,
damageType: "[font=\"serif-12\"]" + translate("Hack") + "[/font]"
damageType: "[font=\"sans-12\"]" + translate("Hack") + "[/font]"
}));
if (dmg.pierce)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
damage: dmg.pierce,
damageType: "[font=\"serif-12\"]" + translate("Pierce") + "[/font]"
damageType: "[font=\"sans-12\"]" + translate("Pierce") + "[/font]"
}));
if (dmg.crush)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s"), {
damage: dmg.crush,
damageType: "[font=\"serif-12\"]" + translate("Crush") + "[/font]"
damageType: "[font=\"sans-12\"]" + translate("Crush") + "[/font]"
}));
return dmgArray.join("[font=\"serif-12\"]" + translate(", ") + "[/font]");
return dmgArray.join("[font=\"sans-12\"]" + translate(", ") + "[/font]");
}
// Also for the training tooltip
function armorTypesToText(dmg)
{
if (!dmg)
return "[font=\"serif-12\"]" + translate("(None)") + "[/font]";
return "[font=\"sans-12\"]" + translate("(None)") + "[/font]";
var dmgArray = [];
if (dmg.hack)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
damage: dmg.hack,
damageType: "[font=\"serif-12\"]" + translate("Hack") + "[/font]",
damageType: "[font=\"sans-12\"]" + translate("Hack") + "[/font]",
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.hack) }) + "[/font]"
}));
if (dmg.pierce)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
damage: dmg.pierce,
damageType: "[font=\"serif-12\"]" + translate("Pierce") + "[/font]",
damageType: "[font=\"sans-12\"]" + translate("Pierce") + "[/font]",
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.pierce) }) + "[/font]"
}));
if (dmg.crush)
dmgArray.push(sprintf(translate("%(damage)s %(damageType)s %(armorPercentage)s"), {
damage: dmg.crush,
damageType: "[font=\"serif-12\"]" + translate("Crush") + "[/font]",
damageType: "[font=\"sans-12\"]" + translate("Crush") + "[/font]",
armorPercentage: "[font=\"sans-10\"]" + sprintf(translate("(%(armorPercentage)s)"), { armorPercentage: armorLevelToPercentageString(dmg.crush) }) + "[/font]"
}));
return dmgArray.join("[font=\"serif-12\"]" + translate(", ") + "[/font]");
return dmgArray.join("[font=\"sans-12\"]" + translate(", ") + "[/font]");
}
function getEntityCommandsList(entState)
@ -532,7 +532,7 @@ function getEntityCostTooltip(template, trainNum, entity)
}
else
{
cost = ""; // cleaner than duplicating the serif-bold-13 stuff
cost = ""; // cleaner than duplicating the sans-bold-13 stuff
}
return cost;
@ -546,7 +546,7 @@ function getPopulationBonusTooltip(template)
var popBonus = "";
if (template.cost && template.cost.populationBonus)
popBonus = "\n" + sprintf(translate("%(label)s %(populationBonus)s"), {
label: "[font=\"serif-bold-13\"]" + translate("Population Bonus:") + "[/font]",
label: "[font=\"sans-bold-13\"]" + translate("Population Bonus:") + "[/font]",
populationBonus: template.cost.populationBonus
});
return popBonus;
@ -560,11 +560,11 @@ function getNeededResourcesTooltip(resources)
var formatted = [];
for (var resource in resources)
formatted.push(sprintf(translate("%(component)s %(cost)s"), {
component: "[font=\"serif-12\"]" + getCostComponentDisplayName(resource) + "[/font]",
component: "[font=\"sans-12\"]" + getCostComponentDisplayName(resource) + "[/font]",
cost: resources[resource]
}));
return "\n\n[font=\"serif-bold-13\"][color=\"red\"]" + translate("Insufficient resources:") + "[/color][/font]\n" + formatted.join(translate(" "));
return "\n\n[font=\"sans-bold-13\"][color=\"red\"]" + translate("Insufficient resources:") + "[/color][/font]\n" + formatted.join(translate(" "));
}
function getEntitySpeed(template)
@ -572,10 +572,10 @@ function getEntitySpeed(template)
var speed = "";
if (template.speed)
{
var label = "[font=\"serif-bold-13\"]" + translate("Speed:") + "[/font]";
var label = "[font=\"sans-bold-13\"]" + translate("Speed:") + "[/font]";
var speeds = [];
if (template.speed.walk) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.walk, movementType: "[font=\"serif-12\"]" + translate("Walk") + "[/font]"}));
if (template.speed.run) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.run, movementType: "[font=\"serif-12\"]" + translate("Run") + "[/font]"}));
if (template.speed.walk) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.walk, movementType: "[font=\"sans-12\"]" + translate("Walk") + "[/font]"}));
if (template.speed.run) speeds.push(sprintf(translate("%(speed)s %(movementType)s"), { speed: template.speed.run, movementType: "[font=\"sans-12\"]" + translate("Run") + "[/font]"}));
speed = sprintf(translate("%(label)s %(speeds)s"), { label: label, speeds: speeds.join(translate(", ")) })
}
@ -592,14 +592,14 @@ function getEntityAttack(template)
for (var type in template.attack)
{
var attack = "";
var attackLabel = "[font=\"serif-bold-13\"]" + getAttackTypeLabel(type) + "[/font]";
var attackLabel = "[font=\"sans-bold-13\"]" + getAttackTypeLabel(type) + "[/font]";
if (type == "Ranged")
{
// Show max attack range if ranged attack, also convert to tiles (4m per tile)
attack = sprintf(translate("%(attackLabel)s %(damageTypes)s, %(rangeLabel)s %(range)s"), {
attackLabel: attackLabel,
damageTypes: damageTypesToText(template.attack[type]),
rangeLabel: "[font=\"serif-bold-13\"]" + translate("Range:") + "[/font]",
rangeLabel: "[font=\"sans-bold-13\"]" + translate("Range:") + "[/font]",
range: Math.round(template.attack[type].maxRange/4)
});
}
@ -642,14 +642,14 @@ function getEntityNamesFormatted(template)
if (specific)
{
// drop caps for specific name
names += '[font="serif-bold-16"]' + specific[0] + '[/font]' +
'[font="serif-bold-12"]' + specific.slice(1).toUpperCase() + '[/font]';
names += '[font="sans-bold-16"]' + specific[0] + '[/font]' +
'[font="sans-bold-12"]' + specific.slice(1).toUpperCase() + '[/font]';
if (generic)
names += '[font="serif-bold-16"] (' + generic + ')[/font]';
names += '[font="sans-bold-16"] (' + generic + ')[/font]';
}
else if (generic)
names = '[font="serif-bold-16"]' + generic + "[/font]";
names = '[font="sans-bold-16"]' + generic + "[/font]";
else
names = "???";

View File

@ -1,5 +1,5 @@
[font="serif-bold-16"]Thank you for installing 0 A.D.!
[font="serif-16"]
[font="sans-bold-16"]Thank you for installing 0 A.D.!
[font="sans-16"]
[icon="constructionIcon"] This is an early experimental version of the game. Features are missing and it contains bugs.
[icon=iconLag] The game lags when many units are moving.

View File

@ -28,7 +28,7 @@
<object name="summaryText"
type="text"
size="50 6 100%-50 100%-20"
font="serif-bold-18"
font="sans-bold-18"
textcolor="255 255 255"
text_align="left"
text_valign="center"
@ -37,7 +37,7 @@
<object name="timeElapsed"
type="text"
size="100%-200 8 100%-10 100%-20"
font="serif-16"
font="sans-16"
textcolor="255 255 255"
text_align="center"
text_valign="center"
@ -46,7 +46,7 @@
<object name="mapName"
type="text"
size="50 20 100%-50 100%-4"
font="serif-bold-16"
font="sans-bold-16"
textcolor="255 255 255"
text_align="center"
text_valign="center"

View File

@ -122,7 +122,7 @@ def generate_font(outname, ttfNames, loadopts, size, renderstyle, dsizes):
# (This is inefficient if multiple characters have the same glyph)
glyphs = []
#for c in chars:
for c in range(0x20, 0xFFFD):
for c in range(0x20, 0xFFFE):
for i in range(len(indexList)):
idx = indexList[i](unichr(c))
if c == 0xFFFD and idx == 0: # use "?" if the missing-glyph glyph is missing
@ -227,27 +227,6 @@ fonts = (
("sans-stroke-14", Sans, 14, stroked2),
("sans-bold-stroke-14", Sans_Bold, 14, stroked3),
("sans-stroke-16", Sans, 16, stroked2),
("serif-9", Serif, 9, filled),
("serif-12", Serif, 12, filled),
("serif-13", Serif, 13, filled),
("serif-14", Serif, 14, filled),
("serif-16", Serif, 16, filled),
("serif-bold-12", Serif_Bold, 12, filled),
("serif-bold-13", Serif_Bold, 13, filled),
("serif-bold-14", Serif_Bold, 14, filled),
("serif-bold-16", Serif_Bold, 16, filled),
("serif-bold-18", Serif_Bold, 18, filled),
("serif-bold-20", Serif_Bold, 20, filled),
("serif-bold-22", Serif_Bold, 22, filled),
("serif-bold-24", Serif_Bold, 24, filled),
("serif-stroke-12", Serif, 12, stroked2),
("serif-bold-stroke-12", Serif_Bold, 12, stroked3),
("serif-stroke-13", Serif, 13, stroked2),
("serif-bold-stroke-13", Serif_Bold, 13, stroked3),
("serif-stroke-14", Serif, 14, stroked2),
("serif-bold-stroke-14", Serif_Bold, 14, stroked3),
("serif-stroke-16", Serif, 16, stroked2),
)
for (name, (fontnames, loadopts), size, style) in fonts: