Merge branch 'master' into jgrpp-beta

# Conflicts:
#	.github/workflows/commit-checker.yml
#	src/company_cmd.cpp
#	src/console_cmds.cpp
#	src/crashlog.cpp
#	src/lang/english.txt
#	src/lang/german.txt
#	src/lang/indonesian.txt
#	src/lang/japanese.txt
#	src/lang/korean.txt
#	src/lang/swedish.txt
#	src/linkgraph/linkgraphjob.cpp
#	src/linkgraph/mcf.cpp
#	src/network/core/tcp.cpp
#	src/network/core/tcp.h
#	src/network/core/tcp_game.h
#	src/network/core/udp.h
#	src/network/network.cpp
#	src/network/network_admin.cpp
#	src/network/network_admin.h
#	src/network/network_chat_gui.cpp
#	src/network/network_client.cpp
#	src/network/network_client.h
#	src/network/network_func.h
#	src/network/network_internal.h
#	src/network/network_server.cpp
#	src/network/network_server.h
#	src/newgrf.cpp
#	src/newgrf_station.cpp
#	src/order_gui.cpp
#	src/rail_cmd.cpp
#	src/saveload/saveload.cpp
#	src/settings.cpp
#	src/settings_gui.cpp
#	src/settings_internal.h
#	src/settings_type.h
#	src/station_cmd.cpp
#	src/stdafx.h
#	src/table/currency_settings.ini
#	src/table/misc_settings.ini
#	src/table/settings.h.preamble
#	src/table/settings.ini
#	src/terraform_cmd.cpp
#	src/timetable_gui.cpp
#	src/train_cmd.cpp
#	src/tree_cmd.cpp
#	src/water_cmd.cpp
pull/332/head
Jonathan G Rennison 3 years ago
commit fd605e3cf3

@ -325,34 +325,8 @@ jobs:
if: always() && github.event_name == 'pull_request'
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
steps:
- name: Get check suite ID
id: check_suite_id
uses: octokit/request-action@v2.x
with:
route: GET /repos/{repository}/actions/runs/{run_id}
repository: ${{ github.repository }}
run_id: ${{ github.run_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Get check runs
id: check_runs
uses: octokit/request-action@v2.x
with:
route: GET /repos/{repository}/check-suites/{check_suite_id}/check-runs
repository: ${{ github.repository }}
check_suite_id: ${{ fromJson(steps.check_suite_id.outputs.data).check_suite_id }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check annotations
shell: bash
run: |
echo '[
${{ toJson(fromJson(steps.check_runs.outputs.data).check_runs.*.output.title) }}, ${{ toJson(fromJson(steps.check_runs.outputs.data).check_runs.*.output.summary) }}
]' | jq '.[0] as $t | .[1] as $s | reduce range(.[0] | length) as $i ([]; . + [if $t[$i] then $t[$i] + ": " + $s[$i] else empty end]) | .[]'
exit $(echo '${{ toJson(fromJson(steps.check_runs.outputs.data).check_runs.*.output.annotations_count) }}' | jq 'add')
uses: OpenTTD/actions/annotation-check@v2

@ -750,6 +750,21 @@ jobs:
with:
arch: ${{ matrix.host }}
- name: Import code signing certificate
shell: powershell
# If this is run on a fork, there may not be a certificate set up - continue in this case
continue-on-error: true
run: |
$tempFile = [System.IO.Path]::GetTempFileName()
$bytes = [System.Convert]::FromBase64String($env:WINDOWS_CERTIFICATE_P12)
[IO.File]::WriteAllBytes($tempFile, $bytes)
$pwd = ConvertTo-SecureString $env:WINDOWS_CERTIFICATE_PASSWORD -AsPlainText -Force
Import-PfxCertificate -FilePath $tempFile -CertStoreLocation Cert:\CurrentUser\My -Password $pwd
Remove-Item $tempFile
env:
WINDOWS_CERTIFICATE_P12: ${{ secrets.WINDOWS_CERTIFICATE_P12 }}
WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}
- name: Build (with installer)
if: needs.source.outputs.is_tag == 'true'
shell: bash
@ -765,12 +780,15 @@ jobs:
-DOPTION_USE_NSIS=ON \
-DHOST_BINARY_DIR=${GITHUB_WORKSPACE}/build-host \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DWINDOWS_CERTIFICATE_COMMON_NAME="${WINDOWS_CERTIFICATE_COMMON_NAME}" \
# EOF
echo "::endgroup::"
echo "::group::Build"
cmake --build .
echo "::endgroup::"
env:
WINDOWS_CERTIFICATE_COMMON_NAME: ${{ secrets.WINDOWS_CERTIFICATE_COMMON_NAME }}
- name: Build (without installer)
if: needs.source.outputs.is_tag != 'true'
@ -786,12 +804,15 @@ jobs:
-DCMAKE_TOOLCHAIN_FILE="c:\vcpkg\scripts\buildsystems\vcpkg.cmake" \
-DHOST_BINARY_DIR=${GITHUB_WORKSPACE}/build-host \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DWINDOWS_CERTIFICATE_COMMON_NAME="${WINDOWS_CERTIFICATE_COMMON_NAME}" \
# EOF
echo "::endgroup::"
echo "::group::Build"
cmake --build .
echo "::endgroup::"
env:
WINDOWS_CERTIFICATE_COMMON_NAME: ${{ secrets.WINDOWS_CERTIFICATE_COMMON_NAME }}
- name: Create bundles
shell: bash
@ -813,6 +834,17 @@ jobs:
rm -f bundles/*.sha256
echo "::endgroup::"
- name: Sign installer
if: needs.source.outputs.is_tag == 'true'
shell: bash
# If this is run on a fork, there may not be a certificate set up - continue in this case
continue-on-error: true
run: |
cd ${GITHUB_WORKSPACE}/build/bundles
../../os/windows/sign.bat *.exe "${WINDOWS_CERTIFICATE_COMMON_NAME}"
env:
WINDOWS_CERTIFICATE_COMMON_NAME: ${{ secrets.WINDOWS_CERTIFICATE_COMMON_NAME }}
- name: Store bundles
uses: actions/upload-artifact@v2
with:

@ -311,6 +311,10 @@ target_link_libraries(openttd
Threads::Threads
)
if(HAIKU)
target_link_libraries(openttd "be" "network" "midi")
endif()
if(IPO_FOUND)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE True)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True)

@ -2186,7 +2186,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: [NewGRF] Additional text in fund industry window is NewGRF supplied and thus should have a default colour (r22631)
- Fix: Also initialise _old_vds with newgame settings; TTD savegames do not contain these settings [FS#4622] (r22626)
- Fix: Do not zero the orders of disaster vehicles when converting savegames [FS#4642] (r22625)
- Fix: When closing an AI company the local player cheated to, we need to cheat him to another company [FS#4654] (r22624, r22623)
- Fix: When closing an AI company the local player cheated to, we need to cheat them to another company [FS#4654] (r22624, r22623)
- Fix: When closing down companies their shares in other companies must be sold even if share trading is disabled at that point of time (r22622)
- Fix: When asking the user to confirm an unsafe unpausing, there is no need to execute a command if 'no' is chosen. This also prevents crashing when clicking unpause while the confirm window is shown (r22621)
- Fix: Enforce refit orders to be 'always go to depot' orders; service-only and stop-in-depot orders make no sense with refitting [FS#4651] (r22620)
@ -2908,7 +2908,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Chat message caused glitch when rejoining a network game [FS#3757] (r19629)
- Fix: Desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients) (r19620)
- Fix: Company related graphs were not updated correctly after changing the company colour [FS#3763] (r19615)
- Fix: Possible invalid read when server moves client to spectators before he finishes joining [FS#3755] (r19613)
- Fix: Possible invalid read when server moves client to spectators before they finish joining [FS#3755] (r19613)
- Fix: Crash when opening a savegame with a waypoint from around 0.4.0 [FS#3756] (r19612)
- Fix: Improve joining behaviour; kicking clients when entering passwords that was just cleared, 'connection lost' for people failing the password, access restriction circumvention [CVE-2010-0401] [FS#3754] (r19610, r19609, r19608, r19607, r19606)
- Fix: Desync debugging; false positives in the cache validity checks and saving/loading the command stream (r19619, r19617, r19602, r19601, r19600, r19596, r19593, r19592, r19589, r19587, r19586)
@ -3263,7 +3263,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Do not account for path reservation costs when entering a signal block via a 'block' signal. This way you will not get double penalties, both red signals and reservation costs, for the block signalled tracks [FS#2722] (r18535)
- Fix: [NewGRF] An industry NewGRF that defined a too small size for action0 prop 0A could cause a crash (r18527)
- Fix: Allegro does not like to work with extmidi, so warn the user about that [FS#3272] (r18520)
- Fix: When you pass a signal at danger, in a PBS controlled area, do not try to do the 'safe' thing and stop, but continue going; the user wanted the train to pass the signal at danger so (s)he has to suffer the consequences. Of course one can always stop the train manually [FS#2891] (r18515)
- Fix: When you pass a signal at danger, in a PBS controlled area, do not try to do the 'safe' thing and stop, but continue going; the user wanted the train to pass the signal at danger so they have to suffer the consequences. Of course one can always stop the train manually [FS#2891] (r18515)
- Fix: No error message was created for the first fatal NewGRF error [FS#3368] (r18506)
- Fix: Improve airport movement on several airports [FS#3169] (r18505)
- Fix: Autoreplace and autorenew always reset their cargo sub type to 0. Now find a sub cargo type with the exact same name and use that, otherwise fallback to 0. So cargo sub types can be maintained via autoreplace *if* the new vehicle supports the same cargo sub type [FS#3159] (r18499)
@ -3746,7 +3746,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Make the join/spectate command require to be connected to a network game; in SP it could lead to crashes (r15514)
- Fix: Generating a map with the original map generator with freeform edges on resulted in a crash [FS#2641] (r15511)
- Fix: Pre-0.5 OpenTTD stored new_nonstop and full_load_any in a different way, savegame conversion was not working for them (r15500)
- Fix: Crash when opening the game options when the currently loaded base graphics pack has less than 2 valid graphics files. For example when someone replaces all his/her original base graphics with custom work (but keeps the name) or renames the dos ones to windows or vice versa [FS#2630] (r15476)
- Fix: Crash when opening the game options when the currently loaded base graphics pack has less than 2 valid graphics files. For example when someone replaces all their original base graphics with custom work (but keeps the name) or renames the dos ones to windows or vice versa [FS#2630] (r15476)
0.7.0-beta1 (2009-02-16)
@ -4508,7 +4508,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Switching players (using the cheat) crashed on Big Endian machines [FS#1150] (r11023)
- Fix: The canal border determination did not take oil rigs into consideration (r11022)
- Fix: Do not display income/expenses when they do not belong to a 'valid' tile, like the money cheat/giving money [FS#1175] (r11021)
- Fix: One could not give money when (s)he had too much money or rather: when casting the amount of money to an int32 becomes negative [FS#1174] (r11020)
- Fix: One could not give money when they had too much money or rather: when casting the amount of money to an int32 becomes negative [FS#1174] (r11020)
- Fix: When determining the gender of a string, do not assume that the gender is in the front of the string when there can be case switching code at that location [FS#1104] (r10792)
- Fix: Determining whether there is a tunnel going under the lowered area is only needed in two directions instead of all four, so take the directions (one for each axis) to the nearest border (along the given axis) [FS#1058] (r10686)
- Fix: Graphical glitches when the 'link landscape toolbar' patch is turned on when opening one of the construction toolbars [FS#1076] (r10685)
@ -4569,7 +4569,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Do not unconditionally assume that a tile has a depot (r11027)
- Fix: Give a more correct error when building some things on tile 0 [FS#1173] (r11024)
- Fix: Do not display income/expenses when they do not belong to a 'valid' tile, like the money cheat and giving money [FS#1175] (r11021)
- Fix: One could not give money when (s)he had too much money [FS#1174] (r11020)
- Fix: One could not give money when they had too much money [FS#1174] (r11020)
- Fix: Disallow buying/selling shares in your own company or a bankrupt company [FS#1169] (r11018)
- Fix: Crash when quitting the game in one of the end score windows [FS#1218] (r11071)
@ -5529,7 +5529,7 @@ Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbe
- Fix: Vehicles slow down under bridge if the track is on a foundation
- Fix: You can no longer change name of waypoints whom are owned by somebody else
- Fix: Shares are now also sold when a company goes bankrupt [SF#1090313]
- Fix: It is no longer possible to crash trains of other companies by building a depot close to a station; trains do no longer enter tiles that do not belong to his owner [SF#1087701]
- Fix: It is no longer possible to crash trains of other companies by building a depot close to a station; trains do no longer enter tiles that do not belong to their owner [SF#1087701]
- Fix: Crashed trains are not reported to have too few orders any more [SF#1087403]
- Fix: Backup-order-list was not closed with an OT_NOTHING, [SF#1086375]
- Fix: Docks now have a button to display the catchment area [SF#1085255]

@ -167,7 +167,7 @@ macro(compile_flags)
message(FATAL_ERROR "No warning flags are set for this compiler yet; please consider creating a Pull Request to add support for this compiler.")
endif()
if(NOT WIN32)
if(NOT WIN32 AND NOT HAIKU)
# rdynamic is used to get useful stack traces from crash reports.
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
endif()

@ -139,6 +139,13 @@ elseif(WIN32)
endif()
set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-windows-${CPACK_SYSTEM_NAME}")
if(WINDOWS_CERTIFICATE_COMMON_NAME)
add_custom_command(TARGET openttd
POST_BUILD
COMMAND "${CMAKE_SOURCE_DIR}/os/windows/sign.bat" "$<TARGET_FILE:openttd>" "${WINDOWS_CERTIFICATE_COMMON_NAME}"
)
endif()
elseif(UNIX)
# With FHS, we can create deb/rpm/... Without it, they would be horribly broken
# and not work. The other way around is also true; with FHS they are not

@ -1,5 +1,5 @@
# LibLZMA is a recent addition to the emscripten SDK, so it is possible
# someone hasn't updated his SDK yet. Test out if the SDK supports LibLZMA.
# someone hasn't updated their SDK yet. Test out if the SDK supports LibLZMA.
include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_FLAGS "-sUSE_LIBLZMA=1")

@ -0,0 +1,18 @@
@echo off
REM Signing script
REM Arguments: sign.bat exe_to_sign certificate_subject_name
REM This is a loose wrapper around the Microsoft signtool application (included in the Windows SDK).
REM See https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe for more details.
REM Path to signtool.exe
IF NOT DEFINED SIGNTOOL_PATH (SET SIGNTOOL_PATH=signtool)
REM URL of the timestamp server
IF NOT DEFINED SIGNTOOL_TIMESTAMP_URL (SET SIGNTOOL_TIMESTAMP_URL=http://timestamp.digicert.com)
REM Sign with SHA-1 for Windows 7 and below
"%SIGNTOOL_PATH%" sign -v -n %2 -t %SIGNTOOL_TIMESTAMP_URL% %1
REM Sign with SHA-256 for Windows 8 and above
"%SIGNTOOL_PATH%" sign -v -n %2 -tr %SIGNTOOL_TIMESTAMP_URL% -fd sha256 -td sha256 -as %1

@ -514,6 +514,7 @@ add_files(
viewport_type.h
void_cmd.cpp
void_map.h
walltime_func.h
water.h
water_cmd.cpp
water_map.h

@ -1044,7 +1044,7 @@ static bool AircraftController(Aircraft *v)
if (count == 0) return false;
/* If the plane will be a few subpixels away from the destination after
* this movement loop, start nudging him towards the exact position for
* this movement loop, start nudging it towards the exact position for
* the whole loop. Otherwise, heavily depending on the speed of the plane,
* it is possible we totally overshoot the target, causing the plane to
* make a loop, and trying again, and again, and again .. */

@ -379,11 +379,14 @@ public:
const Group *g = Group::GetIfValid(this->sel_group);
if (g != nullptr) {
remove_wagon = HasBit(g->flags, GroupFlags::GF_REPLACE_WAGON_REMOVAL);
SetDParam(0, STR_GROUP_NAME);
SetDParam(1, sel_group);
} else {
const Company *c = Company::Get(_local_company);
remove_wagon = c->settings.renew_keep_length;
SetDParam(0, STR_GROUP_DEFAULT_TRAINS + this->window_number);
}
SetDParam(0, remove_wagon ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
SetDParam(2, remove_wagon ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
break;
}
@ -642,6 +645,20 @@ public:
}
}
bool OnTooltip(Point pt, int widget, TooltipCloseCondition close_cond) override
{
if (widget != WID_RV_TRAIN_WAGONREMOVE_TOGGLE) return false;
if (Group::IsValidID(this->sel_group)) {
uint64 params[1];
params[0] = STR_REPLACE_REMOVE_WAGON_HELP;
GuiShowTooltips(this, STR_REPLACE_REMOVE_WAGON_GROUP_HELP, 1, params, close_cond);
} else {
GuiShowTooltips(this, STR_REPLACE_REMOVE_WAGON_HELP, 0, nullptr, close_cond);
}
return true;
}
void OnResize() override
{
this->vscroll[0]->SetCapacityFromWidget(this, WID_RV_LEFT_MATRIX);

@ -155,6 +155,7 @@ bmno_full_transparency:
if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) {
if (src->a == 0) {
/* Complete transparency. */
} else if (src->a == 255) {
*anim = *(const uint16*) src_mv;
*dst = (src_mv->m >= PALETTE_ANIM_START) ? AdjustBrightneSSE(LookupColourInPalette(src_mv->m), src_mv->v) : *src;

@ -16,14 +16,14 @@
#include <utility>
template <typename SetPixelT>
void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel)
void Blitter::DrawLineGeneric(int x1, int y1, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel)
{
int dy;
int dx;
int stepx;
int stepy;
dy = (y2 - y) * 2;
dy = (y2 - y1) * 2;
if (dy < 0) {
dy = -dy;
stepy = -1;
@ -31,7 +31,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
stepy = 1;
}
dx = (x2 - x) * 2;
dx = (x2 - x1) * 2;
if (dx < 0) {
dx = -dx;
stepx = -1;
@ -41,7 +41,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
if (dx == 0 && dy == 0) {
/* The algorithm below cannot handle this special case; make it work at least for line width 1 */
if (x >= 0 && x < screen_width && y >= 0 && y < screen_height) set_pixel(x, y);
if (x1 >= 0 && x1 < screen_width && y1 >= 0 && y1 < screen_height) set_pixel(x1, y1);
return;
}
@ -67,14 +67,14 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
int dash_count = 0;
if (dx > dy) {
if (stepx < 0) {
std::swap(x, x2);
std::swap(y, y2);
std::swap(x1, x2);
std::swap(y1, y2);
stepy = -stepy;
}
if (x2 < 0 || x >= screen_width) return;
if (x2 < 0 || x1 >= screen_width) return;
int y_low = y;
int y_high = y;
int y_low = y1;
int y_high = y1;
int frac_low = dy - frac_diff / 2;
int frac_high = dy + frac_diff / 2;
@ -87,10 +87,10 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
y_high += stepy;
}
if (x < 0) {
dash_count = (-x) % (dash + gap);
if (x1 < 0) {
dash_count = (-x1) % (dash + gap);
auto adjust_frac = [&](int64 frac, int &y_bound) -> int {
frac -= ((int64) dy) * ((int64) x);
frac -= ((int64) dy) * ((int64) x1);
if (frac >= 0) {
int quotient = frac / dx;
int remainder = frac % dx;
@ -101,17 +101,17 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
};
frac_low = adjust_frac(frac_low, y_low);
frac_high = adjust_frac(frac_high, y_high);
x = 0;
x1 = 0;
}
x2++;
if (x2 > screen_width) {
x2 = screen_width;
}
while (x != x2) {
while (x1 != x2) {
if (dash_count < dash) {
for (int y = y_low; y != y_high; y += stepy) {
if (y >= 0 && y < screen_height) set_pixel(x, y);
if (y >= 0 && y < screen_height) set_pixel(x1, y);
}
}
if (frac_low >= 0) {
@ -122,21 +122,21 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
y_high += stepy;
frac_high -= dx;
}
x++;
x1++;
frac_low += dy;
frac_high += dy;
if (++dash_count >= dash + gap) dash_count = 0;
}
} else {
if (stepy < 0) {
std::swap(x, x2);
std::swap(y, y2);
std::swap(x1, x2);
std::swap(y1, y2);
stepx = -stepx;
}
if (y2 < 0 || y >= screen_height) return;
if (y2 < 0 || y1 >= screen_height) return;
int x_low = x;
int x_high = x;
int x_low = x1;
int x_high = x1;
int frac_low = dx - frac_diff / 2;
int frac_high = dx + frac_diff / 2;
@ -149,10 +149,10 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
x_high += stepx;
}
if (y < 0) {
dash_count = (-y) % (dash + gap);
if (y1 < 0) {
dash_count = (-y1) % (dash + gap);
auto adjust_frac = [&](int64 frac, int &x_bound) -> int {
frac -= ((int64) dx) * ((int64) y);
frac -= ((int64) dx) * ((int64) y1);
if (frac >= 0) {
int quotient = frac / dy;
int remainder = frac % dy;
@ -163,17 +163,17 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
};
frac_low = adjust_frac(frac_low, x_low);
frac_high = adjust_frac(frac_high, x_high);
y = 0;
y1 = 0;
}
y2++;
if (y2 > screen_height) {
y2 = screen_height;
}
while (y != y2) {
while (y1 != y2) {
if (dash_count < dash) {
for (int x = x_low; x != x_high; x += stepx) {
if (x >= 0 && x < screen_width) set_pixel(x, y);
if (x >= 0 && x < screen_width) set_pixel(x, y1);
}
}
if (frac_low >= 0) {
@ -184,7 +184,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
x_high += stepx;
frac_high -= dy;
}
y++;
y1++;
frac_low += dx;
frac_high += dx;
if (++dash_count >= dash + gap) dash_count = 0;

@ -91,7 +91,7 @@ public:
}
/**
* Find the requested blitter and return his class.
* Find the requested blitter and return its class.
* @param name the blitter to select.
* @post Sets the blitter so GetCurrentBlitter() returns it too.
*/

@ -61,6 +61,7 @@ enum CargoType {
CT_PLASTIC = 10,
CT_FIZZY_DRINKS = 11,
NUM_ORIGINAL_CARGO = 12,
NUM_CARGO = 64, ///< Maximal number of cargo types in a game.
CT_AUTO_REFIT = 0xFD, ///< Automatically choose cargo type when doing auto refitting.

@ -77,6 +77,28 @@ void SetupCargoForClimate(LandscapeID l)
}
}
/**
* Get the cargo ID of a default cargo, if present.
* @param l Landscape
* @param ct Default cargo type.
* @return ID number if the cargo exists, else #CT_INVALID
*/
CargoID GetDefaultCargoID(LandscapeID l, CargoType ct)
{
assert(l < lengthof(_default_climate_cargo));
if (ct == CT_INVALID) return CT_INVALID;
assert(ct < lengthof(_default_climate_cargo[0]));
CargoLabel cl = _default_climate_cargo[l][ct];
/* Bzzt: check if cl is just an index into the cargo table */
if (cl < lengthof(_default_cargo)) {
cl = _default_cargo[cl].label;
}
return GetCargoIDByLabel(cl);
}
/**
* Get the cargo ID by cargo label.
* @param cl Cargo type to get.

@ -186,6 +186,7 @@ extern CargoTypes _standard_cargo_mask;
void SetupCargoForClimate(LandscapeID l);
CargoID GetCargoIDByLabel(CargoLabel cl);
CargoID GetCargoIDByBitnum(uint8 bitnum);
CargoID GetDefaultCargoID(LandscapeID l, CargoType ct);
void InitializeSortedCargoSpecs();
extern std::vector<const CargoSpec *> _sorted_cargo_specs;

@ -407,10 +407,10 @@ struct CheatWindow : Window {
SetDParam(0, val * 1000 >> 16);
SetDParam(1, 3);
StringID str = (btn == CHT_INFLATION_COST) ? STR_CHEAT_INFLATION_COST_QUERY_CAPT : STR_CHEAT_INFLATION_INCOME_QUERY_CAPT;
char *saved = _settings_game.locale.digit_group_separator;
_settings_game.locale.digit_group_separator = const_cast<char*>("");
std::string saved = std::move(_settings_game.locale.digit_group_separator);
_settings_game.locale.digit_group_separator = "";
ShowQueryString(STR_JUST_DECIMAL, str, 12, this, CS_NUMERAL_DECIMAL, QSF_ACCEPT_UNCHANGED);
_settings_game.locale.digit_group_separator = saved;
_settings_game.locale.digit_group_separator = std::move(saved);
return;
}

@ -862,7 +862,7 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
if (client_id == _network_own_client_id) {
assert(_local_company == COMPANY_SPECTATOR);
SetLocalCompany(c->index);
if (!StrEmpty(_settings_client.network.default_company_pass)) {
if (!_settings_client.network.default_company_pass.empty()) {
NetworkChangeCompanyPassword(_local_company, _settings_client.network.default_company_pass);
}

@ -838,11 +838,11 @@ public:
case WID_SCL_PRI_COL_DROPDOWN: {
this->square = GetSpriteSize(SPR_SQUARE);
int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10;
int string_padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10;
for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) {
size->width = std::max(size->width, GetStringBoundingBox(*id).width + padding);
size->width = std::max(size->width, GetStringBoundingBox(*id).width + string_padding);
}
size->width = std::max(size->width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + padding);
size->width = std::max(size->width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + string_padding);
break;
}
}

@ -54,6 +54,7 @@
#include "linkgraph/linkgraphjob.h"
#include "base_media_base.h"
#include "debug_settings.h"
#include "walltime_func.h"
#include <time.h>
#include "safeguards.h"
@ -793,14 +794,14 @@ DEF_CONSOLE_CMD(ConClientNickChange)
return true;
}
char *client_name = argv[2];
std::string client_name(argv[2]);
StrTrimInPlace(client_name);
if (!NetworkIsValidClientName(client_name)) {
IConsoleError("Cannot give a client an empty name");
return true;
}
if (!NetworkServerChangeClientName(client_id, client_name)) {
if (!NetworkServerChangeClientName(client_id, client_name.c_str())) {
IConsoleError("Cannot give a client a duplicate name");
}
@ -969,13 +970,13 @@ DEF_CONSOLE_CMD(ConNetworkReconnect)
break;
}
if (StrEmpty(_settings_client.network.last_joined)) {
if (_settings_client.network.last_joined.empty()) {
IConsolePrint(CC_DEFAULT, "No server for reconnecting.");
return true;
}
/* Don't resolve the address first, just print it directly as it comes from the config file. */
IConsolePrintF(CC_DEFAULT, "Reconnecting to %s ...", _settings_client.network.last_joined);
IConsolePrintF(CC_DEFAULT, "Reconnecting to %s ...", _settings_client.network.last_joined.c_str());
return NetworkClientConnectGame(_settings_client.network.last_joined, playas);
}
@ -1437,10 +1438,9 @@ DEF_CONSOLE_CMD(ConGetSysDate)
return true;
}
time_t t;
time(&t);
auto timeinfo = localtime(&t);
IConsolePrintF(CC_DEFAULT, "System Date: %04d-%02d-%02d %02d:%02d:%02d", timeinfo->tm_year + 1900, timeinfo->tm_mon + 1, timeinfo->tm_mday, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
char buffer[lengthof("2000-01-02 03:04:05")];
LocalTime::Format(buffer, lastof(buffer), "%Y-%m-%d %H:%M:%S");
IConsolePrintF(CC_DEFAULT, "System Date: %s", buffer);
return true;
}
@ -1738,7 +1738,7 @@ DEF_CONSOLE_CMD(ConCompanies)
if (c->is_ai) {
password_state = "AI";
} else if (_network_server) {
password_state = StrEmpty(_network_company_states[c->index].password) ? "unprotected" : "protected";
password_state = _network_company_states[c->index].password.empty() ? "unprotected" : "protected";
}
char colour[512];
@ -1840,7 +1840,7 @@ DEF_CONSOLE_CMD(ConCompanyPassword)
}
CompanyID company_id;
const char *password;
std::string password;
const char *errormsg;
if (argc == 2) {
@ -1862,10 +1862,10 @@ DEF_CONSOLE_CMD(ConCompanyPassword)
password = NetworkChangeCompanyPassword(company_id, password);
if (StrEmpty(password)) {
if (password.empty()) {
IConsolePrintF(CC_WARNING, "Company password cleared");
} else {
IConsolePrintF(CC_WARNING, "Company password changed to: %s", password);
IConsolePrintF(CC_WARNING, "Company password changed to: %s", password.c_str());
}
return true;
@ -1918,7 +1918,7 @@ DEF_CONSOLE_CMD(ConCompanyPasswordHashes)
char colour[512];
GetString(colour, STR_COLOUR_DARK_BLUE + _company_colours[c->index], lastof(colour));
IConsolePrintF(CC_INFO, "#:%d(%s) Company Name: '%s' Hash: '%s'",
c->index + 1, colour, company_name, _network_company_states[c->index].password);
c->index + 1, colour, company_name, _network_company_states[c->index].password.c_str());
}
return true;

@ -29,7 +29,7 @@ enum ConsoleHookResult {
* effect they produce are carried out. The arguments to the commands
* are given to them, each input word separated by a double-quote (") is an argument
* If you want to handle multiple words as one, enclose them in double-quotes
* eg. 'say "hello sexy boy"'
* eg. 'say "hello everybody"'
*/
typedef bool IConsoleCmdProc(byte argc, char *argv[]);
typedef ConsoleHookResult IConsoleHook(bool echo);

@ -274,7 +274,7 @@ class Kdtree {
}
template <typename Outputter>
void FindContainedRecursive(CoordT p1[2], CoordT p2[2], size_t node_idx, int level, Outputter outputter) const
void FindContainedRecursive(CoordT p1[2], CoordT p2[2], size_t node_idx, int level, const Outputter &outputter) const
{
/* Dimension index of current level */
int dim = level % 2;
@ -458,7 +458,7 @@ public:
* @param outputter Callback used to return values from the search.
*/
template <typename Outputter>
void FindContained(CoordT x1, CoordT y1, CoordT x2, CoordT y2, Outputter outputter) const
void FindContained(CoordT x1, CoordT y1, CoordT x2, CoordT y2, const Outputter &outputter) const
{
assert(x1 < x2);
assert(y1 < y2);

@ -36,8 +36,7 @@
#include "game/game_info.hpp"
#include "company_base.h"
#include "company_func.h"
#include <time.h>
#include "walltime_func.h"
#ifdef WITH_ALLEGRO
# include <allegro.h>
@ -420,7 +419,6 @@ char *CrashLog::LogCommandLog(char *buffer, const char *last) const
*/
char *CrashLog::FillCrashLog(char *buffer, const char *last) const
{
time_t cur_time = time(nullptr);
buffer += seprintf(buffer, last, "*** OpenTTD Crash Report ***\n\n");
if (GamelogTestEmergency()) {
@ -430,7 +428,7 @@ char *CrashLog::FillCrashLog(char *buffer, const char *last) const
buffer += seprintf(buffer, last, "-=-=- As you loaded a savegame for which you do not have the required NewGRFs no crash information would ordinarily be generated. -=-=-\n\n");
}
buffer += seprintf(buffer, last, "Crash at: %s", asctime(gmtime(&cur_time)));
buffer += UTCTime::Format(buffer, last, "Crash at: %Y-%m-%d %H:%M:%S (UTC)\n");
buffer += seprintf(buffer, last, "In game date: %i-%02i-%02i (%i, %i) (DL: %u)\n", _cur_date_ymd.year, _cur_date_ymd.month + 1, _cur_date_ymd.day, _date_fract, _tick_skip_counter, _settings_game.economy.day_length_factor);
if (_game_load_time != 0) {

@ -70,11 +70,11 @@ enum Currencies {
/** Specification of a currency. */
struct CurrencySpec {
uint16 rate;
char separator[8];
Year to_euro; ///< %Year of switching to the Euro. May also be #CF_NOEURO or #CF_ISEURO.
char prefix[16];
char suffix[16];
uint16 rate; ///< The conversion rate compared to the base currency.
std::string separator; ///< The thousands separator for this currency.
Year to_euro; ///< %Year of switching to the Euro. May also be #CF_NOEURO or #CF_ISEURO.
std::string prefix; ///< Prefix to apply when formatting money in this currency.
std::string suffix; ///< Suffix to apply when formatting money in this currency.
/**
* The currency symbol is represented by two possible values, prefix and suffix
* Usage of one or the other is determined by #symbol_pos.
@ -89,11 +89,9 @@ struct CurrencySpec {
CurrencySpec() = default;
CurrencySpec(uint16 rate, const char *separator, Year to_euro, const char *prefix, const char *suffix, byte symbol_pos, StringID name) : rate(rate), to_euro(to_euro), symbol_pos(symbol_pos), name(name)
CurrencySpec(uint16 rate, const char *separator, Year to_euro, const char *prefix, const char *suffix, byte symbol_pos, StringID name) :
rate(rate), separator(separator), to_euro(to_euro), prefix(prefix), suffix(suffix), symbol_pos(symbol_pos), name(name)
{
strecpy(this->separator, separator, lastof(this->separator));
strecpy(this->prefix, prefix, lastof(this->prefix));
strecpy(this->suffix, suffix, lastof(this->suffix));
}
};

@ -26,7 +26,7 @@
#include "os/windows/win32.h"
#endif
#include <time.h>
#include "walltime_func.h"
#include "network/network_admin.h"
SOCKET _debug_socket = INVALID_SOCKET;
@ -329,8 +329,7 @@ const char *GetLogPrefix()
{
static char _log_prefix[24];
if (_settings_client.gui.show_date_in_logs) {
time_t cur_time = time(nullptr);
strftime(_log_prefix, sizeof(_log_prefix), "[%Y-%m-%d %H:%M:%S] ", localtime(&cur_time));
LocalTime::Format(_log_prefix, lastof(_log_prefix), "[%Y-%m-%d %H:%M:%S] ");
} else {
*_log_prefix = '\0';
}

@ -398,11 +398,11 @@ struct DepotWindow : Window {
uint16 rows_in_display = wid->current_y / wid->resize_y;
uint16 num = this->vscroll->GetPosition() * this->num_columns;
uint num = this->vscroll->GetPosition() * this->num_columns;
uint maxval = static_cast<uint>(std::min<size_t>(this->vehicle_list.size(), num + (rows_in_display * this->num_columns)));
int y;
for (y = r.top + 1; num < maxval; y += this->resize.step_height) { // Draw the rows
for (byte i = 0; i < this->num_columns && num < maxval; i++, num++) {
for (uint i = 0; i < this->num_columns && num < maxval; i++, num++) {
/* Draw all vehicles in the current row */
const Vehicle *v = this->vehicle_list[num];
if (this->num_columns == 1) {

@ -320,7 +320,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
for (const Company *c : Company::Iterate()) {
for (i = 0; i < 4; i++) {
if (c->share_owners[i] == old_owner) {
/* Sell his shares */
/* Sell its shares */
CommandCost res = DoCommand(0, c->index, 0, DC_EXEC | DC_BANKRUPT, CMD_SELL_SHARE_IN_COMPANY);
/* Because we are in a DoCommand, we can't just execute another one and
* expect the money to be removed. We need to do it ourself! */
@ -351,7 +351,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
}
/* Temporarily increase the company's money, to be sure that
* removing his/her property doesn't fail because of lack of money.
* removing their property doesn't fail because of lack of money.
* Not too drastically though, because it could overflow */
if (new_owner == INVALID_OWNER) {
Company::Get(old_owner)->money = UINT64_MAX >> 2; // jackpot ;p

@ -45,6 +45,9 @@ public:
~ErrorMessageData();
ErrorMessageData(StringID summary_msg, StringID detailed_msg, uint duration = 0, int x = 0, int y = 0, const GRFFile *textref_stack_grffile = nullptr, uint textref_stack_size = 0, const uint32 *textref_stack = nullptr, StringID extra_msg = INVALID_STRING_ID);
/* Remove the copy assignment, as the default implementation will not do the right thing. */
ErrorMessageData &operator=(ErrorMessageData &rhs) = delete;
/** Check whether error window shall display a company manager face */
bool HasFace() const { return face != INVALID_COMPANY; }

@ -53,7 +53,7 @@ void LoadCheckData::Clear()
this->map_size_x = this->map_size_y = 256; // Default for old savegames which do not store mapsize.
this->current_date = 0;
memset(&this->settings, 0, sizeof(this->settings));
this->settings = {};
for (auto &pair : this->companies) {
delete pair.second;

@ -489,7 +489,7 @@ static void LoadFreeTypeFont(FontSize fs)
case FS_MONO: settings = &_freetype.mono; break;
}
if (StrEmpty(settings->font)) return;
if (settings->font.empty()) return;
if (_library == nullptr) {
if (FT_Init_FreeType(&_library) != FT_Err_Ok) {
@ -500,19 +500,20 @@ static void LoadFreeTypeFont(FontSize fs)
DEBUG(freetype, 2, "Initialized");
}
const char *font_name = settings->font.c_str();
FT_Face face = nullptr;
/* If font is an absolute path to a ttf, try loading that first. */
FT_Error error = FT_New_Face(_library, settings->font, 0, &face);
FT_Error error = FT_New_Face(_library, font_name, 0, &face);
#if defined(WITH_COCOA)
extern void MacOSRegisterExternalFont(const char *file_path);
if (error == FT_Err_Ok) MacOSRegisterExternalFont(settings->font);
if (error == FT_Err_Ok) MacOSRegisterExternalFont(font_name);
#endif
if (error != FT_Err_Ok) {
/* Check if font is a relative filename in one of our search-paths. */
std::string full_font = FioFindFullPath(BASE_DIR, settings->font);
std::string full_font = FioFindFullPath(BASE_DIR, font_name);
if (!full_font.empty()) {
error = FT_New_Face(_library, full_font.c_str(), 0, &face);
#if defined(WITH_COCOA)
@ -522,10 +523,10 @@ static void LoadFreeTypeFont(FontSize fs)
}
/* Try loading based on font face name (OS-wide fonts). */
if (error != FT_Err_Ok) error = GetFontByFaceName(settings->font, &face);
if (error != FT_Err_Ok) error = GetFontByFaceName(font_name, &face);
if (error == FT_Err_Ok) {
DEBUG(freetype, 2, "Requested '%s', using '%s %s'", settings->font, face->family_name, face->style_name);
DEBUG(freetype, 2, "Requested '%s', using '%s %s'", font_name, face->family_name, face->style_name);
/* Attempt to select the unicode character map */
error = FT_Select_Charmap(face, ft_encoding_unicode);
@ -555,7 +556,7 @@ static void LoadFreeTypeFont(FontSize fs)
FT_Done_Face(face);
static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" };
ShowInfoF("Unable to use '%s' for %s font, FreeType reported error 0x%X, using sprite font instead", settings->font, SIZE_TO_NAME[fs], error);
ShowInfoF("Unable to use '%s' for %s font, FreeType reported error 0x%X, using sprite font instead", font_name, SIZE_TO_NAME[fs], error);
return;
found_face:

@ -218,9 +218,9 @@ static inline bool GetDrawGlyphShadow(FontSize size)
/** Settings for a single freetype font. */
struct FreeTypeSubSetting {
char font[MAX_PATH]; ///< The name of the font, or path to the font.
uint size; ///< The (requested) size of the font.
bool aa; ///< Whether to do anti aliasing or not.
std::string font; ///< The name of the font, or path to the font.
uint size; ///< The (requested) size of the font.
bool aa; ///< Whether to do anti aliasing or not.
const void *os_handle = nullptr; ///< Optional native OS font info. Only valid during font search.
};

@ -1471,7 +1471,7 @@ struct PerformanceRatingDetailWindow : Window {
int64 needed = _score_info[score_type].needed;
int score = _score_info[score_type].score;
/* SCORE_TOTAL has his own rules ;) */
/* SCORE_TOTAL has its own rules ;) */
if (score_type == SCORE_TOTAL) {
for (ScoreID i = SCORE_BEGIN; i < SCORE_END; i++) score += _score_info[i].score;
needed = SCORE_MAX;

@ -480,7 +480,7 @@ bool GetHeightmapDimensions(DetailedFileType dft, const char *filename, uint *x,
}
/**
* Load a heightmap from file and change the map in his current dimensions
* Load a heightmap from file and change the map in its current dimensions
* to a landscape representing the heightmap.
* It converts pixels to height. The brighter, the higher.
* @param dft Type of image file.

@ -357,7 +357,7 @@ class BuildIndustryWindow : public Window {
int numcargo = 0;
int firstcargo = -1;
for (byte j = 0; j < cargolistlen; j++) {
for (int j = 0; j < cargolistlen; j++) {
if (cargolist[j] == CT_INVALID) continue;
numcargo++;
if (firstcargo < 0) {
@ -419,7 +419,7 @@ public:
switch (widget) {
case WID_DPI_MATRIX_WIDGET: {
Dimension d = GetStringBoundingBox(STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES);
for (byte i = 0; i < this->count; i++) {
for (uint16 i = 0; i < this->count; i++) {
if (this->index[i] == INVALID_INDUSTRYTYPE) continue;
d = maxdim(d, GetStringBoundingBox(GetIndustrySpec(this->index[i])->name));
}
@ -438,7 +438,7 @@ public:
uint extra_lines_newgrf = 0;
uint max_minwidth = FONT_HEIGHT_NORMAL * MAX_MINWIDTH_LINEHEIGHTS;
Dimension d = {0, 0};
for (byte i = 0; i < this->count; i++) {
for (uint16 i = 0; i < this->count; i++) {
if (this->index[i] == INVALID_INDUSTRYTYPE) continue;
const IndustrySpec *indsp = GetIndustrySpec(this->index[i]);
@ -528,7 +528,7 @@ public:
int icon_bottom = icon_top + this->legend.height;
int y = r.top;
for (byte i = 0; i < this->vscroll->GetCapacity() && i + this->vscroll->GetPosition() < this->count; i++) {
for (uint16 i = 0; i < this->vscroll->GetCapacity() && i + this->vscroll->GetPosition() < this->count; i++) {
bool selected = this->selected_index == i + this->vscroll->GetPosition();
if (this->index[i + this->vscroll->GetPosition()] == INVALID_INDUSTRYTYPE) {
@ -2707,14 +2707,14 @@ struct IndustryCargoesWindow : public Window {
/**
* Compute what and where to display for industry type \a it.
* @param it Industry type to display.
* @param displayed_it Industry type to display.
*/
void ComputeIndustryDisplay(IndustryType it)
void ComputeIndustryDisplay(IndustryType displayed_it)
{
this->GetWidget<NWidgetCore>(WID_IC_CAPTION)->widget_data = STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION;
this->ind_cargo = it;
this->ind_cargo = displayed_it;
_displayed_industries.reset();
_displayed_industries.set(it);
_displayed_industries.set(displayed_it);
this->fields.clear();
CargoesRow &row = this->fields.emplace_back();
@ -2724,7 +2724,7 @@ struct IndustryCargoesWindow : public Window {
row.columns[3].MakeEmpty(CFT_SMALL_EMPTY);
row.columns[4].MakeHeader(STR_INDUSTRY_CARGOES_CUSTOMERS);
const IndustrySpec *central_sp = GetIndustrySpec(it);
const IndustrySpec *central_sp = GetIndustrySpec(displayed_it);
bool houses_supply = HousesCanSupply(central_sp->accepts_cargo, lengthof(central_sp->accepts_cargo));
bool houses_accept = HousesCanAccept(central_sp->produced_cargo, lengthof(central_sp->produced_cargo));
/* Make a field consisting of two cargo columns. */
@ -2741,7 +2741,7 @@ struct IndustryCargoesWindow : public Window {
}
/* Add central industry. */
int central_row = 1 + num_indrows / 2;
this->fields[central_row].columns[2].MakeIndustry(it);
this->fields[central_row].columns[2].MakeIndustry(displayed_it);
this->fields[central_row].ConnectIndustryProduced(2);
this->fields[central_row].ConnectIndustryAccepted(2);

@ -38,13 +38,9 @@ IniItem::~IniItem()
* Replace the current value with another value.
* @param value the value to replace with.
*/
void IniItem::SetValue(const char *value)
void IniItem::SetValue(const std::string_view value)
{
if (value == nullptr) {
this->value.reset();
} else {
this->value.emplace(value);
}
this->value.emplace(value);
}
/**

@ -33,7 +33,7 @@ struct IniItem {
IniItem(struct IniGroup *parent, const std::string &name);
~IniItem();
void SetValue(const char *value);
void SetValue(const std::string_view value);
};
/** A group within an ini file. */

@ -3629,7 +3629,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev Voertuie
STR_REPLACE_ROAD_VEHICLES :Padvoertuie
STR_REPLACE_TRAM_VEHICLES :Tremweg voertuie
STR_REPLACE_REMOVE_WAGON :{BLACK}Wa verwydering: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Maak autovervanging die lengte van 'n trein dieselfde hou deur verwydering waens (deur voor te begin), indien die enjin vervanging die trein langer sal maak
# Vehicle view

@ -3155,7 +3155,6 @@ STR_REPLACE_MAGLEV_VEHICLES :مركبات م
STR_REPLACE_TRAM_VEHICLES :مركبات الترام
STR_REPLACE_REMOVE_WAGON :{BLACK} إزالة العربات: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK} المحافظة على طول القطار بازالة عربات ابتداء من المقدمة عند التبديل - عندما يكون التبدل ينتج قطارا اطول.
# Vehicle view

@ -3384,7 +3384,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Tren magnetikoa
STR_REPLACE_TRAM_VEHICLES :Tranbia ibilgailuak
STR_REPLACE_REMOVE_WAGON :{BLACK}Bagoiak ezabatu: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ordezkatze automatikoari agindu trenaren luzera errespetatzea, bagoiak ezabatuz luzera handitzen badute (trenaren hasierako bagoietik hasita)
# Vehicle view

@ -3957,7 +3957,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Маґнітн
STR_REPLACE_ROAD_VEHICLES :Аўтатранспарт
STR_REPLACE_TRAM_VEHICLES :Трамваі
STR_REPLACE_REMOVE_WAGON :{BLACK}Выдаленьне ваґонаў: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Дазволіць пры аўтазамене захоўваць даўжыню цягнікоў шляхам выдаленьня ваґонаў (пачынаючы з галавы цягніка), калі пры аўтазамене лякаматыва павялічыцца даўжыня цягніка.
# Vehicle view

@ -3823,7 +3823,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglevs
STR_REPLACE_ROAD_VEHICLES :Veículos terrestres
STR_REPLACE_TRAM_VEHICLES :Bondes
STR_REPLACE_REMOVE_WAGON :{BLACK}Remoção de vagões: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz autosubstituição manter o tamanho do trem removendo vagões (começando pela frente), se ao substituir a locomotiva o trem ficar maior
# Vehicle view

@ -3455,7 +3455,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Монорел
STR_REPLACE_MAGLEV_VEHICLES :Маглев влакове
STR_REPLACE_REMOVE_WAGON :{BLACK}Премахване на вагон: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Автоматичната замяна ще запази дължината на влака като премахне вагони (започвайки от предните), ако замяната довежда до по-дълъг влак.
# Vehicle view

@ -3823,7 +3823,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Trens maglev
STR_REPLACE_ROAD_VEHICLES :Automòbils
STR_REPLACE_TRAM_VEHICLES :Tramvies
STR_REPLACE_REMOVE_WAGON :{BLACK}Treure vagons: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fer que la substitució automàtica mantingui la llargada del tren eliminant vagons (començant pel front), si substituint la màquina el tren es fa més llarg
# Vehicle view

@ -3760,7 +3760,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Željeznička v
STR_REPLACE_ROAD_VEHICLES :Cestovna vozila
STR_REPLACE_TRAM_VEHICLES :Tramvaji
STR_REPLACE_REMOVE_WAGON :{BLACK}Uklanjanje vagona: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automatska zamjena zadržava istu dužinu vlaka tako da ukloni suvišne vagone (počevši od naprijed), ako bi zamjena lokomotive učinila vlak dužim
# Vehicle view

@ -4398,7 +4398,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Lokomotivy Magl
STR_REPLACE_ROAD_VEHICLES :Silniční vozidla
STR_REPLACE_TRAM_VEHICLES :Tramvaje
STR_REPLACE_REMOVE_WAGON :{BLACK}Odebírání vagonů: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Funkce automatického vylepšování vlaků může udržovat stejnou délku vlaku odstraňovaním vagonů (od začátku vlaku), pokud by změna mašiny vlak prodloužila
# Vehicle view

@ -3672,7 +3672,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magnetskinnetog
STR_REPLACE_ROAD_VEHICLES :Vejkøretøjer
STR_REPLACE_TRAM_VEHICLES :Sporvogne
STR_REPLACE_REMOVE_WAGON :{BLACK}Fjern vogn: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Få autoudskift til at bevare længden af tog ved at fjerne vogne (startende fra fronten), hvis autoudskiftningen gør toget længere.
# Vehicle view

@ -3822,7 +3822,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magneetzweefspo
STR_REPLACE_ROAD_VEHICLES :Wegvoertuigen
STR_REPLACE_TRAM_VEHICLES :Trams
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagons verwijderen: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}De te vervangen trein behoudt zijn lengte door wagons weg te halen (startend aan de voorkant), als het vervangen de trein langer zou maken
# Vehicle view

@ -4835,8 +4835,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles
STR_REPLACE_ROAD_VEHICLES :Road Vehicles
STR_REPLACE_TRAM_VEHICLES :Tramway Vehicles
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagon removal: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagon removal ({STRING1}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing wagons (starting at the front), if replacing the engine would make the train longer
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+Click to also apply to sub-groups
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3461,7 +3461,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail Vehicl
STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagon removal: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing wagons (starting at the front), if replacing the engine would make the train longer
# Vehicle view

@ -3846,7 +3846,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles
STR_REPLACE_ROAD_VEHICLES :Road Vehicles
STR_REPLACE_TRAM_VEHICLES :Streetcars
STR_REPLACE_REMOVE_WAGON :{BLACK}Car removal: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing cars (starting at the front), if replacing the engine would make the train longer
# Vehicle view

@ -2924,7 +2924,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Unurelaj Veturi
STR_REPLACE_MAGLEV_VEHICLES :Maglevaj Veturiloj
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagonforigo: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ĉe aŭtomata anstataŭigo tenu saman longecon de la trajno per forigo de vagonoj (defronte), se per nova maŝino la trajno plilongiĝas
# Vehicle view

@ -2334,7 +2334,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} li
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} liitus vaatlejatega
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} alustas uue ettevõtte (nr {2:NUM})
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} lahkus mängust ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} uus nimi on {STRING}
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} on muutnud oma nimeks {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} saatis {2:CURRENCY_LONG} ettevõttele {1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Server sulges sessiooni
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Server restardib...{}Palun oota...
@ -3880,7 +3880,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magnethõljukve
STR_REPLACE_ROAD_VEHICLES :Maanteesõidukid
STR_REPLACE_TRAM_VEHICLES :Trammid
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagunite kõrvaldamine: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automaatne asendamine hoiab rongi pikkuse samana, vajadusel kõrvaldab vaguneid (alates esiotsast), kui muidu rongikoosseis suureneks
# Vehicle view

@ -3107,7 +3107,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Einsporaði jar
STR_REPLACE_MAGLEV_VEHICLES :Maglev flutningstól
STR_REPLACE_REMOVE_WAGON :{BLACK}Vogn burturrudding: {ORANGE}{STRING}
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3569,7 +3569,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Luo ryhm
STR_GROUP_DELETE_TOOLTIP :{BLACK}Poista valittu ryhmä
STR_GROUP_RENAME_TOOLTIP :{BLACK}Nimeä valittu ryhmä
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Muuta valitun ryhmän väritystä
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Poista ryhmä automaattisesti korvattavien joukosta
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Napsauta suojataksesi tämä ryhmä yleiseltä automaattikorvaukselta. Ctrl+napsautus suojaa myös aliryhmät.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Poista ryhmä
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Haluatko varmasti poistaa tämän ryhmän ja sen alaryhmät?
@ -3822,8 +3822,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev-junat
STR_REPLACE_ROAD_VEHICLES :Ajoneuvot
STR_REPLACE_TRAM_VEHICLES :Raitiovaunut
STR_REPLACE_REMOVE_WAGON :{BLACK}Vaunun poisto: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Vaunun poisto ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automaattikorvauksessa junapituus pidetään samana poistamalla vaunuja (edestä) jos veturi pidentäisi junaa
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+napsautus kohdistaaksesi myös aliryhmiin.
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -2225,6 +2225,7 @@ STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}Votre or
STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Votre ordinateur a mis trop de temps pour télécharger la carte
STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Votre ordinateur a mis trop de temps pour rejoindre le serveur
STR_NETWORK_ERROR_INVALID_CLIENT_NAME :{WHITE}Votre nom n'est pas valide
STR_NETWORK_ERROR_SERVER_TOO_OLD :{WHITE}Le serveur interrogé est trop ancien pour ce client
############ Leave those lines in this order!!
STR_NETWORK_ERROR_CLIENT_GENERAL :erreur générale
@ -2838,7 +2839,7 @@ STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COM
STR_FRAMERATE_GAMELOOP :{BLACK}Total de la boucle de jeu{NBSP}:
STR_FRAMERATE_GL_ECONOMY :{BLACK} Traitement des marchandises{NBSP}:
STR_FRAMERATE_GL_TRAINS :{BLACK} Ticks des trains{NBSP}:
STR_FRAMERATE_GL_ROADVEHS :{WHITE} Ticks des véhicules routiers{NBSP}:
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Ticks des véhicules routiers{NBSP}:
STR_FRAMERATE_GL_SHIPS :{BLACK} Ticks des navires{NBSP}:
STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Ticks des aéroplanes{NBSP}:
STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Ticks du monde{NBSP}:
@ -3569,7 +3570,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Créer u
STR_GROUP_DELETE_TOOLTIP :{BLACK}Supprimer le groupe sélectionné
STR_GROUP_RENAME_TOOLTIP :{BLACK}Renommer le groupe sélectionné
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Changer la couleur du groupe sélectionné
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Cliquer pour protéger ce groupe contre l'auto-remplacement global
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Cliquer pour protéger ce groupe contre l'auto-remplacement global. Ctrl-clic pour protéger aussi les sous-groupes.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Supprimer un groupe
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Êtes-vous sûr de vouloir supprimer ce groupe et ses descendants{NBSP}?
@ -3822,8 +3823,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Véhicules Magl
STR_REPLACE_ROAD_VEHICLES :Véhicules routiers
STR_REPLACE_TRAM_VEHICLES :Tramways
STR_REPLACE_REMOVE_WAGON :{BLACK}Retrait de wagon{NBSP}: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Retrait de wagon ({STRING}){NBSP}: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Si l'autoremplacement de la locomotive provoque un accroissement de la longueur du train, alors sa longueur initiale sera retrouvée en retirant automatiquement des wagons (d'abord par la tête)
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl-clic pour appliquer aussi aux sous-groupes
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3773,7 +3773,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Carbadan aona-r
STR_REPLACE_MAGLEV_VEHICLES :Carbadan magnaiteach
STR_REPLACE_REMOVE_WAGON :{BLACK}A' toirt air falbh carbad: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Glèidh faide aig trèan nuair a thèid fhèin-leasachadh le toirt air falbh nan carbadan (bho thoiseach na trèan a-mach) ma dh'fhàsas an trèan nas fhaide le einnsean ùr
# Vehicle view

@ -3652,7 +3652,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Vehículos magl
STR_REPLACE_ROAD_VEHICLES :Vehículos de estrada
STR_REPLACE_TRAM_VEHICLES :Tranvías
STR_REPLACE_REMOVE_WAGON :{BLACK}Eliminar os vagóns: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Facer que a autosubstitución manteña a lonxitude do tren quitando vagóns (empezando pola cabeza), se ao substituír a locomotora o tren se fixera máis longo.
# Vehicle view

@ -4408,7 +4408,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Ausgewä
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Farbschema der ausgewählten Gruppe ändern
STR_GROUP_EXPAND_ALL :{BLACK}Alles ausklappen
STR_GROUP_COLLAPSE_ALL :{BLACK}Alles einklappen
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Diese Gruppe von der automatischen Fahrzeugersetzung ausschließen
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klicken, um diese Gruppe vor der globalen Autoersetzung zu schützen. Strg+Klick, um außerdem Untergruppen zu schützen
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Gruppe löschen
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Sicher, dass diese Gruppe inklusive aller Untergruppen gelöscht werden soll?
@ -4681,8 +4681,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Magnetschwebeba
STR_REPLACE_ROAD_VEHICLES :Straßenfahrzeuge
STR_REPLACE_TRAM_VEHICLES :Straßenbahnfahrzeuge
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon-Entfernung: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon-Entfernung ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ursprüngliche Länge des Zugs beibehalten, indem (vorne beginnend) Waggons entfernt werden, falls das Ersetzen der Lokomotive den Zug verlängern würde
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Strg+Klick, um auch an Untergruppen anzuwenden
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3782,7 +3782,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Οχήματα
STR_REPLACE_TRAM_VEHICLES :Οχήματα τροχιοδρόμου
STR_REPLACE_REMOVE_WAGON :{BLACK}Αφαίρεση βαγονιού: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Υποχρεώνει την αυτόματη αντικατάσταση να διατηρεί σταθερό το μήκος του τρένου αφαιρώντας βαγόνια (ξεκινώντας από μπροστά), όταν η αντικατάσταση της μηχανής κάνει το τρένο μεγαλύτερο
# Vehicle view

@ -3551,7 +3551,6 @@ STR_REPLACE_MONORAIL_VEHICLES :רכבות חד
STR_REPLACE_MAGLEV_VEHICLES :רכבות פס-מגנטי
STR_REPLACE_REMOVE_WAGON :{ORANGE}{STRING}{BLACK} : הסרת קרונות
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}שמור על האורך המקורי של הרכבת בעת שימוש בהחלפה אוטומטית, במידה והקטר מאריך את הרכבת הסר קרונות מתחילת הרכבת
# Vehicle view

@ -3886,7 +3886,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev Járműv
STR_REPLACE_ROAD_VEHICLES :Közúti járművek
STR_REPLACE_TRAM_VEHICLES :Villamosok
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon törlés: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Az automatikus cserénél a szerelvény hosszának a megtartása vagonok eltávolításával (mozdony utántól kezdve), ha a csere után a szerelvény hosszabb lenne
# Vehicle view

@ -3266,7 +3266,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Einteinungsvagn
STR_REPLACE_MAGLEV_VEHICLES :Segulsvifvagnar
STR_REPLACE_REMOVE_WAGON :{BLACK}Selja lestarvagna: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Heldur lengd lestar með því að fjarlægja vagna (framan frá), ef útskipting dráttarvagna myndi lengja hana
# Vehicle view

@ -55,7 +55,7 @@ STR_CARGO_PLURAL_BUBBLES :Gelembung
STR_CARGO_PLURAL_TOFFEE :Gula-gula
STR_CARGO_PLURAL_BATTERIES :Baterai
STR_CARGO_PLURAL_PLASTIC :Plastik
STR_CARGO_PLURAL_FIZZY_DRINKS :Minuman Berdesis
STR_CARGO_PLURAL_FIZZY_DRINKS :Minuman Ringan
# Singular cargo name
STR_CARGO_SINGULAR_NOTHING :
@ -89,7 +89,7 @@ STR_CARGO_SINGULAR_BUBBLE :Gelembung
STR_CARGO_SINGULAR_TOFFEE :Gula-gula
STR_CARGO_SINGULAR_BATTERY :Baterai
STR_CARGO_SINGULAR_PLASTIC :Plastik
STR_CARGO_SINGULAR_FIZZY_DRINK :Minuman Berdesis
STR_CARGO_SINGULAR_FIZZY_DRINK :Minuman Ringan
# Quantity of cargo
STR_QUANTITY_NOTHING :
@ -123,7 +123,7 @@ STR_QUANTITY_BUBBLES :{COMMA} gelembu
STR_QUANTITY_TOFFEE :{WEIGHT_LONG} gula-gula
STR_QUANTITY_BATTERIES :{COMMA} baterai
STR_QUANTITY_PLASTIC :{VOLUME_LONG} plastik
STR_QUANTITY_FIZZY_DRINKS :{COMMA} minuman berdesis
STR_QUANTITY_FIZZY_DRINKS :{COMMA} minuman ringan
STR_QUANTITY_N_A :N/A
# Two letter abbreviation of cargo name
@ -158,7 +158,7 @@ STR_ABBREV_BUBBLES :{TINY_FONT}GL
STR_ABBREV_TOFFEE :{TINY_FONT}GG
STR_ABBREV_BATTERIES :{TINY_FONT}BA
STR_ABBREV_PLASTIC :{TINY_FONT}PL
STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MB
STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}MR
STR_ABBREV_NONE :{TINY_FONT}TANPA
STR_ABBREV_ALL :{TINY_FONT}SMA
@ -180,7 +180,7 @@ STR_COLOUR_LIGHT_BLUE :Biru terang
STR_COLOUR_GREEN :Hijau
STR_COLOUR_DARK_GREEN :Hijau tua
STR_COLOUR_BLUE :Biru
STR_COLOUR_CREAM :Cream
STR_COLOUR_CREAM :Krim
STR_COLOUR_MAUVE :Lembayung muda
STR_COLOUR_PURPLE :Ungu
STR_COLOUR_ORANGE :Oranye
@ -217,8 +217,8 @@ STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}ga
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l
STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}m³
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litre
STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}galon
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³
STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf
@ -952,13 +952,14 @@ STR_GAME_OPTIONS_CURRENCY_NTD :Dollar Taiwan B
STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi Cina (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Dollar Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :India Rupee (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Rupiah Indonesia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Ringgit Malaysia (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Berkendara di lajur kiri
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :Berkendara di lajur kanan
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Nama kota
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Nama kota:
STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}Pilih model nama kota
############ start of townname region
@ -998,6 +999,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Setiap 12 bulan
STR_GAME_OPTIONS_LANGUAGE :{BLACK}Bahasa
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Pilih antar muka bahasa yang akan dipergunakan
STR_GAME_OPTIONS_LANGUAGE_PERCENTAGE :{STRING} ({NUM}% selesai)
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Layar Penuh
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Klik cek box ini untuk memainkan OpenTTD dalam layar penuh
@ -1005,10 +1007,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Klik cek
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolusi Layar
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pilih resolusi layar yang diinginkan
STR_GAME_OPTIONS_RESOLUTION_OTHER :lainnya
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Akselerasi perangkat keras
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK} Centang kotak ini untuk mengizinkan OpenTTD mencoba menggunakan akselerasi perangkat keras. Pengaturan yang diubah hanya akan diterapkan saat game dimulai ulang.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Pengaturan hanya akan berlaku setelah game dimulai ulang
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Centang kotak ini untuk melakukan sinkronisasi layar (v-sync). Pengaturan yang diubah hanya akan diterapkan saat game dimulai ulang. Hanya berfungsi dengan akselerasi perangkat keras diaktifkan.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Ukuran antarmuka
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pilih ukuran elemen antarmuka yang akan digunakan
@ -1029,6 +1035,9 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4 kali
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafik
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Menampilkan kecepatan refresh
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Pilih laju penyegaran layar yang akan digunakan
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :lain
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Kecepatan refresh yang lebih tinggi dari 60Hz dapat memengaruhi kinerja.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set Grafik Dasar
@ -1139,6 +1148,7 @@ STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Pengatur
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Penyaring kata:
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Perluas semua
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Persempit semua
STR_CONFIG_SETTING_RESET_ALL :{BLACK}Atur ulang semua pengaturan
STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(penjelasan belum tersedia)
STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Nilai standar: {ORANGE}{STRING}
STR_CONFIG_SETTING_TYPE :{LTBLUE}Tipe setting: {ORANGE}{STRING}
@ -1147,6 +1157,8 @@ STR_CONFIG_SETTING_TYPE_GAME_MENU :Setting permain
STR_CONFIG_SETTING_TYPE_GAME_INGAME :Pengaturan permainan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini)
STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan baru)
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setting perusahaan (disimpan dalam penyimpanan; hanya mempengaruhi permainan saat ini)
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_CAPTION :{WHITE}Peringatan!
STR_CONFIG_SETTING_RESET_ALL_CONFIRMATION_DIALOG_TEXT :{WHITE}Tindakan ini akan mengembalikan semua pengaturan gim ke nilai awalnya.{} Anda yakin ingin melanjutkan?
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori:
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Jenis:
@ -1210,7 +1222,9 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih seberapa
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Ketinggian peta maksimum: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Tetapkan ketinggian maksimum medan peta. Dengan "(otomatis)" nilai yang baik akan diambil setelah pembuatan medan
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kamu tidak bisa mengubah ketinggian peta maksimum di angka itu. Setidaknya ada satu gunung di peta yang lebih tinggi
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(automatis)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Anda tidak dapat menyetel batas ketinggian peta ke nilai ini. Setidaknya harus ada satu gunung di peta yang lebih tinggi
STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ijinkan pembentukan tanah dibawah bangunan dan trek tanpa merusaknya
STR_CONFIG_SETTING_CATCHMENT :Ijinkan ukuran jangkauan wilayah lebih realistik: {STRING}
@ -1354,7 +1368,10 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Mengatur berapa
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Jarak maksimal kilang minyak dari batas: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Kilang minyak hanya dibangun pada tepi peta atau pantai
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Tinggi garis salju: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Mengatur ketinggian di mana salju akan muncul. Salju juga akan mempengaruhi pengembangan industri dan persyaratan untuk pertumbuhan kota
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Mengontrol di ketinggian mana salju dimulai pada lanskap sub-arktik. Salju juga berpengaruh pada generasi industri dan syarat pertumbuhan kota. Hanya dapat dimodifikasi melalui Editor Skenario atau dihitung melalui "cakupan salju"
STR_CONFIG_SETTING_SNOW_COVERAGE :Cakupan salju: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Mengontrol perkiraan jumlah salju di lanskap sub-arktik. Salju juga berpengaruh pada generasi industri dan syarat pertumbuhan kota. Hanya digunakan selama pembuatan peta. Tanah yang berada tepat di atas permukaan laut selalu tanpa salju
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Cakupan gurun: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Kontrol perkiraan jumlah gurun di lanskap tropis. Gurun juga mempengaruhi generasi industri. Hanya digunakan selama pembuatan peta
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
@ -1473,6 +1490,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Kelompokkan pen
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Mendefinisikan tata ruang untuk tetingkap biaya perusahaan
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Secara otomatis menghapus sinyal selama konstruksi rel: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Menghapus sinyal secara otomatis selama konstruksi rel jika sinyal menghalangi. Perhatikan bahwa hal ini berpotensi menyebabkan kecelakaan kereta api.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Batas kecepatan maju cepat: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Batasi secepat apa permainan melaju saat maju cepat diaktifkan. 0 = tanpa batas (secepat yang bisa diatasi komputermu). Nilai di bawah 100% memperlambat gim. Batas maksimal tergantung pada spesifikasi komputer dan dapat bervariasi tergantung pada gim.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% kecepatan normal
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Tanpa batas (secepat komputer Anda memungkinkan)
STR_CONFIG_SETTING_SOUND_TICKER :Ticker berita: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Mainkan suara untuk pesanan berita yang diringkas
@ -1664,12 +1685,14 @@ STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Perbesaran view
STR_CONFIG_SETTING_ZOOM_MAX :Tingkat zoom out Maksimal: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Pengecilan maksimum untuk viewport. Semakin kecil semakin tidak jelas
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Sprite resolusi tertinggi untuk digunakan: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Batas resolusi maksimum yang digunakan sprite. Membatasi resolusi sprite akan menghindari penggunaan grafik resolusi tinggi meskipun tersedia. Ini dapat membantu menjaga tampilan gim tetap menyatu saat menggunakan campuran file GRF dengan atau tanpa grafik resolusi tinggi.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Kecepatan pertumbuhan kota: {STRING}
@ -1806,6 +1829,7 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Kehabisa
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Mengalokasikan {BYTES} 'spritecache' gagal. 'Spritecache' dikurangi ke {BYTES}. Ini akan kurangi kinerja OpenTTD. Untuk kurangi kebutuhan memori anda bisa coba matikan grafik 32bpp dan/atau tingkat pembesaran
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Kesalahan dengan pengaturan video...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... tidak ditemukan GPU yang kompatibel. Akselerasi perangkat keras dinonaktifkan
# Intro window
@ -1973,6 +1997,8 @@ STR_FACE_TIE :Dasi:
STR_FACE_EARRING :Anting-anting:
STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Ubah dasi atau anting-anting
STR_NETWORK_SERVER_VISIBILITY_PRIVATE :Privat
STR_NETWORK_SERVER_VISIBILITY_PUBLIC :Umum
# Network server list
STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Bermain bersama
@ -2036,6 +2062,8 @@ STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Nama per
STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Atur kata sandi
STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Lindungi permainan ini dengan kata kunci jika anda tidak ingin membiarkannya terbuka untuk umum
STR_NETWORK_START_SERVER_VISIBILITY_LABEL :{BLACK}Visibilitas
STR_NETWORK_START_SERVER_VISIBILITY_TOOLTIP :{BLACK}Orang lain bisa melihat server Anda di daftar umum
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klien
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimum jumlah klien:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Pilih jumlah klien maksimal. Tidak semua slot harus diisi
@ -2099,12 +2127,45 @@ STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server t
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Perusahaan terkunci, masukkan kata kunci
# Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Daftar klien
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Pemain Dalam Jaringan
STR_NETWORK_COMPANY_LIST_SPECTATE :Menonton
# Network client list
STR_NETWORK_CLIENT_LIST_CAPTION :{WHITE}Multipemain
STR_NETWORK_CLIENT_LIST_SERVER :{BLACK}Server
STR_NETWORK_CLIENT_LIST_SERVER_NAME :{BLACK}Nama
STR_NETWORK_CLIENT_LIST_SERVER_NAME_TOOLTIP :{BLACK}Nama server tempat Anda bermain
STR_NETWORK_CLIENT_LIST_SERVER_NAME_EDIT_TOOLTIP :{BLACK}Mengubah nama server Anda
STR_NETWORK_CLIENT_LIST_SERVER_NAME_QUERY_CAPTION :Nama server
STR_NETWORK_CLIENT_LIST_SERVER_VISIBILITY :{BLACK}Visibilitas
STR_NETWORK_CLIENT_LIST_SERVER_VISIBILITY_TOOLTIP :{BLACK}Apakah orang lain dapat melihat server Anda di daftar publik
STR_NETWORK_CLIENT_LIST_PLAYER :{BLACK}Pemain
STR_NETWORK_CLIENT_LIST_PLAYER_NAME :{BLACK}Nama
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_TOOLTIP :{BLACK}Nama pemain Anda
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_EDIT_TOOLTIP :{BLACK}Mengubah nama pemain Anda
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_QUERY_CAPTION :Nama pemain
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_TOOLTIP :{BLACK}Tindakan administratif yang harus dilakukan untuk klien ini
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP :{BLACK}Tindakan administratif yang harus dilakukan untuk perusahaan ini
STR_NETWORK_CLIENT_LIST_JOIN_TOOLTIP :{BLACK}Gabung perusahaan ini
STR_NETWORK_CLIENT_LIST_CHAT_CLIENT_TOOLTIP :{BLACK}Kirim pesan ke pemain ini
STR_NETWORK_CLIENT_LIST_CHAT_COMPANY_TOOLTIP :{BLACK}Kirim pesan ke semua pemain di perusahaan ini
STR_NETWORK_CLIENT_LIST_CHAT_SPECTATOR_TOOLTIP :{BLACK}Kirim pesan ke semua penonton
STR_NETWORK_CLIENT_LIST_SPECTATORS :Penonton
STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(Perusahaan baru)
STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Ciptakan perusahaan baru dan bergabung
STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}Ini adalah Anda
STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}Ini adalah hos permainan
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_KICK :Diusir
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_BAN :Melarang
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_RESET :Hapus
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_UNLOCK :Buka pakai kata sandi
STR_NETWORK_CLIENT_LIST_ASK_CAPTION :{WHITE}Tindakan Admin
STR_NETWORK_CLIENT_LIST_ASK_CLIENT_KICK :{YELLOW}Anda yakin ingin diusir pemain '{STRING}'?
STR_NETWORK_CLIENT_LIST_ASK_CLIENT_BAN :{YELLOW}Apakah Anda yakin ingin mencekal pemain '{STRING}'?
STR_NETWORK_CLIENT_LIST_ASK_COMPANY_RESET :{YELLOW}Anda yakin ingin menghapus perusahaan '{COMPANY}'?
STR_NETWORK_CLIENT_LIST_ASK_COMPANY_UNLOCK :{YELLOW}Anda yakin ingin menyetel ulang sandi perusahaan '{COMPANY}'?
STR_NETWORK_SERVER :Server
STR_NETWORK_CLIENT :Klien
@ -2149,6 +2210,7 @@ STR_NETWORK_ERROR_SERVER_START :{WHITE}Tak dapa
STR_NETWORK_ERROR_CLIENT_START :{WHITE}Tak dapat tersambung
STR_NETWORK_ERROR_TIMEOUT :{WHITE}Waktu Koneksi #{NUM} telah habis
STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}Kesalahan protokol, koneksi ditutup
STR_NETWORK_ERROR_BAD_PLAYER_NAME :{WHITE}Nama permainan belum disetel. Nama bisa diatur di bagian atas jendela Multiplayer
STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}Revisi pada klien tidak sama dengan revisi pada server
STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Kata kunci salah
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Server penuh
@ -2161,6 +2223,8 @@ STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Jangan t
STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}Komputer anda terlalu lambat dalam mengikuti server
STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Komputer anda terlalu lama untuk mengunduh peta
STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Komputer anda terlalu lama untuk bisa bergabung dengan server
STR_NETWORK_ERROR_INVALID_CLIENT_NAME :{WHITE}Nama pemain Anda tidak valid
STR_NETWORK_ERROR_SERVER_TOO_OLD :{WHITE}Server yang diminta terlalu usang untuk klien ini
############ Leave those lines in this order!!
STR_NETWORK_ERROR_CLIENT_GENERAL :Kesalahan umum
@ -2183,6 +2247,7 @@ STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :tidak menerima
STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :waktu koneksi habis
STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :pengunduhan peta memakan banyak waktu
STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :pengolahan peta memakan banyak waktu
STR_NETWORK_ERROR_CLIENT_INVALID_CLIENT_NAME :nama yang dihubungi tidak valid
############ End of leave-in-this-order
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Koneksi mungkin terputus
@ -2291,6 +2356,7 @@ STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ya, down
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Tidak, tutup OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Gagal Mendownload
STR_MISSING_GRAPHICS_ERROR :{BLACK}Gagal mengunduh grafik.{}Silakan unduh grafik secara manual.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Keluar OpenTTD
# Transparency settings window
@ -2471,7 +2537,7 @@ STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Bangun p
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Tempatkan pelampung yang dapat digunakan sebagai petunjuk arah. Shift untuk menampilkan perkiraan biaya
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Membangun jembatan air. Shift untuk menampilkan perkiraan biaya
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Membuat area perairan .{}Membuat kanal, kecuali jika CTRL ditekan pada level yang sejajar dengan laut, maka air akan memenuhi permukaan
STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Membuat sungai
STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Membuat sungai. Ctrl untuk memilh area secara diagonal
# Ship depot construction window
STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}Orientasi Galangan
@ -2842,9 +2908,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Jumlah Kota:
STR_MAPGEN_DATE :{BLACK}Tgl:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Jumlah industri:
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Puncak tertinggi:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Menambah satu ketinggian maksimum puncak tertinggi di peta
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Kurangi satu ketinggian maksimum puncak tertinggi di peta
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Cakupan salju:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Meningkatkan cakupan salju sepuluh persen
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Kurangi cakupan salju hingga sepuluh persen
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Cakupan gurun:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Meningkatkan cakupan gurun sepuluh persen
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Kurangi cakupan gurun pasir sebesar sepuluh persen
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Tinggi garis salju:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Naikkan ketinggian garis salju satu angka
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Turunkan ketinggian garis salju satu angka
@ -2873,8 +2947,11 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nama Pet
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Luas:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Target ketinggian puncak
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Puncak tertinggi
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Cakupan salju (dalam %)
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ubah ketinggian garis salju
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Cakupan gurun (dalam %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ganti Tahun Permulaan
# SE Map generation
@ -3014,6 +3091,7 @@ STR_NEWGRF_ERROR_MSG_WARNING :{RED}Peringatan
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Kesalahan: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Kesalahan fatal NewGRF telah terjadi:{}{STRING}
STR_NEWGRF_ERROR_POPUP :{WHITE}Terjadi galat pada NewGRF:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} tidak akan bekerja dengan versi TTDPatch yang telah dilaporkan oleh OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} untuk TTD versi {STRING}
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} didesain untuk digunakan dengan {STRING}
@ -3152,13 +3230,13 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Danai pembangun
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Beli hak transportasi eksklusif
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Suap pemkot setempat
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Prakarsai kampanye iklan kecil, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Biaya:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Prakarsai kampanye iklan sedang, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Biaya:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Prakarsai kampanye iklan besar, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Danai perbaikan jalan. Akan menyebabkan kemacetan arus lalu lintas hingga 6 bulan.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bangun patung sebagai kebanggaan perusahaan anda.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Biayai pembangunan gedung komersil di kota.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Beli hak monopoli transportasi di kota ini untuk 1 tahun. Penumpang dan kargo di kota ini hanya akan menggunakan stasiun milik perusahaan anda.{} Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Prakarsai kampanye iklan kecil, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Memberikan penggalak sementara pada peringkat stasiun dalam radius kecil di sekitar pusat kota.{}Biaya:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Prakarsai kampanye iklan sedang, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Memberikan penggalak sementara pada peringkat stasiun dalam radius sedang di sekitar pusat kota.{}Biaya:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Prakarsai kampanye iklan besar, agar penumpang dan kargo lebih mengutamakan jasa perusahaan transportasi anda.{}Memberikan penggalak sementara pada peringkat stasiun dalam radius besar di sekitar pusat kota.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Danai perbaikan jalanan perkotaan.{}Akan menyebabkan kemacetan arus lalu lintas hingga 6 bulan.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bangun patung sebagai kebanggaan perusahaan anda.{}Memberikan penggalak permanen pada peringkat stasiun di kota ini.{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Biayai pembangunan gedung baru di kota.{}Memberikan penggalak sementara pada pertumbuhan kota di kota ini,{}Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Beli hak monopoli transportasi di kota ini untuk 1 tahun.{}Pemerintah kota tidak akan mengizinkan penumpang dan kargo untuk memakai stasiun pesaing Anda.{} Biaya: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Kolusi dengan pemkot agar naik peringkat, beresiko terkena hukuman jika tertangkap.{}Biaya: {CURRENCY_LONG}
# Goal window
@ -3166,6 +3244,9 @@ STR_GOALS_CAPTION :{WHITE}{COMPANY
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Target Global
STR_GOALS_SPECTATOR :Target Global
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Tunjukkan target global
STR_GOALS_COMPANY_BUTTON :{BLACK}Perusahaan
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Tunjukkan target perusahaan
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Tidak ada -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
@ -3741,7 +3822,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Kereta Maglev
STR_REPLACE_ROAD_VEHICLES :Kendaraan Jalan Raya
STR_REPLACE_TRAM_VEHICLES :Kendaraan Jalan Trem
STR_REPLACE_REMOVE_WAGON :{BLACK}Membuang gerbong: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Membuat panjang kereta tetap sama saat penggantian secara otomatis dengan cara membuang gerbong(dihitung dari bagian depan), jika penggantian lokomotif membuat kereta lebih panjang
# Vehicle view
@ -4288,6 +4368,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Hanya ef
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Tangkapan layar besar
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Resolusi tangkapan layar {COMMA} x {COMMA} piksel. Membuat tangkapan layar akan memakan waktu. Anda ingin melanjutkan?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Peta ketinggian sudah disimpan sebagai '{STRING}'. Puncak tertinggi adalah {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Pengambilan gambar telah berhasil disimpan sebagai '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Pengambilan gambar gagal
@ -4746,7 +4827,7 @@ STR_INDUSTRY_NAME_COLA_WELLS :Sumur Cola
STR_INDUSTRY_NAME_TOY_SHOP :Toko Mainan
STR_INDUSTRY_NAME_TOY_FACTORY :Pabrik Mainan
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :Sumber Mata Air Plastik
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :Pabrik Minuman berdesis
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :Pabrik Minuman Ringan
STR_INDUSTRY_NAME_BUBBLE_GENERATOR :Pembangkit Gelembung
STR_INDUSTRY_NAME_TOFFEE_QUARRY :Tambang gula-gula
STR_INDUSTRY_NAME_SUGAR_MINE :Tambang Gula
@ -4845,7 +4926,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :Gerbong Tangki
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :Gerbong Manisan
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :Gerbong Mainan
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :Gerbong Baterai
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :Gerbong Minuman berdesis
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :Gerbong Minuman Ringan
STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :Gerbong Plastik
STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Listrik)
STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Listrik)
@ -4875,7 +4956,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :Gerbong Cola
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_CANDY_VAN :Gerbong Manisan
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :Gerbong Mainan
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :Gerbong Baterai
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Gerbong Minuman berdesis
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Gerbong Minuman Ringan
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :Gerbong Plastik
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Listrik)
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Listrik)
@ -4907,7 +4988,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :Gerbong Cola
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :Gerbong Manisan
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOY_VAN :Gerbong Mainan
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BATTERY_TRUCK :Gerbong Baterai
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :Gerbong Minuman berdesis
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FIZZY_DRINK_TRUCK :Gerbong Minuman Ringan
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PLASTIC_TRUCK :Gerbong Plastik
STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_REGAL_BUS :Bus MPS Regal
STR_VEHICLE_NAME_ROAD_VEHICLE_HEREFORD_LEOPARD_BUS :Bus Hereford Leopard
@ -4988,9 +5069,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_CANDY_TRUCK :Truk Manisan Wi
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_BATTERY_TRUCK :Truk Baterai MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_BATTERY_TRUCK :Truk Baterai Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_BATTERY_TRUCK :Truk Baterai Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_FIZZY_DRINK :Truk Minuman berdesis MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_FIZZY_DRINK :Truk Minuman berdesis Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_FIZZY_DRINK_TRUCK :Truk Minuman berdesis Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_FIZZY_DRINK :Truk Minuman Ringan MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_FIZZY_DRINK :Truk Minuman Ringan Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_FIZZY_DRINK_TRUCK :Truk Minuman Ringan Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_PLASTIC_TRUCK :Truk Plastik MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_PLASTIC_TRUCK :Truk Plastik Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_PLASTIC_TRUCK :Truk Plastik Wizzowow

@ -3480,7 +3480,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Feithiclí Aonr
STR_REPLACE_MAGLEV_VEHICLES :Feithiclí Maglev
STR_REPLACE_REMOVE_WAGON :{BLACK}Vaigíní a bhaint: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ceangail ar uath-athsholáthar fad na traenach a choinneáil mar an gcéanna trí vaigíní a bhaint (ag tosú ag an tosach), má tharlaíonn sé go mbeadh an traein níos faide tar éis an t-inneall a athsholáthar.
# Vehicle view

@ -3792,7 +3792,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Veicoli maglev
STR_REPLACE_ROAD_VEHICLES :Veicoli stradali
STR_REPLACE_TRAM_VEHICLES :Veicoli tranviari
STR_REPLACE_REMOVE_WAGON :{BLACK}Rimozione vagoni: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fa sì che il rimpiazzamento automatico mantenga costante la lunghezza dei treni rimuovendo vagoni (iniziando dalla testa) nel caso in cui la sostituzione della locomotiva rendesse il treno più lungo
# Vehicle view

File diff suppressed because it is too large Load Diff

@ -3494,7 +3494,7 @@ STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}이 지
STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}이 칸의 위치로 이동합니다. CTRL+클릭하면 이 칸의 위치를 기준으로 새로운 외부 화면을 엽니다
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}초기화 가격: {LTBLUE}없음
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}초기화 가격: {RED}{CURRENCY_LONG}
STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}제거시 들어오는 환불금: {LTBLUE}{CURRENCY_LONG}
STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}제거하면 회수되는 금액: {LTBLUE}{CURRENCY_LONG}
STR_LAND_AREA_INFORMATION_OWNER_N_A :없음
STR_LAND_AREA_INFORMATION_OWNER :{BLACK}소유주: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}도로 소유주: {LTBLUE}{STRING}
@ -3887,7 +3887,7 @@ STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}매개
# NewGRF inspect window
STR_NEWGRF_INSPECT_CAPTION :{WHITE}NEWGRF 검사 - {STRING}
STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}상위 단계
STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}상위
STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}상위 단계 범위의 오브젝트를 검사합니다
STR_NEWGRF_INSPECT_REFRESH :{BLACK}R
STR_NEWGRF_INSPECT_REFRESH_TOOLTIP :{BLACK}콘텐츠를 매 프레임마다 갱신할지를 설정합니다
@ -4128,7 +4128,7 @@ STR_SUBSIDIES_CAPTION :{WHITE}보조
STR_SUBSIDIES_OFFERED_TITLE :{BLACK}지급 대기 중인 보조금:
STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{1:STRING}에서 {2:STRING}까지 {0:STRING} 수송{YELLOW} ({3:DATE_SHORT}까지)
STR_SUBSIDIES_NONE :{ORANGE}없음
STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}이미 지급 중인 보조금:
STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}이미 지급 보조금:
STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{1:STRING}에서 {2:STRING}까지 {0:STRING} 수송{YELLOW} ({3:COMPANY}{YELLOW}, {DATE_SHORT}까지)
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/도시의 위치로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 산업시설/도시의 위치를 기준으로 새로운 외부 화면을 엽니다
@ -4560,7 +4560,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}선택
STR_GROUP_LIVERY_TOOLTIP :{BLACK}선택한 그룹의 차량 색상을 변경합니다
STR_GROUP_EXPAND_ALL :{BLACK}모두 펼치기
STR_GROUP_COLLAPSE_ALL :{BLACK}모두 접기
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}클릭해서 전체 자동 교체로부터 이 그룹을 보호합니다
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}클릭하면 전체 자동 교체로부터 이 그룹을 보호합니다. CTRL+클릭하면 하위 그룹도 보호합니다.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}그룹 삭제
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}이 그룹과 하위 그룹을 정말 삭제하시겠습니까?
@ -4835,8 +4835,9 @@ STR_REPLACE_MAGLEV_VEHICLES :자기부상
STR_REPLACE_ROAD_VEHICLES :자동차
STR_REPLACE_TRAM_VEHICLES :전차 차량
STR_REPLACE_REMOVE_WAGON :{BLACK}화물차 제거: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}화물차 제거 ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}자동 교체시 열차의 길이가 교체 전보다 길어지면 객차/화차를 (앞쪽부터) 제거하여 열차의 전체 길이가 달라지지 않도록 합니다
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. CTRL+클릭하면 하위 그룹에도 적용됩니다
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3768,7 +3768,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Vehicula Monoor
STR_REPLACE_MAGLEV_VEHICLES :Vehicula Maglev
STR_REPLACE_REMOVE_WAGON :{BLACK}Ablatio curruum: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Facere ut automutatio longitudinem traminis contineat ablatione curruum (primo primorum), si tramen longius fiat mutatione hamaxae
# Vehicle view

@ -3733,7 +3733,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magleva transpo
STR_REPLACE_ROAD_VEHICLES :Autotransporta līdzekļi
STR_REPLACE_TRAM_VEHICLES :Tramvaji
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagona noņemšana: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automātiskā aizvietošana saglabās esošo vilciena garumu noņemot vagonus (sākot no priekšgala), ja mainot lokomotīvi tas kļūtu garāks
# Vehicle view

@ -4031,7 +4031,6 @@ STR_REPLACE_MAGLEV_VEHICLES :„Maglev“ tr
STR_REPLACE_ROAD_VEHICLES :Automobilius
STR_REPLACE_TRAM_VEHICLES :Tramvajinės transporto priemonės
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagono pašalinimas: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Pakeitimo metu išlaikyti traukinio ilgį atjungiant vagonus (pradedant nuo priekio), jeigu pakeitus garvežį traukinys pailgėtų
# Vehicle view

@ -3774,7 +3774,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magnéitbunn Ge
STR_REPLACE_ROAD_VEHICLES :Stroossegefierer
STR_REPLACE_TRAM_VEHICLES :Tram-Gefierer
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon raushuelen: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Mécht dass d'automatescht Austauschen d'Längt vum Zuch behält, an dem e Waggonen (vu lénks un) wechhëllt, wann d'Lok den Zuch ze laang mécht
# Vehicle view

@ -3179,7 +3179,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorel Kendera
STR_REPLACE_MAGLEV_VEHICLES :Kenderaan Maglev
STR_REPLACE_REMOVE_WAGON :{BLACK}Penghapusan wagon: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Membuat penukaran secara automatik menyimpan kepanjangan keretapi yang sama dengan mengeluarkan gerabak (bermula dari bahagian hadapan), sekiranya menyebabkan kereta api lebih panjang
# Vehicle view

@ -2280,7 +2280,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} ha
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} har blitt med som tilskuer
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} har startet et nytt firma (nr. {2:NUM})
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} har forlatt spillet ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} har forandret sitt navn til {STRING}
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} har endret navnet sitt til {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} ga {2:CURRENCY_LONG} til ditt firma{1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Tjeneren avsluttet spillet
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Tjeneren starter på nytt...{}Vennligst vent...
@ -3826,7 +3826,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev-kjøret
STR_REPLACE_ROAD_VEHICLES :Veikjøretøy
STR_REPLACE_TRAM_VEHICLES :Trikkekjøretøy
STR_REPLACE_REMOVE_WAGON :{BLACK}Vognfjerning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}La autoerstatningen beholde lengen på toget ved å fjerne vogner (fra første vogn), hvis utskiftningen gjør toget lengre.
# Vehicle view

@ -3400,7 +3400,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail-køyre
STR_REPLACE_MAGLEV_VEHICLES :Maglev-køyretøy
STR_REPLACE_REMOVE_WAGON :{BLACK}Vognfjerning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Lat den automatiske utskiftinga behalde lengda på toget ved å fjerne vogner (frå første vogn), dersom utskiftinga gjer toget lenger.
# Vehicle view

@ -4166,7 +4166,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Kolej Maglev
STR_REPLACE_ROAD_VEHICLES :Pojazdy drogowe
STR_REPLACE_TRAM_VEHICLES :Tramwaje
STR_REPLACE_REMOVE_WAGON :{BLACK}Usunięcie wagonów: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Autowymiana zachowuje długość pociągu poprzez usuwanie wagonów (począwszy od początku), jeśli wymiana lokomotywy spowoduje wydłużenie pociągu
# Vehicle view

@ -3570,7 +3570,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Clique p
STR_GROUP_DELETE_TOOLTIP :{BLACK}Remover o grupo seleccionado
STR_GROUP_RENAME_TOOLTIP :{BLACK}Mudar o nome do grupo seleccionado
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Alterar a imagem do grupo selecionado
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para proteger este grupo da autosubstituição global
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para proteger este grupo da auto-substituição global. Ctrl+Clique para proteger também sub-grupos.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Apagar Grupo
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Tem a certeza de que quer apagar este grupo e quaisquer descendentes?
@ -3823,8 +3823,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglevs
STR_REPLACE_ROAD_VEHICLES :Veículos rodoviários
STR_REPLACE_TRAM_VEHICLES :Elétricos
STR_REPLACE_REMOVE_WAGON :{BLACK}Remover vagões: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Remover vagões ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Forçar a substituição automática a manter o comprimento do comboio, removendo vagões (do início), nas situações em que a substituição da locomotiva pode resultar num comboio mais comprido.
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+Clique para aplicar também a sub-grupos
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3640,7 +3640,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Vehicule Pernă
STR_REPLACE_ROAD_VEHICLES :Autovehicule
STR_REPLACE_TRAM_VEHICLES :Tramvaie
STR_REPLACE_REMOVE_WAGON :{BLACK}Retragere vagoane: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fă optiunea de autoînlocuire să păstreze identică lungimea unui tren prin eliminarea vagoanelor (începând din faţă) dacă înlocuirea locomotivei ar face trenul mai lung
# Vehicle view

@ -3750,7 +3750,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Созд
STR_GROUP_DELETE_TOOLTIP :{BLACK}Удалить выбранную группу
STR_GROUP_RENAME_TOOLTIP :{BLACK}Переименовать выбранную группу
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Изменить цвет выбранной группы
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Защита транспорта в группе от глобальной автозамены
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Защита транспорта в группе от глобальной автозамены. Ctrl+щелчок - защита также и вложенных групп.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Удаление группы
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Удалить эту и все вложенные группы?
@ -4018,8 +4018,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Магнитн
STR_REPLACE_ROAD_VEHICLES :Автотранспорт
STR_REPLACE_TRAM_VEHICLES :Трамваи
STR_REPLACE_REMOVE_WAGON :{BLACK}Удаление вагонов: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Удаление вагонов ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Разрешить при автозамене сохранять длину поездов путём удаления вагонов (начиная с головы поезда), если при автозамене локомотива увеличится длина состава.
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}{}Ctrl+щелчок - применить также и к вложенным группам.
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3985,7 +3985,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Magnetnošinska
STR_REPLACE_ROAD_VEHICLES :Drumska vozila
STR_REPLACE_TRAM_VEHICLES :Tramvajska vozila
STR_REPLACE_REMOVE_WAGON :{BLACK}Ukanjanje vagona: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ukoliko bi se zamenom kompozicija produžila, automatska obnova će ukloniti vagone (sa početka) kako bi se zadržala dužina kompozicije
# Vehicle view

@ -3779,7 +3779,6 @@ STR_REPLACE_MAGLEV_VEHICLES :磁悬浮列车
STR_REPLACE_ROAD_VEHICLES :路面交通工具
STR_REPLACE_TRAM_VEHICLES :电车
STR_REPLACE_REMOVE_WAGON :{BLACK}清理挂车:{ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}当车辆升级可能造成列车变长时{}自动从最前面的挂车去掉若干节以保证列车长度不变
# Vehicle view

@ -2318,7 +2318,7 @@ STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :spracovanie map
STR_NETWORK_ERROR_CLIENT_INVALID_CLIENT_NAME :Neplatný názov klienta
############ End of leave-in-this-order
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Možná ztráta pripojenia
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Možná strata pripojenia
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION :{WHITE}Posledných {NUM} sekúnd nedorazili zo servera žiadne dáta
# Network related errors
@ -3890,8 +3890,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Lokomotíva pre
STR_REPLACE_ROAD_VEHICLES :Automobily
STR_REPLACE_TRAM_VEHICLES :Električky
STR_REPLACE_REMOVE_WAGON :{BLACK}Odstránenie vagónu: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Odstránenie vagónu ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Zachovanie pôvodnej dĺžky vlaku, odstránením vagónov (odpredu), keď by funkcia automatickej zmeny rušňa vlak predĺžila
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+klik aplikuje aj na podskupiny
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
@ -4767,7 +4768,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Zatiaľ
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Začnite novú hru po {DATE_SHORT} alebo použite NewGRF, ktoré zabezpečí vozidlá v skoršom čase
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nemôžeš nechať vlak prejsť cez návestidlo keď hrozí nebezpečenstvo...
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nemožno nechať vlak prejsť návestidlo ak hrozí nebezpečenstvo...
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nemožno otočiť vlak naopak...
STR_ERROR_TRAIN_START_NO_POWER :Vlak nemá energiu

@ -3637,7 +3637,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Enotirna vozila
STR_REPLACE_MAGLEV_VEHICLES :Magnetna tirna vozila
STR_REPLACE_REMOVE_WAGON :{BLACK}Odstranitev vagonov: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Dovoli samozamenjavi, da z odstranitvijo vagonov, začenši na začetku, ohrani isto dolžino vlaka, če bi ga menjava lokomotive podaljšala
# Vehicle view

@ -3570,7 +3570,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Clica pa
STR_GROUP_DELETE_TOOLTIP :{BLACK}Borra el grupo seleccionado
STR_GROUP_RENAME_TOOLTIP :{BLACK}Renombra el grupo seleccionado
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Cambia el color del grupo seleccionado
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clic para proteger este grupo del auto reemplazado global
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clica para proteger este grupo del autorreemplazo global. Ctrl+clic protege también los subgrupos.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Borrar Grupo
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}¿Estás seguro de borrar este grupo y todos sus subgrupos?
@ -3823,8 +3823,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Vehículos Magl
STR_REPLACE_ROAD_VEHICLES :Vehículos de Carretera
STR_REPLACE_TRAM_VEHICLES :Tranvías
STR_REPLACE_REMOVE_WAGON :{BLACK}Retirar vagones: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Retirar vagones ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fuerza que el reemplazo automático mantenga la longitud del tren, quitando vagones (empezando por la parte delantera) si el reemplazo de vehículos produce un tren más largo
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+clic para aplicar también a subgrupos
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3823,7 +3823,7 @@ STR_REPLACE_MAGLEV_VEHICLES :Trenes maglev
STR_REPLACE_ROAD_VEHICLES :Vehículos de carretera
STR_REPLACE_TRAM_VEHICLES :Vehículos de tranvía
STR_REPLACE_REMOVE_WAGON :{BLACK}Quitar vagón: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Quitar vagó ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Hacer que el reemplazo automático mantenga la longitud del tren quitando vagones (empezando por el frente), si el cambio de locomotora produce un tren más largo
# Vehicle view

@ -359,7 +359,7 @@ STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Bygg fly
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Öppna landskapsarkitektursverktygen för att höja/sänka land, plantera träd, etc.
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Visa ljud-/musikfönster
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Visa senaste meddelandet/nyheten, visa meddelandeinställningar
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Markinformation, konsoll, skript-felsökning, skärmdumpar, om OpenTTD
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Markinformation, konsol, felsökning av skript, skärmdumpar, om OpenTTD
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Byt verktygsrad
# Extra tooltips for the scenario editor toolbar
@ -912,7 +912,7 @@ STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Valutaen
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Välj valutaenhet
############ start of currency region
STR_GAME_OPTIONS_CURRENCY_GBP :Brittisk pund (£)
STR_GAME_OPTIONS_CURRENCY_GBP :Brittiskt pund (£)
STR_GAME_OPTIONS_CURRENCY_USD :Amerikansk dollar (USD)
STR_GAME_OPTIONS_CURRENCY_EUR :Euro (EUR)
STR_GAME_OPTIONS_CURRENCY_JPY :Japansk yen (¥)
@ -948,18 +948,18 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgisk lari (
STR_GAME_OPTIONS_CURRENCY_IRR :Iransk rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Ny rysk rubel (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexikansk peso (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :Nya Taiwanesisk dollar (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Kinesisk Renminbi (CNY)
STR_GAME_OPTIONS_CURRENCY_NTD :Ny taiwanesisk dollar (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Kinesisk renminbi (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongdollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indisk rupie (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesisk Rupiah (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysisk Ringgit (MYR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesisk rupie (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysisk ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Kör på vänster sida
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :Kör på höger sida
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Stadsnamn
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Stadsnamn:
STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}Välj typ av stadsnamn
############ start of townname region
@ -999,6 +999,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Var 12:e månad
STR_GAME_OPTIONS_LANGUAGE :{BLACK}Språk
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Välj vilket språk som ska användas
STR_GAME_OPTIONS_LANGUAGE_PERCENTAGE :{STRING} ({NUM}% färdigt)
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Helskärm
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Kryssa i den här rutan för att spela OpenTTD i helskärmsläge
@ -1060,9 +1061,9 @@ STR_ERROR_FULLSCREEN_FAILED :{WHITE}Fullskä
STR_CURRENCY_WINDOW :{WHITE}Egen valuta
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Växlingskurs: {ORANGE}{CURRENCY_LONG} = £ {COMMA}
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Minska värdet för din valuta med ett Pund (£)
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Öka värdet för din valuta med ett Pund (£)
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Sätt växelkursen för din valuta mot ett Pund (£)
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Minska värdet för din valuta med ett pund (£)
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Öka värdet för din valuta med ett pund (£)
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Sätt växelkursen för din valuta mot ett pund (£)
STR_CURRENCY_SEPARATOR :{LTBLUE}Avskiljare: {ORANGE}{STRING}
STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP :{BLACK}Sätt separatorn för din valuta
@ -1079,7 +1080,7 @@ STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Byt till
STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Byt till euron senare
STR_CURRENCY_PREVIEW :{LTBLUE}Förhandsgranska: {ORANGE}{CURRENCY_LONG}
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 Pund (£) i din valuta
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 pund (£) i din valuta
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Ändra valutaparametrar
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Max antal motståndare: {ORANGE}{COMMA}
@ -1322,7 +1323,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flygplatser bli
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Aktivering av denna inställning gör så att alla flygplatstyper finns kvar i obegränsad tid efter att de blivit tillgängliga
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Varna om fordon är vilse: {STRING}
STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Aktiverar meddelanden om fordon som är oförmögna att hitta vägen till deras destination.
STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Aktiverar meddelanden om fordon som är oförmögna att hitta vägen till sin destination.
STR_CONFIG_SETTING_ORDER_REVIEW :Granska fordonens destinationer: {STRING}
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Om det är aktiverat så kontrolleras fordonens order periodiskt och när uppenbara problem identifieras rapporteras detta med ett nyhetsmeddelande
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Nej
@ -1996,6 +1997,8 @@ STR_FACE_TIE :Slips:
STR_FACE_EARRING :Örhänge:
STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Ändra slips eller örhänge
STR_NETWORK_SERVER_VISIBILITY_PRIVATE :Privat
STR_NETWORK_SERVER_VISIBILITY_PUBLIC :Offentlig
# Network server list
STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Flera spelare
@ -2055,10 +2058,12 @@ STR_NETWORK_SERVER_LIST_ENTER_IP :{BLACK}IP-adres
STR_NETWORK_START_SERVER_CAPTION :{WHITE}Starta ett nytt spel i flerspelarläge
STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Namn:
STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Namnet på nätverksspelet kommer att synas för andra spelare i multiplayer menyn
STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Namnet på nätverksspelet kommer att synas för andra spelare i flerspelarmenyn
STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Bestäm lösenord
STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Skydda spelet med ett lösenord så att inte andra än dem som har lösenordet kan gå med i spelet
STR_NETWORK_START_SERVER_VISIBILITY_LABEL :{BLACK}Synlighet
STR_NETWORK_START_SERVER_VISIBILITY_TOOLTIP :{BLACK}Huruvida andra människor kan se din server i den offentliga listan
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klient{P "" er}
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max antal tillåtna klienter:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Välj max antal tillåtna klienter. Alla platser måste inte fyllas.
@ -2122,12 +2127,45 @@ STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servern
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Företaget är skyddat. Ange lösenord
# Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Klientlista
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Spelare online
STR_NETWORK_COMPANY_LIST_SPECTATE :Åskåda
# Network client list
STR_NETWORK_CLIENT_LIST_CAPTION :{WHITE}Flera spelare
STR_NETWORK_CLIENT_LIST_SERVER :{BLACK}Server
STR_NETWORK_CLIENT_LIST_SERVER_NAME :{BLACK}Namn
STR_NETWORK_CLIENT_LIST_SERVER_NAME_TOOLTIP :{BLACK}Namnet på servern du spelar på
STR_NETWORK_CLIENT_LIST_SERVER_NAME_EDIT_TOOLTIP :{BLACK}Ändra din servers namn
STR_NETWORK_CLIENT_LIST_SERVER_NAME_QUERY_CAPTION :Serverns namn
STR_NETWORK_CLIENT_LIST_SERVER_VISIBILITY :{BLACK}Synlighet
STR_NETWORK_CLIENT_LIST_SERVER_VISIBILITY_TOOLTIP :{BLACK}Huruvida andra människor kan se din server i den offentliga listan
STR_NETWORK_CLIENT_LIST_PLAYER :{BLACK}Spelare
STR_NETWORK_CLIENT_LIST_PLAYER_NAME :{BLACK}Namn
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_TOOLTIP :{BLACK}Ditt spelarnamn
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_EDIT_TOOLTIP :{BLACK}Ändra ditt spelarnamn
STR_NETWORK_CLIENT_LIST_PLAYER_NAME_QUERY_CAPTION :Ditt spelarnamn
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_TOOLTIP :{BLACK}Administrativa handlingar att utföra för denna klient
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP :{BLACK}Administrativa handlingar att utföra för detta företag
STR_NETWORK_CLIENT_LIST_JOIN_TOOLTIP :{BLACK}Gå med i detta företag
STR_NETWORK_CLIENT_LIST_CHAT_CLIENT_TOOLTIP :{BLACK}Skicka ett meddelande till denna spelare
STR_NETWORK_CLIENT_LIST_CHAT_COMPANY_TOOLTIP :{BLACK}Skicka ett meddelande till alla spelare i detta företag
STR_NETWORK_CLIENT_LIST_CHAT_SPECTATOR_TOOLTIP :{BLACK}Skicka ett meddelande till alla åskådare
STR_NETWORK_CLIENT_LIST_SPECTATORS :Åskådare
STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(Nytt företag)
STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Skapa ett nytt företag och gå med i det
STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}Det här är du
STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}Det här är spelets värd
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_KICK :Kasta ut
STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_BAN :Bannlys
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_RESET :Ta bort
STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_UNLOCK :Lås upp med lösenord
STR_NETWORK_CLIENT_LIST_ASK_CAPTION :{WHITE}Administratörshandling
STR_NETWORK_CLIENT_LIST_ASK_CLIENT_KICK :{YELLOW}Är du säker på att du vill kasta ut spelaren '{STRING}'?
STR_NETWORK_CLIENT_LIST_ASK_CLIENT_BAN :{YELLOW}Är du säker på att du vill bannlysa spelaren '{STRING}'?
STR_NETWORK_CLIENT_LIST_ASK_COMPANY_RESET :{YELLOW}Är du säker på att du vill ta bort företaget {COMPANY}?
STR_NETWORK_CLIENT_LIST_ASK_COMPANY_UNLOCK :{YELLOW}Är du säker på att du vill återställa företaget {COMPANY}s lösenord?
STR_NETWORK_SERVER :Server
STR_NETWORK_CLIENT :Klient
@ -2172,7 +2210,8 @@ STR_NETWORK_ERROR_SERVER_START :{WHITE}Kunde in
STR_NETWORK_ERROR_CLIENT_START :{WHITE}Kunde inte ansluta.
STR_NETWORK_ERROR_TIMEOUT :{WHITE}Nätverkskoppling #{NUM} timeout
STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}Ett protokollfel uppstod och anslutningen stängdes.
STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}Servern har en annan version än denna klient.
STR_NETWORK_ERROR_BAD_PLAYER_NAME :{WHITE}Du har inte angivit något spelarnamn. Namninställning kan göras högst upp i flerspelarfönstret
STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}Servern har en annan version än denna klient
STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Fel lösenord
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Servern är full
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Du är bannlyst från den här servern
@ -2184,6 +2223,8 @@ STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Du tog f
STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}Din dator tog för lång tid på sig för att ansluta
STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Du tog för lång tid på dig att ladda ner kartan
STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Du tog för lång tid på dig att ansluta till servern
STR_NETWORK_ERROR_INVALID_CLIENT_NAME :{WHITE}Ditt spelarnamn är inte tillåtet
STR_NETWORK_ERROR_SERVER_TOO_OLD :{WHITE}Servern som fick förfrågan är för gammal för denna klient
############ Leave those lines in this order!!
STR_NETWORK_ERROR_CLIENT_GENERAL :allmänt fel
@ -2206,6 +2247,7 @@ STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :inget lösenord
STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :generell timeout
STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :nedladdning av kartan tog för lång tid
STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :bearbetning av kartan tog för lång tid
STR_NETWORK_ERROR_CLIENT_INVALID_CLIENT_NAME :ogiltigt klientnamn
############ End of leave-in-this-order
STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Anslutningen har troligtvis försvunnit
@ -2234,7 +2276,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} ha
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} har gått med som åskådare
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} har startat ett nytt företag (#{2:NUM})
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} har lämnat spelet ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} har ändrat hans/hennes namn till {STRING}
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} har ändrat sitt namn till {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} gav {2:CURRENCY_LONG} till {1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Servern avslutade sessionen
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Servern startar om...{}Var vänlig vänta...
@ -2326,8 +2368,8 @@ STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}Växla g
STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}Växla genomskinlighet för byggnader såsom stationer, depåer och riktmärken. Ctrl+klick för att låsa
STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}Växla genomskinlighet för broar. Ctrl+klick för att låsa
STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}Växla genomskinlighet för byggnader såsom fyrar och antenner. Ctrl+klick för att låsa
STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Växla genomskinlighet för kontaktledning. CTRL+klick för att låsa
STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Växla genomskinlighet för lastningsindikatörer. CTRL+klick för att låsa
STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Växla genomskinlighet för kontaktledning. Ctrl+klick för att låsa
STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Växla genomskinlighet för lastningsindikatorer. Ctrl+klick för att låsa
STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Gör object osynliga istället för genomskinliga
# Linkgraph legend window
@ -2494,7 +2536,7 @@ STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Bygg ske
STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Bygg hamn. Ctrl aktiverar sammansättning av stationer. Shift växlar mellan att bygga/visa beräknad kostnad
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Placera en boj som kan som kan användas som riktmärke. Shift växlar mellan att bygga/visa beräknad kostnad
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Bygg akvedukt. Shift växlar mellan att bygga/visa beräknad kostnad
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Definiera vattenyta.{}Skapa en kanal, om inte CTRL är nedhållen vid havsnivå, då den kommer att översvämma närliggande områden istället
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Definiera vattenyta.{}Skapa en kanal, såvida inte Ctrl är nedtryckt vid havsnivå, då den istället kommer att översvämma närliggande områden
STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Placera flod. Ctrl markerar ytan diagonalt
# Ship depot construction window
@ -2598,7 +2640,7 @@ STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}Stor
STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}Slumpa
STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}Välj stadsstorlek
STR_FOUND_TOWN_CITY :{BLACK}Stad
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Stora städer växer snabbare än vanliga städer{}Beroende på inställningarna så är de större när de grundas
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Storstäder växer snabbare än vanliga städer{}Beroende på inställningarna så är de större när de grundas
STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Utformning av stadens vägnät:
STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Välj vägnätets utformning för denna stad
@ -3048,7 +3090,8 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Varning: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fel: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatalt: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ett fatalt NewGRF fel har uppstått:{}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ett fatalt NewGRF-fel har uppstått:{}{STRING}
STR_NEWGRF_ERROR_POPUP :{WHITE}Ett NewGRF-fel har uppstått:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} kommer inte att fungera med den TTDPatchversion som rapporterades av OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} är för {STRING}versionen av TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} är designat för att användas med {STRING}
@ -3369,7 +3412,7 @@ STR_FINANCES_LOAN_TITLE :{WHITE}Lån
STR_FINANCES_MAX_LOAN :{WHITE}Maxlån: {BLACK}{CURRENCY_LONG}
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}Låna {CURRENCY_LONG}
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Öka lånets storlek. Ctrl + Klick lånar så mycket som möjligt
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Öka lånets storlek. Ctrl+klick lånar så mycket som möjligt
STR_FINANCES_REPAY_BUTTON :{BLACK}Återbetala {CURRENCY_LONG}
STR_FINANCES_REPAY_TOOLTIP :{BLACK}Återbetala en del av lånet. Ctrl+klick återbetalar så mycket som är möjligt
STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infrastruktur
@ -3526,7 +3569,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Klicka f
STR_GROUP_DELETE_TOOLTIP :{BLACK}Ta bort vald grupp
STR_GROUP_RENAME_TOOLTIP :{BLACK}Byt namn på vald grupp
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Byt färgschema på vald grupp
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klicka för att skydda denna grupp mot allmän autoreplace
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klicka för att skydda denna grupp mot allmän automatisk förnyelse. Ctrl+klicka för att också skydda undergrupper.
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Ta bort grupp
STR_GROUP_DELETE_QUERY_TEXT :{WHITE} Är du säker på att du vill ta bort denna grupp och alla efterkommande?
@ -3779,8 +3822,9 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglevfordon
STR_REPLACE_ROAD_VEHICLES :Vägfordon
STR_REPLACE_TRAM_VEHICLES :Spårvägsfordon
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagnborttagning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagnborttagning ({STRING}): {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbyte behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre
STR_REPLACE_REMOVE_WAGON_GROUP_HELP :{STRING}. Ctrl+klicka för att också tillämpa det på undergrupper
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
@ -3788,7 +3832,7 @@ STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE
STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}Centrera huvudvyn på tågets position. Dubbelklicka för att följa tåget i huvudvyn. Ctrl+klicka öppnar ett nytt fönster över tågets position
STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}Centrera huvudvyn på fordonets position. Dubbelklicka för att följa fordonet i huvudvyn. Ctrl+klicka öppnar ett nytt fönster över fordonets position
STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}Centrera huvudvyn på fartygets position. Dubbelklicka för att följa fartyget i huvudvyn. Ctrl+klicka öppnar ett nytt fönster över fartygets position
STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Centrera huvudvyn på flyplanets position. Dubbelklicka för att följa flyplanet i huvudvyn. Ctrl+klicka öppnar ett nytt fönster över flygplanets position
STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Centrera huvudvyn på flygplanets position. Dubbelklicka för att följa flygplanet i huvudvyn. Ctrl+klicka öppnar ett nytt fönster över flygplanets position
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Skicka tåg till depå. Ctrl+klick skickar tåget enbart på service
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Skicka fordon till depå. Ctrl+klick servar endast
@ -3825,7 +3869,7 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_STATUS_START_STOP_TOOLTIP :{BLACK}Aktuell
STR_VEHICLE_VIEW_SHIP_STATE_STATUS_STOP_TOOLTIP :{BLACK}Aktuell fartygsåtgärd - Tryck för att stoppa/starta fartyg
STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Aktuell flygplansåtgärd - Tryck för att stoppa/starta flygplanet
STR_VEHICLE_VIEW_ORDER_LOCATION_TOOLTIP :{BLACK}Centrera huvudvyn på ordens destination. Ctrl+klick öppnar en ny vy över ordens destination
STR_VEHICLE_VIEW_ORDER_LOCATION_TOOLTIP :{BLACK}Centrera huvudvyn på orderns destination. Ctrl+klick öppnar en ny vy över orderns destination
# Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Lastar / lastar av
@ -3834,7 +3878,7 @@ STR_VEHICLE_STATUS_CRASHED :{RED}Kraschad!
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Motorstopp
STR_VEHICLE_STATUS_STOPPED :{RED}Stoppat
STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Stannar, {VELOCITY}
STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Ingen Kraft
STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Ingen kraft
STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}Väntar på ledig väg
STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}Nästa destination ligger för långt bort
@ -4016,7 +4060,7 @@ STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Värde a
STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Skriv in värde att jämföra mot
STR_ORDERS_SKIP_BUTTON :{BLACK}Skippa
STR_ORDERS_SKIP_TOOLTIP :{BLACK}Hoppa över nuvarande order och starta nästa. CTRL + klick hoppar över till vald order
STR_ORDERS_SKIP_TOOLTIP :{BLACK}Hoppa över nuvarande order och starta nästa. Ctrl+klick hoppar över till vald order
STR_ORDERS_DELETE_BUTTON :{BLACK}Ta bort
STR_ORDERS_DELETE_TOOLTIP :{BLACK}Ta bort markerad order
@ -4123,7 +4167,7 @@ STR_TIMETABLE_DAYS :{COMMA}{NBSP}da
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tick
STR_TIMETABLE_TOTAL_TIME :{BLACK}Den här tidtabellen kommer ta {STRING} att slutföra
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Denna tidtabell kommer att ta åtminstonde {STRING} att slutföra (allt är inte inlagt i en tidtabell)
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Denna tidtabell kommer att ta åtminstone {STRING} att slutföra (allt är inte inlagt i en tidtabell)
STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Detta fordon kör enligt tidtabellen
STR_TIMETABLE_STATUS_LATE :{BLACK}Detta fordon är för tillfället {STRING} sen
@ -4187,7 +4231,7 @@ STR_AI_DEBUG_CONTINUE :{BLACK}Fortsät
STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Opausa och fortsätt datorspelaren
STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Visa debug-utskrifter för denna datorspelare
STR_AI_GAME_SCRIPT :{BLACK}Spelskript
STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Visa debug-utskrifter för spelskript
STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Visa felsökningsutskrifter för spelskript
STR_ERROR_AI_NO_AI_FOUND :Ingen passande datorspelare hittades.{}Denna datorspelare är en test-datorspelare och kommer inte göra någonting.{}Du kan ladda ner nya datorspelare genom spelets 'Online-innehåll'-system
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Ett av skripten som körs har kraschat. Vänligen rapportera detta till datorspelarens skapare med en skärmdump av förstret 'Felsökning av datorspelare / spelskript'
@ -4794,7 +4838,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :Sockergruva
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
STR_SV_UNNAMED :Inget namn
STR_SV_UNNAMED :Utan namn
STR_SV_TRAIN_NAME :Tåg #{COMMA}
STR_SV_ROAD_VEHICLE_NAME :Vägfordon #{COMMA}
STR_SV_SHIP_NAME :Skepp #{COMMA}
@ -4809,10 +4853,10 @@ STR_SV_STNAME_CENTRAL :{STRING} centra
STR_SV_STNAME_TRANSFER :{STRING} övergång
STR_SV_STNAME_HALT :{STRING} hållplats
STR_SV_STNAME_VALLEY :{STRING} dal
STR_SV_STNAME_HEIGHTS :{STRING} Höjder
STR_SV_STNAME_HEIGHTS :{STRING} höjder
STR_SV_STNAME_WOODS :{STRING} skog
STR_SV_STNAME_LAKESIDE :{STRING} sjöstrand
STR_SV_STNAME_EXCHANGE :{STRING} Växel
STR_SV_STNAME_EXCHANGE :{STRING} växel
STR_SV_STNAME_AIRPORT :{STRING} flygplats
STR_SV_STNAME_OILFIELD :{STRING} oljefält
STR_SV_STNAME_MINES :{STRING} gruva

@ -3298,7 +3298,6 @@ STR_REPLACE_MAGLEV_VEHICLES :மேக்ல
STR_REPLACE_ROAD_VEHICLES :சாலை வாகனங்கள்
STR_REPLACE_TRAM_VEHICLES :அமிழ் தண்டூர்தி வாகனங்கள்
STR_REPLACE_REMOVE_WAGON :{BLACK}பெட்டி நீக்கம்: {ORANGE}{STRING}
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}

@ -3404,7 +3404,6 @@ STR_REPLACE_MONORAIL_VEHICLES :ยานพา
STR_REPLACE_MAGLEV_VEHICLES :รถไฟพลังงานแม่แหล็ก
STR_REPLACE_REMOVE_WAGON :{BLACK}ขายรถพ่วง: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}ทำให้การแทนที่ขบวนรถไฟทำให้ความยาวของขบวนยังเท่าเดิม
# Vehicle view

@ -925,6 +925,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :南非蘭特 (Z
STR_GAME_OPTIONS_CURRENCY_CUSTOM :自訂...
STR_GAME_OPTIONS_CURRENCY_GEL :喬治亞拉里 (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :伊朗里亞爾 (IRR)
STR_GAME_OPTIONS_CURRENCY_HKD :港幣 (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :靠左行駛
@ -2667,6 +2668,7 @@ STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}沒有
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF{WHITE}{STRING}
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}覆蓋檔案
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}你確定要覆蓋現有存檔嗎?
STR_SAVELOAD_DIRECTORY :{STRING} (路徑)
STR_SAVELOAD_OSKTITLE :{BLACK}為存檔輸入一個名稱
@ -3236,6 +3238,7 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}將工
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}產出等級:{YELLOW}{COMMA}%
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}該工業已宣佈關閉!
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}需要: {YELLOW}{STRING}{STRING}
STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :{STRING}{STRING}
@ -3517,7 +3520,6 @@ STR_REPLACE_MONORAIL_VEHICLES :單軌列車
STR_REPLACE_MAGLEV_VEHICLES :磁浮列車
STR_REPLACE_REMOVE_WAGON :{BLACK}移除車廂:{ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}如果替換後的車廂較長的話,讓自動替換功能移除多餘的車廂 (從頭開始) 以便維持列車長度
# Vehicle view

@ -3822,7 +3822,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Maglev Araçlar
STR_REPLACE_ROAD_VEHICLES :Yol Araçları
STR_REPLACE_TRAM_VEHICLES :Tramvay Araçları
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon kaldırma: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Otomatik yenilemede tren boyutunun artması gerekiyorsa vagonları kaldır (en önden başlayarak yeterli sayıda vagon silinir)
# Vehicle view

@ -3905,7 +3905,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Магнітн
STR_REPLACE_ROAD_VEHICLES :Авто
STR_REPLACE_TRAM_VEHICLES :Трамвайні транспортні засоби
STR_REPLACE_REMOVE_WAGON :{BLACK}Ліквідація зайвих вагонів: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Дозволити автооновленню видаляти вагони, зберігаючи довжину потягу (починаючи спереду), якщо оновлення робить поїзд довшим
# Vehicle view

@ -3777,7 +3777,6 @@ STR_REPLACE_MAGLEV_VEHICLES :Đầu máy đ
STR_REPLACE_ROAD_VEHICLES :Các xe ô-tô
STR_REPLACE_TRAM_VEHICLES :Các xe điện
STR_REPLACE_REMOVE_WAGON :{BLACK}Xoá bỏ toa xe: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Tự động thay thế sẽ giữ nguyên độ dài đoàn tàu bằng cách bỏ bớt toa xe (bỏ từ phía đầu), nếu như việc thay thế đầu máy làm đoàn tàu dài hơn.
# Vehicle view

@ -3513,7 +3513,6 @@ STR_REPLACE_MONORAIL_VEHICLES :Cerbydau Monore
STR_REPLACE_MAGLEV_VEHICLES :Cerbydau Maglef
STR_REPLACE_REMOVE_WAGON :{BLACK}Tynnu wagenni: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gwneud i awtoddisodli gadw hyd y trên yr un peth drwy dynnu wagenni (gan ddechrau yn y blaen), os byddai newid yr injan yn gwneud y trên yn hirach
# Vehicle view

@ -496,7 +496,7 @@ public:
* Get the current size of the component.
* @return Size.
*/
inline uint Size() const { return (uint)this->nodes.size(); }
inline NodeID Size() const { return (NodeID)this->nodes.size(); }
/**
* Get date of last compression.

@ -103,7 +103,7 @@ void LinkGraphJob::FinaliseJob()
/* Link graph has been merged into another one. */
if (!LinkGraph::IsValidID(this->link_graph.index)) return;
uint size = this->Size();
uint16 size = this->Size();
for (NodeID node_id = 0; node_id < size; ++node_id) {
Node from = (*this)[node_id];

@ -364,7 +364,7 @@ public:
* Get the size of the underlying link graph.
* @return Size.
*/
inline uint Size() const { return this->link_graph.Size(); }
inline NodeID Size() const { return this->link_graph.Size(); }
/**
* Get the cargo of the underlying link graph.

@ -247,7 +247,7 @@ void LinkGraphJobGroup::SpawnThread()
* On the other hand, if you want to play games which make this hang noticably
* on a platform without threads then you'll probably get other problems first.
* OK:
* If someone comes and tells me that this hangs for him/her, I'll implement a
* If someone comes and tells me that this hangs for them, I'll implement a
* smaller grained "Step" method for all handlers and add some more ticks where
* "Step" is called. No problem in principle. */
LinkGraphJobGroup::Run(this);

@ -502,7 +502,7 @@ bool MCF1stPass::EliminateCycles(PathVector &path, NodeID origin_id, NodeID next
bool MCF1stPass::EliminateCycles()
{
bool cycles_found = false;
uint size = this->job.Size();
uint16 size = this->job.Size();
PathVector path(size, nullptr);
for (NodeID node = 0; node < size; ++node) {
/* Starting at each node in the graph find all cycles involving this
@ -520,7 +520,7 @@ bool MCF1stPass::EliminateCycles()
MCF1stPass::MCF1stPass(LinkGraphJob &job) : MultiCommodityFlow(job)
{
PathVector paths;
uint size = job.Size();
uint16 size = job.Size();
uint accuracy = job.Settings().accuracy;
bool more_loops;
std::vector<bool> finished_sources(size);
@ -569,7 +569,7 @@ MCF2ndPass::MCF2ndPass(LinkGraphJob &job) : MultiCommodityFlow(job)
{
this->max_saturation = UINT_MAX; // disable artificial cap on saturation
PathVector paths;
uint size = job.Size();
uint16 size = job.Size();
uint accuracy = job.Settings().accuracy;
bool demand_left = true;
std::vector<bool> finished_sources(size);

@ -106,12 +106,6 @@ struct DumpTarget {
, m_ptr(ptr)
{}
KnownStructKey(const KnownStructKey &src)
{
m_type_id = src.m_type_id;
m_ptr = src.m_ptr;
}
bool operator<(const KnownStructKey &other) const
{
if ((size_t)m_ptr < (size_t)other.m_ptr) return true;

@ -130,7 +130,7 @@ CommandCost CmdDecreaseLoan(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
* In case of an unsafe unpause, we want the
* user to confirm that it might crash.
* @param w unused
* @param confirmed whether the user confirms his/her action
* @param confirmed whether the user confirmed their action
*/
static void AskUnsafeUnpauseCallback(Window *w, bool confirmed)
{

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save