From 6e2a96c1333a0d383c7a0191c75dabd837feeeb5 Mon Sep 17 00:00:00 2001 From: Didac Perez Parera Date: Mon, 8 Mar 2021 03:03:11 -0800 Subject: [PATCH 01/53] Add: filter for "engines only" in build train window (#8733) --- src/build_vehicle_gui.cpp | 38 +++++++++++++++++++++++++------------- src/lang/english.txt | 1 + 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 2a986c4a56..58d6ea4e69 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -86,8 +86,9 @@ static const NWidgetPart _nested_build_vehicle_widgets[] = { }; /** Special cargo filter criteria */ -static const CargoID CF_ANY = CT_NO_REFIT; ///< Show all vehicles independent of carried cargo (i.e. no filtering) -static const CargoID CF_NONE = CT_INVALID; ///< Show only vehicles which do not carry cargo (e.g. train engines) +static const CargoID CF_ANY = CT_NO_REFIT; ///< Show all vehicles independent of carried cargo (i.e. no filtering) +static const CargoID CF_NONE = CT_INVALID; ///< Show only vehicles which do not carry cargo (e.g. train engines) +static const CargoID CF_ENGINES = CT_AUTO_REFIT; ///< Show only engines (for rail vehicles only) bool _engine_sort_direction; ///< \c false = descending, \c true = ascending. byte _engine_sort_last_criteria[] = {0, 0, 0, 0}; ///< Last set sort criteria, for each vehicle type. @@ -531,16 +532,21 @@ const StringID _engine_sort_listing[][12] = {{ INVALID_STRING_ID }}; -/** Cargo filter functions */ -static bool CDECL CargoFilter(const EngineID *eid, const CargoID cid) +/** Filters vehicles by cargo and engine (in case of rail vehicle). */ +static bool CDECL CargoAndEngineFilter(const EngineID *eid, const CargoID cid) { - if (cid == CF_ANY) return true; - CargoTypes refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask; - return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid)); + if (cid == CF_ANY) { + return true; + } else if (cid == CF_ENGINES) { + return Engine::Get(*eid)->GetPower() != 0; + } else { + CargoTypes refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask; + return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid)); + } } static GUIEngineList::FilterFunction * const _filter_funcs[] = { - &CargoFilter, + &CargoAndEngineFilter, }; static int DrawCargoCapacityInfo(int left, int right, int y, EngineID engine, TestedEngineDetails &te) @@ -1046,8 +1052,8 @@ struct BuildVehicleWindow : Window { EngineID sel_engine; ///< Currently selected engine, or #INVALID_ENGINE EngineID rename_engine; ///< Engine being renamed. GUIEngineList eng_list; - CargoID cargo_filter[NUM_CARGO + 2]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE - StringID cargo_filter_texts[NUM_CARGO + 3]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID + CargoID cargo_filter[NUM_CARGO + 3]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE or CF_ENGINES + StringID cargo_filter_texts[NUM_CARGO + 4]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID byte cargo_filter_criteria; ///< Selected cargo filter int details_height; ///< Minimal needed height of the details panels (found so far). Scrollbar *vscroll; @@ -1165,9 +1171,15 @@ struct BuildVehicleWindow : Window { this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_ALL_TYPES; filter_items++; - /* Add item for vehicles not carrying anything, e.g. train engines. - * This could also be useful for eyecandy vehicles of other types, but is likely too confusing for joe, */ + /* Specific filters for trains. */ if (this->vehicle_type == VEH_TRAIN) { + /* Add item for locomotives only in case of trains. */ + this->cargo_filter[filter_items] = CF_ENGINES; + this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_ENGINES_ONLY; + filter_items++; + + /* Add item for vehicles not carrying anything, e.g. train engines. + * This could also be useful for eyecandy vehicles of other types, but is likely too confusing for joe, */ this->cargo_filter[filter_items] = CF_NONE; this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_NONE; filter_items++; @@ -1254,7 +1266,7 @@ struct BuildVehicleWindow : Window { bool FilterSingleEngine(EngineID eid) { CargoID filter_type = this->cargo_filter[this->cargo_filter_criteria]; - return (filter_type == CF_ANY || CargoFilter(&eid, filter_type)); + return CargoAndEngineFilter(&eid, filter_type); } /* Figure out what train EngineIDs to put in the list */ diff --git a/src/lang/english.txt b/src/lang/english.txt index 636516900b..e47914fc04 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3566,6 +3566,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING2} STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_NONE :None +STR_PURCHASE_INFO_ENGINES_ONLY :Engines only STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles From b93d7dd3cbd6dae2011e7863ba8a7aa19614771e Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 8 Mar 2021 15:42:39 +0100 Subject: [PATCH 02/53] Add: Option to (dis-)allow accelerated video drivers. (#8819) The video drivers using the OpenGL backend are currently our only accelerated drivers. The options defaults to off for macOS builds and to on everywhere else. Co-authored-by: Michael Lutz --- src/driver.cpp | 10 ++++++++++ src/driver.h | 9 +++++++++ src/lang/english.txt | 8 ++++++++ src/settings_gui.cpp | 23 ++++++++++++++++++----- src/table/misc_settings.ini | 17 +++++++++++++++++ src/video/cocoa/cocoa_ogl.h | 3 +++ src/video/cocoa/cocoa_v.h | 2 +- src/video/sdl2_opengl_v.h | 3 +++ src/video/video_driver.cpp | 2 ++ src/video/video_driver.hpp | 1 + src/video/win32_v.h | 3 +++ src/widgets/settings_widget.h | 1 + 12 files changed, 76 insertions(+), 6 deletions(-) diff --git a/src/driver.cpp b/src/driver.cpp index c4efd35692..42520648f2 100644 --- a/src/driver.cpp +++ b/src/driver.cpp @@ -9,10 +9,12 @@ #include "stdafx.h" #include "debug.h" +#include "error.h" #include "sound/sound_driver.hpp" #include "music/music_driver.hpp" #include "video/video_driver.hpp" #include "string_func.h" +#include "table/strings.h" #include #include @@ -111,6 +113,8 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t if (d->type != type) continue; if (d->priority != priority) continue; + if (type == Driver::DT_VIDEO && !_video_hw_accel && d->UsesHardwareAcceleration()) continue; + Driver *oldd = *GetActiveDriver(type); Driver *newd = d->CreateInstance(); *GetActiveDriver(type) = newd; @@ -125,6 +129,12 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t *GetActiveDriver(type) = oldd; DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s", GetDriverTypeName(type), d->name, err); delete newd; + + if (type == Driver::DT_VIDEO && _video_hw_accel && d->UsesHardwareAcceleration()) { + _video_hw_accel = false; + ErrorMessageData msg(STR_VIDEO_DRIVER_ERROR, STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION); + ScheduleErrorMessage(msg); + } } } usererror("Couldn't find any suitable %s driver", GetDriverTypeName(type)); diff --git a/src/driver.h b/src/driver.h index 68d9fac929..93aaf61550 100644 --- a/src/driver.h +++ b/src/driver.h @@ -107,6 +107,15 @@ protected: virtual ~DriverFactoryBase(); + /** + * Does the driver use hardware acceleration (video-drivers only). + * @return True if the driver uses hardware acceleration. + */ + virtual bool UsesHardwareAcceleration() const + { + return false; + } + public: /** * Shuts down all active drivers diff --git a/src/lang/english.txt b/src/lang/english.txt index e47914fc04..1b47ec8ded 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1001,6 +1001,10 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen r STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use STR_GAME_OPTIONS_RESOLUTION_OTHER :other +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use @@ -1787,6 +1791,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels +# Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Error with video settings... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no compatible GPU found. Hardware acceleration disabled + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index f89b3f7187..0ef8176bc9 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -35,6 +35,7 @@ #include "querystring_gui.h" #include "fontcache.h" #include "zoom_func.h" +#include "video/video_driver.hpp" #include @@ -381,6 +382,13 @@ struct GameOptionsWindow : Window { this->SetDirty(); break; + case WID_GO_VIDEO_ACCEL_BUTTON: + _video_hw_accel = !_video_hw_accel; + ShowErrorMessage(STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART, INVALID_STRING_ID, WL_INFO); + this->SetWidgetLoweredState(WID_GO_VIDEO_ACCEL_BUTTON, _video_hw_accel); + this->SetDirty(); + break; + default: { int selected; DropDownList list = this->BuildDropDownList(widget, &selected); @@ -493,6 +501,7 @@ struct GameOptionsWindow : Window { { if (!gui_scope) return; this->SetWidgetLoweredState(WID_GO_FULLSCREEN_BUTTON, _fullscreen); + this->SetWidgetLoweredState(WID_GO_VIDEO_ACCEL_BUTTON, _video_hw_accel); bool missing_files = BaseGraphics::GetUsedSet()->GetNumMissing() == 0; this->GetWidget(WID_GO_BASE_GRF_STATUS)->SetDataTip(missing_files ? STR_EMPTY : STR_GAME_OPTIONS_BASE_GRF_STATUS, STR_NULL); @@ -521,14 +530,16 @@ static const NWidgetPart _nested_game_options_widgets[] = { EndContainer(), NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_RESOLUTION_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), SetFill(1, 0), SetPadding(0, 0, 3, 0), - NWidget(NWID_HORIZONTAL), + NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), SetPadding(0, 0, 3, 0), NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), EndContainer(), + NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_VIDEO_ACCELERATION, STR_NULL), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_ACCEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP), + EndContainer(), EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GUI_ZOOM_FRAME, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_GUI_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), - EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 0), SetFill(0, 1), EndContainer(), NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), @@ -538,7 +549,9 @@ static const NWidgetPart _nested_game_options_widgets[] = { NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 0), SetFill(0, 1), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GUI_ZOOM_FRAME, STR_NULL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_GUI_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), + EndContainer(), NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_FONT_ZOOM, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_FONT_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini index 9d2f76cc06..9286d1c959 100644 --- a/src/table/misc_settings.ini +++ b/src/table/misc_settings.ini @@ -12,6 +12,9 @@ static const char *_support8bppmodes = "no|system|hardware"; #ifdef WITH_COCOA extern bool _allow_hidpi_window; #endif +#ifndef WITH_COCOA +#define WITHOUT_COCOA +#endif static const SettingDescGlobVarList _misc_settings[] = { [post-amble] @@ -60,6 +63,20 @@ var = _fullscreen def = false cat = SC_BASIC +[SDTG_BOOL] +ifdef = WITH_COCOA +name = ""video_hw_accel"" +var = _video_hw_accel +def = false +cat = SC_BASIC + +[SDTG_BOOL] +ifdef = WITHOUT_COCOA +name = ""video_hw_accel"" +var = _video_hw_accel +def = true +cat = SC_BASIC + [SDTG_OMANY] name = ""support8bpp"" type = SLE_UINT8 diff --git a/src/video/cocoa/cocoa_ogl.h b/src/video/cocoa/cocoa_ogl.h index be5d731136..9d95cd6066 100644 --- a/src/video/cocoa/cocoa_ogl.h +++ b/src/video/cocoa/cocoa_ogl.h @@ -54,6 +54,9 @@ class FVideoDriver_CocoaOpenGL : public DriverFactoryBase { public: FVideoDriver_CocoaOpenGL() : DriverFactoryBase(Driver::DT_VIDEO, 9, "cocoa-opengl", "Cocoa OpenGL Video Driver") {} Driver *CreateInstance() const override { return new VideoDriver_CocoaOpenGL(); } + +protected: + bool UsesHardwareAcceleration() const override { return true; } }; #endif /* VIDEO_COCOA_OGL_H */ diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h index a32c7065d9..371e4b5bc7 100644 --- a/src/video/cocoa/cocoa_v.h +++ b/src/video/cocoa/cocoa_v.h @@ -122,7 +122,7 @@ protected: class FVideoDriver_CocoaQuartz : public DriverFactoryBase { public: - FVideoDriver_CocoaQuartz() : DriverFactoryBase(Driver::DT_VIDEO, 10, "cocoa", "Cocoa Video Driver") {} + FVideoDriver_CocoaQuartz() : DriverFactoryBase(Driver::DT_VIDEO, 8, "cocoa", "Cocoa Video Driver") {} Driver *CreateInstance() const override { return new VideoDriver_CocoaQuartz(); } }; diff --git a/src/video/sdl2_opengl_v.h b/src/video/sdl2_opengl_v.h index a59233db6d..71bc4373a2 100644 --- a/src/video/sdl2_opengl_v.h +++ b/src/video/sdl2_opengl_v.h @@ -51,4 +51,7 @@ class FVideoDriver_SDL_OpenGL : public DriverFactoryBase { public: FVideoDriver_SDL_OpenGL() : DriverFactoryBase(Driver::DT_VIDEO, 8, "sdl-opengl", "SDL OpenGL Video Driver") {} /* virtual */ Driver *CreateInstance() const override { return new VideoDriver_SDL_OpenGL(); } + +protected: + bool UsesHardwareAcceleration() const override { return true; } }; diff --git a/src/video/video_driver.cpp b/src/video/video_driver.cpp index 5e25184357..cb81f857d8 100644 --- a/src/video/video_driver.cpp +++ b/src/video/video_driver.cpp @@ -17,6 +17,8 @@ #include "../window_func.h" #include "video_driver.hpp" +bool _video_hw_accel; ///< Whether to consider hardware accelerated video drivers. + bool VideoDriver::Tick() { auto cur_ticks = std::chrono::steady_clock::now(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 938dd84bf3..58802efab1 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -23,6 +23,7 @@ extern std::string _ini_videodriver; extern std::vector _resolutions; extern Dimension _cur_resolution; extern bool _rightclick_emulate; +extern bool _video_hw_accel; /** The base of all video drivers. */ class VideoDriver : public Driver { diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 0174671181..6dec59300f 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -175,6 +175,9 @@ class FVideoDriver_Win32OpenGL : public DriverFactoryBase { public: FVideoDriver_Win32OpenGL() : DriverFactoryBase(Driver::DT_VIDEO, 10, "win32-opengl", "Win32 OpenGL Video Driver") {} /* virtual */ Driver *CreateInstance() const override { return new VideoDriver_Win32OpenGL(); } + +protected: + bool UsesHardwareAcceleration() const override { return true; } }; #endif /* WITH_OPENGL */ diff --git a/src/widgets/settings_widget.h b/src/widgets/settings_widget.h index 2eb6180f5c..0b816ee1fe 100644 --- a/src/widgets/settings_widget.h +++ b/src/widgets/settings_widget.h @@ -32,6 +32,7 @@ enum GameOptionsWidgets { WID_GO_BASE_MUSIC_TEXTFILE, ///< Open base music readme, changelog (+1) or license (+2). WID_GO_BASE_MUSIC_DESCRIPTION = WID_GO_BASE_MUSIC_TEXTFILE + TFT_END, ///< Description of selected base music set. WID_GO_FONT_ZOOM_DROPDOWN, ///< Dropdown for the font zoom level. + WID_GO_VIDEO_ACCEL_BUTTON, ///< Toggle for video acceleration. }; /** Widgets of the #GameSettingsWindow class. */ From ae1f7bd6954176c02effe4048e8b9fe900038389 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 8 Mar 2021 15:43:08 +0100 Subject: [PATCH 03/53] Fix 937d60f2: Broken company colours for 40bpp-blitter. (#8821) --- src/blitter/32bpp_optimized.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/blitter/32bpp_optimized.cpp b/src/blitter/32bpp_optimized.cpp index fa1f0bb380..beafcff37f 100644 --- a/src/blitter/32bpp_optimized.cpp +++ b/src/blitter/32bpp_optimized.cpp @@ -356,6 +356,10 @@ template Sprite *Blitter_32bppOptimized::EncodeInternal(const dst_px->r = colour.r; dst_px->g = colour.g; dst_px->b = colour.b; + } else { + dst_px->r = src->r; + dst_px->g = src->g; + dst_px->b = src->b; } } else { dst_px->r = src->r; From 25656a10cb237fc1be7dac3e2207a1986633bf06 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 8 Mar 2021 15:20:49 +0100 Subject: [PATCH 04/53] Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer. --- src/video/cocoa/cocoa_ogl.mm | 2 +- src/video/cocoa/cocoa_v.mm | 4 ++-- src/video/cocoa/cocoa_wnd.mm | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/video/cocoa/cocoa_ogl.mm b/src/video/cocoa/cocoa_ogl.mm index 915f437790..c75de1e043 100644 --- a/src/video/cocoa/cocoa_ogl.mm +++ b/src/video/cocoa/cocoa_ogl.mm @@ -265,7 +265,7 @@ void VideoDriver_CocoaOpenGL::AllocateBackingStore(bool force) CGLSetCurrentContext(this->gl_context); NSRect frame = [ this->cocoaview getRealRect:[ this->cocoaview frame ] ]; OpenGLBackend::Get()->Resize(frame.size.width, frame.size.height, force); - _screen.dst_ptr = this->GetVideoPointer(); + if (this->buffer_locked) _screen.dst_ptr = this->GetVideoPointer(); this->dirty_rect = {}; /* Redraw screen */ diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index af63fe5f4d..7b7fe9d677 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -213,7 +213,7 @@ bool VideoDriver_Cocoa::ToggleFullscreen(bool full_screen) */ bool VideoDriver_Cocoa::AfterBlitterChange() { - this->ChangeResolution(_cur_resolution.width, _cur_resolution.height); + this->AllocateBackingStore(true); return true; } @@ -224,7 +224,7 @@ void VideoDriver_Cocoa::EditBoxLostFocus() { [ [ this->cocoaview inputContext ] discardMarkedText ]; /* Clear any marked string from the current edit box. */ - HandleTextInput(NULL, true); + HandleTextInput(nullptr, true); } /** diff --git a/src/video/cocoa/cocoa_wnd.mm b/src/video/cocoa/cocoa_wnd.mm index d5a7ba84ce..825130006e 100644 --- a/src/video/cocoa/cocoa_wnd.mm +++ b/src/video/cocoa/cocoa_wnd.mm @@ -700,9 +700,9 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel if (!EditBoxInGlobalFocus() || IsInsideMM(pressed_key & ~WKC_SPECIAL_KEYS, WKC_F1, WKC_PAUSE + 1)) { HandleKeypress(pressed_key, unicode); } - DEBUG(driver, 2, "cocoa_v: QZ_KeyEvent: %x (%x), down, mapping: %x", keycode, unicode, pressed_key); + DEBUG(driver, 3, "cocoa_v: QZ_KeyEvent: %x (%x), down, mapping: %x", keycode, unicode, pressed_key); } else { - DEBUG(driver, 2, "cocoa_v: QZ_KeyEvent: %x (%x), up", keycode, unicode); + DEBUG(driver, 3, "cocoa_v: QZ_KeyEvent: %x (%x), up", keycode, unicode); } return interpret_keys; From d3179709b1c848dfad61540cbea3db7ed8deb5fb Mon Sep 17 00:00:00 2001 From: Eddi-z <43699911+Eddi-z@users.noreply.github.com> Date: Mon, 8 Mar 2021 15:44:33 +0100 Subject: [PATCH 05/53] Change: Clarify what effect town interactions have (#8744) --- src/lang/english.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 1b47ec8ded..cc69584b04 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3184,13 +3184,13 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Fund new buildi STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Buy exclusive transport rights STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bribe the local authority -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network. Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honour of your company.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new commercial buildings in the town.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town. Town authority will only allow passengers and cargo to use your company's stations.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a small radius around the town centre.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a medium radius around the town centre.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a large radius around the town centre.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honour of your company.{}Provides a permanent boost to station rating in this town.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}Cost: {CURRENCY_LONG} # Goal window From 04db99749b6cb81f5df92e80fe0e731cb1eb9f12 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 8 Mar 2021 16:57:59 +0100 Subject: [PATCH 06/53] Fix #8784: using alt+enter didn't update the fullscreen toggle visibly (#8820) Basically, the window was not invalidated, so it was never redrawn. This made it look like it wasn't working, but it really was. --- src/video/cocoa/cocoa_v.mm | 1 + src/video/sdl2_v.cpp | 1 + src/video/sdl_v.cpp | 1 + src/video/win32_v.cpp | 5 ++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 7b7fe9d677..1a75017dfe 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -201,6 +201,7 @@ bool VideoDriver_Cocoa::ToggleFullscreen(bool full_screen) [ NSMenu setMenuBarVisible:!full_screen ]; this->UpdateVideoModes(); + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return true; } diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index f122a2921b..a1f8960503 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -761,6 +761,7 @@ bool VideoDriver_SDL_Base::ToggleFullscreen(bool fullscreen) DEBUG(driver, 0, "SDL_SetWindowFullscreen() failed: %s", SDL_GetError()); } + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return ret == 0; } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index f9ec2a86c4..8f7c26b898 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -763,6 +763,7 @@ bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen) _fullscreen ^= true; } + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return ret; } diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index ae1f5aafad..30729ead6d 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -967,7 +967,10 @@ bool VideoDriver_Win32Base::ToggleFullscreen(bool full_screen) std::unique_lock lock; if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - return this->MakeWindow(full_screen); + bool res = this->MakeWindow(full_screen); + + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); + return res; } void VideoDriver_Win32Base::AcquireBlitterLock() From 3878c4781eb72e8f6a3218cb6feefac42daf0730 Mon Sep 17 00:00:00 2001 From: Didac Perez Parera Date: Mon, 8 Mar 2021 08:00:43 -0800 Subject: [PATCH 07/53] Fix #8817: keep NewGRF order for object class sorting (#8818) --- src/object_gui.cpp | 121 +++++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 53 deletions(-) diff --git a/src/object_gui.cpp b/src/object_gui.cpp index 5f9f205b68..b52c22b6ec 100644 --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -29,13 +29,13 @@ #include "safeguards.h" -static const ObjectClass *_selected_object_class; ///< Currently selected available object class. -static int _selected_object_index; ///< Index of the currently selected object if existing, else \c -1. -static uint8 _selected_object_view; ///< the view of the selected object +static ObjectClassID _selected_object_class; ///< Currently selected available object class. +static int _selected_object_index; ///< Index of the currently selected object if existing, else \c -1. +static uint8 _selected_object_view; ///< the view of the selected object /** The window used for building objects. */ class BuildObjectWindow : public Window { - typedef GUIList GUIObjectClassList; ///< Type definition for the list to hold available object classes. + typedef GUIList GUIObjectClassList; ///< Type definition for the list to hold available object classes. static const uint EDITBOX_MAX_SIZE = 16; ///< The maximum number of characters for the filter edit box. static const int OBJECT_MARGIN = 4; ///< The margin (in pixels) around an object. @@ -56,8 +56,8 @@ class BuildObjectWindow : public Window { void EnsureSelectedObjectClassIsVisible() { uint pos = 0; - for (auto objclass : this->object_classes) { - if (objclass == _selected_object_class) break; + for (auto object_class_id : this->object_classes) { + if (object_class_id == _selected_object_class) break; pos++; } this->vscroll->ScrollTowards(pos); @@ -71,9 +71,10 @@ class BuildObjectWindow : public Window { { if (_selected_object_index == -1) return false; - if ((int)_selected_object_class->GetSpecCount() <= _selected_object_index) return false; + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + if ((int)objclass->GetSpecCount() <= _selected_object_index) return false; - return _selected_object_class->GetSpec(_selected_object_index)->IsAvailable(); + return objclass->GetSpec(_selected_object_index)->IsAvailable(); } /** @@ -121,23 +122,18 @@ public: this->InvalidateData(); } - /** Sort object classes by class name. */ - static bool NameSorter(const ObjectClass * const &a, const ObjectClass * const &b) + /** Sort object classes by ObjectClassID. */ + static bool ObjectClassIDSorter(ObjectClassID const &a, ObjectClassID const &b) { - char buffer_a[DRAW_STRING_BUFFER]; - GetString(buffer_a, a->name, lastof(buffer_a)); - - char buffer_b[DRAW_STRING_BUFFER]; - GetString(buffer_b, b->name, lastof(buffer_b)); - - return strnatcmp(buffer_a, buffer_b, true) < 0; // Sort by name (natural sorting). + return a < b; } /** Filter object classes by class name. */ - static bool CDECL TagNameFilter(const ObjectClass * const *oc, StringFilter &filter) + static bool CDECL TagNameFilter(ObjectClassID const *oc, StringFilter &filter) { + ObjectClass *objclass = ObjectClass::Get(*oc); char buffer[DRAW_STRING_BUFFER]; - GetString(buffer, (*oc)->name, lastof(buffer)); + GetString(buffer, objclass->name, lastof(buffer)); filter.ResetState(); filter.AddLine(buffer); @@ -154,7 +150,7 @@ public: for (uint i = 0; i < ObjectClass::GetClassCount(); i++) { ObjectClass *objclass = ObjectClass::Get((ObjectClassID)i); if (objclass->GetUISpecCount() == 0) continue; // Is this needed here? - object_classes.push_back(objclass); + object_classes.push_back((ObjectClassID)i); } this->object_classes.Filter(this->string_filter); @@ -172,7 +168,7 @@ public: void SelectClassAndObject() { assert(!this->object_classes.empty()); // object GUI should be disabled elsewise - if (_selected_object_class == nullptr) { + if (_selected_object_class == ObjectClassID::OBJECT_CLASS_BEGIN) { /* This happens during the first time the window is open during the game life cycle. */ this->SelectOtherClass(this->object_classes[0]); } else { @@ -180,8 +176,7 @@ public: * result of starting a new game without the corresponding NewGRF. */ bool available = false; for (uint i = 0; ObjectClass::GetClassCount(); ++i) { - ObjectClass *objclass = ObjectClass::Get((ObjectClassID)i); - if (objclass == _selected_object_class) { + if ((ObjectClassID)i == _selected_object_class) { available = true; break; } @@ -199,20 +194,23 @@ public: } else { this->SelectFirstAvailableObject(true); } - assert(_selected_object_class->GetUISpecCount() > 0); // object GUI should be disabled elsewise + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + assert(objclass->GetUISpecCount() > 0); // object GUI should be disabled elsewise } void SetStringParameters(int widget) const override { switch (widget) { case WID_BO_OBJECT_NAME: { - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); SetDParam(0, spec != nullptr ? spec->name : STR_EMPTY); break; } case WID_BO_OBJECT_SIZE: { - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); int size = spec == nullptr ? 0 : spec->size; SetDParam(0, GB(size, HasBit(_selected_object_view, 0) ? 4 : 0, 4)); SetDParam(1, GB(size, HasBit(_selected_object_view, 0) ? 0 : 4, 4)); @@ -227,7 +225,8 @@ public: { switch (widget) { case WID_BO_CLASS_LIST: { - for (auto objclass : this->object_classes) { + for (auto object_class_id : this->object_classes) { + ObjectClass *objclass = ObjectClass::Get(object_class_id); if (objclass->GetUISpecCount() == 0) continue; size->width = std::max(size->width, GetStringBoundingBox(objclass->name).width); } @@ -246,7 +245,8 @@ public: case WID_BO_OBJECT_MATRIX: { /* Get the right amount of buttons based on the current spec. */ - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); if (spec != nullptr) { if (spec->views >= 2) size->width += resize->width; if (spec->views >= 4) size->height += resize->height; @@ -286,7 +286,8 @@ public: } /* Get the right size for the single widget based on the current spec. */ - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); if (spec != nullptr) { if (spec->views >= 2) size->width = size->width / 2 - 1; if (spec->views >= 4) size->height = size->height / 2 - 1; @@ -318,11 +319,12 @@ public: case WID_BO_CLASS_LIST: { int y = r.top; uint pos = 0; - for (auto objclass : this->object_classes) { + for (auto object_class_id : this->object_classes) { + ObjectClass *objclass = ObjectClass::Get(object_class_id); if (objclass->GetUISpecCount() == 0) continue; if (!this->vscroll->IsVisible(pos++)) continue; DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, objclass->name, - (objclass == _selected_object_class) ? TC_WHITE : TC_BLACK); + (object_class_id == _selected_object_class) ? TC_WHITE : TC_BLACK); y += this->line_height; } break; @@ -331,7 +333,8 @@ public: case WID_BO_OBJECT_SPRITE: { if (_selected_object_index == -1) break; - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); if (spec == nullptr) break; /* Height of the selection matrix. @@ -359,9 +362,10 @@ public: } case WID_BO_SELECT_IMAGE: { - int obj_index = _selected_object_class->GetIndexFromUI(GB(widget, 16, 16)); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + int obj_index = objclass->GetIndexFromUI(GB(widget, 16, 16)); if (obj_index < 0) break; - const ObjectSpec *spec = _selected_object_class->GetSpec(obj_index); + const ObjectSpec *spec = objclass->GetSpec(obj_index); if (spec == nullptr) break; if (!spec->IsAvailable()) { @@ -386,7 +390,8 @@ public: } case WID_BO_INFO: { - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); if (spec == nullptr) break; /* Get the extra message for the GUI */ @@ -421,10 +426,11 @@ public: * Select the specified object class. * @param object_class Object class select. */ - void SelectOtherClass(const ObjectClass *object_class) + void SelectOtherClass(ObjectClassID object_class) { _selected_object_class = object_class; - this->GetWidget(WID_BO_SELECT_MATRIX)->SetCount(_selected_object_class->GetUISpecCount()); + ObjectClass *objclass = ObjectClass::Get(object_class); + this->GetWidget(WID_BO_SELECT_MATRIX)->SetCount(objclass->GetUISpecCount()); } /** @@ -435,7 +441,8 @@ public: { _selected_object_index = object_index; if (_selected_object_index != -1) { - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); _selected_object_view = std::min(_selected_object_view, spec->views - 1); this->ReInit(); } else { @@ -454,7 +461,8 @@ public: if (_selected_object_index == -1) { SetTileSelectSize(1, 1); } else { - const ObjectSpec *spec = _selected_object_class->GetSpec(_selected_object_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + const ObjectSpec *spec = objclass->GetSpec(_selected_object_index); int w = GB(spec->size, HasBit(_selected_object_view, 0) ? 4 : 0, 4); int h = GB(spec->size, HasBit(_selected_object_view, 0) ? 0 : 4, 4); SetTileSelectSize(w, h); @@ -467,7 +475,7 @@ public: * @param sel_index Index of the object to select, or \c -1 . * @param sel_view View of the object to select. */ - void UpdateButtons(const ObjectClass *object_class, int sel_index, uint sel_view) + void UpdateButtons(ObjectClassID object_class, int sel_index, uint sel_view) { int view_number, object_number; if (sel_index == -1) { @@ -475,7 +483,8 @@ public: object_number = -1; } else { view_number = sel_view; - object_number = object_class->GetUIFromIndex(sel_index); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + object_number = objclass->GetUIFromIndex(sel_index); } this->GetWidget(WID_BO_OBJECT_MATRIX)->SetClicked(view_number); @@ -509,8 +518,9 @@ public: } case WID_BO_SELECT_IMAGE: { - int num_clicked = _selected_object_class->GetIndexFromUI(GB(widget, 16, 16)); - if (num_clicked >= 0 && _selected_object_class->GetSpec(num_clicked)->IsAvailable()) this->SelectOtherObject(num_clicked); + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + int num_clicked = objclass->GetIndexFromUI(GB(widget, 16, 16)); + if (num_clicked >= 0 && objclass->GetSpec(num_clicked)->IsAvailable()) this->SelectOtherObject(num_clicked); break; } @@ -525,7 +535,8 @@ public: void OnPlaceObject(Point pt, TileIndex tile) override { - DoCommandP(tile, _selected_object_class->GetSpec(_selected_object_index)->Index(), + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + DoCommandP(tile, objclass->GetSpec(_selected_object_index)->Index(), _selected_object_view, CMD_BUILD_OBJECT | CMD_MSG(STR_ERROR_CAN_T_BUILD_OBJECT), CcTerraform); } @@ -549,9 +560,11 @@ public: */ void SelectFirstAvailableObject(bool change_class) { + ObjectClass *objclass = ObjectClass::Get(_selected_object_class); + /* First try to select an object in the selected class. */ - for (uint i = 0; i < _selected_object_class->GetSpecCount(); i++) { - const ObjectSpec *spec = _selected_object_class->GetSpec(i); + for (uint i = 0; i < objclass->GetSpecCount(); i++) { + const ObjectSpec *spec = objclass->GetSpec(i); if (spec->IsAvailable()) { this->SelectOtherObject(i); return; @@ -560,11 +573,12 @@ public: if (change_class) { /* If that fails, select the first available object * from a random class. */ - for (auto objclass : this->object_classes) { + for (auto object_class_id : this->object_classes) { + ObjectClass *objclass = ObjectClass::Get(object_class_id); for (uint i = 0; i < objclass->GetSpecCount(); i++) { const ObjectSpec *spec = objclass->GetSpec(i); if (spec->IsAvailable()) { - this->SelectOtherClass(objclass); + this->SelectOtherClass(object_class_id); this->SelectOtherObject(i); return; } @@ -572,11 +586,12 @@ public: } } /* If all objects are unavailable, select nothing... */ - if (_selected_object_class->GetUISpecCount() == 0) { + if (objclass->GetUISpecCount() == 0) { /* ... but make sure that the class is not empty. */ - for (auto objclass : this->object_classes) { + for (auto object_class_id : this->object_classes) { + ObjectClass *objclass = ObjectClass::Get(object_class_id); if (objclass->GetUISpecCount() > 0) { - this->SelectOtherClass(objclass); + this->SelectOtherClass(object_class_id); break; } } @@ -589,7 +604,7 @@ Listing BuildObjectWindow::last_sorting = { false, 0 }; Filtering BuildObjectWindow::last_filtering = { false, 0 }; BuildObjectWindow::GUIObjectClassList::SortFunction * const BuildObjectWindow::sorter_funcs[] = { - &NameSorter, + &ObjectClassIDSorter, }; BuildObjectWindow::GUIObjectClassList::FilterFunction * const BuildObjectWindow::filter_funcs[] = { @@ -662,5 +677,5 @@ void ShowBuildObjectPicker() /** Reset all data of the object GUI. */ void InitializeObjectGui() { - _selected_object_class = nullptr; + _selected_object_class = ObjectClassID::OBJECT_CLASS_BEGIN; } From 818bee3961d41dc830803792ab3cbe064c8b1f65 Mon Sep 17 00:00:00 2001 From: dP Date: Sun, 21 Feb 2021 01:00:11 +0300 Subject: [PATCH 08/53] Change: Don't show global goals in company goal windows --- src/goal_gui.cpp | 93 ++++++++++---------------------------------- src/lang/english.txt | 3 -- 2 files changed, 20 insertions(+), 76 deletions(-) diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index 86f73dd0bc..bf200050b0 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -66,33 +66,13 @@ struct GoalListWindow : public Window { if (widget != WID_GOAL_LIST) return; int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP); - int num = 0; for (const Goal *s : Goal::Iterate()) { - if (s->company == INVALID_COMPANY) { - y--; + if (s->company == this->window_number) { if (y == 0) { this->HandleClick(s); return; } - num++; - } - } - - if (num == 0) { - y--; // "None" line. - if (y < 0) return; - } - - y -= 2; // "Company specific goals:" line. - if (y < 0) return; - - for (const Goal *s : Goal::Iterate()) { - if (s->company == this->window_number && s->company != INVALID_COMPANY) { y--; - if (y == 0) { - this->HandleClick(s); - return; - } } } } @@ -161,28 +141,21 @@ struct GoalListWindow : public Window { uint CountLines() { /* Count number of (non) awarded goals. */ - uint num_global = 0; - uint num_company = 0; + uint num = 0; for (const Goal *s : Goal::Iterate()) { - if (s->company == INVALID_COMPANY) { - num_global++; - } else if (s->company == this->window_number) { - num_company++; - } + if (s->company == this->window_number) num++; } /* Count the 'none' lines. */ - if (num_global == 0) num_global = 1; - if (num_company == 0) num_company = 1; + if (num == 0) num = 1; - /* Global, company and an empty line before the accepted ones. */ - return 3 + num_global + num_company; + return num; } void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override { if (widget != WID_GOAL_LIST) return; - Dimension d = maxdim(GetStringBoundingBox(STR_GOALS_GLOBAL_TITLE), GetStringBoundingBox(STR_GOALS_COMPANY_TITLE)); + Dimension d = GetStringBoundingBox(STR_GOALS_NONE); resize->height = d.height; @@ -193,26 +166,26 @@ struct GoalListWindow : public Window { } /** - * Draws either the global goals or the company goal section. - * This is a helper method for #DrawWidget. - * @param[in,out] pos Vertical line number to draw. - * @param cap Number of lines to draw in the window. - * @param x Left edge of the text line to draw. - * @param y Vertical position of the top edge of the window. - * @param right Right edge of the text line to draw. - * @param global_section Whether the global goals are printed. + * Draws a given column of the goal list. * @param column Which column to draw. + * @param wid Pointer to the goal list widget. + * @param progress_col_width Width of the progress column. + * @return max width of drawn text */ - void DrawPartialGoalList(int &pos, const int cap, int x, int y, int right, uint progress_col_width, bool global_section, GoalColumn column) const + void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const { - if (column == GC_GOAL && IsInsideMM(pos, 0, cap)) DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, global_section ? STR_GOALS_GLOBAL_TITLE : STR_GOALS_COMPANY_TITLE); - pos++; - + /* Get column draw area. */ + int y = wid->pos_y + WD_FRAMERECT_TOP; + int x = wid->pos_x + WD_FRAMERECT_LEFT; + int right = x + wid->current_x - WD_FRAMERECT_RIGHT; bool rtl = _current_text_dir == TD_RTL; + int pos = -this->vscroll->GetPosition(); + const int cap = this->vscroll->GetCapacity(); + uint num = 0; for (const Goal *s : Goal::Iterate()) { - if (global_section ? s->company == INVALID_COMPANY : (s->company == this->window_number && s->company != INVALID_COMPANY)) { + if (s->company == this->window_number) { if (IsInsideMM(pos, 0, cap)) { switch (column) { case GC_GOAL: { @@ -241,38 +214,12 @@ struct GoalListWindow : public Window { if (num == 0) { if (column == GC_GOAL && IsInsideMM(pos, 0, cap)) { - StringID str = !global_section && this->window_number == INVALID_COMPANY ? STR_GOALS_SPECTATOR_NONE : STR_GOALS_NONE; - DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, str); + DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, STR_GOALS_NONE); } pos++; } } - /** - * Draws a given column of the goal list. - * @param column Which column to draw. - * @param wid Pointer to the goal list widget. - * @param progress_col_width Width of the progress column. - * @return max width of drawn text - */ - void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const - { - /* Get column draw area. */ - int y = wid->pos_y + WD_FRAMERECT_TOP; - int x = wid->pos_x + WD_FRAMERECT_LEFT; - int right = x + wid->current_x - WD_FRAMERECT_RIGHT; - - int pos = -this->vscroll->GetPosition(); - const int cap = this->vscroll->GetCapacity(); - - /* Draw partial list with global goals. */ - DrawPartialGoalList(pos, cap, x, y, right, progress_col_width, true, column); - - /* Draw partial list with company goals. */ - pos++; - DrawPartialGoalList(pos, cap, x, y, right, progress_col_width, false, column); - } - void OnPaint() override { this->DrawWidgets(); diff --git a/src/lang/english.txt b/src/lang/english.txt index cc69584b04..29ffa58554 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3197,13 +3197,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe t STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals STR_GOALS_SPECTATOR :Global Goals -STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals: STR_GOALS_TEXT :{ORANGE}{RAW_STRING} STR_GOALS_NONE :{ORANGE}- None - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable - STR_GOALS_PROGRESS :{ORANGE}{RAW_STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{RAW_STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Company goals: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to centre main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location # Goal question window From 56911a86ea2fad84383729ece63c837dc012f14d Mon Sep 17 00:00:00 2001 From: dP Date: Sun, 21 Feb 2021 02:32:45 +0300 Subject: [PATCH 09/53] Add: Buttons to open global goals from company goals and vice versa --- src/company_cmd.cpp | 1 + src/goal_gui.cpp | 38 ++++++++++++++++++++++++++++++-------- src/lang/english.txt | 4 ++++ src/widgets/goal_widget.h | 9 ++++++--- 4 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 946ff0d57d..ab9e7e12ef 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -120,6 +120,7 @@ void SetLocalCompany(CompanyID new_company) /* ... and redraw the whole screen. */ MarkWholeScreenDirty(); InvalidateWindowClassesData(WC_SIGN_LIST, -1); + InvalidateWindowClassesData(WC_GOALS_LIST); } /** diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index bf200050b0..9fdca309bc 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -46,6 +46,8 @@ struct GoalListWindow : public Window { this->vscroll = this->GetScrollbar(WID_GOAL_SCROLLBAR); this->FinishInitNested(window_number); this->owner = (Owner)this->window_number; + NWidgetStacked *wi = this->GetWidget(WID_GOAL_SELECT_BUTTONS); + wi->SetDisplayedPlane(window_number == INVALID_COMPANY ? 1 : 0); this->OnInvalidateData(0); } @@ -63,17 +65,31 @@ struct GoalListWindow : public Window { void OnClick(Point pt, int widget, int click_count) override { - if (widget != WID_GOAL_LIST) return; + switch (widget) { + case WID_GOAL_GLOBAL_BUTTON: + ShowGoalsList(INVALID_COMPANY); + break; - int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP); - for (const Goal *s : Goal::Iterate()) { - if (s->company == this->window_number) { - if (y == 0) { - this->HandleClick(s); - return; + case WID_GOAL_COMPANY_BUTTON: + ShowGoalsList(_local_company); + break; + + case WID_GOAL_LIST: { + int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP); + for (const Goal *s : Goal::Iterate()) { + if (s->company == this->window_number) { + if (y == 0) { + this->HandleClick(s); + return; + } + y--; + } } - y--; + break; } + + default: + break; } } @@ -260,6 +276,8 @@ struct GoalListWindow : public Window { { if (!gui_scope) return; this->vscroll->SetCount(this->CountLines()); + this->SetWidgetDisabledState(WID_GOAL_COMPANY_BUTTON, _local_company == COMPANY_SPECTATOR); + this->SetWidgetDirty(WID_GOAL_COMPANY_BUTTON); this->SetWidgetDirty(WID_GOAL_LIST); } }; @@ -269,6 +287,10 @@ static const NWidgetPart _nested_goals_list_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_BROWN), NWidget(WWT_CAPTION, COLOUR_BROWN, WID_GOAL_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GOAL_SELECT_BUTTONS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_GOAL_GLOBAL_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GOALS_GLOBAL_BUTTON, STR_GOALS_GLOBAL_BUTTON_HELPTEXT), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_GOAL_COMPANY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GOALS_COMPANY_BUTTON, STR_GOALS_COMPANY_BUTTON_HELPTEXT), + EndContainer(), NWidget(WWT_SHADEBOX, COLOUR_BROWN), NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), NWidget(WWT_STICKYBOX, COLOUR_BROWN), diff --git a/src/lang/english.txt b/src/lang/english.txt index 29ffa58554..6e803a37c0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3197,6 +3197,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe t STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals STR_GOALS_SPECTATOR :Global Goals +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Show global goals +STR_GOALS_COMPANY_BUTTON :{BLACK}Company +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Show company goals STR_GOALS_TEXT :{ORANGE}{RAW_STRING} STR_GOALS_NONE :{ORANGE}- None - STR_GOALS_PROGRESS :{ORANGE}{RAW_STRING} diff --git a/src/widgets/goal_widget.h b/src/widgets/goal_widget.h index ad530210ba..27c5cf7222 100644 --- a/src/widgets/goal_widget.h +++ b/src/widgets/goal_widget.h @@ -13,9 +13,12 @@ /** Widgets of the #GoalListWindow class. */ enum GoalListWidgets { - WID_GOAL_CAPTION, ///< Caption of the window. - WID_GOAL_LIST, ///< Goal list. - WID_GOAL_SCROLLBAR, ///< Scrollbar of the goal list. + WID_GOAL_CAPTION, ///< Caption of the window. + WID_GOAL_SELECT_BUTTONS, ///< Selection widget for the title bar button. + WID_GOAL_GLOBAL_BUTTON, ///< Button to show global goals. + WID_GOAL_COMPANY_BUTTON, ///< Button to show company goals. + WID_GOAL_LIST, ///< Goal list. + WID_GOAL_SCROLLBAR, ///< Scrollbar of the goal list. }; /** Widgets of the #GoalQuestionWindow class. */ From 4610aa7ae3db6cf561e156ba011de3c7b516876d Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 24 Feb 2021 15:04:41 +0100 Subject: [PATCH 10/53] Remove: [Video] no longer draw in a thread Drawing in a thread is a bit odd, and often leads to surprising issues. For example, OpenGL would only allow it if you move the full context to the thread. Which is not always easily done on all OSes. In general, the advise is to handle system events and drawing from the main thread, and do everything else in other threads. So, let's be more like other games. Additionally, putting the drawing routine in a thread was only done for a few targets. Upcoming commit will move the GameLoop in a thread, which will work for all targets. --- src/video/allegro_v.cpp | 4 +- src/video/cocoa/cocoa_v.mm | 4 +- src/video/sdl2_default_v.cpp | 16 ----- src/video/sdl2_default_v.h | 1 - src/video/sdl2_opengl_v.cpp | 1 - src/video/sdl2_opengl_v.h | 2 - src/video/sdl2_v.cpp | 113 +++------------------------------- src/video/sdl2_v.h | 12 ---- src/video/sdl_v.cpp | 115 +---------------------------------- src/video/sdl_v.h | 11 ---- src/video/video_driver.cpp | 8 +-- src/video/video_driver.hpp | 12 ++-- src/video/win32_v.cpp | 110 +-------------------------------- src/video/win32_v.h | 19 +----- 14 files changed, 20 insertions(+), 408 deletions(-) diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index a01a9a5e7c..8ff1cc634c 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -478,9 +478,7 @@ void VideoDriver_Allegro::MainLoop() for (;;) { if (_exit_game) return; - if (this->Tick()) { - this->Paint(); - } + this->Tick(); this->SleepTillNextTick(); } } diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 1a75017dfe..56d559f0dc 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -443,9 +443,7 @@ void VideoDriver_Cocoa::MainLoopReal() break; } - if (this->Tick()) { - this->Paint(); - } + this->Tick(); this->SleepTillNextTick(); } } diff --git a/src/video/sdl2_default_v.cpp b/src/video/sdl2_default_v.cpp index b8e769ede0..e61405ff83 100644 --- a/src/video/sdl2_default_v.cpp +++ b/src/video/sdl2_default_v.cpp @@ -136,22 +136,6 @@ void VideoDriver_SDL_Default::Paint() this->dirty_rect = {}; } -void VideoDriver_SDL_Default::PaintThread() -{ - /* First tell the main thread we're started */ - std::unique_lock lock(*this->draw_mutex); - this->draw_signal->notify_one(); - - /* Now wait for the first thing to draw! */ - this->draw_signal->wait(*this->draw_mutex); - - while (this->draw_continue) { - /* Then just draw and wait till we stop */ - this->Paint(); - this->draw_signal->wait(lock); - } -} - bool VideoDriver_SDL_Default::AllocateBackingStore(int w, int h, bool force) { int bpp = BlitterFactory::GetCurrentBlitter()->GetScreenDepth(); diff --git a/src/video/sdl2_default_v.h b/src/video/sdl2_default_v.h index 1b67be5d39..3e1e3b894c 100644 --- a/src/video/sdl2_default_v.h +++ b/src/video/sdl2_default_v.h @@ -21,7 +21,6 @@ protected: bool AllocateBackingStore(int w, int h, bool force = false) override; void *GetVideoPointer() override; void Paint() override; - void PaintThread() override; void ReleaseVideoPointer() override {} diff --git a/src/video/sdl2_opengl_v.cpp b/src/video/sdl2_opengl_v.cpp index 87a8bb9b36..4bd66a9949 100644 --- a/src/video/sdl2_opengl_v.cpp +++ b/src/video/sdl2_opengl_v.cpp @@ -71,7 +71,6 @@ const char *VideoDriver_SDL_OpenGL::Start(const StringList ¶m) this->ClientSizeChanged(w, h, true); SDL_GL_SetSwapInterval(GetDriverParamBool(param, "vsync") ? 1 : 0); - this->draw_threaded = false; return nullptr; } diff --git a/src/video/sdl2_opengl_v.h b/src/video/sdl2_opengl_v.h index 71bc4373a2..55697b43bb 100644 --- a/src/video/sdl2_opengl_v.h +++ b/src/video/sdl2_opengl_v.h @@ -36,8 +36,6 @@ protected: void Paint() override; bool CreateMainWindow(uint w, uint h, uint flags) override; - void PaintThread() override {} - private: void *gl_context; ///< OpenGL context. uint8 *anim_buffer; ///< Animation buffer from OpenGL back-end. diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index a1f8960503..c1925c7da5 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -23,7 +23,6 @@ #include "../window_func.h" #include "sdl2_v.h" #include -#include #ifdef __EMSCRIPTEN__ # include # include @@ -50,11 +49,6 @@ void VideoDriver_SDL_Base::CheckPaletteAnim() this->MakeDirty(0, 0, _screen.width, _screen.height); } -/* static */ void VideoDriver_SDL_Base::PaintThreadThunk(VideoDriver_SDL_Base *drv) -{ - drv->PaintThread(); -} - static const Dimension default_resolutions[] = { { 640, 480 }, { 800, 600 }, @@ -565,19 +559,6 @@ const char *VideoDriver_SDL_Base::Start(const StringList &parm) MarkWholeScreenDirty(); - this->draw_threaded = !GetDriverParamBool(parm, "no_threads") && !GetDriverParamBool(parm, "no_thread"); - /* Wayland SDL video driver uses EGL to render the game. SDL created the - * EGL context from the main-thread, and with EGL you are not allowed to - * draw in another thread than the context was created. The function of - * draw_threaded is to do exactly this: draw in another thread than the - * window was created, and as such, this fails on Wayland SDL video - * driver. So, we disable threading by default if Wayland SDL video - * driver is detected. - */ - if (strcmp(dname, "wayland") == 0) { - this->draw_threaded = false; - } - SDL_StopTextInput(); this->edit_box_focused = false; @@ -631,18 +612,17 @@ void VideoDriver_SDL_Base::LoopOnce() * After that, Emscripten just halts, and the HTML shows a nice * "bye, see you next time" message. */ emscripten_cancel_main_loop(); - MainLoopCleanup(); + emscripten_exit_pointerlock(); + /* In effect, the game ends here. As emscripten_set_main_loop() caused + * the stack to be unwound, the code after MainLoop() in + * openttd_main() is never executed. */ + EM_ASM(if (window["openttd_syncfs"]) openttd_syncfs()); + EM_ASM(if (window["openttd_exit"]) openttd_exit()); #endif return; } - if (VideoDriver::Tick()) { - if (this->draw_mutex != nullptr && !HasModalProgress()) { - this->draw_signal->notify_one(); - } else { - this->Paint(); - } - } + this->Tick(); /* Emscripten is running an event-based mainloop; there is already some * downtime between each iteration, so no need to sleep. */ @@ -653,36 +633,6 @@ void VideoDriver_SDL_Base::LoopOnce() void VideoDriver_SDL_Base::MainLoop() { - if (this->draw_threaded) { - /* Initialise the mutex first, because that's the thing we *need* - * directly in the newly created thread. */ - this->draw_mutex = new std::recursive_mutex(); - if (this->draw_mutex == nullptr) { - this->draw_threaded = false; - } else { - draw_lock = std::unique_lock(*this->draw_mutex); - this->draw_signal = new std::condition_variable_any(); - this->draw_continue = true; - - this->draw_threaded = StartNewThread(&draw_thread, "ottd:draw-sdl", &VideoDriver_SDL_Base::PaintThreadThunk, this); - - /* Free the mutex if we won't be able to use it. */ - if (!this->draw_threaded) { - draw_lock.unlock(); - draw_lock.release(); - delete this->draw_mutex; - delete this->draw_signal; - this->draw_mutex = nullptr; - this->draw_signal = nullptr; - } else { - /* Wait till the draw mutex has started itself. */ - this->draw_signal->wait(*this->draw_mutex); - } - } - } - - DEBUG(driver, 1, "SDL2: using %sthreads", this->draw_threaded ? "" : "no "); - #ifdef __EMSCRIPTEN__ /* Run the main loop event-driven, based on RequestAnimationFrame. */ emscripten_set_main_loop_arg(&this->EmscriptenLoop, this, 0, 1); @@ -690,52 +640,16 @@ void VideoDriver_SDL_Base::MainLoop() while (!_exit_game) { LoopOnce(); } - - MainLoopCleanup(); -#endif -} - -void VideoDriver_SDL_Base::MainLoopCleanup() -{ - if (this->draw_mutex != nullptr) { - this->draw_continue = false; - /* Sending signal if there is no thread blocked - * is very valid and results in noop */ - this->draw_signal->notify_one(); - if (draw_lock.owns_lock()) draw_lock.unlock(); - draw_lock.release(); - draw_thread.join(); - - delete this->draw_mutex; - delete this->draw_signal; - - this->draw_mutex = nullptr; - this->draw_signal = nullptr; - } - -#ifdef __EMSCRIPTEN__ - emscripten_exit_pointerlock(); - /* In effect, the game ends here. As emscripten_set_main_loop() caused - * the stack to be unwound, the code after MainLoop() in - * openttd_main() is never executed. */ - EM_ASM(if (window["openttd_syncfs"]) openttd_syncfs()); - EM_ASM(if (window["openttd_exit"]) openttd_exit()); #endif } bool VideoDriver_SDL_Base::ChangeResolution(int w, int h) { - std::unique_lock lock; - if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - return CreateMainSurface(w, h, true); } bool VideoDriver_SDL_Base::ToggleFullscreen(bool fullscreen) { - std::unique_lock lock; - if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - int w, h; /* Remember current window size */ @@ -773,16 +687,6 @@ bool VideoDriver_SDL_Base::AfterBlitterChange() return CreateMainSurface(w, h, false); } -void VideoDriver_SDL_Base::AcquireBlitterLock() -{ - if (this->draw_mutex != nullptr) this->draw_mutex->lock(); -} - -void VideoDriver_SDL_Base::ReleaseBlitterLock() -{ - if (this->draw_mutex != nullptr) this->draw_mutex->unlock(); -} - Dimension VideoDriver_SDL_Base::GetScreenSize() const { SDL_DisplayMode mode; @@ -796,8 +700,6 @@ bool VideoDriver_SDL_Base::LockVideoBuffer() if (this->buffer_locked) return false; this->buffer_locked = true; - if (this->draw_threaded) this->draw_lock.lock(); - _screen.dst_ptr = this->GetVideoPointer(); assert(_screen.dst_ptr != nullptr); @@ -812,6 +714,5 @@ void VideoDriver_SDL_Base::UnlockVideoBuffer() _screen.dst_ptr = nullptr; } - if (this->draw_threaded) this->draw_lock.unlock(); this->buffer_locked = false; } diff --git a/src/video/sdl2_v.h b/src/video/sdl2_v.h index 48515251a2..b1a64dd9c8 100644 --- a/src/video/sdl2_v.h +++ b/src/video/sdl2_v.h @@ -33,10 +33,6 @@ public: bool AfterBlitterChange() override; - void AcquireBlitterLock() override; - - void ReleaseBlitterLock() override; - bool ClaimMousePointer() override; void EditBoxGainedFocus() override; @@ -48,10 +44,6 @@ public: protected: struct SDL_Window *sdl_window; ///< Main SDL window. Palette local_palette; ///< Copy of _cur_palette. - bool draw_threaded; ///< Whether the drawing is/may be done in a separate thread. - std::recursive_mutex *draw_mutex = nullptr; ///< Mutex to keep the access to the shared memory controlled. - std::condition_variable_any *draw_signal = nullptr; ///< Signal to draw the next frame. - volatile bool draw_continue; ///< Should we keep continue drawing? bool buffer_locked; ///< Video buffer was locked by the main thread. Rect dirty_rect; ///< Rectangle encompassing the dirty area of the video buffer. @@ -91,10 +83,6 @@ private: bool edit_box_focused; int startup_display; - std::thread draw_thread; - std::unique_lock draw_lock; - - static void PaintThreadThunk(VideoDriver_SDL_Base *drv); }; #endif /* VIDEO_SDL_H */ diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 8f7c26b898..2ecb9510c0 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -23,8 +23,6 @@ #include "../window_func.h" #include "sdl_v.h" #include -#include -#include #include "../safeguards.h" @@ -34,14 +32,6 @@ static SDL_Surface *_sdl_surface; static SDL_Surface *_sdl_realscreen; static bool _all_modes; -/** Whether the drawing is/may be done in a separate thread. */ -static bool _draw_threaded; -/** Mutex to keep the access to the shared memory controlled. */ -static std::recursive_mutex *_draw_mutex = nullptr; -/** Signal to draw the next frame. */ -static std::condition_variable_any *_draw_signal = nullptr; -/** Should we keep continue drawing? */ -static volatile bool _draw_continue; static Palette _local_palette; #define MAX_DIRTY_RECTS 100 @@ -174,27 +164,6 @@ void VideoDriver_SDL::Paint() } } -void VideoDriver_SDL::PaintThread() -{ - /* First tell the main thread we're started */ - std::unique_lock lock(*_draw_mutex); - _draw_signal->notify_one(); - - /* Now wait for the first thing to draw! */ - _draw_signal->wait(*_draw_mutex); - - while (_draw_continue) { - /* Then just draw and wait till we stop */ - this->Paint(); - _draw_signal->wait(lock); - } -} - -/* static */ void VideoDriver_SDL::PaintThreadThunk(VideoDriver_SDL *drv) -{ - drv->PaintThread(); -} - static const Dimension _default_resolutions[] = { { 640, 480}, { 800, 600}, @@ -630,8 +599,6 @@ const char *VideoDriver_SDL::Start(const StringList &parm) MarkWholeScreenDirty(); SetupKeyboard(); - _draw_threaded = !GetDriverParamBool(parm, "no_threads") && !GetDriverParamBool(parm, "no_thread"); - return nullptr; } @@ -680,80 +647,21 @@ void VideoDriver_SDL::InputLoop() void VideoDriver_SDL::MainLoop() { - std::thread draw_thread; - if (_draw_threaded) { - /* Initialise the mutex first, because that's the thing we *need* - * directly in the newly created thread. */ - _draw_mutex = new std::recursive_mutex(); - if (_draw_mutex == nullptr) { - _draw_threaded = false; - } else { - this->draw_lock = std::unique_lock(*_draw_mutex); - _draw_signal = new std::condition_variable_any(); - _draw_continue = true; - - _draw_threaded = StartNewThread(&draw_thread, "ottd:draw-sdl", &VideoDriver_SDL::PaintThreadThunk, this); - - /* Free the mutex if we won't be able to use it. */ - if (!_draw_threaded) { - this->draw_lock.unlock(); - this->draw_lock.release(); - delete _draw_mutex; - delete _draw_signal; - _draw_mutex = nullptr; - _draw_signal = nullptr; - } else { - /* Wait till the draw mutex has started itself. */ - _draw_signal->wait(*_draw_mutex); - } - } - } - - DEBUG(driver, 1, "SDL: using %sthreads", _draw_threaded ? "" : "no "); - for (;;) { if (_exit_game) break; - if (this->Tick()) { - if (_draw_mutex != nullptr && !HasModalProgress()) { - _draw_signal->notify_one(); - } else { - this->Paint(); - } - } + this->Tick(); this->SleepTillNextTick(); } - - if (_draw_mutex != nullptr) { - _draw_continue = false; - /* Sending signal if there is no thread blocked - * is very valid and results in noop */ - _draw_signal->notify_one(); - if (this->draw_lock.owns_lock()) this->draw_lock.unlock(); - this->draw_lock.release(); - draw_thread.join(); - - delete _draw_mutex; - delete _draw_signal; - - _draw_mutex = nullptr; - _draw_signal = nullptr; - } } bool VideoDriver_SDL::ChangeResolution(int w, int h) { - std::unique_lock lock; - if (_draw_mutex != nullptr) lock = std::unique_lock(*_draw_mutex); - return CreateMainSurface(w, h); } bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen) { - std::unique_lock lock; - if (_draw_mutex != nullptr) lock = std::unique_lock(*_draw_mutex); - _fullscreen = fullscreen; GetVideoModes(); // get the list of available video modes bool ret = !_resolutions.empty() && CreateMainSurface(_cur_resolution.width, _cur_resolution.height); @@ -772,25 +680,4 @@ bool VideoDriver_SDL::AfterBlitterChange() return CreateMainSurface(_screen.width, _screen.height); } -void VideoDriver_SDL::AcquireBlitterLock() -{ - if (_draw_mutex != nullptr) _draw_mutex->lock(); -} - -void VideoDriver_SDL::ReleaseBlitterLock() -{ - if (_draw_mutex != nullptr) _draw_mutex->unlock(); -} - -bool VideoDriver_SDL::LockVideoBuffer() -{ - if (_draw_threaded) this->draw_lock.lock(); - return true; -} - -void VideoDriver_SDL::UnlockVideoBuffer() -{ - if (_draw_threaded) this->draw_lock.unlock(); -} - #endif /* WITH_SDL */ diff --git a/src/video/sdl_v.h b/src/video/sdl_v.h index 7df29a2ea3..2b37cbdb6a 100644 --- a/src/video/sdl_v.h +++ b/src/video/sdl_v.h @@ -29,30 +29,19 @@ public: bool AfterBlitterChange() override; - void AcquireBlitterLock() override; - - void ReleaseBlitterLock() override; - bool ClaimMousePointer() override; const char *GetName() const override { return "sdl"; } protected: void InputLoop() override; - bool LockVideoBuffer() override; - void UnlockVideoBuffer() override; void Paint() override; - void PaintThread() override; void CheckPaletteAnim() override; bool PollEvent() override; private: - std::unique_lock draw_lock; - bool CreateMainSurface(uint w, uint h); void SetupKeyboard(); - - static void PaintThreadThunk(VideoDriver_SDL *drv); }; /** Factory for the SDL video driver. */ diff --git a/src/video/video_driver.cpp b/src/video/video_driver.cpp index cb81f857d8..49337c03a8 100644 --- a/src/video/video_driver.cpp +++ b/src/video/video_driver.cpp @@ -19,7 +19,7 @@ bool _video_hw_accel; ///< Whether to consider hardware accelerated video drivers. -bool VideoDriver::Tick() +void VideoDriver::Tick() { auto cur_ticks = std::chrono::steady_clock::now(); @@ -66,12 +66,10 @@ bool VideoDriver::Tick() ::InputLoop(); UpdateWindows(); + this->CheckPaletteAnim(); - - return true; + this->Paint(); } - - return false; } void VideoDriver::SleepTillNextTick() diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 58802efab1..9a3ec6a36b 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -241,11 +241,6 @@ protected: */ virtual void Paint() {} - /** - * Thread function for threaded drawing. - */ - virtual void PaintThread() {} - /** * Process any pending palette animation. */ @@ -258,10 +253,11 @@ protected: virtual bool PollEvent() { return false; }; /** - * Run the game for a single tick, processing boththe game-tick and draw-tick. - * @returns True if the driver should redraw the screen. + * Give the video-driver a tick. + * It will process any potential game-tick and/or draw-tick, and/or any + * other video-driver related event. */ - bool Tick(); + void Tick(); /** * Sleep till the next tick is about to happen. diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 30729ead6d..d8841671a1 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -225,11 +225,6 @@ bool VideoDriver_Win32Base::MakeWindow(bool full_screen) return true; } -/* static */ void VideoDriver_Win32Base::PaintThreadThunk(VideoDriver_Win32Base *drv) -{ - drv->PaintThread(); -} - /** Forward key presses to the window system. */ static LRESULT HandleCharMsg(uint keycode, WChar charcode) { @@ -868,70 +863,12 @@ bool VideoDriver_Win32Base::PollEvent() void VideoDriver_Win32Base::MainLoop() { - std::thread draw_thread; - - if (this->draw_threaded) { - /* Initialise the mutex first, because that's the thing we *need* - * directly in the newly created thread. */ - try { - this->draw_signal = new std::condition_variable_any(); - this->draw_mutex = new std::recursive_mutex(); - } catch (...) { - this->draw_threaded = false; - } - - if (this->draw_threaded) { - this->draw_lock = std::unique_lock(*this->draw_mutex); - - this->draw_continue = true; - this->draw_threaded = StartNewThread(&draw_thread, "ottd:draw-win32", &VideoDriver_Win32Base::PaintThreadThunk, this); - - /* Free the mutex if we won't be able to use it. */ - if (!this->draw_threaded) { - this->draw_lock.unlock(); - this->draw_lock.release(); - delete this->draw_mutex; - delete this->draw_signal; - this->draw_mutex = nullptr; - this->draw_signal = nullptr; - } else { - DEBUG(driver, 1, "Threaded drawing enabled"); - /* Wait till the draw thread has started itself. */ - this->draw_signal->wait(*this->draw_mutex); - } - } - } - for (;;) { if (_exit_game) break; - /* Flush GDI buffer to ensure we don't conflict with the drawing thread. */ - GdiFlush(); - - if (this->Tick()) { - if (this->draw_mutex != nullptr && !HasModalProgress()) { - this->draw_signal->notify_one(); - } else { - this->Paint(); - } - } + this->Tick(); this->SleepTillNextTick(); } - - if (this->draw_threaded) { - this->draw_continue = false; - /* Sending signal if there is no thread blocked - * is very valid and results in noop */ - this->draw_signal->notify_all(); - if (this->draw_lock.owns_lock()) this->draw_lock.unlock(); - this->draw_lock.release(); - draw_thread.join(); - - delete this->draw_mutex; - delete this->draw_signal; - - this->draw_mutex = nullptr; - } } void VideoDriver_Win32Base::ClientSizeChanged(int w, int h, bool force) @@ -951,9 +888,6 @@ void VideoDriver_Win32Base::ClientSizeChanged(int w, int h, bool force) bool VideoDriver_Win32Base::ChangeResolution(int w, int h) { - std::unique_lock lock; - if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - if (_window_maximize) ShowWindow(this->main_wnd, SW_SHOWNORMAL); this->width = this->width_org = w; @@ -964,30 +898,14 @@ bool VideoDriver_Win32Base::ChangeResolution(int w, int h) bool VideoDriver_Win32Base::ToggleFullscreen(bool full_screen) { - std::unique_lock lock; - if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - bool res = this->MakeWindow(full_screen); InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return res; } -void VideoDriver_Win32Base::AcquireBlitterLock() -{ - if (this->draw_mutex != nullptr) this->draw_mutex->lock(); -} - -void VideoDriver_Win32Base::ReleaseBlitterLock() -{ - if (this->draw_mutex != nullptr) this->draw_mutex->unlock(); -} - void VideoDriver_Win32Base::EditBoxLostFocus() { - std::unique_lock lock; - if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - CancelIMEComposition(this->main_wnd); SetCompositionPos(this->main_wnd); SetCandidatePos(this->main_wnd); @@ -1043,8 +961,6 @@ bool VideoDriver_Win32Base::LockVideoBuffer() if (this->buffer_locked) return false; this->buffer_locked = true; - if (this->draw_threaded) this->draw_lock.lock(); - _screen.dst_ptr = this->GetVideoPointer(); assert(_screen.dst_ptr != nullptr); @@ -1060,7 +976,6 @@ void VideoDriver_Win32Base::UnlockVideoBuffer() _screen.dst_ptr = nullptr; } - if (this->draw_threaded) this->draw_lock.unlock(); this->buffer_locked = false; } @@ -1079,8 +994,6 @@ const char *VideoDriver_Win32GDI::Start(const StringList ¶m) MarkWholeScreenDirty(); - this->draw_threaded = !GetDriverParam(param, "no_threads") && !GetDriverParam(param, "no_thread") && std::thread::hardware_concurrency() > 1; - return nullptr; } @@ -1230,26 +1143,6 @@ void VideoDriver_Win32GDI::Paint() this->dirty_rect = {}; } -void VideoDriver_Win32GDI::PaintThread() -{ - /* First tell the main thread we're started */ - std::unique_lock lock(*this->draw_mutex); - this->draw_signal->notify_one(); - - /* Now wait for the first thing to draw! */ - this->draw_signal->wait(*this->draw_mutex); - - while (this->draw_continue) { - this->Paint(); - - /* Flush GDI buffer to ensure drawing here doesn't conflict with any GDI usage in the main WndProc. */ - GdiFlush(); - - this->draw_signal->wait(*this->draw_mutex); - } -} - - #ifdef _DEBUG /* Keep this function here.. * It allows you to redraw the screen from within the MSVC debugger */ @@ -1395,7 +1288,6 @@ const char *VideoDriver_Win32OpenGL::Start(const StringList ¶m) this->ClientSizeChanged(this->width, this->height, true); - this->draw_threaded = false; MarkWholeScreenDirty(); return nullptr; diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 6dec59300f..03733d0228 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -17,7 +17,7 @@ /** Base class for Windows video drivers. */ class VideoDriver_Win32Base : public VideoDriver { public: - VideoDriver_Win32Base() : main_wnd(nullptr), fullscreen(false), draw_mutex(nullptr), draw_signal(nullptr) {} + VideoDriver_Win32Base() : main_wnd(nullptr), fullscreen(false) {} void Stop() override; @@ -29,10 +29,6 @@ public: bool ToggleFullscreen(bool fullscreen) override; - void AcquireBlitterLock() override; - - void ReleaseBlitterLock() override; - bool ClaimMousePointer() override; void EditBoxLostFocus() override; @@ -47,12 +43,7 @@ protected: int width_org = 0; ///< Original monitor resolution width, before we changed it. int height_org = 0; ///< Original monitor resolution height, before we changed it. - bool draw_threaded; ///< Whether the drawing is/may be done in a separate thread. - bool buffer_locked; ///< Video buffer was locked by the main thread. - volatile bool draw_continue; ///< Should we keep continue drawing? - - std::recursive_mutex *draw_mutex; ///< Mutex to keep the access to the shared memory controlled. - std::condition_variable_any *draw_signal; ///< Signal to draw the next frame. + bool buffer_locked; ///< Video buffer was locked by the main thread. Dimension GetScreenSize() const override; float GetDPIScale() override; @@ -78,10 +69,6 @@ protected: virtual void PaletteChanged(HWND hWnd) = 0; private: - std::unique_lock draw_lock; - - static void PaintThreadThunk(VideoDriver_Win32Base *drv); - friend LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); }; /** The GDI video driver for windows. */ @@ -104,7 +91,6 @@ protected: void Paint() override; void *GetVideoPointer() override { return this->buffer_bits; } - void PaintThread() override; bool AllocateBackingStore(int w, int h, bool force = false) override; void PaletteChanged(HWND hWnd) override; @@ -159,7 +145,6 @@ protected: uint8 GetFullscreenBpp() override { return 32; } // OpenGL is always 32 bpp. void Paint() override; - void PaintThread() override {} bool AllocateBackingStore(int w, int h, bool force = false) override; void *GetVideoPointer() override; From b9eac7c6dc5ca1e60c84aa32805936b616f68d6e Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 27 Feb 2021 12:11:58 +0100 Subject: [PATCH 11/53] Codechange: remove the unused lock around Blitter --- src/gfx.cpp | 2 -- src/gfxinit.cpp | 5 ----- src/video/video_driver.hpp | 13 ------------- 3 files changed, 20 deletions(-) diff --git a/src/gfx.cpp b/src/gfx.cpp index 30efc947c1..826f93f54c 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1480,9 +1480,7 @@ void DrawDirtyBlocks() if (!IsFirstModalProgressLoop()) CSleep(MODAL_PROGRESS_REDRAW_TIMEOUT); /* Modal progress thread may need blitter access while we are waiting for it. */ - VideoDriver::GetInstance()->ReleaseBlitterLock(); _modal_progress_paint_mutex.lock(); - VideoDriver::GetInstance()->AcquireBlitterLock(); _modal_progress_work_mutex.lock(); /* When we ended with the modal progress, do not draw the blocks. diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 404f85eb4e..2883d3ee3b 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -295,8 +295,6 @@ static bool SwitchNewGRFBlitter() const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION); const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName(); - VideoDriver::GetInstance()->AcquireBlitterLock(); - for (uint i = 0; i < lengthof(replacement_blitters); i++) { if (animation_wanted && (replacement_blitters[i].animation == 0)) continue; if (!animation_wanted && (replacement_blitters[i].animation == 1)) continue; @@ -306,7 +304,6 @@ static bool SwitchNewGRFBlitter() const char *repl_blitter = replacement_blitters[i].name; if (strcmp(repl_blitter, cur_blitter) == 0) { - VideoDriver::GetInstance()->ReleaseBlitterLock(); return false; } if (BlitterFactory::GetBlitterFactory(repl_blitter) == nullptr) continue; @@ -323,8 +320,6 @@ static bool SwitchNewGRFBlitter() if (BlitterFactory::SelectBlitter(cur_blitter) == nullptr || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); } - VideoDriver::GetInstance()->ReleaseBlitterLock(); - return true; } diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 9a3ec6a36b..cfb853dbab 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -62,7 +62,6 @@ public: /** * Callback invoked after the blitter was changed. - * This may only be called between AcquireBlitterLock and ReleaseBlitterLock. * @return True if no error. */ virtual bool AfterBlitterChange() @@ -70,18 +69,6 @@ public: return true; } - /** - * Acquire any lock(s) required to be held when changing blitters. - * These lock(s) may not be acquired recursively. - */ - virtual void AcquireBlitterLock() { } - - /** - * Release any lock(s) required to be held when changing blitters. - * These lock(s) may not be acquired recursively. - */ - virtual void ReleaseBlitterLock() { } - virtual bool ClaimMousePointer() { return true; From 3a4a15cc93015ce5bed4f7720d4f0f05178c09e9 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 8 Mar 2021 13:48:32 +0100 Subject: [PATCH 12/53] Codechange: don't set the window position when changing blitter There really is no need to make an extra call to the OS in these cases. --- src/video/win32_v.cpp | 9 +++++---- src/video/win32_v.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index d8841671a1..894d1e05dc 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -128,9 +128,10 @@ uint8 VideoDriver_Win32Base::GetFullscreenBpp() /** * Instantiate a new window. * @param full_screen Whether to make a full screen window or not. + * @param resize Whether to change window size. * @return True if the window could be created. */ -bool VideoDriver_Win32Base::MakeWindow(bool full_screen) +bool VideoDriver_Win32Base::MakeWindow(bool full_screen, bool resize) { /* full_screen is whether the new window should be fullscreen, * _wnd.fullscreen is whether the current window is. */ @@ -172,7 +173,7 @@ bool VideoDriver_Win32Base::MakeWindow(bool full_screen) } if (ChangeDisplaySettings(&settings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) { - this->MakeWindow(false); // don't care about the result + this->MakeWindow(false, resize); // don't care about the result return false; // the request failed } } else if (this->fullscreen) { @@ -205,7 +206,7 @@ bool VideoDriver_Win32Base::MakeWindow(bool full_screen) h = r.bottom - r.top; if (this->main_wnd != nullptr) { - if (!_window_maximize) SetWindowPos(this->main_wnd, 0, 0, 0, w, h, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_NOMOVE); + if (!_window_maximize && resize) SetWindowPos(this->main_wnd, 0, 0, 0, w, h, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_NOMOVE); } else { int x = (GetSystemMetrics(SM_CXSCREEN) - w) / 2; int y = (GetSystemMetrics(SM_CYSCREEN) - h) / 2; @@ -1043,7 +1044,7 @@ bool VideoDriver_Win32GDI::AllocateBackingStore(int w, int h, bool force) bool VideoDriver_Win32GDI::AfterBlitterChange() { assert(BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 0); - return this->AllocateBackingStore(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen); + return this->AllocateBackingStore(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen, false); } void VideoDriver_Win32GDI::MakePalette() diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 03733d0228..fc705c3f18 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -54,7 +54,7 @@ protected: bool PollEvent() override; void Initialize(); - bool MakeWindow(bool full_screen); + bool MakeWindow(bool full_screen, bool resize = true); void ClientSizeChanged(int w, int h, bool force = false); /** Get screen depth to use for fullscreen mode. */ From e56d2c63c306dd087de26088729d09233b1122c2 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 24 Feb 2021 15:22:23 +0100 Subject: [PATCH 13/53] Add: [Video] move GameLoop into its own thread This allows drawing to happen while the GameLoop is doing an iteration too. Sadly, not much drawing currently can be done while the GameLoop is running, as for example PollEvent() or UpdateWindows() can influence the game-state. As such, they first need to acquire a lock on the game-state before they can be called. Currently, the main advantage is the time spend in Paint(), which for non-OpenGL drivers can be a few milliseconds. For OpenGL this is more like 0.05 milliseconds; in these instances this change doesn't add any benefits for now. This is an alternative to the former "draw-thread", which moved the drawing in a thread for some OSes. It has similar performance gain as this does, although this implementation allows for more finer control over what suffers when the GameLoop takes too long: drawing or the next GameLoop. For now they both suffer equally. --- src/video/allegro_v.cpp | 10 +++- src/video/cocoa/cocoa_ogl.h | 2 + src/video/cocoa/cocoa_ogl.mm | 7 +++ src/video/cocoa/cocoa_v.mm | 6 ++ src/video/dedicated_v.cpp | 2 + src/video/null_v.cpp | 6 +- src/video/opengl.cpp | 23 ++++++-- src/video/opengl.h | 1 + src/video/sdl2_default_v.cpp | 6 -- src/video/sdl2_opengl_v.cpp | 5 ++ src/video/sdl2_opengl_v.h | 2 + src/video/sdl2_v.cpp | 14 ++++- src/video/sdl_v.cpp | 10 +++- src/video/video_driver.cpp | 110 +++++++++++++++++++++++++++-------- src/video/video_driver.hpp | 32 ++++++++++ src/video/win32_v.cpp | 19 ++++-- src/video/win32_v.h | 2 + 17 files changed, 206 insertions(+), 51 deletions(-) diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index 8ff1cc634c..0c064873b3 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -412,7 +412,7 @@ bool VideoDriver_Allegro::PollEvent() */ int _allegro_instance_count = 0; -const char *VideoDriver_Allegro::Start(const StringList &parm) +const char *VideoDriver_Allegro::Start(const StringList ¶m) { if (_allegro_instance_count == 0 && install_allegro(SYSTEM_AUTODETECT, &errno, nullptr)) { DEBUG(driver, 0, "allegro: install_allegro failed '%s'", allegro_error); @@ -440,6 +440,8 @@ const char *VideoDriver_Allegro::Start(const StringList &parm) MarkWholeScreenDirty(); set_close_button_callback(HandleExitGameRequest); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -475,12 +477,16 @@ void VideoDriver_Allegro::InputLoop() void VideoDriver_Allegro::MainLoop() { + this->StartGameThread(); + for (;;) { - if (_exit_game) return; + if (_exit_game) break; this->Tick(); this->SleepTillNextTick(); } + + this->StopGameThread(); } bool VideoDriver_Allegro::ChangeResolution(int w, int h) diff --git a/src/video/cocoa/cocoa_ogl.h b/src/video/cocoa/cocoa_ogl.h index 9d95cd6066..fe8490932d 100644 --- a/src/video/cocoa/cocoa_ogl.h +++ b/src/video/cocoa/cocoa_ogl.h @@ -33,6 +33,8 @@ public: void ClearSystemSprites() override; + void PopulateSystemSprites() override; + bool HasAnimBuffer() override { return true; } uint8 *GetAnimBuffer() override { return this->anim_buffer; } diff --git a/src/video/cocoa/cocoa_ogl.mm b/src/video/cocoa/cocoa_ogl.mm index c75de1e043..8d02428e0c 100644 --- a/src/video/cocoa/cocoa_ogl.mm +++ b/src/video/cocoa/cocoa_ogl.mm @@ -214,6 +214,8 @@ const char *VideoDriver_CocoaOpenGL::Start(const StringList ¶m) this->UpdateVideoModes(); MarkWholeScreenDirty(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -227,6 +229,11 @@ void VideoDriver_CocoaOpenGL::Stop() CGLReleaseContext(this->gl_context); } +void VideoDriver_CocoaOpenGL::PopulateSystemSprites() +{ + OpenGLBackend::Get()->PopulateCursorCache(); +} + void VideoDriver_CocoaOpenGL::ClearSystemSprites() { CGLSetCurrentContext(this->gl_context); diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 56d559f0dc..8d1fd4447d 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -435,6 +435,8 @@ void VideoDriver_Cocoa::InputLoop() /** Main game loop. */ void VideoDriver_Cocoa::MainLoopReal() { + this->StartGameThread(); + for (;;) { @autoreleasepool { if (_exit_game) { @@ -447,6 +449,8 @@ void VideoDriver_Cocoa::MainLoopReal() this->SleepTillNextTick(); } } + + this->StopGameThread(); } @@ -558,6 +562,8 @@ const char *VideoDriver_CocoaQuartz::Start(const StringList ¶m) this->GameSizeChanged(); this->UpdateVideoModes(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index 22b9dbb1ab..ea1c14cff7 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -267,6 +267,8 @@ void VideoDriver_Dedicated::MainLoop() } } + this->is_game_threaded = false; + /* Done loading, start game! */ if (!_networking) { diff --git a/src/video/null_v.cpp b/src/video/null_v.cpp index 35dd7b0752..4f7843b75a 100644 --- a/src/video/null_v.cpp +++ b/src/video/null_v.cpp @@ -48,9 +48,9 @@ void VideoDriver_Null::MainLoop() uint i; for (i = 0; i < this->ticks; i++) { - GameLoop(); - InputLoop(); - UpdateWindows(); + ::GameLoop(); + ::InputLoop(); + ::UpdateWindows(); } } diff --git a/src/video/opengl.cpp b/src/video/opengl.cpp index 60f2a1bcd0..64ea02cf2d 100644 --- a/src/video/opengl.cpp +++ b/src/video/opengl.cpp @@ -1036,7 +1036,23 @@ void OpenGLBackend::DrawMouseCursor() _cur_dpi = &_screen; for (uint i = 0; i < _cursor.sprite_count; ++i) { SpriteID sprite = _cursor.sprite_seq[i].sprite; - const Sprite *spr = GetSprite(sprite, ST_NORMAL); + + /* Sprites are cached by PopulateCursorCache(). */ + if (this->cursor_cache.Contains(sprite)) { + const Sprite *spr = GetSprite(sprite, ST_NORMAL); + + this->RenderOglSprite((OpenGLSprite *)this->cursor_cache.Get(sprite)->data, _cursor.sprite_seq[i].pal, + _cursor.pos.x + _cursor.sprite_pos[i].x + UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI), + _cursor.pos.y + _cursor.sprite_pos[i].y + UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI), + ZOOM_LVL_GUI); + } + } +} + +void OpenGLBackend::PopulateCursorCache() +{ + for (uint i = 0; i < _cursor.sprite_count; ++i) { + SpriteID sprite = _cursor.sprite_seq[i].sprite; if (!this->cursor_cache.Contains(sprite)) { Sprite *old = this->cursor_cache.Insert(sprite, (Sprite *)GetRawSprite(sprite, ST_NORMAL, &SimpleSpriteAlloc, this)); @@ -1046,11 +1062,6 @@ void OpenGLBackend::DrawMouseCursor() free(old); } } - - this->RenderOglSprite((OpenGLSprite *)this->cursor_cache.Get(sprite)->data, _cursor.sprite_seq[i].pal, - _cursor.pos.x + _cursor.sprite_pos[i].x + UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI), - _cursor.pos.y + _cursor.sprite_pos[i].y + UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI), - ZOOM_LVL_GUI); } } diff --git a/src/video/opengl.h b/src/video/opengl.h index b66d585e54..3919179e40 100644 --- a/src/video/opengl.h +++ b/src/video/opengl.h @@ -88,6 +88,7 @@ public: void Paint(); void DrawMouseCursor(); + void PopulateCursorCache(); void ClearCursorCache(); void *GetVideoBuffer(); diff --git a/src/video/sdl2_default_v.cpp b/src/video/sdl2_default_v.cpp index e61405ff83..4db1c33cee 100644 --- a/src/video/sdl2_default_v.cpp +++ b/src/video/sdl2_default_v.cpp @@ -107,13 +107,7 @@ void VideoDriver_SDL_Default::Paint() break; case Blitter::PALETTE_ANIMATION_BLITTER: { - bool need_buf = _screen.dst_ptr == nullptr; - if (need_buf) _screen.dst_ptr = this->GetVideoPointer(); blitter->PaletteAnimate(this->local_palette); - if (need_buf) { - this->ReleaseVideoPointer(); - _screen.dst_ptr = nullptr; - } break; } diff --git a/src/video/sdl2_opengl_v.cpp b/src/video/sdl2_opengl_v.cpp index 4bd66a9949..13ee082ba1 100644 --- a/src/video/sdl2_opengl_v.cpp +++ b/src/video/sdl2_opengl_v.cpp @@ -110,6 +110,11 @@ const char *VideoDriver_SDL_OpenGL::AllocateContext() return OpenGLBackend::Create(&GetOGLProcAddressCallback); } +void VideoDriver_SDL_OpenGL::PopulateSystemSprites() +{ + OpenGLBackend::Get()->PopulateCursorCache(); +} + void VideoDriver_SDL_OpenGL::ClearSystemSprites() { OpenGLBackend::Get()->ClearCursorCache(); diff --git a/src/video/sdl2_opengl_v.h b/src/video/sdl2_opengl_v.h index 55697b43bb..f749b1f459 100644 --- a/src/video/sdl2_opengl_v.h +++ b/src/video/sdl2_opengl_v.h @@ -24,6 +24,8 @@ public: void ClearSystemSprites() override; + void PopulateSystemSprites() override; + bool HasAnimBuffer() override { return true; } uint8 *GetAnimBuffer() override { return this->anim_buffer; } diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index c1925c7da5..62675280ca 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -541,14 +541,14 @@ const char *VideoDriver_SDL_Base::Initialize() return nullptr; } -const char *VideoDriver_SDL_Base::Start(const StringList &parm) +const char *VideoDriver_SDL_Base::Start(const StringList ¶m) { if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) return "Only real blitters supported"; const char *error = this->Initialize(); if (error != nullptr) return error; - this->startup_display = FindStartupDisplay(GetDriverParamInt(parm, "display", -1)); + this->startup_display = FindStartupDisplay(GetDriverParamInt(param, "display", -1)); if (!CreateMainSurface(_cur_resolution.width, _cur_resolution.height, false)) { return SDL_GetError(); @@ -562,6 +562,12 @@ const char *VideoDriver_SDL_Base::Start(const StringList &parm) SDL_StopTextInput(); this->edit_box_focused = false; +#ifdef __EMSCRIPTEN__ + this->is_game_threaded = false; +#else + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); +#endif + return nullptr; } @@ -637,9 +643,13 @@ void VideoDriver_SDL_Base::MainLoop() /* Run the main loop event-driven, based on RequestAnimationFrame. */ emscripten_set_main_loop_arg(&this->EmscriptenLoop, this, 0, 1); #else + this->StartGameThread(); + while (!_exit_game) { LoopOnce(); } + + this->StopGameThread(); #endif } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 2ecb9510c0..03f1747948 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -570,10 +570,10 @@ bool VideoDriver_SDL::PollEvent() return true; } -const char *VideoDriver_SDL::Start(const StringList &parm) +const char *VideoDriver_SDL::Start(const StringList ¶m) { char buf[30]; - _use_hwpalette = GetDriverParamInt(parm, "hw_palette", 2); + _use_hwpalette = GetDriverParamInt(param, "hw_palette", 2); /* Just on the offchance the audio subsystem started before the video system, * check whether any part of SDL has been initialised before getting here. @@ -599,6 +599,8 @@ const char *VideoDriver_SDL::Start(const StringList &parm) MarkWholeScreenDirty(); SetupKeyboard(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -647,12 +649,16 @@ void VideoDriver_SDL::InputLoop() void VideoDriver_SDL::MainLoop() { + this->StartGameThread(); + for (;;) { if (_exit_game) break; this->Tick(); this->SleepTillNextTick(); } + + this->StopGameThread(); } bool VideoDriver_SDL::ChangeResolution(int w, int h) diff --git a/src/video/video_driver.cpp b/src/video/video_driver.cpp index 49337c03a8..e313329d59 100644 --- a/src/video/video_driver.cpp +++ b/src/video/video_driver.cpp @@ -8,9 +8,9 @@ /** @file video_driver.cpp Common code between video driver implementations. */ #include "../stdafx.h" -#include "../debug.h" #include "../core/random_func.hpp" #include "../network/network.h" +#include "../debug.h" #include "../gfx_func.h" #include "../progress.h" #include "../thread.h" @@ -19,40 +19,84 @@ bool _video_hw_accel; ///< Whether to consider hardware accelerated video drivers. +void VideoDriver::GameLoop() +{ + this->next_game_tick += this->GetGameInterval(); + + /* Avoid next_game_tick getting behind more and more if it cannot keep up. */ + auto now = std::chrono::steady_clock::now(); + if (this->next_game_tick < now - ALLOWED_DRIFT * this->GetGameInterval()) this->next_game_tick = now; + + { + std::lock_guard lock(this->game_state_mutex); + + ::GameLoop(); + } +} + +void VideoDriver::GameThread() +{ + while (!_exit_game) { + this->GameLoop(); + + auto now = std::chrono::steady_clock::now(); + if (this->next_game_tick > now) { + std::this_thread::sleep_for(this->next_game_tick - now); + } else { + /* Ensure we yield this thread if drawings wants to take a lock on + * the game state. This is mainly because most OSes have an + * optimization that if you unlock/lock a mutex in the same thread + * quickly, it will never context switch even if there is another + * thread waiting to take the lock on the same mutex. */ + std::lock_guard lock(this->game_thread_wait_mutex); + } + } +} + +/* static */ void VideoDriver::GameThreadThunk(VideoDriver *drv) +{ + drv->GameThread(); +} + +void VideoDriver::StartGameThread() +{ + if (this->is_game_threaded) { + this->is_game_threaded = StartNewThread(&this->game_thread, "ottd:game", &VideoDriver::GameThreadThunk, this); + } + + DEBUG(driver, 1, "using %sthread for game-loop", this->is_game_threaded ? "" : "no "); +} + +void VideoDriver::StopGameThread() +{ + if (!this->is_game_threaded) return; + + this->game_thread.join(); +} + void VideoDriver::Tick() { - auto cur_ticks = std::chrono::steady_clock::now(); - - if (cur_ticks >= this->next_game_tick) { - this->next_game_tick += this->GetGameInterval(); - /* Avoid next_game_tick getting behind more and more if it cannot keep up. */ - if (this->next_game_tick < cur_ticks - ALLOWED_DRIFT * this->GetGameInterval()) this->next_game_tick = cur_ticks; - - /* The game loop is the part that can run asynchronously. - * The rest except sleeping can't. */ - this->UnlockVideoBuffer(); - ::GameLoop(); - this->LockVideoBuffer(); + if (!this->is_game_threaded && std::chrono::steady_clock::now() >= this->next_game_tick) { + this->GameLoop(); /* For things like dedicated server, don't run a separate draw-tick. */ if (!this->HasGUI()) { ::InputLoop(); - UpdateWindows(); + ::UpdateWindows(); this->next_draw_tick = this->next_game_tick; } } - /* Prevent drawing when switching mode, as windows can be removed when they should still appear. */ - if (this->HasGUI() && cur_ticks >= this->next_draw_tick && (_switch_mode == SM_NONE || _game_mode == GM_BOOTSTRAP || HasModalProgress())) { + auto now = std::chrono::steady_clock::now(); + if (this->HasGUI() && now >= this->next_draw_tick) { this->next_draw_tick += this->GetDrawInterval(); /* Avoid next_draw_tick getting behind more and more if it cannot keep up. */ - if (this->next_draw_tick < cur_ticks - ALLOWED_DRIFT * this->GetDrawInterval()) this->next_draw_tick = cur_ticks; + if (this->next_draw_tick < now - ALLOWED_DRIFT * this->GetDrawInterval()) this->next_draw_tick = now; /* Keep the interactive randomizer a bit more random by requesting * new values when-ever we can. */ InteractiveRandom(); - while (this->PollEvent()) {} this->InputLoop(); /* Check if the fast-forward button is still pressed. */ @@ -64,23 +108,41 @@ void VideoDriver::Tick() this->fast_forward_via_key = false; } - ::InputLoop(); - UpdateWindows(); + { + /* Tell the game-thread to stop so we can have a go. */ + std::lock_guard lock_wait(this->game_thread_wait_mutex); + std::lock_guard lock_state(this->game_state_mutex); + + this->LockVideoBuffer(); + + while (this->PollEvent()) {} + ::InputLoop(); + + /* Prevent drawing when switching mode, as windows can be removed when they should still appear. */ + if (_game_mode == GM_BOOTSTRAP || _switch_mode == SM_NONE || HasModalProgress()) { + ::UpdateWindows(); + } + + this->PopulateSystemSprites(); + } this->CheckPaletteAnim(); this->Paint(); + + this->UnlockVideoBuffer(); } } void VideoDriver::SleepTillNextTick() { - /* See how much time there is till we have to process the next event, and try to hit that as close as possible. */ - auto next_tick = std::min(this->next_draw_tick, this->next_game_tick); + auto next_tick = this->next_draw_tick; auto now = std::chrono::steady_clock::now(); + if (!this->is_game_threaded) { + next_tick = min(next_tick, this->next_game_tick); + } + if (next_tick > now) { - this->UnlockVideoBuffer(); std::this_thread::sleep_for(next_tick - now); - this->LockVideoBuffer(); } } diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index cfb853dbab..423e46436f 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -16,7 +16,11 @@ #include "../gfx_func.h" #include "../settings_type.h" #include "../zoom_type.h" +#include #include +#include +#include +#include #include extern std::string _ini_videodriver; @@ -31,6 +35,8 @@ class VideoDriver : public Driver { const uint DEFAULT_WINDOW_HEIGHT = 480u; ///< Default window height. public: + VideoDriver() : is_game_threaded(true) {} + /** * Mark a particular area dirty. * @param left The left most line of the dirty area. @@ -83,6 +89,11 @@ public: return false; } + /** + * Populate all sprites in cache. + */ + virtual void PopulateSystemSprites() {} + /** * Clear all cached sprites. */ @@ -239,6 +250,16 @@ protected: */ virtual bool PollEvent() { return false; }; + /** + * Start the loop for game-tick. + */ + void StartGameThread(); + + /** + * Stop the loop for the game-tick. This can still tick at most one time before truly shutting down. + */ + void StopGameThread(); + /** * Give the video-driver a tick. * It will process any potential game-tick and/or draw-tick, and/or any @@ -271,6 +292,17 @@ protected: bool fast_forward_key_pressed; ///< The fast-forward key is being pressed. bool fast_forward_via_key; ///< The fast-forward was enabled by key press. + + bool is_game_threaded; + std::thread game_thread; + std::mutex game_state_mutex; + std::mutex game_thread_wait_mutex; + + static void GameThreadThunk(VideoDriver *drv); + +private: + void GameLoop(); + void GameThread(); }; #endif /* VIDEO_VIDEO_DRIVER_HPP */ diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 894d1e05dc..8030380ce0 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -864,12 +864,16 @@ bool VideoDriver_Win32Base::PollEvent() void VideoDriver_Win32Base::MainLoop() { + this->StartGameThread(); + for (;;) { if (_exit_game) break; this->Tick(); this->SleepTillNextTick(); } + + this->StopGameThread(); } void VideoDriver_Win32Base::ClientSizeChanged(int w, int h, bool force) @@ -995,6 +999,8 @@ const char *VideoDriver_Win32GDI::Start(const StringList ¶m) MarkWholeScreenDirty(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -1115,13 +1121,7 @@ void VideoDriver_Win32GDI::Paint() break; case Blitter::PALETTE_ANIMATION_BLITTER: { - bool need_buf = _screen.dst_ptr == nullptr; - if (need_buf) _screen.dst_ptr = this->GetVideoPointer(); blitter->PaletteAnimate(_local_palette); - if (need_buf) { - this->ReleaseVideoPointer(); - _screen.dst_ptr = nullptr; - } break; } @@ -1291,6 +1291,8 @@ const char *VideoDriver_Win32OpenGL::Start(const StringList ¶m) MarkWholeScreenDirty(); + this->is_game_threaded = !GetDriverParamBool(param, "no_threads") && !GetDriverParamBool(param, "no_thread"); + return nullptr; } @@ -1371,6 +1373,11 @@ bool VideoDriver_Win32OpenGL::AfterBlitterChange() return true; } +void VideoDriver_Win32OpenGL::PopulateSystemSprites() +{ + OpenGLBackend::Get()->PopulateCursorCache(); +} + void VideoDriver_Win32OpenGL::ClearSystemSprites() { OpenGLBackend::Get()->ClearCursorCache(); diff --git a/src/video/win32_v.h b/src/video/win32_v.h index fc705c3f18..93ebdd83eb 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -129,6 +129,8 @@ public: bool UseSystemCursor() override { return true; } + void PopulateSystemSprites() override; + void ClearSystemSprites() override; bool HasAnimBuffer() override { return true; } From 8946b41d20d6be59da23b98add273955b43450fd Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 8 Mar 2021 14:50:06 +0100 Subject: [PATCH 14/53] Fix: ensure switching blitter happens in the main thread This because video-drivers might need to make changes to their context, which for most video-drivers has to be done in the same thread as the window was created; main thread in our case. --- src/gfxinit.cpp | 11 ++--------- src/video/video_driver.cpp | 29 +++++++++++++++++++++++++++++ src/video/video_driver.hpp | 14 +++++++++++++- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 2883d3ee3b..7e2c2cc625 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -308,18 +308,11 @@ static bool SwitchNewGRFBlitter() } if (BlitterFactory::GetBlitterFactory(repl_blitter) == nullptr) continue; - DEBUG(misc, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter); - Blitter *new_blitter = BlitterFactory::SelectBlitter(repl_blitter); - if (new_blitter == nullptr) NOT_REACHED(); - DEBUG(misc, 1, "Successfully switched to %s.", repl_blitter); + /* Inform the video driver we want to switch blitter as soon as possible. */ + VideoDriver::GetInstance()->ChangeBlitter(repl_blitter); break; } - if (!VideoDriver::GetInstance()->AfterBlitterChange()) { - /* Failed to switch blitter, let's hope we can return to the old one. */ - if (BlitterFactory::SelectBlitter(cur_blitter) == nullptr || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); - } - return true; } diff --git a/src/video/video_driver.cpp b/src/video/video_driver.cpp index e313329d59..1b7fc6a4be 100644 --- a/src/video/video_driver.cpp +++ b/src/video/video_driver.cpp @@ -10,8 +10,11 @@ #include "../stdafx.h" #include "../core/random_func.hpp" #include "../network/network.h" +#include "../blitter/factory.hpp" #include "../debug.h" +#include "../fontcache.h" #include "../gfx_func.h" +#include "../gfxinit.h" #include "../progress.h" #include "../thread.h" #include "../window_func.h" @@ -74,6 +77,27 @@ void VideoDriver::StopGameThread() this->game_thread.join(); } +void VideoDriver::RealChangeBlitter(const char *repl_blitter) +{ + const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName(); + + DEBUG(driver, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter); + Blitter *new_blitter = BlitterFactory::SelectBlitter(repl_blitter); + if (new_blitter == nullptr) NOT_REACHED(); + DEBUG(driver, 1, "Successfully switched to %s.", repl_blitter); + + if (!this->AfterBlitterChange()) { + /* Failed to switch blitter, let's hope we can return to the old one. */ + if (BlitterFactory::SelectBlitter(cur_blitter) == nullptr || !this->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); + } + + /* Clear caches that might have sprites for another blitter. */ + this->ClearSystemSprites(); + ClearFontCache(); + GfxClearSpriteCache(); + ReInitAllWindows(); +} + void VideoDriver::Tick() { if (!this->is_game_threaded && std::chrono::steady_clock::now() >= this->next_game_tick) { @@ -115,6 +139,11 @@ void VideoDriver::Tick() this->LockVideoBuffer(); + if (this->change_blitter != nullptr) { + this->RealChangeBlitter(this->change_blitter); + this->change_blitter = nullptr; + } + while (this->PollEvent()) {} ::InputLoop(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 423e46436f..4b2de253a3 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -35,7 +35,7 @@ class VideoDriver : public Driver { const uint DEFAULT_WINDOW_HEIGHT = 480u; ///< Default window height. public: - VideoDriver() : is_game_threaded(true) {} + VideoDriver() : is_game_threaded(true), change_blitter(nullptr) {} /** * Mark a particular area dirty. @@ -161,6 +161,15 @@ public: return ZOOM_LVL_OUT_4X; } + /** + * Queue a request to change the blitter. This is not executed immediately, + * but instead on the next draw-tick. + */ + void ChangeBlitter(const char *new_blitter) + { + this->change_blitter = new_blitter; + } + /** * Get the currently active instance of the video driver. */ @@ -303,6 +312,9 @@ protected: private: void GameLoop(); void GameThread(); + void RealChangeBlitter(const char *repl_blitter); + + const char *change_blitter; ///< Request to change the blitter. nullptr if no pending request. }; #endif /* VIDEO_VIDEO_DRIVER_HPP */ From ee69a0dc2921b42caabf89c76cf9ece691026cf0 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 8 Mar 2021 19:03:59 +0000 Subject: [PATCH 15/53] Update: Translations from eints lithuanian: 5 changes by devbotas portuguese (brazilian): 8 changes by Greavez --- src/lang/afrikaans.txt | 6 +++--- src/lang/arabic_egypt.txt | 3 +++ src/lang/basque.txt | 6 +++--- src/lang/belarusian.txt | 6 +++--- src/lang/brazilian_portuguese.txt | 14 +++++++++++--- src/lang/bulgarian.txt | 6 +++--- src/lang/catalan.txt | 6 +++--- src/lang/croatian.txt | 6 +++--- src/lang/czech.txt | 6 +++--- src/lang/danish.txt | 6 +++--- src/lang/dutch.txt | 6 +++--- src/lang/english_AU.txt | 6 +++--- src/lang/english_US.txt | 6 +++--- src/lang/esperanto.txt | 3 +++ src/lang/estonian.txt | 6 +++--- src/lang/faroese.txt | 5 +++-- src/lang/finnish.txt | 6 +++--- src/lang/french.txt | 6 +++--- src/lang/gaelic.txt | 6 +++--- src/lang/galician.txt | 6 +++--- src/lang/german.txt | 6 +++--- src/lang/greek.txt | 6 +++--- src/lang/hebrew.txt | 6 +++--- src/lang/hungarian.txt | 6 +++--- src/lang/icelandic.txt | 5 +++-- src/lang/indonesian.txt | 6 +++--- src/lang/irish.txt | 6 +++--- src/lang/italian.txt | 6 +++--- src/lang/japanese.txt | 6 +++--- src/lang/korean.txt | 6 +++--- src/lang/latin.txt | 6 +++--- src/lang/latvian.txt | 6 +++--- src/lang/lithuanian.txt | 12 ++++++++---- src/lang/luxembourgish.txt | 6 +++--- src/lang/malay.txt | 5 +++-- src/lang/norwegian_bokmal.txt | 6 +++--- src/lang/norwegian_nynorsk.txt | 6 +++--- src/lang/polish.txt | 6 +++--- src/lang/portuguese.txt | 6 +++--- src/lang/romanian.txt | 6 +++--- src/lang/russian.txt | 6 +++--- src/lang/serbian.txt | 6 +++--- src/lang/simplified_chinese.txt | 6 +++--- src/lang/slovak.txt | 6 +++--- src/lang/slovenian.txt | 6 +++--- src/lang/spanish.txt | 6 +++--- src/lang/spanish_MX.txt | 6 +++--- src/lang/swedish.txt | 6 +++--- src/lang/tamil.txt | 6 +++--- src/lang/thai.txt | 6 +++--- src/lang/traditional_chinese.txt | 6 +++--- src/lang/turkish.txt | 6 +++--- src/lang/ukrainian.txt | 6 +++--- src/lang/unfinished/chuvash.txt | 3 +++ src/lang/unfinished/frisian.txt | 4 +++- src/lang/unfinished/ido.txt | 3 +++ src/lang/unfinished/macedonian.txt | 5 +++-- src/lang/unfinished/maltese.txt | 3 +++ src/lang/unfinished/marathi.txt | 3 +++ src/lang/unfinished/persian.txt | 6 +++--- src/lang/unfinished/urdu.txt | 3 +++ src/lang/vietnamese.txt | 6 +++--- src/lang/welsh.txt | 6 +++--- 63 files changed, 202 insertions(+), 163 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index e853dea6f6..8e4b83291a 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skerm re STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Kies die skerm resolusie om te gebruik STR_GAME_OPTIONS_RESOLUTION_OTHER :ander + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK} Koppelvlak groote STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK} Kies die koppelvlak element groote om te gebruik @@ -1749,6 +1750,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Program is uit geheue uit STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokering van {BYTES} kasgeheue vir grafika het gefaal. Die kasgeheue is verminder na {BYTES}. Dit sal OpenTDD stadiger maak. Om geheue-aanvraag te verminder, kan u 32bpp grafika en/of zoom-vlakke afskakel. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3101,13 +3104,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop di STR_GOALS_CAPTION :{WHITE}{COMPANY} Doelwitte STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale Doelwitte STR_GOALS_SPECTATOR :Globale doelwitte -STR_GOALS_GLOBAL_TITLE :{BLACK}Globale doelwitte: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Geen - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nie van toepassing - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Maatskappy doelwitte: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik op doel om skerm oor die industrie/stad/teël te sentreer. Ctrl+klik maak 'n nuwe venster vir die industrie/stad/teël oop # Goal question window diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index ffeb1b5325..4441620c37 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -939,6 +939,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}حجم اللوحة STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد العنصر المطلوب @@ -1404,6 +1405,8 @@ STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :غير متطا STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :مجهول STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... نسبة الضغط '{STRING}' غير صحيحة +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index c3c9af1fe7..451bbcc3b3 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -960,6 +960,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Pantaila STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantailaren resulozioa aukeratu STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfaze tamaina STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala @@ -1625,6 +1626,8 @@ STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... jara STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... jaramonik ez egiten musika paketeari'{STRING}': ez da aurkitu STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoriaz kanpo +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2903,13 +2906,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Udaletx # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Helburuak STR_GOALS_SPECTATOR_CAPTION :{WHITE}Helburu orokorrak -STR_GOALS_GLOBAL_TITLE :{BLACK}Helburu orokorrak: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ezer ez - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ez aplikagarria - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Konpainiaren helburuak: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikatu helburuan ikupegi nagusia industrian/herrian/laukian zentratzeko. Ktrl+Klik ikuspegi lehio berria irekiko du industri/herri/laukiaren kokapenean # Goal question window diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 01ce0bba9d..e94e98a67b 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1298,6 +1298,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Выра STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбар вырашэньня экрана STR_GAME_OPTIONS_RESOLUTION_OTHER :Iншае + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Памер элементаў інтэрфейсу STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберыце памер элементаў інтэрфейсу @@ -2058,6 +2059,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... на STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Недахоп апэратыўнай памяці STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Не атрымалася вылучыць {BYTES} для кэша спрайтаў. Памер кэша зніжаны да {BYTES}. Гэта адмоўна адаб'ецца на прадукцыйнасьці OpenTTD. Каб зьменшыць выдаткі памяці, адключыце 32-бітную ґрафіку й зьменшыце максімальны ўзровень набліжэньня. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3423,13 +3426,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Дац STR_GOALS_CAPTION :{WHITE}Задачы кампаніі «{COMPANY}» STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глабальныя задачы STR_GOALS_SPECTATOR :Агульныя задачы -STR_GOALS_GLOBAL_TITLE :{BLACK}Агульныя задачы: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Няма - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Непрыстасоўна - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Задачы кампаніі: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Пстрыкніце па задачы, каб паказаць прадпрыемства/горад/клетку. Ctrl+пстрычка паказвае ў новым вакне. # Goal question window diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 3d415c1e8f..cb43dd1b33 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -195,6 +195,7 @@ STR_COLOUR_DEFAULT :Padrão STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s +STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}quadrados/dia STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp STR_UNITS_POWER_METRIC :{COMMA}{NBSP}cv @@ -1001,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluç STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecionar a resolução da tela para usar STR_GAME_OPTIONS_RESOLUTION_OTHER :outra + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho da interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecione o tamanho de elemento de interface a ser usado @@ -1454,6 +1456,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupar despesa STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Define o layout para os gastos da companhia STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automaticamente remove sinais durante a construção de ferrovias: {STRING} STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automaticamente remove sinais durante a construção de ferrovias se os sinais estiverem no caminho. Note que isso pode levar a acidentes ferroviários. +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Limite de velocidade de avanço rápido: {STRING} +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Limita o quão rápido o jogo vai quando o avanço rápido está ativado. 0 = sem limite (o máximo que o seu computador suporta). Valores abaixo de 100% tornam o jogo mais lento. O limite máximo depende das especificações do seu computador e pode variar dependendo do jogo. +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% a velocidade normal do jogo +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Sem limite (o máximo que o seu computador suporta) STR_CONFIG_SETTING_SOUND_TICKER :Notícias: {STRING} STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Toca um som para mensagens resumidas @@ -1568,6 +1574,7 @@ STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Ano em que o jo STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nunca STR_CONFIG_SETTING_ECONOMY_TYPE :Tipo de economia: {STRING} +STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :Economia suave faz mudanças de produção com mais frequência, e em etapas menores. Economia congelada impede mudanças de produção e fechamentos de indústrias. Esta configuração pode não ter efeito se os tipos de indústria forem fornecidos por um NewGRF. STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada @@ -1782,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Sem memória STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}A alocação {BYTES} de spritecache falhou. O spritecache foi reduzido a {BYTES}. A performance do jogo será reduzida. Para reduzir a necessidade de memória tente disabilitar 32bpp gráficos e/ou reduzir o zoom. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2848,6 +2857,8 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtro: STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Substituir ficheiro STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Tem certeza de que deseja substituir o arquivo existente? +STR_SAVELOAD_DIRECTORY :{STRING} (Diretório) +STR_SAVELOAD_PARENT_DIRECTORY :{STRING} (Diretório raiz) STR_SAVELOAD_OSKTITLE :{BLACK}Coloque o nome para o jogo salvo @@ -3182,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna STR_GOALS_CAPTION :{WHITE}{COMPANY} Objetivos STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais STR_GOALS_SPECTATOR :Objetivos Globais -STR_GOALS_GLOBAL_TITLE :{G=m}{BLACK}Objetivos globais: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{G=m}{ORANGE}- Nenhum - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Não aplicável - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{G=m}{BLACK}Objetivos da empresa: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clique num objetivo para centralizar a visualização principal numa indústria/cidade.Ctrl+Clique abre uma nova janela na localização da indústria/cidade # Goal question window diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 45e93466e5..c967cb0b55 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -968,6 +968,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разм STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Избор размера на екран STR_GAME_OPTIONS_RESOLUTION_OTHER :друго + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Интерфейс размер STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Изберете размера на интерфейс елемент за използване @@ -1671,6 +1672,8 @@ STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... пр STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... пропруска набора от основни песни '{STRING}': не е открит STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Отвъд паметта +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2970,12 +2973,9 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Под # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Цели STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобални цели -STR_GOALS_GLOBAL_TITLE :{BLACK}Основни цели: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Никакви - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Неприложимо- STR_GOALS_PROGRESS :{ORANGE}напредък{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Цели на компанията: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Кликни на задачата за да центрирате камерата на фабрика/град/плочка. Ctrl+Click отваря нов прозорец центриран на фабрика/град/плочка # Goal question window diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index d71c6f9c0b..9739613004 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_OTHER :altres + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Mida de la interfície STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Escull la mida dels elements de la interfície @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...s'ign STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memòria exhaurida STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de memòria cau de sprites ha fallat. S'ha reduït aquest tipus de memòria a {BYTES}. Això reduirà el rendiment de l'OpenTTD. Per reduir els requeriments de memòria, proveu de desactivar els gràfics de 32bpp i/o els nivells extra de zoom. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectius STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectius globals STR_GOALS_SPECTATOR :Objectius globals -STR_GOALS_GLOBAL_TITLE :{BLACK}Objectius globals: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Cap - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- No aplicable - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Objectius de la companyia: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clica sobre l'objectiu per centrar la vista principal sobre la indústria/població/cel·la. Ctrl+clic per obrir una nova vista sobre la indústria/població/cel·la # Goal question window diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e9c5d1d026..33b0f32a4f 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1085,6 +1085,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Razluči STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberi razlučivost zaslona STR_GAME_OPTIONS_RESOLUTION_OTHER :ostalo + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina sučelja STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Odaberite koju ćete veličinu elementa sučelja koristiti @@ -1853,6 +1854,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... zaob STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostaje memorije STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dodjeljivanje {BYTES} predmemorije spriteova nije uspjelo. Predmemorija spriteova je smanjena na {BYTES}. Ovo će smanjiti performanse OpenTTD-a. Za smanjivanje potreba memorije you možete pokušati isključiti 32bpp grafiku i/ili razine zumiranja. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3229,13 +3232,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podmiti STR_GOALS_CAPTION :{WHITE}{COMPANY} Ciljevi STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globalni ciljevi STR_GOALS_SPECTATOR :Globalni ciljevi -STR_GOALS_GLOBAL_TITLE :{BLACK}Globalni ciljevi: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nijedan - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nije primjenjivo - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Ciljevi tvrtke: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni na cilj za centriranje središnjeg pogleda na industriju/grad/polje. Ctrl+Klik otvara novi prozor s pogledom na lokaciju industrije/grada/polja # Goal question window diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 4a85379c4f..66fc2979e1 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1087,6 +1087,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozliše STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Zvolit rozlišení obrazovky STR_GAME_OPTIONS_RESOLUTION_OTHER :jiné + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost rozhraní STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Zvolit velikost prvků uživatelského rozhraní @@ -1869,6 +1870,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostatek paměti STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Alokování {BYTES} grafické mezipaměti selhalo. Grafická mezipaměť byla zredukována na {BYTES}. To sníží výkon OpenTTD. Pro snížení paměťových nároků můžeš zkusit vypnout 32bpp grafiku a/nebo úrovně přiblížení +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3276,13 +3279,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podplat STR_GOALS_CAPTION :{WHITE}{COMPANY} Cíle STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globální cíle STR_GOALS_SPECTATOR :Globální cíle -STR_GOALS_GLOBAL_TITLE :{BLACK}Globální cíle: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Žádné - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nelze - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Cíle společnosti: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni na cíl pro zaměření pohledu na průmysl/město/pole. Ctrl+Klik otevře nové okno s pohledem na průmyslu/městu/poli. # Goal question window diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 9b01ad2c98..e39089a39e 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skærmop STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Vælg ønsket skærmopløsning STR_GAME_OPTIONS_RESOLUTION_OTHER :andet + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}grænseflade størrelse STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vælg den grænseflade størrelse du ønsker at benytte @@ -1757,6 +1758,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Utilstrækkelig hukommelse STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokering af {BYTES} spritecache fejlede. Spritecachen blev indskrænket til {BYTES}. Dette vil sænke OpenTTDs ydelse. Du kan forsøge at slå 32bpp grafik og/eller zoom-ind niveauer for at reducere hukommelseskravet +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3133,13 +3136,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bestik STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale Mål STR_GOALS_SPECTATOR :Globale Mål -STR_GOALS_GLOBAL_TITLE :{BLACK}Globale mål: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ingen - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ikke anvendelig - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Selskabsmål: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik på mål for at centrere hovedvinduet over industri/by/felt Ctrl+klik åbner et nyt vindue over industri/by/felt lokation # Goal question window diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 19e0aedeaa..b88bbcacbe 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Schermre STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecteer de schermresolutie STR_GAME_OPTIONS_RESOLUTION_OTHER :Anders + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Menupuntgrootte STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kiest de grootte van bedieningselementen @@ -1787,6 +1788,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... nege STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Geen geheugen meer STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit verlaagt de prestaties van OpenTTD. Om het benodigde geheugen te verminderen, kun je proberen om 32bpp-beeldelementen en/of inzoomniveaus uit te schakelen +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3189,13 +3192,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop he STR_GOALS_CAPTION :{WHITE}{COMPANY} Doelen STR_GOALS_SPECTATOR_CAPTION :{WHITE}Algemene doelen STR_GOALS_SPECTATOR :Algemene doelen -STR_GOALS_GLOBAL_TITLE :{BLACK}Algemene doelen: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Geen - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Niet van toepassing - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Bedrijfsdoelen: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik op doel centreert venster op industrie/stad/tegel. Ctrl+Klik opent een nieuw venster op de locatie van de industrie/stad/tegel. # Goal question window diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 1c8d244aef..5f63a2eb3f 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -963,6 +963,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :other + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} @@ -1683,6 +1684,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2964,13 +2967,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe t # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals -STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- None - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Company goals: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to centre main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location # Goal question window diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 1f45e9042e..4036109edf 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1000,6 +1000,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen r STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use STR_GAME_OPTIONS_RESOLUTION_OTHER :other + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use @@ -1786,6 +1787,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3188,13 +3191,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe t STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals STR_GOALS_SPECTATOR :Global Goals -STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- None - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Company goals: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to center main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location # Goal question window diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 321d5b3442..09b9b95087 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -952,6 +952,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekrana m STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elektu uzotan ekranan montrograndon STR_GAME_OPTIONS_RESOLUTION_OTHER :alia + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacgrandeco STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala @@ -1367,6 +1368,8 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Ŝanĝu # Config errors +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 5c00136bd2..cdd5272d5c 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1058,6 +1058,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekraanil STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekraanilahutuse valimine STR_GAME_OPTIONS_RESOLUTION_OTHER :muu + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Liidese suurus STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vali kasutatav liideseelementide suurus @@ -1844,6 +1845,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... eira STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Vahemälu on täis STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Pildipuhvri (ingl k «spritecache») suurendamine {BYTES} võrra ebaõnnestus. Pildipuhvri uus suurus on {BYTES}. Seetõttu on OpenTTD nüüd aeglasem. 32 bpp graafika keelamine ja suurendusastme ülempiirangu vähendamine piirab vahemälu tarbimist +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3247,13 +3250,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Kohali STR_GOALS_CAPTION :{WHITE}{COMPANY} eesmärgid STR_GOALS_SPECTATOR_CAPTION :{WHITE}Üldeesmärgid STR_GOALS_SPECTATOR :Üleilmsed eesmärgid -STR_GOALS_GLOBAL_TITLE :{BLACK}Üldised eesmärgid: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Mitte ühtegi - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Kehtetu - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Ettevõtte eesmärgid: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klõpsa eesmärgil, et liigutada vaateaken tööstuse/asula/ruudu asukohale. Ctrl+klõps avab uue vaateakna tööstuse/asula/ruudu asukohas # Goal question window diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index bffc078885..53ebbb4d5a 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -944,6 +944,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base grafikk sett STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vel ta base grafikk setti tú vil brúka STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} vantandi/oyðiløgd fíl{P a ir} @@ -1533,6 +1534,8 @@ STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ókendur STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Einki minni eftir STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Leitan eftir {BYTES} av spritecache eydnaðist ikki. Spritecache var skerd til {BYTES}. Hetta vil skerja framførsluna av OpenTTD. Fyri at minka um minnis krøvini kann tú royna at sløkkja fyri 32bpp grafikki og/ella suma-in stig +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2670,10 +2673,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Keyp 1 STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Mutra mynduleikan á staðnum fyri at økju um tína meting, við vanda fyri hvassari revsing um tað verður avdúka.{}Kostnaður: {CURRENCY_LONG} # Goal window -STR_GOALS_GLOBAL_TITLE :{BLACK}Heimsfevnandi mál: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Einki - -STR_GOALS_COMPANY_TITLE :{BLACK}Fyritøku mál: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Trýst á mál fyri at savna høvuðs sýni á ídnað/bygd/punt. Ctrl+trýst letur upp nýggjan sýnisglugga á ídnað/bygd/punt # Goal question window diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 2ce1ee63d2..787bb4a7db 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Näytön STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Valitse käytettävä näytön tarkkuus STR_GAME_OPTIONS_RESOLUTION_OTHER :muu + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Käyttöliittymän koko STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Valitse käyttöliittymäelementtien koko @@ -1787,6 +1788,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ohit STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Muisti lopussa STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} sprite-välimuistin varaaminen epäonnistui. Sprite-välimuistin kooksi valittiin {BYTES}. Tämä heikentää OpenTTD:n suorituskykyä. Vähentääksesi muistivaatimuksia voit kokeilla poistaa käytöstä 32bpp-grafiikat ja/tai lähennystasoja +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3189,13 +3192,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Lahjo v STR_GOALS_CAPTION :{WHITE}{COMPANY} Tavoitteet STR_GOALS_SPECTATOR_CAPTION :{WHITE}Maailmanlaajuiset tavoitteet STR_GOALS_SPECTATOR :Maailmanlaajuiset tavoitteet -STR_GOALS_GLOBAL_TITLE :{BLACK}Maailmanlaajuiset tavoitteet: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ei mitään - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ei saatavilla - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Yhtiön tavoitteet: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Keskitä päänäkymä laitokseen/kuntaan/ruutuun napsauttamalla tavoitetta. Ctrl+napsautus avaa uuden näkymäikkunan laitoksen/kunnan/ruudun sijaintiin. # Goal question window diff --git a/src/lang/french.txt b/src/lang/french.txt index 43b76f3c8c..b5f43863b2 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Résolut STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Sélectionner la résolution d'écran à utiliser STR_GAME_OPTIONS_RESOLUTION_OTHER :autre + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Taille d'interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Choisir la taille d'élément d'interface à utiliser @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... musi STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Plus de mémoire STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'allocation de {BYTES} pour le cache des sprites a échoué. Le cache des sprites a été réduit à {BYTES}. Cela va réduire les performances d'OpenTTD. Pour diminuer les besoins en mémoire vous pouvez essayer de désactiver les graphismes 32bpp et/ou les niveaux de zoom avant +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Corromp STR_GOALS_CAPTION :{WHITE}Objectifs de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectifs globaux STR_GOALS_SPECTATOR :Objectifs globaux -STR_GOALS_GLOBAL_TITLE :{BLACK}Objectifs globaux{NBSP}: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}− Aucun − -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Pas applicable - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Objectifs de la compagnie{NBSP}: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Cliquer sur l'objectif pour centrer la vue principale sur l'industrie, la ville ou la case. Ctrl-clic pour ouvrir une nouvelle vue sur l'industrie, la ville ou la case. # Goal question window diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index f5995d3a23..6c7a3df828 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1173,6 +1173,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Dùmhlac STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Tagh dùmhlachd-bhreacaidh na sgrìn a chleachdas tu STR_GAME_OPTIONS_RESOLUTION_OTHER :Gnàthaichte + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Meud na h-eadar-aghaidh STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Tagh am meud airson rud san eadar-aghaidh @@ -1914,6 +1915,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... a' l STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Chan eil cuimhne gu leòr agad STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dh'fhàillig le sònrachadh aig {BYTES} dhe thasgadan nam sprites. Chaidh tasgadan nam sprites a lùghdachadh gu {BYTES}. Le sin, bidh an dèanadas aig OpenTTD nas lugha. Gus nach bidh feum ann airson a leithid dhe chuimhne, feuch an cuir thu grafaigeachd 32bpp is/no leibheilean sùmaidh à comas +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3276,13 +3279,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Ceannai STR_GOALS_CAPTION :{WHITE}Amasan aig {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Amasan coitcheann STR_GOALS_SPECTATOR :Amasan coitcheann -STR_GOALS_GLOBAL_TITLE :{BLACK}Amasan coitcheann: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Chan eil gin - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Chan eil seo iomchaidh - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Amasan na companaidh: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Briog air an amas gus am prìomh-shealladh a mheadhanachadh air gnìomhachas/baile/leac. Fosglaidh Ctrl+briogadh port-seallaidh ùr air ionad a' ghnìomhachais/a' bhaile/na lice # Goal question window diff --git a/src/lang/galician.txt b/src/lang/galician.txt index e12c3f4014..9c926f2134 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -988,6 +988,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona a resolución de pantalla a empregar STR_GAME_OPTIONS_RESOLUTION_OTHER :outra + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño da interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleciona o tamaño de elementos da interface a usar @@ -1750,6 +1751,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...ignor STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoria esgotada STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE} Fallo ao reservar {BYTES} de caché de sprites. A caché de sprites reduciuse a {BYTES}. Isto reducirá o rendemento de OpenTTD. Para reducir os requisitos de memoria podes tentar deshabilitar os gráficos 32bpp e/ou niveles de zoom +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3124,13 +3127,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna STR_GOALS_CAPTION :{WHITE}{COMPANY} Obxectivos STR_GOALS_SPECTATOR_CAPTION :{WHITE}Obxectivos globais STR_GOALS_SPECTATOR :Obxectivos globais -STR_GOALS_GLOBAL_TITLE :{BLACK}Obxectivos globais: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ningún - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non aplicábel - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Obxectivos da compañía: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Pincha nun obxectivo para centra-la vista principal na industria/cidade/cadro. Ctrl+Click abre unha nova ventá na localización da industria/cidade/cadro # Goal question window diff --git a/src/lang/german.txt b/src/lang/german.txt index f86f60e5fe..e787bc1b61 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Bildschi STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Bildschirmauflösung auswählen STR_GAME_OPTIONS_RESOLUTION_OTHER :Andere + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Größe der Bedienelemente STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wähle die Größe der Bedienelemente @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Zu wenig Arbeitsspeicher STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservieren von {BYTES} des Spritecaches fehlgeschlagen. Der Spritecache wurde auf {BYTES} verkleinert. Dies wird die Performance von OpenTTD verschlechtern. Um den Speicherbedarf zu verringern, kann man versuchen, 32bpp-Grafiken auszuschalten und/oder den Zoom-Level zu begrenzen +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Die Sta STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziele STR_GOALS_SPECTATOR_CAPTION :{WHITE}Allgemeine Spielziele STR_GOALS_SPECTATOR :Allgemeine Spielziele -STR_GOALS_GLOBAL_TITLE :{BLACK}Allgemeine Spielziele: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Keine - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- n.v. - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Firmenspezifische Ziele: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klick auf Ziel zentriert Hauptansicht auf Industrie/Stadt/Feld. Strg+Klick öffnet eine darauf zentrierte Zusatzansicht # Goal question window diff --git a/src/lang/greek.txt b/src/lang/greek.txt index f814f95ce3..80987b97eb 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1100,6 +1100,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ανάλ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Διαλέξτε την ανάλυση της οθόνης που θέλετε STR_GAME_OPTIONS_RESOLUTION_OTHER :άλλη + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Μέγεθος διεπαφής STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Επιλέξτε το μέγεθος στοιχείου διεπαφής @@ -1868,6 +1869,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... αγ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Έλληψη μνήμης STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Η κατανομή {BYTES} του spritecache απέτυχε. Το spritecache μειώθηκε σε {BYTES}. Αυτό θα μειώσει την απόδοση του OpenTTD. Για να μειώσετε τις ανάγκες μνήμς μπορείτε να απενεργοποιήσετε τα γραφικά 32bpp graphics ή/και τα επίπεδα μεγέθυνσης +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3251,13 +3254,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Δωρ STR_GOALS_CAPTION :{WHITE}{COMPANY} Στόχοι: STR_GOALS_SPECTATOR_CAPTION :{WHITE}Καθολικοί στόχοι: STR_GOALS_SPECTATOR :Καθολικοί στόχοι -STR_GOALS_GLOBAL_TITLE :{BLACK}Καθολικοί στόχοι: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Κανένας - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Μη εφαρμόσιμος - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Εταιρικοί στόχοι: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Πατήστε στον στόχο για να επικεντρωθεί η οθόνη στη βιομηχανία/πόλη/τετραγωνίδιο. Με Ctrl+Κλικ ανοίγει το παράθυρο θέασης στην τοποθεσία της βιομηχανίας/πόλης/τετραγωνίδιου # Goal question window diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index a20b9f4596..04fc77f922 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -987,6 +987,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}רזלו STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}בחר את רזולוציית המסך STR_GAME_OPTIONS_RESOLUTION_OTHER :אחר + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}גודל ממשק STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}בחר את ממשק גודל העצם לשימוש @@ -1729,6 +1730,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... מת STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}הזיכרון התמלא STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE} הקצאת {BYTES} בתים של מטמון נכשלה. המטמון הופחת ל-{BYTES} בתים. דבר זה יפחית את הביצועים של OpenTTD. כדי להפחית את דרישות הזיכרון ניתן לנסות לבטל את הגרפיקה ב-32bbp ו/או רמות ה-זום-אין +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3055,13 +3058,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}שחד # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} מטרות STR_GOALS_SPECTATOR_CAPTION :{WHITE}מטרות גלובליות -STR_GOALS_GLOBAL_TITLE :{BLACK}מטרות גלובליות: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- אין - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- לא זמין - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}מטרות חברה: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}הקלק על מטרה כדי למרכז את התצוגה הראשית על תעשיה/עיירה/משבצת. קליק תוך כדי לחיצה על מקש Ctrl פותח חלון תצוגה חדש במיקום התעשיה/העיירה/המשבצת # Goal question window diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 0386fb04ac..133086d935 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1053,6 +1053,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Képerny STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Játékhoz használt felbontás kiválasztása STR_GAME_OPTIONS_RESOLUTION_OTHER :egyéb + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Felület mérete STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Használni kívánt felületméret kiválasztása @@ -1822,6 +1823,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... érv STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Kevés a memória STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} memória gyorsítótár kiosztása sikertelen. A gyorsítótár le lett csökkentve {BYTES}ra. Ez csökkenti az OpenTTD teljesítményét. Csökkentheted a memóriaigényt, ha kikapcsolod a 32bpp grafikát és/vagy a nagyítási szinteket +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3200,13 +3203,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}A megí STR_GOALS_CAPTION :{WHITE}{COMPANY} céljai STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globális célok STR_GOALS_SPECTATOR :Globális célok -STR_GOALS_GLOBAL_TITLE :{BLACK}Globális célok: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nincs - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nem alkalmazható - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Vállalat céljai: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Kattintással a fő nézetet a célra állítja. Ctrl+kattintással új látképet nyit a gazdasági épület/település/mező helyéről # Goal question window diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index fdc36722c0..d50106950e 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -943,6 +943,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grunngrafík STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Nota grunngrafíkina STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} týnd{P "" ar} eða ónýt{P "" ar} skrá{P "" r} @@ -1571,6 +1572,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... slep STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Minnið í tölvunni nægir ekki STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Úthlutuðum {BYTES} af skyndiminni fyrir hreyfimyndir mistókst. Skyndiminnið vegna hreyfimynda var minnkað í {BYTES}. Þetta mun minnka reiknigetu OpenTTD. Til minnka minniskröfur getur þú reynt að óvikrja 32bpp grafíkina og/eða minnkað leyfilegt súm +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2825,10 +2828,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Kaupa STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Múta bæjaryfirvöldum til að auka við fylgi þitt, með hættu á þungri refsingu komist það upp.{} Kostnaður: {CURRENCY_LONG} # Goal window -STR_GOALS_GLOBAL_TITLE :{BLACK}Markmið allra: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Engin - -STR_GOALS_COMPANY_TITLE :{BLACK}Fyrirtækja markmið: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Smelltu á markmiðið til að miðja aðal sjónarhornið á iðnað/bæ/reit. Ctrl+smella opnar nýtt sjónarhorn á iðnað/bæ/reit # Goal question window diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index e7312750b4..68f05baa62 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -999,6 +999,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolusi STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pilih resolusi layar yang diinginkan STR_GAME_OPTIONS_RESOLUTION_OTHER :lainnya + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Ukuran antarmuka STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pilih ukuran elemen antarmuka yang akan digunakan @@ -1781,6 +1782,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... meng STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Kehabisan memori 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 + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3183,13 +3186,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Kolusi STR_GOALS_CAPTION :{WHITE}{COMPANY} Target STR_GOALS_SPECTATOR_CAPTION :{WHITE}Target Global STR_GOALS_SPECTATOR :Target Global -STR_GOALS_GLOBAL_TITLE :{BLACK}Target global: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Tidak ada - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Tak terpakaikan - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Target perusahaan: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik pada tujuan untuk mengarahkan pandangan pada tengah industri/kota/kotak. Ctrl+klik untuk membuka jendela baru pada lokasi industri/kota/kotak # Goal question window diff --git a/src/lang/irish.txt b/src/lang/irish.txt index a98a1a497e..9a3be1b8a3 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -968,6 +968,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Taifeach STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Roghnaigh an taifeach scáileáin le húsáid STR_GAME_OPTIONS_RESOLUTION_OTHER :eile + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Méid an chomhéadain STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Roghnaigh méid na heiliminte comhéadain a úsáidfear @@ -1704,6 +1705,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ag t STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Easpa chuimhne STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Teipeadh {BYTES} a shannadh don taisce sprideanna. Laghdaíodh an taisce sprideanna go {BYTES}. Laghdófar feidhmíocht OpenTTD dá bharr. Chun an méid cuimhne atá riachtanach a laghdú, is féidir leat grafaicí 32bpp agus/nó leibhéil zúmála isteach a dhíchumasú +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2997,13 +3000,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Tabhair # Goal window STR_GOALS_CAPTION :{WHITE}Spriocanna {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Spriocanna Uilíocha -STR_GOALS_GLOBAL_TITLE :{BLACK}Spriocanna uilíocha: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ceann ar bith - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Neamhbhainteach - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Spriocanna na cuideachta: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Cliceáil ar an sprioc chun an príomhamharc a lárú ar an tionscal/baile/tíle. Ctrl+Cliceáil chun fuinneog amhairc nua a oscailt ar shuíomh an tionscail/an bhaile/na tíle # Goal question window diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 18dd641b46..e314f5c176 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1003,6 +1003,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Risoluzi STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleziona la risoluzione dello schermo da utilizzare STR_GAME_OPTIONS_RESOLUTION_OTHER :Altra + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Dimensione interfaccia STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleziona la dimensione deglie elementi dell'interfaccia grafica @@ -1811,6 +1812,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoria esaurita STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Impossibile allocare {BYTES} della cache degli sprite. La cache degli sprite è stata limitata a {BYTES}; questo comporterà una riduzione delle prestazioni di OpenTTD. Per ridurre la quantità di memoria richiesta è possibile disabilitare la grafica a 32 bit e/o i livelli di zoom +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3219,13 +3222,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Corromp STR_GOALS_CAPTION :{WHITE}Obiettivi della {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Obiettivi globali STR_GOALS_SPECTATOR :Obiettivi globali -STR_GOALS_GLOBAL_TITLE :{BLACK}Obiettivi globali: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nessuno - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non applicabile - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Obiettivi della compagnia: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Fare clic su un obiettivo per centrare la visuale principale sull'industria, città o riquadro. CTRL+clic mostra l'industria/città/riquadro in una mini visuale # Goal question window diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 2a5b9e8b6e..6213474e51 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -966,6 +966,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}画面 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}ゲーム画面の解像度を選択します STR_GAME_OPTIONS_RESOLUTION_OTHER :その他 + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}インターフェイスのサイズ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}インターフェイス上の単位サイズを指定します @@ -1702,6 +1703,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}ファ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}メモリー不足 STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}スプライトキャッシュ中、{BYTES}の割り当てに失敗しました。スプライトキャッシュは{BYTES}に減ったため、OpenTTDの処理速度が低下する恐れがあります。必要メモリ量を減らすには32bitグラフィックを無効にするか、最大ズームイン・ズームアウトのレベルを下げてください +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2996,13 +2999,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}買収 # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 目標 STR_GOALS_SPECTATOR_CAPTION :{WHITE}大目標 -STR_GOALS_GLOBAL_TITLE :{BLACK}大目標: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- なし - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- 適用外 - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}会社の目標: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}クリックするとメイン画面を対象となる産業・街・タイルに移動します。Ctrl+クリックで新たなビューポートを開いて対象を表示します # Goal question window diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8a0ee9579f..8b286c2bca 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}화면 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용할 화면 해상도를 선택하세요 STR_GAME_OPTIONS_RESOLUTION_OTHER :기타 + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}인터페이스 크기 STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택합니다. @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... 기 STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}메모리 초과 STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시 용량이 {BYTES}로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 설정을 기본값에 가깝게 조절하십시오. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}성취 STR_GOALS_CAPTION :{WHITE}{COMPANY} 목표 STR_GOALS_SPECTATOR_CAPTION :{WHITE}전체 목표 STR_GOALS_SPECTATOR :전체 목표 -STR_GOALS_GLOBAL_TITLE :{BLACK}전체 목표: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- 없음 - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- 적용 불가 - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}회사 목표: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/마을/칸의 위치로 화면을 이동하려면 클릭하십시오. CTRL+클릭하면 산업시설/마을/칸의 위치를 기준으로 새로운 외부 화면을 엽니다 # Goal question window diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 94208f6bdb..89bf813452 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1165,6 +1165,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluti STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Eligere resolutio scrinii adhibenda STR_GAME_OPTIONS_RESOLUTION_OTHER :alia + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Magnitudo interfaciei STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Eligere magnitudinem interfaciei adhibendam @@ -1921,6 +1922,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... negl STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoria deest STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Non potuit collocare {BYTES} promptuarii spiritus. Promptuarium spiritus minuitur ad {BYTES}. Haec minuit effectum OpenTTD. Conare removere graphicas 32bpp ut desideria memoriae minuatur +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3255,13 +3258,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Largiri STR_GOALS_CAPTION :{WHITE}{COMPANY} Proposita STR_GOALS_SPECTATOR_CAPTION :{WHITE}Proposita Universalia STR_GOALS_SPECTATOR :Proposita universalia -STR_GOALS_GLOBAL_TITLE :{BLACK}Proposita universalia: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nullae - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non applicabiles - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Proposita Societatis: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in propositum ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam # Goal question window diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 6a107f10b8..f0cbbdb53d 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1003,6 +1003,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekrāna STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekrāna izšķirtspējas izvēle STR_GAME_OPTIONS_RESOLUTION_OTHER :Cita + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Lietotāja saskarnes lielums STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Lietotāja saskarnes elementu lieluma izvēle @@ -1791,6 +1792,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nepietiek atmiņas STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Neizdevās piešķirt {BYTES} spraitu kešam. Spraitu kešs tika samazināts uz {BYTES}. Tas samazinās OpenTTD veiktspēju. Lai samazinātu prasības pret atmiņu, varat mēģināt izslēgt 32bpp grafiku un/vai tuvināšanas līmeņus +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3197,13 +3200,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Piekuku STR_GOALS_CAPTION :{WHITE}{COMPANY} mērķi STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globālie mērķi STR_GOALS_SPECTATOR :Globālie mērķi -STR_GOALS_GLOBAL_TITLE :{BLACK}Globālie mērķi: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nav - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nav attiecināms - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Uzņēmuma mērķi: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikšķināt uz mērķa, lai centrētu galveno skatu uz ražotni/pilsētu/lauciņu. Ctrl+klikšķis atver jaunu skatvietu uz ražotni/pilsētu/lauciņu # Goal question window diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 96c158946c..45b1da3631 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -427,6 +427,7 @@ STR_TOOLTIP_SORT_ORDER :{BLACK}Rikiavim STR_TOOLTIP_SORT_CRITERIA :{BLACK}Rikiavimo raktas STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Filtravimo raktas STR_BUTTON_SORT_BY :{BLACK}Rikiuoti pagal +STR_BUTTON_CATCHMENT :{BLACK}Aprėptis STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Užverti langą STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Lango antraštė — tempkite ją, jei norite perkelti langą į kitą ekrano vietą @@ -1190,6 +1191,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekrano r STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pasirinkite ekrano raišką STR_GAME_OPTIONS_RESOLUTION_OTHER :Kita + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Sąsajos elementų dydis STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pasirinkite vartotojo sąsajos elementų santykinį dydį @@ -1954,6 +1956,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... nera STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Pritrūko atminties STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Nepavyko rezervuoti sprukliams {BYTES} laikinosios atminties. Spruklių laikinoji atmintis sumažinta iki {BYTES}, o tai pablogins OpenTTD veikimo spartą. Galite pamėginti išjungti 32-ų bitų grafiką ir/arba sumažinti priartinimo lygį — tai turėtų sumažinti atminties poreikį. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2913,7 +2917,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} OpenTTD komanda # Framerate display window -STR_FRAMERATE_CAPTION :Kadrų dažnis +STR_FRAMERATE_CAPTION :Kadrų dažniai STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Modeliavimo sparta: {STRING} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Pagrindinio ciklo vykdymo sparta. @@ -3320,13 +3324,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Paperka STR_GOALS_CAPTION :{WHITE}{COMPANY} Tikslai STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globalūs tikslai STR_GOALS_SPECTATOR :Visuotiniai tikslai -STR_GOALS_GLOBAL_TITLE :{BLACK}Visuotiniai tikslai: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nieko - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Netaikomas - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Kompanijos tikslai: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Paspaudus ant nurodymo bus rodoma gamykla/miestas/vieta. Paspaudus laikant VALD (CTRL) klavišą bus atidarytas naujas langas su gamykla/miestu/vieta # Goal question window @@ -3577,8 +3578,11 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centruot STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Gamybos sparta: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Pramonės įmonė paskelbė apie jos neišvengiamą uždarymą! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Priima: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Priima: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} STR_CONFIG_GAME_PRODUCTION :{WHITE}Keisti gamybos apimtį (8 daugiklis, iki 2040) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index e5ffb113b9..d1072b515e 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -988,6 +988,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Bildopl STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Wielt d'Bildopléisung STR_GAME_OPTIONS_RESOLUTION_OTHER :Aaner + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacegréisst STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wiel d'Gréisst déi fir den Interface soll benotzt ginn @@ -1756,6 +1757,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Net genuch Späicher STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservéirung vun {BYTES} Spritecache versot. De Spritecache gouf reduzéiert op {BYTES}. Dëst reduzéiert d'Performance vun OpenTTD. Fir Späicher ze spueren kann een probéiren 32bpp Grafiken auszeschalten an/oder Zoom-Eran Stufen +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3132,13 +3135,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}D'Gemen STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziler STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Ziler STR_GOALS_SPECTATOR :Global Ziler -STR_GOALS_GLOBAL_TITLE :{BLACK}Global Ziler: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Keng - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Net uwendbar - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Firmenziler: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klick op Ziel fir d'Haptfënster op d'Industrie/Stad/Feld ze zentréiren. Ctrl+Klick mëcht eng nei Fënster op der Industrie/Stad/Feld-Positioun op # Goal question window diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 86e5c7d7c8..5fef7d802b 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -943,6 +943,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolusi STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pilih resolusi skrin untuk digunakan STR_GAME_OPTIONS_RESOLUTION_OTHER :lain + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Saiz Antaramuka STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Sila pilih saiz elemen antara muka untuk digunakan @@ -1466,6 +1467,8 @@ STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE} ... aba STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE} ... abaikan set bunyi Base '{STRING}': tidak ditemui STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE} ... abaikan set grafik Base '{STRING}': tidak ditemui +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2733,10 +2736,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Beli ha STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Rasuah pihak berkuasa bandar untuk meninggikan penarafan anda, dengan risiko hukuman yang sangat berat.{}Kos: {CURRENCY_LONG} # Goal window -STR_GOALS_GLOBAL_TITLE :{BLACK}Hasrat global: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Tiada - -STR_GOALS_COMPANY_TITLE :{BLACK}Hasrat syarikat: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik pada industri/bandar/petak untuk memusatkan pandangan. Ctrl+Klik akan membuka pusat pandangan di atas industri/bandar/petak # Goal question window diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 230290b531..775724ba6d 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skjermop STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Velg skjermoppløsningen som skal brukes STR_GAME_OPTIONS_RESOLUTION_OTHER :annet + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Grensesnitt-størrelse STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Velg grensesnitt-størrelsen som skal benyttes @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Tomt for minne STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Tildeling av {BYTES} fra spritecachen feilet. Spritecachen ble redusert til {BYTES}. Dette senke ytelsen av OpenTTD. For å redusere minneforbruken kan du forsøke å slå av 32bpp grafikk og/eller zoomnivå. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3191,13 +3194,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Du kan STR_GOALS_CAPTION :{WHITE}{COMPANY} Målsetninger STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale mål STR_GOALS_SPECTATOR :Globale mål -STR_GOALS_GLOBAL_TITLE :{BLACK}Globale mål: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ingen - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ikke relevant - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Firmaets mål: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}klikk på mål for å gå til industri/by/rute . Ctrl+klikk åpner et nytt tilleggsvindu over industriens/byens/rutens beliggenhet # Goal question window diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 5f8ccf0388..d7fa63229d 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -970,6 +970,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skjermop STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Vel skjermoppløysinga som skal nyttast STR_GAME_OPTIONS_RESOLUTION_OTHER :anna + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Grensesnittstorleik STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vel storleik å bruke på grensesnittet @@ -1628,6 +1629,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... utel STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Ikkje meir minne STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Fordeling {BYTES} av spritecache feila. Spritecache vart redusert til {BYTES}. Dette vil redusera ytelsen til OpenTTD. For å redusera minnebehova kan du prøva å deaktivera 32bpp grafikk og/eller zoom-nivåer +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2917,13 +2920,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bestikk # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale mål -STR_GOALS_GLOBAL_TITLE :{BLACK}Globale mål: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ingen - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ikkje relevant - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Målet åt firmaet: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikk på mål for å gå til industri/by/rute. Ctrl+klikk åpner eit nytt tilleggsvindauge over industrien/byen/ruta sin lokasjon. # Goal question window diff --git a/src/lang/polish.txt b/src/lang/polish.txt index dc53a8ac0d..4c4b02ecd8 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1381,6 +1381,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozdziel STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Wybierz rozdzielczość ekranu STR_GAME_OPTIONS_RESOLUTION_OTHER :inna + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Rozmiar interfejsu STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wybierz rozmiar elementów interfejsu @@ -2167,6 +2168,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Brak pamięci STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Nie powiodła się rezerwacja pamięci cache dla sprite'ów od wielkości {BYTES}. Pamięć cache sprite'ów została zredukowana do {BYTES}. Obniży to wydajność OpenTTD. By zmniejszyć zapotrzebowanie pamięci, możesz spróbować wyłączyć grafikę 32bpp i/lub poziomy zbliżenia +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3569,13 +3572,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Daj ła STR_GOALS_CAPTION :{WHITE}Cele firmy {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Cele globalne STR_GOALS_SPECTATOR :Cele globalne -STR_GOALS_GLOBAL_TITLE :{BLACK}Cele globalne: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Brak - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nie dotyczy - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Cele firmy: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Kliknij na celu by wyśrodkować widok na przedsiębiorstwie/mieście/polu. Ctrl+klik otwiera nowe okno podglądu # Goal question window diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 9bf686b79e..357c03f3b9 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -990,6 +990,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluç STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleccione a resolução do ecrã que deseja utilizar STR_GAME_OPTIONS_RESOLUTION_OTHER :outra + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleccionar tamanho do elemento de interface a usar @@ -1753,6 +1754,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... a ig STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Falta de memória STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Falha a alocar {BYTES} da cache de sprites. a cache de sprites foi reduzida para {BYTES}. Isto irá reduzir a performance do OpenTTD. Para baixar os requisitos de memória poderá desabilitar gráficos de 32bpp e/ou niveis de zoom +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3132,13 +3135,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectivos STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais STR_GOALS_SPECTATOR :Objectivos Globais -STR_GOALS_GLOBAL_TITLE :{BLACK}Objetivos globais: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nenhum - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Não aplicável - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Objetivos da empresa: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clique no objetivo para centrar a vista principal na indústria/localidade/quadrado. Ctrl+Clique abre uma nova vista na localização da indústria/localidade/quadrado # Goal question window diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index d94d44f721..371ac672bf 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -978,6 +978,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rezoluţ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Alege rezoluţia dorită pentru joc STR_GAME_OPTIONS_RESOLUTION_OTHER :(alta/nespecificată) + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Mărime interfată STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Alege mărimea elementelor de interfaţa @@ -1708,6 +1709,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... setu STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Fără memorie STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Nu s-au putut rezerva {BYTES} pentru cache al sprite-urilor. Mărimea cache-ului a fost redusă la {BYTES}. Performanța OpenTTD va fi redusă. Pentru a micșora cerințele jocului cu privire la memorie, poți încerca să dezactivezi modul grafic 32bpp și/sau reducerea numărului de nivele zoom +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3016,13 +3019,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Mituie # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Scopuri STR_GOALS_SPECTATOR_CAPTION :{WHITE}Scopuri globale -STR_GOALS_GLOBAL_TITLE :{BLACK}Ţinte globale: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nici unul - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nu este aplicabil - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Ţintele companiei: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click pe ţintă pentru a centra ecranul principal pe industrie/oraş/zonă. Ctrl+Click deschide o fereastră nouă de vizualizare a industriei/oraşului/zonei # Goal question window diff --git a/src/lang/russian.txt b/src/lang/russian.txt index cfad7a6700..ea3cd9bae8 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1146,6 +1146,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разр STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбор разрешения экрана STR_GAME_OPTIONS_RESOLUTION_OTHER :Другое + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Размер элементов интерфейса STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберите размер элементов интерфейса @@ -1939,6 +1940,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... на STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Нехватка оперативной памяти STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Не удалось выделить {BYTES} для кэша спрайтов. Размер кэша снижен до {BYTES}. Это отрицательно скажется на производительности OpenTTD. Чтобы снизить затраты памяти, отключите 32-битную графику и снизьте максимальный уровень приближения. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3369,13 +3372,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Дат STR_GOALS_CAPTION :{WHITE}Задачи компании «{COMPANY}» STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальные задачи STR_GOALS_SPECTATOR :Общие задачи -STR_GOALS_GLOBAL_TITLE :{BLACK}Общие задачи: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Нет - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Неприменимо - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Задачи компании: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Щёлкните по задаче, чтобы показать предприятие/город/клетку. Ctrl+щелчок показывает в новом окне. # Goal question window diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 6cab766ae3..210ec78622 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -1196,6 +1196,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Veličin STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberite željenu veličinu ekrana STR_GAME_OPTIONS_RESOLUTION_OTHER :drugo + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina interfejsa STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Izaberite većinu elementa koja će se koristiti @@ -1982,6 +1983,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nema više memorije STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dodela {BYTES} predmemorije sprajtova nije uspelo. Predmemorija sprajtova je smanjena na {BYTES}. Ovo će smanjiti performanse OpenTTDa. Kako bi smanjili memorijske zahteve možete pokušati da isključite 32bpp grafiku i/ili nivo zumiranja +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3384,13 +3387,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Davanje STR_GOALS_CAPTION :{WHITE}{COMPANY} Ciljevi STR_GOALS_SPECTATOR_CAPTION :{WHITE}Opšti ciljevi STR_GOALS_SPECTATOR :Opšti ciljevi -STR_GOALS_GLOBAL_TITLE :{BLACK}Opšti ciljevi: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nema - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nije primenjivo - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Ciljevi preduzeća: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikom na cilj premešta se glavni pogled na fabriku/naselje/pločicu. Ctrl+Kilk otvara novi pogled na lokaciju fabrike/naselja/pločice # Goal question window diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index c3f0d91e88..1a0363d373 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}屏幕 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}选择要使用的屏幕分辨率 STR_GAME_OPTIONS_RESOLUTION_OTHER :其他 + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}界面大小 STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}选择使用的界面元素大小 @@ -1757,6 +1758,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... 禁 STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}内存溢出 STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}无法分配 {BYTES} 的 Sprite 缓存。Sprite 缓存的大小已降至 {BYTES}。OpenTTD 的性能将受到影响。请尝试停用 32bpp 图形及/或减少放大倍数,以降低内存需求 +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3133,13 +3136,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}贿赂 STR_GOALS_CAPTION :{WHITE}{COMPANY} 目标 STR_GOALS_SPECTATOR_CAPTION :{WHITE}全球目标: STR_GOALS_SPECTATOR :全局目标 -STR_GOALS_GLOBAL_TITLE :{BLACK}全局目标: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- 无目标 - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- 不适用 - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}公司目标: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}点击使得视图移动到该工业/城镇/地块. Ctrl+左键 在该处创建一个视点. # Goal question window diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index c3358c9e2e..1e23321bba 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1068,6 +1068,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozlíš STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Výber rozlíšenia obrazovky STR_GAME_OPTIONS_RESOLUTION_OTHER :iné + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veľkosť rozhrania STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Výber veľkosti prvkov rozhrania @@ -1850,6 +1851,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostatok pamäte STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Pridelenie {BYTES} z medzipamäte zlyhalo. Medzipamäť bola zredukovaná na {BYTES}. Tým sa zníži výkon OpenTTD. Ak chcete znížiť nároky na pamäť, skúste vypnúť 32bpp grafiku a/alebo približovacie úrovne. +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3252,13 +3255,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podplat STR_GOALS_CAPTION :{WHITE}{COMPANY} Ciele STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globálne ciele STR_GOALS_SPECTATOR :Globálne ciele -STR_GOALS_GLOBAL_TITLE :{BLACK}Globálne ciele: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nič - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nepoužiteľné - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Ciele spoločnosti: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni pre vycentrovanie pohľadu na priemysel/mesto/políčko. Ctrl+klik otvorí nové okno s pohľadom na priemysel/mesto/políčko # Goal question window diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index ef98334b31..2c46af25d0 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1122,6 +1122,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ločljiv STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Izberi ločljivost zaslona STR_GAME_OPTIONS_RESOLUTION_OTHER :drugo + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost vmesnika STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Izberi velikost elementa vmesnika @@ -1859,6 +1860,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Premalo pomnilnika STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Priprava {BYTES} za predpomnilnik sličic ni uspela. Pomnilnik je bil zmanjšan na {BYTES}. To bo zmanjšalo zmogljivost OpenTTD. Za zmanjšanje potrebe po spominu onemogoči podporo za 32 bitne sličice +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3153,13 +3156,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podkupi # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Cilji STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globalni cilji -STR_GOALS_GLOBAL_TITLE :{BLACK}Globalni cilji: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Brez - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ni izvedljivo - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Cilji podjetja: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni na cilj za pogled na industrijo/mesto/polje. Ctrl+Klik odpre novo okno na industrijo/mesto/polje # Goal question window diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 403ee3c48c..541c216878 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolución de pantalla a usar STR_GAME_OPTIONS_RESOLUTION_OTHER :Otras + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elige el tamaño de los elementos de la interfaz a usar @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}No hay memoria suficiente STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Hubo un fallo al reservar {BYTES} de caché de sprites. La caché de sprites ha sido reducida a {BYTES}. Esto reducirá el rendimiento de OpenTTD. Para reducir los requisitos de memoria es posible deshabilitar los gráficos 32bpp o los niveles de zoom adicionales +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Soborna STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metas Globales STR_GOALS_SPECTATOR :Metas Globales -STR_GOALS_GLOBAL_TITLE :{BLACK}Metas globales: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ninguna - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- No aplicable - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Metas de la compañía: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clic en una meta para centrar la vista principal en la casilla, industria o municipio. Ctrl+Clic abre una nueva vista en esa localización # Goal question window diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 80591b5939..4fa4e105bf 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1002,6 +1002,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elegir la resolución de pantalla STR_GAME_OPTIONS_RESOLUTION_OTHER :Otra + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elegir el tamaño de los elementos de la interfaz @@ -1788,6 +1789,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... mús STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}No hay memoria suficiente STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}La asignación de {BYTES} de caché de sprites ha fallado. La caché de sprites ha sido reducida a {BYTES}, lo que reducirá el desempeño de OpenTTD. Para reducir los requisitos de memoria es posible deshabilitar los gráficos de 32bpp o reducir los grados de acercamiento +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3190,13 +3193,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Soborna STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metas globales STR_GOALS_SPECTATOR :Metas globales -STR_GOALS_GLOBAL_TITLE :{BLACK}Metas globales: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ninguna - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- No aplica - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Metas de la empresa STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clic en una meta para centrar la vista en la industria, pueblo o casilla. Ctrl+Clic abre una vista aparte # Goal question window diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index c85738f86d..2f7e22ce4c 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skärmup STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Välj vilken skärmupplösning som ska användas STR_GAME_OPTIONS_RESOLUTION_OTHER :annan + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Gränssnittstorlek STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken gränssnittsstorlek som ska användas @@ -1787,6 +1788,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Slut på minne STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokerandet av {BYTES} till spritecachen misslyckades. Spritecachen begränsades till {BYTES}. Detta kommer att begränsa OpenTTD:s prestanda. För att minska minneskraven kan du försöka att inaktivera 32bpp-grafik och/eller antalet inzoomningsnivåer +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3189,13 +3192,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Muta d STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globala mål STR_GOALS_SPECTATOR :Globala mål -STR_GOALS_GLOBAL_TITLE :{BLACK}Globala mål: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Inga - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Inte tillämpligt - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Företagsmål: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klicka på målet för att centrera huvudvyn på industrin/byn/rutan. Ctrl+klick gör så att ett nytt vyfönster öppnas över platsen för industrin/byn/rutan # Goal question window diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index ccb1ae31a7..155acba730 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -962,6 +962,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}தி STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}திரை அளவினைத் தேர்ந்தெடுக்கவும் STR_GAME_OPTIONS_RESOLUTION_OTHER :மற்றவை + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}இடைமுக அளவு STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :சராசரி @@ -1570,6 +1571,8 @@ STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... அ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... அடிப்படை இசைத் தொகுப்பு '{STRING}' தவிர்கப்பட்டது: கிடைக்கவில்லை STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}நினைவாற்றல் நிறைந்துவிட்டது +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2813,13 +2816,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}தங STR_GOALS_CAPTION :{WHITE}{COMPANY} குறிக்கோள்கள் STR_GOALS_SPECTATOR_CAPTION :{WHITE}உலகளாவிய குறிக்கோள்கள் STR_GOALS_SPECTATOR :உலகளாவிய குறிக்கோள்கள் -STR_GOALS_GLOBAL_TITLE :{BLACK}உலகளாவிய குறிக்கோள்கள்: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- ஏதுமில்லை - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- இதற்கு அமையாது - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}நிறுவனத்தின் குறிக்கோள்கள்: # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :{BLACK}கேள்வி diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 602260b574..34a93eb32b 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -959,6 +959,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}คว STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}เลือกความละเอียดของหน้าจอที่จะใช้ STR_GAME_OPTIONS_RESOLUTION_OTHER :อื่นๆ + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}ขนาดของแผงควบคุม @@ -1655,6 +1656,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ไ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}หน่วยความจำไม่เพียงพอ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}การกำหนดพื้นที่ {BYTES} ของ Spritecache ล้มเหลว Spritecache ได้ลดลง {BYTES}. นี่คือการทำให้ประสิทธิภาพของเกม OpenTTD ลดลง. เพื่อลดความต้องการของหน่วยความจำ ให้ทำการปิดการใช้งานระบบ 32bpp graphics +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2929,13 +2932,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}จ่ # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} เป้าหมาย STR_GOALS_SPECTATOR_CAPTION :{WHITE}เป้าหมายรวม -STR_GOALS_GLOBAL_TITLE :{BLACK}เป้าหมายโดยรวม: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- ไม่มี - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- ไม่มี - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}เป้าหมายบริษัท: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}คลิ๊กเลือกที่เป้าหมายเพื่อพาไปยังจุดเริ่มต้นที่จะทำตามเป้าหมาย # Goal question window diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 6ad18d94bb..27830bb15d 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -971,6 +971,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}螢幕 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}選擇螢幕解析度 STR_GAME_OPTIONS_RESOLUTION_OTHER :其它 + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}介面大小 STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}選擇使用的介面元素大小 @@ -1707,6 +1708,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... 正 STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}記憶體不足 STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}無法編配{BYTES}作為子畫面快取。子畫面快取的大小已降至{BYTES}。OpenTTD的效能會受到影響。請嘗試停用32bpp圖形及/或減少放大倍數,以減低記憶體要求 +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3005,13 +3008,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}冒著 # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 遊戲目標 STR_GOALS_SPECTATOR_CAPTION :{WHITE}全局目標 -STR_GOALS_GLOBAL_TITLE :{BLACK}全局目標: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- 當前無目標 - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- 不適用 - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}公司目標: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}點選目標以將有關工業 / 市鎮或方格置於畫面中央。按下 Ctrl 鍵並點選目標以開啟一個以有關工業 / 市鎮或方格為中心的新視野 # Goal question window diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 166f45649c..251007e754 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -990,6 +990,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekran Ç STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Kullanılacak ekran çözünürlüğünü seçin STR_GAME_OPTIONS_RESOLUTION_OTHER :diğer + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Arayüz boyutu STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kullanmak üzere arayüz bileşen boyutunu seçin @@ -1758,6 +1759,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... Teme STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Bellek yetersiz STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} sprite-önbelleği ayırma işlemi başarısız. Sprite-önbelleği {BYTES}'a düşürüldü. Bu OpenTTD'nin performansını azaltacak. Bellek gereksinimini azaltmak için 32bpp grafikleri ve/veya yakınlaştırma seviyelerini kapatmayı deneyebilirsiniz +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3134,13 +3137,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Yakalan STR_GOALS_CAPTION :{WHITE}{COMPANY} Hedefler STR_GOALS_SPECTATOR_CAPTION :{WHITE}Evrensel Amaçlar STR_GOALS_SPECTATOR :Evrensel Amaçlar -STR_GOALS_GLOBAL_TITLE :{BLACK}Evrensel amaçlar: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Hiçbiri - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Kullanılamaz - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Şirket hedefleri: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Ana görünümü istenen fabrika/kasaba/kareye getirmek için hedefe tıklayın. Ctrl+Tıklama fabrika/kasaba/kare konumunda yeni bir pencerede görünüm açar # Goal question window diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 730f8e6ffe..834bdbefed 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1119,6 +1119,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Розд STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Виберіть роздільну здатність екрану STR_GAME_OPTIONS_RESOLUTION_OTHER :інша + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Розмір інтерфейсу STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Оберіть розмір елементів інтерфейсу @@ -1888,6 +1889,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ба STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Не вистачає пам'яті STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Не вдалося розподілити {BYTES} спрайт-кешу. Спрайт кеш було зменшено до {BYTES}. Це зменшить швидкість роботи OpenTTD. Аби зменшити використання пам'яті спробуйте заборонити 32-бітну графіку і/або ступені масшатабування екрану +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3272,13 +3275,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Під STR_GOALS_CAPTION :{WHITE}Цілі {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальні цілі: STR_GOALS_SPECTATOR :Загальні задачі -STR_GOALS_GLOBAL_TITLE :{BLACK}Глобальні цілі: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- нема - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Неможливо застосувати - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Цілі компанії: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Клац мишою на цілі (меті) відобразить по центру виробництва/місто/клітинку у головному вікні. Ctrl+клац мишою відкриє міні-вікно # Goal question window diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index e877aa9222..ba9da85ccd 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -517,6 +517,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :расна + # Custom currency window @@ -636,6 +637,8 @@ STR_CONFIG_SETTING_PATHFINDER_NPF :NPF # Config errors +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 474dd47f19..08d03a3f37 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -968,6 +968,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skermres STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selektearje de skermresolutje om te brûken STR_GAME_OPTIONS_RESOLUTION_OTHER :oars + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacegrutte STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normaal @@ -1640,6 +1641,8 @@ STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :koe net fûn wu STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :Dat strykt net mei dizze ferzje fan OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ûnbekind +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2778,7 +2781,6 @@ STR_GOALS_CAPTION :{WHITE}{COMPANY STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globalde doelen STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Gjin - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Net fan tapassing - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index bd0f5485ca..42248dfef6 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -481,6 +481,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :altra + # Custom currency window @@ -568,6 +569,8 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora # Config errors +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index eb210b69a2..2ea32c7b22 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -801,6 +801,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Секој ме + # Custom currency window @@ -920,6 +921,8 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... ни STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... спаси играта формат '{STRING}' не е достапен. се врати на '{STRING}' STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Нема доволно меморија +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1313,10 +1316,8 @@ STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPAN # Goal window -STR_GOALS_GLOBAL_TITLE :{BLACK}Глобал цели: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Никој - -STR_GOALS_COMPANY_TITLE :{BLACK}Фирма цели: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Кликнете на цел центар главниот приказ на индустријата / град / плочка. Ctrl + Кликнете отвора нов прозорец на индустријата / град / плочка Локација # Goal question window diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 5920bfd6f1..4d12d26708 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -414,6 +414,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn + # Custom currency window @@ -499,6 +500,8 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz # Config errors +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index afae5e4061..9b56759400 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -754,6 +754,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :अन्य + # Custom currency window @@ -829,6 +830,8 @@ STR_CONFIG_SETTING_STATUSBAR_POS :स्टेट # Config errors +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}ओपेन टीटीडी {REV} diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 06e962c89d..06f4c3852c 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -961,6 +961,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}وضوح STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر + STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :دو برابر @@ -1429,6 +1430,8 @@ STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ناشناخت STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... سطح فشردگی'{STRING}' معتبر نیست STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... قالب ذخیره بازی '{STRING}' در دسترس نیست.برگردان به '{STRING}' +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2690,13 +2693,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}رشو # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} اهداف STR_GOALS_SPECTATOR_CAPTION :{WHITE}اهداف جهانی -STR_GOALS_GLOBAL_TITLE :{BLACK}اهداف جهانی: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- هیچکدام - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- غیرقابل اعمال - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}اهداف شرکت: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}روی هدف کلیک کنید تا نمای اصلی را به مرکز صنایع/شهر/قطعه ببرد. Ctrl+Click یک نمای جدید از محل صنایع/شهر قطعه باز می کند # Goal question window diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 7a25135ade..fcfbdbd7e2 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -939,6 +939,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر + STR_GAME_OPTIONS_BASE_GRF :{BLACK}بُنیادی گرافک سیٹ STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بُنیادی گرافک سیٹ اختیار کریں STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} @@ -1323,6 +1324,8 @@ STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :نا معلوم STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}- - - کمپریشن کی سطح '{STRING}' درست نہیں ہے STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE} ۔ ۔ ۔ کھیل بچانے کا یہ فارمیٹ '{STRING}' دستیاب نہیں ہے۔ واپس '{STRING}' پر جا رہے ہیں +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 2e2e708e01..b45dbfbff1 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Độ ph STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Chọn độ phân giải màn hình để sử dụng STR_GAME_OPTIONS_RESOLUTION_OTHER :khác + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Kích thước giao diện STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Chọn kích thước của các đối tượng trên giao diện @@ -1759,6 +1760,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... từ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Hết bộ nhớ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Phân bổ {BYTES} cho spritecache thất bại. Spritecache đã được giảm còn {BYTES}. Điều này có thể làm giảm hiệu năng của OpenTTD. Để giảm yêu cầu bộ nhớ, bạn có thể thử tắt gói đồ họa 32bpp và/hoặc mức độ phóng to +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3135,13 +3138,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Đút l STR_GOALS_CAPTION :{WHITE}Mục Tiêu Của {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Mục Tiêu Chung STR_GOALS_SPECTATOR :Các mục tiêu chung -STR_GOALS_GLOBAL_TITLE :{BLACK}Các mục tiêu chung: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Không - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Không khả dụng - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Các mục tiêu của công ty: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click vào mục tiêu để canh giữa cửa sổ lớn chính vào ô/đô thị/nhà máy tương ứng. Ctrl+Click để mở bằng các cửa sổ bổ sung tương ứng # Goal question window diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 13e847ad3c..1c41d12933 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -971,6 +971,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Cydrania STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Dewiswch y cydraniad sgrin i'w defnyddio STR_GAME_OPTIONS_RESOLUTION_OTHER :arall + STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Maint rhyngwyneb STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Dewis maint yr elfennau rhyngwyneb i'w defnyddio @@ -1710,6 +1711,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... yn a STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Allan o gof STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Methwyd dyroddi {BYTES} o storfa corluniau. Lleihawyd y storfa corluniau at {BYTES}. Bydd hyn yn lleihau perfformiad OpenTTD. I leihau gofynion cof gallwch roi cynnig ar analluogi graffigiau 32 did a/neu lefelau mwyháu +# Video initalization errors + # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3015,13 +3018,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Llwgrw # Goal window STR_GOALS_CAPTION :{WHITE}Amcanion {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Amcanion Bydol -STR_GOALS_GLOBAL_TITLE :{BLACK}Amcanion bydol: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Dim - -STR_GOALS_SPECTATOR_NONE :{ORANGE}- Amherthnasol - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Amcanion cwmni: STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Cliciwch ar amcan i ganoli'r brif olygfa ar y diwydiant/tref/teil Mae Ctrl+Clic yn agor ffenestr golwg newydd ar leoliad y diwydiant/tref/teil # Goal question window From 436cdf1fc898097a8cbe6226ad32a4055a6ca4d9 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Mon, 8 Mar 2021 21:16:41 +0100 Subject: [PATCH 16/53] Fix #8825: [OpenGL] Don't clear cursor cache from the game loop thread. --- src/video/opengl.cpp | 26 ++++++++++++++++++-------- src/video/opengl.h | 1 + 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/video/opengl.cpp b/src/video/opengl.cpp index 64ea02cf2d..26f6f4b4dc 100644 --- a/src/video/opengl.cpp +++ b/src/video/opengl.cpp @@ -1051,6 +1051,19 @@ void OpenGLBackend::DrawMouseCursor() void OpenGLBackend::PopulateCursorCache() { + if (this->clear_cursor_cache) { + /* We have a pending cursor cache clear to do first. */ + this->clear_cursor_cache = false; + this->last_sprite_pal = (PaletteID)-1; + + Sprite *sp; + while ((sp = this->cursor_cache.Pop()) != nullptr) { + OpenGLSprite *sprite = (OpenGLSprite *)sp->data; + sprite->~OpenGLSprite(); + free(sp); + } + } + for (uint i = 0; i < _cursor.sprite_count; ++i) { SpriteID sprite = _cursor.sprite_seq[i].sprite; @@ -1070,14 +1083,11 @@ void OpenGLBackend::PopulateCursorCache() */ void OpenGLBackend::ClearCursorCache() { - this->last_sprite_pal = (PaletteID)-1; - - Sprite *sp; - while ((sp = this->cursor_cache.Pop()) != nullptr) { - OpenGLSprite *sprite = (OpenGLSprite *)sp->data; - sprite->~OpenGLSprite(); - free(sp); - } + /* If the game loop is threaded, this function might be called + * from the game thread. As we can call OpenGL functions only + * on the main thread, just set a flag that is handled the next + * time we prepare the cursor cache for drawing. */ + this->clear_cursor_cache = true; } /** diff --git a/src/video/opengl.h b/src/video/opengl.h index 3919179e40..c17a8536d9 100644 --- a/src/video/opengl.h +++ b/src/video/opengl.h @@ -63,6 +63,7 @@ private: LRUCache cursor_cache; ///< Cache of encoded cursor sprites. PaletteID last_sprite_pal = (PaletteID)-1; ///< Last uploaded remap palette. + bool clear_cursor_cache = false; ///< A clear of the cursor cache is pending. OpenGLBackend(); ~OpenGLBackend(); From 64a8c38d2f08de5aee6315e5746cbe5ec73da9e3 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 8 Mar 2021 23:31:45 +0100 Subject: [PATCH 17/53] Fix: [Actions] update environment variable for AWS region (#8827) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ae0e4e1208..62f5498a2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -864,7 +864,7 @@ jobs: env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ secrets.AWS_REGION }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} - name: Trigger 'New OpenTTD release' uses: peter-evans/repository-dispatch@v1 From 0464a50ab8f5f6c7028da80cb0d579cdfc84717a Mon Sep 17 00:00:00 2001 From: sean <43609023+spnda@users.noreply.github.com> Date: Tue, 9 Mar 2021 10:22:52 +0100 Subject: [PATCH 18/53] Add: Display refresh rate game option (#8813) --- src/lang/english.txt | 8 +++ src/settings_gui.cpp | 108 +++++++++++++++++++++++++--------- src/video/allegro_v.cpp | 10 ++++ src/video/allegro_v.h | 2 + src/video/cocoa/cocoa_v.h | 2 + src/video/cocoa/cocoa_v.mm | 25 ++++++++ src/video/sdl2_v.cpp | 11 ++++ src/video/sdl2_v.h | 2 + src/video/video_driver.hpp | 9 +++ src/video/win32_v.cpp | 21 +++++++ src/video/win32_v.h | 2 + src/widgets/settings_widget.h | 1 + 12 files changed, 173 insertions(+), 28 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 6e803a37c0..73fdefd2dd 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1021,6 +1021,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics + +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Select the screen refresh rate to use +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :other +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Refresh rates higher than 60Hz might impact performance. + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 0ef8176bc9..1d38c4e436 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -38,8 +38,10 @@ #include "video/video_driver.hpp" #include +#include #include "safeguards.h" +#include "video/video_driver.hpp" static const StringID _autosave_dropdown[] = { @@ -140,6 +142,22 @@ void ShowBaseSetTextfileWindow(TextfileType file_type, const TBaseSet* baseset, new BaseSetTextfileWindow(file_type, baseset, content_type); } +std::set _refresh_rates = { 30, 60, 75, 90, 100, 120, 144, 240 }; + +/** + * Add the refresh rate from the config and the refresh rates from all the monitors to + * our list of refresh rates shown in the GUI. + */ +static void AddRefreshRatesAndSelect() +{ + /* Add the refresh rate as selected in the config. */ + _refresh_rates.insert(_settings_client.gui.refresh_rate); + + /* Add all the refresh rates of all monitors connected to the machine. */ + std::vector monitorRates = VideoDriver::GetInstance()->GetListOfMonitorRefreshRates(); + std::copy(monitorRates.begin(), monitorRates.end(), std::inserter(_refresh_rates, _refresh_rates.end())); +} + struct GameOptionsWindow : Window { GameSettings *opt; bool reload; @@ -149,6 +167,8 @@ struct GameOptionsWindow : Window { this->opt = &GetGameSettings(); this->reload = false; + AddRefreshRatesAndSelect(); + this->InitNested(WN_GAME_OPTIONS_GAME_OPTIONS); this->OnInvalidateData(0); } @@ -215,6 +235,16 @@ struct GameOptionsWindow : Window { } break; + case WID_GO_REFRESH_RATE_DROPDOWN: // Setup refresh rate dropdown + for (auto it = _refresh_rates.begin(); it != _refresh_rates.end(); it++) { + auto i = std::distance(_refresh_rates.begin(), it); + if (*it == _settings_client.gui.refresh_rate) *selected_index = i; + auto item = new DropDownListParamStringItem(STR_GAME_OPTIONS_REFRESH_RATE_ITEM, i, false); + item->SetParam(0, *it); + list.emplace_back(item); + } + break; + case WID_GO_GUI_ZOOM_DROPDOWN: { *selected_index = _gui_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _gui_zoom + 1 : 0; const StringID *items = _gui_zoom_dropdown; @@ -252,17 +282,18 @@ struct GameOptionsWindow : Window { void SetStringParameters(int widget) const override { switch (widget) { - case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break; - case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break; - case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break; - case WID_GO_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _resolutions.size() ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break; - case WID_GO_GUI_ZOOM_DROPDOWN: SetDParam(0, _gui_zoom_dropdown[_gui_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _gui_zoom_cfg + 1 : 0]); break; - case WID_GO_FONT_ZOOM_DROPDOWN: SetDParam(0, _font_zoom_dropdown[_font_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _font_zoom_cfg + 1 : 0]); break; - case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name.c_str()); break; - case WID_GO_BASE_GRF_STATUS: SetDParam(0, BaseGraphics::GetUsedSet()->GetNumInvalid()); break; - case WID_GO_BASE_SFX_DROPDOWN: SetDParamStr(0, BaseSounds::GetUsedSet()->name.c_str()); break; - case WID_GO_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->name.c_str()); break; - case WID_GO_BASE_MUSIC_STATUS: SetDParam(0, BaseMusic::GetUsedSet()->GetNumInvalid()); break; + case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break; + case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break; + case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break; + case WID_GO_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _resolutions.size() ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break; + case WID_GO_GUI_ZOOM_DROPDOWN: SetDParam(0, _gui_zoom_dropdown[_gui_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _gui_zoom_cfg + 1 : 0]); break; + case WID_GO_FONT_ZOOM_DROPDOWN: SetDParam(0, _font_zoom_dropdown[_font_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _font_zoom_cfg + 1 : 0]); break; + case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name.c_str()); break; + case WID_GO_BASE_GRF_STATUS: SetDParam(0, BaseGraphics::GetUsedSet()->GetNumInvalid()); break; + case WID_GO_BASE_SFX_DROPDOWN: SetDParamStr(0, BaseSounds::GetUsedSet()->name.c_str()); break; + case WID_GO_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->name.c_str()); break; + case WID_GO_BASE_MUSIC_STATUS: SetDParam(0, BaseMusic::GetUsedSet()->GetNumInvalid()); break; + case WID_GO_REFRESH_RATE_DROPDOWN: SetDParam(0, _settings_client.gui.refresh_rate); break; } } @@ -451,6 +482,16 @@ struct GameOptionsWindow : Window { } break; + case WID_GO_REFRESH_RATE_DROPDOWN: { + _settings_client.gui.refresh_rate = *std::next(_refresh_rates.begin(), index); + if (_settings_client.gui.refresh_rate > 60) { + /* Show warning to the user that this refresh rate might not be suitable on + * larger maps with many NewGRFs and vehicles. */ + ShowErrorMessage(STR_GAME_OPTIONS_REFRESH_RATE_WARNING, INVALID_STRING_ID, WL_INFO); + } + break; + } + case WID_GO_GUI_ZOOM_DROPDOWN: { int8 new_zoom = index > 0 ? ZOOM_LVL_OUT_4X - index + 1 : ZOOM_LVL_CFG_AUTO; if (new_zoom != _gui_zoom_cfg) { @@ -528,36 +569,47 @@ static const NWidgetPart _nested_game_options_widgets[] = { NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_FRAME, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_AUTOSAVE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_RESOLUTION_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), SetFill(1, 0), SetPadding(0, 0, 3, 0), - NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), SetPadding(0, 0, 3, 0), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), - EndContainer(), - NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), - NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_VIDEO_ACCELERATION, STR_NULL), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_ACCEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP), - EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GUI_ZOOM_FRAME, STR_NULL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_GUI_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), + EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 0), SetFill(0, 1), EndContainer(), NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_LANGUAGE, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_LANG_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_LANGUAGE_TOOLTIP), SetFill(1, 0), EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetFill(1, 0), - EndContainer(), - NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GUI_ZOOM_FRAME, STR_NULL), - NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_GUI_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), - EndContainer(), NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_FONT_ZOOM, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_FONT_ZOOM_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), EndContainer(), EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_GRAPHICS, STR_NULL), SetPadding(0, 10, 0, 10), + NWidget(NWID_HORIZONTAL), + NWidget(NWID_VERTICAL), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_RESOLUTION, STR_NULL), SetPadding(0, 0, 2, 0), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE, STR_NULL), SetPadding(0, 0, 2, 0), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_FULLSCREEN, STR_NULL), SetPadding(0, 0, 2, 0), + NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_GAME_OPTIONS_VIDEO_ACCELERATION, STR_NULL), + EndContainer(), + NWidget(NWID_VERTICAL), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_RESOLUTION_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_RESOLUTION_TOOLTIP), SetFill(1, 0), SetPadding(0, 0, 2, 0), + NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_REFRESH_RATE_DROPDOWN), SetMinimalSize(100, 12), SetDataTip(STR_GAME_OPTIONS_REFRESH_RATE_ITEM, STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP), SetFill(1, 0), SetPadding(0, 0, 2, 0), + NWidget(NWID_HORIZONTAL), SetPadding(0, 0, 2, 0), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(NWID_SPACER), SetMinimalSize(1, 0), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VIDEO_ACCEL_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP), + EndContainer(), + EndContainer(), + EndContainer(), + EndContainer(), + NWidget(WWT_FRAME, COLOUR_GREY), SetDataTip(STR_GAME_OPTIONS_BASE_GRF, STR_NULL), SetPadding(0, 10, 0, 10), NWidget(NWID_HORIZONTAL), SetPIP(0, 30, 0), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_BASE_GRF_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_RAW_STRING, STR_GAME_OPTIONS_BASE_GRF_TOOLTIP), diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index 0c064873b3..3d8ca65aa7 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -236,6 +236,16 @@ bool VideoDriver_Allegro::ClaimMousePointer() return true; } +std::vector VideoDriver_Allegro::GetListOfMonitorRefreshRates() +{ + std::vector rates = {}; + + int refresh_rate = get_refresh_rate(); + if (refresh_rate != 0) rates.push_back(refresh_rate); + + return rates; +} + struct AllegroVkMapping { uint16 vk_from; byte vk_count; diff --git a/src/video/allegro_v.h b/src/video/allegro_v.h index d67778b7f5..d1576fea9e 100644 --- a/src/video/allegro_v.h +++ b/src/video/allegro_v.h @@ -31,6 +31,8 @@ public: bool ClaimMousePointer() override; + std::vector GetListOfMonitorRefreshRates() override; + const char *GetName() const override { return "allegro"; } protected: diff --git a/src/video/cocoa/cocoa_v.h b/src/video/cocoa/cocoa_v.h index 371e4b5bc7..3d3db5454c 100644 --- a/src/video/cocoa/cocoa_v.h +++ b/src/video/cocoa/cocoa_v.h @@ -47,6 +47,8 @@ public: void EditBoxLostFocus() override; + std::vector GetListOfMonitorRefreshRates() override; + /* --- The following methods should be private, but can't be due to Obj-C limitations. --- */ void MainLoopReal(); diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 8d1fd4447d..9fb74cd041 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -43,6 +43,7 @@ #import /* for MAXPATHLEN */ #import /* gettimeofday */ +#include /** * Important notice regarding all modifications!!!!!!! @@ -228,6 +229,30 @@ void VideoDriver_Cocoa::EditBoxLostFocus() HandleTextInput(nullptr, true); } +/** + * Get refresh rates of all connected monitors. + */ +std::vector VideoDriver_Cocoa::GetListOfMonitorRefreshRates() +{ + std::vector rates{}; + + if (MacOSVersionIsAtLeast(10, 6, 0)) { + std::array displays; + + uint32_t count = 0; + CGGetActiveDisplayList(displays.size(), displays.data(), &count); + + for (uint32_t i = 0; i < count; i++) { + CGDisplayModeRef mode = CGDisplayCopyDisplayMode(displays[i]); + int rate = (int)CGDisplayModeGetRefreshRate(mode); + if (rate > 0) rates.push_back(rate); + CGDisplayModeRelease(mode); + } + } + + return rates; +} + /** * Get the resolution of the main screen. */ diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index 62675280ca..2d8558534f 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -237,6 +237,17 @@ void VideoDriver_SDL_Base::EditBoxLostFocus() } } +std::vector VideoDriver_SDL_Base::GetListOfMonitorRefreshRates() +{ + std::vector rates = {}; + for (int i = 0; i < SDL_GetNumVideoDisplays(); i++) { + SDL_DisplayMode mode = {}; + if (SDL_GetDisplayMode(i, 0, &mode) != 0) continue; + if (mode.refresh_rate != 0) rates.push_back(mode.refresh_rate); + } + return rates; +} + struct SDLVkMapping { SDL_Keycode vk_from; diff --git a/src/video/sdl2_v.h b/src/video/sdl2_v.h index b1a64dd9c8..bd43f71f89 100644 --- a/src/video/sdl2_v.h +++ b/src/video/sdl2_v.h @@ -39,6 +39,8 @@ public: void EditBoxLostFocus() override; + std::vector GetListOfMonitorRefreshRates() override; + const char *GetName() const override { return "sdl"; } protected: diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 4b2de253a3..8c2b9d4375 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -149,6 +149,15 @@ public: */ virtual void EditBoxGainedFocus() {} + /** + * Get a list of refresh rates of each available monitor. + * @return A vector of the refresh rates of all available monitors. + */ + virtual std::vector GetListOfMonitorRefreshRates() + { + return {}; + } + /** * Get a suggested default GUI zoom taking screen DPI into account. */ diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 8030380ce0..a802cdafa4 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -916,6 +916,27 @@ void VideoDriver_Win32Base::EditBoxLostFocus() SetCandidatePos(this->main_wnd); } +std::vector VideoDriver_Win32Base::GetListOfMonitorRefreshRates() +{ + std::vector rates = {}; + EnumDisplayMonitors(nullptr, nullptr, [](HMONITOR hMonitor, HDC hDC, LPRECT rc, LPARAM data) -> BOOL { + auto &list = *reinterpret_cast*>(data); + + MONITORINFOEX monitorInfo = {}; + monitorInfo.cbSize = sizeof(MONITORINFOEX); + GetMonitorInfo(hMonitor, &monitorInfo); + + DEVMODE devMode = {}; + devMode.dmSize = sizeof(DEVMODE); + devMode.dmDriverExtra = 0; + EnumDisplaySettings(monitorInfo.szDevice, ENUM_CURRENT_SETTINGS, &devMode); + + if (devMode.dmDisplayFrequency != 0) list.push_back(devMode.dmDisplayFrequency); + return true; + }, reinterpret_cast(&rates)); + return rates; +} + Dimension VideoDriver_Win32Base::GetScreenSize() const { return { static_cast(GetSystemMetrics(SM_CXSCREEN)), static_cast(GetSystemMetrics(SM_CYSCREEN)) }; diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 93ebdd83eb..f6ca291f10 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -33,6 +33,8 @@ public: void EditBoxLostFocus() override; + std::vector GetListOfMonitorRefreshRates() override; + protected: HWND main_wnd; ///< Handle to system window. bool fullscreen; ///< Whether to use (true) fullscreen mode. diff --git a/src/widgets/settings_widget.h b/src/widgets/settings_widget.h index 0b816ee1fe..7f8b0e1117 100644 --- a/src/widgets/settings_widget.h +++ b/src/widgets/settings_widget.h @@ -33,6 +33,7 @@ enum GameOptionsWidgets { WID_GO_BASE_MUSIC_DESCRIPTION = WID_GO_BASE_MUSIC_TEXTFILE + TFT_END, ///< Description of selected base music set. WID_GO_FONT_ZOOM_DROPDOWN, ///< Dropdown for the font zoom level. WID_GO_VIDEO_ACCEL_BUTTON, ///< Toggle for video acceleration. + WID_GO_REFRESH_RATE_DROPDOWN, ///< Dropdown for all available refresh rates. }; /** Widgets of the #GameSettingsWindow class. */ From 9fdc8810053e695ad1220ff1d22cc3df984156c6 Mon Sep 17 00:00:00 2001 From: PeterN Date: Tue, 9 Mar 2021 09:43:04 +0000 Subject: [PATCH 19/53] Fix: Scale PIP-padding the same as regular padding. (#8829) --- src/widget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widget.cpp b/src/widget.cpp index d1ba44679b..8231691082 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -2676,10 +2676,10 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, case WPT_PIPSPACE: { NWidgetPIPContainer *nwc = dynamic_cast(*dest); - if (nwc != nullptr) nwc->SetPIP(parts->u.pip.pre, parts->u.pip.inter, parts->u.pip.post); + if (nwc != nullptr) nwc->SetPIP(ScaleGUITrad(parts->u.pip.pre), ScaleGUITrad(parts->u.pip.inter), ScaleGUITrad(parts->u.pip.post)); NWidgetBackground *nwb = dynamic_cast(*dest); - if (nwb != nullptr) nwb->SetPIP(parts->u.pip.pre, parts->u.pip.inter, parts->u.pip.post); + if (nwb != nullptr) nwb->SetPIP(ScaleGUITrad(parts->u.pip.pre), ScaleGUITrad(parts->u.pip.inter), ScaleGUITrad(parts->u.pip.post)); break; } From b21ba566aeee82eb06f1b754ecc78d638dda9c56 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 10:58:33 +0100 Subject: [PATCH 20/53] Codechange: remove special strings for language and resolutions (#8824) As OpenTTD grew, we found other ways to do this, and we are no longer in need for a hack like this. --- src/lang/english.txt | 1 + src/settings_gui.cpp | 45 +++++++++++++++++++++++++++---------- src/strings.cpp | 16 ------------- src/strings_type.h | 7 ------ src/widgets/dropdown_type.h | 1 + 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 73fdefd2dd..8f29dc5269 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1000,6 +1000,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Check th STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen resolution STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use STR_GAME_OPTIONS_RESOLUTION_OTHER :other +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 1d38c4e436..ffa08e7988 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -77,14 +77,10 @@ static const void *ResolveVariableAddress(const GameSettings *settings_ptr, cons * Get index of the current screen resolution. * @return Index of the current screen resolution if it is a known resolution, _resolutions.size() otherwise. */ -static uint GetCurRes() +static uint GetCurrentResolutionIndex() { - uint i; - - for (i = 0; i != _resolutions.size(); i++) { - if (_resolutions[i] == Dimension(_screen.width, _screen.height)) break; - } - return i; + auto it = std::find(_resolutions.begin(), _resolutions.end(), Dimension(_screen.width, _screen.height)); + return std::distance(_resolutions.begin(), it); } static void ShowCustCurrency(); @@ -219,8 +215,19 @@ struct GameOptionsWindow : Window { case WID_GO_LANG_DROPDOWN: { // Setup interface language dropdown for (uint i = 0; i < _languages.size(); i++) { - if (&_languages[i] == _current_language) *selected_index = i; - list.emplace_back(new DropDownListStringItem(SPECSTR_LANGUAGE_START + i, i, false)); + auto item = new DropDownListParamStringItem(STR_JUST_RAW_STRING, i, false); + if (&_languages[i] == _current_language) { + *selected_index = i; + item->SetParamStr(0, _languages[i].own_name); + } else { + /* Especially with sprite-fonts, not all localized + * names can be rendered. So instead, we use the + * international names for anything but the current + * selected language. This avoids showing a few ???? + * entries in the dropdown list. */ + item->SetParamStr(0, _languages[i].name); + } + list.emplace_back(item); } std::sort(list.begin(), list.end(), DropDownListStringItem::NatSortFunc); break; @@ -229,9 +236,12 @@ struct GameOptionsWindow : Window { case WID_GO_RESOLUTION_DROPDOWN: // Setup resolution dropdown if (_resolutions.empty()) break; - *selected_index = GetCurRes(); + *selected_index = GetCurrentResolutionIndex(); for (uint i = 0; i < _resolutions.size(); i++) { - list.emplace_back(new DropDownListStringItem(SPECSTR_RESOLUTION_START + i, i, false)); + auto item = new DropDownListParamStringItem(STR_GAME_OPTIONS_RESOLUTION_ITEM, i, false); + item->SetParam(0, _resolutions[i].width); + item->SetParam(1, _resolutions[i].height); + list.emplace_back(item); } break; @@ -285,7 +295,6 @@ struct GameOptionsWindow : Window { case WID_GO_CURRENCY_DROPDOWN: SetDParam(0, _currency_specs[this->opt->locale.currency].name); break; case WID_GO_AUTOSAVE_DROPDOWN: SetDParam(0, _autosave_dropdown[_settings_client.gui.autosave]); break; case WID_GO_LANG_DROPDOWN: SetDParamStr(0, _current_language->own_name); break; - case WID_GO_RESOLUTION_DROPDOWN: SetDParam(0, GetCurRes() == _resolutions.size() ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break; case WID_GO_GUI_ZOOM_DROPDOWN: SetDParam(0, _gui_zoom_dropdown[_gui_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _gui_zoom_cfg + 1 : 0]); break; case WID_GO_FONT_ZOOM_DROPDOWN: SetDParam(0, _font_zoom_dropdown[_font_zoom_cfg != ZOOM_LVL_CFG_AUTO ? ZOOM_LVL_OUT_4X - _font_zoom_cfg + 1 : 0]); break; case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name.c_str()); break; @@ -294,6 +303,18 @@ struct GameOptionsWindow : Window { case WID_GO_BASE_MUSIC_DROPDOWN: SetDParamStr(0, BaseMusic::GetUsedSet()->name.c_str()); break; case WID_GO_BASE_MUSIC_STATUS: SetDParam(0, BaseMusic::GetUsedSet()->GetNumInvalid()); break; case WID_GO_REFRESH_RATE_DROPDOWN: SetDParam(0, _settings_client.gui.refresh_rate); break; + case WID_GO_RESOLUTION_DROPDOWN: { + auto current_resolution = GetCurrentResolutionIndex(); + + if (current_resolution == _resolutions.size()) { + SetDParam(0, STR_GAME_OPTIONS_RESOLUTION_OTHER); + } else { + SetDParam(0, STR_GAME_OPTIONS_RESOLUTION_ITEM); + SetDParam(1, _resolutions[current_resolution].width); + SetDParam(2, _resolutions[current_resolution].height); + } + break; + } } } diff --git a/src/strings.cpp b/src/strings.cpp index acebf88eed..02ca30f239 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1678,22 +1678,6 @@ static char *GetSpecialNameString(char *buff, int ind, StringParameters *args, c return strecpy(buff, " Transport", last); } - /* language name? */ - if (IsInsideMM(ind, (SPECSTR_LANGUAGE_START - 0x70E4), (SPECSTR_LANGUAGE_END - 0x70E4) + 1)) { - int i = ind - (SPECSTR_LANGUAGE_START - 0x70E4); - return strecpy(buff, - &_languages[i] == _current_language ? _current_language->own_name : _languages[i].name, last); - } - - /* resolution size? */ - if (IsInsideBS(ind, (SPECSTR_RESOLUTION_START - 0x70E4), _resolutions.size())) { - int i = ind - (SPECSTR_RESOLUTION_START - 0x70E4); - buff += seprintf( - buff, last, "%ux%u", _resolutions[i].width, _resolutions[i].height - ); - return buff; - } - NOT_REACHED(); } diff --git a/src/strings_type.h b/src/strings_type.h index 41ddfa957e..7ad0c71265 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -86,13 +86,6 @@ enum SpecialStrings { SPECSTR_SILLY_NAME = 0x70E5, SPECSTR_ANDCO_NAME = 0x70E6, SPECSTR_PRESIDENT_NAME = 0x70E7, - - /* reserve MAX_LANG strings for the *.lng files */ - SPECSTR_LANGUAGE_START = 0x7100, - SPECSTR_LANGUAGE_END = SPECSTR_LANGUAGE_START + MAX_LANG - 1, - - /* reserve strings for various screen resolutions MUST BE THE LAST VALUE IN THIS ENUM */ - SPECSTR_RESOLUTION_START = SPECSTR_LANGUAGE_END + 1, }; #endif /* STRINGS_TYPE_H */ diff --git a/src/widgets/dropdown_type.h b/src/widgets/dropdown_type.h index 5617027e3f..a1f240e96d 100644 --- a/src/widgets/dropdown_type.h +++ b/src/widgets/dropdown_type.h @@ -61,6 +61,7 @@ public: StringID String() const override; void SetParam(uint index, uint64 value) { decode_params[index] = value; } + void SetParamStr(uint index, const char *str) { this->SetParam(index, (uint64)(size_t)str); } }; /** From 65f558d6df6d4885372e57cdda0f55b9cdb42286 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 9 Mar 2021 18:22:28 +0000 Subject: [PATCH 21/53] Update: Translations from eints english (us): 18 changes by 2TallTyler korean: 17 changes by telk5093 german: 13 changes by danidoedel, 4 changes by Wuzzy2 finnish: 17 changes by hpiirai catalan: 17 changes by J0anJosep lithuanian: 33 changes by devbotas spanish: 17 changes by MontyMontana portuguese (brazilian): 20 changes by Greavez polish: 9 changes by yazalo --- src/lang/afrikaans.txt | 2 + src/lang/arabic_egypt.txt | 2 + src/lang/basque.txt | 2 + src/lang/belarusian.txt | 2 + src/lang/brazilian_portuguese.txt | 32 +++++++++++----- src/lang/bulgarian.txt | 2 + src/lang/catalan.txt | 26 +++++++++---- src/lang/croatian.txt | 2 + src/lang/czech.txt | 2 + src/lang/danish.txt | 2 + src/lang/dutch.txt | 2 + src/lang/english_AU.txt | 2 + src/lang/english_US.txt | 27 ++++++++++---- src/lang/esperanto.txt | 2 + src/lang/estonian.txt | 2 + src/lang/faroese.txt | 2 + src/lang/finnish.txt | 26 +++++++++---- src/lang/french.txt | 2 + src/lang/gaelic.txt | 2 + src/lang/galician.txt | 2 + src/lang/german.txt | 26 +++++++++---- src/lang/greek.txt | 2 + src/lang/hebrew.txt | 2 + src/lang/hungarian.txt | 2 + src/lang/icelandic.txt | 2 + src/lang/indonesian.txt | 2 + src/lang/irish.txt | 2 + src/lang/italian.txt | 2 + src/lang/japanese.txt | 2 + src/lang/korean.txt | 26 +++++++++---- src/lang/latin.txt | 2 + src/lang/latvian.txt | 2 + src/lang/lithuanian.txt | 59 ++++++++++++++++++------------ src/lang/luxembourgish.txt | 2 + src/lang/malay.txt | 2 + src/lang/norwegian_bokmal.txt | 2 + src/lang/norwegian_nynorsk.txt | 2 + src/lang/polish.txt | 14 +++++-- src/lang/portuguese.txt | 2 + src/lang/romanian.txt | 2 + src/lang/russian.txt | 2 + src/lang/serbian.txt | 2 + src/lang/simplified_chinese.txt | 2 + src/lang/slovak.txt | 2 + src/lang/slovenian.txt | 2 + src/lang/spanish.txt | 26 +++++++++---- src/lang/spanish_MX.txt | 2 + src/lang/swedish.txt | 2 + src/lang/tamil.txt | 2 + src/lang/thai.txt | 2 + src/lang/traditional_chinese.txt | 2 + src/lang/turkish.txt | 2 + src/lang/ukrainian.txt | 2 + src/lang/unfinished/chuvash.txt | 2 + src/lang/unfinished/frisian.txt | 2 + src/lang/unfinished/ido.txt | 2 + src/lang/unfinished/macedonian.txt | 2 + src/lang/unfinished/maltese.txt | 2 + src/lang/unfinished/marathi.txt | 2 + src/lang/unfinished/persian.txt | 2 + src/lang/unfinished/urdu.txt | 2 + src/lang/vietnamese.txt | 2 + src/lang/welsh.txt | 2 + 63 files changed, 291 insertions(+), 79 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 8e4b83291a..741d0c3d6d 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1003,6 +1003,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbele grootte STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad grootte + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis-grafikastel STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kies die basis-grafikastel stel om te gebruik STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} verlore / korrupte ler{P "" s} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 4441620c37..c6cba23eaa 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -949,6 +949,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :تقريب ×4 + + STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ملف مفقود او غير صالح diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 451bbcc3b3..b806915088 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -969,6 +969,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaina laukoit + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafiko basea markatu STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Aukeratu erabili beharreko grafiko paketea STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} galdutako/hautsitako artxiboa{P "" k} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index e94e98a67b..2a5dda0e50 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1311,6 +1311,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Абяр STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Звычайны + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Набор базавай ґрафікі STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Выбар базавага набору ґрафічных аб'ектаў STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} адсутнічаюч{P ы ых ых}/пашкоджан{P ы ых ых} файл{P "" ы аў} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index cb43dd1b33..d5cf1d06c2 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -939,15 +939,15 @@ STR_GAME_OPTIONS_CURRENCY_LTL :Litas Lituano ( STR_GAME_OPTIONS_CURRENCY_KRW :Won Sul-Coreano (KRW) STR_GAME_OPTIONS_CURRENCY_ZAR :Rand Sul-Africano (ZAR) STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizado... -STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia -STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano +STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia (GEL) +STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Novo Rublo Russo (RUB) STR_GAME_OPTIONS_CURRENCY_MXN :Peso Mexicano (MXN) STR_GAME_OPTIONS_CURRENCY_NTD :Novo dólar de Taiwan (NTD) STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi chinês (CNY) STR_GAME_OPTIONS_CURRENCY_HKD :Dólar de Hong Kong (HKD) STR_GAME_OPTIONS_CURRENCY_INR :Rúpia Indiana (INR) -STR_GAME_OPTIONS_CURRENCY_IDR :Rupia Indonésia +STR_GAME_OPTIONS_CURRENCY_IDR :Rupia Indonésia (IDR) STR_GAME_OPTIONS_CURRENCY_MYR :Ringgit Malaio (MYR) ############ end of currency region @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluç STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecionar a resolução da tela para usar STR_GAME_OPTIONS_RESOLUTION_OTHER :outra +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleração de hardware +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marque esta caixa para permitir que o OpenTTD tente usar a aceleração de hardware. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}A configuração só terá efeito após reiniciar o jogo STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho da interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecione o tamanho de elemento de interface a ser usado @@ -1019,6 +1022,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamanho duplo STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamanho quádruplo + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arquivo{P "" s} faltando/corrompido{P "" s} @@ -1790,6 +1795,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Sem mem STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}A alocação {BYTES} de spritecache falhou. O spritecache foi reduzido a {BYTES}. A performance do jogo será reduzida. Para reduzir a necessidade de memória tente disabilitar 32bpp gráficos e/ou reduzir o zoom. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Erro nas configurações de vídeo... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... nenhuma GPU compatível encontrada. Aceleração de hardware desativada # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3180,19 +3187,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiar novos STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar exclusividade da rede de transportes STR_LOCAL_AUTHORITY_ACTION_BRIBE :Subornar a prefeitura -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar uma pequena campanha publicitária local, para atrair mais passageiros e cargas para seus serviços de transporte.{}Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar uma campanha publicitária média, para atrair mais passageiros e carga para seus serviços de transporte.{}Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar uma grande campanha publicitária, para atrair mais passageiros e cargas para seus serviços de transporte.{}Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} Financiar a reconstrução da malha rodoviária urbana. Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} Construir uma estátua em honra para sua empresa.{} Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} Financiar a construção de edifícios comerciais novos na cidade.{}Preço: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Comprar a exclusividade dos serviços durante 1 ano na cidade. A prefeitura da cidade permitirá que os passageiros e cargas usem somente estações de sua empresa.{} Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar uma pequena campanha publicitária local, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um pequeno raio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar uma campanha publicitária média, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um raio médio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar uma grande campanha publicitária, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um grande raio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financiar a reconstrução da malha rodoviária urbana.{}Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construir uma estátua em homenagem à sua empresa.{}Fornece um aumento permanente na avaliação da estação nesta cidade.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financiar a construção de edifícios comerciais novos na cidade.{}Fornece um aumento temporário do crescimento da cidade nesta cidade.{}Preço: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar a exclusividade dos serviços durante 1 ano na cidade.{}A prefeitura da cidade não permitirá que passageiros e cargas usem as estações de seus concorrentes.{}Preço: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Subornar a prefeitura para aumentar a sua avaliação, correndo o risco de uma penalidade severa se apanhado.{}Preço: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Objetivos STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais STR_GOALS_SPECTATOR :Objetivos Globais +STR_GOALS_GLOBAL_BUTTON :{BLACK}Globais +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Mostra objetivos globais +STR_GOALS_COMPANY_BUTTON :{BLACK}Empresa +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Mostra objetivos da empresa STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{G=m}{ORANGE}- Nenhum - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3567,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagões STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Adaptável para: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Todos as cargas STR_PURCHASE_INFO_NONE :Nenhum +STR_PURCHASE_INFO_ENGINES_ONLY :Apenas motores STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Tração máx : {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index c967cb0b55..e5dab5e199 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -978,6 +978,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Четирик + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базов графичен набор STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Изберете базов графичен набор STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} липсващи/повредени файлове diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9739613004..9a13f0f92e 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_OTHER :altres +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acceleració per maquinari +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Seleccioneu aquesta opció per permetre que l'OpenTTD provi d'usar acceleració per maquinari. Si es canvia l'opció, s'aplicarà quan es reiniciï el programa. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}La configuració tindrà efecte quan es reiniciï el programa. STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Mida de la interfície STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Escull la mida dels elements de la interfície @@ -1019,6 +1022,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arxiu{P "" s} absent{P "" s} o corromput{P "" s}. @@ -1790,6 +1795,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memòria STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de memòria cau de sprites ha fallat. S'ha reduït aquest tipus de memòria a {BYTES}. Això reduirà el rendiment de l'OpenTTD. Per reduir els requeriments de memòria, proveu de desactivar els gràfics de 32bpp i/o els nivells extra de zoom. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}S'ha produït un error en la configuració de vídeo... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no s'ha trobat cap GPU compatible. Es desactiva l'acceleració per programari. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3180,19 +3187,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finança nous e STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Compra els drets de transport en exclusiva STR_LOCAL_AUTHORITY_ACTION_BRIBE :Suborna les autoritats locals -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finança la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finança la construcció de nous edificis comercials a la població.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra per 1 any els drets exclusius de transport en la població. L'autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins d'un radi petit al voltant del centre de la població.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins un radi mitjà al voltant del centre de la població.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins d'un radi gran al voltant del centre de la població.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finança la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Causa molèsties considerables al trànsit de vehicles de carretera durant 6 mesos.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Proporciona una millora permanent dels ratis d'estació de la població.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finança la construcció de nous edificis comercials a la població.{}Proporciona una millora temporal del creixement d'aquesta població.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra per 1 any els drets exclusius de transport en la població. L'autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}L'autoritat local no permetrà que els passatgers i càrregues locals usin les estacions dels oponents.{}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen.{}Cost: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectius STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectius globals STR_GOALS_SPECTATOR :Objectius globals +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Mostra els objectius globals +STR_GOALS_COMPANY_BUTTON :{BLACK}Companyia +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Mostra els objectius de la companyia STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Cap - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3567,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagons A STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Remodelable a: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Totes les càrregues STR_PURCHASE_INFO_NONE :Cap +STR_PURCHASE_INFO_ENGINES_ONLY :Només locomotores STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 33b0f32a4f..e2633312bf 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1100,6 +1100,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normalno STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvostruka veličina STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Četvorostruka veličina + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Osnovni set grafike STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Odaberi osnovni grafički set za igru STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} datotek{P a e a} nedostaj{P e u e}/korumpiran{P a e o} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 66fc2979e1..a2df59c865 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1104,6 +1104,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Běžné STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvojnásobná velikost STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Čtyřnásobná velikost + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Základní sada grafiky STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zvol základní sadu grafiky STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} chybějící{P "" "" ch}/poškozen{P ý é ých} soubor{P "" y ů} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index e39089a39e..46f83b24ab 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1004,6 +1004,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobbelt størrelse STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad (4x) størrelse + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis-grafiksæt STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vælg det basis-grafiksæt der skal bruges STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} forsvund{P en ne}/ødelagt{P "" e} fil{P "" er} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index b88bbcacbe..c5192c947f 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1018,6 +1018,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbele grootte STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Viervoudige grootte + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kiest de te gebruiken basisset voor grafische elementen STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/beschadigd{P "" e} bestand{P "" en} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 5f63a2eb3f..91db968c1b 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -964,6 +964,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :other + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4036109edf..8ec9ecd0dd 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -947,6 +947,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminb STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD) STR_GAME_OPTIONS_CURRENCY_INR :Indian Rupee (INR) STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian Rupiah (IDR) +STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit (MYR) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Drive on left @@ -1000,6 +1001,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen r STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use STR_GAME_OPTIONS_RESOLUTION_OTHER :other +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use @@ -1017,6 +1021,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} @@ -1788,6 +1794,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of m STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Error with video settings... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no compatible GPU found. Hardware acceleration disabled # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3178,19 +3186,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Fund new buildi STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Buy exclusive transport rights STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bribe the local authority -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network. Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honor of your company.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new commercial buildings in the town.{}Cost: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town. Town authority will only allow passengers and cargo to use your company's stations.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a small radius around the town center.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a medium radius around the town center.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a large radius around the town center.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honor of your company.{}Provides a permanent boost to station rating in this town.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}Cost: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals STR_GOALS_SPECTATOR :Global Goals +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Show global goals +STR_GOALS_COMPANY_BUTTON :{BLACK}Company +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Show company goals STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- None - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3565,6 +3577,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_NONE :None +STR_PURCHASE_INFO_ENGINES_ONLY :Engines only STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 09b9b95087..53f08dc3b7 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -961,6 +961,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Kvaroble grande + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Baza grafikaro STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selektu la uzendan bazgrafikaron STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} mankanta{P "" j}/koruptita{P "" j} dosiero{P "" j} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index cdd5272d5c..cc647a7244 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1075,6 +1075,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Tavaline STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Topeltsuurus STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Neljakordne suurus + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Lähtegraafikakogu STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valib kasutatava lähtegraafikakogu STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuduv{P "" ad}/viga{P ne sed} fail{P "" id} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 53ebbb4d5a..a733070595 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -945,6 +945,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base grafikk sett STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vel ta base grafikk setti tú vil brúka STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} vantandi/oyðiløgd fíl{P a ir} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 787bb4a7db..507b87489b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1001,6 +1001,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Näytön STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Valitse käytettävä näytön tarkkuus STR_GAME_OPTIONS_RESOLUTION_OTHER :muu +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Laitteistokiihdytys +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Valitse tämä, jos haluat, että OpenTTD yrittää käyttää laitteistokiihdytystä. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Käyttöliittymän koko STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Valitse käyttöliittymäelementtien koko @@ -1018,6 +1021,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaali STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Kaksinkertainen koko STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Nelinkertainen koko + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Perusgrafiikat STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valitse käytettävät perusgrafiikat STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuttuva{P "" a}/korruptoitunut{P "" ta} tiedosto{P "" a} @@ -1789,6 +1794,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Muisti l STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} sprite-välimuistin varaaminen epäonnistui. Sprite-välimuistin kooksi valittiin {BYTES}. Tämä heikentää OpenTTD:n suorituskykyä. Vähentääksesi muistivaatimuksia voit kokeilla poistaa käytöstä 32bpp-grafiikat ja/tai lähennystasoja # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Virhe näyttöasetuksissa… +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}… yhteensopivaa grafiikkasuoritinta ei löytynyt. Laitteistokiihdytystä ei käytetä. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3179,19 +3186,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Rahoita uusia r STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Osta yksinoikeudet kuljetuksiin STR_LOCAL_AUTHORITY_ACTION_BRIBE :Lahjo viranomaisia -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Käynnistä pieni mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Käynnistä keskikokoinen mainoskampanja houkutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Käynnistä suuri mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Rahoita tieverkon uudelleenrakentamista. Aiheuttaa huomattavaa häiriötä tieliikenteessä jopa kuuden kuukauden ajan.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Rakenna patsas yhtiösi kunniaksi.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Rahoita uusien liikerakennusten rakentamista kunnassa.{}Kustannus: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Osta vuoden yksinoikeudet kunnan liikennöintiin. Paikallisviranomaiset eivät salli muiden yhtiöiden kuljettaa matkustajia ja rahtia.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Käynnistä pieni mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita pienellä säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Käynnistä keskikokoinen mainoskampanja houkutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita keskikokoisella säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Käynnistä suuri mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita suurella säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Rahoita tieverkon uudelleenrakentamista.{}Aiheuttaa huomattavaa häiriötä tieliikenteessä jopa kuuden kuukauden ajan.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Rakenna patsas yhtiösi kunniaksi.{}Parantaa asemien arvioita pysyvästi tässä kunnassa.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Rahoita uusien liikerakennusten rakentamista kunnassa.{}Tämä kiihdyttää tämän kunnan kasvua tilapäisesti.{}Kustannus: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Osta vuoden yksinoikeudet kunnan liikennöintiin.{}Tällöin paikallisviranomaiset eivät salli matkustajien ja rahdin käyttää kilpailijoittesi asemia.{}Kustannus: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Lahjo viranomaisia lisätäksesi arviotasi; rangaistus voi olla kuitenkin suuri, jos jäät kiinni.{}Kustannus: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Tavoitteet STR_GOALS_SPECTATOR_CAPTION :{WHITE}Maailmanlaajuiset tavoitteet STR_GOALS_SPECTATOR :Maailmanlaajuiset tavoitteet +STR_GOALS_GLOBAL_BUTTON :{BLACK}Maailmanlaajuiset +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Näytä maailmanlaajuiset tavoitteet +STR_GOALS_COMPANY_BUTTON :{BLACK}Yhtiö +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Näytä yhtiön tavoitteet STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ei mitään - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3566,6 +3577,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Moottoro STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Sovitettavissa: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Kaikki rahtityypit STR_PURCHASE_INFO_NONE :Ei mitään +STR_PURCHASE_INFO_ENGINES_ONLY :Vain veturit STR_PURCHASE_INFO_ALL_BUT :Kaikki paitsi {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Suurin vetovoima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Toimintasäde: {GOLD}{COMMA} ruutua diff --git a/src/lang/french.txt b/src/lang/french.txt index b5f43863b2..fa2674bc4a 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1019,6 +1019,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Taille double STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Graphiques de base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichier{P "" s} manquant{P "" s}/corrompu{P "" s} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 6c7a3df828..365f3af064 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1183,6 +1183,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Ceithir uiread + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Seata grafaigeachd bunasach STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Tagh an seata grafaigeachd bunasach a chleachdas tu STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} {P fhaidhle fhaidhle faidhlichean faidhle} a dhìth/coirbte diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 9c926f2134..1b52d770bb 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1003,6 +1003,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamaño do cadro + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conxunto básico de gráficos STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona o conxunto de gráficos básico a empregar STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arquivo{P "" s} inexistente{P "" s}/erróneo{P "" s} diff --git a/src/lang/german.txt b/src/lang/german.txt index e787bc1b61..20c71c9e54 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Bildschi STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Bildschirmauflösung auswählen STR_GAME_OPTIONS_RESOLUTION_OTHER :Andere +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware-Beschleunigung +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um OpenTTD zu erlauben, die Hardwarebeschleunigung zu verwenden. Eine geänderte Einstellung wird nur beim Spielneustart wirksam +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Die Einstellung tritt nur nach einem Neustart des Spiels in Kraft STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Größe der Bedienelemente STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wähle die Größe der Bedienelemente @@ -1019,6 +1022,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Zweifach STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Vierfach + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fehlende/fehlerhafte Datei{P "" en} @@ -1790,6 +1795,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Zu wenig STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservieren von {BYTES} des Spritecaches fehlgeschlagen. Der Spritecache wurde auf {BYTES} verkleinert. Dies wird die Performance von OpenTTD verschlechtern. Um den Speicherbedarf zu verringern, kann man versuchen, 32bpp-Grafiken auszuschalten und/oder den Zoom-Level zu begrenzen # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Fehler mit den Grafikeinstellungen ... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... keine kompatible GPU gefunden. Hardwarebeschleunigung deaktiviert # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3180,19 +3187,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Neue Gebäude f STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Exklusive Transportrechte kaufen STR_LOCAL_AUTHORITY_ACTION_BRIBE :Die Stadtverwaltung bestechen -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Im Ort eine kleine Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Im Ort eine mittlere Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Im Ort eine große Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Die örtlichen Straßenreparaturen finanzieren. Der Straßenverkehr wird bis zu 6 Monate beeinträchtigt.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Eine Statue zu Ehren der eigenen Firma errichten.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Bau von Geschäftsgebäuden im Ort finanzieren.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Für ein Jahr die exklusiven Transportrechte in der Stadt kaufen. Die Stadtverwaltung erlaubt dann nur Passagier- und Frachttransporte der eigenen Firma.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Im Ort eine kleine Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Bewirkt eine temporäre Steigerung der Stationsbewertung in einem kleinen Radius um das Ortszentrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Im Ort eine mittlere Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Bewirkt eine temporäre Steigerung der Stationsbewertung in einem mittleren Radius um das Ortszentrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Im Ort eine große Werbekampagne starten, um mehr Passagier- und Frachtaufträge für die eigene Firma zu gewinnen.{}Bewirkt eine temporäre Steigerung der Stationsbewertung in einem großen Radius um das Ortszentrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Die örtlichen Straßenreparaturen finanzieren.{}Der Straßenverkehr wird bis zu 6 Monate beeinträchtigt.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Eine Statue zu Ehren der eigenen Firma errichten.{}Bewirkt eine permanente Steigerung der Stationsbewertung in diesem Ort.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Bau von neuen Gebäuden im Ort finanzieren.{}Bewirkt eine temporäre Steigerung des Ortswachstums in diesem Ort.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Für ein Jahr die exklusiven Transportrechte in der Stadt kaufen.{}Die Stadtverwaltung erlaubt dann nur Passagier- und Frachttransporte der eigenen Firma.{}Kosten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Die Stadtverwaltung bestechen, um die eigene Bewertung zu verbessern. Dabei riskiert man allerdings eine harte Strafe, falls man ertappt wird.{}Kosten: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziele STR_GOALS_SPECTATOR_CAPTION :{WHITE}Allgemeine Spielziele STR_GOALS_SPECTATOR :Allgemeine Spielziele +STR_GOALS_GLOBAL_BUTTON :{BLACK}Allgemein +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Allgemeine Spielziele anzeigen +STR_GOALS_COMPANY_BUTTON :{BLACK}Firma +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Firmenziele anzeigen STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Keine - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3567,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetrie STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Umrüstbar auf: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle Frachtarten STR_PURCHASE_INFO_NONE :Keine +STR_PURCHASE_INFO_ENGINES_ONLY :Nur Schienenfahrzeuge STR_PURCHASE_INFO_ALL_BUT :Alles außer {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zugkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Reichweite: {GOLD}{COMMA} Felder diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 80987b97eb..902cf649ca 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1116,6 +1116,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Κανονικ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Διπλό μέγεθος STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Τετραπλό μέγεθος + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Βασικό σετ γραφικών STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Επιλογή του βασικού σετ γραφικών που θα χρησιμοποιηθεί STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} αρχεί{P ο α} που λείπ{P ει ουν} ή είναι κατεστραμμέν{P ο α} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 04fc77f922..8207aa0e5f 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -997,6 +997,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :גודל מרו + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}ערכת גרפיקה בסיסית STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}בחר בערכת גרפיקה בסיסית לשימוש STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{P 0 "קובץ " ""}{NUM}{P "" " קבצים"} חסר{P 0 "" ים}/הושחט{P 0 "" ו} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 133086d935..8827109cc1 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1068,6 +1068,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normál STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dupla méret STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Négyszeres méret + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikus alapcsomag STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}A játékhoz használandó grafikus alapcsomag kiválasztása STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} hiányzó/hibás fájl diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index d50106950e..cc7ebe4d88 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -944,6 +944,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grunngrafík STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Nota grunngrafíkina STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} týnd{P "" ar} eða ónýt{P "" ar} skrá{P "" r} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 68f05baa62..e72602fee4 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1016,6 +1016,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Kali dua STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4 kali + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set Grafik Dasar STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pilih grafik dasar yang digunakan STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} berkas hilang atau rusak diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 9a3be1b8a3..66ab585ffc 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -978,6 +978,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Méid cheathrú + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Sraith graifice bunaidh STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Roghnaigh an sraith grafaice bunaidh le húsáid STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} {P ch ch ch gc c}omhad ar iarraidh/truaillithe diff --git a/src/lang/italian.txt b/src/lang/italian.txt index e314f5c176..1b40e372a3 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1020,6 +1020,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normale STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doppia STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quadrupla + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Pacchetto grafico di base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Seleziona il pacchetto grafico di base da utilizzare STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} file mancant{P e i}/corrott{P o i} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 6213474e51..ac81476bad 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -976,6 +976,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :4倍 + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}基本グラフィックセット STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}使用するグラフィックセットを選択します STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}見つからないか破損しているファイルが{NUM}個あります diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8b286c2bca..f9dee201b8 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}화면 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용할 화면 해상도를 선택하세요 STR_GAME_OPTIONS_RESOLUTION_OTHER :기타 +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}하드웨어 가속 +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}OpenTTD가 하드웨어 가속을 사용하게 하려면 체크하세요. 변경된 설정은 게임을 재시작한 뒤에 적용됩니다. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}이 설정은 게임을 재시작한 뒤에 적용될 것입니다 STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}인터페이스 크기 STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택합니다. @@ -1019,6 +1022,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :기본 크기 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :2배 크기 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4배 크기 + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}기본 그래픽 세트 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}게임에 사용할 기본 그래픽 세트를 선택하세요 STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM}개 파일 손실 @@ -1790,6 +1795,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}메모 STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시 용량이 {BYTES}로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 설정을 기본값에 가깝게 조절하십시오. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}비디오 설정 오류 발생... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... 호환되는 GPU를 찾지 못했습니다. 하드웨어 가속이 비활성화됩니다 # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3180,19 +3187,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :새 건물에 STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :수송 권한 독점권 구입 STR_LOCAL_AUTHORITY_ACTION_BRIBE :지역 당국에게 뇌물 주기 -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 소규모의 광고 캠페인을 시작합니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 중간 규모의 광고 캠페인을 시작합니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 대규모의 광고 캠페인을 시작합니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}도시 도로망 보수공사를 시행합니다. 앞으로 6개월간 극심한 도로 혼잡을 일으킵니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}당신의 회사를 대표하는 '명예의 동상'을 건설합니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}도시 상업 건물의 건설에 투자합니다.{}가격: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1년간의 수송 권한 독점권을 구입합니다. 도시 당국은 오직 당신 회사의 역에만 승객과 화물을 허용할 것입니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 소규모의 광고 캠페인을 시작합니다.{}도시 중심 주위의 좁은 반경 안에 있는 역 등급을 일시적으로 올려줍니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 중간 규모의 광고 캠페인을 시작합니다.{}도시 중심 주위의 적당한 반경 안에 있는 역 등급을 일시적으로 올려줍니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}더 많은 승객과 화물을 유치하기 위해 대규모의 광고 캠페인을 시작합니다.{}도시 중심 주위의 넓은 반경 안에 있는 역 등급을 일시적으로 올려줍니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}도시 도로망 보수공사를 시행합니다.{}앞으로 6개월간 극심한 도로 혼잡을 일으킵니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}당신의 회사를 대표하는 '명예의 동상'을 건설합니다.{}이 도시에 있는 역 등급을 영구적으로 올려줍니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}도시 상업 건물의 건설에 투자합니다.{}도시의 성장을 일시적으로 빠르게 만들어줍니다.{}가격: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1년 간 수송 권한 독점권을 구입합니다.{}도시 당국은 오직 당신 회사의 역에만 승객과 화물을 실을 것입니다.{}가격: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}성취도를 올리기 위해 처벌을 감수하고 지역 당국에 뇌물을 줍니다.{}가격: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 목표 STR_GOALS_SPECTATOR_CAPTION :{WHITE}전체 목표 STR_GOALS_SPECTATOR :전체 목표 +STR_GOALS_GLOBAL_BUTTON :{BLACK}전체 +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}전체 목표를 보여줍니다 +STR_GOALS_COMPANY_BUTTON :{BLACK}회사 +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}회사 목표 보기 STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- 없음 - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3567,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}전원 STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}개조가능 화물: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :모든 화물 STR_PURCHASE_INFO_NONE :없음 +STR_PURCHASE_INFO_ENGINES_ONLY :기관차만 STR_PURCHASE_INFO_ALL_BUT :{CARGO_LIST} 이외의 모든 화물 STR_PURCHASE_INFO_MAX_TE :{BLACK}최고 견인력: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}항속거리: {GOLD}{COMMA}칸 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 89bf813452..6ab99bf2d4 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1180,6 +1180,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Simplex STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Duplex STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quadruplex + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Fundamentum graphicum STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Eligere fundamentum graphicum adhibendum STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fascicul{P us i} absen{P s tes}/corrupt{P us i} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index f0cbbdb53d..5a5acdefa5 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1020,6 +1020,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normāls STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Divkāršs izmērs STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Četrkāršs izmērs + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Pamata grafikas kopa STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Atlasīt lietošanai pamata grafikas kopu STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} iztrūkstošs/bojāts fail{P s i ""} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 45b1da3631..aeeea06e6f 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -524,7 +524,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Rodyti s STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Rodyti tikslų sąrašą STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Rodyti diagramas STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Rodyti kompanijų įvertinimus -STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Rodyti pramonės įmonių sąrašą arba finansuoti naują įmonę +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Rodyti pramonės įmonių sąrašą, gamybos grandines arba įsteigti naują pramonės įmonę STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Rodyti kompanijos traukinių, suskirstytų grupėmis, sąrašą. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvertas langas su paprastu sąrašu STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Rodyti kompanijos automobilių, suskirstytų grupėmis, sąrašą. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvertas langas su paprastu sąrašu STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Rodyti kompanijos laivų, suskirstytų grupėmis, sąrašą. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvertas langas su paprastu sąrašu @@ -627,7 +627,7 @@ STR_GRAPH_MENU_HIGHSCORE :Nugalėtojų le ############ range for industry menu starts STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Pramonės katalogas STR_INDUSTRY_MENU_INDUSTRY_CHAIN :Gamybos grandinės -STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Finansuoti naują pramonės įmonę +STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Įsteigti naują pramonės įmonę ############ range ends here ############ range for railway construction menu starts @@ -1208,6 +1208,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normalus STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvigubas dydis STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Keturgubas dydis + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Bazinis grafikos rinkinys STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pasirinkti naudojimui bazinę grafikos rinkinį STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} trūkstam{P a ų os}/sugadint{P a ų os} byl{P a ų os} @@ -2001,6 +2003,7 @@ STR_INTRO_TRANSLATION :{BLACK}Šiam ve # Quit window STR_QUIT_CAPTION :{WHITE}Baigti +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Ar jūs tikrai norite baigti žaidimą ir užverti programą? STR_QUIT_YES :{BLACK}Taip STR_QUIT_NO :{BLACK}Ne @@ -2402,6 +2405,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} pr STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} pradėjo naują kompaniją (#{2:NUM}) STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} paliko žaidimą ({2:STRING}) STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} pasikeitė vardą į {STRING} +STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} persiuntė {2:CURRENCY_LONG} žaidėjui {1:STRING} STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Serveris užsidarė STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Serveris persikrauna...{}Prašau palaukti... STR_NETWORK_MESSAGE_KICKED :*** {STRING} buvo išmestas. Priežastis: ({STRING}) @@ -2766,14 +2770,20 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}3x3 tink STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Atsitiktinai # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Finansuoti naują pramonės įmonę -STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Pasirink norimą industriją iš sąrašo -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :Daug atsitiktinių pramonės įmonių -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Sukuria pramonės įmones atsitiktinėse žemėlapio vietose +STR_FUND_INDUSTRY_CAPTION :{WHITE}Pramonės įmonių steigimas +STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Pasirinkite norimą įmonę iš sąrašo +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Įsteigti daug atsitiktinių įmonių +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Įsteigia pramonės įmones atsitiktinėse žemėlapio vietose +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION :{WHITE}Atsitiktinės įmonės +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}Ar tikrai norite įsteigti daug atsitiktinių pramonės įmonių, išbarstytų po visą žemėlapį? STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Kaina: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Perspektyva -STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Statyti -STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Finansuoti +STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Steigti +STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Steigti +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Panaikinti visas įmones +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Panaikinti visas žemėlapyje esančias pramonės įmones +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Panaikinti įmones +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Ar tikrai norite panaikinti visas žemėlapyje esančias pramonės įmones? # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Gamybos grandinė {STRING.kam} @@ -3294,7 +3304,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Pervardinti mie # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} vietinė valdžia -STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Rodyti zoną vietos valdžios ribose +STR_LOCAL_AUTHORITY_ZONE :Įtakos teritorija +STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Rodyti šio miesto įtakos teritoriją STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transporto kompanijų reitingai: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Galimi veiksmai: @@ -3311,13 +3322,13 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finansuoti nauj STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Išsipirkti isškirtines pervežimo teises STR_LOCAL_AUTHORITY_ACTION_BRIBE :Papirkti vietinę valdžią -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Pradėti nedidelę reklaminę kampaniją, kuri gali pritraukti keleivius ir įmones naudotis Jūsų paslaugomis.{} Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Pradėti vidutinę reklaminę kampaniją, kuri gali pritraukti keleivius ir įmones naudotis Jūsų paslaugomis.{}Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Pradėti stambią reklaminę kampaniją, kuri gali pritraukti keleivius ir įmones naudotis Jūsų paslaugomis.{}Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finansuoti miesto kelių rekonstrukciją. Susisiekimas keliais laikinai (iki 6 men.) sutriks.{}Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Pastatyti statulą kompanijos garbei.{}Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finansuoti naujų komercinių pastatų statybą mieste.{}Kaina: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Pirkti isškirtines pervežimo teises mieste 1 metams. Miesto valdžia keleivius ir krovinius leis pervežti tik tavo įmonei.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Pradėti nedidelę reklaminę kampaniją, kuri gali pritraukti daugiau keleivių ar krovinių į jūsų transporto maršrutus.{}Laikinai pakelia stotelių reitingus nedidelėje teritorijoje aplink miesto centrą.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Pradėti vidutinio dydžio reklaminę kampaniją, kuri gali pritraukti daugiau keleivių ar krovinių į jūsų transporto maršrutus.{}Laikinai pakelia stotelių reitingus vidutinio dydžio teritorijoje aplink miesto centrą.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Pradėti stambią reklaminę kampaniją, kuri gali pritraukti daugiau keleivių ar krovinių į jūsų transporto maršrutus.{}Laikinai pakelia stotelių reitingus didelėje teritorijoje aplink miesto centrą.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finansuoti miesto kelių rekonstrukciją.{}Susisiekimas keliais laikinai (iki 6 mėn.) sutriks.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Pastatyti statulą kompanijos garbei.{}Visam laikui pakelia jūsų įmonės stotelių reitingus.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finansuoti naujų komercinių pastatų statybą mieste.{}Laikinai paskatina miesto augimą.{}Kaina: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Pirkti isškirtines pervežimo teises mieste vieneriems metams. Miesto valdžia neleis vežti keleivių ar krovinių jūsų konkurentams.{}Kaina: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Paperkant vietinę valdžią pakelti Jūsų reitingą, rizikuojant būti sunkiai nubaustam.{}Kaina: {CURRENCY_LONG} # Goal window @@ -3331,10 +3342,10 @@ STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Paspaudus ant nurodymo bus rodoma gamykla/miestas/vieta. Paspaudus laikant VALD (CTRL) klavišą bus atidarytas naujas langas su gamykla/miestu/vieta # Goal question window -STR_GOAL_QUESTION_CAPTION_QUESTION :Klausimas -STR_GOAL_QUESTION_CAPTION_INFORMATION :Informacija -STR_GOAL_QUESTION_CAPTION_WARNING :Perspėjimas -STR_GOAL_QUESTION_CAPTION_ERROR :Klaida +STR_GOAL_QUESTION_CAPTION_QUESTION :{BLACK}Klausimas +STR_GOAL_QUESTION_CAPTION_INFORMATION :{BLACK}Informacija +STR_GOAL_QUESTION_CAPTION_WARNING :{BLACK}Perspėjimas +STR_GOAL_QUESTION_CAPTION_ERROR :{YELLOW}Klaida ############ Start of Goal Question button list STR_GOAL_QUESTION_BUTTON_CANCEL :Atšaukti @@ -5179,10 +5190,10 @@ STR_INDUSTRY_NAME_SUGAR_MINE.kreip :cukraus kasykla ##id 0x6000 STR_SV_EMPTY : STR_SV_UNNAMED :Bevardis -STR_SV_TRAIN_NAME :Traukinys {COMMA} -STR_SV_ROAD_VEHICLE_NAME :Automobilis {COMMA} -STR_SV_SHIP_NAME :Laivas {COMMA} -STR_SV_AIRCRAFT_NAME :Lėktuvas {COMMA} +STR_SV_TRAIN_NAME :Traukinys #{COMMA} +STR_SV_ROAD_VEHICLE_NAME :Automobilis #{COMMA} +STR_SV_SHIP_NAME :Laivas #{COMMA} +STR_SV_AIRCRAFT_NAME :Lėktuvas #{COMMA} STR_SV_STNAME :{STRING} STR_SV_STNAME_NORTH :{STRING} šiaurinė diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index d1072b515e..272db40265 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1003,6 +1003,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Duebel Gréisst STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Véierfach + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis Grafikset STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wielt de Basis Grafikset dee soll benotzt ginn STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fehlend/korrupt Datei{P "" en} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 5fef7d802b..ed4fc8bddf 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -953,6 +953,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Saiz kuad + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set grafik asas STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pilih set grafik asas untuk digunakan STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fail hilang/rosak diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 775724ba6d..2a28a9deb4 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1019,6 +1019,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobbel størrelse STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Firedobbel størrelse + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikksett STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Velg grafikksett som skal brukes STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} manglende/ødelagt{P "" e} fil{P "" er} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index d7fa63229d..af90ba5974 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -980,6 +980,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Firedobbel stø + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikksett STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vel grafikksett som skal nyttast STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} manglande/øydelagd{P "" e} fil{P "" er} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4c4b02ecd8..3ce8686cc1 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1381,6 +1381,7 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozdziel STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Wybierz rozdzielczość ekranu STR_GAME_OPTIONS_RESOLUTION_OTHER :inna +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Ustawienie to zacznie obowiązywać dopiero po ponownym uruchomieniu gry. STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Rozmiar interfejsu STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wybierz rozmiar elementów interfejsu @@ -1398,6 +1399,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normalna STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Podwójna STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Poczwórna + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Podstawowy zestaw grafik STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wybierz podstawowy zestaw grafik do użycia STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} brak/uszkodzony plik{P "" i ów} @@ -3562,16 +3565,20 @@ STR_LOCAL_AUTHORITY_ACTION_BRIBE :Daj łapówkę STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Rozpocznij małą kampanię reklamową aby zachęcić trochę pasażerów i fabryk do korzystania z Twoich usług transportowych.{}Koszt: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Rozpocznij średnią kampanię reklamową aby zachęcić więcej pasażerów i fabryk do korzystania z Twoich usług transportowych.{}Koszt: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Rozpocznij dużą kampanię reklamową aby zachęcić mnóstwo pasażerów i fabryk do korzystania z Twoich usług transportowych.{}Koszt: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Ufunduj remont sieci dróg. Powoduje zakłócenia w ruchu ulicznym do 6 miesięcy.{}Koszt: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Zbuduj pomnik dla uczczenia Twojej firmy.{}Koszt: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Ufunduj remont sieci dróg.{}Spowoduje to zakłócenia w ruchu ulicznym do 6 miesięcy.{}Koszt: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Zbuduj pomnik dla uczczenia Twojej firmy.{}Trwale podniesie to ocenę twoich stacji w pobliżu tego miasta.{}Koszt: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Ufunduj nowe budynki komercyjne w mieście.{}Koszt: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kup roczną wyłączność na prawa transportowe w mieście. Lokalne władze pozwolą korzystać tylko z usług Twojej firmy.{}Koszt: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kup roczną wyłączność na prawa transportowe w mieście.{} Lokalne władze nie pozwolą pasażerom ani przedsiębiorstwom korzystać z usług innych firm.{}Koszt: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Daj łapówkę lokalnym władzom. Powiększ swoją ocenę, ryzykując poważne kary w razie złapania.{}Koszt: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Cele firmy {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Cele globalne STR_GOALS_SPECTATOR :Cele globalne +STR_GOALS_GLOBAL_BUTTON :{BLACK}Globalne +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Pokaż cele globalne +STR_GOALS_COMPANY_BUTTON :{BLACK}Firmowe +STR_GOALS_COMPANY_BUTTON_HELPTEXT :Pokaż cele firmowe STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Brak - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3946,6 +3953,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Moc: {GO STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Można przystosować do: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :wszystkie typy ładunków STR_PURCHASE_INFO_NONE :Żadne +STR_PURCHASE_INFO_ENGINES_ONLY :Tylko lokomotywy STR_PURCHASE_INFO_ALL_BUT :wszystko oprócz {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. siła pociągowa: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Zasięg: {GOLD}{COMMA} pól diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 357c03f3b9..261335a7f6 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1005,6 +1005,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobro do tamanho STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo do tamanho + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Seleccione o conjunto de gráficos base a usar STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ficheiro{P "" s} que falta{P "" m} / corrupto{P "" s} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 371ac672bf..936c0b0879 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -989,6 +989,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Mărime împăt STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Mărime dublă + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set grafic de bază STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selectează setul grafic de bază utilizat în joc STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fişier{P "" "e"} lipsă/corupt{P "" e} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index ea3cd9bae8..0dbaf22894 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1163,6 +1163,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Нормаль STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Двукратный STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Четырёхкратный + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовый набор графики STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Выбрать базовый набор графики STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} отсутствующи{P й х х}/повреждённы{P й х х} файл{P "" а ов} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 210ec78622..c367db9d23 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -1213,6 +1213,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Uobičajen STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvostruka veličina STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Četvorostruka veličina + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Osnovni skup grafika STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Odaberite željeni skup osnovnih grafika STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} datotek{P a e a} nedostaj{P e u e}/neispravn{P a o o} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 1a0363d373..c1fe7f3fea 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1004,6 +1004,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :正常 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :两倍大小 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :四倍大小 + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}基础图形组 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}选择要使用的基础图形组 STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} 文件{}未找到或不正确 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 1e23321bba..9393b9d7c9 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1085,6 +1085,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normálna STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvojnásobná veľkosť STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Štvornásobná veľkosť + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Základná sada grafiky STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Výber sady grafiky, ktorá má byť použitá STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} chýbajúci/poškodený súbor{P "" "y" "ov"} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 2c46af25d0..0845e626ea 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1132,6 +1132,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Velikost kvadra + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Osnovni komplet grafik STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Izberi osnovni komplet grafik za uporabo STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} manjkajoč{P a i e ih}/okvarjen{P a i e ih} datotek{P a i e ""} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 541c216878..30c2fbbf74 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolución de pantalla a usar STR_GAME_OPTIONS_RESOLUTION_OTHER :Otras +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleración por hardware +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marca esta casilla para permitir que OpenTTD intente usar aceleración por hardware. El cambio de configuración sólo tendrá efecto después de reiniciar el juego +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}El ajuste sólo tendrá efecto después de reiniciar el juego STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elige el tamaño de los elementos de la interfaz a usar @@ -1019,6 +1022,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} archivo{P "" s} perdido{P "" s} o corrupto{P "" s} @@ -1790,6 +1795,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}No hay m STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Hubo un fallo al reservar {BYTES} de caché de sprites. La caché de sprites ha sido reducida a {BYTES}. Esto reducirá el rendimiento de OpenTTD. Para reducir los requisitos de memoria es posible deshabilitar los gráficos 32bpp o los niveles de zoom adicionales # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Error en los ajustes de vídeo... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no se ha encontrado ninguna GPU compatible. La aceleración por hardware se ha desactivado # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3180,19 +3187,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la constr STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar la exclusiva de los servicios de transporte STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales. Provoca considerables complicaciones del tráfico durante 6 meses.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construye una estatua en honor a su empresa.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el municipio.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar en exclusiva los derechos de transporte en este municipio durante un año. Las autoridades solo permitirán el uso de las estaciones de su empresa.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio pequeño alrededor del centro del municipio.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio mediano alrededor del centro del municipio.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio grande alrededor del centro del municipio.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales.{}Provoca considerables complicaciones de tráfico durante 6 meses.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construye una estatua en honor a su empresa.{}Proporciona un incremento permanente en la calificación de las estaciones de este municipio.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el municipio.{}Proporciona un incremento temporal en el crecimiento del municipio.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar en exclusiva los derechos de transporte en este municipio durante un año.{}Las autoridades solo permitirán el uso de las estaciones de su empresa.{}Coste: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Sobornar a las autoridades locales para aumentar su calificación, con el riesgo de una severa penalización si es descubierto.{}Coste: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metas Globales STR_GOALS_SPECTATOR :Metas Globales +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Muestra objetivos globales +STR_GOALS_COMPANY_BUTTON :{BLACK}Empresa +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Muestra los objetivos de empresa STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ninguna - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3567,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reformable a: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Todos los tipos de carga STR_PURCHASE_INFO_NONE :Sin carga +STR_PURCHASE_INFO_ENGINES_ONLY :Sólo locomotoras STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 4fa4e105bf..dd70484a36 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1019,6 +1019,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Cuádruple + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Elegir los gráficos base STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} archivo{P "" s} perdido{P "" s} o con errores diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 2f7e22ce4c..12e30af821 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1018,6 +1018,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbel storlek STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Kvadrupel storlek + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikpaket som standard STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Välj vilket grafikpaket som ska användas som standard STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} saknad{P "" e}/trasig{P "" a} fil{P "" er} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 155acba730..94fbdd30e2 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -975,6 +975,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :இயல்ப STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :இரண்டு மடங்கு STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :நான்கு மடங்கு + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}அடிப்படை அசைவூட்டம் STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}பயன்படுத்தப்போகும் அடிப்படை அசைவூட்டத்தினை தேர்ந்தெடுக்கவும் STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} இல்லாத/பிழையான கோப்பு{P "" கள்} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 34a93eb32b..696ec3cfcf 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -965,6 +965,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}ขน + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}ตั้งค่า Graphic พื้นฐาน STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}เลือกและตั้งค่าฐานกราฟิกที่จะใช้ STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ไฟล์สูญหายหรือไม่สมบูรณ์ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 27830bb15d..352f0de4dc 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -981,6 +981,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :四倍大小 + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}基本圖形集 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}選擇要使用的基本圖形集 STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} 檔案遺失/損毀 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 251007e754..2124295234 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1005,6 +1005,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Yazı iki kat büyük STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Dört kat büyük + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Temel grafik kümesi STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kullanılacak temel grafik kümesini seçin STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} kayıp/bozuk dosya diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 834bdbefed..97d6a59b59 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1134,6 +1134,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Нормаль STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Подвійний розмір STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} відсутн{P ій іх іх}/пошкоджен{P ий их их} файл{P "" а ів} diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index ba9da85ccd..180b9e9abd 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -518,6 +518,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :расна + + # Custom currency window diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 08d03a3f37..22dc71d385 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -977,6 +977,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Fjouwerdûbele + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset for ôfbyldings STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selektearje de basis ôfbyldingsset om te brûken STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ûntbrekke{P "" nde}/korrupt{P "" e} bestân diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 42248dfef6..f7f815dee9 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -482,6 +482,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :altra + + # Custom currency window diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 2ea32c7b22..faba333da1 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -802,6 +802,8 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Секој ме + + # Custom currency window diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 4d12d26708..5cbb460003 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -415,6 +415,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn + + # Custom currency window diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 9b56759400..56250c6158 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -755,6 +755,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :अन्य + + # Custom currency window diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 06f4c3852c..fc2fdb3890 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -966,6 +966,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :دو برابر + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}بسته گرافیک پایه STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بسته گرافیک پایه را انتخاب کنید STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} فایل وجود ندارد یا خراب است diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index fcfbdbd7e2..bff6b13360 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -940,6 +940,8 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}بُنیادی گرافک سیٹ STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بُنیادی گرافک سیٹ اختیار کریں STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s} diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index b45dbfbff1..3a01b7d228 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1004,6 +1004,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Bình thường STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Phóng to gấp đôi STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Phóng nhân bốn + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gói đồ họa STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Chọn gói đồ họa để sử dụng STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} thiếu/hỏng file diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 1c41d12933..1eab406f2f 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -981,6 +981,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Pedwarplyg + + STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set raffeg sylfaenol STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Dewiswch y set raffeg sylfaenol i'w defnyddio STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ffeil ar goll/llygredig From 68e92d215a865f9e3420d0a6bfb8ccbc1241c63e Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 20:29:22 +0100 Subject: [PATCH 22/53] Fix #8810: "aircraft out of fuel" news was looking in the wrong place (#8832) v->tile for aircrafts is always zero when in the air. Only when it starts its landing (or take-off) patterns it becomes a sane value. So instead, base the news on the last x/y coordinates of the plane. --- src/aircraft_cmd.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index f4542bacdc..2d47b560f8 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -1328,19 +1328,22 @@ static void CrashAirplane(Aircraft *v) v->Next()->cargo.Truncate(); const Station *st = GetTargetAirportIfValid(v); StringID newsitem; + TileIndex vt; if (st == nullptr) { newsitem = STR_NEWS_PLANE_CRASH_OUT_OF_FUEL; + vt = TileVirtXY(v->x_pos, v->y_pos); } else { SetDParam(1, st->index); newsitem = STR_NEWS_AIRCRAFT_CRASH; + vt = v->tile; } - AI::NewEvent(v->owner, new ScriptEventVehicleCrashed(v->index, v->tile, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING)); - Game::NewEvent(new ScriptEventVehicleCrashed(v->index, v->tile, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING)); + AI::NewEvent(v->owner, new ScriptEventVehicleCrashed(v->index, vt, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING)); + Game::NewEvent(new ScriptEventVehicleCrashed(v->index, vt, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING)); - AddTileNewsItem(newsitem, NT_ACCIDENT, v->tile, nullptr, st != nullptr ? st->index : INVALID_STATION); + AddTileNewsItem(newsitem, NT_ACCIDENT, vt, nullptr, st != nullptr ? st->index : INVALID_STATION); - ModifyStationRatingAround(v->tile, v->owner, -160, 30); + ModifyStationRatingAround(vt, v->owner, -160, 30); if (_settings_client.sound.disaster) SndPlayVehicleFx(SND_12_EXPLOSION, v); } From 47e11fa3f24d04bd52acd86cd00a2df880314ca0 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 20:30:37 +0100 Subject: [PATCH 23/53] Codechange: only run InteractiveRandom() from the draw-thread (#8831) Otherwise both the draw-thread and game-thread can do it both at the same time, which gives rather unwanted side-effects. Calling it from the draw-thread alone is sufficient, as we just want to create some unpredictable randomness for the player. The draw-thread is a lot more active (normally) than the game-thread, so it is the best place of the two to do this. Additionally, InteractiveRandom() mostly has to do with visuals that are client-side-only, so more related to drawing than to game. --- src/openttd.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 728228209c..3397e4f0e0 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1484,7 +1484,6 @@ void GameLoop() } IncreaseSpriteLRU(); - InteractiveRandom(); /* Check for UDP stuff */ if (_network_available) NetworkBackgroundLoop(); From b5770acd50215744b5f9649b1ba4386be4b452c5 Mon Sep 17 00:00:00 2001 From: glx22 Date: Tue, 9 Mar 2021 17:37:08 +0100 Subject: [PATCH 24/53] Codechange: [CMake] Add checks for baseset script parameters --- cmake/scripts/Baseset.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmake/scripts/Baseset.cmake b/cmake/scripts/Baseset.cmake index 7cf60629d9..cb5fb5704d 100644 --- a/cmake/scripts/Baseset.cmake +++ b/cmake/scripts/Baseset.cmake @@ -4,6 +4,16 @@ cmake_minimum_required(VERSION 3.5) # Create a single baseset meta file with the correct translations. # +if(NOT BASESET_SOURCE_FILE) + message(FATAL_ERROR "Script needs BASESET_SOURCE_FILE defined") +endif() +if(NOT BASESET_BINARY_FILE) + message(FATAL_ERROR "Script needs BASESET_BINARY_FILE defined") +endif() +if(NOT BASESET_EXTRAGRF_FILE) + message(FATAL_ERROR "Script needs BASESET_EXTRAGRF_FILE defined") +endif() + set(ARGC 1) set(ARG_READ NO) From 35a228f78f5b64f57e93ce8d108cec98d805b469 Mon Sep 17 00:00:00 2001 From: glx22 Date: Tue, 9 Mar 2021 18:00:37 +0100 Subject: [PATCH 25/53] Add: [CMake] Install menu and media files --- CMakeLists.txt | 3 +- cmake/InstallAndPackage.cmake | 14 ++- cmake/scripts/Desktop.cmake | 60 ++++++++++++ media/CMakeLists.txt | 98 +++++++++++++++++++ media/{openttd.desktop.in => openttd.desktop} | 10 +- media/openttd.desktop.filter.awk | 11 --- media/openttd.desktop.translation.awk | 13 --- 7 files changed, 177 insertions(+), 32 deletions(-) create mode 100644 cmake/scripts/Desktop.cmake create mode 100644 media/CMakeLists.txt rename media/{openttd.desktop.in => openttd.desktop} (69%) delete mode 100644 media/openttd.desktop.filter.awk delete mode 100644 media/openttd.desktop.translation.awk diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a85bd581e..c5f1d11b50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -221,7 +221,7 @@ if(MSVC) endif() add_subdirectory(${CMAKE_SOURCE_DIR}/src) -add_subdirectory(${CMAKE_SOURCE_DIR}/media/baseset) +add_subdirectory(${CMAKE_SOURCE_DIR}/media) add_dependencies(openttd find_version) @@ -229,6 +229,7 @@ add_dependencies(openttd target_link_libraries(openttd openttd::languages openttd::settings + openttd::media openttd::basesets openttd::script_api Threads::Threads diff --git a/cmake/InstallAndPackage.cmake b/cmake/InstallAndPackage.cmake index 5fd17cb037..0b1dc14933 100644 --- a/cmake/InstallAndPackage.cmake +++ b/cmake/InstallAndPackage.cmake @@ -58,8 +58,18 @@ if(OPTION_INSTALL_FHS) COMPONENT manual) endif() -# TODO -- Media files -# TODO -- Menu files +if(UNIX AND NOT APPLE) + install(DIRECTORY + ${CMAKE_BINARY_DIR}/media/icons + ${CMAKE_BINARY_DIR}/media/pixmaps + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} + COMPONENT media) + + install(FILES + ${CMAKE_BINARY_DIR}/media/${BINARY_NAME}.desktop + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications + COMPONENT menu) +endif() if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") set(ARCHITECTURE "amd64") diff --git a/cmake/scripts/Desktop.cmake b/cmake/scripts/Desktop.cmake new file mode 100644 index 0000000000..7cec0b9afe --- /dev/null +++ b/cmake/scripts/Desktop.cmake @@ -0,0 +1,60 @@ +cmake_minimum_required(VERSION 3.5) + +# +# Create a desktop file with the correct translations. +# + +if(NOT DESKTOP_SOURCE_FILE) + message(FATAL_ERROR "Script needs DESKTOP_SOURCE_FILE defined") +endif() +if(NOT DESKTOP_BINARY_FILE) + message(FATAL_ERROR "Script needs DESKTOP_BINARY_FILE defined") +endif() +if(NOT BINARY_NAME) + message(FATAL_ERROR "Script needs BINARY_NAME defined") +endif() + +set(ARGC 1) +set(ARG_READ NO) + +# Read all the arguments given to CMake; we are looking for -- and everything +# that follows. Those are our language files. +while(ARGC LESS CMAKE_ARGC) + set(ARG ${CMAKE_ARGV${ARGC}}) + + if(ARG_READ) + list(APPEND LANG_SOURCE_FILES "${ARG}") + endif() + + if(ARG STREQUAL "--") + set(ARG_READ YES) + endif() + + math(EXPR ARGC "${ARGC} + 1") +endwhile() + +# Place holder format is @_@ +file(STRINGS "${DESKTOP_SOURCE_FILE}" PLACE_HOLDER REGEX "^@") +string(REGEX REPLACE "@([^_]+).*@" "\\1" INI_KEY "${PLACE_HOLDER}") +string(REGEX REPLACE "@[^_]+_(.*)@" "\\1" STR_ID "${PLACE_HOLDER}") +string(REGEX REPLACE "@(.*)@" "\\1" PLACE_HOLDER "${PLACE_HOLDER}") + +# Get the translations +foreach(LANGFILE IN LISTS LANG_SOURCE_FILES) + file(STRINGS "${LANGFILE}" LANGLINES REGEX "^(##isocode|${STR_ID})" ENCODING UTF-8) + string(FIND "${LANGLINES}" "${STR_ID}" HAS_STR_ID) + if(HAS_STR_ID LESS 0) + continue() + endif() + string(REGEX REPLACE "##isocode ([^;]+).*" "\\1" ISOCODE "${LANGLINES}") + if("${ISOCODE}" STREQUAL "en_GB") + string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}=\\1" LANGLINES "${LANGLINES}") + else() + string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}[${ISOCODE}]=\\1" LANGLINES "${LANGLINES}") + endif() + list(APPEND ${PLACE_HOLDER} ${LANGLINES}) +endforeach() +list(SORT ${PLACE_HOLDER}) +string(REPLACE ";" "\n" ${PLACE_HOLDER} "${${PLACE_HOLDER}}") + +configure_file(${DESKTOP_SOURCE_FILE} ${DESKTOP_BINARY_FILE}) diff --git a/media/CMakeLists.txt b/media/CMakeLists.txt new file mode 100644 index 0000000000..17b10b5ec8 --- /dev/null +++ b/media/CMakeLists.txt @@ -0,0 +1,98 @@ +add_subdirectory(baseset) + +add_library(media + INTERFACE +) +add_library(openttd::media ALIAS media) + +if(NOT UNIX OR APPLE) + return() +endif() + +set(MEDIA_PNG_SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.16.png + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.32.png + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.48.png + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.64.png + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.128.png + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.256.png +) + +# Walk over all the png files, and generate a command to copy them +foreach(MEDIA_PNG_SOURCE_FILE IN LISTS MEDIA_PNG_SOURCE_FILES) + get_filename_component(MEDIA_PNG_FILE_NAME "${MEDIA_PNG_SOURCE_FILE}" NAME) + string(REGEX REPLACE "[^.]+.([0-9]*).*" "${CMAKE_CURRENT_BINARY_DIR}/icons/hicolor/\\1x\\1/apps/${BINARY_NAME}.png" MEDIA_PNG_BINARY_FILE "${MEDIA_PNG_FILE_NAME}") + + add_custom_command(OUTPUT ${MEDIA_PNG_BINARY_FILE} + COMMAND ${CMAKE_COMMAND} -E copy + ${MEDIA_PNG_SOURCE_FILE} + ${MEDIA_PNG_BINARY_FILE} + MAIN_DEPENDENCY ${MEDIA_PNG_SOURCE_FILE} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Copying ${MEDIA_PNG_FILE_NAME} file" + ) + + list(APPEND MEDIA_BINARY_FILES ${MEDIA_PNG_BINARY_FILE}) +endforeach() + +set(MEDIA_XPM_SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.32.xpm + ${CMAKE_CURRENT_SOURCE_DIR}/openttd.64.xpm +) + +# Walk over all the xpm files, and generate a command to copy them +foreach(MEDIA_XPM_SOURCE_FILE IN LISTS MEDIA_XPM_SOURCE_FILES) + get_filename_component(MEDIA_XPM_FILE_NAME "${MEDIA_XPM_SOURCE_FILE}" NAME) + get_filename_component(MEDIA_XPM_FILE_EXT "${MEDIA_XPM_FILE_NAME}" EXT) + set(MEDIA_XPM_BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/pixmaps/${BINARY_NAME}${MEDIA_XPM_FILE_EXT}") + + add_custom_command(OUTPUT ${MEDIA_XPM_BINARY_FILE} + COMMAND ${CMAKE_COMMAND} -E copy + ${MEDIA_XPM_SOURCE_FILE} + ${MEDIA_XPM_BINARY_FILE} + MAIN_DEPENDENCY ${MEDIA_XPM_SOURCE_FILE} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Copying ${MEDIA_XPM_FILE_NAME} file" + ) + + list(APPEND MEDIA_BINARY_FILES ${MEDIA_XPM_BINARY_FILE}) +endforeach() + +# Create a new target which copies media files +add_custom_target(media_files + DEPENDS + ${MEDIA_BINARY_FILES} +) + +add_dependencies(media + media_files +) + +get_target_property(LANG_SOURCE_FILES language_files LANG_SOURCE_FILES) + +set(DESKTOP_BINARY_NAME ${BINARY_NAME}.desktop) + +add_custom_command_timestamp(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME} + COMMAND ${CMAKE_COMMAND} + -DDESKTOP_SOURCE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/openttd.desktop + -DDESKTOP_BINARY_FILE=${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME} + -DBINARY_NAME=${BINARY_NAME} + -P ${CMAKE_SOURCE_DIR}/cmake/scripts/Desktop.cmake + -- + ${LANG_SOURCE_FILES} + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/openttd.desktop + DEPENDS ${LANG_SOURCE_FILES} + ${CMAKE_SOURCE_DIR}/cmake/scripts/Desktop.cmake + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating desktop file" +) + +# Create a new target which generates desktop file +add_custom_target_timestamp(desktop_file + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME} +) + +add_dependencies(media + desktop_file +) diff --git a/media/openttd.desktop.in b/media/openttd.desktop similarity index 69% rename from media/openttd.desktop.in rename to media/openttd.desktop index 4a251114c4..e0aef004cd 100644 --- a/media/openttd.desktop.in +++ b/media/openttd.desktop @@ -2,10 +2,10 @@ [Desktop Entry] Type=Application Version=1.0 -Name=!!MENU_NAME!! -Icon=!!TTD!! -Exec=!!TTD!! +Name=OpenTTD +Icon=${BINARY_NAME} +Exec=${BINARY_NAME} Terminal=false -Categories=!!MENU_GROUP!! -Comment=A clone of Transport Tycoon Deluxe +Categories=Game; Keywords=game;simulation;transport;tycoon;deluxe;economics;multiplayer;money;train;ship;bus;truck;aircraft;cargo; +@Comment_STR_DESKTOP_SHORTCUT_COMMENT@ diff --git a/media/openttd.desktop.filter.awk b/media/openttd.desktop.filter.awk deleted file mode 100644 index 125e21b0d7..0000000000 --- a/media/openttd.desktop.filter.awk +++ /dev/null @@ -1,11 +0,0 @@ -# This file is part of OpenTTD. -# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. -# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . - -# -# Awk script to automatically remove duplicate Comment[i]= lines -# - -BEGIN { FS = "="; last = "" } -{ if (last != $1) { print $0 }; last = $1 } diff --git a/media/openttd.desktop.translation.awk b/media/openttd.desktop.translation.awk deleted file mode 100644 index 3187f9ddf1..0000000000 --- a/media/openttd.desktop.translation.awk +++ /dev/null @@ -1,13 +0,0 @@ -# This file is part of OpenTTD. -# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. -# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . - -# -# Awk script to automatically generate a comment lines for -# a translated desktop shortcut. If it does not exist there -# is no output. -# - -/##isocode/ { lang = $2; next } -/STR_DESKTOP_SHORTCUT_COMMENT/ { sub("^[^:]*:", "", $0); print "Comment[" lang "]=" $0; sub("_.*", "", lang); print "Comment[" lang "]=" $0; next} From 160a5f2fdda791f24b6b8ed990ac0285f193cd5a Mon Sep 17 00:00:00 2001 From: sean <43609023+spnda@users.noreply.github.com> Date: Wed, 10 Mar 2021 13:37:35 +0100 Subject: [PATCH 26/53] Codechange: Misleading function name for selecting refresh rate (#8836) Co-authored-by: pnda <43609023+ThePNDA@users.noreply.github.com> --- src/settings_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index ffa08e7988..914ef933fa 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -144,7 +144,7 @@ std::set _refresh_rates = { 30, 60, 75, 90, 100, 120, 144, 240 }; * Add the refresh rate from the config and the refresh rates from all the monitors to * our list of refresh rates shown in the GUI. */ -static void AddRefreshRatesAndSelect() +static void AddCustomRefreshRates() { /* Add the refresh rate as selected in the config. */ _refresh_rates.insert(_settings_client.gui.refresh_rate); @@ -163,7 +163,7 @@ struct GameOptionsWindow : Window { this->opt = &GetGameSettings(); this->reload = false; - AddRefreshRatesAndSelect(); + AddCustomRefreshRates(); this->InitNested(WN_GAME_OPTIONS_GAME_OPTIONS); this->OnInvalidateData(0); From 098d5b22395e123e4990b73a2ad7bf703adf068b Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 10 Mar 2021 13:39:03 +0100 Subject: [PATCH 27/53] Fix #8711: having gui_zoom lower than zoom_min causes crashes (#8835) gui_zoom was never clamp'd between zoom_min/zoom_max. zoom_min controls how zoomed-in we load sprites. For a value of 1, no quad-sizes sprites are loaded. If gui_zoom would be 0, meaning it wants quad-sized sprites to display, it was printing random stuff to the screen, which could or could not result in crashes. --- src/gfx.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gfx.cpp b/src/gfx.cpp index 826f93f54c..3189b8d96b 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1893,7 +1893,9 @@ void UpdateGUIZoom() if (_gui_zoom_cfg == ZOOM_LVL_CFG_AUTO) { _gui_zoom = static_cast(Clamp(VideoDriver::GetInstance()->GetSuggestedUIZoom(), _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); } else { - _gui_zoom = static_cast(_gui_zoom_cfg); + _gui_zoom = static_cast(Clamp(_gui_zoom_cfg, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); + /* Write the value back in case it was not between min/max. */ + _gui_zoom_cfg = _gui_zoom; } /* Determine real font zoom to use. */ From 970fedd78cef3f5ef7a26fcaf4fd9db0f6abbe4b Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 14:53:51 +0100 Subject: [PATCH 28/53] Add: make modal windows update more smooth Basically, modal windows had their own thread-locking for what drawing was possible. This is a bit nonsense now we have a game-thread. And it makes much more sense to do things like NewGRFScan and GenerateWorld in the game-thread, and not in a thread next to the game-thread. This commit changes that: it removes the threads for NewGRFScan and GenerateWorld, and just runs the code in the game-thread. On regular intervals it allows the draw-thread to do a tick, which gives a much smoother look and feel. It does slow down NewGRFScan and GenerateWorld ever so slightly as it spends more time on drawing. But the slowdown is not measureable on my machines (with 700+ NewGRFs / 4kx4k map and a Debug build). Running without a game-thread means NewGRFScan and GenerateWorld are now blocking. --- src/clear_cmd.cpp | 1 + src/console_cmds.cpp | 2 +- src/genworld.cpp | 80 ++++++----------------------- src/genworld.h | 5 -- src/genworld_gui.cpp | 24 +++------ src/gfx.cpp | 20 -------- src/landscape.cpp | 6 +++ src/network/network_content_gui.cpp | 3 +- src/newgrf_config.cpp | 33 +++--------- src/newgrf_gui.cpp | 2 +- src/openttd.cpp | 40 ++++++++------- src/openttd.h | 2 + src/progress.cpp | 21 -------- src/progress.h | 18 ------- src/thread.h | 5 -- src/tree_cmd.cpp | 1 + src/video/dedicated_v.cpp | 14 ++--- src/video/video_driver.cpp | 19 +++++++ src/video/video_driver.hpp | 2 + 19 files changed, 89 insertions(+), 209 deletions(-) diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 6d3167e5a2..4036313123 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -338,6 +338,7 @@ void GenerateClearTile() TileIndex tile_new; SetClearGroundDensity(tile, CLEAR_ROCKS, 3); + MarkTileDirtyByTile(tile); do { if (--j == 0) goto get_out; tile_new = tile + TileOffsByDiagDir((DiagDirection)GB(Random(), 0, 2)); diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 8a7a5e399e..18c4263f5d 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1340,7 +1340,7 @@ DEF_CONSOLE_CMD(ConRescanNewGRF) return true; } - ScanNewGRFFiles(nullptr); + RequestNewGRFScan(); return true; } diff --git a/src/genworld.cpp b/src/genworld.cpp index c76fe309d9..03fa08819b 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -59,18 +59,10 @@ GenWorldInfo _gw; /** Whether we are generating the map or not. */ bool _generating_world; -/** - * Tells if the world generation is done in a thread or not. - * @return the 'threaded' status - */ -bool IsGenerateWorldThreaded() -{ - return _gw.threaded && !_gw.quit_thread; -} +class AbortGenerateWorldSignal { }; /** - * Clean up the 'mess' of generation. That is, show windows again, reset - * thread variables, and delete the progress window. + * Generation is done; show windows again and delete the progress window. */ static void CleanupGeneration() { @@ -78,11 +70,10 @@ static void CleanupGeneration() SetMouseCursorBusy(false); /* Show all vital windows again, because we have hidden them */ - if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows(); + if (_game_mode != GM_MENU) ShowVitalWindows(); SetModalProgress(false); _gw.proc = nullptr; _gw.abortp = nullptr; - _gw.threaded = false; DeleteWindowByClass(WC_MODAL_PROGRESS); ShowFirstError(); @@ -97,10 +88,8 @@ static void _GenerateWorld() /* Make sure everything is done via OWNER_NONE. */ Backup _cur_company(_current_company, OWNER_NONE, FILE_LINE); - std::unique_lock lock(_modal_progress_work_mutex, std::defer_lock); try { _generating_world = true; - lock.lock(); if (_network_dedicated) DEBUG(net, 1, "Generating map, please wait..."); /* Set the Random() seed to generation_seed so we produce the same map with the same seed */ if (_settings_game.game_creation.generation_seed == GENERATE_NEW_SEED) _settings_game.game_creation.generation_seed = _settings_newgame.game_creation.generation_seed = InteractiveRandom(); @@ -136,14 +125,7 @@ static void _GenerateWorld() /* Only generate towns, tree and industries in newgame mode. */ if (_game_mode != GM_EDITOR) { if (!GenerateTowns(_settings_game.economy.town_layout)) { - _cur_company.Restore(); HandleGeneratingWorldAbortion(); - BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP); - if (_network_dedicated) { - /* Exit the game to prevent a return to main menu. */ - DEBUG(net, 0, "Generating map failed, aborting"); - _exit_game = true; - } return; } GenerateIndustries(); @@ -200,7 +182,6 @@ static void _GenerateWorld() IncreaseGeneratingWorldProgress(GWP_GAME_START); CleanupGeneration(); - lock.unlock(); ShowNewGRFError(); @@ -212,11 +193,19 @@ static void _GenerateWorld() seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); SaveOrLoad(name, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false); } - } catch (...) { + } catch (AbortGenerateWorldSignal&) { + CleanupGeneration(); + BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP, true); if (_cur_company.IsValid()) _cur_company.Restore(); - _generating_world = false; - throw; + + if (_network_dedicated) { + /* Exit the game to prevent a return to main menu. */ + DEBUG(net, 0, "Generating map failed, aborting"); + _exit_game = true; + } else { + SwitchToMode(_switch_mode); + } } } @@ -240,23 +229,6 @@ void GenerateWorldSetAbortCallback(GWAbortProc *proc) _gw.abortp = proc; } -/** - * This will wait for the thread to finish up his work. It will not continue - * till the work is done. - */ -void WaitTillGeneratedWorld() -{ - if (!_gw.thread.joinable()) return; - - _modal_progress_work_mutex.unlock(); - _modal_progress_paint_mutex.unlock(); - _gw.quit_thread = true; - _gw.thread.join(); - _gw.threaded = false; - _modal_progress_work_mutex.lock(); - _modal_progress_paint_mutex.lock(); -} - /** * Initializes the abortion process */ @@ -284,11 +256,7 @@ void HandleGeneratingWorldAbortion() if (_gw.abortp != nullptr) _gw.abortp(); - CleanupGeneration(); - - if (_gw.thread.joinable() && _gw.thread.get_id() == std::this_thread::get_id()) throw OTTDThreadExitSignal(); - - SwitchToMode(_switch_mode); + throw AbortGenerateWorldSignal(); } /** @@ -308,8 +276,6 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti _gw.abort = false; _gw.abortp = nullptr; _gw.lc = _local_company; - _gw.quit_thread = false; - _gw.threaded = true; /* This disables some commands and stuff */ SetLocalCompany(COMPANY_SPECTATOR); @@ -328,28 +294,16 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti SetupColoursAndInitialWindow(); SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, HT_NONE, WC_MAIN_WINDOW, 0); - if (_gw.thread.joinable()) _gw.thread.join(); - - if (!UseThreadedModelProgress() || !VideoDriver::GetInstance()->HasGUI() || !StartNewThread(&_gw.thread, "ottd:genworld", &_GenerateWorld)) { - DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode"); - _gw.threaded = false; - _modal_progress_work_mutex.unlock(); - _GenerateWorld(); - _modal_progress_work_mutex.lock(); - return; - } - UnshowCriticalError(); - /* Remove any open window */ DeleteAllNonVitalWindows(); - /* Hide vital windows, because we don't allow to use them */ HideVitalWindows(); - /* Don't show the dialog if we don't have a thread */ ShowGenerateWorldProgress(); /* Centre the view on the map */ if (FindWindowById(WC_MAIN_WINDOW, 0) != nullptr) { ScrollMainWindowToTile(TileXY(MapSizeX() / 2, MapSizeY() / 2), true); } + + _GenerateWorld(); } diff --git a/src/genworld.h b/src/genworld.h index 8014797125..e780ed1694 100644 --- a/src/genworld.h +++ b/src/genworld.h @@ -52,15 +52,12 @@ typedef void GWAbortProc(); ///< Called when genworld is aborted /** Properties of current genworld process */ struct GenWorldInfo { bool abort; ///< Whether to abort the thread ASAP - bool quit_thread; ///< Do we want to quit the active thread - bool threaded; ///< Whether we run _GenerateWorld threaded GenWorldMode mode; ///< What mode are we making a world in CompanyID lc; ///< The local_company before generating uint size_x; ///< X-size of the map uint size_y; ///< Y-size of the map GWDoneProc *proc; ///< Proc that is called when done (can be nullptr) GWAbortProc *abortp; ///< Proc that is called when aborting (can be nullptr) - std::thread thread; ///< The thread we are in (joinable if a thread was created) }; /** Current stage of world generation process */ @@ -81,10 +78,8 @@ enum GenWorldProgress { }; /* genworld.cpp */ -bool IsGenerateWorldThreaded(); void GenerateWorldSetCallback(GWDoneProc *proc); void GenerateWorldSetAbortCallback(GWAbortProc *proc); -void WaitTillGeneratedWorld(); void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_settings = true); void AbortGeneratingWorld(); bool IsGeneratingWorldAborted(); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index bf4d327a7e..f26d43ac39 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -29,6 +29,7 @@ #include "error.h" #include "newgrf_townname.h" #include "townname_type.h" +#include "video/video_driver.hpp" #include "widgets/genworld_widget.h" @@ -1312,10 +1313,10 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin static_assert(lengthof(percent_table) == GWP_CLASS_COUNT + 1); assert(cls < GWP_CLASS_COUNT); - /* Do not run this function if we aren't in a thread */ - if (!IsGenerateWorldThreaded() && !_network_dedicated) return; - - if (IsGeneratingWorldAborted()) HandleGeneratingWorldAbortion(); + if (IsGeneratingWorldAborted()) { + HandleGeneratingWorldAbortion(); + return; + } if (total == 0) { assert(_gws.cls == _generation_class_table[cls]); @@ -1328,10 +1329,6 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin _gws.percent = percent_table[cls]; } - /* Don't update the screen too often. So update it once in every once in a while... */ - if (!_network_dedicated && std::chrono::steady_clock::now() < _gws.next_update) return; - _gws.next_update = std::chrono::steady_clock::now() + std::chrono::milliseconds(MODAL_PROGRESS_REDRAW_TIMEOUT); - /* Percentage is about the number of completed tasks, so 'current - 1' */ _gws.percent = percent_table[cls] + (percent_table[cls + 1] - percent_table[cls]) * (_gws.current == 0 ? 0 : _gws.current - 1) / _gws.total; @@ -1350,21 +1347,12 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin DEBUG(net, 1, "Map generation percentage complete: %d", _gws.percent); last_percent = _gws.percent; - /* Don't continue as dedicated never has a thread running */ return; } SetWindowDirty(WC_MODAL_PROGRESS, 0); - MarkWholeScreenDirty(); - /* Release the rights to the map generator, and acquire the rights to the - * paint thread. The 'other' thread already has the paint thread rights so - * this ensures us that we are waiting until the paint thread is done - * before we reacquire the mapgen rights */ - _modal_progress_work_mutex.unlock(); - _modal_progress_paint_mutex.lock(); - _modal_progress_work_mutex.lock(); - _modal_progress_paint_mutex.unlock(); + VideoDriver::GetInstance()->GameLoopPause(); } /** diff --git a/src/gfx.cpp b/src/gfx.cpp index 3189b8d96b..6bcee66b1b 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1470,26 +1470,6 @@ void DrawDirtyBlocks() int x; int y; - if (HasModalProgress()) { - /* We are generating the world, so release our rights to the map and - * painting while we are waiting a bit. */ - _modal_progress_paint_mutex.unlock(); - _modal_progress_work_mutex.unlock(); - - /* Wait a while and hope the modal gives us a bit of time to draw the GUI. */ - if (!IsFirstModalProgressLoop()) CSleep(MODAL_PROGRESS_REDRAW_TIMEOUT); - - /* Modal progress thread may need blitter access while we are waiting for it. */ - _modal_progress_paint_mutex.lock(); - _modal_progress_work_mutex.lock(); - - /* When we ended with the modal progress, do not draw the blocks. - * Simply let the next run do so, otherwise we would be loading - * the new state (and possibly change the blitter) when we hold - * the drawing lock, which we must not do. */ - if (_switch_mode != SM_NONE && !HasModalProgress()) return; - } - y = 0; do { x = 0; diff --git a/src/landscape.cpp b/src/landscape.cpp index 80ba516ac7..ab6ba59f0c 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -1062,6 +1062,7 @@ static bool MakeLake(TileIndex tile, void *user_data) TileIndex t2 = tile + TileOffsByDiagDir(d); if (IsWaterTile(t2)) { MakeRiver(tile, Random()); + MarkTileDirtyByTile(tile); /* Remove desert directly around the river tile. */ TileIndex t = tile; CircularTileSearch(&t, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr); @@ -1135,6 +1136,7 @@ static void River_FoundEndNode(AyStar *aystar, OpenListNode *current) TileIndex tile = path->node.tile; if (!IsWaterTile(tile)) { MakeRiver(tile, Random()); + MarkTileDirtyByTile(tile); /* Remove desert directly around the river tile. */ CircularTileSearch(&tile, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr); } @@ -1247,6 +1249,7 @@ static bool FlowRiver(TileIndex spring, TileIndex begin) DistanceManhattan(spring, lakeCenter) > _settings_game.game_creation.min_river_length) { end = lakeCenter; MakeRiver(lakeCenter, Random()); + MarkTileDirtyByTile(lakeCenter); /* Remove desert directly around the river tile. */ CircularTileSearch(&lakeCenter, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr); lakeCenter = end; @@ -1368,8 +1371,11 @@ void GenerateLandscape(byte mode) /* Do not call IncreaseGeneratingWorldProgress() before FixSlopes(), * it allows screen redraw. Drawing of broken slopes crashes the game */ FixSlopes(); + MarkWholeScreenDirty(); IncreaseGeneratingWorldProgress(GWP_LANDSCAPE); + ConvertGroundTilesIntoWaterTiles(); + MarkWholeScreenDirty(); IncreaseGeneratingWorldProgress(GWP_LANDSCAPE); if (_settings_game.game_creation.landscape == LT_TROPIC) CreateDesertOrRainForest(); diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 13e162b07a..4662791257 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -15,6 +15,7 @@ #include "../ai/ai.hpp" #include "../game/game.hpp" #include "../base_media_base.h" +#include "../openttd.h" #include "../sortlist_type.h" #include "../stringfilter_type.h" #include "../querystring_gui.h" @@ -236,7 +237,7 @@ public: break; case CONTENT_TYPE_NEWGRF: - ScanNewGRFFiles(nullptr); + RequestNewGRFScan(); break; case CONTENT_TYPE_SCENARIO: diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index e56f878bdb..911d266df0 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -635,20 +635,12 @@ bool GRFFileScanner::AddFile(const std::string &filename, size_t basepath_length } this->num_scanned++; - if (std::chrono::steady_clock::now() >= this->next_update) { - this->next_update = std::chrono::steady_clock::now() + std::chrono::milliseconds(MODAL_PROGRESS_REDRAW_TIMEOUT); - _modal_progress_work_mutex.unlock(); - _modal_progress_paint_mutex.lock(); - - const char *name = nullptr; - if (c->name != nullptr) name = GetGRFStringFromGRFText(c->name); - if (name == nullptr) name = c->filename; - UpdateNewGRFScanStatus(this->num_scanned, name); - - _modal_progress_work_mutex.lock(); - _modal_progress_paint_mutex.unlock(); - } + const char *name = nullptr; + if (c->name != nullptr) name = GetGRFStringFromGRFText(c->name); + if (name == nullptr) name = c->filename; + UpdateNewGRFScanStatus(this->num_scanned, name); + VideoDriver::GetInstance()->GameLoopPause(); if (!added) { /* File couldn't be opened, or is either not a NewGRF or is a @@ -676,8 +668,6 @@ static bool GRFSorter(GRFConfig * const &c1, GRFConfig * const &c2) */ void DoScanNewGRFFiles(NewGRFScanCallback *callback) { - std::unique_lock lock_work(_modal_progress_work_mutex); - ClearGRFConfigList(&_all_grfs); TarScanner::DoScan(TarScanner::NEWGRF); @@ -709,9 +699,6 @@ void DoScanNewGRFFiles(NewGRFScanCallback *callback) NetworkAfterNewGRFScan(); } - lock_work.unlock(); - std::lock_guard lock_paint(_modal_progress_paint_mutex); - /* Yes... these are the NewGRF windows */ InvalidateWindowClassesData(WC_SAVELOAD, 0, true); InvalidateWindowData(WC_GAME_OPTIONS, WN_GAME_OPTIONS_NEWGRF_STATE, GOID_NEWGRF_RESCANNED, true); @@ -733,15 +720,7 @@ void ScanNewGRFFiles(NewGRFScanCallback *callback) /* Only then can we really start, especially by marking the whole screen dirty. Get those other windows hidden!. */ MarkWholeScreenDirty(); - if (!UseThreadedModelProgress() || !VideoDriver::GetInstance()->HasGUI() || !StartNewThread(nullptr, "ottd:newgrf-scan", &DoScanNewGRFFiles, (NewGRFScanCallback *)callback)) { // Without the seemingly superfluous cast, strange compiler errors ensue. - _modal_progress_work_mutex.unlock(); - _modal_progress_paint_mutex.unlock(); - DoScanNewGRFFiles(callback); - _modal_progress_paint_mutex.lock(); - _modal_progress_work_mutex.lock(); - } else { - UpdateNewGRFScanStatus(0, nullptr); - } + DoScanNewGRFFiles(callback); } /** diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 9e340654c5..4e63eafbe6 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1127,7 +1127,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { case WID_NS_RESCAN_FILES: case WID_NS_RESCAN_FILES2: - ScanNewGRFFiles(this); + RequestNewGRFScan(this); break; } } diff --git a/src/openttd.cpp b/src/openttd.cpp index 3397e4f0e0..2d37c8e3a0 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -91,6 +91,8 @@ extern void ShowOSErrorBox(const char *buf, bool system); extern std::string _config_file; bool _save_config = false; +bool _request_newgrf_scan = false; +NewGRFScanCallback *_request_newgrf_scan_callback = nullptr; /** * Error handling for fatal user errors. @@ -345,7 +347,6 @@ static void LoadIntroGame(bool load_newgrfs = true) /* Load the default opening screen savegame */ if (SaveOrLoad("opntitle.dat", SLO_LOAD, DFT_GAME_FILE, BASESET_DIR) != SL_OK) { GenerateWorld(GWM_EMPTY, 64, 64); // if failed loading, make empty world. - WaitTillGeneratedWorld(); SetLocalCompany(COMPANY_SPECTATOR); } else { SetLocalCompany(COMPANY_FIRST); @@ -559,9 +560,6 @@ int openttd_main(int argc, char *argv[]) extern bool _dedicated_forks; _dedicated_forks = false; - std::unique_lock modal_work_lock(_modal_progress_work_mutex, std::defer_lock); - std::unique_lock modal_paint_lock(_modal_progress_paint_mutex, std::defer_lock); - _game_mode = GM_MENU; _switch_mode = SM_MENU; @@ -828,30 +826,17 @@ int openttd_main(int argc, char *argv[]) if (musicdriver.empty() && !_ini_musicdriver.empty()) musicdriver = _ini_musicdriver; DriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC); - /* Take our initial lock on whatever we might want to do! */ - try { - modal_work_lock.lock(); - modal_paint_lock.lock(); - } catch (const std::system_error&) { - /* If there is some error we assume that threads aren't usable on the system we run. */ - extern bool _use_threaded_modal_progress; // From progress.cpp - _use_threaded_modal_progress = false; - } - GenerateWorld(GWM_EMPTY, 64, 64); // Make the viewport initialization happy - WaitTillGeneratedWorld(); - LoadIntroGame(false); CheckForMissingGlyphs(); /* ScanNewGRFFiles now has control over the scanner. */ - ScanNewGRFFiles(scanner.release()); + RequestNewGRFScan(scanner.release()); VideoDriver::GetInstance()->MainLoop(); WaitTillSaved(); - WaitTillGeneratedWorld(); // Make sure any generate world threads have been joined. /* only save config if we have to */ if (_save_config) { @@ -1460,6 +1445,19 @@ static void DoAutosave() } } +/** + * Request a new NewGRF scan. This will be executed on the next game-tick. + * This is mostly needed to ensure NewGRF scans (which are blocking) are + * done in the game-thread, and not in the draw-thread (which most often + * triggers this request). + * @param callback Optional callback to call when NewGRF scan is completed. + */ +void RequestNewGRFScan(NewGRFScanCallback *callback) +{ + _request_newgrf_scan = true; + _request_newgrf_scan_callback = callback; +} + void GameLoop() { if (_game_mode == GM_BOOTSTRAP) { @@ -1468,6 +1466,12 @@ void GameLoop() return; } + if (_request_newgrf_scan) { + ScanNewGRFFiles(_request_newgrf_scan_callback); + _request_newgrf_scan = false; + _request_newgrf_scan_callback = nullptr; + } + ProcessAsyncSaveFinish(); /* autosave game? */ diff --git a/src/openttd.h b/src/openttd.h index 62651fe7f0..38c7f80644 100644 --- a/src/openttd.h +++ b/src/openttd.h @@ -81,4 +81,6 @@ void HandleExitGameRequest(); void SwitchToMode(SwitchMode new_mode); +void RequestNewGRFScan(struct NewGRFScanCallback *callback = nullptr); + #endif /* OPENTTD_H */ diff --git a/src/progress.cpp b/src/progress.cpp index e45e5db078..6444d8a85f 100644 --- a/src/progress.cpp +++ b/src/progress.cpp @@ -14,33 +14,12 @@ /** Are we in a modal progress or not? */ bool _in_modal_progress = false; -bool _first_in_modal_loop = false; -/** Threading usable for modal progress? */ -bool _use_threaded_modal_progress = true; -/** Rights for the performing work. */ -std::mutex _modal_progress_work_mutex; -/** Rights for the painting. */ -std::mutex _modal_progress_paint_mutex; /** * Set the modal progress state. - * @note Makes IsFirstModalProgressLoop return true for the next call. * @param state The new state; are we modal or not? */ void SetModalProgress(bool state) { _in_modal_progress = state; - _first_in_modal_loop = true; -} - -/** - * Check whether this is the first modal progress loop. - * @note Set by SetModalProgress, unset by calling this method. - * @return True if this is the first loop. - */ -bool IsFirstModalProgressLoop() -{ - bool ret = _first_in_modal_loop; - _first_in_modal_loop = false; - return ret; } diff --git a/src/progress.h b/src/progress.h index 59a61c678e..765020635e 100644 --- a/src/progress.h +++ b/src/progress.h @@ -10,10 +10,6 @@ #ifndef PROGRESS_H #define PROGRESS_H -#include - -static const uint MODAL_PROGRESS_REDRAW_TIMEOUT = 200; ///< Timeout between redraws - /** * Check if we are currently in a modal progress state. * @return Are we in the modal state? @@ -24,20 +20,6 @@ static inline bool HasModalProgress() return _in_modal_progress; } -/** - * Check if we can use a thread for modal progress. - * @return Threading usable? - */ -static inline bool UseThreadedModelProgress() -{ - extern bool _use_threaded_modal_progress; - return _use_threaded_modal_progress; -} - -bool IsFirstModalProgressLoop(); void SetModalProgress(bool state); -extern std::mutex _modal_progress_work_mutex; -extern std::mutex _modal_progress_paint_mutex; - #endif /* PROGRESS_H */ diff --git a/src/thread.h b/src/thread.h index f4a16d4e0d..f45694930b 100644 --- a/src/thread.h +++ b/src/thread.h @@ -14,10 +14,6 @@ #include #include -/** Signal used for signalling we knowingly want to end the thread. */ -class OTTDThreadExitSignal { }; - - /** * Sleep on the current thread for a defined time. * @param milliseconds Time to sleep for in milliseconds. @@ -54,7 +50,6 @@ inline bool StartNewThread(std::thread *thr, const char *name, TFn&& _Fx, TArgs& try { /* Call user function with the given arguments. */ F(A...); - } catch (OTTDThreadExitSignal&) { } catch (...) { NOT_REACHED(); } diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index e4ce1da142..c0865ffc68 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -164,6 +164,7 @@ static void PlaceTree(TileIndex tile, uint32 r) if (tree != TREE_INVALID) { PlantTreesOnTile(tile, tree, GB(r, 22, 2), std::min(GB(r, 16, 3), 6)); + MarkTileDirtyByTile(tile); /* Rerandomize ground, if neither snow nor shore */ TreeGround ground = GetTreeGround(tile); diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index ea1c14cff7..e905a9d2c9 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -251,19 +251,16 @@ void VideoDriver_Dedicated::MainLoop() /* If SwitchMode is SM_LOAD_GAME, it means that the user used the '-g' options */ if (_switch_mode != SM_LOAD_GAME) { StartNewGameWithoutGUI(GENERATE_NEW_SEED); - SwitchToMode(_switch_mode); - _switch_mode = SM_NONE; } else { - _switch_mode = SM_NONE; /* First we need to test if the savegame can be loaded, else we will end up playing the * intro game... */ - if (!SafeLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, GM_NORMAL, BASE_DIR)) { + if (SaveOrLoad(_file_to_saveload.name, _file_to_saveload.file_op, _file_to_saveload.detail_ftype, BASE_DIR) == SL_ERROR) { /* Loading failed, pop out.. */ DEBUG(net, 0, "Loading requested map failed, aborting"); - _networking = false; + return; } else { /* We can load this game, so go ahead */ - SwitchToMode(SM_LOAD_GAME); + _switch_mode = SM_LOAD_GAME; } } @@ -271,11 +268,6 @@ void VideoDriver_Dedicated::MainLoop() /* Done loading, start game! */ - if (!_networking) { - DEBUG(net, 0, "Dedicated server could not be started, aborting"); - return; - } - while (!_exit_game) { if (!_dedicated_forks) DedicatedHandleKeyInput(); diff --git a/src/video/video_driver.cpp b/src/video/video_driver.cpp index 1b7fc6a4be..bee67e1ea0 100644 --- a/src/video/video_driver.cpp +++ b/src/video/video_driver.cpp @@ -56,6 +56,25 @@ void VideoDriver::GameThread() } } +/** + * Pause the game-loop for a bit, releasing the game-state lock. This allows, + * if the draw-tick requested this, the drawing to happen. + */ +void VideoDriver::GameLoopPause() +{ + /* If we are not called from the game-thread, ignore this request. */ + if (std::this_thread::get_id() != this->game_thread.get_id()) return; + + this->game_state_mutex.unlock(); + + { + /* See GameThread() for more details on this lock. */ + std::lock_guard lock(this->game_thread_wait_mutex); + } + + this->game_state_mutex.lock(); +} + /* static */ void VideoDriver::GameThreadThunk(VideoDriver *drv) { drv->GameThread(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 8c2b9d4375..7a859565a6 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -179,6 +179,8 @@ public: this->change_blitter = new_blitter; } + void GameLoopPause(); + /** * Get the currently active instance of the video driver. */ From b349ef6e714db1a3097f813b25373188ac627e2c Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 20:26:01 +0100 Subject: [PATCH 29/53] Fix: don't update framerates when a modal window is open Otherwise the numbers are all over the place when a modal window just closed. --- src/openttd.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 2d37c8e3a0..035e8e5ae7 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1347,8 +1347,8 @@ void StateGameLoop() StateGameLoop_LinkGraphPauseControl(); } - /* don't execute the state loop during pause */ - if (_pause_mode != PM_UNPAUSED) { + /* Don't execute the state loop during pause or when modal windows are open. */ + if (_pause_mode != PM_UNPAUSED || HasModalProgress()) { PerformanceMeasurer::Paused(PFE_GAMELOOP); PerformanceMeasurer::Paused(PFE_GL_ECONOMY); PerformanceMeasurer::Paused(PFE_GL_TRAINS); @@ -1357,7 +1357,7 @@ void StateGameLoop() PerformanceMeasurer::Paused(PFE_GL_AIRCRAFT); PerformanceMeasurer::Paused(PFE_GL_LANDSCAPE); - UpdateLandscapingLimits(); + if (!HasModalProgress()) UpdateLandscapingLimits(); #ifndef DEBUG_DUMP_COMMANDS Game::GameLoop(); #endif @@ -1366,7 +1366,6 @@ void StateGameLoop() PerformanceMeasurer framerate(PFE_GAMELOOP); PerformanceAccumulator::Reset(PFE_GL_LANDSCAPE); - if (HasModalProgress()) return; Layouter::ReduceLineCache(); From 5426cb3baf924f541bccf57aa97c6d4473546f09 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 15:21:57 +0100 Subject: [PATCH 30/53] Fix: abort GRFFileScanner on exiting the game as soon as possible This prevents the window from "freezing" when you close it during the scanning of NewGRFs, as it first would continue the action. --- src/newgrf_config.cpp | 5 ++++- src/openttd.cpp | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 911d266df0..a0e60ef755 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -603,6 +603,9 @@ public: bool GRFFileScanner::AddFile(const std::string &filename, size_t basepath_length, const std::string &tar_filename) { + /* Abort if the user stopped the game during a scan. */ + if (_exit_game) return false; + GRFConfig *c = new GRFConfig(filename.c_str() + basepath_length); bool added = true; @@ -702,7 +705,7 @@ void DoScanNewGRFFiles(NewGRFScanCallback *callback) /* Yes... these are the NewGRF windows */ InvalidateWindowClassesData(WC_SAVELOAD, 0, true); InvalidateWindowData(WC_GAME_OPTIONS, WN_GAME_OPTIONS_NEWGRF_STATE, GOID_NEWGRF_RESCANNED, true); - if (callback != nullptr) callback->OnNewGRFsScanned(); + if (!_exit_game && callback != nullptr) callback->OnNewGRFsScanned(); DeleteWindowByClass(WC_MODAL_PROGRESS); SetModalProgress(false); diff --git a/src/openttd.cpp b/src/openttd.cpp index 035e8e5ae7..235d36f01b 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1469,6 +1469,8 @@ void GameLoop() ScanNewGRFFiles(_request_newgrf_scan_callback); _request_newgrf_scan = false; _request_newgrf_scan_callback = nullptr; + /* In case someone closed the game during our scan, don't do anything else. */ + if (_exit_game) return; } ProcessAsyncSaveFinish(); From afadae6d5068d39e1e4bb12b9d7f7a1632a0638f Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 17:04:26 +0100 Subject: [PATCH 31/53] Fix: abort world generation on exiting the game as soon as possible This prevents the window from "freezing" when you close it during world generation, as it first would continue the action. --- src/genworld.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/genworld.cpp b/src/genworld.cpp index 03fa08819b..3dd8d7f455 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -243,7 +243,7 @@ void AbortGeneratingWorld() */ bool IsGeneratingWorldAborted() { - return _gw.abort; + return _gw.abort || _exit_game; } /** From 14b61bfa6fb6812bdc9739402956c3dfa3a4c12b Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Tue, 9 Mar 2021 20:19:27 +0100 Subject: [PATCH 32/53] Fix #8833: don't reload NewGRFs when we are shutting down Otherwise that might cause calls to the video-driver, which are already shut down by now. This causes, depending on the video-driver crashes or weird effects. --- src/newgrf_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 4e63eafbe6..9ed21e5c57 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -663,7 +663,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { DeleteWindowByClass(WC_TEXTFILE); DeleteWindowByClass(WC_SAVE_PRESET); - if (this->editable && !this->execute) { + if (this->editable && !this->execute && !_exit_game) { CopyGRFConfigList(this->orig_list, this->actives, true); ResetGRFConfig(false); ReloadNewGRFData(); From 4866e438624bda4ccba2e3d7cc601f262a17545f Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Wed, 10 Mar 2021 13:57:52 +0100 Subject: [PATCH 33/53] Codechange: rework codeflow introduced in 098d5b22 (#8837) It didn't sit well to me, how I wrote the commit initially. First casting a variable into another, only to write it back into the originally feels wrong. This flow makes a bit more sense to me. --- src/gfx.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gfx.cpp b/src/gfx.cpp index 6bcee66b1b..d540f4dfe0 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1873,9 +1873,11 @@ void UpdateGUIZoom() if (_gui_zoom_cfg == ZOOM_LVL_CFG_AUTO) { _gui_zoom = static_cast(Clamp(VideoDriver::GetInstance()->GetSuggestedUIZoom(), _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); } else { - _gui_zoom = static_cast(Clamp(_gui_zoom_cfg, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max)); - /* Write the value back in case it was not between min/max. */ - _gui_zoom_cfg = _gui_zoom; + /* Ensure the gui_zoom is clamped between min/max. Change the + * _gui_zoom_cfg if it isn't, as this is used to visually show the + * selection in the Game Options. */ + _gui_zoom_cfg = Clamp(_gui_zoom_cfg, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max); + _gui_zoom = static_cast(_gui_zoom_cfg); } /* Determine real font zoom to use. */ From 1fb1e7503880a052a43f0ef819f718718976ab77 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 10 Mar 2021 18:08:46 +0000 Subject: [PATCH 34/53] Update: Translations from eints norwegian (bokmal): 26 changes by Anolitt spanish (mexican): 25 changes by absay japanese: 11 changes by Azusa257 korean: 7 changes by telk5093 german: 7 changes by danidoedel russian: 63 changes by Ln-Wolf finnish: 7 changes by hpiirai ukrainian: 5 changes by StepanIvasyn catalan: 7 changes by J0anJosep spanish: 7 changes by MontyMontana portuguese (brazilian): 12 changes by Greavez --- src/lang/brazilian_portuguese.txt | 17 +++-- src/lang/catalan.txt | 7 ++ src/lang/finnish.txt | 7 ++ src/lang/german.txt | 7 ++ src/lang/japanese.txt | 11 +++ src/lang/korean.txt | 7 ++ src/lang/norwegian_bokmal.txt | 33 +++++++-- src/lang/russian.txt | 114 +++++++++++++++++------------- src/lang/spanish.txt | 7 ++ src/lang/spanish_MX.txt | 33 ++++++--- src/lang/ukrainian.txt | 5 ++ 11 files changed, 177 insertions(+), 71 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index d5cf1d06c2..53b2cf3890 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marcar e STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolução da tela STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecionar a resolução da tela para usar STR_GAME_OPTIONS_RESOLUTION_OTHER :outra +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleração de hardware STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marque esta caixa para permitir que o OpenTTD tente usar a aceleração de hardware. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo. @@ -1022,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamanho duplo STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamanho quádruplo +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gráficos +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Taxa de atualização da tela +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecione a taxa de atualização da tela a ser usada +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :outra +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Taxas de atualização superiores a 60Hz podem afetar o desempenho. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar @@ -5059,13 +5066,13 @@ STR_VEHICLE_NAME_AIRCRAFT_DARWIN_400 :Darwin 400 STR_VEHICLE_NAME_AIRCRAFT_DARWIN_500 :Darwin 500 STR_VEHICLE_NAME_AIRCRAFT_DARWIN_600 :Darwin 600 STR_VEHICLE_NAME_AIRCRAFT_GURU_GALAXY :Guru Galaxy -STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A21 :Táxi Aéreo A21 -STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A31 :Táxi Aéreo A31 -STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A32 :Táxi Aéreo A32 -STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A33 :Táxi Aéreo A33 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A21 :Airtaxi A21 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A31 :Airtaxi A31 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A32 :Airtaxi A32 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A33 :Airtaxi A33 STR_VEHICLE_NAME_AIRCRAFT_YATE_AEROSPACE_YAE46 :Yate Aerospace YAe46 STR_VEHICLE_NAME_AIRCRAFT_DINGER_100 :Dinger 100 -STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A34_1000 :Táxi Aéreo A34-1000 +STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A34_1000 :AirTaxi A34-1000 STR_VEHICLE_NAME_AIRCRAFT_YATE_Z_SHUTTLE :Yate Z-Shuttle STR_VEHICLE_NAME_AIRCRAFT_KELLING_K1 :Kelling K1 STR_VEHICLE_NAME_AIRCRAFT_KELLING_K6 :Kelling K6 diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9a13f0f92e..1dea7d5377 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marqueu STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_OTHER :altres +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acceleració per maquinari STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Seleccioneu aquesta opció per permetre que l'OpenTTD provi d'usar acceleració per maquinari. Si es canvia l'opció, s'aplicarà quan es reiniciï el programa. @@ -1022,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gràfics +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Rati de refresc de la pantalla +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Seleccioneu el rati de refresc de la pantalla que voleu usar. +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :altres +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}{NBSP}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Ratis de refresc major a 60{NBSP}Hz poden causar problemes de rendiment. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 507b87489b..44c99fad1b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1000,6 +1000,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Valitse STR_GAME_OPTIONS_RESOLUTION :{BLACK}Näytön tarkkuus STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Valitse käytettävä näytön tarkkuus STR_GAME_OPTIONS_RESOLUTION_OTHER :muu +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}×{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Laitteistokiihdytys STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Valitse tämä, jos haluat, että OpenTTD yrittää käyttää laitteistokiihdytystä. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen. @@ -1021,7 +1022,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaali STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Kaksinkertainen koko STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Nelinkertainen koko +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafiikka +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Näytön virkistystaajuus +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Valitse käytettävä näytönvirkistystaajuus +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :muu +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM} Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Yli 60 Hz:n virkistystaajuudet saattavat vaikuttaa suorituskykyyn. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Perusgrafiikat STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valitse käytettävät perusgrafiikat diff --git a/src/lang/german.txt b/src/lang/german.txt index 20c71c9e54..d5190cb18b 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}OpenTTD STR_GAME_OPTIONS_RESOLUTION :{BLACK}Bildschirmauflösung STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Bildschirmauflösung auswählen STR_GAME_OPTIONS_RESOLUTION_OTHER :Andere +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware-Beschleunigung STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um OpenTTD zu erlauben, die Hardwarebeschleunigung zu verwenden. Eine geänderte Einstellung wird nur beim Spielneustart wirksam @@ -1022,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Zweifach STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Vierfach +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafik +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Bildwiederholrate +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Zu verwendende Bildwiederholrate auswählen +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :andere +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Wiederholraten größer als 60Hz beeinträchtigen möglicherweise die Performance. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index ac81476bad..ce815f0b67 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1245,6 +1245,7 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}この STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :インフラ補修: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :有効にすると、インフラ設備にも維持費が発生するようになります。維持費はネットワークのサイズに非線形で比例する為、小さい会社よりも大きい会社の方が影響が大きくなります +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :始めの会社の色: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :空港の旧式化撤廃: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :有効にすると、いずれの種類の空港であっても、その開発後であれば永久に建設が可能になります @@ -1329,6 +1330,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :ミニマップ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :緑 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :濃緑 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :青紫 +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :スクロール時の動き STR_CONFIG_SETTING_SMOOTH_SCROLLING :画面のスムーズスクロール: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :ミニマップでの移動や「現在位置に移動」などのコマンドを使用した際にメイン画面がどのように移動するかを設定します。有効にした場合はスムーズにスクロールして移動します。無効の場合は目的地に直接ジャンプします STR_CONFIG_SETTING_MEASURE_TOOLTIP :測定ツールチップ表示: {STRING} @@ -1505,6 +1507,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :新聞 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :カラー新聞の開始年: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :新聞がカラー版になる境目の年を設定します STR_CONFIG_SETTING_STARTING_YEAR :開始年: {STRING} +STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :なだらか STR_CONFIG_SETTING_ALLOW_SHARES :他社株の取引許容: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :有効にすると、ライバル会社の株式を取引できるようになります。この設定を有効にしても、目的の社が設立から丸5年経過していない場合は取引できません STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :区間払いの割合: {STRING} @@ -1616,6 +1619,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :ゲーム中の STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :ヤード・ポンド法 (マイル時(mph)) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :メートル法 (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :国際単位系 (m/s) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :ゲーム内単位(タイル/日) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :動力単位: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :ゲーム中の動力(仕事率、主に輸送機器の出力表記)をいずれの単位系で表すか決定します @@ -1910,6 +1914,7 @@ STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}ゲー STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}サーバーを更新 STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}サーバー情報を更新します +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}LANで探す STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}サーバーを追加 STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}検索時、常に稼働確認するサーバーのリストに追加します STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}サーバーを開始 @@ -2552,6 +2557,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}受入れ貨物: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_TYPE : {BLACK}線路の種類: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}路面軌道の種類: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}線路の制限速度: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}道路の最高速度: {LTBLUE}{VELOCITY} @@ -2653,6 +2659,8 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} フレーム/秒 +STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES} ############ Leave those lines in this order!! ############ End of leave-in-this-order ############ Leave those lines in this order!! @@ -3001,6 +3009,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}買収 # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 目標 STR_GOALS_SPECTATOR_CAPTION :{WHITE}大目標 +STR_GOALS_COMPANY_BUTTON :{BLACK}会社 +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}会社の目標を見る STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- なし - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3531,6 +3541,7 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}機関 # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} +STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}メイン画面を列車に中心します。ダブルクリックで列車をメイン画面で追従します。Ctrl+クリックで列車の場所で新しいビューポートでを開きます。 STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}列車を列車庫へ回送します。Ctrl+クリックすると点検後、再出庫します STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}車両を車庫へ回送します。Ctrl+クリックすると点検後、再出庫します diff --git a/src/lang/korean.txt b/src/lang/korean.txt index f9dee201b8..a436615816 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}OpenTTD STR_GAME_OPTIONS_RESOLUTION :{BLACK}화면 해상도 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용할 화면 해상도를 선택하세요 STR_GAME_OPTIONS_RESOLUTION_OTHER :기타 +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}하드웨어 가속 STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}OpenTTD가 하드웨어 가속을 사용하게 하려면 체크하세요. 변경된 설정은 게임을 재시작한 뒤에 적용됩니다. @@ -1022,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :기본 크기 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :2배 크기 STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4배 크기 +STR_GAME_OPTIONS_GRAPHICS :{BLACK}그래픽 +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}화면 주사율 +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}사용할 화면 주사율을 선택하세요 +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :기타 +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}60Hz를 넘는 화면 주사율을 사용하면 성능에 영향이 갈 수도 있습니다. STR_GAME_OPTIONS_BASE_GRF :{BLACK}기본 그래픽 세트 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}게임에 사용할 기본 그래픽 세트를 선택하세요 diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 2a28a9deb4..5f195ad879 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -949,6 +949,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminb STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD) STR_GAME_OPTIONS_CURRENCY_INR :Indisk rupi (INR) STR_GAME_OPTIONS_CURRENCY_IDR :Indonesisk Rupi (IDR) +STR_GAME_OPTIONS_CURRENCY_MYR :Malaysisk Ringgit (MYR) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Venstrekjøring @@ -1001,7 +1002,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Kryss av STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skjermoppløsning STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Velg skjermoppløsningen som skal brukes STR_GAME_OPTIONS_RESOLUTION_OTHER :annet +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Maskinvareakselerasjon +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Merk av i denne boksen for å la OpenTTD prøve å bruke maskinvareakselerasjon. En endret innstilling blir bare brukt ved omstart av spillet +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Innstillingen vil ikke tre i kraft før spillet er restartet STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Grensesnitt-størrelse STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Velg grensesnitt-størrelsen som skal benyttes @@ -1019,7 +1024,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobbel størrelse STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Firedobbel størrelse +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafikk +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}VIs oppdateringsfrekvens +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Velg oppdateringsfrekvensen på skjermen +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :andre +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Oppdateringsfrekvens høyere enn 60Hz kan påvirke ytelsen. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikksett STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Velg grafikksett som skal brukes @@ -1460,6 +1471,7 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definer oppsett STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automatisk fjerne signaler mens jernbane bygges: {STRING} STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automatisk fjerne signaler mens jernbane bygges dersom signalene er i veien. Vær oppmerksom på at dette kan potensielt lede til togkrasj. STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Grense for hvor fort spillet kjører: {STRING} +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Begrens hvor fort spillet går når hurtigspoling er aktivert. 0 = ingen begrensning (så raskt som din pc tillater). Verdier under 100% gjør spillet tregere. Den øvre grensen avhenger av spesifikasjonene til din pc og kan variere avhengig av spillet. STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% normal hastighet STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Ingen grense (så fort som maskinen din tillater) @@ -1792,6 +1804,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Tomt for STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Tildeling av {BYTES} fra spritecachen feilet. Spritecachen ble redusert til {BYTES}. Dette senke ytelsen av OpenTTD. For å redusere minneforbruken kan du forsøke å slå av 32bpp grafikk og/eller zoomnivå. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Feil med skjerminstillingene... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... ingen kompatibel GPU funnet. Maskinvareakselerasjon deaktivert # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3183,19 +3197,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finansier nye b STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Kjøp eksklusive transportrettigheter STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bestikk bystyret -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Start en liten lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Start en middels stor lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Start en stor lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finansier ombygging av det lokale veinettet. Fører til betydelige veiforstyrrelser i opptil seks måneder.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bygg en statue for å ære firmaet.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finansier byggingen av nye kommersielle bygninger i byen.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kjøp ett års ekslusive transportrettigheter i byen. Bystyret vil kun tillate passasjerer og varer å bruke dine transporttjenester.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Start en liten lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Gir en midlertidig økning til stasjonsvurderingen i en liten radius rundt bysentrum.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Start en middels stor lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Gir en midlertidig økning til stasjonsvurderingen i en liten radius rundt bysentrum.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Start en stor lokal reklamekampanje for å tiltrekke deg flere passasjerer og mer varer til dine transporttjenester.{}Gir et midlertidig økning til stasjonsvurderingen i stor radius rundt bysentrum.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finansier ombygging av det lokale veinettet.{}Fører til betydelige veiforstyrrelser i opptil seks måneder.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bygg en statue for å ære firmaet.{}Gir en permanent økning i stasjonens rangering i denne byen.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finansier byggingen av nye kommersielle bygninger i byen.{}Gir en midlertidig økning for veksten i denne byen.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kjøp ett års eksklusive transportrettigheter i byen.{}Bystyret vil ikke tillate passasjerer og last å bruke konkurrentenes stasjoner.{}Kostnad: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Du kan bestikke bystyret for å forbedre vurderingen av firmaet ditt, men du risikerer å bli bøtelagt hvis du blir oppdaget.{}Kostnad: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Målsetninger STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale mål STR_GOALS_SPECTATOR :Globale mål +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Vis globale målsetninger +STR_GOALS_COMPANY_BUTTON :{BLACK}Firma +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Vis selskapets målsetninger STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ingen - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3570,6 +3588,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Lokomoti STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Kan bygges om til: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle varetyper STR_PURCHASE_INFO_NONE :Ingen +STR_PURCHASE_INFO_ENGINES_ONLY :Kun lokomotiv STR_PURCHASE_INFO_ALL_BUT :Alt utenom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks trekkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rekkevidde: {GOLD}{COMMA} ruter diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 0dbaf22894..110fa7341d 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -727,7 +727,7 @@ STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Стои STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Оплата за перевозку грузов STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Дней в пути -STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Оплата за доставку 10 единиц (10{NBSP}000 литров) груза на расстояние в 20 клеток +STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Оплата за перевозку 10{NBSP}единиц (10{NBSP}000 литров) груза на расстояние в 20 клеток STR_GRAPH_CARGO_ENABLE_ALL :{TINY_FONT}{BLACK}Показать все STR_GRAPH_CARGO_DISABLE_ALL :{TINY_FONT}{BLACK}Спрятать все STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Показать все виды грузов на графике @@ -1129,11 +1129,11 @@ STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Авто STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Интервал автосохранения игры ############ start of autosave dropdown -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :отключено -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :каждый месяц -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :каждые 3 месяца -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :каждые 6 месяцев -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :каждый год +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Отключено +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Каждый месяц +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Каждые 3 месяца +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Каждые 6 месяцев +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Каждый год ############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Язык @@ -1145,7 +1145,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Вклю STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разрешение экрана STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбор разрешения экрана STR_GAME_OPTIONS_RESOLUTION_OTHER :Другое +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Аппаратное ускорение +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Поставьте отметку, чтобы включить аппаратное ускорение в OpenTTD. Но для этого игру придётся перезапустить. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Эта настройка будет применена только после перезапуска игры STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Размер элементов интерфейса STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберите размер элементов интерфейса @@ -1163,22 +1167,27 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Нормаль STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Двукратный STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Четырёхкратный +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Настройки графики +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Частота обновления экрана +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Выбор частоты обновления экрана +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :Другая +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}{NBSP}Гц +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Частота обновления выше 60{NBSP}Гц может отрицательно сказаться на производительности. -STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовый набор графики -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Выбрать базовый набор графики +STR_GAME_OPTIONS_BASE_GRF :{BLACK}Основной графический пакет +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Выбор основного графического пакета STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} отсутствующи{P й х х}/повреждённы{P й х х} файл{P "" а ов} -STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о базовом наборе графики +STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о выбранном графическом пакете -STR_GAME_OPTIONS_BASE_SFX :{BLACK}Базовый набор звуков -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Выберите основной набор звуков для использования -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP.m :{BLACK}Выберите основной набор звуков -STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о наборе основных звуков +STR_GAME_OPTIONS_BASE_SFX :{BLACK}Основной звуковой пакет +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Выбор основного пакета звуковых эффектов +STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о выбранном пакете звуковых эффектов -STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Базовый набор музыки -STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Выберите базовый набор музыки -STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} повреждённы{P й х х} файл{P 0 "" а ов} -STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о наборе базовой музыки +STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Основной музыкальный пакет +STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Выбор основного музыкального пакета +STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} повреждённы{P й х х} файл{P "" а ов} +STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Дополнительная информация о выбранном музыкальном пакете STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Не удалось получить список поддерживаемых разрешений экрана STR_ERROR_FULLSCREEN_FAILED :{WHITE}Сбой полноэкранного режима @@ -1936,13 +1945,15 @@ STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :несовме STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :неизвестный STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... уровень сжатия «{STRING}» неверный STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... алгоритм сохранения «{STRING}» недоступен. Будет использоваться «{STRING}» -STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... набор графики "{STRING}" не найден -STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... набор звуков "{STRING}" не найден -STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... набор музыки "{STRING}" не найден +STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... графический пакет «{STRING}» не найден +STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... звуковой пакет «{STRING}» не найден +STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... музыкальный пакет «{STRING}» не найден STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Нехватка оперативной памяти STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Не удалось выделить {BYTES} для кэша спрайтов. Размер кэша снижен до {BYTES}. Это отрицательно скажется на производительности OpenTTD. Чтобы снизить затраты памяти, отключите 32-битную графику и снизьте максимальный уровень приближения. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Ошибка в настройках графики... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... не найдено подходящего графического процессора. Аппаратное ускорение отключено. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2407,7 +2418,7 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Тип STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Тип контента STR_CONTENT_NAME_CAPTION :{BLACK}Название STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Наименование контента -STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Нажмите на строке для просмотра подробностей{}Отметьте чекбокс для загрузки +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Нажмите на строке для просмотра подробностей{}Отметьте флажком для загрузки STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Выбрать всё STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Пометить весь контент для загрузки STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Выбрать обновления @@ -2444,15 +2455,11 @@ STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD STR_CONTENT_NO_ZLIB_SUB :{WHITE}... загрузка контента невозможна! # Order of these is important! -STR_CONTENT_TYPE_BASE_GRAPHICS :{G=m}Базовая графика -STR_CONTENT_TYPE_BASE_GRAPHICS.gen :набора базовой графики -STR_CONTENT_TYPE_BASE_GRAPHICS.acc :набор базовой графики +STR_CONTENT_TYPE_BASE_GRAPHICS :{G=m}Осн. графика +STR_CONTENT_TYPE_BASE_GRAPHICS.gen :графического пакета +STR_CONTENT_TYPE_BASE_GRAPHICS.acc :графический пакет STR_CONTENT_TYPE_NEWGRF :{G=m}NewGRF -STR_CONTENT_TYPE_NEWGRF.gen :NewGRF -STR_CONTENT_TYPE_NEWGRF.acc :NewGRF STR_CONTENT_TYPE_AI :{G=m}ИИ -STR_CONTENT_TYPE_AI.gen :ИИ -STR_CONTENT_TYPE_AI.acc :ИИ STR_CONTENT_TYPE_AI_LIBRARY :{G=f}Библиотека ИИ STR_CONTENT_TYPE_AI_LIBRARY.gen :библиотеки ИИ STR_CONTENT_TYPE_AI_LIBRARY.acc :библиотеку ИИ @@ -2462,9 +2469,9 @@ STR_CONTENT_TYPE_SCENARIO.acc :сценари STR_CONTENT_TYPE_HEIGHTMAP :{G=f}Карта высот STR_CONTENT_TYPE_HEIGHTMAP.gen :карты высот STR_CONTENT_TYPE_HEIGHTMAP.acc :карту высот -STR_CONTENT_TYPE_BASE_SOUNDS :Основные звуки -STR_CONTENT_TYPE_BASE_SOUNDS.gen :набора базовых звуков -STR_CONTENT_TYPE_BASE_SOUNDS.acc :набор базовых звуков +STR_CONTENT_TYPE_BASE_SOUNDS :Осн. звуки +STR_CONTENT_TYPE_BASE_SOUNDS.gen :звукового пакета +STR_CONTENT_TYPE_BASE_SOUNDS.acc :звуковой пакет STR_CONTENT_TYPE_BASE_MUSIC :{G=f}Музыка STR_CONTENT_TYPE_BASE_MUSIC.gen :музыки STR_CONTENT_TYPE_BASE_MUSIC.acc :музыку @@ -2485,8 +2492,8 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... со STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... невозможно записать файл STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Не удалось распаковать скачанный файл -STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Отсутствует набор графики -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Для запуска OpenTTD требуется набор графики. Скачать и установить его? +STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Отсутствует графический пакет +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Для запуска OpenTTD требуется графический пакет. Скачать и установить его? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Да, скачать STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Нет, выйти @@ -3361,19 +3368,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Профина STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Купить эксклюзивные транспортные права STR_LOCAL_AUTHORITY_ACTION_BRIBE :Взятка местной администрации -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Провести малую рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Провести среднюю рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Провести большую рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Профинансировать реконструкцию городских дорог. Вызывает большие нарушения движения на срок до 6 месяцев.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Установить статую в честь вашей компании.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Профинансировать строительство новых коммерческих зданий в городе.{}Цена: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Купить годовые эксклюзивные права на транспортные перевозки в городе. Администрация разрешит пользоваться ТОЛЬКО вашими станциями.{}Цена: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Провести малую рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Она временно повысит рейтинг ваших станций, построенных рядом с центром города.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Провести среднюю рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Она временно повысит рейтинг ваших станций, находящихся не очень далеко от центра города.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Провести большую рекламную кампанию для увеличения грузо- и пассажиропотока на ваших станциях.{}Она временно повысит рейтинг ваших станций на значительной площади в городе и окрестностях.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Профинансировать реконструкцию городских дорог.{}Вызывает большие нарушения движения на срок до 6 месяцев.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Установить статую в честь вашей компании.{}Она добавит рейтинг вашим станциям.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Профинансировать строительство новых зданий.{}Это временно ускорит рост города.{}Стоимость: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Купить годовые эксклюзивные права на транспортные перевозки в городе.{}Администрация разрешит пользоваться ТОЛЬКО вашими станциями.{}Стоимость: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Дать взятку городской администрации для повышения рейтинга. Существует риск санкций, если факт подкупа раскроется.{}Цена: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Задачи компании «{COMPANY}» STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальные задачи -STR_GOALS_SPECTATOR :Общие задачи +STR_GOALS_SPECTATOR :Глобальные задачи +STR_GOALS_GLOBAL_BUTTON :{BLACK}Глобальные +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Показать глобальные задачи +STR_GOALS_COMPANY_BUTTON :{BLACK}Компания +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Показать задачи компании STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Нет - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3748,6 +3759,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Веду STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Может перевозить: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Все типы грузов STR_PURCHASE_INFO_NONE :Нет +STR_PURCHASE_INFO_ENGINES_ONLY :Только локомотивы STR_PURCHASE_INFO_ALL_BUT :Всё, кроме {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Макс. тяговое усилие: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальность: {GOLD}{COMMA} клет{P ка ки ок} @@ -4612,7 +4624,7 @@ STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Нево STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Здесь невозможно построить пристань... STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Здесь невозможно построить аэропорт... -STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Присоединяется более чем к одной существующей станции +STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Примыкает к нескольким станциям STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... станция слишком большая STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Слишком много станций и остановок STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Слишком большая ж/д станция @@ -4670,7 +4682,7 @@ STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... до STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... должен быть остановлен в доке STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... должен быть остановлен в ангаре -STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Структуру поезда можно менять только в депо +STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Состав можно изменять только в депо STR_ERROR_TRAIN_TOO_LONG :{WHITE}Поезд слишком длинный STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Не удалось развернуть поезд... STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... состоит из нескольких элементов @@ -4866,13 +4878,13 @@ STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... да # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Не удалось составить график движения для этого транспорта... STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Транспорт может ждать только на станции -STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Этот транспорт не останавливается на этой станции +STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Это транспортное средство не останавливается на этой станции # Sign related errors -STR_ERROR_TOO_MANY_SIGNS :{WHITE}... слишком много меток +STR_ERROR_TOO_MANY_SIGNS :{WHITE}... слишком много табличек STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}Не удалось поставить табличку... STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}Не удалось изменить табличку... -STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Не удалось удалить метку... +STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Не удалось удалить табличку... # Translatable comment for OpenTTD's desktop shortcut STR_DESKTOP_SHORTCUT_COMMENT :Экономический симулятор на основе игры «Transport Tycoon Deluxe» @@ -4881,12 +4893,12 @@ STR_DESKTOP_SHORTCUT_COMMENT :Экономи STR_BASEGRAPHICS_DOS_DESCRIPTION :Графика из Transport Tycoon Deluxe для DOS. STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Графика из немецкой версии Transport Tycoon Deluxe для DOS. STR_BASEGRAPHICS_WIN_DESCRIPTION :Графика из Transport Tycoon Deluxe для Windows. -STR_BASESOUNDS_DOS_DESCRIPTION :Набор звукового оформления из игры Transport Tycoon Deluxe для DOS. -STR_BASESOUNDS_WIN_DESCRIPTION :Набор звукового оформления из игры Transport Tycoon Deluxe для Windows. +STR_BASESOUNDS_DOS_DESCRIPTION :Звуковые эффекты из игры Transport Tycoon Deluxe для DOS. +STR_BASESOUNDS_WIN_DESCRIPTION :Звуковые эффекты из игры Transport Tycoon Deluxe для Windows. STR_BASESOUNDS_NONE_DESCRIPTION :Пустой набор звукового оформления, не содержащий никаких звуков. -STR_BASEMUSIC_WIN_DESCRIPTION :Набор музыкального оформления из игры Transport Tycoon Deluxe для Windows. -STR_BASEMUSIC_DOS_DESCRIPTION :Набор музыкального оформления из игры Transport Tycoon Deluxe для DOS. -STR_BASEMUSIC_TTO_DESCRIPTION :Набор музыкального оформления из игры Transport Tycoon Deluxe для DOS. +STR_BASEMUSIC_WIN_DESCRIPTION :Набор музыки из игры Transport Tycoon Deluxe для Windows. +STR_BASEMUSIC_DOS_DESCRIPTION :Набор музыки из игры Transport Tycoon Deluxe для DOS. +STR_BASEMUSIC_TTO_DESCRIPTION :Набор музыки из игры Transport Tycoon для DOS. STR_BASEMUSIC_NONE_DESCRIPTION :Пустой набор музыкального оформления, не содержащий никакой музыки. ##id 0x2000 diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 30c2fbbf74..1eb618dfc5 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1001,6 +1001,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marca es STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolución de pantalla STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolución de pantalla a usar STR_GAME_OPTIONS_RESOLUTION_OTHER :Otras +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleración por hardware STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marca esta casilla para permitir que OpenTTD intente usar aceleración por hardware. El cambio de configuración sólo tendrá efecto después de reiniciar el juego @@ -1022,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gráficos +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Mostrar frecuencia de actualización +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecciona la frecuencia de actualización de la pantalla +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :otro +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :Las frecuencias de actualización superiores a 60 Hz pueden afectar el rendimiento. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index dd70484a36..ee9de11e93 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1001,7 +1001,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Jugar Op STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolución de pantalla STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elegir la resolución de pantalla STR_GAME_OPTIONS_RESOLUTION_OTHER :Otra +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}×{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleración por hardware +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Activar esta casilla para intentar emplear la aceleración por hardware. Este cambio solo tiene efecto tras reiniciar el juego +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Esta configuración solo tendrá efecto después de reiniciar el juego STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elegir el tamaño de los elementos de la interfaz @@ -1019,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Cuádruple +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gráficos +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Frecuencia de actualización +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Elegir la frecuencia de actualización de la pantalla +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :otra +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM} Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Las frecuencias mayores a 60 Hz pueden alterar el rendimiento. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Elegir los gráficos base @@ -1792,6 +1802,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}No hay m STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}La asignación de {BYTES} de caché de sprites ha fallado. La caché de sprites ha sido reducida a {BYTES}, lo que reducirá el desempeño de OpenTTD. Para reducir los requisitos de memoria es posible deshabilitar los gráficos de 32bpp o reducir los grados de acercamiento # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Error en la configuración de video... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no se encontró una tarjeta gráfica compatible. La aceleración por hardware está deshabilitada # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3074,7 +3086,7 @@ STR_NEWGRF_DUPLICATE_GRFID :{WHITE}El archi STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado) STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: se alcanzó el máximo de NewGRF permitidos -STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargado para archivos que faltan +STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatible cargado para archivos que faltan STR_NEWGRF_DISABLED_WARNING :{WHITE}El o los archivos GRF no encontrados han sido desactivados STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Reanudar la partida puede provocar un error fatal en OpenTTD. No se deben crear reportes para errores fatales posteriores.{}¿Proceder de todos modos? @@ -3182,19 +3194,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la constr STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar los derechos exclusivos de transporte STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar al ayuntamiento -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales. Provoca considerables complicaciones al tráfico durante 6 meses.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construir una estatua en honor a tu empresa.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el pueblo.{}Costo: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar la exclusividad de los derechos de servicio de transporte en este pueblo durante un año. El ayuntamiento solo permitirá el uso de las estaciones pertenecientes a tu empresa.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Otorga un aumento temporal a la evaluación de estaciones en un radio pequeño alrededor del centro del pueblo.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y cargamento a tus servicios de transporte.{}Otorga un aumento temporal a la evaluación de estaciones en un radio mediano alrededor del centro del pueblo.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y cargamento a tus servicios de transporte.{}Otorga un aumento temporal a la evaluación de estaciones en un radio grande alrededor del centro del pueblo.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales.{}Provoca considerables complicaciones al tráfico hasta por 6 meses.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construir una estatua en honor a tu empresa.{}Otorga un aumento permanente a la evaluación estaciones en este pueblo.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el pueblo.{}Otorga un aumento temporal a su crecimiento.{}Costo: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar derechos exclusivos de transporte en este pueblo por un año.{}El ayuntamiento solo permitirá el uso de estaciones que sean de tu empresa.{}Costo: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Sobornar al ayuntamiento para aumentar mejorar tu evaluación, con el riesgo de una severa penalización si llegas a ser descubierto.{}Costo: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metas globales STR_GOALS_SPECTATOR :Metas globales +STR_GOALS_GLOBAL_BUTTON :{BLACK}Globales +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Mostrar objetivos globales +STR_GOALS_COMPANY_BUTTON :{BLACK}Empresa +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Mostrar objetivos de la empresa STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Ninguna - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3569,6 +3585,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reforma: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de carga STR_PURCHASE_INFO_NONE :Ninguno +STR_PURCHASE_INFO_ENGINES_ONLY :Solo locomotoras STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 97d6a59b59..9482756f44 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1571,6 +1571,7 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Залишат STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Залишати інструменти будівництва активними після використання. STR_CONFIG_SETTING_EXPENSES_LAYOUT :Групувати витрати у вікні фінансів: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Налаштування відображення інформації про вітрати у вікні фінансів +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% нормальної швидкості гри STR_CONFIG_SETTING_SOUND_TICKER :Новинний рухомий рядок: {STRING} STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Відтворення звуку для узагальнених новинних повідомлень @@ -1735,6 +1736,7 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :лінійна STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Поява дерев під час гри: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Налаштування випадкової появи дерев на карті в процесі гри. Ця настройка також впливає на відповідні підприємства, такі як лісопилки. +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Зростання, але поширення тільки вологих лісів STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :Не зростати, не поширюватися {RED}(лісопилка не працює) STR_CONFIG_SETTING_TOOLBAR_POS :Позиція головного меню: {STRING} @@ -3277,6 +3279,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Під STR_GOALS_CAPTION :{WHITE}Цілі {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальні цілі: STR_GOALS_SPECTATOR :Загальні задачі +STR_GOALS_COMPANY_BUTTON :{BLACK}Компанія STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- нема - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -4116,6 +4119,7 @@ STR_ORDER_REFIT_STOP_ORDER :(Переобл STR_ORDER_STOP_ORDER :(зупинити) STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING} +STR_ORDER_GO_TO_STATION_CAN_T_USE_STATION :{PUSH_COLOUR}{RED}(Неможливо використати станцію){POP_COLOUR} {STRING} {STATION} {STRING} STR_ORDER_IMPLICIT :(Автоматично) @@ -4566,6 +4570,7 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Неправи STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} дуже довгий після оновлення STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Правила автозаміни/оновлення не застосовувалися STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(бракує коштів) +STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Нове авто не може змінити наказ {NUM} # Rail construction errors STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Неможливе з'єднання колії From c0b722ec46f13c04125fb122692aa975abe4f8d9 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 27 Feb 2021 19:24:22 +0000 Subject: [PATCH 35/53] Codechange: Add fast path to catenary drawing in MaskWireBits MaskWireBits always returns its input unchanged if the input has only 0 or 1 track bits set. Having only 0 or 1 track bits sets (i.e. non junction tiles) is by far the most common case. Examining the state of neighbouring tiles and the subsequent masking logic is relatively expensive and can be omitted in this case. --- src/elrail.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/elrail.cpp b/src/elrail.cpp index 5d8f2b8f32..44481dd313 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -124,6 +124,9 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) */ static TrackBits MaskWireBits(TileIndex t, TrackBits tracks) { + /* Single track bits are never masked out. */ + if (likely(HasAtMostOneBit(tracks))) return tracks; + if (!IsPlainRailTile(t)) return tracks; TrackdirBits neighbour_tdb = TRACKDIR_BIT_NONE; From 28589db66473c73583d4b862bc9990e51af1521b Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 10 Mar 2021 22:48:47 +0100 Subject: [PATCH 36/53] Fix: front/back sprites of action5 tram catenary were swapped. --- src/table/road_land.h | 4 ++-- src/table/sprites.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/table/road_land.h b/src/table/road_land.h index 67423784a2..df38f935d5 100644 --- a/src/table/road_land.h +++ b/src/table/road_land.h @@ -62,11 +62,11 @@ static const SpriteID _road_tile_sprites_1[16] = { 0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536 }; -static const SpriteID _road_frontwire_sprites_1[16] = { +static const SpriteID _road_backpole_sprites_1[16] = { 0, 0x54, 0x55, 0x5B, 0x54, 0x54, 0x5E, 0x5A, 0x55, 0x5C, 0x55, 0x58, 0x5D, 0x57, 0x59, 0x56 }; -static const SpriteID _road_backpole_sprites_1[16] = { +static const SpriteID _road_frontwire_sprites_1[16] = { 0, 0x38, 0x39, 0x40, 0x38, 0x38, 0x43, 0x3E, 0x39, 0x41, 0x39, 0x3C, 0x42, 0x3B, 0x3D, 0x3A }; diff --git a/src/table/sprites.h b/src/table/sprites.h index 296254c78b..9071e61dc6 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -276,8 +276,8 @@ static const SpriteID SPR_TRAMWAY_PAVED_STRAIGHT_X = SPR_TRAMWAY_BASE + 47; static const SpriteID SPR_TRAMWAY_DEPOT_WITH_TRACK = SPR_TRAMWAY_BASE + 49; static const SpriteID SPR_TRAMWAY_BACK_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 55; static const SpriteID SPR_TRAMWAY_FRONT_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 56; -static const SpriteID SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72; -static const SpriteID SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68; +static const SpriteID SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68; +static const SpriteID SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72; static const SpriteID SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80; static const SpriteID SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107; static const SpriteID SPR_TRAMWAY_DEPOT_NO_TRACK = SPR_TRAMWAY_BASE + 113; From f580ab4ba460c307cd9d4037815e69e7a8185541 Mon Sep 17 00:00:00 2001 From: frosch Date: Wed, 10 Mar 2021 22:49:56 +0100 Subject: [PATCH 37/53] Fix #8647: draw tram catenary using 4 bounding boxes. The back sprite is now supposed to contain west, north and east pillars. The front sprite is supposed to contain the south pillar and the wires. --- src/road_cmd.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 9fffa45ca9..830f9dd4fc 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1423,8 +1423,23 @@ void DrawRoadTypeCatenary(const TileInfo *ti, RoadType rt, RoadBits rb) * For tiles with OWNER_TOWN or OWNER_NONE, recolour CC to grey as a neutral colour. */ Owner owner = GetRoadOwner(ti->tile, GetRoadTramType(rt)); PaletteID pal = (owner == OWNER_NONE || owner == OWNER_TOWN ? GENERAL_SPRITE_COLOUR(COLOUR_GREY) : COMPANY_SPRITE_COLOUR(owner)); - if (back != 0) AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 16, 16, TILE_HEIGHT + BB_HEIGHT_UNDER_BRIDGE, ti->z, IsTransparencySet(TO_CATENARY)); - if (front != 0) AddSortableSpriteToDraw(front, pal, ti->x, ti->y, 16, 16, TILE_HEIGHT + BB_HEIGHT_UNDER_BRIDGE, ti->z, IsTransparencySet(TO_CATENARY)); + int z_wires = (ti->tileh == SLOPE_FLAT ? 0 : TILE_HEIGHT) + BB_HEIGHT_UNDER_BRIDGE; + if (back != 0) { + /* The "back" sprite contains the west, north and east pillars. + * We cut the sprite at 3/8 of the west/east edges to create 3 sprites. + * 3/8 is chosen so that sprites can somewhat graphically extend into the tile. */ + static const int INF = 1000; ///< big number compared to sprite size + static const SubSprite west = { -INF, -INF, -12, INF }; + static const SubSprite north = { -12, -INF, 12, INF }; + static const SubSprite east = { 12, -INF, INF, INF }; + AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 16, 1, z_wires, ti->z, IsTransparencySet(TO_CATENARY), 15, 0, GetSlopePixelZInCorner(ti->tileh, CORNER_W), &west); + AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 1, 1, z_wires, ti->z, IsTransparencySet(TO_CATENARY), 0, 0, GetSlopePixelZInCorner(ti->tileh, CORNER_N), &north); + AddSortableSpriteToDraw(back, pal, ti->x, ti->y, 1, 16, z_wires, ti->z, IsTransparencySet(TO_CATENARY), 0, 15, GetSlopePixelZInCorner(ti->tileh, CORNER_E), &east); + } + if (front != 0) { + /* Draw the "front" sprite (containing south pillar and wires) at a Z height that is both above the vehicles and above the "back" pillars. */ + AddSortableSpriteToDraw(front, pal, ti->x, ti->y, 16, 16, z_wires + 1, ti->z, IsTransparencySet(TO_CATENARY), 0, 0, z_wires); + } } /** From de891238d6e987bc2d3411164e6a3eb1e3cbbd72 Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Thu, 11 Mar 2021 09:30:29 -0500 Subject: [PATCH 38/53] Change: Recolour graph windows to brown (#8700) --- src/ai/ai_gui.cpp | 2 +- src/graph_gui.cpp | 158 ++++++++++++++++---------------- src/linkgraph/linkgraph_gui.cpp | 2 +- src/signs_gui.cpp | 22 ++--- src/widget.cpp | 5 +- src/widget_type.h | 2 +- 6 files changed, 96 insertions(+), 95 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 8db22e41b5..4c0330bc77 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -1431,7 +1431,7 @@ StringFilter AIDebugWindow::break_string_filter(&AIDebugWindow::case_sensitive_b /** Make a number of rows with buttons for each company for the AI debug window. */ NWidgetBase *MakeCompanyButtonRowsAIDebug(int *biggest_index) { - return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP); + return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, COLOUR_GREY, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP); } /** diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 79c548e9c3..5b04592bff 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -113,7 +113,7 @@ static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index) uint line_height = std::max(GetSpriteSize(SPR_COMPANY_ICON).height, FONT_HEIGHT_NORMAL) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; for (int widnum = WID_GL_FIRST_COMPANY; widnum <= WID_GL_LAST_COMPANY; widnum++) { - NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum); + NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_BROWN, widnum); panel->SetMinimalSize(246, line_height); panel->SetFill(1, 0); panel->SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP); @@ -125,12 +125,12 @@ static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index) static const NWidgetPart _nested_graph_legend_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_KEY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_KEY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_GL_BACKGROUND), NWidget(NWID_SPACER), SetMinimalSize(0, 2), NWidget(NWID_HORIZONTAL), NWidget(NWID_SPACER), SetMinimalSize(2, 0), @@ -634,19 +634,19 @@ struct OperatingProfitGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_operating_profit_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_OPERATING_PROFIT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_OPERATING_PROFIT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 160), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 160), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE), EndContainer(), EndContainer(), EndContainer(), @@ -685,19 +685,19 @@ struct IncomeGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_income_graph_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_INCOME_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_INCOME_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE), EndContainer(), EndContainer(), EndContainer(), @@ -734,19 +734,19 @@ struct DeliveredCargoGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_delivered_cargo_graph_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_CARGO_DELIVERED_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_CARGO_DELIVERED_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE), EndContainer(), EndContainer(), EndContainer(), @@ -789,20 +789,20 @@ struct PerformanceHistoryGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_performance_history_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_PHG_DETAILED_PERFORMANCE), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_PERFORMANCE_DETAIL_KEY, STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_PHG_KEY), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_PHG_DETAILED_PERFORMANCE), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_PERFORMANCE_DETAIL_KEY, STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_PHG_KEY), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_PHG_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_PHG_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_PHG_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_PHG_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_PHG_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_PHG_RESIZE), EndContainer(), EndContainer(), EndContainer(), @@ -839,19 +839,19 @@ struct CompanyValueGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_company_value_graph_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_VALUES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_COMPANY_VALUES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE), EndContainer(), EndContainer(), EndContainer(), @@ -954,7 +954,7 @@ struct PaymentRatesGraphWindow : BaseGraphWindow { bool lowered = !HasBit(_legend_excluded_cargo, cs->Index()); /* Redraw box if lowered */ - if (lowered) DrawFrameRect(r.left, y, r.right, y + this->line_height - 1, COLOUR_ORANGE, lowered ? FR_LOWERED : FR_NONE); + if (lowered) DrawFrameRect(r.left, y, r.right, y + this->line_height - 1, COLOUR_BROWN, lowered ? FR_LOWERED : FR_NONE); byte clk_dif = lowered ? 1 : 0; int rect_x = clk_dif + (rtl ? r.right - 12 : r.left + WD_FRAMERECT_LEFT); @@ -1049,28 +1049,28 @@ struct PaymentRatesGraphWindow : BaseGraphWindow { static const NWidgetPart _nested_cargo_payment_rates_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CPR_BACKGROUND), SetMinimalSize(568, 128), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CPR_BACKGROUND), SetMinimalSize(568, 128), NWidget(NWID_HORIZONTAL), NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), - NWidget(WWT_TEXT, COLOUR_GREY, WID_CPR_HEADER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_TITLE, STR_NULL), + NWidget(WWT_TEXT, COLOUR_BROWN, WID_CPR_HEADER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_TITLE, STR_NULL), NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), EndContainer(), NWidget(NWID_HORIZONTAL), - NWidget(WWT_EMPTY, COLOUR_GREY, WID_CPR_GRAPH), SetMinimalSize(495, 0), SetFill(1, 1), SetResize(1, 1), + NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CPR_GRAPH), SetMinimalSize(495, 0), SetFill(1, 1), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_SPACER), SetMinimalSize(0, 24), SetFill(0, 1), - NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_CPR_ENABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_ENABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL), SetFill(1, 0), - NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_CPR_DISABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_DISABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL), SetFill(1, 0), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CPR_ENABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_ENABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL), SetFill(1, 0), + NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CPR_DISABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_DISABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL), SetFill(1, 0), NWidget(NWID_SPACER), SetMinimalSize(0, 4), NWidget(NWID_HORIZONTAL), - NWidget(WWT_MATRIX, COLOUR_ORANGE, WID_CPR_MATRIX), SetResize(0, 2), SetMatrixDataTip(1, 0, STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO), SetScrollbar(WID_CPR_MATRIX_SCROLLBAR), - NWidget(NWID_VSCROLLBAR, COLOUR_ORANGE, WID_CPR_MATRIX_SCROLLBAR), + NWidget(WWT_MATRIX, COLOUR_BROWN, WID_CPR_MATRIX), SetResize(0, 2), SetMatrixDataTip(1, 0, STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO), SetScrollbar(WID_CPR_MATRIX_SCROLLBAR), + NWidget(NWID_VSCROLLBAR, COLOUR_BROWN, WID_CPR_MATRIX_SCROLLBAR), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 24), SetFill(0, 1), EndContainer(), @@ -1078,9 +1078,9 @@ static const NWidgetPart _nested_cargo_payment_rates_widgets[] = { EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(NWID_SPACER), SetMinimalSize(WD_RESIZEBOX_WIDTH, 0), SetFill(1, 0), SetResize(1, 0), - NWidget(WWT_TEXT, COLOUR_GREY, WID_CPR_FOOTER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL, STR_NULL), + NWidget(WWT_TEXT, COLOUR_BROWN, WID_CPR_FOOTER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL, STR_NULL), NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), - NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CPR_RESIZE), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CPR_RESIZE), EndContainer(), EndContainer(), }; @@ -1264,12 +1264,12 @@ public: static const NWidgetPart _nested_company_league_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_COMPANY_LEAGUE_TABLE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_COMPANY_LEAGUE_TABLE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_CL_BACKGROUND), SetMinimalSize(400, 0), SetMinimalTextLines(15, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_CL_BACKGROUND), SetMinimalSize(400, 0), SetMinimalTextLines(15, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), }; static WindowDesc _company_league_desc( @@ -1539,7 +1539,7 @@ static NWidgetBase *MakePerformanceDetailPanels(int *biggest_index) NWidgetVertical *vert = new NWidgetVertical(NC_EQUALSIZE); for (int widnum = WID_PRD_SCORE_FIRST; widnum <= WID_PRD_SCORE_LAST; widnum++) { - NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum); + NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_BROWN, widnum); panel->SetFill(1, 1); panel->SetDataTip(0x0, performance_tips[widnum - WID_PRD_SCORE_FIRST]); vert->Add(panel); @@ -1551,17 +1551,17 @@ static NWidgetBase *MakePerformanceDetailPanels(int *biggest_index) /** Make a number of rows with buttons for each company for the performance rating detail window. */ NWidgetBase *MakeCompanyButtonRowsGraphGUI(int *biggest_index) { - return MakeCompanyButtonRows(biggest_index, WID_PRD_COMPANY_FIRST, WID_PRD_COMPANY_LAST, 8, STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP); + return MakeCompanyButtonRows(biggest_index, WID_PRD_COMPANY_FIRST, WID_PRD_COMPANY_LAST, COLOUR_BROWN, 8, STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP); } static const NWidgetPart _nested_performance_rating_detail_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_PERFORMANCE_DETAIL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_PERFORMANCE_DETAIL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY), + NWidget(WWT_PANEL, COLOUR_BROWN), NWidgetFunction(MakeCompanyButtonRowsGraphGUI), SetPadding(0, 1, 1, 2), EndContainer(), NWidgetFunction(MakePerformanceDetailPanels), diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index efdf425da1..2d715aaf58 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -375,7 +375,7 @@ void LinkGraphOverlay::SetCompanyMask(uint32 company_mask) /** Make a number of rows with buttons for each company for the linkgraph legend window. */ NWidgetBase *MakeCompanyButtonRowsLinkGraphGUI(int *biggest_index) { - return MakeCompanyButtonRows(biggest_index, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST, 3, STR_NULL); + return MakeCompanyButtonRows(biggest_index, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST, COLOUR_GREY, 3, STR_NULL); } NWidgetBase *MakeSaturationLegendLinkGraphGUI(int *biggest_index) diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index e3b270fbfd..ea55488cc7 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -357,29 +357,29 @@ HotkeyList SignListWindow::hotkeys("signlist", signlist_hotkeys, SignListGlobalH static const NWidgetPart _nested_sign_list_widgets[] = { NWidget(NWID_HORIZONTAL), - NWidget(WWT_CLOSEBOX, COLOUR_GREY), - NWidget(WWT_CAPTION, COLOUR_GREY, WID_SIL_CAPTION), SetDataTip(STR_SIGN_LIST_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), - NWidget(WWT_SHADEBOX, COLOUR_GREY), - NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), - NWidget(WWT_STICKYBOX, COLOUR_GREY), + NWidget(WWT_CLOSEBOX, COLOUR_BROWN), + NWidget(WWT_CAPTION, COLOUR_BROWN, WID_SIL_CAPTION), SetDataTip(STR_SIGN_LIST_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_SHADEBOX, COLOUR_BROWN), + NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN), + NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(NWID_VERTICAL), - NWidget(WWT_PANEL, COLOUR_GREY, WID_SIL_LIST), SetMinimalSize(WD_FRAMETEXT_LEFT + 16 + 255 + WD_FRAMETEXT_RIGHT, 50), + NWidget(WWT_PANEL, COLOUR_BROWN, WID_SIL_LIST), SetMinimalSize(WD_FRAMETEXT_LEFT + 16 + 255 + WD_FRAMETEXT_RIGHT, 50), SetResize(1, 10), SetFill(1, 0), SetScrollbar(WID_SIL_SCROLLBAR), EndContainer(), NWidget(NWID_HORIZONTAL), - NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 1), - NWidget(WWT_EDITBOX, COLOUR_GREY, WID_SIL_FILTER_TEXT), SetMinimalSize(80, 12), SetResize(1, 0), SetFill(1, 0), SetPadding(2, 2, 2, 2), + NWidget(WWT_PANEL, COLOUR_BROWN), SetFill(1, 1), + NWidget(WWT_EDITBOX, COLOUR_BROWN, WID_SIL_FILTER_TEXT), SetMinimalSize(80, 12), SetResize(1, 0), SetFill(1, 0), SetPadding(2, 2, 2, 2), SetDataTip(STR_LIST_FILTER_OSKTITLE, STR_LIST_FILTER_TOOLTIP), EndContainer(), - NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_SIL_FILTER_MATCH_CASE_BTN), SetDataTip(STR_SIGN_LIST_MATCH_CASE, STR_SIGN_LIST_MATCH_CASE_TOOLTIP), + NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_SIL_FILTER_MATCH_CASE_BTN), SetDataTip(STR_SIGN_LIST_MATCH_CASE, STR_SIGN_LIST_MATCH_CASE_TOOLTIP), EndContainer(), EndContainer(), NWidget(NWID_VERTICAL), NWidget(NWID_VERTICAL), SetFill(0, 1), - NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_SIL_SCROLLBAR), + NWidget(NWID_VSCROLLBAR, COLOUR_BROWN, WID_SIL_SCROLLBAR), EndContainer(), - NWidget(WWT_RESIZEBOX, COLOUR_GREY), + NWidget(WWT_RESIZEBOX, COLOUR_BROWN), EndContainer(), EndContainer(), }; diff --git a/src/widget.cpp b/src/widget.cpp index 8231691082..2260d463f9 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -2863,12 +2863,13 @@ NWidgetContainer *MakeWindowNWidgetTree(const NWidgetPart *parts, int count, int * @param biggest_index Storage for collecting the biggest index used in the returned tree. * @param widget_first The first widget index to use. * @param widget_last The last widget index to use. + * @param colour The colour in which to draw the button. * @param max_length Maximal number of company buttons in one row. * @param button_tooltip The tooltip-string of every button. * @return Panel with rows of company buttons. * @post \c *biggest_index contains the largest used index in the tree. */ -NWidgetBase *MakeCompanyButtonRows(int *biggest_index, int widget_first, int widget_last, int max_length, StringID button_tooltip) +NWidgetBase *MakeCompanyButtonRows(int *biggest_index, int widget_first, int widget_last, Colours button_colour, int max_length, StringID button_tooltip) { assert(max_length >= 1); NWidgetVertical *vert = nullptr; // Storage for all rows. @@ -2892,7 +2893,7 @@ NWidgetBase *MakeCompanyButtonRows(int *biggest_index, int widget_first, int wid hor_length = 0; } - NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum); + NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, button_colour, widnum); panel->SetMinimalSize(sprite_size.width, sprite_size.height); panel->SetFill(1, 1); panel->SetResize(1, 0); diff --git a/src/widget_type.h b/src/widget_type.h index d8841f9bd2..c5083c6c5a 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -1155,6 +1155,6 @@ static inline NWidgetPart NWidgetFunction(NWidgetFunctionType *func_ptr) NWidgetContainer *MakeNWidgets(const NWidgetPart *parts, int count, int *biggest_index, NWidgetContainer *container); NWidgetContainer *MakeWindowNWidgetTree(const NWidgetPart *parts, int count, int *biggest_index, NWidgetStacked **shade_select); -NWidgetBase *MakeCompanyButtonRows(int *biggest_index, int widget_first, int widget_last, int max_length, StringID button_tooltip); +NWidgetBase *MakeCompanyButtonRows(int *biggest_index, int widget_first, int widget_last, Colours button_colour, int max_length, StringID button_tooltip); #endif /* WIDGET_TYPE_H */ From 3cb2dd4889daeec76239e10d2e06d040b405167e Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 11 Mar 2021 18:08:46 +0000 Subject: [PATCH 39/53] Update: Translations from eints swedish: 22 changes by kustridaren ukrainian: 4 changes by StepanIvasyn lithuanian: 7 changes by devbotas spanish: 312 changes by MontyMontana --- src/lang/lithuanian.txt | 14 +- src/lang/spanish.txt | 624 ++++++++++++++++++++-------------------- src/lang/swedish.txt | 27 +- src/lang/ukrainian.txt | 4 + 4 files changed, 345 insertions(+), 324 deletions(-) diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index aeeea06e6f..854c2dff18 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -1328,14 +1328,14 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :kompanijos (įr STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategorija: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipas: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Rodyti tik tam tikros rūšies nuostatas -STR_CONFIG_SETTING_RESTRICT_BASIC :Pagrindines nuostatas -STR_CONFIG_SETTING_RESTRICT_ADVANCED :Sudėtingesnes nuostatas -STR_CONFIG_SETTING_RESTRICT_ALL :visas nuostatas -STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :nuostatas, kurių reikšmės skiriasi nuo numatytųjų -STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :nuostatas, kurių reikšmės skiriasi nuo naujai pradedamo žaidimo nuostatų +STR_CONFIG_SETTING_RESTRICT_BASIC :Pagrindinės nuostatos +STR_CONFIG_SETTING_RESTRICT_ADVANCED :Sudėtingesnės nuostatos +STR_CONFIG_SETTING_RESTRICT_ALL :Visos nuostatos +STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Nuostatos, kurių reikšmės skiriasi nuo numatytųjų +STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Nuostatos, kurių reikšmės skiriasi nuo naujai pradedamo žaidimo nuostatų STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Rodyti tik tam tikro tipo nuostatas -STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Visas nuostatas +STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Visos nuostatos STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Programos (galioja visiems žaidimams) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Žaidimo (įrašoma pradedant naują žaidimą) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Žaidimo (įrašoma kiekvieną kartą išsaugant žaidimą. Galioja tik aktyviam žaidimui) @@ -1752,7 +1752,7 @@ STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Velkant kopijuo STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Atstumas tarp signalų, statomų vilkimo būdu STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} langel{P 0 į ius ių} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Velkant išlaikyti vienodą atstumą tarp signalų: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Nustato signalų statymo velkant ir laikant nuspaustą Ctrl klavišą, ypatybes. Išjungus šia nuostatą, signalai bus statomi abipus tunelio ar tilto (kad nesusidarytų ilgos atkarpos be signalų). Įjungus šią nuostatą, signalai bus pastatyti tiksliai vienodais atstumais (nebūtinai prie pat tunelio ar tilto) +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Nustato signalų statymo velkant ir laikant nuspaustą Ctrl klavišą, ypatybes. Išjungus šią nuostatą, signalai bus statomi abipus tunelio ar tilto (kad nesusidarytų ilgos atkarpos be signalų). Įjungus šią nuostatą, signalai bus pastatyti tiksliai vienodais atstumais (nebūtinai prie pat tunelio ar tilto) STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Automatiškai statyti semaforus iki: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Metai, kuriais elektriniai signalai pakeičia semaforus (abiejų rūšių signalai veikia visiškai vienodai, tik skirtingai atrodo) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Įgalinti signalų pasirinkimo langą: {STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1eb618dfc5..3ed12320ca 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -402,9 +402,9 @@ STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Carteles transp ############ range ends here ############ range for file menu starts -STR_FILE_MENU_SAVE_GAME :Guardar juego -STR_FILE_MENU_LOAD_GAME :Cargar juego -STR_FILE_MENU_QUIT_GAME :Abandonar juego +STR_FILE_MENU_SAVE_GAME :Guardar partida +STR_FILE_MENU_LOAD_GAME :Cargar partida +STR_FILE_MENU_QUIT_GAME :Abandonar partida STR_FILE_MENU_SEPARATOR : STR_FILE_MENU_EXIT :Salir ############ range ends here @@ -440,7 +440,7 @@ STR_GRAPH_MENU_HIGHSCORE :Tabla de puntua ############ range ends here ############ range for industry menu starts -STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Directorio de industrias +STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Lista de industrias STR_INDUSTRY_MENU_INDUSTRY_CHAIN :Cadenas de industrias STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nueva industria ############ range ends here @@ -585,12 +585,12 @@ STR_GRAPH_Y_LABEL_NUMBER :{TINY_FONT}{COM STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Gráfico de Beneficio Operativo STR_GRAPH_INCOME_CAPTION :{WHITE}Gráfico de Ingresos STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Unidades de carga entregadas -STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Calificaciones de actuación de empresas (tasa máxima=1000) +STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Calificaciones de rendimiento de empresas (máximo=1000) STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valor de la empresa -STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tasas de pago por carga +STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tarifa de pago por carga STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Días en tránsito -STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Pago por entregar 10 unidades (o 1,000 litros) de mercancía a una distancia de 20 casillas +STR_GRAPH_CARGO_PAYMENT_RATES_TITLE :{TINY_FONT}{BLACK}Pago por entregar 10 unidades (o 1,000 litros) de carga a una distancia de 20 casillas STR_GRAPH_CARGO_ENABLE_ALL :{TINY_FONT}{BLACK}Activar todos STR_GRAPH_CARGO_DISABLE_ALL :{TINY_FONT}{BLACK}Desactivar todos STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL :{BLACK}Mostrar todos los tipos de carga en el gráfico de tarifas de pagos por carga @@ -598,7 +598,7 @@ STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL :{BLACK}Ocultar STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO :{BLACK}Mostrar/Ocultar gráfico de este tipo de carga STR_GRAPH_CARGO_PAYMENT_CARGO :{TINY_FONT}{BLACK}{STRING} -STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Mostrar detalles de rendimiento +STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Muestra detalles del rendimiento # Graph key window STR_GRAPH_KEY_CAPTION :{WHITE}Leyenda de los gráficos @@ -607,12 +607,12 @@ STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Clic aqu # Company league window STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Tabla de Clasificación de Empresas STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPANY} {BLACK}{COMPANY_NUM} '{STRING}' -STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Ingeniero +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Maquinista STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Gerente de tráfico STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR :Coordinador de transporte -STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Supervisor de ruta -STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Directivo -STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Subdirector +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Supervisor de rutas +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Director +STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Director Ejecutivo STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Consejero delegado STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TYCOON :Magnate @@ -903,8 +903,8 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Copia la # Game options window STR_GAME_OPTIONS_CAPTION :{WHITE}Opciones del juego -STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Unidad de moneda -STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Selección de unidad de moneda +STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Unidad monetaria +STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Selecciona la nnidad monetaria ############ start of currency region STR_GAME_OPTIONS_CURRENCY_GBP :Libra británica (GBP) @@ -993,7 +993,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Cada 12 meses ############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Idioma -STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Seleccione el idioma a emplear para la interfaz del juego +STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Selecciona el idioma a emplear en interfaz del juego STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Pantalla completa STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marca esta opción para jugar OpenTTD a pantalla completa @@ -1010,15 +1010,15 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}El ajust STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elige el tamaño de los elementos de la interfaz a usar -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(detecta automáticamente) +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(autodetectar) STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple -STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Tamaño de letra -STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecciona el tamaño de letra a utilizar en la interfaz +STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Tamaño de fuente +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecciona el tamaño de fuente a utilizar en la interfaz -STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(detecta automáticamente) +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(autodetectar) STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamaño cuádruple @@ -1027,9 +1027,9 @@ STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gráfico STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Mostrar frecuencia de actualización STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecciona la frecuencia de actualización de la pantalla -STR_GAME_OPTIONS_REFRESH_RATE_OTHER :otro -STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz -STR_GAME_OPTIONS_REFRESH_RATE_WARNING :Las frecuencias de actualización superiores a 60 Hz pueden afectar el rendimiento. +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :otra +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM} Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Las frecuencias de actualización superiores a 60 Hz pueden afectar al rendimiento. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunto de gráficos base a usar @@ -1052,7 +1052,7 @@ STR_ERROR_FULLSCREEN_FAILED :{WHITE}El modo STR_CURRENCY_WINDOW :{WHITE}Moneda personalizada STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Tasa de cambio: {ORANGE}{CURRENCY_LONG} = £ {COMMA} -STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Reducir la cantidad de tu moneda en una Libra (£) +STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Reduce la cantidad de tu moneda en una Libra (£) STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Incrementa la cantidad de tu moneda en una Libra (£) STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Configura el valor de cambio de tu moneda por una Libra (£) @@ -1067,8 +1067,8 @@ STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP :{BLACK}Configur STR_CURRENCY_SWITCH_TO_EURO :{LTBLUE}Cambio al Euro: {ORANGE}{NUM} STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Cambio al Euro: {ORANGE}nunca STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Configurar el año del cambio al Euro -STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar al Euro antes -STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambiar al Euro después +STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambia al Euro antes +STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Cambia al Euro después STR_CURRENCY_PREVIEW :{LTBLUE}Previa: {ORANGE}{CURRENCY_LONG} STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 Libras(£) en tu moneda @@ -1112,7 +1112,7 @@ STR_RIVERS_MODERATE :Medio STR_RIVERS_LOT :Muchos STR_DISASTER_NONE :Ninguno -STR_DISASTER_REDUCED :Reducidas +STR_DISASTER_REDUCED :Reducidos STR_DISASTER_NORMAL :Normales STR_SUBSIDY_X1_5 :x1.5 @@ -1161,7 +1161,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Opciones de cli STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Opciones de juego (se almacena en las partidas guardadas, afecta solamente a la partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a partidas nuevas) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a la compañía actual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Opciones de empresa (se almacena en las partidas guardadas, afecta solamente a la empresa actual) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostrar todos los resultados por opción de configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} {BLACK}y {SILVER}Tipo {BLACK}a {WHITE}Todos los tipos de opción @@ -1171,7 +1171,7 @@ STR_CONFIG_SETTING_OFF :No STR_CONFIG_SETTING_ON :Sí STR_CONFIG_SETTING_DISABLED :Desactivado -STR_CONFIG_SETTING_COMPANIES_OFF :Apagado +STR_CONFIG_SETTING_COMPANIES_OFF :Ninguna STR_CONFIG_SETTING_COMPANIES_OWN :Propia empresa STR_CONFIG_SETTING_COMPANIES_ALL :Todas las empresas @@ -1183,8 +1183,8 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Izquierda STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha -STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Máximo préstamo inicial: {STRING} -STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una compañía puede recibir en un préstamo (sin tener en cuenta la inflación) +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Préstamo máximo inicial: {STRING} +STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Cantidad máxima que una compañía puede recibir como préstamo (sin tener en cuenta la inflación) STR_CONFIG_SETTING_INTEREST_RATE :Porcentaje de interés: {STRING} STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; también controla la inflación, en caso de que esté activada STR_CONFIG_SETTING_RUNNING_COSTS :Costes de operación: {STRING} @@ -1192,15 +1192,15 @@ STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Permite fijar e STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Velocidad de construcción: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Limita la velocidad de las acciones de construcción para las IA STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Averías de vehículos: {STRING} -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos, con mantenimiento inadecuado, se rompen +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Controla la frecuencia con la que los vehículos con mantenimiento inadecuado se averían STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Multiplicador por subsidio: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Permite fijar a cuanto se pagan las conexiones con subsidio STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Costes de construcción: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Fija el nivel de los costes de construcción y compra STR_CONFIG_SETTING_RECESSIONS :Recesiones: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, ocurrirán recesiones cada pocos años. Durante una recesión, toda la producción es significativamente menor (volverá a su nivel anterior una vez acabe la recesión) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Si se activa, ocurrirán recesiones cada pocos años. Durante una recesión, toda la producción es significativamente menor (volverá a su nivel anterior cuando acabe la recesión) STR_CONFIG_SETTING_TRAIN_REVERSING :Prohibir cambio de dirección de trenes en estaciones: {STRING} -STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales, ni aún existiendo un camino más corto a su próximo destino si se dan la vuelta +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si se activa, los trenes no se darán la vuelta en estaciones no finales, ni siquiera existiendo un camino más corto a su próximo destino aunque dieran la vuelta STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa desastres que ocasionalmente pueden bloquear o destruir vehículos o infraestructuras STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los municipios frente a reestructuraciones en su zona: {STRING} @@ -1208,15 +1208,15 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima del mapa: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Establece la altura máxima permitida para las montañas en el mapa -STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No se puede establecer la altura máxima del mapa en el valor indicado. Al menos una montaña ya es más alta -STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificar terreno bajo edificios, raíles, etc.: {STRING} -STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permitir modificar el terreno debajo de edificios y raíles sin eliminarlos -STR_CONFIG_SETTING_CATCHMENT :Tamaño del área de captación realista: {STRING} -STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permite tener diferentes áreas de captación para distintos tipos de estaciones y aeropuertos -STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Las estaciones de la compañía pueden servir industrias con las estaciones neutrales adheridas: {STRING} -STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Al habilitarse esta opción, las industrias con estaciones anexas (como las Plataformas Petroleras) pueden ser atentidas por estaciones propiedad de una empresa que se construyan en la cercanía. Al deshabilitarse, estas industrias sólo pueden ser atendidas por sus respectivas estaciones anexas. Cualquier estación cercana propiedad de una empresa, no podrá atenderlas y las estaciones anexas podrán servir a la industria solamente +STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No se puede establecer la altura máxima del mapa en el valor indicado. Ya hay almenos una montaña más alta +STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificar el terreno bajo edificios, ferrocarril, etc.: {STRING} +STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permitir modificar el terreno debajo de edificios y ferrocarriles sin eliminarlos +STR_CONFIG_SETTING_CATCHMENT :Tamaño del área de cobertura realista: {STRING} +STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permite tener diferentes áreas de cobertura para distintos tipos de estaciones y aeropuertos +STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Las estaciones de la empresa pueden atender industrias con las estaciones neutrales adheridas: {STRING} +STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Al habilitarse esta opción, las industrias con estaciones anexas (como las Plataformas Petrolíferas) pueden ser atendidas por estaciones propiedad de una empresa que se construyan en las cercanías. Al deshabilitarse, estas industrias sólo pueden ser atendidas mediante sus respectivas estaciones anexas. Cualquier estación cercana propiedad de una empresa no podrá atenderlas, y sólo las estaciones anexas podrán atender a su respectiva industria. STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir eliminar más propiedades de los municipios: {STRING} -STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Hace que sea más fácil eliminar infraestructuras y edificios de los municipios +STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Permite que sea más sencillo eliminar las infraestructuras y edificios de los municipios STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud máxima de trenes: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Permite cambiar la longitud máxima de los trenes STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} casilla{P 0 "" s} @@ -1227,16 +1227,16 @@ STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Selecciona el m STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Modelo de aceleración para vehículos de carretera: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Selecciona el modelo físico a emplear para la aceleración de vehículos de carretera. El modelo "original" penaliza las pendientes de forma idéntica para todos los vehículos. El modelo "realista" penaliza cuestas y curvas dependiendo de varias propiedades del vehículo, como su potencia, fuerza de tracción, etcétera. STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Inclinación de cuestas para trenes: {STRING} -STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Pendiente de las casillas con cuesta para los trenes. Los valores altos hacen que sea más difícil subir las colinas +STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Pendiente de las casillas en cuesta para los trenes. Los valores altos hacen que sea más difícil subir las colinas STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Inclinación de cuestas para vehículos de carretera: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Pendiente de las casillas con cuesta para los vehículos de carretera. Los valores altos hacen que sea más difícil subir las colinas +STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Pendiente de las casillas en cuesta para los vehículos de carretera. Los valores altos hacen que sea más difícil subir las colinas STR_CONFIG_SETTING_FORBID_90_DEG :Prohibir a trenes realizar giros de 90°: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Los giros de 90 grados ocurren cuando una vía en sentido horizontal está seguida por una vía en sentido vertical, haciendo que el tren gire 90 grados al pasar de una a otra en lugar de los 45 grados habituales en otras combinaciones. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir unir estaciones no adyacentes: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite añadir partes a una estación sin tener que estar en contacto directamente con las partes existentes. Necesita pulsar Ctrl+Clic al añadir las nuevas partes STR_CONFIG_SETTING_INFLATION :Inflación: {STRING} -STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activa la inflación económica, lo cual hace que los costes aumenten ligeramente más rápido que los beneficios +STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activa la inflación económica, que hace que los costes aumenten ligeramente más rápido que los beneficios STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud máxima de puentes: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud máxima permitida para los puentes STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Altura máxima de puentes: {STRING} @@ -1244,12 +1244,12 @@ STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Altura máxima STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longitud máxima de túneles: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud máxima permitida para los túneles STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método de construcción de industria primaria: {STRING} -STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Forma de fundar industrias primarias. 'ninguno' significa que no se puede crear ninguna, 'prospeccón' significa que es posible crear nuevas industrias, pero que éstas aparecen en un lugar aleatorio del mapa y pueden fallar. 'como las otras industrias' significa que las industrias primarias pueden construirse como el resto de industrias en cualquier lugar que se quiera +STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Forma de fundar industrias primarias. 'ninguno' significa que no se puede crear ninguna, 'prospeccón' significa que es posible crear nuevas industrias, pero que éstas aparecerán en un lugar aleatorio del mapa y pueden fallar. 'como las otras industrias' significa que las industrias primarias pueden construirse como el resto de industrias, es decir, en cualquier lugar que se quiera STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Ninguno STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Como las otras industrias STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospección STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Área plana alrededor de industrias: {STRING} -STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Cantidad de espacio plano alrededor de las industrias. Esto permite que haya espacio libre alrededor de las industrias para construir +STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Cantidad de espacio plano alrededor de una industria. Esto permite que haya espacio libre alrededor de las industrias para construir STR_CONFIG_SETTING_MULTIPINDTOWN :Construcción de más de una industria similar por municipio: {STRING} STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normalmente, no se permite más de una industria del mismo tipo por municipio. Con esta opción, se permiten múltiples industrias del mismo tipo en el mismo municipio STR_CONFIG_SETTING_SIGNALSIDE :Mostrar señales: {STRING} @@ -1258,11 +1258,11 @@ STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A la izquierda STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :En el lado de conducción STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la derecha STR_CONFIG_SETTING_SHOWFINANCES :Mostrar ventana de finanzas al final del año: {STRING} -STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir inspeccionar fácilmente el estado financiero de la compañía +STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si se activa, la ventana de finanzas aparecerá al final de cada año para permitir revisar fácilmente el estado financiero de la empresa STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nuevas órdenes son 'sin parada' por defecto: {STRING} -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalmente, un vehículo se detendrá en todas las estaciones por las que pase. Si se activa esta opción, pasará sin detenerse a través de todas las estaciones hasta llegar a su destino. Esta opción solamente cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea -STR_CONFIG_SETTING_STOP_LOCATION :Nuevos trenes paran por defecto en el {STRING} de la plataforma -STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Permite seleccionar en qué parte de la plataforma se detendrán los trenes por defecto. 'extremo cercano' para parar cerca del punto de entrada, 'centro' para parar en el punto medio de la estación y 'extremo lejano' para parar lo más lejos posible del punto de entrada. Esta opción solamente cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalmente, un vehículo se detendrá en todas las estaciones por las que pase. Si se activa esta opción, pasará sin detenerse a través de todas las estaciones hasta llegar a su destino. Esta opción sólo cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea +STR_CONFIG_SETTING_STOP_LOCATION :Nuevos trenes paran por defecto en el {STRING} del andén +STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Permite seleccionar en qué parte del andén se detendrán los trenes por defecto. 'extremo cercano' para parar cerca del punto de entrada, 'centro' para parar en el punto medio de la estación y 'extremo lejano' para parar lo más lejos posible del punto de entrada. Esta opción solamente cambia el comportamiento por defecto de las órdenes nuevas. Es posible especificar para cada orden el comportamiento que se desea STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :extremo cercano STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :centro STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :extremo lejano @@ -1275,20 +1275,20 @@ STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Todas las vista STR_CONFIG_SETTING_BRIBE :Permitir sobornos a la autoridad local: {STRING} STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permite a las compañías intentar sobornar a las autoridades locales. Si el soborno es descubierto por un inspector, la compañía no podrá actuar en el municipio durante seis meses STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permitir comprar derechos de transporte exclusivos: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una compañía compra derechos de transporte exclusivos en un municipio, las estaciones de sus oponentes (pasajeros o carga) no recibirán nada para transportar durante un año +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una compañía compra derechos de transporte exclusivos en un municipio, las estaciones de sus oponentes (pasajeros o carga) no recibirán ninguna carga para transportar durante un año STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permitir la construcción de nuevos edificios: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permite a las compañías dar dinero a los municipios para crear nuevas casas +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permite a las compañías dar dinero a los municipios para construir nuevas casas STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permitir pagar la reconstrucción de las carreteras locales: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permite a las compañías dar dinero a los municipios para que reconstruyan sus carreteras, saboteando los servicios de carretera en la zona STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permitir enviar dinero a otras empresas: {STRING} -STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en el modo multijugador +STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permite la transferencia de dinero entre compañías en modo multijugador STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de peso para simular trenes pesados: {STRING} STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Permite fijar el impacto de llevar mercancías en los trenes. Un valor alto hace que a los trenes les cueste más llevar carga, especialmente en colinas STR_CONFIG_SETTING_PLANE_SPEED :Factor de velocidad de aeronaves: {STRING} STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Permite fijar la velocidad relativa de las aeronaves en comparación con otros vehículos, para reducir los beneficios del transporte aéreo STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} STR_CONFIG_SETTING_PLANE_CRASHES :Cantidad de aviones estrellados: {STRING} -STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Fija la probabilidad de que ocurran aleatoriamente accidentes aéreos.{}* Aeronaves grandes siempre corren el riesgo de sufrir un accidente cuando aterrizan en aeropuertos pequeños +STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Fija la probabilidad de que ocurran aleatoriamente accidentes aéreos.{}* Las aeronaves grandes siempre corren el riesgo de sufrir un accidente cuando aterrizan en aeropuertos pequeños STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Ninguno* STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducida STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal @@ -1296,9 +1296,9 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir constr STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de paso en carreteras que sean propiedad de los municipios STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir pasar a través de las paradas de carretera de los competidores: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de otras compañías -STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Cambiar esta opción no es posible cuando ya existen vehículos +STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}No es posible cambiar este ajuste cuando a existen vehículos STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mantenimiento de infraestructuras: {STRING} -STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cuando se activa, las infraestructuras tienen costes de mantenimiento. Los costes de la infraestructura aumentan con el tamaño de la red, con lo cual afectan a compañías grandes en mayor grado que a las pequeñas +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Si se activa, las infraestructuras tienen costes de mantenimiento. Los costes de infraestructura aumentan con el tamaño de la red, por lo que afectan en mayor grado a las compañías grandes que a las pequeñas STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Color inicial de la empresa: {STRING} STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Selecciona el color inicial de la empresa @@ -1309,7 +1309,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Permite a todos STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar si un vehículo se ha perdido: {STRING} STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Muestra mensajes indicando aquellos vehículos que no sean capaces de encontrar una ruta a su destino STR_CONFIG_SETTING_ORDER_REVIEW :Revisar órdenes de vehículos: {STRING} -STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Cuando se activa, se comprueban periódicamente las órdenes de los vehículos, y los problemas que se encuentren se reportan con un mensaje +STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Cuando se activa, se comprueban periódicamente las órdenes de los vehículos, y los problemas que se encuentren se informarán con un mensaje STR_CONFIG_SETTING_ORDER_REVIEW_OFF :No STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Sí, excluyendo a los vehículos detenidos STR_CONFIG_SETTING_ORDER_REVIEW_ON :Todos los vehículos @@ -1318,18 +1318,18 @@ STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Si se activa, s STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Los vehículos nunca caducan: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Cuando se activa, todos los modelos de vehículos permanecen disponibles para siempre una vez han sido introducidos STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Renovación automática de vehículos cuando se vuelven viejos: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Cuando se activa, los vehículos próximos al final de su vida útil serán reemplazados automáticamente; siempre y cuando se cumplan las condiciones de renovación -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenueva el vehículo {STRING} de su edad máxima -STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edad relativa con la cual un vehículo debería de ser considerado para ser autorenovado +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Cuando se activa, los vehículos próximos al final de su vida útil serán reemplazados automáticamente, siempre y cuando se cumplan las condiciones de renovación +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorrenovar el vehículo {STRING} de su edad máxima +STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edad relativa para la cual un vehículo debería de ser considerado para ser autorrenovado STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" es} antes STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mes{P 0 "" es} después STR_CONFIG_SETTING_AUTORENEW_MONEY :Mínimo de dinero requerido para renovación automática: {STRING} -STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mínima cantidad de dinero que se debe de tener en el banco para poder considerar la renovación automática de vehículos +STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Mínima cantidad de dinero que se debe tener en el banco para poder considerar la renovación automática de vehículos STR_CONFIG_SETTING_ERRMSG_DURATION :Duración de mensajes de error: {STRING} STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duración de los mensajes de error mostrados en ventanas rojas. Algunos mensajes de error (críticos) no se cierran automáticamente, y deben de ser cerrados manualmente STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostrar mensajes de ayuda: {STRING} -STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tiempo necesario con el ratón sobre un elemento de la interfaz para que esta muestre su mensaje de ayuda. De forma alternativa, se puede escoger mostrar estos mensajes al pulsar el botón derecho cuando el valor de esta opción ha sido establecido a 0. +STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Tiempo necesario del ratón sobre un elemento de la interfaz para que ésta muestre su mensaje de ayuda. De forma alternativa, se puede escoger mostrar estos mensajes al pulsar el botón derecho si el valor de esta opción ha sido establecido a 0. STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Mantener ratón durante {COMMA} milisegundo{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Clic derecho STR_CONFIG_SETTING_POPULATION_IN_LABEL :Mostrar la población de un municipio en su etiqueta: {STRING} @@ -1348,28 +1348,28 @@ STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreno: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Sólo TerraGenesis) Colinas del terreno STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidad industrial: {STRING} -STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Permite fijar el número de industrias que deberían de generarse, y el nivel que debería mantenerse durante el juego +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Permite fijar el número de industrias que deberían generarse, y el nivel que debería mantenerse durante la partida STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Máxima distancia de Refinerías de Petróleo con los bordes: {STRING} -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Las refinerías de petróleo solamente se construyen cerca del borde del mapa, el cual es costa para los mapas con borde de océano -STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altura línea nieve: {STRING} -STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Permite escoger la altura a la cual la nieve comienza en el clima subártico. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de municipios +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Límite para la distancia del borde del mapa en la que se pueden construir refinerías de petróleo y plataformas petrolíferas. En los mapas de islas, esto garantiza que estén cerca de la costa. En los mapas de más de 256 casillas, este valor se amplía. +STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altura cota nieve: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Permite escoger la cota a la cual la nieve comienza en el clima subártico. La nieve también afecta a la generación de industrias y a los requisitos de crecimiento de municipios STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rugosidad del terreno: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Sólo TerraGenesis) Permite elegir la frecuencia de las colinas: Los terrenos más planos tienen menor número, aunque suelen ser más extensas. Los terrenos más accidentados tienen múltiples colinas, lo cual puede resultar repetitivo -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy Suave -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Suave -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Áspero -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Muy Áspero +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muy Llano +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Llano +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Irregular +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Muy Irregular STR_CONFIG_SETTING_VARIETY :Variedad: {STRING} STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Sólo TerraGenesis) Permite controlar si el mapa contendrá zonas montañosas y planas. Dado que esto únicamente hace que el mapa sea más plano, otras opciones deberían fijarse a Montañoso STR_CONFIG_SETTING_RIVER_AMOUNT :Cantidad de ríos: {STRING} -STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Elegir el número de ríos a generar +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Elige el número de ríos a generar STR_CONFIG_SETTING_TREE_PLACER :Algoritmo de colocación de árboles: {STRING} STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Permite escoger la distribución de los árboles sobre el mapa. 'Original' distribuye la plantación de árboles uniformemente, mientras que 'Mejorado' los planta en grupos STR_CONFIG_SETTING_TREE_PLACER_NONE :Ninguno STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Mejorado STR_CONFIG_SETTING_ROAD_SIDE :Vehículos de carretera: {STRING} -STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Elegir el lado de conducción +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Elige el lado de conducción STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotación del Mapa de alturas: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sentido antihorario STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Sentido horario @@ -1378,11 +1378,11 @@ STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o m STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no es agua STR_CONFIG_SETTING_STATION_SPREAD :Máxima extensión de estaciones: {STRING} -STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Área máxima que pueden ocupar las partes de una estación. Cuidado, los valores muy altos pueden ralentizar el juego -STR_CONFIG_SETTING_SERVICEATHELIPAD :Realizar, automáticamente, el mantenimiento de los helicópteros en helipuertos: {STRING} -STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Dar servicio a los helicópteros después de cada aterrizaje, aunque no haya hangar en el aeropuerto +STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Área máxima que pueden ocupar las partes de una estación. Los valores muy altos pueden ralentizar el juego +STR_CONFIG_SETTING_SERVICEATHELIPAD :Realizar automáticamente el mantenimiento de los helicópteros en helipuertos: {STRING} +STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Dar mantenimiento a los helicópteros después de cada aterrizaje, aunque no haya hangar en el aeropuerto STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Une la barra de terreno a la barra de construcción: {STRING} -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cuando se abre una barra de herramientas de construcción, se abre también la barra de terraformación +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cuando se abre una barra de herramientas de construcción, se abrirá también la barra de terraformación STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color de terreno usado en el mapa: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color a usar para el terreno en el mapa STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verde @@ -1407,13 +1407,13 @@ STR_CONFIG_SETTING_PREFER_TEAMCHAT :Charla de equip STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Cambia el acceso al chat interno de la compañía y al chat público entre y STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Función de la rueda del ratón: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Activa el deslizamiento con ratones de rueda bidimensional -STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Zoom sobre el mapa +STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Acercamiento al mapa STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Desplazamiento sobre el mapa -STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Nada +STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Desactivada STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Velocidad de la rueda del ratón sobre el mapa: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Controla la sensibilidad de la rueda del ratón STR_CONFIG_SETTING_OSK_ACTIVATION :Teclado en pantalla: {STRING} -STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Permite seleccionar el método para abrir el teclado en pantalla para escribir texto empleando solamente el puntero. Esta opción está pensada para dispositivos pequeños sin teclado físico +STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Permite seleccionar el método para abrir el teclado en pantalla para escribir texto empleando solamente el cursor. Esta opción está pensada para dispositivos pequeños sin teclado físico STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Deshabilitado STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Doble clic STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Un solo clic (si está enfocado) @@ -1437,7 +1437,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :largo (31 Dic 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :corto (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausar automáticamente al comenzar un juego nuevo: {STRING} +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausar automáticamente al comenzar una partida nueva: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Si se activa, el juego se pausará automáticamente al comenzar nuevas partidas para permitir revisar el mapa STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Al pausar el juego, permitir: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Permite seleccionar las acciones que se pueden llevar a cabo mientras el juego está en pausa @@ -1446,28 +1446,28 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas las accio STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Todas las acciones que no modifiquen el terreno STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Todas las acciones STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar grupos en la lista de vehículos: {STRING} -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa el uso de listas de vehículos avanzadas para agrupar vehículos +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa el uso de listas avanzadas de vehículos para agrupar vehículos STR_CONFIG_SETTING_LOADING_INDICATORS :Usar indicadores de carga: {STRING} -STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Permite escoger si se deben de mostrar indicadores de carga encima de vehículos que estén en estaciones +STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Permite escoger si se deben de mostrar indicadores de carga encima de los vehículos que están en estaciones STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostrar horario en tics en vez de en días: {STRING} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Muestra los tiempos de viaje en los horarios en tics en lugar de en días STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostrar salidas y llegadas en los horarios: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Muestra tiempos de llegada y salida adelantados en los horarios STR_CONFIG_SETTING_QUICKGOTO :Creación rápida de órdenes para vehículos: {STRING} STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Preselecciona el cursor "Ir a" al abrir la ventana de órdenes -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Raíl por defecto (juego nuevo/cargar juego): {STRING} -STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de ferrocarril a seleccionar al comenzar o cargar un juego. 'Primero disponible' selecciona el tipo de ferrocarril más viejo, 'Último disponible' selecciona el tipo de ferrocarril más nuevo, y 'Más usado' selecciona el tipo que está más en uso en el momento +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Ferrocarril por defecto (partida nueva/cargada): {STRING} +STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de ferrocarril que se seleccionará al comenzar o cargar un juego. 'Primero disponible' selecciona el tipo de ferrocarril más antiguo, 'Último disponible' selecciona el tipo de ferrocarril más moderno, y 'Más usado' selecciona el tipo que se está usando más en ese momento STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primero disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Más usado STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Ver rutas reservadas en las vías: {STRING} -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Da a las vías reservadas un color especial para asistir en problemas con señales de ruta +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Da a las vías reservadas un color diferente para ayudar a resolver problemas causados por trenes que rehúsan entrar en secciones de via STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantener activas las herramientas de construcción tras su uso: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantiene las herramientas de construcción de puentes, túneles, etcétera, abiertas después de su uso STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupar costes en la ventana de finanzas: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Define el diseño de la ventana de finanzas -STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Elimina automáticamente las señales durante la construcción del ferrocarril: {STRING} -STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Elimine automáticamente las señales durante la construcción del carril si las señales están en el camino. Tenga en cuenta que esto puede provocar accidentes de tren. +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Eliminar automáticamente las señales durante la construcción de ferrocarril: {STRING} +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Elimina automáticamente las señales durante la construcción de la via si las señales están en el camino. Ten en cuenta que esto puede provocar choques entre trenes. STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Límite de velocidad para el avance rápido: {STRING} STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Límite de la velocidad de juego cuando se activa el avance rápido. 0 = sin límite (tan rápido como lo permita el ordenador). Los valores inferiores a 100% ralentizan el juego. El límite superior depende de las características del ordenador y pueden variar dependiendo de la partida. STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% Velocidad de juego normal @@ -1494,7 +1494,7 @@ STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Deshabilitar co STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Cuando se activa, solo pueden construirse infraestructuras si hay vehículos disponibles para ellas, evitando un gasto innecesario de tiempo y dinero STR_CONFIG_SETTING_MAX_TRAINS :Número máximo de trenes por empresa: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Número máximo de trenes que una compañía puede tener -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máximo de automóviles por empresa: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máximo de vehículos de carretera por empresa: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Número máximo de vehículos de carretera que una compañía puede tener STR_CONFIG_SETTING_MAX_AIRCRAFT :Número máximo de aeronaves por empresa: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Número máximo de aeronaves que una compañía puede tener @@ -1502,16 +1502,16 @@ STR_CONFIG_SETTING_MAX_SHIPS :Número máximo STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Número máximo de barcos que una compañía puede tener STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactivar trenes para el ordenador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activar esta opción deshabilita la construcción de trenes para las IA +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activa esta opción para deshabilitar la construcción de trenes para las IA STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactivar vehículos de carretera para el ordenador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activar esta opción deshabilita la construcción de vehículos de carretera para las IA +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activa esta opción para deshabilitar la construcción de vehículos de carretera para las IA STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactivar aeroplanos para el ordenador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activar esta opción deshabilita la construcción de aeronaves para las IA STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactivar barcos para el ordenador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activar esta opción deshabilita la construcción de barcos para las IA +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activa esta opción para deshabilitar la construcción de barcos para las IA STR_CONFIG_SETTING_AI_PROFILE :Perfil por defecto: {STRING} -STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Permite decidir el perfil a emplear para IAs aleatorias o para los valores iniciales al añadir una nueva IA o un script de juego +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Elige el perfil a usar para IA aleatorias o para los valores iniciales cuando se añade una nueva IA o un Script de juego STR_CONFIG_SETTING_AI_PROFILE_EASY :Fácil STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Intermedio STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil @@ -1521,7 +1521,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite a los j STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes antes de que los scripts sean suspendidos: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de operaciones de computación que un script puede realizar por turno STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Memoria máxima utilizada por script: {STRING} -STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Qué tanta memoria puede consumir una secuencia de instrucciones (script) antes de que sea finalizada forzosamente. Puede que necesite ser incrementado para mapas grandes. +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Cuánta memoria puede consumir un script antes de que sea finalizado forzosamente. Puede que necesite aumentarse para mapas grandes STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervalo de mantenimiento en porcentajes: {STRING} @@ -1537,10 +1537,10 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Fija el interva STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantenimiento por defecto para barcos: {STRING} STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Fija el intervalo de mantenimiento por defecto para barcos nuevos, que se empleará si no se define un intervalo de forma explícita para ese vehículo STR_CONFIG_SETTING_NOSERVICE :Desactivar mantenimiento cuando las averías están desactivadas: {STRING} -STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Cuando se activa, los vehículos no reciben mantenimiento si no pueden romperse +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Cuando se activa, los vehículos no reciben mantenimiento si no pueden averiarse STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activar límites de velocidad en vagones: {STRING} -STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Si se activa, se tienen en cuenta los límites de velocidad de los vagones a la hora de decidir la velocidad máxima de un tren -STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferrocarriles eléctricos: {STRING} +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Si se activa, se tienen en cuenta los límites de velocidad de los vagones a la hora de establecer la velocidad máxima de un tren +STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactivar ferrocarril eléctricos: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Si se activa, no es necesario electrificar los ferrocarriles para hacer que los trenes eléctricos puedan recorrerlos STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Llegada del primer vehículo a una estación del jugador: {STRING} @@ -1550,19 +1550,19 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostrar una not STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidentes / desastres: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostrar noticias cuando ocurre un accidente o un desastre STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Información de la empresa: {STRING} -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostrar una noticia cuando una nueva compañía es creada, o cuando alguna compañía está en peligro de quiebra +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostrar una noticia cuando se crea una nueva compañía, o cuando alguna compañía está en riesgo de quiebra STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Apertura de industrias: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostrar noticia cuando nuevas industrias abren +STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostrar noticia cuando abren nuevas industrias STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Cierre de industrias: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Mostrar noticias cuando una industria cierra STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Cambios en la economía: {STRING} -STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Mostrar noticias sobre cambios globales a la economía +STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Mostrar noticias sobre cambios globales de la economía STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Cambios de producción en industrias atendidas por la empresa: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostrar una noticia cuando el nivel de producción de una industria, servida por tu compañía, cambia -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Cambios de producción en las industrias servidas por los competidores: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Mostrar una noticia cuando el nivel de producción de una industria, servida por tus competidores, cambia +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostrar una noticia cuando cambia el nivel de producción de una industria atendida por tu empresa +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Cambios de producción en las industrias atendidas por los competidores: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Mostrar una noticia cuando cambia el nivel de producción de una industria atendida por tus competidores STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Cambios de producción de otras industrias: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostrar una noticia cuando el nivel de producción de una industria, no servida por tu compañía o competidores, cambia +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostrar una noticia cuando cambia el nivel de producción de una industria, no atendida por tu empresa ni por competidores STR_CONFIG_SETTING_NEWS_ADVICE :Aviso / información de los vehículos de la empresa: {STRING} STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Mostrar mensajes sobre vehículos que requieren atención STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nuevos vehículos: {STRING} @@ -1570,23 +1570,23 @@ STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Mostrar noticia STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Cambios en la aceptación de carga: {STRING} STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Mostrar mensajes sobre cambios de aceptación de carga en estaciones STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subvenciones: {STRING} -STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostrar noticias sobre eventos relativos a subsidios +STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostrar noticias sobre eventos relativos a subvenciones STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Información general: {STRING} STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Mostrar noticias de eventos generales, tales como la compra de derechos de transporte exclusivos o el pago de reconstrucción de carreteras locales -STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Apagado +STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Ninguna STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resumen STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Completo -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias en color aparecen en: {STRING} -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Año en el cual los periódicos empezarán a imprimirse en color. Antes de ese año solamente usarán una escala de grises +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Las noticias en color aparecen en: {STRING} +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Año en el cual los periódicos empezarán a imprimirse en color. Antes de ese año solamente usarán escala de grises STR_CONFIG_SETTING_STARTING_YEAR :Fecha de inicio: {STRING} STR_CONFIG_SETTING_ENDING_YEAR :Año de clasificación final: {STRING} STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Año en el que finaliza el juego para establecer la clasificación. Al final de este año se guarda la puntuación de las empresas y se muestra la pantalla de las puntuaciones más altas, aunque se puede continuar jugando la partida.{}Si este año es posterior al año de comienzo, la pantalla de puntuaciones más altas no se mostrará nunca. STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nunca STR_CONFIG_SETTING_ECONOMY_TYPE :Tipo de economía: {STRING} -STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :La economía fluida hace que los cambios de producción sean más frecuentes y en pasos más pequeños. La economía congelada detiene los cambios de producción y los cierres de industrias. Esta configuración puede no tener efecto si los tipos de industria los proporciona un NewGRF. +STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :La economía suave provoca que los cambios en la producción sean más frecuentes y en pasos más pequeños. La economía congelada detiene los cambios en la producción y los cierres de industrias. Esta configuración puede no tener efecto si los tipos de industria los proporciona un NewGRF. STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada @@ -1595,15 +1595,15 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Cuando se activ STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edad mínima de una empresa para comerciar con sus acciones: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Edad mínima que tiene que tener una empresa para poder comprar y vender sus acciones. STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje del beneficio total a pagar en transferencias: {STRING} -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de los beneficios dados a los transportes intermedios en sistemas de transferencias, dando un mayor control sobre el beneficio de cada vehículo +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de los beneficios entregados a los transportes intermedios en sistemas de transferencias, dando un mayor control sobre el beneficio de cada vehículo STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Al arrastrar, colocar señales cada: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Fija la distancia a la que se construirán las señales hasta el próximo obstáculo (señal, cruce), si estas son arrastradas +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Fija la distancia a la que se construirán las señales hasta el próximo obstáculo (señal, cruce) si estas son arrastradas STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} casilla{P 0 "" s} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Al arrastrar, mantener distancia fija entre señales: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Fija el comportamiento de la construcción de señales cuando se usa Ctrl+Arrastrar. Si se deshabilita, se colocan señales cerca de túneles y puentes para evitar largos trozos de vía sin señales. Si se activa, se colocan señales cada N casillas, haciendo que el alineamiento de vías paralelas sea más sencillo +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Fija el comportamiento de construcción de señales cuando se usa Ctrl+arrastrar. Si se deshabilita, se colocan señales cerca de túneles y puentes para evitar largos trozos de vía sin señales. Si se activa, se colocan señales cada N casillas, haciendo que el alineamiento de vías paralelas sea más sencillo STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Señales mecánicas por defecto antes de: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Fija el año a partir del cual se usarán señales eléctricas. Antes de ese año se usarán señales mecánicas (tienen la misma funcionalidad pero distinto aspecto) -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activar la GUI de señales: {STRING} +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activar la interfaz de señales: {STRING} STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Muestra una ventana para escoger los tipos de señales a construir, en lugar de no usar ventana y únicamente permitir el cambio de tipo de señal por rotación mediante Ctrl+Clic sobre las señales ya construidas STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipo de señal a construir por defecto: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo de señal a usar por defecto @@ -1617,11 +1617,11 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Solo señales d STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Todas STR_CONFIG_SETTING_TOWN_LAYOUT :Patrón de carreteras para los nuevos municipios: {STRING} -STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Patrón de carreteras a usar para las redes de transporte de los municipios +STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Patrón de carreteras a usar para los municipios STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Original STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Mejorado -STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :rejilla 2x2 -STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :rejilla 3x3 +STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :Cuadrícula 2x2 +STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :Cuadrícula 3x3 STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatorio STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Permitir que los municipios construyan carreteras: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permite a los municipios construir carreteras para crecer. Si se deshabilita, las autoridades municipales no podrán construir ninguna carretera @@ -1634,17 +1634,17 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Permite a los j STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Prohibido STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Permitido STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Permitido, patrón de carreteras personalizado -STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Generación de cargamento en municipios: {STRING} -STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Qué tanta carga es producida por las casas del municipio, en relación a la población general del municipio.{}Crecimiento cuadrático: Un municipio de doble tamaño genera el cuádruple de pasajeros.{}Crecimiento lineal: Un municipio de doble tamaño genera el doble de pasajeros. +STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Generación de carga en municipios: {STRING} +STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Cuanta carga es producida por las casas del municipio, en relación a la población total del municipio.{}Crecimiento cuadrático: Un municipio de doble tamaño genera el cuádruple de pasajeros.{}Crecimiento lineal: Un municipio de doble tamaño genera el doble de pasajeros. STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Cuadrático (original) STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Lineal STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Crecimiento de árboles durante el juego: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla la aparición aleatoria de árboles durante la partida. Esto puede afectar a industrias que dependen del crecimiento de árboles, como los aserraderos STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Crecer, pero no extienda {RED}(rompe al aserradero) -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Crece pero solo se extiende en las selvas tropicales -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Crece y difunde por todas partes -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :No crezcas, no te extiendas {RED}(rompe el aserradero) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Crecer, pero sólo extender en selvas tropicales +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Crecer y extender en cualquier parte +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :No crecer y no extender {RED}(inutiliza los aserraderos) STR_CONFIG_SETTING_TOOLBAR_POS :Posición de la barra de herramientas principal: {STRING} STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Posicionamiento horizontal de la barra de herramientas principal en la parte superior de la pantalla @@ -1659,9 +1659,9 @@ STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Número máximo STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :deshabilitado STR_CONFIG_SETTING_ZOOM_MIN :Máximo acercamiento: {STRING} -STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivel máximo de acercamiento para las ventanas de vista y la vista principal. Cuidado, aumentar el nivel de acercamiento incrementa el consumo de memoria del juego +STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivel máximo de acercamiento para las ventanas de vista y la vista principal. Los niveles altos de acercamiento incrementan el consumo de memoria del juego STR_CONFIG_SETTING_ZOOM_MAX :Máximo alejamiento: {STRING} -STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Nivel máximo de alejamiento para las ventanas de vista y la vista principal. Cuidado, niveles altos de alejamiento pueden ralentizar el juego +STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Nivel máximo de alejamiento para las ventanas de vista y la vista principal. Los niveles altos de alejamiento pueden ralentizar el juego STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal @@ -1683,62 +1683,62 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador i STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamaño medio de las ciudades en relación a los pueblos normales al comienzo de la partida STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar el gráfico de distribución cada {STRING}{NBSP}día{P 0:2 "" s} -STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos del gráfico de distribución consecutivos. Esta opción se refiere a los cálculos para cada uno de los componentes del gráfico, por lo cual fijar un valor no quiere decir que el gráfico completo se actualizará tras ese número de días. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular el gráfico de distribución. Cuanto mayor sea, más tardará el gráfico de distribución en adaptarse a nuevas rutas. +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos consecutivod del gráfico de distribución. Esta opción se refiere a los cálculos para cada uno de los componentes del gráfico, por lo cual fijar un valor no quiere decir que el gráfico completo se actualizará tras ese número de días. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular el gráfico de distribución. Cuanto mayor sea, más tardará el gráfico de distribución en adaptarse a nuevas rutas. STR_CONFIG_SETTING_LINKGRAPH_TIME :Usar {STRING}{NBSP}día{P 0:2 "" s} para el cálculo del gráfico de distribución STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tiempo a emplear en el cálculo de cada uno de los componentes del gráfico de distribución. Cuanto menor sea este valor, más probable es que se produzca ralentización en el juego. Cuanto mayor sea, más tiempo tardará la distribución en actualizarse cuando se producen cambios en las rutas. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimétrico STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simétrico STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasajeros: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :En una distribución simétrica, se envía la misma cantidad de pasajeros de la estación A a la B que de B a A. En una distribución asimétrica se pueden enviar cantidades arbitrarias de pasajeros en ambas direcciones. Manual significa que no se realiza una distribución automática para los pasajeros +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :En una distribución "simétrica", se envía la misma cantidad de pasajeros de la estación A a la B que de la B a la A. En una distribución "asimétrica" se pueden enviar cantidades arbitrarias de pasajeros en ambas direcciones. "Manual" significa que no se realiza una distribución automática para los pasajeros STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modo de distribución para el correo: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :En una distribución simétrica, se envía la misma cantidad de carga de la estación A a la B que de B a A. En una distribución asimétrica se pueden enviar cantidades arbitrarias de carga en ambas direcciones. Manual significa que no se realiza una distribución automática para el correo +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :En una distribución "simétrica", se envía la misma cantidad de carga de la estación A a la B que de la B a la A. En una distribución "asimétrica" se pueden enviar cantidades arbitrarias de carga en ambas direcciones. "Manual" significa que no se realiza una distribución automática para el correo STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modo de distribución para la clase de carga BLINDADA: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :La clase de carga BLINDADA contiene objetos de valor en el clima templado, diamantes en el clima subtropical y oro en el clima subártico. Los NewGRFs pueden modificar esto. En una distribución "simétrica", se envía la misma cantidad de carga de la estación A a la B que de B a A. En una distribución "asimétrica" se pueden enviar cantidades arbitrarias de carga en ambas direcciones. "Manual" significa que no se realiza una distribución automática para esta carga. Se recomienda fijar esta distribución en "asimétrica" o en "manual" al jugar en subártico, y es que los bancos no enviarán oro de vuelta a sus minas de procedencia. En los climas templado y subtropical es factible escoger "simétrica" ya que los bancos pueden enviar de vuelta objetos de valor al banco origen de los mismos. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :La clase de carga BLINDADA contiene objetos de valor en el clima templado, diamantes en el clima subtropical y oro en el clima subártico. Los NewGRFs pueden modificar esto. En una distribución "simétrica", se envía la misma cantidad de carga de la estación A a la B que de la B a la A. En una distribución "asimétrica" se pueden enviar cantidades arbitrarias de carga en ambas direcciones. "Manual" significa que no se realiza una distribución automática para esta carga. Se recomienda fijar esta distribución en "asimétrica" o en "manual" al jugar en clima subártico, ya que así los bancos no enviarán oro de vuelta a sus minas de procedencia. En los climas templado y subtropical es factible escoger "simétrica" ya que los bancos pueden enviar de vuelta objetos de valor al banco origen de los mismos. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modo de distribución para otras clases de carga: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"Asimétrico" significa que se pueden mover cantidades arbitrarias de carga en ambas direcciones. "Manual" significa que no habrá distribución automática para estos tipos de carga. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisión de la distribución: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Este valor determina el tiempo de CPU empleado en calcular el gráfico de distribución. Si es demasiado elevado puede producir ralentización en el juego. Si es demasiado bajo la distribución puede ser poco precisa, causando que ocasionalmente se produzcan errores en los lugares a los que va la carga. +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Este valor determina el tiempo de CPU empleado en calcular el gráfico de distribución. Si es demasiado elevado puede producir ralentización en el juego. Si es demasiado bajo la distribución puede ser poco precisa, causando que ocasionalmente se produzcan errores en los lugares a los que se destina la carga. STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecto de la distancia en la demanda: {STRING} -STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Si se fija a un valor superior a 0, la distancia entre la estación origen A de cierta carga y un posible destino B afectará a la cantidad de carga que se enviará de A a B. Cuanto más lejos esté B de A, menos carga se enviará. Cuanto mayor sea el valor de esta opción, menos carga se enviará a estaciones distantes en favor de estaciones cercanas +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Si se fija a un valor superior a 0, la distancia entre la estación origen A de cierta carga y un posible destino B afectará a la cantidad de carga que se enviará de A a B. Cuanto más lejos esté B de A, menos carga se enviará. Cuanto mayor sea el valor de este ajuste, menos carga se enviará a estaciones distantes en favor de estaciones cercanas STR_CONFIG_SETTING_DEMAND_SIZE :Cantidad de carga a devolver en modo simétrico: {STRING} -STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Fijar esta opción a menos de 100% hace que la distribución simétrica de carga se comporte de una forma más asimétrica. Se enviará menos carga de vuelta a la fuerza si una cantidad determinada es enviada a una estación. Si se fija a 0% la distribución simétrica se comporta como una distribución asimétrica +STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Fijar esta opción a menos de 100% provoca que la distribución "simétrica" de carga se comporte como una distribucion "asimétrica". Si una cantidad determinada es enviada a una estación, se forzará a enviar menos carga de vuelta. Si se fija a 0%, la distribución "simétrica" se comporta como una distribución "asimétrica". STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Saturación de caminos cortos antes de usar aquellos de mayor capacidad: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frecuentemente hay múltiples caminos posibles entre dos estaciones determinadas. En primer lugar se intentará saturar el camino más corto, para posteriormente saturar el segundo más corto y así sucesivamente. La saturación está determinada por una estimación de capacidad y uso planificado. Una vez que se hayan saturado todos los caminos, si todavía hay demanda, se sobrecargarán los caminos empezando por aquellos de mayor capacidad. La mayor parte de las veces, el algoritmo no estimará la capacidad de forma precisa. Esta opción permite especificar el porcentaje de saturación que debe de tener una línea en la primera parte del algoritmo antes de pasar a la siguiente línea. Fijarlo a menos de 100% permite evitar estaciones sobrecargadas en el caso de que se sobreestimen las capacidades -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidad: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestra una velocidad en la interfaz de usuario, se emplean las unidades seleccionadas +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidad de velocidad: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestra una velocidad en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unidades de juego (casillas/día) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unidad de juego (casillas/día) -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unidades de potencia de vehículos: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Cada vez que se muestra la potencia de un vehículo en la interfaz de usuario, se emplean las unidades seleccionadas +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unidad de potencia de vehículos: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Cada vez que se muestre la potencia de un vehículo en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperial (cv) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Métrico (cv) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW) -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Unidades de peso: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Cada vez que se muestre un peso en la interfaz de usuario, se mostrará en su unidad preestablecida +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Unidad de peso: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Cada vez que se muestre un peso en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperial (t/tonelada) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Métrico (t/tonelada) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg) -STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Unidades de volumen: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :Cada vez que se muestre un volumen en la interfaz de usuario, se mostrará en su unidad preestablecida +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Unidad de volumen: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :Cada vez que se muestre un volumen en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperial (gal) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Métrico (l) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidades de esfuerzo de tracción: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Cada vez que se muestre un esfuerzo de tracción (también conocido como fuerza de tracción) en la interfaz de usuario, se mostrará en su unidad preestablecida +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidad de esfuerzo de tracción: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Cada vez que se muestre un esfuerzo de tracción (también llamado fuerza de tracción) en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Métrico (kp) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Unidades de altura: {STRING} -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Cada vez que se muestre una altura en la interfaz de usuario, se mostrará en su unidad preestablecida +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Unidad de altura: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Cada vez que se muestre una altura en la interfaz de usuario, se empleará la unidad seleccionada STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (pies) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) @@ -1755,7 +1755,7 @@ STR_CONFIG_SETTING_COMPANY :{ORANGE}Empresa STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidad STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Leyes físicas -STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Encaminamiento +STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Enrutamiento STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitaciones STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Accidentes STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generación de mundo @@ -1765,17 +1765,17 @@ STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Municip STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución de carga STR_CONFIG_SETTING_AI :{ORANGE}Competidores -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadores de la CPU (IA) +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadores del ordenador (IA) STR_CONFIG_SETTING_PATHFINDER_NPF :NPF STR_CONFIG_SETTING_PATHFINDER_YAPF_RECOMMENDED :YAPF {BLUE}(Recomendado) -STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Encaminador para trenes: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Encaminador a emplear para trenes -STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Encaminador para vehículos de carretera: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Encaminador a emplear para vehículos de carretera -STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Encaminador para barcos: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Encaminador a emplear para barcos +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Enrutador para trenes: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Enrutador a emplear en trenes +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Enrutador para vehículos de carretera: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Enrutador a emplear en vehículos de carretera +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Enrutador para barcos: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Enrutador a emplear en barcos STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :Cambio de sentido automático en señales: {STRING} STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT :Permite a los trenes darse la vuelta ante una señal, si han esperado durante un tiempo lo suficientemente largo @@ -1783,7 +1783,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Cambiar # Config errors STR_CONFIG_ERROR :{WHITE}Error en el fichero de configuración... -STR_CONFIG_ERROR_ARRAY :{WHITE}... error en vector '{STRING}' +STR_CONFIG_ERROR_ARRAY :{WHITE}... error en el vector '{STRING}' STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... valor inválido '{STRING}' para '{STRING}' STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... caracteres en blanco al final de la opción '{STRING}' STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... ignorando NewGRF '{STRING}': GRF ID duplicado con '{STRING}' @@ -1808,8 +1808,8 @@ STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no s # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} -STR_INTRO_NEW_GAME :{BLACK}Nuevo Juego -STR_INTRO_LOAD_GAME :{BLACK}Cargar Juego +STR_INTRO_NEW_GAME :{BLACK}Nueva Partida +STR_INTRO_LOAD_GAME :{BLACK}Cargar Partida STR_INTRO_PLAY_SCENARIO :{BLACK}Jugar Escenario STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Jugar Mapa de alturas STR_INTRO_SCENARIO_EDITOR :{BLACK}Editor de Escenarios @@ -1854,19 +1854,19 @@ STR_QUIT_NO :{BLACK}No # Abandon game STR_ABANDON_GAME_CAPTION :{WHITE}Abandonar Juego -STR_ABANDON_GAME_QUERY :{YELLOW}¿Está seguro de que desea abandonar este juego? -STR_ABANDON_SCENARIO_QUERY :{YELLOW}¿Está seguro de que desea salir de este escenario? +STR_ABANDON_GAME_QUERY :{YELLOW}¿Estás seguro de que deseas abandonar esta partida? +STR_ABANDON_SCENARIO_QUERY :{YELLOW}¿Estás seguro de que deseas salir de este escenario? # Cheat window STR_CHEATS :{WHITE}Trucos STR_CHEATS_TOOLTIP :{BLACK}Las casillas indican si ha usado este truco antes -STR_CHEATS_NOTE :{BLACK}Nota: el uso de estos ajustes quedará registrado en la partida +STR_CHEATS_NOTE :{BLACK}Nota: el uso de estas opciones quedará registrado en la partida STR_CHEAT_MONEY :{LTBLUE}Incrementar dinero en {CURRENCY_LONG} -STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugando como la empresa: {ORANGE}{COMMA} +STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugar como la empresa: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldózer mágico (elimina industrias, objetos inamovibles): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Los túneles pueden cruzarse: {ORANGE}{STRING} -STR_CHEAT_NO_JETCRASH :{LTBLUE}Jets se estrellan menos en aeropuertos pequeños: {ORANGE}{STRING} -STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Edita la altura máxima del mapa: {ORANGE}{NUM} +STR_CHEAT_NO_JETCRASH :{LTBLUE}Los aviones a reacción no se estrellarán (tanto) en los aeropuertos pequeños: {ORANGE}{STRING} +STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Editar la altura máxima del mapa: {ORANGE}{NUM} STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Edita la altura máxima de las montañas en el mapa STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Terreno templado STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Terreno subártico @@ -1874,7 +1874,7 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Terreno subtrop STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Terreno juguetelandia STR_CHEAT_CHANGE_DATE :{LTBLUE}Cambiar fecha: {ORANGE} {DATE_SHORT} STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar año actual -STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir modificación de los valores de producción: {ORANGE}{STRING} +STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir modificar los valores de producción: {ORANGE}{STRING} # Livery window STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Esquema de Color @@ -1914,7 +1914,7 @@ STR_LIVERY_FREIGHT_TRAM :Tranvía de Car # Face selection window STR_FACE_CAPTION :{WHITE}Selección de cara -STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancelar selección de nueva cara +STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancela la selección de cara nueva STR_FACE_OK_TOOLTIP :{BLACK}Aceptar selección de nueva cara STR_FACE_RANDOM :{BLACK}Aleatorio @@ -1949,9 +1949,9 @@ STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Activar STR_FACE_HAIR :Pelo: STR_FACE_HAIR_TOOLTIP :{BLACK}Cambiar pelo STR_FACE_EYEBROWS :Cejas: -STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Cambiar cejas +STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Cambia las cejas STR_FACE_EYECOLOUR :Color ojos: -STR_FACE_EYECOLOUR_TOOLTIP :{BLACK}Cambiar color de ojos +STR_FACE_EYECOLOUR_TOOLTIP :{BLACK}Cambia el color de ojos STR_FACE_GLASSES :Gafas: STR_FACE_GLASSES_TOOLTIP :{BLACK}Activar gafas STR_FACE_GLASSES_TOOLTIP_2 :{BLACK}Cambiar gafas @@ -1961,11 +1961,11 @@ STR_FACE_LIPS :Labios: STR_FACE_MOUSTACHE :Bigote: STR_FACE_LIPS_MOUSTACHE_TOOLTIP :{BLACK}Cambiar labios o bigote STR_FACE_CHIN :Barbilla: -STR_FACE_CHIN_TOOLTIP :{BLACK}Cambiar barbilla +STR_FACE_CHIN_TOOLTIP :{BLACK}Cambia la barbilla STR_FACE_JACKET :Chaqueta: STR_FACE_JACKET_TOOLTIP :{BLACK}Cambiar chaqueta STR_FACE_COLLAR :Cuello: -STR_FACE_COLLAR_TOOLTIP :{BLACK}Cambiar cuello +STR_FACE_COLLAR_TOOLTIP :{BLACK}Cambia el cuello STR_FACE_TIE :Corbata: STR_FACE_EARRING :Pendientes: STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Cambiar corbata o pendientes @@ -2166,8 +2166,8 @@ STR_COMPANY_PASSWORD_MAKE_DEFAULT_TOOLTIP :{BLACK}Usa la c STR_COMPANY_VIEW_JOIN :{BLACK}Unirse STR_COMPANY_VIEW_JOIN_TOOLTIP :{BLACK}Unirse y jugar como esta empresa STR_COMPANY_VIEW_PASSWORD :{BLACK}Contraseña -STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Protege por contraseña tu empresa para prevenir que usuarios no autorizados se unan a ella -STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Configurar contraseña de empresa +STR_COMPANY_VIEW_PASSWORD_TOOLTIP :{BLACK}Protege tu empresa con una contraseña para evitar que usuarios no autorizados se unan a ella +STR_COMPANY_VIEW_SET_PASSWORD :{BLACK}Establecer contraseña de empresa # Network chat STR_NETWORK_CHAT_SEND :{BLACK}Enviar @@ -2268,22 +2268,22 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Tipo STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Tipo de contenido STR_CONTENT_NAME_CAPTION :{BLACK}Nombre STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Nombre del contenido -STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Pincha en una línea para ver los detalles{}Pincha en los cajetines para seleccionar las descargas +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Clic en una línea para ver los detalles{}Clic en los cajetines para seleccionar las descargas STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Seleccionar todas STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marca todo el contenido para descarga -STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Sel. actualizaciones -STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marca para descargar todo el contenido existente que ha sido actualizado +STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Seleccionar actualizaciones +STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marca para descargar todo el contenido que es una actualizacion del contenido existente STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Desmarcar todas STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marca todo el contenido para no ser descargado STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Buscar en páginas externas -STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Buscar contenido no disponible en el servicio de contenido de OpenTTD en páginas externas no asociadas con OpenTTD +STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Busca contenido no disponible en el servicio de contenido de OpenTTD en páginas externas no asociadas con OpenTTD STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}¡Estás abandonando OpenTTD! -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Los términos y condiciones para descargar contenido de páginas externas varían.{}Será necesario referirse a dichas páginas par obtener instrucciones de cómo instalar su contenido en OpenTTD.{}¿Desea continuar? +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Los términos y condiciones para descargar contenido de páginas externas varían.{}Será necesario consultar dichas páginas para obtener instrucciones de cómo instalar el contenido en OpenTTD.{}¿Desea continuar? STR_CONTENT_FILTER_TITLE :{BLACK}Etiqueta/nombre del filtro STR_CONTENT_OPEN_URL :{BLACK}Visitar web STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Visitar la página web de este contenido STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Descargar -STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Comenzar a descargar el contenido seleccionado +STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Comienza a descargar el contenido seleccionado STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}Tamaño total de la descarga: {WHITE}{BYTES} STR_CONTENT_DETAIL_TITLE :{SILVER}INFORMACIÓN DEL CONTENIDO STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}No has seleccionado esto para ser descargado @@ -2362,8 +2362,8 @@ STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLA # Base for station construction window(s) STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Mostrar área de recogida -STR_STATION_BUILD_COVERAGE_OFF :{BLACK}Apagado -STR_STATION_BUILD_COVERAGE_ON :{BLACK}Encendido +STR_STATION_BUILD_COVERAGE_OFF :{BLACK}No +STR_STATION_BUILD_COVERAGE_ON :{BLACK}Sí STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}No mostrar área de recogida del lugar propuesto STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}Mostrar área de recogida del lugar propuesto STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Acepta: {GOLD}{CARGO_LIST} @@ -2403,7 +2403,7 @@ STR_RAIL_NAME_MAGLEV :Maglev # Rail depot construction window STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Orientación del depósito -STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Seleccione orientación del depósito de trenes +STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}Selecciona la orientación del depósito de trenes # Rail waypoint construction window STR_WAYPOINT_CAPTION :{WHITE}Punto de ruta @@ -2440,7 +2440,7 @@ STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Señal d STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Señal combo (eléctrica){}La señal combo actúa como señal de entrada y salida a la vez. Esto permite construir grandes "árboles" de señales condicionales STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Señal de ruta (eléctrica){}Una señal de ruta permite a más de un tren entrar a un bloque de señales a la vez, si el tren puede reservar una ruta hasta un lugar seguro. Pueden ser rebasadas desde atrás STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de sentido único (eléctrica){}Una señal de ruta permite a más de un tren entrar a un bloque de señales a la vez, si el tren puede reservar una ruta hasta un lugar seguro. No pueden ser rebasadas desde atrás -STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Convertir señal{}Cuando es seleccionado, pulsar sobre una señal existente la convierte en el tipo y variante indicados. Pulsar Ctrl+Clic permite cambiar de variante. Mayús+Clic muestra una estimación del precio de conversión +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Convierte la señal{}Cuando es seleccionado, pulsa sobre una señal existente para convertirla en el tipo y variante indicados. Pulsa Ctrl+clic para cambiar de variante. Mayús+clic muestra una estimación del precio de conversión STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Distancia de arrastre de señales STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Reducir la distancia de arrastre de señales STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Incrementar la distancia de arrastre de señales @@ -2489,9 +2489,9 @@ STR_ROAD_NAME_TRAM :Tranvía # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientación del depósito -STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elegir orientación del depósito de carretera +STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elige la orientación del depósito de carretera STR_BUILD_DEPOT_TRAM_ORIENTATION_CAPTION :{WHITE}Orientación del depósito -STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}Seleccione orientación del depósito de tranvías +STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}Selecciona la orientación del depósito de tranvías # Road vehicle station construction window STR_STATION_BUILD_BUS_ORIENTATION :{WHITE}Orientación Estación de Autobús @@ -2599,7 +2599,7 @@ STR_FOUND_TOWN_CAPTION :{WHITE}Creació STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}Nuevo Municipio STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}Fundar nuevo municipio. Mayús+Clic muestra una estimación del precio STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}Municipio al Azar -STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Fundar municipio en lugar aleatorio +STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Funda un municipio en un lugar aleatorio STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Varios municipios al azar STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Cubre el mapa con municipios colocados al azar @@ -2607,7 +2607,7 @@ STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Nombre STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Introducir nombre de municipio STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Clic para introducir nombre del municipio STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Nombre aleatorio -STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Generar nuevo nombre +STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Genera un nuevo nombre aleatoriamente STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Tamaño del municipio: STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Pequeña @@ -2622,8 +2622,8 @@ STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Patrón STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Seleccionar patrón de carreteras para este municipio STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Original STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Mejorado -STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}Rejilla de 2x2 -STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Rejilla 3x3 +STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}Cuadrícula 2x2 +STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Cuadrícula 3x3 STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatorio # Fund new industry window @@ -2632,32 +2632,32 @@ STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Seleccio STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Crear industrias al azar STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cubre el mapa con industrias colocadas al azar STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION :{WHITE}Crear industrias al azar -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}¿Seguro que desea crear industrias al azar? +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de crear varias industrias al azar? STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Coste: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Prospección STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Construir STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Fundar STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Eliminar todas las industrias -STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Eliminar todas las industrias que haya en el mapa +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Elimina todas las industrias que haya en el mapa STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Eliminar todas las industrias -STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}¿Seguro que desea eliminar todas las industrias? +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de eliminar todas las industrias? # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena de industrias para la industria {STRING} STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Cadena de industrias para la carga {STRING} -STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Industrias suministradoras +STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Industrias proveedoras STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Industrias clientes STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Casas STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Clic en la industria para ver sus suministradores y clientes STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Clic en la carga para mostrar sus suministradores y clientes STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Mostrar cadena -STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Mostrar industrias que suministran o aceptan la carga +STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Muestra industrias que suministran o aceptan la carga STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Enlazar al mapa -STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Seleccionar las industrias mostradas en el mapa +STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Selecciona las industrias mostradas en el mapa STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}Seleccionar carga -STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Permite seleccionar el tipo de carga a mostrar +STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Selecciona el tipo de carga a mostrar STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Seleccionar industria -STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Permite seleccionar la industria a mostrar +STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Selecciona la industria a mostrar # Land area window STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Información del terreno @@ -2793,8 +2793,8 @@ STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Tasa de STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Número de tics de juego simulados por segundo. STR_FRAMERATE_RATE_BLITTER :{BLACK}FPS de gráficos: {STRING} STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Número de fotogramas renderizados por segundo. -STR_FRAMERATE_SPEED_FACTOR :{BLACK}Factor de velocidad de juego actual: {DECIMAL}x -STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Rapidez actual del juego comparada con la esperada durante una simulación normal. +STR_FRAMERATE_SPEED_FACTOR :{BLACK}Factor actual de velocidad de juego: {DECIMAL}x +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Velocidad actual del juego, comparada con la velocidad esperada durante una simulación a ritmo normal. STR_FRAMERATE_CURRENT :{WHITE}Actual STR_FRAMERATE_AVERAGE :{WHITE}Medio STR_FRAMERATE_MEMORYUSE :{WHITE}Memoria @@ -2812,7 +2812,7 @@ STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COM STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s ############ Leave those lines in this order!! STR_FRAMERATE_GAMELOOP :{BLACK}Bucles de juego totales: -STR_FRAMERATE_GL_ECONOMY :{BLACK} Manejo de cargamento +STR_FRAMERATE_GL_ECONOMY :{BLACK} Manejo de carga: STR_FRAMERATE_GL_TRAINS :{BLACK} Tics de trenes: STR_FRAMERATE_GL_ROADVEHS :{BLACK} Tics de vehículos de carretera: STR_FRAMERATE_GL_SHIPS :{BLACK} Tics de barcos: @@ -2934,7 +2934,7 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambia l STR_GENERATION_WORLD :{WHITE}Generando Mundo... STR_GENERATION_ABORT :{BLACK}Abortar STR_GENERATION_ABORT_CAPTION :{WHITE}Abortar Generación del Mundo -STR_GENERATION_ABORT_MESSAGE :{YELLOW}¿Desea realmente abortar la generación? +STR_GENERATION_ABORT_MESSAGE :{YELLOW}¿Deseas realmente abortar la generación? STR_GENERATION_PROGRESS :{WHITE}{NUM}% completado STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} STR_GENERATION_WORLD_GENERATION :{BLACK}Generación de mundo @@ -3102,7 +3102,7 @@ STR_NEWGRF_BROKEN :{WHITE}Es proba STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Ha cambiado el estado 'vagón motorizado' para '{1:ENGINE}' cuando no estaba dentro de un depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambiado la longitud del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Ha cambiado la capacidad del vehículo para '{1:ENGINE}' fuera de un depósito o mientras no se estaba remodelando -STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Esto puede ser debido a problemas con los NewGRF. El juego puede desincronizarse o, incluso, fallar por completo +STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Esto puede deberse a problemas con los NewGRF. El juego puede desincronizarse o fallar por completo STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de carga/reforma para '{1:ENGINE}' difiere de la de lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automático no haga la reforma correcta @@ -3132,12 +3132,12 @@ STR_SIGN_LIST_MATCH_CASE :{BLACK}Mayúscu STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Activa/desactiva la comprobación de mayúsculas y minúsculas al filtrar la lista de carteles # Sign window -STR_EDIT_SIGN_CAPTION :{WHITE}Editar texto del cartel +STR_EDIT_SIGN_CAPTION :{WHITE}Editar texto del letrero STR_EDIT_SIGN_LOCATION_TOOLTIP :{BLACK}Centrar la vista principal en el cartel. Ctrl+Clic abre un nuevo punto de vista en dicha posición -STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Ir al siguiente cartel -STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Ir al anterior cartel +STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Ir al letrero siguiente +STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Ir al letrero anterior -STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Introduce un nombre para el cartel +STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Introduce un nombre para el letrrero # Town directory window STR_TOWN_DIRECTORY_CAPTION :{WHITE}Municipios @@ -3191,7 +3191,7 @@ STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Gran campaña p STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Pagar la reconstrucción de las carreteras locales STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Poner una estatua al dueño de la empresa STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la construcción de nuevos edificios -STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar la exclusiva de los servicios de transporte +STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar derechos de transporte exclusivos STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio pequeño alrededor del centro del municipio.{}Coste: {CURRENCY_LONG} @@ -3234,7 +3234,7 @@ STR_GOAL_QUESTION_BUTTON_IGNORE :Ignorar STR_GOAL_QUESTION_BUTTON_RETRY :Reintentar STR_GOAL_QUESTION_BUTTON_PREVIOUS :Anterior STR_GOAL_QUESTION_BUTTON_NEXT :Siguiente -STR_GOAL_QUESTION_BUTTON_STOP :Parar +STR_GOAL_QUESTION_BUTTON_STOP :Detener STR_GOAL_QUESTION_BUTTON_START :Comenzar STR_GOAL_QUESTION_BUTTON_GO :Ir STR_GOAL_QUESTION_BUTTON_CONTINUE :Continuar @@ -3288,7 +3288,7 @@ STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Acepta: {WHITE}{CARGO_LIST} STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene derechos de transporte exclusivos en este municipio. -STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró derechos de transporte exclusivo en este municipio. +STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró derechos de transporte exclusivos en este municipio. STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Calificación STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Ver calificación de la estación @@ -3346,7 +3346,7 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Prevenir STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en posición del punto de ruta. Ctrl+Clic abre un punto de vista en dicha posición STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Cambiar nombre del punto de ruta -STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrar vista en posición de la boya. Ctrl+Clic abre un punto de vista en dicha posición +STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centra la vista en posición de la boya. Ctrl+clic abre un punto de vista en dicha posición STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Cambiar nombre de boya STR_EDIT_WAYPOINT_NAME :{WHITE}Editar nombre del punto de ruta @@ -3385,7 +3385,7 @@ STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infraest STR_COMPANY_VIEW_CAPTION :{WHITE}{COMPANY} {BLACK}{COMPANY_NUM} STR_COMPANY_VIEW_PRESIDENT_MANAGER_TITLE :{WHITE}{PRESIDENT_NAME}{}{GOLD}(Presidente) -STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Inaugurado: {WHITE}{NUM} +STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Inaugurada en: {WHITE}{NUM} STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Esquema de Color: STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehículos: STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} tren{P "" es} @@ -3396,32 +3396,32 @@ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Ninguno STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Valor de la empresa: {WHITE}{CURRENCY_LONG} STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% propiedad de {COMPANY}) STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Infraestructura: -STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} trozo{P "" s} de ferrocarril -STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} trozo{P "" s} de carretera +STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} secci{P ón ones} de ferrocarril +STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} secci{P ón ones} de carretera STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} casilla{P "" s} de agua STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} casilla{P "" s} de estación STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} aeropuerto{P "" s} STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Ninguna STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Construir Sede -STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir la sede de la empresa +STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construye la sede de la empresa STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Ver Sede -STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Ver sede de la empresa +STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Muestra la sede de la empresa STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Reubicar Sede STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Reubica la sede de la empresa a cualquier otro lugar, con el coste del 1% del valor total de la empresa. Mayús+Clic muestra una estimación del precio sin mover la sede STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Detalles STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Ver informe detallado de infraestructura STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Dar dinero -STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Dar dinero a esta empresa +STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Da dinero a esta empresa STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nueva Cara -STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Selecciona nueva cara para el presidente +STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Selecciona una nueva cara para el presidente STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Esquema de Color -STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Cambiar los colores de la empresa +STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Cambia los colores de la empresa STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Nombre Empresa -STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambiar el nombre de la empresa +STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Cambia el nombre de la empresa STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}Nombre Presidente -STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambiar el nombre del presidente +STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}Cambia el nombre del presidente STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}Comprar un 25% de sus acciones STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}Vender 25% de acciones @@ -3430,16 +3430,16 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 2 STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nombre Empresa STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nombre del Presidente -STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Entrar el cantidad de dinero que quieres dar +STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Introduce la cantidad de dinero que quieres dar STR_BUY_COMPANY_MESSAGE :{WHITE}Estamos buscando una empresa de transportes para adquirir la nuestra{}{}¿Desea comprar {COMPANY} por {CURRENCY_LONG}? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraestructura de {COMPANY} -STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Trozos de ferrocarril: +STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Secciones de ferrocarril: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Señales -STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Trozos de carretera: -STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Piezas de tranvía: +STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Secciones de carretera: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Secciones de tranvía: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Casillas de agua: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canales STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estaciones: @@ -3456,7 +3456,7 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD1 :{ORANGE}{INDUST STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUSTRY} {STRING}, {STRING} STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} y {NUM} más... -STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nombre de industrias - Clic sobre un nombre para centrar la vista principal en la industria. Ctrl+Clic abre un punto de vista en dicha posición +STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nombre de industrias - Pulsa sobre un nombre para centrar la vista principal en la industria. Ctrl+clic abre un punto de vista en dicha posición STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Carga aceptada: {SILVER}{STRING} STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Carga producida: {SILVER}{STRING} STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Todos los tipos de carga @@ -3478,7 +3478,7 @@ STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} esperando{STRING} -STR_CONFIG_GAME_PRODUCTION :{WHITE}Cambiar producción (múltiplo de 8, máximo 2040) +STR_CONFIG_GAME_PRODUCTION :{WHITE}Cambiar producción (múltiplos de 8, máximo 2040) STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Cambiar nivel de producción (porcentaje, hasta un máximo de 800%) # Vehicle lists @@ -3530,13 +3530,13 @@ STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COM STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos - Clic en un grupo para ver la lista de sus vehículos. Es posible arrastrar grupos para modificar su jerarquía. STR_GROUP_CREATE_TOOLTIP :{BLACK}Clic para crear un grupo -STR_GROUP_DELETE_TOOLTIP :{BLACK}Borrar el grupo seleccionado -STR_GROUP_RENAME_TOOLTIP :{BLACK}Renombrar el grupo seleccionado -STR_GROUP_LIVERY_TOOLTIP :{BLACK}Cambiar el color del grupo seleccionado +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_QUERY_GROUP_DELETE_CAPTION :{WHITE}Borrar Grupo -STR_GROUP_DELETE_QUERY_TEXT :{WHITE}¿Está seguro de querer borrar este grupo y todos sus subgrupos? +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}¿Estás seguro de borrar este grupo y todos sus subgrupos? STR_GROUP_ADD_SHARED_VEHICLE :Añadir vehículos con órdenes compartidas STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos los vehículos @@ -3591,10 +3591,10 @@ STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máx STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de ferrocarril. Clic en el vehículo para más información. Ctrl+Clic para mostrar/ocultar el tipo del vehículo -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Clic en el vehículo para más información. Ctrl+Clic para mostrar/ocultar el tipo del vehículo -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selección de barcos. Clic en el barco para más información. Ctrl+Clic para mostrar/ocultar el tipo del barco -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de selección de aeronaves. Clic en la aeronave para más información. Ctrl+Clic para mostrar/ocultar el tipo de la aeronave +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de ferrocarril. Clica en el vehículo para más información. Pulsa Ctrl+clic para mostrar/ocultar el tipo del vehículo +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Clica en el vehículo para más información. Pulsa Ctrl+clic para mostrar/ocultar el tipo del vehículo +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Lista de selección de barcos. Clica en el barco para más información. Pulsa Ctrl+clic para mostrar/ocultar el tipo del barco +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lista de selección de aeronaves. Clica en la aeronave para más información. Pulsa Ctrl+clic para mostrar/ocultar el tipo de la aeronave STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Comprar vehículo STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Comprar vehículo @@ -3622,9 +3622,9 @@ STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}Renombra STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Renombrar STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Renombrar tipo de vehículo -STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Renombrar tipo de vehículo +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Renombra el tipo de vehículo STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Renombrar tipo de barco -STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Renombrar tipo de aeronave +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Renombra el tipo de aeronave STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar @@ -3636,10 +3636,10 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar -STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alternar mostrar/ocultar el tipo del tren -STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alternar mostrar/ocultar el tipo del vehículo de carretera -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alternar mostrar/ocultar el tipo del barco -STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alternar mostrar/ocultar el tipo de la aeronave +STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo del tren +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo del vehículo de carretera +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo del barco +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo de la aeronave STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Renombrar tipo de vehículo de raíl STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Renombrar tipo de vehículo de carretera @@ -3649,12 +3649,12 @@ STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Renombra # Depot window STR_DEPOT_CAPTION :{WHITE}{DEPOT} -STR_DEPOT_RENAME_TOOLTIP :{BLACK}Cambiar nombre del depósito +STR_DEPOT_RENAME_TOOLTIP :{BLACK}Cambia el nombre del depósito STR_DEPOT_RENAME_DEPOT_CAPTION :Renombrar depósito STR_DEPOT_NO_ENGINE :{BLACK}- STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING} -STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} vehículo {P "" s}{STRING} +STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} vehículo{P "" s}{STRING} STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - arrastrar vehículo con Clic izquierdo para añadir/retirar del tren, Clic derecho para mostrar información. Mantén pulsado Ctrl para usar estos comandos con el resto del tren @@ -3662,17 +3662,17 @@ STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehícul STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos - Clic derecho en el barco para información STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Aeronave - Clic derecho en la aeronave para información -STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Arrastrar aquí el vehículo de raíl para venderlo -STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Arrastrar aquí el vehículo de carretera para venderlo -STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Arrastrar barco aquí para venderlo -STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Arrastrar aeronave aquí para venderla +STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Arrastra aquí el vehículo de ferrocarril para venderlo +STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Arrastra aquí el vehículo de carretera para venderlo +STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Arrastra el barco aquí para venderlo +STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Arrastra la aeronave aquí para venderla -STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}Arrastrar la locomotora aquí para vender el tren entero +STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}Arrastra la locomotora aquí para vender el tren entero -STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}Vender todos los trenes del depósito -STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}Vender todos los vehículos de carretera del depósito -STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}Vender todos los barcos del astillero -STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Vender todas las aeronaves del hangar +STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}Vende todos los trenes del depósito +STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}Vende todos los vehículos de carretera del depósito +STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}Vende todos los barcos del astillero +STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Vende todas las aeronaves del hangar STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}Reemplaza automáticamente todos los trenes del depósito STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}Reemplaza automáticamente todos los vehículos de carretera del depósito @@ -3684,10 +3684,10 @@ STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}Nuevos v STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Nuevos barcos STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Nueva aeronave -STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo vehículo de raíl -STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo vehículo de carretera -STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nuevo barco -STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Comprar nueva aeronave +STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un vehículo de ferrocarril nuevo +STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un vehículo de carretera nuevo +STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un barco nuevo +STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Compra una aeronave nueva STR_DEPOT_CLONE_TRAIN :{BLACK}Clonar tren STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Clonar vehículo @@ -3704,10 +3704,10 @@ STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrar STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Centrar vista en posición del astillero. Ctrl+Clic abre un punto de vista en dicha posición STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrar vista en posición del hangar. Ctrl+Clic abre un punto de vista en dicha posición -STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Obtener lista de todos los trenes con este depósito en sus órdenes -STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Obtener lista de todos los vehículos con el depósito actual en sus órdenes -STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Obtener lista de todos los barcos con este astillero en sus órdenes -STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Obtener lista de todas las aeronaves con cualquier hangar de este aeropuerto en sus órdenes +STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Obtiene la lista de todos los trenes con este depósito en sus órdenes +STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Obtiene la lista de todos los vehículos con el depósito actual en sus órdenes +STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Obtiene la lista de todos los barcos con este astillero en sus órdenes +STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Obtiene la lista de todas las aeronaves con cualquier hangar de este aeropuerto en sus órdenes STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Clic para detener todos los trenes dentro del depósito STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Clic para detener todos los vehículos dentro del depósito @@ -3719,11 +3719,11 @@ STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Clic par STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Clic para arrancar todos los barcos dentro del astillero STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Clic para arrancar todas las aeronaves dentro del hangar -STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Está a punto de vender todos los vehículos en el depósito. ¿Está seguro? +STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Está sa punto de vender todos los vehículos del depósito. ¿Estás seguro? # Engine preview window STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensaje del fabricante de vehículos -STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Hemos diseñado un{G "" a} nuev{G o a} {STRING} - ¿estaría interesado en el uso exclusivo por un año de este vehículo, para que podamos comprobar cómo rinde antes de que esté universalmente disponible? +STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Hemos diseñado un{G "" a} nuev{G o a} {STRING} - ¿le interesaría el uso exclusivo de este vehículo durante un año, para que podamos ver cómo funciona antes de ponerlo a disposición del público? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Locomotora de ferrocarril eléctrico @@ -4191,13 +4191,13 @@ STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Cuando u STR_AI_DEBUG_MATCH_CASE :{BLACK}Comprobar mayúsculas/minúsculas STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Activa/desactiva la comprobación de mayúsculas y minúsculas al comparar los mensajes de log de la IA con la cadena de parada STR_AI_DEBUG_CONTINUE :{BLACK}Continuar -STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Quitar pausa y hacer que la IA continúe +STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Quita la pausa y hace que la IA continúe STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Mostrar salida de depuración de esta IA STR_AI_GAME_SCRIPT :{BLACK}Script de juego STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Comprobar el registro del Script de juego -STR_ERROR_AI_NO_AI_FOUND :No se encontró IA apropiada para cargar.{}Ésta es una IA por defecto que no realiza acción alguna.{}Puedes descargar nuevas IA mediante el sistema de 'Contenido Online' -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de los scripts ejecutados ha fallado. Por favor, informe del fallo al autor del script con una captura de la ventana de depuración de Script / IA +STR_ERROR_AI_NO_AI_FOUND :No se encontró ninguna IA apropiada para cargar.{}Ésta es una IA por defecto que no realiza acción alguna.{}Puedes descargar nuevas IA mediante el sistema de 'Contenido Online' +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Uno de los scripts ejecutados ha fallado. Por favor, informa del fallo al autor del script con una captura de la ventana de depuración de Script / IA STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La ventana de depuración de Scripts solo está disponible para el servidor # AI configuration window @@ -4228,7 +4228,7 @@ STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configur STR_AI_LIST_CAPTION :{WHITE}Disponible {STRING} STR_AI_LIST_CAPTION_AI :IAs STR_AI_LIST_CAPTION_GAMESCRIPT :Scripts de juego -STR_AI_LIST_TOOLTIP :{BLACK}Clic para seleccionar un script +STR_AI_LIST_TOOLTIP :{BLACK}Clicar para seleccionar un script STR_AI_LIST_AUTHOR :{LTBLUE}Autor: {ORANGE}{STRING} STR_AI_LIST_VERSION :{LTBLUE}Versión: {ORANGE}{NUM} @@ -4254,7 +4254,7 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de juego STR_AI_SETTINGS_CLOSE :{BLACK}Cerrar STR_AI_SETTINGS_RESET :{BLACK}Reiniciar STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} -STR_AI_SETTINGS_START_DELAY :Número de días a esperar antes de comenzar esta IA desde el momento en el que empezó la anterior: {ORANGE}{STRING} +STR_AI_SETTINGS_START_DELAY :Número de días (aproximados) de espera antes de comenzar esta IA desde el momento en el que empezó la anterior: {ORANGE}{STRING} # Textfile window @@ -4293,12 +4293,12 @@ STR_MESSAGE_ESTIMATED_COST :{WHITE}Coste es STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Ingreso estimado: {CURRENCY_LONG} # Saveload messages -STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}El guardado está en progreso,{}¡por favor espere hasta que termine! -STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error en Autoguardado +STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}El guardado está en progreso,{}¡por favor espera hasta que termine! +STR_ERROR_AUTOSAVE_FAILED :{WHITE}Error al autoguardar STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}No es posible leer la unidad -STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando juego{}{STRING} +STR_ERROR_GAME_SAVE_FAILED :{WHITE}Error guardando partida{}{STRING} STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}No es posible borrar el archivo -STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Juego Errónea{}{STRING} +STR_ERROR_GAME_LOAD_FAILED :{WHITE}Carga de Partida Errónea{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Error interno: {STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Partida guardada corrupta - {STRING} STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :La partida guardada ha sido realizada con una versión más nueva @@ -4315,7 +4315,7 @@ STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no h STR_ERROR_PNGMAP :{WHITE}No se pudo cargar mapa de alturas PNG... STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado -STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits +STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se ha podido convertir tipo de imagen. Se requieren imágenes PNG de 8 o 24-bits STR_ERROR_PNGMAP_MISC :{WHITE}... algo ha salido mal (es probable que el fichero esté corrupto) STR_ERROR_BMPMAP :{WHITE}No se pudo cargar mapa de alturas BMP... @@ -4352,7 +4352,7 @@ STR_ERROR_CAN_T_CLEAR_THIS_AREA :{WHITE}No se pu STR_ERROR_SITE_UNSUITABLE :{WHITE}... lugar no apropiado STR_ERROR_ALREADY_BUILT :{WHITE}... ya construido STR_ERROR_OWNED_BY :{WHITE}... propiedad de {STRING} -STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... otra empresa posee esta área +STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... el área es propiedad de otra empresa STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... límite de modificación de terreno alcanzado STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... límite de casillas despejadas alcanzado STR_ERROR_TREE_PLANT_LIMIT_REACHED :{WHITE}... limite de plantación de árboles alcanzado @@ -4371,9 +4371,9 @@ STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}No se pu STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}No se puede bajar el terreno aquí... STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}No se puede nivelar el terreno aquí... STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}La excavación dañaría el túnel -STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... ya está al nivel del mar +STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... ya está a nivel del mar STR_ERROR_TOO_HIGH :{WHITE}... demasiado alto -STR_ERROR_ALREADY_LEVELLED :{WHITE}... ya está llano +STR_ERROR_ALREADY_LEVELLED :{WHITE}... ya es llano STR_ERROR_BRIDGE_TOO_HIGH_AFTER_LOWER_LAND :{WHITE}Después del cambio, el puente sobre este terreno será demasiado alto. # Company related errors @@ -4399,11 +4399,11 @@ STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}No se pu STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}No se puede construir un municipio aquí... STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}No se puede expandir este municipio... STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... demasiado cercano al borde del mapa -STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... demasiado cercano a otro municipio +STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... demasiado cerca de otro municipio STR_ERROR_TOO_MANY_TOWNS :{WHITE}... demasiados municipios STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... no hay más espacio en el mapa STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}El municipio no construirá carreteras. Puedes activar la función de construcción de carreteras en Configuración->Ambiente->Municipios -STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Trabajos de carretera en progreso +STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obras de carretera en progreso STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No se puede borrar este municipio...{}Quedan estaciones o depósitos relacionados con él, o una propiedad suya no puede ser retirada STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no existe un lugar apropiado para una estatua en el centro de este municipio @@ -4423,8 +4423,8 @@ STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solo STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... solo puede construirse en zonas bajas STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... solo puede colocarse cerca de los bordes del mapa STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... solo se pueden plantar bosques sobre la nieve -STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo puede construirse por encima de la línea de nieve -STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo puede construirse por debajo de la línea de nieve +STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo puede construirse por encima de la cota de nieve +STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo puede construirse por debajo de la cota de nieve STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No había sitios apropiados disponibles para industrias '{STRING}' STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia los parámetros de generación del mapa para obtener un mapa mejor @@ -4438,7 +4438,7 @@ STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puede STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No pueden construirse muelles aquí... STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No puede construirse un aeropuerto aquí... -STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Adjunta más de una estación/zona de carga existente +STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Contigua a más de una estación/zona de carga existente STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... estación demasiado extendida STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Demasiadas estaciones/zonas de carga STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Demasiadas partes de estación de tren @@ -4448,30 +4448,30 @@ STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiad STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado cerca de otro aeropuerto STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede renombrar estación... STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... esta carretera es propiedad de un municipio -STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... carretera en la dirección incorrecta +STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... carretera en dirección incorrecta STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... las estaciones de autobús de paso no pueden tener esquinas STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... las estaciones de autobús de paso no pueden tener intersecciones # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No se puede retirar parte de la estación... -STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Debes retirar la estación de trenes primero +STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Primero se debe retirar la estación de tren STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}No se puede retirar estación de bus... -STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}No se puede quitar estación de camiones... -STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}No se puede quitar estación de tranvía de pasajeros... -STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}No se puede quitar estación de tranvía de carga... +STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}No se puede retirar estación de camiones... +STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}No se puede retirar estación de tranvía de pasajeros... +STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}No se puede retirar estación de tranvía de carga... STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}Primero debe retirar la parada STR_ERROR_THERE_IS_NO_STATION :{WHITE}... no hay ninguna estación aquí STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Primero debe demolerse estación de trenes STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Primero debe demolerse estación de autobús STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}Primero debe demolerse estación de camiones -STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}Debe demoler la estación del tranvía de pasajeros primero -STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Debe demoler la estación del tranvía de carga primero +STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}Primero debe demolerse la estación de tranvía de pasajeros +STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Primero debe demolerse la estacion de tranvia de carga STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Primero debe demolerse el muelle STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Primero debe demolerse el aeropuerto # Waypoint related errors -STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Une más de un punto de ruta existente +STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Contiguo a más de un punto de ruta existente STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Demasiado cerca de otro punto de ruta STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}No se puede construir punto de ruta para trenes aquí... @@ -4479,7 +4479,7 @@ STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}No se pu STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}No se puede cambiar el nombre del punto de ruta... STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}No se puede retirar punto de ruta aquí... -STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primero se debe retirar punto de ruta para trenes +STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}Primero se debe retirar el punto de ruta STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... boya en medio STR_ERROR_BUOY_IS_IN_USE :{WHITE}... ¡boya en uso por otra empresa! @@ -4493,17 +4493,17 @@ STR_ERROR_CAN_T_RENAME_DEPOT :{WHITE}No se pu STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... debe de estar detenido dentro de un depósito STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... debe de estar detenido dentro de un depósito -STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... debe de estar detenido dentro de un astillero -STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... debe de estar detenido dentro de un hangar +STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... debe estar detenido dentro de un astillero +STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... debe estar detenido dentro de un hangar -STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Los trenes únicamente pueden ser modificarse estando detenidos dentro de un depósito +STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Los trenes únicamente pueden modificarse estando detenidos dentro de un depósito STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tren demasiado largo STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}No se puede cambiar dirección del vehículo... STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... vehículo compuesto por múltiples unidades STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Tipo de ferrocarril incompatible STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}No se puede mover vehículo... -STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}El motor posterior debe seguir siempre a su contraparte delantera +STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}La cabeza tractora posterior debe seguir siempre a su contraparte delantera STR_ERROR_UNABLE_TO_FIND_ROUTE_TO :{WHITE}No se puede encontrar ruta al depósito STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}No se puede encontrar ruta al depósito @@ -4511,17 +4511,17 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Tipo de depósi # Autoreplace related errors STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} es demasiado largo después del reemplazo -STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}No se han aplicado reglas de autoreemplazo/renovación +STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}No se han aplicado reglas de autorreemplazo/renovación STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(límite de dinero) STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}El nuevo vehículo no puede transportar {STRING} STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}El nuevo vehículo no se puede reformar en la orden {NUM} # Rail construction errors -STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinación de tramos imposible -STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Primero debe retirar señales -STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tramo de ferrocarril no apropiado -STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Primero se debe retirar tramo de ferrocarril -STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Carretera de un solo sentido o bloqueada +STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Combinación imposible de vías +STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Primero deben retirar las señales +STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Vía de ferrocarril no apropiada +STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Primero se debe retirar la vía de ferrocarril +STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Carretera de sentido único o bloqueada STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}No se permiten pasos a nivel para este tipo de ferrocarril STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}No se permiten pasos a nivel para este tipo de carretera STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}No se pueden construir señales aquí... @@ -4535,8 +4535,8 @@ STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... no h STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}No se puede convertir tipo de ferrocarril aquí... # Road construction errors -STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Ha de retirar carretera primero -STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... carreteras de un sentido no pueden tener intersecciones +STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Primero se debe retirar la carretera +STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... las carreteras de sentido único no pueden tener intersecciones STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}No se puede construir carretera aquí... STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}No se puede construir un tranvía aquí... STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}No se puede retirar carretera de aquí... @@ -4545,20 +4545,20 @@ STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no h STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hay tranvía STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}No es posible transformar esta carretera... STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}No se puede convertir el tipo de tranvía aquí... -STR_ERROR_NO_SUITABLE_ROAD :{WHITE}No hay carretera adecuada -STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}No hay un tranvía adecuado +STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Carretera no adecuada +STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Vía de tranvía no adecuado STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvía incompatible # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No pueden construirse canales aquí... -STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No pueden construirse dársenas aquí... +STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No pueden construirse esclusas aquí... STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}No se pueden situar ríos aquí... STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... debe construirse sobre el agua STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... no se puede construir sobre el agua STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... no se puede construir en mar abierto STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... no se puede construir en un canal STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... no se puede construir en un río -STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Debes demoler el canal primero +STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Primero debe demolerse el canal STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No puede construirse un acueducto aquí # Tree related errors @@ -4599,7 +4599,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ¡ya STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}No se puede crear grupo... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}No se puede borrar grupo... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}No se puede renombrar grupo... -STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}No se puede establecer la jerarquía de grupos... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}No se puede establecer el grupo superior... STR_ERROR_GROUP_CAN_T_SET_PARENT_RECURSION :{WHITE}... No se permiten bucles en la jerarquía del grupo STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}No se pueden quitar todos los vehículos de este grupo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}No se puede añadir el vehículo a este grupo... @@ -4628,8 +4628,8 @@ STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}No se pu STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}No se puede enviar el tren al depósito... STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}No se puede enviar vehículo al depósito... -STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}No se puede mandar barco a astillero... -STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}No se puede enviar la aeronave al hangar +STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}No se puede enviar el barco al astillero... +STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}No se puede enviar la aeronave al hangar... STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}No se puede comprar tren... STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}No se puede comprar vehículo... @@ -4651,8 +4651,8 @@ STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Vehícul STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Barco no disponible STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Aeronave no disponible -STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Demasiados vehículos en juego -STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Imposible cambiar intervalo de mantenimiento... +STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Demasiados vehículos en el juego +STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}No se puede cambiar intervalo de mantenimiento... STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... el vehículo está destruido @@ -4662,11 +4662,11 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}En esta STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comienza una nueva partida después de {DATE_SHORT} o usa un NewGRF que provea vehículos más antiguos # Specific vehicle errors -STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}No se puede pasar la señal en peligro al tren... +STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}No se puede pasar al tren la señal de peligro... STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No se puede cambiar la dirección... STR_ERROR_TRAIN_START_NO_POWER :El tren no tiene potencia -STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}No se puede girar vehículo de carretera... +STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}No se puede dar la vuelta al vehículo de carretera... STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}La aeronave está en vuelo @@ -4684,7 +4684,7 @@ STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... el v STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... un vehículo que comparte esta orden no puede ir a esa estación STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}No se puede compartir lista de órdenes... -STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}No se puede parar de compartir lista de órdenes... +STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}No se puede dejar de compartir lista de órdenes... STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}No se puede copiar lista de órdenes... STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... demasiado lejos del destino anterior STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... la aeronave no tiene suficiente alcance @@ -4695,10 +4695,10 @@ STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Los veh STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Este vehículo no va a detenerse en esta estación # Sign related errors -STR_ERROR_TOO_MANY_SIGNS :{WHITE}... demasiados carteles -STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}No se puede colocar un cartel aquí... -STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}No se puede cambiar el nombre del cartel... -STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}No se puede borrar el cartel... +STR_ERROR_TOO_MANY_SIGNS :{WHITE}... demasiados letreros +STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}No se puede colocar un letrero aquí... +STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}No se puede cambiar el nombre del letrero... +STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}No se puede borrar el letrero... # Translatable comment for OpenTTD's desktop shortcut STR_DESKTOP_SHORTCUT_COMMENT :Un juego de simulación basado en Transport Tycoon Deluxe @@ -4775,7 +4775,7 @@ STR_INDUSTRY_NAME_IRON_ORE_MINE :{G=f}Mina de Hi STR_INDUSTRY_NAME_FRUIT_PLANTATION :{G=f}Plantación de Fruta STR_INDUSTRY_NAME_RUBBER_PLANTATION :{G=f}Plantación de Caucho STR_INDUSTRY_NAME_WATER_SUPPLY :{G=m}Suministro de Agua -STR_INDUSTRY_NAME_WATER_TOWER :{G=f}Torre de Agua +STR_INDUSTRY_NAME_WATER_TOWER :{G=f}Depósito de Agua STR_INDUSTRY_NAME_FACTORY_2 :{G=f}Fábrica STR_INDUSTRY_NAME_FARM_2 :{G=f}Granja STR_INDUSTRY_NAME_LUMBER_MILL :{G=m}Aserradero @@ -5115,7 +5115,7 @@ STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} Astiller STR_FORMAT_DEPOT_NAME_AIRCRAFT :{STATION} Hangar STR_UNKNOWN_STATION :estación desconocida -STR_DEFAULT_SIGN_NAME :Cartel +STR_DEFAULT_SIGN_NAME :Letrero STR_COMPANY_SOMEONE :alguien STR_SAVEGAME_NAME_DEFAULT :{COMPANY}, {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 12e30af821..289df8314d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1000,7 +1000,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Kryssa i STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skärmupplösning STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Välj vilken skärmupplösning som ska användas STR_GAME_OPTIONS_RESOLUTION_OTHER :annan +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hårdvaruacceleration +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Markera denna rutan för att tillåta OpenTTD att försöka använda hårdvaruacceleration. Ändrad inställning kommer bara att gälla efter omstart. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Inställningen kommer bara att gälla efter omstart av spelet STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Gränssnittstorlek STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken gränssnittsstorlek som ska användas @@ -1018,7 +1022,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbel storlek STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Kvadrupel storlek +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafik +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Visa uppdateringsfrekvens +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Välj skärmens uppdateringsfrekvens +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :annat +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}uppdateringsfrekvenser högre än 60Hz kan påverka prestandan. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikpaket som standard STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Välj vilket grafikpaket som ska användas som standard @@ -1791,6 +1801,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Slut på STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokerandet av {BYTES} till spritecachen misslyckades. Spritecachen begränsades till {BYTES}. Detta kommer att begränsa OpenTTD:s prestanda. För att minska minneskraven kan du försöka att inaktivera 32bpp-grafik och/eller antalet inzoomningsnivåer # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Fel med video inställningarna... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... Inget kompatibelt grafikkort hittat. Hårdvaruacceleration inaktiverad # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3181,19 +3193,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Bekosta nya byg STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Köp exklusiva transporträttigheter STR_LOCAL_AUTHORITY_ACTION_BRIBE :Muta de lokala myndigheterna -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Starta en liten lokal reklamkampanj, för att attrahera fler passagerare och gods till dina tranporttjänster.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Starta en liten lokal reklamkampanj, för att attrahera fler passagerare och gods till dina tranporttjänster.{}Tillhandahåller en temporär boost till stationens betyg i en liten radie runt stadens centrum.{}Kostnad: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Starta en mellanstor lokal reklamkampanj, för att attrahera fler passagerare och gods till dina tranporttjänster.{}Kostnad: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Starta en stor lokal reklamkampanj, för att attrahera fler passagerare och gods till dina tranporttjänster.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Bekosta ombyggnad av stadens vägnätverk. Orsakar ansenliga störningar för vägtrafik i upp till 6 månader.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bygg en staty i ditt företags ära.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Bekosta uppbyggnad av nya kommersiella byggnader i staden.{}Kostnad: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Köp 1 års exklusiv transporträttighet i staden. Stadens myndigheter kommer bara tillåta passagerare och gods till användning för ditt företags stationer.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Bekosta ombyggnad av stadens vägnätverk.{}Orsakar ansenliga störningar för vägtrafik i upp till 6 månader.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Bygg en staty i ditt företags ära.{}Tillhandahåller en permanent boost till stations betyg i staden.{}Cost: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Bekosta uppbyggnad av nya byggnader i staden.{}Tillhandahåller en temporär boost till stadens tillväxt.{}Kostnad: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Köp 1 års exklusiva transport rättigheter i staden.{}Lokala myndigheterna kommer inte tillåta passagerare och gods att använda dina motståndares stationer.{}Cost: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Muta de lokala myndigheterna för att öka din värdering, med risk för att få höga böter om du blir upptäckt.{} Kostnad: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globala mål STR_GOALS_SPECTATOR :Globala mål +STR_GOALS_GLOBAL_BUTTON :{BLACK}Global +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Visa globala mål +STR_GOALS_COMPANY_BUTTON :{BLACK}Företag +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Visa företagets mål STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Inga - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3568,6 +3584,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Motorise STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Anpassningsbar till: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alla typer av last STR_PURCHASE_INFO_NONE :Ingen +STR_PURCHASE_INFO_ENGINES_ONLY :Endast lok STR_PURCHASE_INFO_ALL_BUT :Allt utom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximal Dragkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Räckvidd: {GOLD}{COMMA} rutor diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 9482756f44..0378351abb 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1685,6 +1685,7 @@ STR_CONFIG_SETTING_ENDING_YEAR :Рік закі STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Рік закінчення гри для підрахунку очок. У кінці року додають очки компанії і показують загальний результат, але гравці можуть грати далі.{}Якщо встановлено рік раніший початкового, загальний результат не зʼявиться. STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Ніколи +STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Плавно STR_CONFIG_SETTING_ALLOW_SHARES :Дозволити придбання акції інших компаній: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :При включенні дозволяє придбання та продаж акцій команій. Акції компанії стають доступними після досягнення деякого віку. STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мінімальний вік компанії для торгівлі акціями: {STRING} @@ -1737,6 +1738,7 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :лінійна STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Поява дерев під час гри: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Налаштування випадкової появи дерев на карті в процесі гри. Ця настройка також впливає на відповідні підприємства, такі як лісопилки. STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Зростання, але поширення тільки вологих лісів +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Зростатати і поширюватися усюди STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :Не зростати, не поширюватися {RED}(лісопилка не працює) STR_CONFIG_SETTING_TOOLBAR_POS :Позиція головного меню: {STRING} @@ -2659,6 +2661,7 @@ STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Сади STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Випадкові дерева STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Випадкове насадження дерев по всьому ландшафту STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}Саджати окремі дерева протягуванням по ландшафту +STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Ліс STR_TREES_MODE_FOREST_LG_TOOLTIP :{BLACK}Саджати великі ліси протягуванням по ландшафту # Land generation window (SE) @@ -3859,6 +3862,7 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Дозв # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} +STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}Показати транспорт у центрі екрану. Подвійний клац для руху за транспортом. Ctrl+клац мишою вікдриє нове вікно з транспортом STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Направити поїзд у депо STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Направити авто в депо From 9c5a7d3a572d02813e6bab83004334b9a154a62b Mon Sep 17 00:00:00 2001 From: stormcone <48624099+stormcone@users.noreply.github.com> Date: Thu, 11 Mar 2021 21:40:48 +0100 Subject: [PATCH 40/53] Fix #8733: Can't buy train engine when the "Engines only" filter is active --- src/build_vehicle_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 58d6ea4e69..a7a7d80428 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1472,7 +1472,7 @@ struct BuildVehicleWindow : Window { if (sel_eng != INVALID_ENGINE) { CommandCallback *callback = (this->vehicle_type == VEH_TRAIN && RailVehInfo(sel_eng)->railveh_type == RAILVEH_WAGON) ? CcBuildWagon : CcBuildPrimaryVehicle; CargoID cargo = this->cargo_filter[this->cargo_filter_criteria]; - if (cargo == CF_ANY) cargo = CF_NONE; + if (cargo == CF_ANY || cargo == CF_ENGINES) cargo = CF_NONE; DoCommandP(this->window_number, sel_eng | (cargo << 24), 0, GetCmdBuildVeh(this->vehicle_type), callback); } break; From e708fb38da7a3635c7cc15dd1cc516ea1d2d5871 Mon Sep 17 00:00:00 2001 From: Didac Perez Parera Date: Sat, 13 Mar 2021 01:00:36 -0800 Subject: [PATCH 41/53] Feature: allow filtering on name in rail station window (#8706) --- src/rail_gui.cpp | 236 ++++++++++++++++++++++++++++++-------- src/widgets/rail_widget.h | 2 + 2 files changed, 193 insertions(+), 45 deletions(-) diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 2211a48a64..d14a292c99 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -32,6 +32,10 @@ #include "vehicle_func.h" #include "zoom_func.h" #include "rail_gui.h" +#include "querystring_gui.h" +#include "sortlist_type.h" +#include "stringfilter_type.h" +#include "string_func.h" #include "station_map.h" #include "tunnelbridge_map.h" @@ -891,6 +895,36 @@ private: Scrollbar *vscroll; ///< Vertical scrollbar of the new station list. Scrollbar *vscroll2; ///< Vertical scrollbar of the matrix with new stations. + typedef GUIList GUIStationClassList; ///< Type definition for the list to hold available station classes. + + static const uint EDITBOX_MAX_SIZE = 16; ///< The maximum number of characters for the filter edit box. + + static Listing last_sorting; ///< Default sorting of #GUIStationClassList. + static Filtering last_filtering; ///< Default filtering of #GUIStationClassList. + static GUIStationClassList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIStationClassList. + static GUIStationClassList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIStationClassList. + GUIStationClassList station_classes; ///< Available station classes. + StringFilter string_filter; ///< Filter for available station classes. + QueryString filter_editbox; ///< Filter editbox. + + /** + * Scrolls #WID_BRAS_NEWST_SCROLL so that the selected station class is visible. + * + * Note that this method should be called shortly after SelectClassAndStation() which will ensure + * an actual existing station class is selected, or the one at position 0 which will always be + * the default TTD rail station. + */ + void EnsureSelectedStationClassIsVisible() + { + uint pos = 0; + for (auto station_class : this->station_classes) { + if (station_class == _railstation.station_class) break; + pos++; + } + this->vscroll->SetCount((int)this->station_classes.size()); + this->vscroll->ScrollTowards(pos); + } + /** * Verify whether the currently selected station size is allowed after selecting a new station class/type. * If not, change the station size variables ( _settings_client.gui.station_numtracks and _settings_client.gui.station_platlength ). @@ -925,7 +959,7 @@ private: } public: - BuildRailStationWindow(WindowDesc *desc, Window *parent, bool newstation) : PickerWindowBase(desc, parent) + BuildRailStationWindow(WindowDesc *desc, Window *parent, bool newstation) : PickerWindowBase(desc, parent), filter_editbox(EDITBOX_MAX_SIZE) { this->coverage_height = 2 * FONT_HEIGHT_NORMAL + 3 * WD_PAR_VSEP_NORMAL; this->vscroll = nullptr; @@ -940,10 +974,24 @@ public: newst_additions->SetDisplayedPlane(newstation ? 0 : SZSP_NONE); newst_additions = this->GetWidget(WID_BRAS_SHOW_NEWST_RESIZE); newst_additions->SetDisplayedPlane(newstation ? 0 : SZSP_NONE); + /* Hide the station class filter if no stations other than the default one are available. */ + this->GetWidget(WID_BRAS_FILTER_CONTAINER)->SetDisplayedPlane(newstation ? 0 : SZSP_NONE); if (newstation) { this->vscroll = this->GetScrollbar(WID_BRAS_NEWST_SCROLL); this->vscroll2 = this->GetScrollbar(WID_BRAS_MATRIX_SCROLL); + + this->querystrings[WID_BRAS_FILTER_EDITBOX] = &this->filter_editbox; + this->station_classes.SetListing(this->last_sorting); + this->station_classes.SetFiltering(this->last_filtering); + this->station_classes.SetSortFuncs(this->sorter_funcs); + this->station_classes.SetFilterFuncs(this->filter_funcs); } + + this->station_classes.ForceRebuild(); + + BuildStationClassesAvailable(); + SelectClassAndStation(); + this->FinishInitNested(TRANSPORT_RAIL); this->LowerWidget(_railstation.orientation + WID_BRAS_PLATFORM_DIR_X); @@ -956,30 +1004,25 @@ public: this->SetWidgetLoweredState(WID_BRAS_HIGHLIGHT_OFF, !_settings_client.gui.station_show_coverage); this->SetWidgetLoweredState(WID_BRAS_HIGHLIGHT_ON, _settings_client.gui.station_show_coverage); - if (!newstation || _railstation.station_class >= (int)StationClass::GetClassCount()) { - /* New stations are not available or changed, so ensure the default station - * type is 'selected'. */ - _railstation.station_class = STAT_CLASS_DFLT; + if (!newstation) { + _railstation.station_class = StationClassID::STAT_CLASS_DFLT; _railstation.station_type = 0; this->vscroll2 = nullptr; - } - if (newstation) { + } else { _railstation.station_count = StationClass::Get(_railstation.station_class)->GetSpecCount(); _railstation.station_type = std::min(_railstation.station_type, _railstation.station_count - 1); - int count = 0; - for (uint i = 0; i < StationClass::GetClassCount(); i++) { - if (i == STAT_CLASS_WAYP) continue; - count++; - } - this->vscroll->SetCount(count); - this->vscroll->SetPosition(Clamp(_railstation.station_class - 2, 0, std::max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); - NWidgetMatrix *matrix = this->GetWidget(WID_BRAS_MATRIX); matrix->SetScrollbar(this->vscroll2); matrix->SetCount(_railstation.station_count); matrix->SetClicked(_railstation.station_type); + + EnsureSelectedStationClassIsVisible(); + + this->SetFocusedWidget(WID_BRAS_FILTER_EDITBOX); } + + this->InvalidateData(); } virtual ~BuildRailStationWindow() @@ -987,6 +1030,99 @@ public: DeleteWindowById(WC_SELECT_STATION, 0); } + /** Sort station classes by StationClassID. */ + static bool StationClassIDSorter(StationClassID const &a, StationClassID const &b) + { + return a < b; + } + + /** Filter station classes by class name. */ + static bool CDECL TagNameFilter(StationClassID const * sc, StringFilter &filter) + { + char buffer[DRAW_STRING_BUFFER]; + GetString(buffer, StationClass::Get(*sc)->name, lastof(buffer)); + + filter.ResetState(); + filter.AddLine(buffer); + return filter.GetState(); + } + + /** Builds the filter list of available station classes. */ + void BuildStationClassesAvailable() + { + if (!this->station_classes.NeedRebuild()) return; + + this->station_classes.clear(); + + for (uint i = 0; i < StationClass::GetClassCount(); i++) { + StationClassID station_class_id = (StationClassID)i; + if (station_class_id == StationClassID::STAT_CLASS_WAYP) { + // Skip waypoints. + continue; + } + StationClass *station_class = StationClass::Get(station_class_id); + if (station_class->GetUISpecCount() == 0) continue; + station_classes.push_back(station_class_id); + } + + if (_railstation.newstations) { + this->station_classes.Filter(this->string_filter); + this->station_classes.shrink_to_fit(); + this->station_classes.RebuildDone(); + this->station_classes.Sort(); + + this->vscroll->SetCount((uint)this->station_classes.size()); + } + } + + /** + * Checks if the previously selected current station class and station + * can be shown as selected to the user when the dialog is opened. + */ + void SelectClassAndStation() + { + if (_railstation.station_class == StationClassID::STAT_CLASS_DFLT) { + /* This happens during the first time the window is open during the game life cycle. */ + this->SelectOtherClass(StationClassID::STAT_CLASS_DFLT); + } else { + /* Check if the previously selected station class is not available anymore as a + * result of starting a new game without the corresponding NewGRF. */ + bool available = false; + for (uint i = 0; i < StationClass::GetClassCount(); ++i) { + if ((StationClassID)i == _railstation.station_class) { + available = true; + break; + } + } + + this->SelectOtherClass(available ? _railstation.station_class : StationClassID::STAT_CLASS_DFLT); + } + } + + /** + * Select the specified station class. + * @param station_class Station class select. + */ + void SelectOtherClass(StationClassID station_class) + { + _railstation.station_class = station_class; + } + + void OnInvalidateData(int data = 0, bool gui_scope = true) override + { + if (!gui_scope) return; + + this->BuildStationClassesAvailable(); + } + + void OnEditboxChanged(int wid) override + { + string_filter.SetFilterTerm(this->filter_editbox.text.buf); + this->station_classes.SetFilterState(!string_filter.IsEmpty()); + this->station_classes.ForceRebuild(); + this->InvalidateData(); + } + void OnPaint() override { bool newstations = _railstation.newstations; @@ -1043,9 +1179,8 @@ public: switch (widget) { case WID_BRAS_NEWST_LIST: { Dimension d = {0, 0}; - for (uint i = 0; i < StationClass::GetClassCount(); i++) { - if (i == STAT_CLASS_WAYP) continue; - d = maxdim(d, GetStringBoundingBox(StationClass::Get((StationClassID)i)->name)); + for (auto station_class : this->station_classes) { + d = maxdim(d, GetStringBoundingBox(StationClass::Get(station_class)->name)); } size->width = std::max(size->width, d.width + padding.width); this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; @@ -1064,9 +1199,8 @@ public: /* If newstations exist, compute the non-zero minimal size. */ Dimension d = {0, 0}; StringID str = this->GetWidget(widget)->widget_data; - for (StationClassID statclass = STAT_CLASS_BEGIN; statclass < (StationClassID)StationClass::GetClassCount(); statclass++) { - if (statclass == STAT_CLASS_WAYP) continue; - StationClass *stclass = StationClass::Get(statclass); + for (auto station_class : this->station_classes) { + StationClass *stclass = StationClass::Get(station_class); for (uint16 j = 0; j < stclass->GetSpecCount(); j++) { const StationSpec *statspec = stclass->GetSpec(j); SetDParam(0, (statspec != nullptr && statspec->name != 0) ? statspec->name : STR_STATION_CLASS_DFLT); @@ -1131,12 +1265,11 @@ public: case WID_BRAS_NEWST_LIST: { uint statclass = 0; uint row = 0; - for (uint i = 0; i < StationClass::GetClassCount(); i++) { - if (i == STAT_CLASS_WAYP) continue; + for (auto station_class : this->station_classes) { if (this->vscroll->IsVisible(statclass)) { DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, row * this->line_height + r.top + WD_MATRIX_TOP, - StationClass::Get((StationClassID)i)->name, - (StationClassID)i == _railstation.station_class ? TC_WHITE : TC_BLACK); + StationClass::Get(station_class)->name, + station_class == _railstation.station_class ? TC_WHITE : TC_BLACK); row++; } statclass++; @@ -1314,29 +1447,23 @@ public: case WID_BRAS_NEWST_LIST: { int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_BRAS_NEWST_LIST, 0, this->line_height); - if (y >= (int)StationClass::GetClassCount()) return; - for (uint i = 0; i < StationClass::GetClassCount(); i++) { - if (i == STAT_CLASS_WAYP) continue; - if (y == 0) { - if (_railstation.station_class != (StationClassID)i) { - _railstation.station_class = (StationClassID)i; - StationClass *stclass = StationClass::Get(_railstation.station_class); - _railstation.station_count = stclass->GetSpecCount(); - _railstation.station_type = std::min((int)_railstation.station_type, std::max(0, (int)_railstation.station_count - 1)); + if (y >= (int)this->station_classes.size()) return; + StationClassID station_class_id = this->station_classes[y]; + if (_railstation.station_class != station_class_id) { + StationClass *station_class = StationClass::Get(station_class_id); + _railstation.station_class = station_class_id; + _railstation.station_count = station_class->GetSpecCount(); + _railstation.station_type = 0; - this->CheckSelectedSize(stclass->GetSpec(_railstation.station_type)); + this->CheckSelectedSize(station_class->GetSpec(_railstation.station_type)); - NWidgetMatrix *matrix = this->GetWidget(WID_BRAS_MATRIX); - matrix->SetCount(_railstation.station_count); - matrix->SetClicked(_railstation.station_type); - } - if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); - this->SetDirty(); - DeleteWindowById(WC_SELECT_STATION, 0); - break; - } - y--; + NWidgetMatrix *matrix = this->GetWidget(WID_BRAS_MATRIX); + matrix->SetCount(_railstation.station_count); + matrix->SetClicked(_railstation.station_type); } + if (_settings_client.sound.click_beep) SndPlayFx(SND_15_BEEP); + this->SetDirty(); + DeleteWindowById(WC_SELECT_STATION, 0); break; } @@ -1367,6 +1494,17 @@ public: } }; +Listing BuildRailStationWindow::last_sorting = { false, 0 }; +Filtering BuildRailStationWindow::last_filtering = { false, 0 }; + +BuildRailStationWindow::GUIStationClassList::SortFunction * const BuildRailStationWindow::sorter_funcs[] = { + &StationClassIDSorter, +}; + +BuildRailStationWindow::GUIStationClassList::FilterFunction * const BuildRailStationWindow::filter_funcs[] = { + &TagNameFilter, +}; + static const NWidgetPart _nested_station_builder_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), @@ -1379,6 +1517,13 @@ static const NWidgetPart _nested_station_builder_widgets[] = { NWidget(WWT_PANEL, COLOUR_DARK_GREEN), NWidget(NWID_HORIZONTAL), NWidget(NWID_VERTICAL), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_BRAS_FILTER_CONTAINER), + NWidget(NWID_HORIZONTAL), SetPadding(2, 2, 0, 5), + NWidget(WWT_TEXT, COLOUR_DARK_GREEN), SetFill(0, 1), SetDataTip(STR_LIST_FILTER_TITLE, STR_NULL), + NWidget(WWT_EDITBOX, COLOUR_GREY, WID_BRAS_FILTER_EDITBOX), SetFill(1, 0), SetResize(1, 0), + SetDataTip(STR_LIST_FILTER_OSKTITLE, STR_LIST_FILTER_TOOLTIP), + EndContainer(), + EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_BRAS_SHOW_NEWST_ADDITIONS), NWidget(NWID_HORIZONTAL), SetPIP(7, 0, 7), SetPadding(2, 0, 1, 0), NWidget(WWT_MATRIX, COLOUR_GREY, WID_BRAS_NEWST_LIST), SetMinimalSize(122, 71), SetFill(1, 0), @@ -1876,6 +2021,7 @@ static void ShowBuildWaypointPicker(Window *parent) void InitializeRailGui() { _build_depot_direction = DIAGDIR_NW; + _railstation.station_class = StationClassID::STAT_CLASS_DFLT; } /** diff --git a/src/widgets/rail_widget.h b/src/widgets/rail_widget.h index 65af03d4a4..f10f9bee48 100644 --- a/src/widgets/rail_widget.h +++ b/src/widgets/rail_widget.h @@ -62,6 +62,8 @@ enum BuildRailStationWidgets { WID_BRAS_IMAGE, ///< Panel used at each cell of the matrix. WID_BRAS_MATRIX_SCROLL, ///< Scrollbar of the matrix widget. + WID_BRAS_FILTER_CONTAINER, ///< Container for the filter text box for the station class list. + WID_BRAS_FILTER_EDITBOX, ///< Filter text box for the station class list. WID_BRAS_SHOW_NEWST_DEFSIZE, ///< Selection for default-size button for newstation. WID_BRAS_SHOW_NEWST_ADDITIONS, ///< Selection for newstation class selection list. WID_BRAS_SHOW_NEWST_MATRIX, ///< Selection for newstation image matrix. From bcb3313e134e0e8cf12366ec9d1340e9986ccc57 Mon Sep 17 00:00:00 2001 From: Matt Kimber Date: Sat, 13 Mar 2021 09:00:53 +0000 Subject: [PATCH 42/53] Feature: allow setting maximum zoom level at which sprites are drawn (#8604) --- src/lang/english.txt | 5 +++++ src/settings.cpp | 7 +++++++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/spriteloader/grf.cpp | 12 +++++++++++- src/table/settings.ini | 14 ++++++++++++++ 6 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 8f29dc5269..d4cf1e22e0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1661,12 +1661,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximum zoom in STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :The maximum zoom-in level for viewports. Note that enabling higher zoom-in levels increases memory requirements STR_CONFIG_SETTING_ZOOM_MAX :Maximum zoom out level: {STRING2} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :The maximum zoom-out level for viewports. Higher zoom-out levels might cause lag when used +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Highest resolution sprites to use: {STRING2} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limit the maximum resolution to use for sprites. Limiting sprite resolution will avoid using high resolution graphics even when available. This can help keep the game appearance unified when using a mix of GRF files with and without high resolution graphics. 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 :Town growth speed: {STRING2} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth STR_CONFIG_SETTING_TOWN_GROWTH_NONE :None diff --git a/src/settings.cpp b/src/settings.cpp index a69162708b..f1db6b4d48 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1127,6 +1127,13 @@ static bool ZoomMinMaxChanged(int32 p1) return true; } +static bool SpriteZoomMinChanged(int32 p1) { + GfxClearSpriteCache(); + /* Force all sprites to redraw at the new chosen zoom level */ + MarkWholeScreenDirty(); + return true; +} + /** * Update any possible saveload window and delete any newgrf dialogue as * its widget parts might change. Reinit all windows as it allows access to the diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 914ef933fa..d81c4d071f 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1495,6 +1495,7 @@ static SettingsContainer &GetSettingsTree() { graphics->Add(new SettingEntry("gui.zoom_min")); graphics->Add(new SettingEntry("gui.zoom_max")); + graphics->Add(new SettingEntry("gui.sprite_zoom_min")); graphics->Add(new SettingEntry("gui.smallmap_land_colour")); graphics->Add(new SettingEntry("gui.graph_line_thickness")); } diff --git a/src/settings_type.h b/src/settings_type.h index 433e8d5355..4137049607 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -117,6 +117,7 @@ struct GUISettings { uint8 window_soft_limit; ///< soft limit of maximum number of non-stickied non-vital windows (0 = no limit) ZoomLevel zoom_min; ///< minimum zoom out level ZoomLevel zoom_max; ///< maximum zoom out level + ZoomLevel sprite_zoom_min; ///< maximum zoom level at which higher-resolution alternative sprites will be used (if available) instead of scaling a lower resolution sprite byte autosave; ///< how often should we do autosaves? bool threaded_saves; ///< should we do threaded saves? bool keep_all_autosave; ///< name the autosave in a different way diff --git a/src/spriteloader/grf.cpp b/src/spriteloader/grf.cpp index f3c3ed8ac7..30ea094443 100644 --- a/src/spriteloader/grf.cpp +++ b/src/spriteloader/grf.cpp @@ -11,6 +11,7 @@ #include "../gfx_func.h" #include "../fileio_func.h" #include "../debug.h" +#include "../settings_type.h" #include "../strings_func.h" #include "table/strings.h" #include "../error.h" @@ -265,7 +266,16 @@ uint8 LoadSpriteV2(SpriteLoader::Sprite *sprite, uint8 file_slot, size_t file_po byte colour = type & SCC_MASK; byte zoom = FioReadByte(); - if (colour != 0 && (load_32bpp ? colour != SCC_PAL : colour == SCC_PAL) && (sprite_type != ST_MAPGEN ? zoom < lengthof(zoom_lvl_map) : zoom == 0)) { + bool is_wanted_colour_depth = (colour != 0 && (load_32bpp ? colour != SCC_PAL : colour == SCC_PAL)); + bool is_wanted_zoom_lvl; + + if (sprite_type != ST_MAPGEN) { + is_wanted_zoom_lvl = (zoom < lengthof(zoom_lvl_map) && zoom_lvl_map[zoom] >= _settings_client.gui.sprite_zoom_min); + } else { + is_wanted_zoom_lvl = (zoom == 0); + } + + if (is_wanted_colour_depth && is_wanted_zoom_lvl) { ZoomLevel zoom_lvl = (sprite_type != ST_MAPGEN) ? zoom_lvl_map[zoom] : ZOOM_LVL_NORMAL; if (HasBit(loaded_sprites, zoom_lvl)) { diff --git a/src/table/settings.ini b/src/table/settings.ini index b48ac6cd6a..6e19e3ade1 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -39,6 +39,7 @@ static bool RedrawTownAuthority(int32 p1); static bool InvalidateCompanyInfrastructureWindow(int32 p1); static bool InvalidateCompanyWindow(int32 p1); static bool ZoomMinMaxChanged(int32 p1); +static bool SpriteZoomMinChanged(int32 p1); static bool MaxVehiclesChanged(int32 p1); static bool InvalidateShipPathCache(int32 p1); @@ -2830,6 +2831,19 @@ strval = STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X proc = ZoomMinMaxChanged startup = true +[SDTC_VAR] +var = gui.sprite_zoom_min +type = SLE_UINT8 +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING +def = ZOOM_LVL_MIN +min = ZOOM_LVL_MIN +max = ZOOM_LVL_OUT_4X +str = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN +strhelp = STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT +strval = STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN +proc = SpriteZoomMinChanged + [SDTC_BOOL] var = gui.population_in_label flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC From 8230cd009d1c8aeaa7b8ea353db2f94027b97eb7 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Fri, 12 Mar 2021 09:23:03 +0100 Subject: [PATCH 43/53] Fix: calling "exec" from script never returned Example: exec other.script echo hello The "echo" was never executed. --- src/console_cmds.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 18c4263f5d..f66cfa6b67 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -45,7 +45,7 @@ #include "safeguards.h" /* scriptfile handling */ -static bool _script_running; ///< Script is running (used to abort execution when #ConReturn is encountered). +static uint _script_current_depth; ///< Depth of scripts running (used to abort execution when #ConReturn is encountered). /** File list storage for the console, for caching the last 'ls' command. */ class ConsoleFileList : public FileList { @@ -960,10 +960,11 @@ DEF_CONSOLE_CMD(ConExec) return true; } - _script_running = true; + _script_current_depth++; + uint script_depth = _script_current_depth; char cmdline[ICON_CMDLN_SIZE]; - while (_script_running && fgets(cmdline, sizeof(cmdline), script_file) != nullptr) { + while (fgets(cmdline, sizeof(cmdline), script_file) != nullptr) { /* Remove newline characters from the executing script */ for (char *cmdptr = cmdline; *cmdptr != '\0'; cmdptr++) { if (*cmdptr == '\n' || *cmdptr == '\r') { @@ -972,13 +973,18 @@ DEF_CONSOLE_CMD(ConExec) } } IConsoleCmdExec(cmdline); + /* Ensure that we are still on the same depth or that we returned via 'return'. */ + assert(_script_current_depth == script_depth || _script_current_depth == script_depth - 1); + + /* The 'return' command was executed. */ + if (_script_current_depth == script_depth - 1) break; } if (ferror(script_file)) { IConsoleError("Encountered error while trying to read from script file"); } - _script_running = false; + if (_script_current_depth == script_depth) _script_current_depth--; FioFCloseFile(script_file); return true; } @@ -990,7 +996,7 @@ DEF_CONSOLE_CMD(ConReturn) return true; } - _script_running = false; + _script_current_depth--; return true; } From 5056e963bab9683656e07e527b339f370383fa77 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Fri, 12 Mar 2021 09:26:03 +0100 Subject: [PATCH 44/53] Fix #8851: don't allow infinite "exec" depth in script, but limit to 10 deep This means if you execute a script from a script from a script, .. for more than 10 times, it bails out now. This should be sufficient for even the most complex scripts. --- src/console_cmds.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index f66cfa6b67..f50644cf5b 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -960,6 +960,11 @@ DEF_CONSOLE_CMD(ConExec) return true; } + if (_script_current_depth == 11) { + IConsoleError("Maximum 'exec' depth reached; script A is calling script B is calling script C ... more than 10 times."); + return true; + } + _script_current_depth++; uint script_depth = _script_current_depth; From 062eeb9810b1c222cb9b0cb331041c0934e49682 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 13 Mar 2021 19:03:00 +0000 Subject: [PATCH 45/53] Update: Translations from eints english (us): 7 changes by 2TallTyler estonian: 17 changes by siimsoni hungarian: 100 changes by pnpBrumi ukrainian: 8 changes by StepanIvasyn dutch: 24 changes by Afoklala spanish: 338 changes by MontyMontana french: 29 changes by MalaGaM portuguese (brazilian): 1 change by Greavez --- src/lang/brazilian_portuguese.txt | 2 +- src/lang/dutch.txt | 31 +- src/lang/english_US.txt | 7 + src/lang/estonian.txt | 17 + src/lang/french.txt | 41 +- src/lang/hungarian.txt | 116 ++++- src/lang/spanish.txt | 676 +++++++++++++++--------------- src/lang/ukrainian.txt | 8 + 8 files changed, 524 insertions(+), 374 deletions(-) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 53b2cf3890..a9d20bcf43 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2296,7 +2296,7 @@ STR_CONTENT_DETAIL_NAME :{SILVER}Nome: { STR_CONTENT_DETAIL_VERSION :{SILVER}Versão: {WHITE}{STRING} STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Descrição: {WHITE}{STRING} STR_CONTENT_DETAIL_URL :{SILVER}URL: {WHITE}{STRING} -STR_CONTENT_DETAIL_TYPE :{SILVER}Tipp: {WHITE}{STRING} +STR_CONTENT_DETAIL_TYPE :{SILVER}Tipo: {WHITE}{STRING} STR_CONTENT_DETAIL_FILESIZE :{SILVER}Tamanho: {WHITE}{BYTES} STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Selecionado pois: {WHITE}{STRING} STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Dependentes: {WHITE}{STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index c5192c947f..afb7e0d9c1 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1000,7 +1000,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Vink dit STR_GAME_OPTIONS_RESOLUTION :{BLACK}Schermresolutie STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecteer de schermresolutie STR_GAME_OPTIONS_RESOLUTION_OTHER :Anders +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardwareversnelling +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Selecteer dit vakje om OpenTTD hardwareversnelling te laten gebruiken. De gewijzigde instelling wordt pas van kracht nadat het spel opnieuw is gestart. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}De instelling wordt pas van kracht als het spel opnieuw is gestart STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Menupuntgrootte STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kiest de grootte van bedieningselementen @@ -1018,7 +1022,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbele grootte STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Viervoudige grootte +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafische elementen +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Verversingssnelheid weergeven +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecteer de gewenste schermverversingssnelheid +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :overige +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Verversingssnelheden boven 60 Hz kunnen de prestaties beïnvloeden. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kiest de te gebruiken basisset voor grafische elementen @@ -1791,6 +1801,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Geen geh STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit verlaagt de prestaties van OpenTTD. Om het benodigde geheugen te verminderen, kun je proberen om 32bpp-beeldelementen en/of inzoomniveaus uit te schakelen # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Fout met video-instellingen... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... geen compatibele GPU gevonden. Hardwareversnelling is uitgeschakeld # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3181,19 +3193,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Nieuwe gebouwen STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Exclusieve transportrechten kopen STR_LOCAL_AUTHORITY_ACTION_BRIBE :Gemeentebestuur omkopen -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een reconstructie van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe commerciële gebouwen in de stad financieren.{}Kosten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1 jaar exclusieve transportrechten kopen in deze plaats. Het gemeentebestuur staat alleen passagiers en vracht toe bij jouw stations.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een klein gebied rondom het centrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een middelgroot gebied rondom het centrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een groot gebied rondom het centrum.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een reconstructie van het wegennetwerk.{}Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Zorgt voor een blijvend hogere stationswaardering in deze stad.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe gebouwen in de stad financieren.{}Zorgt voor een tijdelijk hogere groei van deze stad.{}Kosten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1 jaar exclusieve transportrechten kopen in deze plaats.{}Het gemeentebestuur staat alleen passagiers en vracht toe bij jouw stations.{}Kosten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop het plaatselijk gezag om om je reputatie te verhogen met het risico op een strenge sanctie wanneer je gepakt wordt.{}Kosten: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Doelen STR_GOALS_SPECTATOR_CAPTION :{WHITE}Algemene doelen STR_GOALS_SPECTATOR :Algemene doelen +STR_GOALS_GLOBAL_BUTTON :{BLACK}Algemeen +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Algemene doelen weergeven +STR_GOALS_COMPANY_BUTTON :{BLACK}Bedrijf +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Bedrijfsdoelen weergeven STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Geen - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3568,6 +3584,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Aangedre STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Om te bouwen naar: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alle vrachttypen STR_PURCHASE_INFO_NONE :Geen +STR_PURCHASE_INFO_ENGINES_ONLY :Alleen voertuigen STR_PURCHASE_INFO_ALL_BUT :Alles behalve {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. trekkracht: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Bereik: {GOLD}{COMMA} tegels diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 8ec9ecd0dd..e3e854e3c1 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1000,6 +1000,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Check th STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen resolution STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use STR_GAME_OPTIONS_RESOLUTION_OTHER :other +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart @@ -1021,7 +1022,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Select the screen refresh rate to use +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :other +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Refresh rates higher than 60Hz might impact performance. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index cc647a7244..b8b00648f8 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1057,7 +1057,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Märgi s STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekraanilahutus STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekraanilahutuse valimine STR_GAME_OPTIONS_RESOLUTION_OTHER :muu +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Riistvarakiirendus +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Märgides selle ruudu, lubad OpenTTD-l üritada kasutada riistvarakiirendust. Muudetud seade omab mõju pärast mängu taaskäivitust +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Seade omab mõju alles pärast mängu taaskäivitust STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Liidese suurus STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vali kasutatav liideseelementide suurus @@ -1075,7 +1079,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Tavaline STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Topeltsuurus STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Neljakordne suurus +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graafika +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Näita värskendussagedust +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Vali, mis värskendussagedust kasutada +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :muu +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Värskendussagedused üle 60Hz võivad jõudlusele löögi anda. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Lähtegraafikakogu STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valib kasutatava lähtegraafikakogu @@ -1848,6 +1858,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Vahemäl STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Pildipuhvri (ingl k «spritecache») suurendamine {BYTES} võrra ebaõnnestus. Pildipuhvri uus suurus on {BYTES}. Seetõttu on OpenTTD nüüd aeglasem. 32 bpp graafika keelamine ja suurendusastme ülempiirangu vähendamine piirab vahemälu tarbimist # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Videoseadete viga... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... ei leitud ühilduvat GPU-d. Riistvarakiirendus väljalülitatud # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -3252,6 +3264,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Kohali STR_GOALS_CAPTION :{WHITE}{COMPANY} eesmärgid STR_GOALS_SPECTATOR_CAPTION :{WHITE}Üldeesmärgid STR_GOALS_SPECTATOR :Üleilmsed eesmärgid +STR_GOALS_GLOBAL_BUTTON :{BLACK}Üleilmne +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Näita üleilmseid eesmärke +STR_GOALS_COMPANY_BUTTON :{BLACK}Ettevõte +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Näita ettevõtte eesmärke STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Mitte ühtegi - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3626,6 +3642,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Kiirenda STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Ümberseadistatav: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Kõik kaubatüübid STR_PURCHASE_INFO_NONE :Puudub +STR_PURCHASE_INFO_ENGINES_ONLY :Vaid vedurid STR_PURCHASE_INFO_ALL_BUT :Kõik, välja arvatud {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Suurim veojõud: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Tegevusradius: {GOLD}{COMMA} ruutu diff --git a/src/lang/french.txt b/src/lang/french.txt index fa2674bc4a..19fdad4bdf 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -161,7 +161,7 @@ STR_ABBREV_BATTERIES :{TINY_FONT}BA STR_ABBREV_PLASTIC :{TINY_FONT}PL STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GZ STR_ABBREV_NONE :{TINY_FONT}NO -STR_ABBREV_ALL :{TINY_FONT}ALL +STR_ABBREV_ALL :{TINY_FONT}TOUT # 'Mode' of transport for cargoes STR_PASSENGERS :{COMMA}{NBSP}passager{P "" s} @@ -902,7 +902,7 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Modifier STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Copier l'emplacement de cette vue vers la vue principale # Game options window -STR_GAME_OPTIONS_CAPTION :{WHITE}Options +STR_GAME_OPTIONS_CAPTION :{WHITE}Options du jeu STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Devise STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Sélectionner l'unité monétaire @@ -1001,7 +1001,11 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Cocher c STR_GAME_OPTIONS_RESOLUTION :{BLACK}Résolution STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Sélectionner la résolution d'écran à utiliser STR_GAME_OPTIONS_RESOLUTION_OTHER :autre +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK} Accélération matérielle +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Cochez cette case permet à OpenTTD d'utiliser l'accélération matérielle, si possible. Un paramètre modifié ne sera pris en compte qu'au redémarrage du jeu +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Les paramètres ne prendront effet qu'après le redémarrage du jeu STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Taille d'interface STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Choisir la taille d'élément d'interface à utiliser @@ -1019,7 +1023,13 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Taille double STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple +STR_GAME_OPTIONS_GRAPHICS :Graphiques {BLACK} +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK} Taux de rafraîchissement de l'affichage +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK} Sélectionnez la fréquence de rafraîchissement à utiliser +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :autres +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE} Les taux de rafraîchissement supérieurs à 60Hz peuvent avoir un impact sur les performances. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Graphiques de base STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser @@ -1792,6 +1802,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Plus de STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'allocation de {BYTES} pour le cache des sprites a échoué. Le cache des sprites a été réduit à {BYTES}. Cela va réduire les performances d'OpenTTD. Pour diminuer les besoins en mémoire vous pouvez essayer de désactiver les graphismes 32bpp et/ou les niveaux de zoom avant # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE} Erreur avec les paramètres vidéo... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE} ... aucun GPU compatible trouvé. l'accélération matérielle est désactivée # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1808,7 +1820,7 @@ STR_INTRO_HIGHSCORE :{BLACK}Meilleur STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Paramètres STR_INTRO_NEWGRF_SETTINGS :{BLACK}Paramètres NewGRF STR_INTRO_ONLINE_CONTENT :{BLACK}Vérifier le contenu en ligne -STR_INTRO_SCRIPT_SETTINGS :{BLACK}Configuration des scripts +STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paramètres des IA/script jeu STR_INTRO_QUIT :{BLACK}Quitter STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Démarrer une nouvelle partie. Ctrl-clic pour passer outre la configuration du terrain. @@ -2006,7 +2018,7 @@ STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Recherch STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Rechercher des serveurs sur le réseau local STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Ajouter un serveur STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Ajouter un serveur à la liste de ceux parmi lesquels des parties en cours seront toujours cherchées -STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Démarrer le serveur +STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Héberger/créer un serveur de jeu STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP :{BLACK}Démarrer son propre serveur, sur cet ordinateur-ci STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE :{BLACK}Entrer votre nom @@ -2098,7 +2110,7 @@ STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Joueurs STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nouvelle compagnie STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Créer une nouvelle compagnie -STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observer une partie +STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observer la partie STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Observer une partie en tant que spectateur STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Rejoindre la compagnie STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Aider à gérer cette compagnie @@ -3182,19 +3194,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financer de nou STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Acheter les droits de transports exclusifs STR_LOCAL_AUTHORITY_ACTION_BRIBE :Corrompre la municipalité -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Lancer une petite campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Lancer une campagne de publicité moyenne, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Lancer une grande campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financer la reconstruction du réseau routier local. Provoque de nombreux problèmes de trafic routier pendant 6 mois.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construire une statue en l'honneur de votre compagnie.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financer la construction de nouveaux immeubles commerciaux.{}Coût{NBSP}: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Acheter les droits de transport exclusifs dans cette ville pour 1 an. Seules vos lignes seront autorisées dans la ville.{}Coût{NBSP}: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Lancez une petite campagne de publicité locale pour attirer plus de passagers et de marchandises vers vos services de transport.{} Augmente temporairement le classement des gares dans un petit rayon autour du centre-ville.{}Coût: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Lancer une campagne de publicité moyenne, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Augmente temporairement le classement de vos gares dans un rayon moyen autour du centre-ville.{}Coût:{CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Lancer une grande campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Augmente temporairement le classement des gares dans un rayon important autour du centre-ville.{}Coût: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financer la reconstruction du réseau routier local. Provoque de nombreux problèmes de trafic routier pendant 6 mois.{}Coût: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construire une statue en l'honneur de votre compagnie.{}Augmente en permanence le classement de vos stations dans cette ville.{}Coût:{CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financer la construction de nouveaux immeubles commerciaux.{}Stimule temporairement la croissance dans cette ville.{}Coût:{CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Achetez les droits de transport exclusifs d'un an pour la ville.{} La municipalité n'autorisera pas les passagers et les marchandises à utiliser les gares de vos concurrents.{} Coût: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Corrompre la municipalité pour améliorer votre réputation. Risque de pénalisation si le pot-de-vin est dévoilé.{}Coût{NBSP}: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Objectifs de {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectifs globaux STR_GOALS_SPECTATOR :Objectifs globaux +STR_GOALS_GLOBAL_BUTTON :{BLACK} Globaux +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK} Afficher les objectifs généraux +STR_GOALS_COMPANY_BUTTON :{BLACK} compagnie +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK} Afficher les objectifs de votre compagnie STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}− Aucun − STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3569,6 +3585,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Wagons m STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Réaménageable pour{NBSP}: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Tous les types de cargaison STR_PURCHASE_INFO_NONE :Aucune cargaison +STR_PURCHASE_INFO_ENGINES_ONLY :Moteurs uniquement STR_PURCHASE_INFO_ALL_BUT :Tous sauf {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Effort de traction max.{NBSP}: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rayon d'action{NBSP}: {GOLD}{COMMA}{NBSP}cases diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 8827109cc1..09ae3a52e1 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -257,6 +257,7 @@ STR_COLOUR_DEFAULT :Alapértelmezet STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mi/h STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s +STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}mező/nap STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}LE STR_UNITS_POWER_METRIC :{COMMA}{NBSP}LE @@ -375,8 +376,15 @@ STR_SORT_BY_CARGO_CAPACITY :Szállítási k STR_SORT_BY_RANGE :Hatótávolság STR_SORT_BY_POPULATION :Lakosság STR_SORT_BY_RATING :Értékelés +STR_SORT_BY_NUM_VEHICLES :Járművek száma +STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Tavalyi összes profit +STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Idei összes profit +STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Tavalyi átlagos profit +STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Idei átlagos profit # Group by options for vehicle list +STR_GROUP_BY_NONE :Nincs +STR_GROUP_BY_SHARED_ORDERS :Megosztott utasítások # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Játék szüneteltetése @@ -803,6 +811,7 @@ STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Göröngyös Talaj STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Füves Talaj STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Csupasz Föld +STR_SMALLMAP_LEGENDA_RAINFOREST :{TINY_FONT}{BLACK}Esőerdő STR_SMALLMAP_LEGENDA_FIELDS :{TINY_FONT}{BLACK}Szántóföld STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Fa STR_SMALLMAP_LEGENDA_ROCKS :{TINY_FONT}{BLACK}Kő @@ -834,6 +843,7 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Minden r STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Utolsó üzenet vagy újsághír megmutatása STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {COMPANY} - - STR_STATUSBAR_PAUSED :{YELLOW}* * SZÜNET * * +STR_STATUSBAR_PAUSED_LINK_GRAPH :{ORANGE}* * SZÜNET (várakozás a kapcsolati gráf frissítésére) * * STR_STATUSBAR_AUTOSAVE :{RED}Automatikus mentés STR_STATUSBAR_SAVING_GAME :{RED}* * JÁTÉK MENTÉSE * * @@ -1000,6 +1010,8 @@ STR_GAME_OPTIONS_CURRENCY_NTD :Új Tajvani Dol STR_GAME_OPTIONS_CURRENCY_CNY :Kínai Renminbi (CNY) STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongi Dollár (HKD) STR_GAME_OPTIONS_CURRENCY_INR :Indiai Rúpia (INR) +STR_GAME_OPTIONS_CURRENCY_IDR :Indonéz rúpia (IDR) +STR_GAME_OPTIONS_CURRENCY_MYR :Maláj ringgit (MYR) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Balra hajtás @@ -1052,11 +1064,16 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Jelöld STR_GAME_OPTIONS_RESOLUTION :{BLACK}Képernyő felbontás STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Játékhoz használt felbontás kiválasztása STR_GAME_OPTIONS_RESOLUTION_OTHER :egyéb +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardveres gyorsítás +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Bekapcsolásával az OpenTTD hardveres gyorsítást próbál alkalmazni. A beállítás csak a játék újraindítása után lép érvénybe. +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Ez a beállítás csak a játék újraindítása után lép érvénybe STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Felület mérete STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Használni kívánt felületméret kiválasztása +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(automatikus) STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normál STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dupla méret STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Négyszeres méret @@ -1064,11 +1081,18 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Négyszeres mé STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Betűméret STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Használni kívánt betűméret kiválasztása +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(automatikus) STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normál STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dupla méret STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Négyszeres méret +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafika +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Képernyőfrissítési frekvencia +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Játékhoz használt képernyőfrissítési frekvencia kiválasztása +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :egyéb +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}A 60 Hz-nél nagyobb frekvencia befolyással lehet a teljesítményre. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikus alapcsomag STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}A játékhoz használandó grafikus alapcsomag kiválasztása @@ -1505,6 +1529,12 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Építő eszkö STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Az építő eszközök, pl. hidak, alagutak stb. aktívan tartása használatuk után STR_CONFIG_SETTING_EXPENSES_LAYOUT :Kiadási/bevételi adatok csoportosítása a pénzügyi ablakban: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :A pénzügyi adatok ablak elrendezésének beállítása +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Jelzők automatikus eltávolítása vasúti pálya építésekor: {STRING} +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automatikusan eltávolítja a jelzőket vasúti pálya építésekor, ha útban vannak. Potenciálisan vasúti baleseteket okozhat! +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :A játék gyorsításának maximális értéke: {STRING} +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Megadja, hogy milyen gyorsan fusson a játék, ha a gyorsítás be van kapcsolva. 0 esetén nincs korlát, olyan gyorsan fog futni, ahogyan a számítógéped bírja. 100% alatt a játék lassabb lesz. A felső határ a számítógéped teljesítményétől és magától a játéktól is függ. +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :A normál sebesség {NUM}%-a +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Nincs korlát (ahogyan a számítógéped bírja) STR_CONFIG_SETTING_SOUND_TICKER :Hírsáv: {STRING} STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Hang lejátszása új hír érkezésekor @@ -1618,7 +1648,11 @@ STR_CONFIG_SETTING_ENDING_YEAR :Játék végi p STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :A játék ebben az évben ér véget pontozás szempontjából. Ennek az évnek a végén a vállalat teljesítménypontszáma rögzítésre kerül, és adott esetben megjelenik a rekord táblán, de a játékosok ezután folytathatják a játékot.{}Ha ez a kezdő év elé van állítva, akkor a rekord tábla sosem jelenik meg. STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Soha +STR_CONFIG_SETTING_ECONOMY_TYPE :Gazdaság típusa: {STRING} +STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :Egyenletes gazdaság esetén a termelés gyakrabban, de kisebb mértékben változik. Stagnáló gazdaság esetén a termelés egyáltalán nem változik, a gazdasági épületek nem zárnak be. NewGRF-ből származó gazdasági épületek esetén ennek a beállításnak lehet, hogy nem lesz hatása. STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Eredeti +STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Egyenletes +STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Stagnáló STR_CONFIG_SETTING_ALLOW_SHARES :Más vállalatokból lehet részvényt vásárolni: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Bekapcsolva engedélyezi más vállalatok részvényeinek megvásárlását. A részvények csak akkor elérhetőek, ha a vállalat elért egy bizonyos kort STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Vállalatok minimális életkora részvénykibocsátáshoz: {STRING} @@ -1670,6 +1704,10 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Lineáris STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Játékbeli faelhelyezkedés: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Fák véletlenszerű megjelenésének szabályozása a játék során. Ez befolyásolhatja a gazdasági épületeket, melyek a fák növekedésétől függnek, mint a favágók +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Növekedjenek, de ne terjedjenek {RED}(favágók ellehetetlenítése) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Növekedjenek és esőerdőkben terjedjenek +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Növekedjenek és mindenhol terjedjenek +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :Ne növekedjenek és ne terjedjenek {RED}(favágók ellehetetlenítése) STR_CONFIG_SETTING_TOOLBAR_POS :A fő eszközsor helye: {STRING} STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :A fő eszközsor vízszintes elhelyezésének beállítása a képernyő tetején @@ -1736,6 +1774,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :A sebességért STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Angolszász (mi/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrikus (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Játékbeli egység (mező/nap) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Teljesítmény mértékegysége: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :A teljesítményértékek a kiválasztott mértékegységben fognak megjelenni a felhasználói felületen @@ -1826,6 +1865,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Kevés a STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} memória gyorsítótár kiosztása sikertelen. A gyorsítótár le lett csökkentve {BYTES}ra. Ez csökkenti az OpenTTD teljesítményét. Csökkentheted a memóriaigényt, ha kikapcsolod a 32bpp grafikát és/vagy a nagyítási szinteket # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Hiba a videobeállításokban... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... nem található kompatibilis GPU. Hardveres gyorsítás kikapcsolva. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1870,6 +1911,7 @@ STR_INTRO_TRANSLATION :{BLACK}Ebből a # Quit window STR_QUIT_CAPTION :{WHITE}Kilépés +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Biztosan bezárod ezt a programot? STR_QUIT_YES :{BLACK}Igen STR_QUIT_NO :{BLACK}Nem @@ -1881,6 +1923,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}Biztosa # Cheat window STR_CHEATS :{WHITE}Csalások STR_CHEATS_TOOLTIP :{BLACK}A kijelölőnégyzetek jelzik a csalások eddigi használatát +STR_CHEATS_NOTE :{BLACK}Megjegyzés: a csalások használata mentve lesz a játékmentésben. STR_CHEAT_MONEY :{LTBLUE}Tőkeemelés {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Irányított vállalat: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Csodabuldózer (lerombol gazdasági épületeket, mozgathatatlan objektumokat): {ORANGE}{STRING} @@ -2032,6 +2075,10 @@ STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Csatlako STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Szerver frissítése STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Szerver infó frissítése +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :{BLACK}Keresés interneten +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK}Nyilvános szerverek keresése az interneten +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Keresés helyi hálózaton +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Szerverek keresése a helyi hálózaton STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Szerver hozzáadása STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Hozzáadja a szervert a listához, így később gyorsabban tudsz hozzá csatlakozni STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Szerver indítása @@ -2263,6 +2310,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :játékosok sz STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :kapcsolódó kliensek STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :kézi STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :játékszkript +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH :várakozás a kapcsolati gráf frissítésére ############ End of leave-in-this-order STR_NETWORK_MESSAGE_CLIENT_LEAVING :kilépés STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} csatlakozott a játékhoz @@ -2272,6 +2320,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} cs STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} új vállalatot alapított (#{2:NUM}) STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} kilépett a játékból ({2:STRING}) STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} nevet változtatott. Új neve: {STRING} +STR_NETWORK_MESSAGE_GIVE_MONEY :*** {0:STRING} a következő összeget utalta {1:STRING} részére: {2:CURRENCY_LONG} STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}A szerver leállította a játékot STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}A szerver újraindul...{}Türelem... STR_NETWORK_MESSAGE_KICKED :*** {STRING} ki lett rúgva. Oka: ({STRING}) @@ -2391,6 +2440,7 @@ STR_JOIN_WAYPOINT_CAPTION :{WHITE}Ellenőr STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Különálló ellenőrző pont építése # Generic toolbar +STR_TOOLBAR_DISABLED_NO_VEHICLE_AVAILABLE :{BLACK}Kikapcsolva, mivel semmilyen jármű sem tudná használni # Rail construction toolbar STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Vasút építése @@ -2586,6 +2636,12 @@ STR_TREES_RANDOM_TYPE :{BLACK}Véletle STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Véletlenszerűen kiválasztott fákat helyez el. Shift lenyomásával megmutatja a várható telepítési költséget STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Véletlenszerű fák STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Véletlenszerűen fákat ültet a térképre +STR_TREES_MODE_NORMAL_BUTTON :{BLACK}Normál +STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}A tájon való húzással egyesével fákat ültet. +STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}Liget +STR_TREES_MODE_FOREST_SM_TOOLTIP :{BLACK}A tájon való húzással kis erdőket, ligeteket ültet. +STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Erdő +STR_TREES_MODE_FOREST_LG_TOOLTIP :{BLACK}A tájon való húzással nagy erdőket ültet. # Land generation window (SE) STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Táj szerkesztése @@ -2636,12 +2692,18 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Véletle # Fund new industry window STR_FUND_INDUSTRY_CAPTION :{WHITE}Új gazdasági épület STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Megfelelő gazdasági épülettípus kiválasztása a listából -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :Sok véletlen gazdasági épület +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Sok véletlen gazdasági épület STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Elhelyez a térképen véletlenszerüen sok gazdasági épületet +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION :{WHITE}Sok véletlen gazdasági épület +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}Tényleg szeretnél sok véletlen gazdasági épületet felépíteni? STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Ár: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Kutatás STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Épít STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Alapít +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Összes gazdasági épület eltávolítása +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Eltávolítja az összes, a térképen található gazdasági épületet +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Összes gazdasági épület eltávolítása +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Biztosan el akarod távolítani az összes gazdasági épületet? # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Ipari láncolat {STRING} gazdasági épületnek @@ -2872,6 +2934,8 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: STR_SAVELOAD_FILTER_TITLE :{BLACK}Szűrő: STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Fájl felülírása STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Biztos vagy benne, hogy felülírod a létező fájlt? +STR_SAVELOAD_DIRECTORY :{STRING} (Könyvtár) +STR_SAVELOAD_PARENT_DIRECTORY :{STRING} (Szülőkönyvtár) STR_SAVELOAD_OSKTITLE :{BLACK}Add meg a játékmentés nevét @@ -3132,6 +3196,7 @@ STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Kis- és # Sign window STR_EDIT_SIGN_CAPTION :{WHITE}Felirat szerkesztése +STR_EDIT_SIGN_LOCATION_TOOLTIP :{BLACK}A fő nézetet a felirat helyére állítja. Ctrl+kattintás esetén új nézetet nyit a felirat helyére. STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Következő felirat STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Előző felirat @@ -3192,19 +3257,23 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Új épületek STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Kizárólagos szállítási jogok vásárlása STR_LOCAL_AUTHORITY_ACTION_BRIBE :Önkormányzat megvesztegetése -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Kis helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Közepes helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Nagy helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}A városi úthálózat felújításának támogatása. Hat hónapig jelentősen összezavarja a közúti forgalmat.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Szobor építése a vállalatod tiszteletére.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Új kereskedelmi épületek építésének támogatása a városban.{}Ára: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Egy éves kizárólagos szállítási jogok vásárlása a városban. Az önkormányzat csak a te állomásaid használatát engedi meg az utasoknak és a rakományoknak.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Kis helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}A város körül kis területen ideiglenesen javítja az állomásaid minősítését.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Közepes helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}A város körül közepes méretű területen ideiglenesen javítja az állomásaid minősítését.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Nagy helyi reklámhadjárat indítása, hogy több utast és rakományt vonzz a megállóidba.{}A város körül nagy területen ideiglenesen javítja az állomásaid minősítését.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}A városi úthálózat felújításának támogatása.{}Hat hónapig jelentősen összezavarja a közúti forgalmat.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Szobor építése a vállalatod tiszteletére.{}Javítja az állomásaid értékelését a városban.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Új kereskedelmi épületek építésének támogatása a városban.{}A város egy ideig gyorsabban fog növekedni.{}Ára: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Egy éves kizárólagos szállítási jogok vásárlása a városban.{}Az önkormányzat megtiltja az utasoknak és a rakományoknak, hogy más vállalatok állomásait használják.{}Ára: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}A megítélésed növelése az önkormányzat megvesztegetésével, komoly büntetést kockáztatva, ha az kiderül.{}Ára: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} céljai STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globális célok STR_GOALS_SPECTATOR :Globális célok +STR_GOALS_GLOBAL_BUTTON :{BLACK}Globális célok +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Globális célok mutatása +STR_GOALS_COMPANY_BUTTON :{BLACK}Vállalati célok +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Vállalati célok mutatása STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nincs - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -3212,10 +3281,10 @@ STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Kattintással a fő nézetet a célra állítja. Ctrl+kattintással új látképet nyit a gazdasági épület/település/mező helyéről # Goal question window -STR_GOAL_QUESTION_CAPTION_QUESTION :Kérdés -STR_GOAL_QUESTION_CAPTION_INFORMATION :Információ -STR_GOAL_QUESTION_CAPTION_WARNING :Figyelmeztetés -STR_GOAL_QUESTION_CAPTION_ERROR :Hiba +STR_GOAL_QUESTION_CAPTION_QUESTION :{BLACK}Kérdés +STR_GOAL_QUESTION_CAPTION_INFORMATION :{BLACK}Információ +STR_GOAL_QUESTION_CAPTION_WARNING :{BLACK}Figyelmeztetés +STR_GOAL_QUESTION_CAPTION_ERROR :{YELLOW}Hiba ############ Start of Goal Question button list STR_GOAL_QUESTION_BUTTON_CANCEL :Mégse @@ -3424,6 +3493,7 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}25%-nyi STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :A vállalat neve STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Elnök neve +STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Mennyi pénzt szeretnél adományozni? STR_BUY_COMPANY_MESSAGE :{WHITE}Vállalatunk vagyontárgyait eladásra kínáljuk: járművek, terület és hálózat tulajdonok, bankszámla{}{}Megveszed {COMPANY} vállalatot {CURRENCY_LONG}-ért? @@ -3578,6 +3648,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Meghajto STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Átalakítható: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Minden rakománytípusra STR_PURCHASE_INFO_NONE :Semmi +STR_PURCHASE_INFO_ENGINES_ONLY :Csak mozdonyok STR_PURCHASE_INFO_ALL_BUT :Mindenre, kivéve {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximális vonóerő: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Hatótávolság: {GOLD}{COMMA} mező @@ -3784,6 +3855,10 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Az autom # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} +STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}Közelítés a vonat jelenlegi helyzetére. Dupla kattintással a fő nézetben követni fogja a vonatot. Ctrl+kattintással új nézet nyílik a vonat helyzetére. +STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}Közelítés a közúti jármű jelenlegi helyzetére. Dupla kattintással a fő nézetben követni fogja a járművet. Ctrl+kattintással új nézet nyílik a jármű helyzetére. +STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}Közelítés a hajó jelenlegi helyzetére. Dupla kattintással a fő nézetben követni fogja a hajót. Ctrl+kattintással új nézet nyílik a hajó helyzetére. +STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Közelítés a repülőgép jelenlegi helyzetére. Dupla kattintással a fő nézetben követni fogja a repülőgépet. Ctrl+kattintással új nézet nyílik a repülőgép helyzetére. STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}A járműtelepre küldi a vonatot. Ctrl+kattintással csak javításra STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Garázsba küldi a járművet. Ctrl+kattintással csak javításra @@ -3815,7 +3890,12 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}A közú STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}A hajó adatai STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}A repülőgép adatai +STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}Aktuális vonatmozgás - kattints ide a vonat elindításához vagy megállításához. +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATUS_START_STOP_TOOLTIP :{BLACK}Aktuális járműmozgás - kattints ide a jármű elindításához vagy megállításához. +STR_VEHICLE_VIEW_SHIP_STATE_STATUS_STOP_TOOLTIP :{BLACK}Aktuális hajómozgás - kattints ide a hajó elindításához vagy megállításához. +STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Aktuális repülőgépmozgás - kattints ide a repülőgép elindításához vagy megállításához. +STR_VEHICLE_VIEW_ORDER_LOCATION_TOOLTIP :{BLACK}Közelítés a célpontra. Ctrl+kattintással új nézet nyílik a célpont helyére. # Messages in the start stop button in the vehicle view STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Berakodás / Kirakodás @@ -4288,6 +4368,7 @@ STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :A játékállá STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :A fájl nem olvasható STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :A fájl nem írható STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Adat integritás hiba +STR_GAME_SAVELOAD_ERROR_PATCHPACK :A játékállást a játék módosított változata mentette el STR_GAME_SAVELOAD_NOT_AVAILABLE : STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}A játék olyan verzióban lett elmentve, ami nem támogatja a villamosokat. Az összes villamos el lett távolítva @@ -4368,6 +4449,7 @@ STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... ninc STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} kellene hozzá STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Nem törleszthetsz a kölcsönből... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Nem tudod a banktól kölcsönkapott pénzt továbbadni... +STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Nem tudsz pénzt adományozni a vállalatnak... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Nem veheted meg a vállalatot... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Nem építheted ide a székházadat... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Nem vehetsz 25%-nyi részvényt ebből a vállalatból... @@ -4494,6 +4576,8 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Rossz járműte STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} túl hosszú a csere után STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Nincsenek automatikus járműfelújítási szabályok alkalmazva STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(pénzlimit) +STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}Az új jármű nem tud {STRING.t} szállítani +STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Az új jármű nem alakítható át a(z) {NUM}. utasítás során # Rail construction errors STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Nem lehetséges vágányösszetétel @@ -4812,10 +4896,10 @@ STR_INDUSTRY_NAME_SUGAR_MINE.t :cukorbányát ##id 0x6000 STR_SV_EMPTY : STR_SV_UNNAMED :Névtelen -STR_SV_TRAIN_NAME :Vonat {COMMA} -STR_SV_ROAD_VEHICLE_NAME :Közúti jármű {COMMA} -STR_SV_SHIP_NAME :Hajó {COMMA} -STR_SV_AIRCRAFT_NAME :Repülő {COMMA} +STR_SV_TRAIN_NAME :Vonat #{COMMA} +STR_SV_ROAD_VEHICLE_NAME :Közúti jármű #{COMMA} +STR_SV_SHIP_NAME :Hajó #{COMMA} +STR_SV_AIRCRAFT_NAME :Repülő #{COMMA} STR_SV_STNAME :{STRING} STR_SV_STNAME_NORTH :{STRING} Észak diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3ed12320ca..93774464df 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -227,7 +227,7 @@ STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m # Common window strings STR_LIST_FILTER_TITLE :{BLACK}Patrón de filtrado: -STR_LIST_FILTER_OSKTITLE :{BLACK}Escriba un patrón de filtrado +STR_LIST_FILTER_OSKTITLE :{BLACK}Escribe un patrón de filtrado STR_LIST_FILTER_TOOLTIP :{BLACK}Introduzca una palabra clave para filtrar la lista STR_TOOLTIP_GROUP_ORDER :{BLACK}Selecciona orden de agrupamiento @@ -256,10 +256,10 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Mostrar STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Mostrar ocultos STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Mostrar ocultos -STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Al activar este botón, los trenes ocultos también serán mostrados -STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Al activar este botón, los vehículos de carretera ocultos también serán mostrados -STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Al activar este botón, los barcos ocultos también serán mostrados -STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Al activar este botón, las aeronaves ocultas también serán mostradas +STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Al activar este botón, también se mostrarán los trenes ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Al activar este botón, también se mostrarán los vehículos de carretera ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Al activar este botón, también se mostrarán los barcos ocultos +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Al activar este botón, también se mostrarán las aeronaves ocultas # Query window STR_BUTTON_DEFAULT :{BLACK}Por defecto @@ -304,7 +304,7 @@ STR_SORT_BY_WAITING_AVAILABLE :Carga en espera STR_SORT_BY_RATING_MAX :Calificación más alta de carga STR_SORT_BY_RATING_MIN :Calificación más baja de carga STR_SORT_BY_ENGINE_ID :ID Motor (ordenación clásica) -STR_SORT_BY_COST :Coste +STR_SORT_BY_COST :Precio STR_SORT_BY_POWER :Potencia STR_SORT_BY_TRACTIVE_EFFORT :Fuerza de tracción STR_SORT_BY_INTRO_DATE :Fecha introducción @@ -317,8 +317,8 @@ STR_SORT_BY_RATING :Calificación STR_SORT_BY_NUM_VEHICLES :Número de automóviles STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Beneficios total del último año STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Beneficio total este año -STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Beneficios medio el año pasado -STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Beneficios medio este año +STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Beneficio medio el año pasado +STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Beneficio medio este año # Group by options for vehicle list STR_GROUP_BY_NONE :Ninguna @@ -364,14 +364,14 @@ STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Editor STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD :{BLACK}Retrocede la fecha de inicio en un año STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD :{BLACK}Avanza la fecha de inicio en un año STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Clic para fijar el año inicial -STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Mostrar mapa, guía de municipios +STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Muestra el mapa, lista de municipios STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Generación de terreno STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Creación de municipios STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Generación de industria STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Construcción de carreteras STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Construcción de tranvía STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plantar árboles. Mayús permite mostrar una estimación del precio -STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Colocar cartel +STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Colocar letrero STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Colocar objeto. Mayús permite mostrar una estimación del precio ############ range for SE file menu starts @@ -393,12 +393,12 @@ STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Opciones de tra STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Ver nombres de municipios STR_SETTINGS_MENU_STATION_NAMES_DISPLAYED :Ver nombres de estaciones STR_SETTINGS_MENU_WAYPOINTS_DISPLAYED :Ver puntos de ruta -STR_SETTINGS_MENU_SIGNS_DISPLAYED :Ver carteles -STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Carteles y nombres del competidor mostrados +STR_SETTINGS_MENU_SIGNS_DISPLAYED :Ver letreros +STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Letreros y nombres de competidor mostrados STR_SETTINGS_MENU_FULL_ANIMATION :Animación completa STR_SETTINGS_MENU_FULL_DETAIL :Detalle completo STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :Edificios transparentes -STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Carteles transparentes +STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Letreros transparentes ############ range ends here ############ range for file menu starts @@ -412,8 +412,8 @@ STR_FILE_MENU_EXIT :Salir # map menu STR_MAP_MENU_MAP_OF_WORLD :Mapa del mundo STR_MAP_MENU_EXTRA_VIEWPORT :Punto de vista extra -STR_MAP_MENU_LINGRAPH_LEGEND :Leyenda de Movimientos de Carga -STR_MAP_MENU_SIGN_LIST :Lista de carteles +STR_MAP_MENU_LINGRAPH_LEGEND :Leyenda de Flujos de Carga +STR_MAP_MENU_SIGN_LIST :Lista de letreros ############ range for town menu starts STR_TOWN_MENU_TOWN_DIRECTORY :Directorio de municipios @@ -468,7 +468,7 @@ STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :Construir aerop ############ range for landscaping menu starts STR_LANDSCAPING_MENU_LANDSCAPING :Terreno STR_LANDSCAPING_MENU_PLANT_TREES :Plantar árboles -STR_LANDSCAPING_MENU_PLACE_SIGN :Colocar cartel +STR_LANDSCAPING_MENU_PLACE_SIGN :Colocar letrero ############ range ends here ############ range for music menu starts @@ -637,8 +637,8 @@ STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstam STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total: ############ End of order list STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Cantidad de vehículos que obtuvieron beneficios el año pasado. Incluye vehículos de carretera, trenes, barcos y aeronaves -STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobús, aeropuertos y demás son contabilizadas por separado incluso si pertenecen a la misma estación -STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (de entre todos los vehículos con más de 2 años) +STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Cantidad de partes de estación que han tenido servicio. Las estaciones de tren, paradas de autobús, aeropuertos y demás son contabilizadas por separado, incluso si pertenecen a la misma estación +STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Beneficio del vehículo con menores ingresos (considerando sólo vehículos con más de 2 años) STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más bajo de los pasados 12 trimestres STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Cantidad de dinero ganado en el trimestre con el beneficio más alto de los pasados 12 trimestres STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Unidades de carga entregadas en los pasados cuatro trimestres @@ -666,19 +666,19 @@ STR_MUSIC_TRACK :{TINY_FONT}{BLA STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título STR_MUSIC_SHUFFLE :{TINY_FONT}{BLACK}Mezclar STR_MUSIC_PROGRAM :{TINY_FONT}{BLACK}Programa -STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Saltar a la pista anterior de la selección -STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Saltar a la siguiente pista de la selección -STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detener música -STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comenzar música +STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Salta a la pista anterior de la selección +STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Salta a la siguiente pista de la selección +STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Detiene la música +STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Comienza la música STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Arrastre los controles deslizantes para ajustar el volumen de música y efectos -STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Seleccionar programa 'todas las pistas' -STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo antiguo' -STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Seleccionar programa 'estilo moderno' -STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Seleccionar programa 'estilo Ezy Street' -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 1' (definido por el usuario) -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Seleccionar programa 'Personal 2' (definido por el usuario) +STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Selecciona el programa 'todas las pistas' +STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Selecciona el programa 'estilo antiguo' +STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Selecciona el programa 'estilo moderno' +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Selecciona el programa 'estilo Ezy Street' +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Selecciona el programa 'Personal 1' (definido por el usuario) +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Selecciona el programa 'Personal 2' (definido por el usuario) STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Encender/apagar mezclador -STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Mostrar ventana de selección de pistas musicales +STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Muestra la ventana de selección de pistas musicales # Playlist window STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Programación Musical - '{STRING}' @@ -689,8 +689,8 @@ STR_PLAYLIST_CLEAR :{TINY_FONT}{BLA STR_PLAYLIST_CHANGE_SET :{BLACK}Cambiar set STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Borrar programa actual (solo Personalizado1 y 2) STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Cambia la selección musical a otro set instalado -STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Pulse en la pista de música para añadirla al programa actual (solo Personalizado1 y 2) -STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Pulsa sobre la canción para quitarla del programa actual (solo Personalizado1 y 2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clica en la pista de música para añadirla al programa actual (solo Personalizado1 y 2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clica sobre la canción para quitarla del programa actual (solo Personalizado1 y 2) # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Top de empresas que han alcanzado {NUM} @@ -711,27 +711,27 @@ STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{WHIT # Smallmap window STR_SMALLMAP_CAPTION :{WHITE}Mapa - {STRING} -STR_SMALLMAP_TYPE_CONTOURS :Contornos +STR_SMALLMAP_TYPE_CONTOURS :Curvas de nivel STR_SMALLMAP_TYPE_VEHICLES :Vehículos STR_SMALLMAP_TYPE_INDUSTRIES :Industrias -STR_SMALLMAP_TYPE_ROUTEMAP :Flujo de Carga +STR_SMALLMAP_TYPE_ROUTEMAP :Flujos de Carga STR_SMALLMAP_TYPE_ROUTES :Rutas STR_SMALLMAP_TYPE_VEGETATION :Vegetación STR_SMALLMAP_TYPE_OWNERS :Propietarios -STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Mostrar contorno del terreno en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Mostrar vehículos en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Mostrar industrias en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Mostrar flujo de carga en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Mostrar rutas de transporte en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostrar vegetación en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostrar propietarios de terrenos en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Muestra las curvas de nivel del terreno en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Muestra los vehículos en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Muestra las industrias en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Muestra los flujos de carga en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Muestra las rutas de transporte en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Muestra la vegetación en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Muestra los propietarios de terreno en el mapa STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Clic en un tipo de industria para mostrarlo/ocultarlo. Ctrl+Clic oculta todos los tipos excepto el seleccionado. Ctrl+Clic de nuevo en el mismo tipo muestra todos los tipos de industrias STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Clic en una empresa para mostrar/ocultar sus propiedades. Ctrl+Clic oculta todas las empresas excepto la seleccionada. Ctrl+Clic de nuevo en la misma empresa muestra todas las empresas STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Clic en una carga permite activar o desactivar su visualización. Ctrl+Clic deshabilita todas las cargas excepto la seleccionada. Un segundo Ctrl+Clic habilita la visualización de todos los tipos de carga STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Carreteras STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Ferrocarriles -STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Estaciones/Aeropuertos/Puertos +STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Estaciones/Aeropuertos/Muelle STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Edificios/Industrias STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Vehículos STR_SMALLMAP_LEGENDA_TRAINS :{TINY_FONT}{BLACK}Trenes @@ -745,9 +745,9 @@ STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_BUS_STATION :{TINY_FONT}{BLACK}Estación de autobuses STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT :{TINY_FONT}{BLACK}Aeropuerto/Helipuerto STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLACK}Muelle -STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Terreno agreste -STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Terreno de prados -STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Terreno árido +STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Terreno irregular +STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Prados +STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Terreno desnudo STR_SMALLMAP_LEGENDA_RAINFOREST :{TINY_FONT}{BLACK}Selva tropical STR_SMALLMAP_LEGENDA_FIELDS :{TINY_FONT}{BLACK}Campos STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Árboles @@ -759,7 +759,7 @@ STR_SMALLMAP_LEGENDA_INDUSTRIES :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Desierto STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLACK}Nieve -STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Mostrar/ocultar nombres de municipios en el mapa +STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Muestra/oculta los nombres de los municipios en el mapa STR_SMALLMAP_CENTER :{BLACK}Centrar mapa en la posición actual STR_SMALLMAP_INDUSTRY :{TINY_FONT}{STRING} ({NUM}) STR_SMALLMAP_LINKSTATS :{TINY_FONT}{STRING} @@ -768,12 +768,12 @@ STR_SMALLMAP_TOWN :{TINY_FONT}{WHI STR_SMALLMAP_DISABLE_ALL :{BLACK}Desactivar todo STR_SMALLMAP_ENABLE_ALL :{BLACK}Activar todo STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Mostrar altura -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}No mostrar industrias en el mapa -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar todas las industrias en el mapa -STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Mostrar/ocultar mapa de alturas -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}No mostrar propiedades de empresas en el mapa -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Mostrar todas las propiedades de empresas en el mapa -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}No muestra ninguna carga en el mapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}Oculta las industrias en el mapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Muestra todas las industrias en el mapa +STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Muestra/oculta el mapa de alturas +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Oculta las propiedades de empresa en el mapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Muestra las propiedades de todas las empresas en el mapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Oculta las cargas en el mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Muestra todas las cargas en el mapa # Status bar messages @@ -786,36 +786,36 @@ STR_STATUSBAR_SAVING_GAME :{RED}* * GUAR # News message history STR_MESSAGE_HISTORY :{WHITE}Historial de mensajes -STR_MESSAGE_HISTORY_TOOLTIP :{BLACK}Listado de los mensajes más recientes +STR_MESSAGE_HISTORY_TOOLTIP :{BLACK}Muestra la lista de los mensajes más recientes STR_MESSAGE_NEWS_FORMAT :{STRING} - {STRING} STR_NEWS_MESSAGE_CAPTION :{WHITE}Mensaje STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLACK}{STRING} -STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tren llega a {STATION}! -STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer autobús llega a {STATION}! -STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer camión llega a {STATION}! -STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tranvía de pasajeros llega a {STATION}! -STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer tranvía de carga llega a {STATION}! -STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primer barco llega a {STATION}! -STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡Primera aeronave llega a {STATION}! +STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer tren llega a {STATION}! +STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer autobús llega a {STATION}! +STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer camión llega a {STATION}! +STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer tranvía de pasajeros llega a {STATION}! +STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer tranvía de carga llega a {STATION}! +STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡El primer barco llega a {STATION}! +STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Los ciudadanos celebran . . .{}¡La primera aeronave llega a {STATION}! -STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}¡Siniestro ferroviario!{}{COMMA} fallecidos en la explosión resultante tras la colisión -STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}El conductor fallece en la explosión tras la colisión con el tren -STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}¡Accidente de tráfico!{}{COMMA} fallecidos en la explosión resultante tras la colisión con el tren -STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}¡Avión siniestrado!{}{COMMA} fallecidos en la explosión en {STATION} +STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}¡Colisión ferroviaria!{}{COMMA} fallecidos en la explosión resultante tras el choque +STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}¡Colisión con vehículo!{}El conductor fallece en la explosión tras el choque con el tren +STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}¡Colisión con vehículo!{}{COMMA} fallecidos en la explosión resultante tras el choque con el tren +STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}¡Accidente aéreo!{}{COMMA} fallecidos en la explosión en {STATION} STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}¡Accidente aéreo!{}La aeronave se quedó sin combustible, ¡{COMMA} personas fallecen en la tragedia! -STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}¡Desastre con un zepelín en {STATION}! -STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}¡Vehículo terrestre destruido en colisión con OVNI! +STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}¡Desastre con un dirigible en {STATION}! +STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}¡Vehículo terrestre destruido en colisión con "OVNI"! STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}¡Explosión de refinería de petróleo cerca de {TOWN}! STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}¡Fábrica destruida bajo sospechosas circunstancias cerca de {TOWN}! -STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}¡OVNI aterriza cerca de {TOWN}! -STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}¡Hundimiento de mina de carbón deja ola de destrucción en {TOWN}! -STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}¡Inundación!{}Al menos {COMMA} desaparecidos o muertos después de las terribles inundaciones! +STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}¡Un "OVNI" aterriza cerca de {TOWN}! +STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}¡El hundimiento de una mina de carbón deja un gran rastro de destrucción en {TOWN}! +STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}¡Inundación!{}Al menos {COMMA} desaparecidos, presuntamente muertos después de las terribles inundaciones! STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}¡Empresa en problemas! -STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} debe ser vendida o declarada en bancarrota a no ser que pronto mejore su actuación! +STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} será vendida o declarada en bancarrota, a no ser que pronto mejore su situación! STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}¡Absorción de empresa de transportes! STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} ha sido vendida a {STRING} por {CURRENCY_LONG}! STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}¡Bancarrota! @@ -826,26 +826,26 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Presidente) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}¡{STRING} patrocina la construcción del nuevo municipio {TOWN}! -STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}¡Un nuevo municipio, llamado: {TOWN}, ha sido construido! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}¡Un nuevo municipio, llamado: {TOWN}, ha sido fundado! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} en construcción cerca de {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} está siendo plantad{G o a} cerca de {TOWN}! -STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}¡La industria {STRING} anuncia su inminente cierre! -STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}¡Problemas con el suministro hacen que {STRING} anuncie su inminente cierre! -STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}¡La falta de árboles cercanos hace que {STRING} anuncie su inminente cierre! +STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLACK}¡La industria {STRING} anuncia su cierre inminente! +STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}¡Los problemas de suministro hacen que {STRING} anuncie su cierre inminente! +STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}¡La falta de árboles cercanos hace que {STRING} anuncie su cierre inminente! STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}¡Unión Monetaria Europea!{}{}¡El Euro es introducido como la nueva moneda oficial de todas las transacciones de su país! -STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}¡Recesión Mundial!{}{}¡Los expertos financieros son pesimistas con respecto al hundimiento económico! -STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}¡Fin de la Recesión!{}{}¡Mejora en el comercio da confianza a las industrias mientras la economía se fortalece! +STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}¡Recesión Mundial!{}{}¡La economía se desploma y los expertos financieros temen lo peor! +STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}¡Fin de la Recesión!{}{}¡El repunte del comercio da confianza a las industrias a medida que la economía se fortalece! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}¡{INDUSTRY} incrementa su producción! -STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}¡Nueva veta de carbón encontrada en {INDUSTRY}!{}¡Se espera doblar la producción! -STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}¡Nuevas reservas de petróleo encontradas en {INDUSTRY}!{}¡Se espera doblar la producción! -STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}¡Nuevos métodos agrícolas en {INDUSTRY} esperan doblar la producción! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}¡Nueva veta de carbón encontrada en {INDUSTRY}!{}¡Se prevee que la producción se duplique! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}¡Nuevas reservas de petróleo encontradas en {INDUSTRY}!{}¡Se prevee que la producción se duplique! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}¡Los nuevos métodos agrícolas en {INDUSTRY} esperan doblar la producción! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} sube un {COMMA}%! -STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}La producción de {INDUSTRY} desciende un 50% -STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}¡Plaga de insectos causa estragos en {INDUSTRY}!{}Producción por debajo del 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}La producción de {INDUSTRY} se reduce un 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}¡Una plaga de insectos causa estragos en {INDUSTRY}!{}La producción se reduce un 50% STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}¡La producción de {STRING} en {INDUSTRY} desciende un {COMMA}%! STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} está esperando en el depósito @@ -864,9 +864,9 @@ STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} se está volviendo muy viejo STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} se está volviendo muy viejo y necesita ser reemplazado urgentemente STR_NEWS_TRAIN_IS_STUCK :{WHITE}{VEHICLE} no puede encontrar una ruta para continuar -STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} está perdido +STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} se ha perdido STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}Los beneficios del año pasado del {VEHICLE} fueron {CURRENCY_LONG} -STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} no puede llegar al próximo destino por que está fuera de alcance +STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} no puede llegar al siguiente destino por que está fuera de alcance STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} se detuvo debido a un fallo en una orden de reforma STR_NEWS_VEHICLE_AUTORENEW_FAILED :{WHITE}Renovación automática fallida para {VEHICLE}{}{STRING} @@ -883,14 +883,14 @@ STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} acepta ahora {STRING} y {STRING} STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Oferta de subvención terminada:{}{}{STRING} de {STRING} a {STRING} ya no conlleva una subvención -STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subvención retirada:{}{}Servicio de {STRING} desde {STRING} a {STRING} ya no está subvencionado +STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subvención retirada:{}{}El servicio de {STRING} desde {STRING} a {STRING} ya no está subvencionado STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Se ofrece subvención:{}{}¡Al primer servicio de {STRING} que cubra la línea desde {STRING} a {STRING} se le otorgará una subvención durante un año por parte de las autoridades locales! -STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará un 50% más durante un año! -STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa doble durante un año! -STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa triple durante un año! -STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡Servicio de {STRING} desde {STRING} a {STRING} pagará tasa cuádruple durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} se pagará un 50% más caro durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} se pagará a tarifa doble durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} se pagará a tarifa triple durante un año! +STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}¡Subvención otorgada a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} se pagará a tarifa cuádruple durante un año! -STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}¡Colapso circulatorio en {TOWN}!{}{}¡Programa de reconstrucción de carreteras patrocinado por {STRING} causa 6 meses de problemas a los conductores! +STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}¡Colapso circulatorio en {TOWN}!{}{}¡El programa de reconstrucción de carreteras patrocinado por {STRING} causa 6 meses de problemas a los conductores! STR_NEWS_EXCLUSIVE_RIGHTS_TITLE :{BIG_FONT}{BLACK}¡Monopolio de transportes! STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLACK}¡La autoridad local de {TOWN} firma un contrato de exclusividad con {STRING} por un año! @@ -1640,8 +1640,8 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Cuadrático (or STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Lineal STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Crecimiento de árboles durante el juego: {STRING} -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla la aparición aleatoria de árboles durante la partida. Esto puede afectar a industrias que dependen del crecimiento de árboles, como los aserraderos -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Crecer, pero no extienda {RED}(rompe al aserradero) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla la aparición aleatoria de árboles durante la partida. Esto puede afectar a industrias que dependan del crecimiento de árboles, como los aserraderos +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Crecer, pero no extender {RED}(inutiliza los aserraderos) STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Crecer, pero sólo extender en selvas tropicales STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Crecer y extender en cualquier parte STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :No crecer y no extender {RED}(inutiliza los aserraderos) @@ -1711,7 +1711,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unidad de juego (casillas/día) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unidad del juego (casillas/día) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unidad de potencia de vehículos: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Cada vez que se muestre la potencia de un vehículo en la interfaz de usuario, se empleará la unidad seleccionada @@ -1824,23 +1824,23 @@ STR_INTRO_SCRIPT_SETTINGS :{BLACK}Configur STR_INTRO_QUIT :{BLACK}Salir STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Comenzar nuevo juego. Ctrl+Clic omite la configuración del escenario -STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Cargar un juego guardado -STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Empezar juego nuevo, usando mapa de altura como terreno -STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Comienza un nuevo juego, usando un escenario personalizado desde el disco -STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Crear un mundo/escenario de juego personalizado -STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Empezar una partida multijugador +STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Carga una partida guardada +STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Empieza una partida nueva, usando un mapa de alturas como terreno +STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Comienza una nueva partida, usando un escenario personalizado +STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Crea un mundo/escenario de juego personalizado +STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Empieza una partida en multijugador -STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Elegir estilo de terreno 'templado' -STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Elegir estilo de terreno 'subártico' -STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Elegir estilo de terreno 'subtropical' -STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Elegir estilo de terreno 'juguetelandia' +STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Elige el estilo de terreno 'templado' +STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Elige el estilo de terreno 'subártico' +STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Elige el estilo de terreno 'subtropical' +STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Elige el estilo de terreno 'juguetelandia' -STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Muestra las opciones del juego -STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostrar tabla de puntuaciones -STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostrar configuración -STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Muestra ajustes de NewGRF -STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprobar si hay nuevos contenidos actualizados para descargar -STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs +STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Muestra las opciones de juego +STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Muestra la tabla de puntuaciones +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Muestra la configuración +STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Muestra los ajustes de NewGRF +STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprueba si hay contenidos nuevos y actualizados para descargar +STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Muestra la configuración de Scripts de juego e IA STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' STR_INTRO_BASESET :{BLACK}El conjunto de gráficos base actualmente seleccionado no encuentra {NUM} sprite{P "" s}. Comprueba si hay actualizaciones para el conjunto base, o usa otro totalmente actualizado. @@ -1879,23 +1879,23 @@ STR_CHEAT_SETUP_PROD :{LTBLUE}Permiti # Livery window STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Esquema de Color -STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar esquema de colores general -STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Ver esquema de color de los trenes -STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Ver esquema de color de los vehículos de carretera -STR_LIVERY_SHIP_TOOLTIP :{BLACK}Ver esquema de color de los barcos -STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Mostrar esquema de color de aeronaves +STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Muestra los esquemas de color generales +STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Muestra el esquema de color de los trenes +STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Muestra el esquema de color de los vehículos de carretera +STR_LIVERY_SHIP_TOOLTIP :{BLACK}Muestra el esquema de color de los barcos +STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Muestra el esquema de color de las aeronaves STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Selecciona el color primario para el esquema seleccionado. Ctrl+Clic fijará este color para todo el esquema STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Selecciona el color secundario para el esquema seleccionado. Ctrl+Clic fijará este color para todo el esquema STR_LIVERY_PANEL_TOOLTIP :{BLACK}Selecciona un esquema de color a modificar, o selecciona varios pulsando Ctrl+Clic. Pulsa en la caja para cambiar el uso del esquema -STR_LIVERY_DEFAULT :Estación normal +STR_LIVERY_DEFAULT :Estación Normal STR_LIVERY_STEAM :Locomotora a Vapor STR_LIVERY_DIESEL :Locomotora Diésel STR_LIVERY_ELECTRIC :Locomotora Eléctrica STR_LIVERY_MONORAIL :Locomotora Monorraíl STR_LIVERY_MAGLEV :Locomotora Maglev -STR_LIVERY_DMU :DMU -STR_LIVERY_EMU :EMU +STR_LIVERY_DMU :UMD +STR_LIVERY_EMU :UME STR_LIVERY_PASSENGER_WAGON_STEAM :Vagón Pasajeros (Vapor) STR_LIVERY_PASSENGER_WAGON_DIESEL :Vagón Pasajeros (Diésel) STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Vagón Pasajeros (Eléctrico) @@ -1973,13 +1973,13 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Cambiar # Network server list STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Multijugador STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Nombre del jugador: -STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Este es el nombre con el que otros jugadores le identificarán +STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Este es el nombre con el que otros jugadores te identificarán STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Nombre STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Nombre de la partida STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA} STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Clientes -STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clientes online / máx. clientes{}Empresas online / máximo empresas +STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clientes conectados / máx. clientes{}Empresas actuales / máximo empresas STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Tamaño del mapa STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Tamaño del mapa del juego{}Clic para ordenar por área @@ -1989,9 +1989,9 @@ STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Años STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Número de años{}que han transcurrido en la partida STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Idioma, versión del servidor, etc. -STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Pulse en un juego de la lista para seleccionarlo -STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Servidor al que has estado conectado la última vez: -STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Pulsa para seleccionar el servidor al que has jugado la última vez +STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Clica en una partida de la lista para seleccionarla +STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Servidor al que te conectaste la última vez: +STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Clica para seleccionar el servidor al que jugaste la última vez STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}INFORMACIÓN DEL JUEGO STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Clientes: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} @@ -2003,34 +2003,34 @@ STR_NETWORK_SERVER_LIST_SERVER_ADDRESS :{SILVER}Direcci STR_NETWORK_SERVER_LIST_START_DATE :{SILVER}Fecha inicio: {WHITE}{DATE_SHORT} STR_NETWORK_SERVER_LIST_CURRENT_DATE :{SILVER}Fecha actual: {WHITE}{DATE_SHORT} STR_NETWORK_SERVER_LIST_PASSWORD :{SILVER}¡Protegido por contraseña! -STR_NETWORK_SERVER_LIST_SERVER_OFFLINE :{SILVER}SERVIDOR APAGADO +STR_NETWORK_SERVER_LIST_SERVER_OFFLINE :{SILVER}SERVIDOR DESCONECTADO STR_NETWORK_SERVER_LIST_SERVER_FULL :{SILVER}SERVIDOR LLENO STR_NETWORK_SERVER_LIST_VERSION_MISMATCH :{SILVER}INCOMPATIBILIDAD DE VERSIONES STR_NETWORK_SERVER_LIST_GRF_MISMATCH :{SILVER}PROBLEMA CON NEWGRF STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Unirme al juego -STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Recargar servidor -STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Recargar información del servidor +STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Actualizar servidor +STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Actualiza la información del servidor -STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :Buscar en línea -STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK} Buscar servidores públicos en Internet -STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Buscar en LAN -STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Buscar en LAN para los servidores +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :{BLACK}Buscar en línea +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK} Busca servidores públicos en Internet +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Buscar en red local (LAN) +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Busca servidores en red local (LAN) STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Añadir servidor STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Añade el servidor a una lista que siempre será comprobada para buscar juegos en marcha -STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Comenzar servidor -STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP :{BLACK}Comenzar un nuevo servidor +STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Iniciar servidor +STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP :{BLACK}Inicia un servidor nuevo STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE :{BLACK}Introduce tu nombre STR_NETWORK_SERVER_LIST_ENTER_IP :{BLACK}Introduce la dirección IP del servidor # Start new multiplayer server -STR_NETWORK_START_SERVER_CAPTION :{WHITE}Empezar nuevo juego multijugador +STR_NETWORK_START_SERVER_CAPTION :{WHITE}Empezar nueva partida en multijugador STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Nombre del juego: -STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}La partida será anunciada a otros jugadores en el menú de selección de partida multijugador +STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}La partida se expondrá a otros jugadores en el menú de selección de partida multijugador STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Establecer contraseña -STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protege tu juego con una contraseña si no quieres que otras personas se unan a él +STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protege tu partida con una contraseña si no quieres que sea universalmente accesible STR_NETWORK_START_SERVER_ADVERTISED_LABEL :{BLACK}Público STR_NETWORK_START_SERVER_ADVERTISED_TOOLTIP :{BLACK}Permite escoger entre una partida pública (internet) y una partida privada (LAN) @@ -2038,15 +2038,15 @@ STR_NETWORK_START_SERVER_UNADVERTISED :No STR_NETWORK_START_SERVER_ADVERTISED :Sí STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} cliente{P "" s} STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Número máximo de clientes: -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Seleccione un número máximo de clientes. No es necesario ocupar todos los espacios +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Selecciona el número máximo de clientes. No es necesario ocupar todos los espacios STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} empresa{P "" s} STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Número máximo de empresas: -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limitar el servidor a un cierto número de empresas +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limita el número de empresas en el servidor STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} espectador{P "" es} STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Número máximo de espectadores: -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limitar el servidor a un cierto número de espectadores +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limita el numero de observadores en el servidor STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Idioma hablado: -STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Otros jugadores sabrán cual es el idioma hablado en este servidor +STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Los otros jugadores sabrán qué idioma se habla en este servidor STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}Introduce un nombre para el juego en red @@ -2094,7 +2094,7 @@ STR_NETWORK_LANG_LATVIAN :Letón STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}Sala de espera de la partida multijugador STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN :{BLACK}Preparándose para unirse: {ORANGE}{STRING} -STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Listado de empresas actualmente en el juego. Puede unirse a una empresa existente o crear una nueva si hay espacio libre +STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}Listado de empresas actualmente en la partida. Puedes unirte a una empresa existente o crear una nueva si hay espacio libre STR_NETWORK_GAME_LOBBY_COMPANY_INFO :{SILVER}INFORMACIÓN DE LA EMPRESA STR_NETWORK_GAME_LOBBY_COMPANY_NAME :{SILVER}Nombre empresa: {WHITE}{STRING} @@ -2109,11 +2109,11 @@ STR_NETWORK_GAME_LOBBY_STATIONS :{SILVER}Estacio STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Jugadores: {WHITE}{STRING} STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nueva empresa -STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Crear nueva empresa +STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Crea una empresa nueva STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observar juego -STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Observar una partida como espectador +STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Observa una partida como espectador STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Unirse a empresa -STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Ayudar a dirigir esta empresa +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Ayuda a dirigir esta empresa # Network connecting window STR_NETWORK_CONNECTING_CAPTION :{WHITE}Conectando... @@ -2126,27 +2126,27 @@ STR_NETWORK_CONNECTING_4 :{BLACK}(4/6) De STR_NETWORK_CONNECTING_5 :{BLACK}(5/6) Procesando datos... STR_NETWORK_CONNECTING_6 :{BLACK}(6/6) Registrando... -STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}Recibiendo información del juego... +STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}Recibiendo información de la partida... STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}Recibiendo información de la empresa... ############ End of leave-in-this-order -STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} cliente{P "" s} delante de usted -STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} descargados por el momento +STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} cliente{P "" s} delante de ti +STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} descargados hasta el momento STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} descargados STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconectar -STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegido. Introduzca la contraseña -STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Introduzca la contraseña +STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegido. Introduce la contraseña +STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Introduce la contraseña STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Lista de Clientes # Network company list added strings STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Lista de clientes -STR_NETWORK_COMPANY_LIST_SPECTATE :Presenciar +STR_NETWORK_COMPANY_LIST_SPECTATE :Observar STR_NETWORK_COMPANY_LIST_NEW_COMPANY :Nueva empresa # Network client list -STR_NETWORK_CLIENTLIST_KICK :Expulsar -STR_NETWORK_CLIENTLIST_BAN :Banear +STR_NETWORK_CLIENTLIST_KICK :Expulsar (Kick) +STR_NETWORK_CLIENTLIST_BAN :Prohibir (Ban) STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Hablar a todos STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Hablar a empresa STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Mensaje privado @@ -2184,13 +2184,13 @@ STR_NETWORK_CHAT_OSKTITLE :{BLACK}Introduc # Network messages STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}No se han encontrado dispositivos de red -STR_NETWORK_ERROR_NOSERVER :{WHITE}No se pudo encontrar ningún juego en red +STR_NETWORK_ERROR_NOSERVER :{WHITE}No se ha podido encontrar ningún juego en red STR_NETWORK_ERROR_NOCONNECTION :{WHITE}El servidor no responde a la petición -STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}No se pudo conectar debido a incompatibilidad de NewGRF +STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}No se ha podido conectar debido a incompatibilidad de NewGRF STR_NETWORK_ERROR_DESYNC :{WHITE}La sincronización del juego en red ha fallado STR_NETWORK_ERROR_LOSTCONNECTION :{WHITE}La conexión con el juego en red se ha perdido -STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}No se pudo cargar partida -STR_NETWORK_ERROR_SERVER_START :{WHITE}No se pudo iniciar servidor +STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}No se ha podido cargar la partida +STR_NETWORK_ERROR_SERVER_START :{WHITE}No se ha podido iniciar el servidor STR_NETWORK_ERROR_CLIENT_START :{WHITE}No se pudo conectar STR_NETWORK_ERROR_TIMEOUT :{WHITE}Tiempo de espera agotado en conexión #{NUM} STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}Se ha producido un error de protocolo y la conexión ha sido cerrada @@ -2202,10 +2202,10 @@ STR_NETWORK_ERROR_KICKED :{WHITE}Has sido STR_NETWORK_ERROR_KICK_MESSAGE :{WHITE}Razón: {STRING} STR_NETWORK_ERROR_CHEATER :{WHITE}No se permiten trucos en este servidor STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Estabas enviando demasiados comandos al servidor -STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Tardaste demasiado en introducir la contraseña +STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Has tardado demasiado en introducir la contraseña STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}Su ordenador es demasiado lento para seguir la velocidad del servidor -STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Su ordenador tardó demasiado en descargar el mapa -STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Su ordenador tardó demasiado en conectar al servidor +STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}Su ordenador necesitó demasiado tiempo para descargar el mapa +STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}Su ordenador necesitó demasiado tiempo para conectar al servidor ############ Leave those lines in this order!! STR_NETWORK_ERROR_CLIENT_GENERAL :error general @@ -2224,10 +2224,10 @@ STR_NETWORK_ERROR_CLIENT_KICKED :expulsado por e STR_NETWORK_ERROR_CLIENT_CHEATER :ha intentado usar un truco STR_NETWORK_ERROR_CLIENT_SERVER_FULL :servidor lleno STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :estaba enviando demasiados comandos -STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :no se recibió la contraseña a tiempo -STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :timeout general -STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descarga del mapa llevó demasiado tiempo -STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :el procesado del mapa llevó demasiado tiempo +STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :no se ha recibido la contraseña a tiempo +STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :tiempo agotado en general +STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descarga del mapa ha necesitado demasiado tiempo +STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :el procesado del mapa ha necesitado demasiado tiempo ############ End of leave-in-this-order STR_NETWORK_ERROR_CLIENT_GUI_LOST_CONNECTION_CAPTION :{WHITE}Posible pérdida de conexión @@ -2247,19 +2247,19 @@ STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :número de juga STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :clientes conectándose STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :script de juego -STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH :Esperando por actualizacion del link graph +STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH :esperando actualizacion del gráfico de enlaces ############ End of leave-in-this-order STR_NETWORK_MESSAGE_CLIENT_LEAVING :abandonando -STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} se ha unido al juego -STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} se ha unido al juego (Cliente #{2:NUM}) +STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} se ha unido a la partida +STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} se ha unido a la partida (Cliente #{2:NUM}) STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} se ha unido a la empresa #{2:NUM} STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} se ha unido como espectador -STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} ha creado una nueva empresa (#{2:NUM}) +STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} ha creado una empresa nueva (#{2:NUM}) STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} ha abandonado el juego ({2:STRING}) STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} ha cambiado su nombre a {STRING} STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} dio {2:CURRENCY_LONG} a {1:STRING} STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}El servidor ha cerrado la sesión -STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Se está reiniciando el servidor...{}Espere por favor... +STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}El servidor está reiniciando...{}Espera por favor... STR_NETWORK_MESSAGE_KICKED :*** {STRING} ha sido expulsado. Razón: ({STRING}) # Content downloading window @@ -2331,7 +2331,7 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no s STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no pudo encontrarse ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se ha podido encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descargar los gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, salir de OpenTTD @@ -2349,10 +2349,10 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Ajustar STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Poner objetos invisibles en vez de transparentes # Linkgraph legend window -STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Leyenda de Movimientos de Carga +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Leyenda de Flujos de Carga STR_LINKGRAPH_LEGEND_ALL :{BLACK}Todas STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ninguna -STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Seleccione las compañías a mostrar +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Seleccione las empresas a mostrar STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY} # Linkgraph legend window and linkgraph legend in smallmap @@ -2393,7 +2393,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construi STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Construir señales de ferrocarril. Ctrl cambia entre señales mecánicas y eléctricas{}Arrastrar construye señales a lo largo del tramo recto de ferrocarril seleccionado. Ctrl construye señales hasta el siguiente cruce o señal{}Ctrl+Clic cambia a la ventana de selección de señales. Mayús cambia entre construir/mostrar el precio estimado STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir puente de ferrocarril. Mayús permite mostrar una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel ferroviario. Mayús permite mostrar una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Cambiar entre construir/retirar ferrocarriles, señales, estaciones y puntos de ruta de ferrocarril. Mantener pulsado Ctrl retirará también el ferrocarril al retirar estaciones y puntos de ruta +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Alterna entre construir/retirar ferrocarriles, señales, estaciones y puntos de ruta de ferrocarril. Mantener pulsado Ctrl retirará también el ferrocarril al retirar estaciones y puntos de ruta STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Convertir/Actualizar tipo de ferrocarril. Mayús permite mostrar una estimación del precio STR_RAIL_NAME_RAILROAD :Ferrocarril @@ -2446,8 +2446,8 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Reducir STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Incrementar la distancia de arrastre de señales # Bridge selection window -STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Seleccione Puente de Ferrocarril -STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Elige puente de carretera +STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selección de Puente de Ferrocarril +STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selección de Cuente de Carretera STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selección de puente - Clic en el puente elegido para construirlo STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} @@ -2474,13 +2474,13 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Construi STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Construir estación de tranvía de pasajeros. Ctrl activa la unión de estaciones. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Construir estación de carga para camiones. Ctrl activa la unión de estaciones. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Construir estación de tranvía de carga. Ctrl activa la unión de estaciones. Mayús permite mostrar una estimación del precio -STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Activar/Desactivar carreteras de un sentido +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Activa/Desactiva carreteras de sentido único STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Construir puente de carretera. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Construir puente de tranvía. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construir túnel de carretera. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construir túnel de tranvía. Mayús permite mostrar una estimación del precio -STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Cambiar entre construir/retirar carretera -STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Activar construir/quitar para construcciones de tranvía +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Alterna entre construir/retirar carretera +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alterna entre construir/retirar vías de tranvía STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Convertir/Actualizar tipo de carretera. Mayús permite mostrar una estimación del precio STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Convertir/Actualizar tipo de tranvía. Mayús permite mostrar una estimación del precio @@ -2559,7 +2559,7 @@ STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Comprar # Object construction window STR_OBJECT_BUILD_CAPTION :{WHITE}Selección de Objeto STR_OBJECT_BUILD_TOOLTIP :{BLACK}Seleccionar objeto a construir. Mayús permite mostrar una estimación del precio -STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Seleccione el tipo de objeto a construir +STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Selecciona el tipo de objeto a construir STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Vista previa del objeto STR_OBJECT_BUILD_SIZE :{BLACK}Tamaño: {GOLD}{NUM} x {NUM} casillas @@ -2568,7 +2568,7 @@ STR_OBJECT_CLASS_TRNS :Transmisor # Tree planting window (last eight for SE only) STR_PLANT_TREE_CAPTION :{WHITE}Árboles -STR_PLANT_TREE_TOOLTIP :{BLACK}Seleccione el tipo de árboles a plantar. Si la casilla ya tiene un árbol, se añadirán más árboles de distintos tipos sin importar el tipo elegido +STR_PLANT_TREE_TOOLTIP :{BLACK}Selecciona el tipo de árboles a plantar. Si la casilla ya tiene un árbol, se añadirán más árboles de distintos tipos sin importar el tipo elegido STR_TREES_RANDOM_TYPE :{BLACK}Tipo aleatorio STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Colocar distintos árboles al azar. Mayús permite mostrar una estimación del precio STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Árboles al azar @@ -2592,7 +2592,7 @@ STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Reinicia STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Eliminar todas las propiedades de empresa del mapa STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Reiniciar terreno -STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}¿Está seguro de querer eliminar todas las propiedades de empresas? +STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}¿Estás seguro de que quieres eliminar todas las propiedades de las empresas? # Town generation window (SE) STR_FOUND_TOWN_CAPTION :{WHITE}Creación de Municipios @@ -2632,7 +2632,7 @@ STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Seleccio STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Crear industrias al azar STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cubre el mapa con industrias colocadas al azar STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION :{WHITE}Crear industrias al azar -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de crear varias industrias al azar? +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de que quieres crear varias industrias al azar? STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Coste: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Prospección STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Construir @@ -2640,7 +2640,7 @@ STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Fundar STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Eliminar todas las industrias STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Elimina todas las industrias que haya en el mapa STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Eliminar todas las industrias -STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de eliminar todas las industrias? +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}¿Estás seguro de que quieres eliminar todas las industrias? # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena de industrias para la industria {STRING} @@ -2661,10 +2661,10 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Seleccio # Land area window STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Información del terreno -STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centrar la vista principal en la posición de la casilla. Ctrl+Clic abre un nuevo punto de vista en dicha posición. +STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centra la vista principal en la posición de la casilla. Ctrl+clic abre un nuevo punto de vista en dicha posición. STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Coste de despeje: {LTBLUE}N/D STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Coste de despeje: {RED}{CURRENCY_LONG} -STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Beneficio cuando es limpiado: {LTBLUE}{CURRENCY_LONG} +STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Beneficio si es despejado: {LTBLUE}{CURRENCY_LONG} STR_LAND_AREA_INFORMATION_OWNER_N_A :N/D STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Propietario: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Propietario de la carretera: {LTBLUE}{STRING} @@ -2685,17 +2685,17 @@ STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STR STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de ferrocarril: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Tipo de carretera: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tipo de tranvía: {LTBLUE}{STRING} -STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad del ferrocarril: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad de ferrocarril: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidad de carretera: {LTBLUE}{VELOCITY} -STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Límite de velocidad del tranvía: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Límite de velocidad de tranvía: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocas -STR_LAI_CLEAR_DESCRIPTION_ROUGH_LAND :Tierra árida -STR_LAI_CLEAR_DESCRIPTION_BARE_LAND :Tierra desnuda -STR_LAI_CLEAR_DESCRIPTION_GRASS :Césped +STR_LAI_CLEAR_DESCRIPTION_ROUGH_LAND :Terreno irregular +STR_LAI_CLEAR_DESCRIPTION_BARE_LAND :Terreno desnudo +STR_LAI_CLEAR_DESCRIPTION_GRASS :Pastos STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos -STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tierra cubierta por nieve +STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno cubierto de nieve STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril @@ -2704,23 +2704,23 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferrocarril con señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con señales de ruta de sentido único STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de ferrocarril con señales de bloque y de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferrocarril con señales de bloque y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de sentido único STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y de ruta de sentido único STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con señales de salida y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de sentido único STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con señales de dirección y de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de trenes del ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de sentido único +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con señales de dirección y de sentido único +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de trenes de ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con farolas @@ -2730,7 +2730,7 @@ STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Paso a nivel STR_LAI_ROAD_DESCRIPTION_TRAMWAY :Tranvía # Houses come directly from their building names -STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (bajo construcción) +STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (en construcción) STR_LAI_TREE_NAME_TREES :Árboles STR_LAI_TREE_NAME_RAINFOREST :Selváticos @@ -2749,7 +2749,7 @@ STR_LAI_WATER_DESCRIPTION_WATER :Agua STR_LAI_WATER_DESCRIPTION_CANAL :Canal STR_LAI_WATER_DESCRIPTION_LOCK :Esclusa STR_LAI_WATER_DESCRIPTION_RIVER :Río -STR_LAI_WATER_DESCRIPTION_COAST_OR_RIVERBANK :Costa o rivera +STR_LAI_WATER_DESCRIPTION_COAST_OR_RIVERBANK :Costa o ribera STR_LAI_WATER_DESCRIPTION_SHIP_DEPOT :Astillero # Industries come directly from their industry names @@ -2847,20 +2847,20 @@ STR_FRAMETIME_CAPTION_AI :IA {NUM} {STRIN # Save/load game/scenario -STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Juego -STR_SAVELOAD_LOAD_CAPTION :{WHITE}Cargar Juego +STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Partida +STR_SAVELOAD_LOAD_CAPTION :{WHITE}Cargar Partida STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Guardar Escenario STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Cargar Escenario STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Cargar Mapa de Alturas STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Guardar Mapa de Alturas -STR_SAVELOAD_HOME_BUTTON :{BLACK}Pulsa aquí para ir al directorio por defecto de guardado +STR_SAVELOAD_HOME_BUTTON :{BLACK}Clica aquí para ir al directorio de carga/guardado por defecto STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} libres -STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Listado de unidades, directorios y juegos guardados -STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Nombre seleccionado actualmente para el juego guardado +STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Listado de unidades, directorios y partidas guardadas +STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Nombre seleccionado actualmente para la partida guardado STR_SAVELOAD_DELETE_BUTTON :{BLACK}Borrar -STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Borrar el juego guardado seleccionado +STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Borra la partida guardada seleccionada STR_SAVELOAD_SAVE_BUTTON :{BLACK}Guardar -STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Guarda el juego actual, usando el nombre seleccionado +STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Guarda la partida actual, usando el nombre seleccionado STR_SAVELOAD_LOAD_BUTTON :{BLACK}Cargar STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Cargar la partida seleccionada STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Cargar el mapa de alturas seleccionado @@ -2870,31 +2870,31 @@ STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK}Patrón de filtrado: STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Sobrescribir Archivo -STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}¿Está seguro de querer sobrescribir el archivo existente? +STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}¿Estás seguro de que quieres sobrescribir el archivo existente? STR_SAVELOAD_DIRECTORY :{STRING} (Directorio) STR_SAVELOAD_PARENT_DIRECTORY :{STRING} (Directorio superior) -STR_SAVELOAD_OSKTITLE :{BLACK}Introduce un nombre para el juego guardado +STR_SAVELOAD_OSKTITLE :{BLACK}Introduce un nombre para guardar la partida # World generation STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Generación de mundo STR_MAPGEN_MAPSIZE :{BLACK}Tamaño del mapa: -STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Permite seleccionar el tamaño del mapa en casillas. El número de casillas disponible en el mapa será ligeramente inferior +STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Selecciona el tamaño del mapa en casillas. El número de casillas disponible en el mapa será ligeramente inferior STR_MAPGEN_BY :{BLACK}* STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. de municipios: STR_MAPGEN_DATE :{BLACK}Fecha: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. de industrias: STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altura máxima del mapa: -STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumentar, una unidad, la altura máxima de las montañas del mapa -STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuir, una unidad, la altura máxima de las montañas del mapa -STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Altura línea nieve: -STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mover la línea de nieve hacia arriba -STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mover la línea de nieve hacia abajo +STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumenta una unidad la altura máxima de las montañas del mapa +STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminuye una unidad la altura máxima de las montañas del mapa +STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Altura cota nieve: +STR_MAPGEN_SNOW_LINE_UP :{BLACK}Sube la cota de nieve una unidad +STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Baja la cota de nieve una unidad STR_MAPGEN_LAND_GENERATOR :{BLACK}Generador terreno: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nivel del mar: STR_MAPGEN_QUANTITY_OF_RIVERS :{BLACK}Ríos: -STR_MAPGEN_SMOOTHNESS :{BLACK}Suavidad: +STR_MAPGEN_SMOOTHNESS :{BLACK}Uniformidad: STR_MAPGEN_VARIETY :{BLACK}Variedad: STR_MAPGEN_GENERATE :{WHITE}Generar @@ -2916,19 +2916,19 @@ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Cambiar la altura máxima del mapa -STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar la altura de la línea de nieve +STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar la altura de la cota de nieve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambiar año de inicio # SE Map generation STR_SE_MAPGEN_CAPTION :{WHITE}Tipo de escenario -STR_SE_MAPGEN_FLAT_WORLD :{WHITE}Tierra llana +STR_SE_MAPGEN_FLAT_WORLD :{WHITE}Terreno llano STR_SE_MAPGEN_FLAT_WORLD_TOOLTIP :{BLACK}Generar un escenario llano -STR_SE_MAPGEN_RANDOM_LAND :{WHITE}Tierra aleatoria +STR_SE_MAPGEN_RANDOM_LAND :{WHITE}Terreno aleatorio STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}Altura tierra llana: -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Reduce la altura de la tierra llana -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Aumenta la altura de la tierra llana +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Reduce la altura del terreno llano una unidad +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Aumenta la altura del terreno llano una unidad -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambia la altura de la tierra llana +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Cambia la altura del terreno llano # Map generation progress STR_GENERATION_WORLD :{WHITE}Generando Mundo... @@ -2952,36 +2952,36 @@ STR_NEWGRF_SETTINGS_CAPTION :{WHITE}Configur STR_NEWGRF_SETTINGS_INFO_TITLE :{WHITE}Información de NewGRF detallada STR_NEWGRF_SETTINGS_ACTIVE_LIST :{WHITE}Archivos NewGRF activos STR_NEWGRF_SETTINGS_INACTIVE_LIST :{WHITE}Archivos NewGRF inactivos -STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}Seleccionar perfil: +STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}Seleccionar configuración: STR_NEWGRF_FILTER_TITLE :{ORANGE}Patrón de filtrado: -STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Cargar la programación seleccionada +STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Cargar la configuración seleccionada STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Guardar -STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Guardar lista actual como una programación -STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Introduce nombre de la programación +STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Guardar la lista actual como configuración +STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Introduce nombre de la configuración STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Borrar -STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la programación seleccionada +STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Borrar la configuración seleccionada STR_NEWGRF_SETTINGS_ADD :{BLACK}Añadir STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Añade el NewGRF seleccionado a tu configuración STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Actualizar archivos STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Actualiza la lista de archivos NewGRF disponibles -STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Retirar -STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Retirar el NewGRF seleccionado de la lista +STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Quitar +STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Quita el NewGRF seleccionado de la lista STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mover Arriba -STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado arriba en la lista +STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado hacia arriba STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mover Abajo -STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado abajo en la lista +STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mueve el NewGRF seleccionado hacia abajo STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualizar -STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizar a la versión más reciente de los archivos NewGRF que tengan varias instaladas -STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una lista de los archivos NewGRF instalados +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualiza los NewGRF a la versión instalada más reciente +STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista de los archivos NewGRF instalados STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establecer parámetros STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostrar parámetros STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Cambiar paleta -STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambia la paleta del NewGRF seleccionado.{}Esto es necesario cuando los gráficos de un NewGRF se ven de color rosa durante el juego +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Cambia la paleta del NewGRF seleccionado.{}Hacer esto si los gráficos de un NewGRF se ven de color rosa durante la partida STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Aplicar cambios STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Buscar contenido que falta en línea -STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprueba si el contenido que falta puede ser encontrado en línea +STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comprueba si el contenido que falta se puede encontrar en línea STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Archivo: {SILVER}{STRING} STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING} @@ -2991,8 +2991,8 @@ STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Por Defecto (D) STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Por Defecto (D) / 32 bpp -STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Viejo (W) -STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Viejo (W) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Antiguo (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Antiguo (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ninguno @@ -3009,13 +3009,13 @@ STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nombre a STR_SAVE_PRESET_CANCEL :{BLACK}Cancelar STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}No modificar el perfil STR_SAVE_PRESET_SAVE :{BLACK}Guardar -STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Guardar el perfil con el nombre seleccionado +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Guarda el perfil con el nombre elegido # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Cambiar parámetros NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Cerrar STR_NEWGRF_PARAMETERS_RESET :{BLACK}Reiniciar -STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Fijar todos los parámetros a su valor por defecto +STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Fija todos los parámetros a su valor por defecto STR_NEWGRF_PARAMETERS_DEFAULT_NAME :Parámetro {NUM} STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING} STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Número de parámetros: {ORANGE}{NUM} @@ -3023,7 +3023,7 @@ STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Número # NewGRF inspect window STR_NEWGRF_INSPECT_CAPTION :{WHITE}Inspeccionar - {STRING} STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}Superior -STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspeccionar objeto del entorno del superior +STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspecciona el objeto del ámbito principal STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING} en {HEX} STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Objeto @@ -3056,15 +3056,15 @@ STR_NEWGRF_ERROR_MSG_WARNING :{RED}Atención: STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING} STR_NEWGRF_ERROR_MSG_FATAL :{RED}Error Fatal: {SILVER}{STRING} STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ha ocurrido un error fatal de NewGRF:{}{STRING} -STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} no funcionará con la con la versión de TTDPatch reportada por OpenTTD -STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} es la para la versión {STRING} de TTD +STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} no funcionará con la con la versión de TTDPatch informada por OpenTTD +STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} es para la versión {STRING} de TTD STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} está diseñado para ser usado con {STRING} STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro incorrecto para {1:STRING}: párametro {STRING} ({NUM}) STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe ser cargado antes de {STRING} STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe ser cargado después de {STRING} STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} necesita la versión {STRING} ó superior de OpenTTD -STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF ha sido diseñado para ser traducido -STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs han sido cargados +STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :el archivo GRF ha sido diseñado para ser traducido +STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Se han cargado demasiados NewGRF STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Sprite inesperado (sprite {3:NUM}) STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Propiedad de Acción 0 desconocida {4:HEX} (sprite {3:NUM}) @@ -3079,36 +3079,36 @@ STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Demasiados elem STR_NEWGRF_ERROR_INDPROD_CALLBACK :Llamada de producción de industria no válida (sprite {3:NUM}, "{2:STRING}") # NewGRF related 'general' warnings -STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precaución! -STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o romper la partida.{}No se deben crear reportes de bugs por problemas causados por esta acción.{}¿Está completamente seguro de esto? +STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Atención! +STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Se van a modificar los NewGRF de una partida ya comenzada. Esto puede provocar un error fatal en OpenTTD o arruinar la partida. No se deben crear informes de fallos por los problemas causados por esta acción.{}¿Estás completamente seguro de esto? -STR_NEWGRF_DUPLICATE_GRFID :{WHITE}El archivo no puede añadirse: GRF ID duplicado +STR_NEWGRF_DUPLICATE_GRFID :{WHITE}El archivo no se puede añadir: GRF ID duplicado STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Archivo no encontrado (GRF compatible cargado) -STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: Alcanzado el máximo de NewGRFs permitidos +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}No se puede añadir archivo: se ha alcanzado el máximo número de NewGRF permitidos -STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}GRF(s) compatibles cargados para archivos que faltan -STR_NEWGRF_DISABLED_WARNING :{WHITE}Archivo(s) GRF no encontrados han sido desactivados -STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrados -STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No notifique este error.{}¿Desea realmente quitar la pausa? +STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Se han cargado GRF(s) compatibles para los archivos que faltan +STR_NEWGRF_DISABLED_WARNING :{WHITE}El/Los archivo(s) GRF no encontrados han sido desactivados +STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Archivo(s) GRF no encontrado(s) +STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Quitar la pausa puede hacer que se cierre OpenTTD. No se debe informar de los errores consecuentes.{}¿Deseas realmente quitar la pausa? # NewGRF status STR_NEWGRF_LIST_NONE :Ninguno STR_NEWGRF_LIST_ALL_FOUND :Todos los archivos presentes STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Archivos compatibles encontrados -STR_NEWGRF_LIST_MISSING :{RED}Archivos que faltan +STR_NEWGRF_LIST_MISSING :{RED}Faltan archivos # NewGRF 'it's broken' warnings STR_NEWGRF_BROKEN :{WHITE}Es probable que el funcionamiento del NewGRF '{0:STRING}' cause desincronizaciones o fallos -STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Ha cambiado el estado 'vagón motorizado' para '{1:ENGINE}' cuando no estaba dentro de un depósito -STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambiado la longitud del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito -STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Ha cambiado la capacidad del vehículo para '{1:ENGINE}' fuera de un depósito o mientras no se estaba remodelando +STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Ha cambiado el estado 'vagón motorizado' '{1:ENGINE}' cuando no estaba dentro de un depósito +STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Ha cambiado la longitud del vehículo '{1:ENGINE}' cuando no estaba dentro de un depósito +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Ha cambiado la capacidad del vehículo '{1:ENGINE}' fuera de un depósito o mientras no se estaba reformando STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud incorrecta. Esto puede deberse a problemas con los NewGRF. El juego puede desincronizarse o fallar por completo STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La información de carga/reforma para '{1:ENGINE}' difiere de la de lista de compra después de la construcción. Esto puede causar que la renovación/reemplazo automático no haga la reforma correcta STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha causado un bucle sin fin en la 'callback' de producción -STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}'Callback' {1:HEX} devolvió el resultado desconocido o inválido {2:HEX} -STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha retornado tipo de carga inválida en el 'callback' de producción en {2:HEX} +STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}'Callback' {1:HEX} ha devuelto el resultado desconocido o inválido {2:HEX} +STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ha devuelto tipo de carga inválida en el 'callback' de producción en {2:HEX} # 'User removed essential NewGRFs'-placeholders for stuff without specs STR_NEWGRF_INVALID_CARGO : @@ -3121,15 +3121,15 @@ STR_NEWGRF_INVALID_INDUSTRYTYPE : # NewGRF scanning window -STR_NEWGRF_SCAN_CAPTION :{WHITE}Comprobando NewGRFs -STR_NEWGRF_SCAN_MESSAGE :{BLACK}Comprobando NewGRFs. Dependiendo de la cantidad, esto puede llevar un tiempo... -STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} comprobados de un total aproximado de {NUM} NewGRF{P "" s} +STR_NEWGRF_SCAN_CAPTION :{WHITE}Comprobando los NewGRF +STR_NEWGRF_SCAN_MESSAGE :{BLACK}Comprobando los NewGRF. Dependiendo de la cantidad, esto puede llevar un tiempo... +STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF comprobados de un total aproximado de {NUM} NewGRF STR_NEWGRF_SCAN_ARCHIVES :Comprobando archivos # Sign list window -STR_SIGN_LIST_CAPTION :{WHITE}Lista de carteles - {COMMA} Cartel{P "" es} +STR_SIGN_LIST_CAPTION :{WHITE}Lista de letreros - {COMMA} Letrero{P "" es} STR_SIGN_LIST_MATCH_CASE :{BLACK}Mayúsculas/minúsculas -STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Activa/desactiva la comprobación de mayúsculas y minúsculas al filtrar la lista de carteles +STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Activa/desactiva la coincidencia de mayúsculas y minúsculas al filtrar la lista de letreros # Sign window STR_EDIT_SIGN_CAPTION :{WHITE}Editar texto del letrero @@ -3177,20 +3177,20 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Renombrar Munic # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} autoridad local STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zona -STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Mostrar zona dentro del límite de la autoridad local +STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Muestra la zona dentro de los límites de la autoridad local STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Calificación de empresas de transporte: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Acciones disponibles: STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lista de acciones posibles en este municipio - Clic sobre cada línea para obtener más detalles STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Hágalo -STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Hacer lo que se ha marcado en la opción anterior +STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Lleva a cabo la acción resaltada en la lista superior -STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Pequeña campaña publicitaria -STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Mediana campaña publicitaria -STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Gran campaña publicitaria -STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Pagar la reconstrucción de las carreteras locales -STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Poner una estatua al dueño de la empresa -STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Pagar la construcción de nuevos edificios +STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Campaña Publicitaria Pequeña +STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Campaña Publicitaria Mediana +STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Campaña Publicitaria Grande +STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Financiar la reconstrucción de carreteras locales +STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Colocar una estatua del propietario de la empresa +STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiar la construcción de nuevos edificios STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar derechos de transporte exclusivos STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local @@ -3200,8 +3200,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales.{}Provoca considerables complicaciones de tráfico durante 6 meses.{}Coste: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construye una estatua en honor a su empresa.{}Proporciona un incremento permanente en la calificación de las estaciones de este municipio.{}Coste: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el municipio.{}Proporciona un incremento temporal en el crecimiento del municipio.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar en exclusiva los derechos de transporte en este municipio durante un año.{}Las autoridades solo permitirán el uso de las estaciones de su empresa.{}Coste: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Sobornar a las autoridades locales para aumentar su calificación, con el riesgo de una severa penalización si es descubierto.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra derechos de transporte exclusivos en este municipio durante un año.{}Las autoridades no permitirán el uso de las estaciones de la competencia.{}Coste: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Soborna a las autoridades locales para aumentar su calificación, con el riesgo de sufrir una penalización severa si es descubierto.{}Coste: {CURRENCY_LONG} # Goal window STR_GOALS_CAPTION :{WHITE}Metas de {COMPANY} @@ -3564,8 +3564,8 @@ STR_BUY_VEHICLE_SHIP_CAPTION :Nuevos Barcos STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nueva Aeronave ############ range for vehicle availability ends -STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Coste: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT} -STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Costo de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) Peso: {GOLD}{WEIGHT_SHORT} +STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT} +STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Coste de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) Peso: {GOLD}{WEIGHT_SHORT} STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Velocidad: {GOLD}{VELOCITY}{BLACK} Potencia: {GOLD}{POWER} STR_PURCHASE_INFO_SPEED :{BLACK}Velocidad: {GOLD}{VELOCITY} STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Velocidad en el océano: {GOLD}{VELOCITY} @@ -3575,19 +3575,19 @@ STR_PURCHASE_INFO_CAPACITY :{BLACK}Capacida STR_PURCHASE_INFO_REFITTABLE :(reformable) STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Diseñado: {GOLD}{NUM}{BLACK} Vida: {GOLD}{COMMA} año{P "" s} STR_PURCHASE_INFO_RELIABILITY :{BLACK}Fiabilidad máxima: {GOLD}{COMMA}% -STR_PURCHASE_INFO_COST :{BLACK}Coste: {GOLD}{CURRENCY_LONG} -STR_PURCHASE_INFO_COST_REFIT :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Costo de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) +STR_PURCHASE_INFO_COST :{BLACK}Precio: {GOLD}{CURRENCY_LONG} +STR_PURCHASE_INFO_COST_REFIT :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Coste de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Peso: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) -STR_PURCHASE_INFO_COST_SPEED :{BLACK}Coste: {GOLD}{CURRENCY_LONG}{BLACK} Velocidad: {GOLD}{VELOCITY} -STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Costo de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) Velocidad: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_COST_SPEED :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} Velocidad: {GOLD}{VELOCITY} +STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Precio: {GOLD}{CURRENCY_LONG}{BLACK} (Coste de Reforma: {GOLD}{CURRENCY_LONG}{BLACK}) Velocidad: {GOLD}{VELOCITY} STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacidad: {GOLD}{CARGO_LONG}, {CARGO_LONG} STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones con motor: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reformable a: {GOLD}{STRING} -STR_PURCHASE_INFO_ALL_TYPES :Todos los tipos de carga +STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de carga STR_PURCHASE_INFO_NONE :Sin carga STR_PURCHASE_INFO_ENGINES_ONLY :Sólo locomotoras STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} -STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máxima: {GOLD}{FORCE} +STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T. máxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} @@ -3606,15 +3606,15 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar y Reformar Barco STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar y Reformar Aeronave -STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vehículo de ferrocarril resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el vehículo de carretera resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el barco resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar la aeronave resaltada. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vehículo de ferrocarril resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el vehículo de carretera resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar el barco resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Comprar la aeronave resaltada. Mayús+clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el vehículo de ferrocarril resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el vehículo resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el barco resaltado. Mayús+Clic muestra una estimación del precio sin realizar la compra -STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}}Comprar y reformar la aeronave resaltada. Mayús+Clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el vehículo de ferrocarril resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el vehículo resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar y reformar el barco resaltado. Mayús+clic muestra una estimación del precio sin realizar la compra +STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}}Comprar y reformar la aeronave resaltada. Mayús+clic muestra una estimación del precio sin realizar la compra STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Renombrar STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Renombrar @@ -3641,7 +3641,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo del barco STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna entre mostrar/ocultar el tipo de la aeronave -STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Renombrar tipo de vehículo de raíl +STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Renombrar tipo de vehículo de ferrocarril STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Renombrar tipo de vehículo de carretera STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Renombrar tipo de barco STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Renombrar tipo de aeronave @@ -3736,13 +3736,13 @@ STR_ENGINE_PREVIEW_TRAM_VEHICLE :vehículo de tr STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave STR_ENGINE_PREVIEW_SHIP :{G=m}barco -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Precio: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Precio: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Precio: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Precio: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Precio: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Precio: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Precio: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} @@ -3752,42 +3752,42 @@ STR_REPLACE_VEHICLE_SHIP :Barco STR_REPLACE_VEHICLE_AIRCRAFT :Aeronave STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Vehículos en uso -STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Columna con los vehículos que ya posees +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Columna con los vehículos de tu propiedad STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Vehículos disponibles -STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Columna con los vehículos disponibles para sustitución +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Columna con los vehículos disponibles para reemplazo -STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Seleccione tipo de vehículo a reemplazar -STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Seleccione nuevo tipo de vehículo a usar en vez del vehículo seleccionado a la izquierda +STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Selecciona el tipo de vehículo a reemplazar +STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Selecciona un nuevo tipo de vehículo a usar en lugar del vehículo seleccionado a la izquierda -STR_REPLACE_VEHICLES_START :{BLACK}Empezar a reemplazar vehículos -STR_REPLACE_VEHICLES_NOW :Reemplazar todos los vehículos ahora +STR_REPLACE_VEHICLES_START :{BLACK}Comenzar a reemplazar vehículos +STR_REPLACE_VEHICLES_NOW :Reemplazar ahora todos los vehículos STR_REPLACE_VEHICLES_WHEN_OLD :Reemplazar solamente vehículos viejos -STR_REPLACE_HELP_START_BUTTON :{BLACK}Presiona este botón si quieres reemplazar el vehículo seleccionado a la izquierda por el seleccionado a la derecha +STR_REPLACE_HELP_START_BUTTON :{BLACK}Presiona este botón para reemplazar el vehículo seleccionado a la izquierda por el seleccionado a la derecha STR_REPLACE_NOT_REPLACING :{BLACK}No reemplazar STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}No hay vehículos seleccionados STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} cuando esté viejo -STR_REPLACE_VEHICLES_STOP :{BLACK}Parar de reemplazar vehículos +STR_REPLACE_VEHICLES_STOP :{BLACK}Detener el reemplazo de vehículos STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona este botón para detener el reemplazo del vehículo situado a la izquierda -STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre las ventanas de cambio de vagón y locomotora +STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alterna la ventana de reemplazo entre locomotoras y vagones STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones STR_REPLACE_ALL_RAILTYPE :Todos los vehículos ferroviarios STR_REPLACE_ALL_ROADTYPE :Todos los vehículos de carretera -STR_REPLACE_HELP_RAILTYPE :{BLACK}Seleccione tipo de ferrocarril para el que desea reemplazar locomotoras -STR_REPLACE_HELP_ROADTYPE :{BLACK}Selecciona el tipo de carretera para el que se desea reemplazar vehículos +STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecciona el tipo de ferrocarril al que pertenecen los vehiculos a reemplazar +STR_REPLACE_HELP_ROADTYPE :{BLACK}Selecciona el tipo de carretera al que pertenecen los vehiculos a reemplazar STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Muestra con qué vehículo está siendo reemplazado el vehículo de la izquierda STR_REPLACE_RAIL_VEHICLES :Vehículos de Ferrocarril STR_REPLACE_ELRAIL_VEHICLES :Vehículos de Ferrocarril Eléctrico STR_REPLACE_MONORAIL_VEHICLES :Vehículos de Monorraíl STR_REPLACE_MAGLEV_VEHICLES :Vehículos Maglev -STR_REPLACE_ROAD_VEHICLES :Vehículos Terrestres -STR_REPLACE_TRAM_VEHICLES :Vehículos de Tranvía +STR_REPLACE_ROAD_VEHICLES :Vehículos de Carretera +STR_REPLACE_TRAM_VEHICLES :Tranvías -STR_REPLACE_REMOVE_WAGON :{BLACK}Retirar vagón: {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 +STR_REPLACE_REMOVE_WAGON :{BLACK}Retirar vagones: {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 # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} @@ -3893,7 +3893,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Interval STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Incrementar intervalo de mantenimiento en 10. Ctrl+Clic incrementa el intervalo de mantenimiento en 5 STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Reducir intervalo de mantenimiento en 10. Ctrl+Clic reduce el intervalo de mantenimiento en 5 -STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Cambiar tipo de intervalo de mantenimiento +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Cambia el tipo de intervalo de mantenimiento STR_VEHICLE_DETAILS_DEFAULT :Por defecto STR_VEHICLE_DETAILS_DAYS :Dias STR_VEHICLE_DETAILS_PERCENT :Porcentaje @@ -3935,20 +3935,20 @@ STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nueva ca STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Beneficio de reforma: {GREEN}{CURRENCY_LONG} STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Selecciona los vehículos a reformar. Arrastrar con el ratón permite seleccionar múltiples vehículos. Hacer Clic en un espacio vacío seleccionará el vehículo completo. Ctrl+Clic selecciona un vehículo y la cadena que tenga a continuación -STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Elegir tipo de carga transportable para el tren -STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Selecciona tipo de carga que transportará el vehículo de carretera -STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Seleccione tipo de carga para que el barco la lleve -STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Seleccione tipo de carga para que la aeronave la lleve +STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Selecciona el tipo de carga que transportará el tren +STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Selecciona el tipo de carga que transportará el vehículo de carretera +STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Selecciona el tipo de carga que transportará el barco +STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Selecciona el tipo de carga que transportará la aeronave STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Reformar tren STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Reformar vehículo de carretera STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Reformar barco STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Reformar aeronave -STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Reformar tren para transportar mercancía resaltada -STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reformar vehículo de carretera para transportar la carga seleccionada -STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Reformar barco para que transporte el tipo de carga resaltado -STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reformar aeronave para que lleve el tipo de carga resaltado +STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Reforma el tren para que transporte el tipo de carga resaltado +STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reforma el vehículo de carretera para transportar la carga seleccionada +STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Reforma el barco para que transporte el tipo de carga resaltado +STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reforma la aeronave para que transporte el tipo de carga resaltado # Order view STR_ORDERS_CAPTION :{WHITE}{VEHICLE} (Órdenes) @@ -3968,21 +3968,21 @@ STR_ORDER_GO_TO :Ir a STR_ORDER_GO_NON_STOP_TO :Ir sin paradas a STR_ORDER_GO_VIA :Ir vía STR_ORDER_GO_NON_STOP_VIA :Ir sin paradas vía -STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambiar el comportamiento de parada en la orden seleccionada +STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambia el comportamiento de parada en la orden seleccionada STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Carga completa de cualquier carga STR_ORDER_DROP_LOAD_IF_POSSIBLE :Cargar si está disponible STR_ORDER_DROP_FULL_LOAD_ALL :Carga completa de todas las cargas STR_ORDER_DROP_FULL_LOAD_ANY :Carga completa de cualquier carga STR_ORDER_DROP_NO_LOADING :Sin cargar -STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambiar el comportamiento de carga en la orden seleccionada +STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambia el comportamiento de carga en la orden seleccionada STR_ORDER_TOGGLE_UNLOAD :{BLACK}Descargar todo STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descargar si es aceptado STR_ORDER_DROP_UNLOAD :Descargar todo STR_ORDER_DROP_TRANSFER :Transferir STR_ORDER_DROP_NO_UNLOADING :No descargar -STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar el comportamiento de descarga en la orden seleccionada +STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambia el comportamiento de descarga en la orden seleccionada STR_ORDER_REFIT :{BLACK}Reformar STR_ORDER_REFIT_TOOLTIP :{BLACK}Selecciona el tipo de carga a reformar en esta orden. Ctrl+Clic para eliminar la orden de reforma @@ -3995,40 +3995,40 @@ STR_ORDER_SERVICE :{BLACK}Mantenim STR_ORDER_DROP_GO_ALWAYS_DEPOT :Ir siempre STR_ORDER_DROP_SERVICE_DEPOT :Mantenimiento si es necesario STR_ORDER_DROP_HALT_DEPOT :Detenerse -STR_ORDER_SERVICE_TOOLTIP :{BLACK}Saltar esta orden a menos que un mantenimiento sea necesario +STR_ORDER_SERVICE_TOOLTIP :{BLACK}Salta esta orden a menos que un mantenimiento sea necesario -STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Datos del vehículo para saltarse +STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Datos del vehículo en los que se basará para realizar el salto de orden # Conditional order variables, must follow order of OrderConditionVariable enum STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Porcentaje de carga STR_ORDER_CONDITIONAL_RELIABILITY :Fiabilidad STR_ORDER_CONDITIONAL_MAX_SPEED :Velocidad Máxima STR_ORDER_CONDITIONAL_AGE :Edad (años) -STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requiere mantenimiento +STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necesita mantenimiento STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Siempre -STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tiempo de vida restante (años) +STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Vida útil restante (años) STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Fiabilidad máxima -STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comparar los datos del vehículo al valor dado +STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Cómo se compararán los datos del vehículo con respecto a los valores dados STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :es igual a STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :no es igual a -STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menos de -STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menos o igual a -STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es más de -STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es más o igual a +STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menor que +STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menor o igual que +STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es mayor que +STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es mayor o igual que STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :es verdadero STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :es falso -STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor a comparar de los datos del vehículo contra -STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Introduce el valor a comparar +STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor con el que se compararán los datos del vehículo +STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Introduce el valor con el que comparar STR_ORDERS_SKIP_BUTTON :{BLACK}Saltarse STR_ORDERS_SKIP_TOOLTIP :{BLACK}Saltar orden actual y comenzar la siguiente. Ctrl+Clic salta a la orden seleccionada STR_ORDERS_DELETE_BUTTON :{BLACK}Borrar -STR_ORDERS_DELETE_TOOLTIP :{BLACK}Borrar orden resaltada -STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Borrar todas las órdenes -STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Parar de compartir +STR_ORDERS_DELETE_TOOLTIP :{BLACK}Borra la orden resaltada +STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Borra todas las órdenes +STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Dejar de compartir STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Parar de compartir la lista de órdenes. Adicionalmente, Ctrl+Clic borra todas las órdenes de este vehículo STR_ORDERS_GO_TO_BUTTON :{BLACK}Ir a @@ -4038,7 +4038,7 @@ STR_ORDER_CONDITIONAL :Salto de orden STR_ORDER_SHARE :Compartir órdenes STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista. Ctrl sobre estaciones ordena 'Carga completa de cualquier carga', sobre puntos de ruta ordena 'sin paradas' y sobre depósitos ordena 'mantenimiento'. Ctrl o Compartir órdenes permite a este vehículo compartir órdenes con el vehículo seleccionado. Clic sobre un vehículo copia las órdenes. Una órden de depósito desactiva el mantenimiento automático del vehículo -STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos con el mismo calendario +STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos con el mismo horario # String parts to build the order string STR_ORDER_GO_TO_WAYPOINT :Ir vía {WAYPOINT} @@ -4055,8 +4055,8 @@ STR_ORDER_SHIP_DEPOT :Astillero de ba STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT} -STR_ORDER_REFIT_ORDER :(Reformar en {STRING}) -STR_ORDER_REFIT_STOP_ORDER :(Reformar en {STRING} y detenerse) +STR_ORDER_REFIT_ORDER :(Reformar a {STRING}) +STR_ORDER_REFIT_STOP_ORDER :(Reformar a {STRING} y detenerse) STR_ORDER_STOP_ORDER :(Detenerse) STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING} @@ -4101,9 +4101,9 @@ STR_ORDER_STOP_LOCATION_FAR_END :[extremo lejano STR_ORDER_OUT_OF_RANGE :{RED} (El próximo destino está fuera de alcance) -STR_ORDER_CONDITIONAL_UNCONDITIONAL :Saltar a orden {COMMA} -STR_ORDER_CONDITIONAL_NUM :Saltar a orden {COMMA} cuando {STRING} {STRING} {COMMA} -STR_ORDER_CONDITIONAL_TRUE_FALSE :Saltar a orden {COMMA} cuando {STRING} {STRING} +STR_ORDER_CONDITIONAL_UNCONDITIONAL :Saltar a la orden {COMMA} +STR_ORDER_CONDITIONAL_NUM :Saltar a la orden {COMMA} cuando {STRING} {STRING} {COMMA} +STR_ORDER_CONDITIONAL_TRUE_FALSE :Saltar a la orden {COMMA} cuando {STRING} {STRING} STR_INVALID_ORDER :{RED} (Orden no válida) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 0378351abb..ca1b7edd9f 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -438,6 +438,7 @@ STR_SORT_BY_RANGE :за дальн STR_SORT_BY_POPULATION :за населенням STR_SORT_BY_RATING :за рейтингом STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Загальний прибуток минулого року +STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Загальний прибуток цього року STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Середній прибуток мигулого року # Group by options for vehicle list @@ -1135,6 +1136,7 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Подвійн STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Показати швидкість оновлення STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати @@ -1571,6 +1573,7 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Залишат STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Залишати інструменти будівництва активними після використання. STR_CONFIG_SETTING_EXPENSES_LAYOUT :Групувати витрати у вікні фінансів: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Налаштування відображення інформації про вітрати у вікні фінансів +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Автоматично прибирати сигнали на шляху при будівництві колії. Увага: це може спричинити зіткнення потягів! STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% нормальної швидкості гри STR_CONFIG_SETTING_SOUND_TICKER :Новинний рухомий рядок: {STRING} @@ -1685,6 +1688,7 @@ STR_CONFIG_SETTING_ENDING_YEAR :Рік закі STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Рік закінчення гри для підрахунку очок. У кінці року додають очки компанії і показують загальний результат, але гравці можуть грати далі.{}Якщо встановлено рік раніший початкового, загальний результат не зʼявиться. STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Ніколи +STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Оригінальна STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Плавно STR_CONFIG_SETTING_ALLOW_SHARES :Дозволити придбання акції інших компаній: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :При включенні дозволяє придбання та продаж акцій команій. Акції компанії стають доступними після досягнення деякого віку. @@ -2720,6 +2724,7 @@ STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Огля STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Будувати STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Фінансувати STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Прибрати усі підприємства +STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Прибрати усі підприємства, наявні на мапі # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Ланцюг вантажних перевезень для {STRING} @@ -2740,6 +2745,7 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Обер # Land area window 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} @@ -3283,6 +3289,7 @@ STR_GOALS_CAPTION :{WHITE}Цілі STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальні цілі: STR_GOALS_SPECTATOR :Загальні задачі STR_GOALS_COMPANY_BUTTON :{BLACK}Компанія +STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Показати цілі компанії STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- нема - STR_GOALS_PROGRESS :{ORANGE}{STRING} @@ -4448,6 +4455,7 @@ STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... по STR_ERROR_CURRENCY_REQUIRED :{WHITE}... потрібно {CURRENCY_LONG} STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Неможливо повернути позику... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Неможливо передати гроші, позичені у банку... +STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Неможливо передати гроші цій компанії... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Неможливо купити компанію... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Неможливо збудувати Офіс... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Неможливо купити 25% акцій цієї компанії... From 13011e00c6330e6d745f319766574d2cd78a1162 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sat, 13 Mar 2021 21:34:51 +0100 Subject: [PATCH 46/53] Fix #8860: [Win32] Crashlog window wasn't reliably shown for crashes not on the main thread. --- src/crashlog.h | 6 ++++ src/os/macosx/crashlog_osx.cpp | 4 +++ src/os/unix/crashlog_unix.cpp | 4 +++ src/os/windows/crashlog_win.cpp | 53 +++++++++++++++++++-------------- src/thread.h | 2 ++ 5 files changed, 46 insertions(+), 23 deletions(-) diff --git a/src/crashlog.h b/src/crashlog.h index 7f1ff47edd..7d15c3512f 100644 --- a/src/crashlog.h +++ b/src/crashlog.h @@ -114,6 +114,12 @@ public: */ static void InitialiseCrashLog(); + /** + * Prepare crash log handler for a newly started thread. + * @note must be implemented by all implementers of CrashLog. + */ + static void InitThread(); + static void SetErrorMessage(const char *message); static void AfterCrashLogCleanup(); }; diff --git a/src/os/macosx/crashlog_osx.cpp b/src/os/macosx/crashlog_osx.cpp index a1470b6d63..7fcb672a81 100644 --- a/src/os/macosx/crashlog_osx.cpp +++ b/src/os/macosx/crashlog_osx.cpp @@ -257,3 +257,7 @@ void CDECL HandleCrash(int signum) signal(*i, HandleCrash); } } + +/* static */ void CrashLog::InitThread() +{ +} diff --git a/src/os/unix/crashlog_unix.cpp b/src/os/unix/crashlog_unix.cpp index ee3f5823fd..fc3682d024 100644 --- a/src/os/unix/crashlog_unix.cpp +++ b/src/os/unix/crashlog_unix.cpp @@ -181,3 +181,7 @@ static void CDECL HandleCrash(int signum) signal(*i, HandleCrash); } } + +/* static */ void CrashLog::InitThread() +{ +} diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index b0667ad8f3..76a05eaa9e 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -537,7 +537,7 @@ static void ShowCrashlogWindow(); * Stack pointer for use when 'starting' the crash handler. * Not static as gcc's inline assembly needs it that way. */ -void *_safe_esp = nullptr; +thread_local void *_safe_esp = nullptr; static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep) { @@ -605,28 +605,7 @@ static void CDECL CustomAbort(int signal) /* static */ void CrashLog::InitialiseCrashLog() { -#if defined(_M_AMD64) || defined(_M_ARM64) - CONTEXT ctx; - RtlCaptureContext(&ctx); - - /* The stack pointer for AMD64 must always be 16-byte aligned inside a - * function. As we are simulating a function call with the safe ESP value, - * we need to subtract 8 for the imaginary return address otherwise stack - * alignment would be wrong in the called function. */ -#if defined(_M_ARM64) - _safe_esp = (void *)(ctx.Sp - 8); -#else - _safe_esp = (void *)(ctx.Rsp - 8); -#endif -#else -#if defined(_MSC_VER) - _asm { - mov _safe_esp, esp - } -#else - asm("movl %esp, __safe_esp"); -#endif -#endif + CrashLog::InitThread(); /* SIGABRT is not an unhandled exception, so we need to intercept it. */ signal(SIGABRT, CustomAbort); @@ -637,6 +616,34 @@ static void CDECL CustomAbort(int signal) SetUnhandledExceptionFilter(ExceptionHandler); } +/* static */ void CrashLog::InitThread() +{ +#if defined(_M_AMD64) || defined(_M_ARM64) + CONTEXT ctx; + RtlCaptureContext(&ctx); + + /* The stack pointer for AMD64 must always be 16-byte aligned inside a + * function. As we are simulating a function call with the safe ESP value, + * we need to subtract 8 for the imaginary return address otherwise stack + * alignment would be wrong in the called function. */ +# if defined(_M_ARM64) + _safe_esp = (void *)(ctx.Sp - 8); +# else + _safe_esp = (void *)(ctx.Rsp - 8); +# endif +#else + void *safe_esp; +# if defined(_MSC_VER) + _asm { + mov safe_esp, esp + } +# else + asm("movl %esp, _safe_esp"); +# endif + _safe_esp = safe_esp; +#endif +} + /* The crash log GUI */ static bool _expanded; diff --git a/src/thread.h b/src/thread.h index f45694930b..f2a47e7bfe 100644 --- a/src/thread.h +++ b/src/thread.h @@ -11,6 +11,7 @@ #define THREAD_H #include "debug.h" +#include "crashlog.h" #include #include @@ -47,6 +48,7 @@ inline bool StartNewThread(std::thread *thr, const char *name, TFn&& _Fx, TArgs& try { std::thread t([] (const char *name, TFn&& F, TArgs&&... A) { SetCurrentThreadName(name); + CrashLog::InitThread(); try { /* Call user function with the given arguments. */ F(A...); From 22a9d921efa80f09b31afd860dae7ccd569cebf8 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 13 Mar 2021 12:26:06 +0100 Subject: [PATCH 47/53] Fix: if bootstrap failed, it could end with an empty screen instead of error There are various of ways bootstrap can fail: - Failing network connection - Incomplete download - No write permissions - Disk full - (others I forgot) They all result in a screen with no windows. To ensure we at least always show something when anything bad happens, if the bootstrap is not successful, show a screen what the next step for the human should be. --- src/bootstrap_gui.cpp | 66 ++++++++++++++++++++++++++++++++++ src/lang/english.txt | 4 +++ src/widgets/bootstrap_widget.h | 7 ++++ 3 files changed, 77 insertions(+) diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index 7ec391b47d..ff5cb0a7ce 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -14,6 +14,7 @@ #if defined(WITH_FREETYPE) || defined(WITH_UNISCRIBE) || defined(WITH_COCOA) #include "core/geometry_func.hpp" +#include "error.h" #include "fontcache.h" #include "gfx_func.h" #include "network/network.h" @@ -61,6 +62,63 @@ public: } }; +/** Nested widgets for the error window. */ +static const NWidgetPart _nested_bootstrap_errmsg_widgets[] = { + NWidget(NWID_HORIZONTAL), + NWidget(WWT_CAPTION, COLOUR_GREY, WID_BEM_CAPTION), SetDataTip(STR_MISSING_GRAPHICS_ERROR_TITLE, STR_NULL), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BEM_MESSAGE), EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BEM_QUIT), SetDataTip(STR_MISSING_GRAPHICS_ERROR_QUIT, STR_NULL), SetFill(1, 0), + EndContainer(), + EndContainer(), +}; + +/** Window description for the error window. */ +static WindowDesc _bootstrap_errmsg_desc( + WDP_CENTER, nullptr, 0, 0, + WC_BOOTSTRAP, WC_NONE, + WDF_MODAL, + _nested_bootstrap_errmsg_widgets, lengthof(_nested_bootstrap_errmsg_widgets) +); + +/** The window for a failed bootstrap. */ +class BootstrapErrorWindow : public Window { +public: + BootstrapErrorWindow() : Window(&_bootstrap_errmsg_desc) + { + this->InitNested(1); + } + + ~BootstrapErrorWindow() + { + _exit_game = true; + } + + void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override + { + if (widget == WID_BEM_MESSAGE) { + *size = GetStringBoundingBox(STR_MISSING_GRAPHICS_ERROR); + size->height = GetStringHeight(STR_MISSING_GRAPHICS_ERROR, size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT) + WD_FRAMETEXT_BOTTOM + WD_FRAMETEXT_TOP; + } + } + + void DrawWidget(const Rect &r, int widget) const override + { + if (widget == WID_BEM_MESSAGE) { + DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, r.top + WD_FRAMETEXT_TOP, r.bottom - WD_FRAMETEXT_BOTTOM, STR_MISSING_GRAPHICS_ERROR, TC_FROMSTRING, SA_CENTER); + } + } + + void OnClick(Point pt, int widget, int click_count) override + { + if (widget == WID_BEM_QUIT) { + _exit_game = true; + } + } +}; + /** Nested widgets for the download window. */ static const NWidgetPart _nested_boostrap_download_status_window_widgets[] = { NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CONTENT_DOWNLOAD_TITLE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), @@ -86,6 +144,14 @@ public: { } + ~BootstrapContentDownloadStatusWindow() + { + /* If we are not set to exit the game, it means the bootstrap failed. */ + if (!_exit_game) { + new BootstrapErrorWindow(); + } + } + void OnDownloadComplete(ContentID cid) override { /* We have completed downloading. We can trigger finding the right set now. */ diff --git a/src/lang/english.txt b/src/lang/english.txt index d4cf1e22e0..1837e143e0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2339,6 +2339,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, exit OpenTTD +STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Downloading failed +STR_MISSING_GRAPHICS_ERROR :{BLACK}Downloading graphics failed.{}Please download graphics manually. +STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Exit OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock diff --git a/src/widgets/bootstrap_widget.h b/src/widgets/bootstrap_widget.h index 4870f62d5a..16a36cc5b4 100644 --- a/src/widgets/bootstrap_widget.h +++ b/src/widgets/bootstrap_widget.h @@ -15,6 +15,13 @@ enum BootstrapBackgroundWidgets { WID_BB_BACKGROUND, ///< Background of the window. }; +/** Widgets of the #BootstrapErrmsgWindow class. */ +enum BootstrapErrorMessageWidgets { + WID_BEM_CAPTION, ///< Caption of the window. + WID_BEM_MESSAGE, ///< Error message. + WID_BEM_QUIT, ///< Quit button. +}; + /** Widgets of the #BootstrapContentDownloadStatusWindow class. */ enum BootstrapAskForDownloadWidgets { WID_BAFD_QUESTION, ///< The question whether to download. From 4fe222d8536ef7fd9ec71f6f176c661a205bd7d1 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 13 Mar 2021 12:31:24 +0100 Subject: [PATCH 48/53] Fix: errors during bootstrap could still show up after bootstrap For example, if you have a config that defines OpenGFX as baseset but for some reason you have no basesets anymore. In that case bootstrap downloads OpenGFX for you, but it will still show the error that "OpenGFX was not found" after the bootstrap. This was an error generated before the bootstrapped kicked in. Simply muting all errors during bootstrap solves this; as we cannot show them anyway, this is fine. Any errors that remain after bootstrap will be generated again anyway. --- src/error_gui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/error_gui.cpp b/src/error_gui.cpp index c8594e34a2..7b7413228c 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -396,6 +396,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel bool no_timeout = wl == WL_CRITICAL; + if (_game_mode == GM_BOOTSTRAP) return; if (_settings_client.gui.errmsg_duration == 0 && !no_timeout) return; ErrorMessageData data(summary_msg, detailed_msg, no_timeout ? 0 : _settings_client.gui.errmsg_duration, x, y, textref_stack_grffile, textref_stack_size, textref_stack); From c25847787e984d265a9195f27d704f302971fddc Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 13 Mar 2021 15:09:09 +0100 Subject: [PATCH 49/53] Codechange: we are not booing straps .. we are bootstrapping --- src/bootstrap_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index ff5cb0a7ce..7495e08ba5 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -120,7 +120,7 @@ public: }; /** Nested widgets for the download window. */ -static const NWidgetPart _nested_boostrap_download_status_window_widgets[] = { +static const NWidgetPart _nested_bootstrap_download_status_window_widgets[] = { NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CONTENT_DOWNLOAD_TITLE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), NWidget(WWT_PANEL, COLOUR_GREY, WID_NCDS_BACKGROUND), NWidget(NWID_SPACER), SetMinimalSize(350, 0), SetMinimalTextLines(3, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 30), @@ -132,7 +132,7 @@ static WindowDesc _bootstrap_download_status_window_desc( WDP_CENTER, nullptr, 0, 0, WC_NETWORK_STATUS_WINDOW, WC_NONE, WDF_MODAL, - _nested_boostrap_download_status_window_widgets, lengthof(_nested_boostrap_download_status_window_widgets) + _nested_bootstrap_download_status_window_widgets, lengthof(_nested_bootstrap_download_status_window_widgets) ); From 41baf8778b990ed49331df31a48bdfb53fda5d3f Mon Sep 17 00:00:00 2001 From: Tyler Trahan Date: Sun, 14 Mar 2021 06:16:14 -0400 Subject: [PATCH 50/53] Doc: Clarify comment that SND_05_TRAIN_THROUGH_TUNNEL is only for steam engines (#8858) --- src/sound_type.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sound_type.h b/src/sound_type.h index c4a96d861e..e8d4b7becb 100644 --- a/src/sound_type.h +++ b/src/sound_type.h @@ -39,7 +39,7 @@ enum SoundFx { SND_02_CONSTRUCTION_WATER = 0, ///< 0 == 0x00 Construction: water infrastructure SND_03_FACTORY, ///< 1 == 0x01 Industry producing: factory: whistle SND_04_DEPARTURE_STEAM, ///< 2 == 0x02 Station departure: steam engine - SND_05_TRAIN_THROUGH_TUNNEL, ///< 3 == 0x03 Train enters tunnel + SND_05_TRAIN_THROUGH_TUNNEL, ///< 3 == 0x03 Train enters tunnel: steam engine SND_06_DEPARTURE_CARGO_SHIP, ///< 4 == 0x04 Station departure: cargo ships SND_07_DEPARTURE_FERRY, ///< 5 == 0x05 Station departure: passenger ships SND_08_TAKEOFF_PROPELLER, ///< 6 == 0x06 Takeoff: propeller plane (non-toyland) From 217071aa1d50eca1afa79d23f1482900da895d4c Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 14 Mar 2021 19:01:42 +0000 Subject: [PATCH 51/53] Update: Translations from eints norwegian (bokmal): 5 changes by Anolitt estonian: 13 changes by siimsoni korean: 5 changes by telk5093 italian: 1 change by AlphaJack german: 5 changes by danidoedel ukrainian: 15 changes by StepanIvasyn catalan: 5 changes by J0anJosep dutch: 5 changes by Afoklala lithuanian: 82 changes by devbotas spanish: 255 changes by MontyMontana portuguese (brazilian): 5 changes by Greavez --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 6 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 6 + src/lang/croatian.txt | 1 + src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 6 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 22 +- src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 1 + src/lang/gaelic.txt | 1 + src/lang/galician.txt | 1 + src/lang/german.txt | 6 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 2 + src/lang/japanese.txt | 1 + src/lang/korean.txt | 6 + src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 94 +++++- src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 6 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 1 + src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 506 +++++++++++++++-------------- src/lang/spanish_MX.txt | 1 + src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 16 + src/lang/unfinished/chuvash.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/ido.txt | 1 + src/lang/unfinished/macedonian.txt | 1 + src/lang/unfinished/maltese.txt | 1 + src/lang/unfinished/marathi.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 63 files changed, 459 insertions(+), 269 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 741d0c3d6d..1cb99d4e39 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2274,6 +2274,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, laai die grafika af STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, verlaat OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Deursigtigheid Opsies STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Wissel deursigtigheid vir stasietekens. Ctrl+klik om te sluit diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index c6cba23eaa..326c3d7988 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1901,6 +1901,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}تحتا STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}نعم, حمل الرسومات STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}لا, اغلق اللعبة + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}خيارات الشفافية STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}بدل شفافية اسماء المحطات. مفتاح كنترول للاغلاق. diff --git a/src/lang/basque.txt b/src/lang/basque.txt index b806915088..b844824562 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2140,6 +2140,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD- STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Bai, grafikoak jaitsi STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ez, OpenTTD itxi + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Gardentasun aukerak STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Seinaleen gardentasuna aldatu. Ktrl+Klik blokeatzeko diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 2a5dda0e50..09d834bbda 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2599,6 +2599,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Так, спампаваць ґрафiку STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Не, выйсьцi з OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Наладкі празрыстасьці STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Пераключэньне празрыстасьці надпісаў. Ctrl+пстрычка — заблякаваць. diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index a9d20bcf43..129a6ba487 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1662,12 +1662,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Nível máximo STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Zoom adentro máximo para janelas de visualização. Note que ativar zoom maiores aumenta o uso de memória STR_CONFIG_SETTING_ZOOM_MAX :Nível máximo de zoom afora: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Zoom afora máximo para janelas de visualização. Note que ativar zoom maiores causa lag durante o jogo +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Resolução máxima de sprites a serem usados: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limita a resolução máxima a ser usada para sprites. Limitar a resolução de sprites evitará o uso de gráficos de alta resolução, mesmo quando estiverem disponíveis. Isso pode ajudar a manter a aparência do jogo uniforme quando estiver usando uma mistura de arquivos GRF com e sem gráficos de alta resolução. 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 :Velocidade de crescimento de cidade: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocidade com a qual as cidades expandem STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Nenhum @@ -2335,6 +2340,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sim, baixar os gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Não, sair do OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opções de Transparência STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Alternar transparência para sinais de estação. Ctrl+Clique para travar diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index e5dab5e199..350c12ab4a 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2191,6 +2191,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Да, изтегли графиките STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Не, изход от OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Настройки на прозрачност STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Превключва прозрачност за знаци. Ctrl за заключване diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 1dea7d5377..4a886b4373 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1662,12 +1662,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Zoom màxim d'a STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivell de zoom d'apropament màxim a les vistes. Un major nivell de zoom d'apropament incrementa les necessitats de memòria STR_CONFIG_SETTING_ZOOM_MAX :Zoom màxim d'allunyament: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Nivell de zoom d'allunyament màxim a les vistes. Un nivell elevat de zoom d'allunyament pot causar alentiments +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Resolució de sprites màxima que es pot usar: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limita la resolució màxima dels sprites que s'empraran. Aquest límit pot evitar que s'usin els sprites amb resolució elevada quan estiguin disponibles. Això pot ajudar a millorar l'aparença general quan s'empren diferents fitxers GRF amb gràfics de diferents resolucions màximes. 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 :x4 +STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :x2 +STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :x1 STR_CONFIG_SETTING_TOWN_GROWTH :Velocitat de creixement de les poblacions: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocitat de creixement de les poblacions STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Cap @@ -2335,6 +2340,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}L'OpenTT STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descarregar els gràfics STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt de l'OpenTTD. + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opcions de transparència STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Commuta la transparència dels senyals. Ctrl+Clic per bloquejar diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e2633312bf..f2896524aa 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2379,6 +2379,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, preuzmi grafike STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, izađi iz OpenTTD-a + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Postavke prozirnosti STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Namjesti prozirnost za znakove. Ctrl+klik za zaključavanje diff --git a/src/lang/czech.txt b/src/lang/czech.txt index a2df59c865..f609a63e12 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2404,6 +2404,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ano, stáhnout grafiky STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, ukončit OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Nastavení průhlednosti STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Změna průhlednosti popisků. Nastavení se zamkne Ctrl+kliknutím diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 46f83b24ab..9b4c745968 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2283,6 +2283,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Grafikfi STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, download grafikfilerne STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nej, afslut OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Gennemsigtighedsvalg STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Skift gennemsigtighed for skilte. CTRL+Klik for at låse værdi. diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index afb7e0d9c1..43fc71945b 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1661,12 +1661,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximaal inzoom STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Het maximale inzoomniveau voor kijkvensters. Merk op dat hogere inzoomniveaus hogere eisen stellen aan het geheugen. STR_CONFIG_SETTING_ZOOM_MAX :Maximaal uitzoomniveau: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :De maximale zoom-uit niveau voor kijkvensters. Hogere zoom-uit niveaus kunnen leiden tot vertraging bij gebruik +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Hoogste resolutie die sprites mogen gebruiken: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Beperk de maximale resolutie die voor sprites wordt gebruikt. Door deze beperking worden geen grafische elementen in hoge resolutie gebruikt, ook niet als ze beschikbaar zijn. Zo kan de weergave van het spel consistent blijven wanneer je verschillende GRF-bestanden gebruikt met en zonder grafische elementen in hoge resolutie. STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normaal 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 :Groeisnelheid steden: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Groeisnelheid van steden. STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Niet @@ -2334,6 +2339,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, grafische elementen downloaden STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, OpenTTD afsluiten + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Doorzichtigheidsopties STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparantie voor stationsnamen aan-uit. Ctrl+klik om vast te zetten. diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 91db968c1b..93737d460d 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2200,6 +2200,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, exit OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index e3e854e3c1..4793e05fde 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2334,6 +2334,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, quit OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 53f08dc3b7..9514cb5456 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1861,6 +1861,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jes, elŝuti la grafikojn STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, fermi OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Ebloj por travidebleco STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Baskuligi travideblecon de signoj. Ctrl+Klak por ŝlosi diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index b8b00648f8..6831593ffa 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1081,7 +1081,7 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Neljakordne suu STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graafika -STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Näita värskendussagedust +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Ekraani värskendussagedus STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Vali, mis värskendussagedust kasutada STR_GAME_OPTIONS_REFRESH_RATE_OTHER :muu STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz @@ -1196,7 +1196,7 @@ STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Sulge k STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(seletus puudub) STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Vaikeväärtus: {ORANGE}{STRING} STR_CONFIG_SETTING_TYPE :{LTBLUE}Seade rühm: {ORANGE}{STRING} -STR_CONFIG_SETTING_TYPE_CLIENT :Kliendi seade (ei salvestu koos mänguga; mõjutab kõiki mänge) +STR_CONFIG_SETTING_TYPE_CLIENT :Kliendiseade (ei salvestu koos mänguga; mõjutab kõiki mänge) STR_CONFIG_SETTING_TYPE_GAME_MENU :Mängu seade (salvestub koos mänguga; mõjutab ainult uusi mänge) STR_CONFIG_SETTING_TYPE_GAME_INGAME :Mängu seaded (hoitakse salvestuses; mõjutab ainult praegust mängu) STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Ettevõtte seaded (hoitakse salvestuses; mõjutab ainult uusi mänge) @@ -1213,7 +1213,7 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Uue mängu sead STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Piirab allolevat nimekirja valitud sätte tüübi järgi STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Kõik seadistused -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kliendi seade (ei salvestu koos mänguga; mõjutab kõiki mänge) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kliendiseade (ei salvestu koos mänguga; mõjutab kõiki mänge) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Mängu seaded (hoitakse salvestuses; mõjutab ainult uusi mänge) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Mängu seaded (hoitakse salvestuses; mõjutab ainult praegust mängu) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firma seaded (hoitakse salvestuses; mõjutab ainult uusi mänge) @@ -1718,12 +1718,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Suurim suurendu STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Vaateakna suurendusastme ülempiirang. Kõrgete suurendusastmete lubamisega kaasneb suurem vahemälu kasutamine STR_CONFIG_SETTING_ZOOM_MAX :Väikseim suurendusaste: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Vaateakna suurendusastme alampiir. Madalate suurendusastmete kasutamine võib põhjustata viivitusi +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Sprite'ide ekraanilahutus kuni: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Piirab ekraanilahutust, mida sprite'ide jaoks kasutatakse. Sprite'ide ekraanilahutust piirates ei kasutata kõrge ekraanilahutusega graafikat ka siis, kui see on saadaval. Võib aidata ühtsustada mängu väljanägemist, kui osad GRF failid on kõrge ekraanilahutusega ja teised mitte. STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Tavaline 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 :Asulate kasvutempo: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Asulate kasvutempo STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Pole @@ -2336,7 +2341,7 @@ STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Otsi vä STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Otsi OpenTTD-st sõltumatutest lehtedest aineseid, mida OpenTTD aineste keskserverist ei saa STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Sa oled lahkumas OpenTTD-st! STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Välistest veebilehtedest aineste allalaadimisel võivad kasutustingimused vahelduda.{}Paigaldusjuhiseid otsida samadest välistest veebilehtedest.{}Kas jätkata? -STR_CONTENT_FILTER_TITLE :{BLACK}Siltide/nimede märksõna: +STR_CONTENT_FILTER_TITLE :{BLACK}Tähiste/nimede märksõna: STR_CONTENT_OPEN_URL :{BLACK}Külasta lehekülge STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Külasta lehekülge selle sisu jaoks. STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Laadi alla @@ -2392,6 +2397,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jah, laadi graafika alla STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ei, välju OpenTTD-st + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Läbipaistvuse seadistus STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Muuda jaamamärkide läbipaistvust. Ctrl+klõps lukustab @@ -2940,7 +2946,7 @@ STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Määrab STR_MAPGEN_BY :{BLACK}* STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Asustusi: STR_MAPGEN_DATE :{BLACK}Algus: -STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Tööstuste sagedus: +STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Tööstustihedus: STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Kaardi ülemkõrgus: STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Tõsta maksimaalset kaardi mägede kõrgust ühe võrra STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Langeta maksimaalset kaardi mägede kõrgust ühe võrra @@ -3215,8 +3221,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} äraveetud STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (ikka veel vaja) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (äraveetud) -STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Asustus kasvab iga {ORANGE}{COMMA}{NBSP}päev{P "" a} -STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Asustus kasvab iga {ORANGE}{COMMA}{BLACK}{NBSP}päev{P "" a} (rahastatud) +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Asustus kasvab igal {ORANGE}{COMMA}{BLACK}.{NBSP}päeval +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Asustus kasvab igal {ORANGE}{COMMA}{BLACK}.{NBSP}päeval (rahastatud) STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Asustus {RED}ei{BLACK} kasva STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Mürapiirang asustuses: {ORANGE}{COMMA}{BLACK} suurim: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Keskenda vaade asustusele. Ctrl+klõps avab asustuse kohal uue vaate @@ -3423,7 +3429,7 @@ STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Rongide t STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Mootorsõidukite tulud STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Õhusõidukite tulud STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Laevade tulud -STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Laenuintress +STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Laenuintressid STR_FINANCES_SECTION_OTHER :{GOLD}Muud STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG} STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index a733070595..4eff8b84e7 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2048,6 +2048,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, heinta niður grafikkin STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nei, gevst at spæla OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Gjøgnumskygnis møguleikar STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Sløkk/tendra gjøgnumskygni fyri skelti. Ctrl+trýst fyri at læsa diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 44c99fad1b..5a6626ba44 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2334,6 +2334,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Kyllä, lataa grafiiikat STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ei, sulje OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Läpinäkyvyysasetukset STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Muuta kylttien läpinäkyvyyttä. Ctrl+napsautus lukitsee. diff --git a/src/lang/french.txt b/src/lang/french.txt index 19fdad4bdf..38d96f8978 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2335,6 +2335,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Oui, télécharger les graphiques STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Non, quitter OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Options de transparence STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparence des panneaux.{}Ctrl-clic pour verrouiller. diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 365f3af064..e5c591c311 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2437,6 +2437,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Tha graf STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Bheir, luchdaich a' ghrafaigeachd a-nuas STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Cha toir, fàg OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Roghainnean trìd-shoilleireachd STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toglaich trìd-shoilleireachd nan sanasan. Ctrl+Briogadh airson glasadh diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 1b52d770bb..0db6fc8aeb 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2274,6 +2274,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Si, descarga os gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Non, abandona OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opcións de Transparencia STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Habilitar transparencia para os rótulos. CTRL+Click para bloquear diff --git a/src/lang/german.txt b/src/lang/german.txt index d5190cb18b..c6f8eef430 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1662,12 +1662,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximale Hinein STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maximale Vergrößerung für Kartenansichten. Bedenke, dass höhere Vergrößerungsstufen mehr Arbeitsspeicher benötigen STR_CONFIG_SETTING_ZOOM_MAX :Maximale Herauszoomstufe: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Maximale Verkleinerungsstufe für Kartenansichten. Höhere Verkleinerungsstufen können Ruckeln verursachen +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Höchste Auflösung der Sprites: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limitiert die maximale Auflösung, die von Sprites verwendet wird. Das Limitieren der Sprite-Auflösung verhindert das Verwenden von hochauflösenden Grafiken selbst dann, wenn diese verfügbar sind. Dies kann dabei helfen eine einheitliche Spieldarstellung zu erhalten, wenn GRF-Dateien mit und ohne hochauflösenden Grafiken verwendet werden. STR_CONFIG_SETTING_ZOOM_LVL_MIN :4× STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2× STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2× STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4× STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8× +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 :Wachstumsgeschwindigkeit von Städten: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Geschwindigkeit des Städtewachstums STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Keine @@ -2335,6 +2340,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, Grafiken herunterladen STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nein, OpenTTD beenden + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparenzeinstellungen STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparenz für Schilder einstellen. Strg+Klick, um Umschalten zu verhindern bzw. wieder zu erlauben diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 902cf649ca..883d6db25e 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -2400,6 +2400,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Το Ope STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ναι, κατέβασε τα γραφικά STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Όχι, έξοδος από το OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Ρυθμίσεις Διαφάνειας STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Εναλλαγή διαφάνειας για τις πινακίδες. Ctrl+Κλικ για να την κλειδώσετε diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 8207aa0e5f..689d7ed641 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2251,6 +2251,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}כן, הורד את הגרפיקה STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}לא, צא מ-OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}הגדרות שקיפות STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK} שנה שקיפות עבור שלטי תחנות. Ctrl+לחיצה לנעילה diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 09ae3a52e1..6599d2de87 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2398,6 +2398,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Az OpenT STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Igen, a grafikai alapcsomag letöltése STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nem, kilépés az OpenTTD-ből + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Átlátszósági beállítások STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Átlátszó feliratok bekapcsolása. Ctrl+kattintással zárolható diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index cc7ebe4d88..5e59429fcf 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2084,6 +2084,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Já, sækja grafík STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nei, hætta í OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Stilling gegnsæjis STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Virkja/afvirkja gegnsæji skilta. CTRL+smella til að læsa. diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index e72602fee4..8f32a95920 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2316,6 +2316,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ya, download file gambar STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Tidak, tutup OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Pengaturan Transparasi STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Hidup/matikan transparansi tanda-tanda. CTRL+klik untuk mengunci diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 66ab585ffc..418af2c2ca 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2225,6 +2225,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Tá graf STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Tugann, íoslódáil na grafaicí STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ní thugann, scoir de OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Roghanna Trédhearcachta STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Scoránaigh trédhearcacht do chomharthaí stáisiún. Ctrl+Cliceáil le glasáil. diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 1b40e372a3..e0d21c34c3 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1681,6 +1681,7 @@ STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normale 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_IN_2X :2x STR_CONFIG_SETTING_TOWN_GROWTH :Velocità di crescita delle città: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocità di crescita delle città STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Nessuna @@ -2346,6 +2347,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sì, scarica il pacchetto STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, esci da OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opzioni trasparenza STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Attiva/disattiva la trasparenza dei cartelli. CTRL+clic per bloccare diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index ce815f0b67..2462c3cad8 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2228,6 +2228,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}はい、グラフィックをダウンロードします STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}いいえ、OpenTTDを終了します + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}透過表示設定 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}駅名標識の透過表示を切り替えます。{}Ctrl+クリックでロックします diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a436615816..0796370210 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1662,12 +1662,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :최대 확대 STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :게임 화면의 최대 확대 수준을 설정합니다. 화면을 더 크게 확대할 수록 더 많은 메모리가 필요합니다. STR_CONFIG_SETTING_ZOOM_MAX :최대 축소 수준: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :게임 화면의 최대 축소 수준을 설정합니다. 화면을 더 작게 축소할 수록 게임이 더 버벅거리게 될 수도 있습니다. +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :사용할 최고 해상도 그래픽 스프라이트: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :그래픽 스프라이트에 사용할 최고 해상도를 제한합니다. 그래픽 스프라이트 해상도를 제한하면 고 해상도 그래픽을 사용할 수 있어도 이를 사용하지 않을 수 있습니다. 이 설정을 사용하면 고해상도 그래픽을 지원하지 않는 GRF 파일을 섞어서 사용할 때 게임 모습을 일관성있게 만들 수 있습다. STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_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 :도시 성장 속도: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :도시의 성장 속도를 설정합니다. STR_CONFIG_SETTING_TOWN_GROWTH_NONE :없음 @@ -2335,6 +2340,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}예, 그래픽을 다운로드 받습니다 STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}아니요, OpenTTD를 종료합니다 + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}투명 설정 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}역명판을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 6ab99bf2d4..4c5d5c8e59 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2455,6 +2455,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ita, arcessere graphica STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Non, OpenTTD exire + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Optiones Perluciditatis STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Mutare perluciditatem signorum. Ctrl+Preme ut figatur (non mutabitur globulo perluciditatem mutandi presso) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 5a5acdefa5..b6579b75ca 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2326,6 +2326,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jā, lejupielādēt grafiku STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nē, iziet no OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Caurspīdības opcijas STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Pārslēgt zīmju caurspīdību. Ctrl+klikšķis lai slēgtu diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 854c2dff18..d9a5d94f16 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -382,6 +382,7 @@ STR_COLOUR_ORANGE :Oranžinė STR_COLOUR_BROWN :Ruda STR_COLOUR_GREY :Pilka STR_COLOUR_WHITE :Balta +STR_COLOUR_RANDOM :Atsitiktinė STR_COLOUR_DEFAULT :Numatytas # Units used in OpenTTD @@ -456,6 +457,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Įjungus STR_BUTTON_DEFAULT :{BLACK}Numatytas STR_BUTTON_CANCEL :{BLACK}Atšaukti STR_BUTTON_OK :{BLACK}Gerai +STR_WARNING_PASSWORD_SECURITY :{YELLOW}Perspėjimas: serverio administratoriai gali pamatyti tekstą, kurį čia įvesite # On screen keyboard window STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ . @@ -504,7 +506,11 @@ STR_SORT_BY_CARGO_CAPACITY :vagono talpą STR_SORT_BY_RANGE :atstumą STR_SORT_BY_POPULATION :populiaciją STR_SORT_BY_RATING :reitingą -STR_SORT_BY_NUM_VEHICLES :Transporto priemonių skaičių +STR_SORT_BY_NUM_VEHICLES :transporto priemonių skaičių +STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :bendrąjį pernykštį pelną +STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :bendrąjį šiųmetį pelną +STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :vidutinį pernykšį pelną +STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :vidutinį šiųmetį pelną # Group by options for vehicle list STR_GROUP_BY_NONE :(tuščia) @@ -532,7 +538,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Rodyti k STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Priartinti vaizdą STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Nutolinti vaizdą STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Tiesti geležinkelius -STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Tiesti kelius ir tramvajaus linijas +STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Tiesti kelius STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Tiesti tramvajaus linijas STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Tiesti vandens kelius STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Statyti oro uostus @@ -663,6 +669,7 @@ STR_TOOLBAR_SOUND_MUSIC :Garsas/muzika ############ range for message menu starts STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Paskutinė žinutė/naujiena STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Žinučių istorija +STR_NEWS_MENU_DELETE_ALL_MESSAGES :Pašalinti visas žinutes ############ range ends here ############ range for about menu starts @@ -940,6 +947,7 @@ STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Kalnuoti kraštai STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Ganyklos STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Lygumos +STR_SMALLMAP_LEGENDA_RAINFOREST :{TINY_FONT}{BLACK}Drėgnasis miškas STR_SMALLMAP_LEGENDA_FIELDS :{TINY_FONT}{BLACK}Laukai STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Medžiai STR_SMALLMAP_LEGENDA_ROCKS :{TINY_FONT}{BLACK}Uolos @@ -1017,6 +1025,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Valdytojas) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} parėmė naujo miesto statybą {TOWN}! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Įkurtas naujas miestas, {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Statoma{G s ""} nauja{G s ""} {STRING} netoli miesto {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Sodinama{G s ""} nauja{G s ""} {STRING} netoli miesto {TOWN}! @@ -1191,6 +1200,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekrano r STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pasirinkite ekrano raišką STR_GAME_OPTIONS_RESOLUTION_OTHER :Kita +STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aparatinis spartinimas +STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Pažymėkite šį langelį, jei norite, kad OpenTTD taikytų aparatinį spartinimą. Kad nuostata įsigaliotų, reiks perkrauti OpenTTD +STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Kad pakeitimai įsigaliotų, reikia paleisti OpenTTD iš naujo STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Sąsajos elementų dydis STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pasirinkite vartotojo sąsajos elementų santykinį dydį @@ -1198,17 +1210,23 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pasirink STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(aptikti automatiškai) STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normalus STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dvigubas -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Trigubas +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Keturgubas STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Šrifto dydis STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pasirinkite vartotojo sąsajos šrifto dydį STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(aptikti automatiškai) STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normalus -STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvigubas dydis -STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Keturgubas dydis +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvigubas +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Keturgubas +STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafika +STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Ekrano kadrų dažnis +STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Pasirinkite pageidaujamą ekrano kadrų dažnį +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :Kitas +STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz +STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Didesnis nei 60Hz kadrų dažnis gali sulėtinti žaidimą. STR_GAME_OPTIONS_BASE_GRF :{BLACK}Bazinis grafikos rinkinys STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pasirinkti naudojimui bazinę grafikos rinkinį @@ -1479,6 +1497,7 @@ STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktūro STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Infrastruktūros (kelių, geležinkelių, stotelių, angarą ir kitų objektų) priežiūra kainuoja. Kaštai auga proporcingai kompanijos dydžiui, taigi didesnėms kompanijoms infrastruktūros priežiūra kainuos daugiau, nei mažesnėms STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Kompanijos pradinė spalva: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Pasirinkite pradinę kompanijos spalvą STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Oro uostai niekada nepasensta: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Kartą atsiradę, oro uostų tipai niekada nebepasens ir galimybė juos statyti niekuomet nebus pašalinta @@ -1595,7 +1614,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command+Click STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Click STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Išjungta -STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Uždaro langą dešiniuoju pelės klavišu spustelėdami jo vidų. Išjungia patarimą dešiniuoju pelės mygtuku spustelėjimu! +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Užverti langą dešiniuoju pelės klavišo spustelėjimu: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Užveria langą dešiniuoju pelės klavišu spustelėjus ant jo. Išjungia patarimą dešiniuoju pelės klavišu spustelėjimu! STR_CONFIG_SETTING_AUTOSAVE :Automatinis saugojimas: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Laiko tarpsnis tarp automatinių žaidimo išsaugojimų @@ -1635,6 +1655,12 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Palikti statymo STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Laikyti statybų įrankius tiltams, tuneliams ir pnš. atidarytus po panaudojimo STR_CONFIG_SETTING_EXPENSES_LAYOUT :Grupuoti išlaidas finansinės ataskaitos lange: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Nustatyti kompanijos išlaidų lango planą +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automatiškai išmontuoti semaforus, tiesiant naujus bėgius: {STRING} +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Semaforai bus automatiškai išmontuoti, jei trukdys tiesti naujus bėgius. Atkreipkite dėmesį, tokia veiksena gali lemti traukinių susidūrimą. +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Pagreitinto žaidimo spartos riba: {STRING} +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Didžiausias galimas žaidimo modeliavimo greitis, įgalinus pagreitinto žaidimo veikseną. Parinkus 0, riba taikoma nebus, tad modeliavimo greitis priklausys tik nuo jūsų kompiuterio spartos. Vertės, mažesnės už 100, žaidimą sulėtins. Reali pasiekiama modeliavimo sparta priklauso nuo jūsų kompiuterio spartos bei nuo pačio žaidimo sudėtingumo. +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}%, lyginant su normalia sparta +STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Netaikyti (kiek tik leis kompiuteris) STR_CONFIG_SETTING_SOUND_TICKER :Trumpoji žinutė: {STRING} STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Skleisti garsus gavus trumpają žinutę @@ -1683,6 +1709,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Leisti DI Inter STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Leisti DI kompiuterio žaidėjus dalyvauti Interneto režime STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opkodai prieš skriptus yra nevykdomi: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Didžiausias skaičius skaičiavimų žingsnių, kuriuos scenarijus vykdo viename ėjime +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Didžiausias skriptui leistinas atminties suvartojimas: {STRING} +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Jei skriptas sunaudos nurodytą kiekį operatyviosios atminties, jis bus priverstinai išjungtas. Didesniuose žemėlapiuose skriptams reikia daugiau atminties +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Techninės apžiūros intervalas procentais: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Įjungus šią nuostatą, techninė apžiūra bus vykdoma vos tik patikimumas nukris iki tam tikros procentinės vertės. Priešingu atveju techninė apžiūra bus vykdoma kas nustatytą dienų skaičių @@ -1741,11 +1770,19 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Pilnas STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Spalvotos naujienos atsiranda: {STRING} metais STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Metai, kai laikraščių antraštės tampa spalvotos. Iki tol jos būna monochominės STR_CONFIG_SETTING_STARTING_YEAR :Žaidimo pradžia: {STRING} +STR_CONFIG_SETTING_ENDING_YEAR :Šlovės lentos metai: {STRING} +STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Metai, kuomet kompanija bus įvertinta ir patalpinta šlovės lentoje. Šių metų pabaigoje bus parodyta šlovės lenta, bet žaisti bus galima ir toliau, nors taškai ir nebebus skaičiuojami.{}Jei šie metai bus ankstesni, nei žaidimo pradžios metai, tuomet šlovės lenta nebus parodyta niekada. +STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Niekada +STR_CONFIG_SETTING_ECONOMY_TYPE :Ekonomika: {STRING} +STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :Tolygioje ekonomikoje gamyklų produkcija keičiasi mažesniais ir dažnesniais žingsniais. Fiksuotoje ekonomikoje jokie pokyčiai nevyksta. Nuostata gali neveikti pramonės įmonėms, įdiegtoms per plėtinius. STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Originali +STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Tolygi STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Fiksuota STR_CONFIG_SETTING_ALLOW_SHARES :Leisti pirkti kitų kompanijų akcijas: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Leisti pirkti bei parduoti kitų kompanijų akcijas. Akcijos yra platinamos tik įmonei sulaukus tam tikro amžiaus +STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mažiausias kompanijos amžius metais, kuomet bus leista prekiauti jos akcijomis: {STRING} +STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Kompanijos akcijomis leidžiama prekiauti tik jai sulaukus tam tikro amžiaus STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Grynojo pelno dalis, mokama tiekėjų sistemoms: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Pelno dalis, tenkanti tarpinėms tiekėjų sistemoms STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Velkant kopijuoti šviesoforus kas: {STRING} @@ -1786,9 +1823,17 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Įjungiant šį STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Uždrausta STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Leista STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Leista, pasirinktinis miestų išdėstymas +STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Miesto krovinių generavimo algoritmas: {STRING} +STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Mieste generuojamų krovinių kiekis priklauso nuo miesto dydžio.{}Kvadratinis algoritmas: dvigubai paaugęs miestas generuos keturis kartus daugiau krovinių (keleivių ir pašto maišų).{}Tiesinis algoritmas: dvigubai paaugęs miestas generuos dukart daugiau krovinių (keleivių ir pašto maišų) +STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Kvadratinis (originalus) +STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Tiesinis STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Savaiminis medžių atsiradimas: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Savaiminio medžių išdygimo nuostatos. Atkreipkite dėmesį, kad šios nuostatos gali paveikti kai kurių pramonės įmonių, pvz., lentpjūvių, darbą +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Auga, bet nesidaugina {RED}(nebeveiks lentpjūvės) +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Auga, bet dauginasi tik drėgnuosiuose miškuose +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Auga ir dauginasi +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :Neauga ir nesidaugina {RED}(nebeveiks lentpjūvės) STR_CONFIG_SETTING_TOOLBAR_POS :Pagrindinės įrankių juostos pozicija: {STRING} STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Pagrindinės įrankių lentelės horizontali padėtis ekrano viršuje @@ -1812,6 +1857,7 @@ STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normalus STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2 kartai STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4 kartai STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8 kartai +STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_TOWN_GROWTH :Miestų augimo greitis: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Miestų augimo greitis STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Joks @@ -1959,6 +2005,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Pritrūk STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Nepavyko rezervuoti sprukliams {BYTES} laikinosios atminties. Spruklių laikinoji atmintis sumažinta iki {BYTES}, o tai pablogins OpenTTD veikimo spartą. Galite pamėginti išjungti 32-ų bitų grafiką ir/arba sumažinti priartinimo lygį — tai turėtų sumažinti atminties poreikį. # Video initalization errors +STR_VIDEO_DRIVER_ERROR :{WHITE}Vaizdo nuostatų klaida... +STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... nepavyko rasti tinkamos vaizdo plokštės. Aparatinis spartinimas buvo išjungtas # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2015,8 +2063,9 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}Ar tikr # Cheat window STR_CHEATS :{WHITE}Sukčiavimai STR_CHEATS_TOOLTIP :{BLACK}Laukeliai rodo ar jus naudojote šį triuką prieš tai +STR_CHEATS_NOTE :{BLACK}Dėmesio: jei sukčiausite, tokia informacija bus įrašyta į žaidimo failą STR_CHEAT_MONEY :{LTBLUE}Padauginti pinigų {CURRENCY_LONG} -STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Žaidiama už kompaniją: {ORANGE}{COMMA} +STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Žaidžiama už kompaniją: {ORANGE}{COMMA} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magiškas buldozeris (pašalina gamyklas ir nepajudinamus objektus): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tuneliai gali susikirsti: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Reaktyviniai lėktuvai neduš (dažnai) mažuose oro uostuose: {ORANGE} {STRING} @@ -2031,12 +2080,13 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Pakeisti STR_CHEAT_SETUP_PROD :{LTBLUE}Leisti keisti produkcijos vertes: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Kompanijos spalvos -STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rodyti pagrinidines spalvų parinktis -STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rodyti traukiniš spalvas +STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rodyti pagrindines spalvų parinktis +STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rodyti traukinių spalvas STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Rodyti mašinų spalvas STR_LIVERY_SHIP_TOOLTIP :{BLACK}Rodyti laivų spalvas -STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Rodyti lėktuvų parinktas spalvas +STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Rodyti lėktuvų spalvas STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Pasirinkite pirminę spalvą pasirinktai schemai. Ctrl+Click nustatys šitą spalvą kiekvienai schemai STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Pasirinkite antrinę spalvą pasirinktai schemai. Ctrl+Click nustatys šitą spalvą kiekvienai schemai STR_LIVERY_PANEL_TOOLTIP :{BLACK}Pasirinkite spalvą pažymėjimui arba multi-spalvas CTRL+click. Paspauskite spalvos naudojimui @@ -2165,6 +2215,9 @@ STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Jungtis STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Atnaujinti serverį STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Atnaujinti serverio informaciją +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :{BLACK}Ieškoti internete +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK}Ieškoti viešai prieinamų serverių internete +STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Ieškoti vietiniame tinkle STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Ieškoti serverių vietiniame tinkle STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Pridėti serverį STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Prideda serverį į sąrašą, kuris tikrinamas ieškant žaidimų @@ -2483,6 +2536,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Taip, parsisiųsti grafikos rinkinį STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, išeiti iš OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Skaidrumo nuostatos STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Perjungti ženklų skaidrumą. Spragtelėjus laikant nuspaustą Ctrl klavišą, nuostata bus užrakinta @@ -2628,6 +2682,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Statyti STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Aktyvinti automobilių kelių ir stotelių šalinimo veikseną STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Aktyvinti tramvajaus bėgių ir stotelių šalinimo veikseną +STR_ROAD_NAME_ROAD :Keliai STR_ROAD_NAME_TRAM :Tramvajus # Road depot construction window @@ -2804,6 +2859,7 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Pasirink # Land area window STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Informacija apie žemės plotą +STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centruoti šį žemės lopinėlį pagrindiniame lange. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį lopinėlį STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Išvalymo kaina: {LTBLUE}NĖRA STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Išvalymo kaina: {RED}{CURRENCY_LONG} STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}pajamos ištrynus: {LTBLUE}{CURRENCY_LONG} @@ -2824,7 +2880,9 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Oro uost STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}Plėtinys: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Krovinys priimtas: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Bėgių tipas: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Kelio tipas: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tramvajaus tipas: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Geležinkelių greičio limitas: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Kelio greičio limitas: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Tramvajaus greičio limitas: {LTBLUE}{VELOCITY} @@ -3010,6 +3068,7 @@ STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}Plėtiniai: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK} Filtro eilutė: STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Perrašyti bylą +STR_SAVELOAD_DIRECTORY :{STRING} (Aplankas) STR_SAVELOAD_PARENT_DIRECTORY :{STRING} (Viršaplankis) STR_SAVELOAD_OSKTITLE :{BLACK}Įveskite išsaugomo žaidimo vardą @@ -3127,6 +3186,8 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versija: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Anksčiausia suderinama versija: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5 suma: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paletė: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Numatytoji (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Pasenusi (W) STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Nuostatos: {SILVER}{STRING} STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Informacijos nėra @@ -3263,6 +3324,7 @@ STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Įjungti # Sign window STR_EDIT_SIGN_CAPTION :{WHITE}Redaguoti ženklo tekstą +STR_EDIT_SIGN_LOCATION_TOOLTIP :{BLACK}Centruoti ženklą pagrindiniame lange. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį ženklą. STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Eiti prie kito ženklo STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Eiti prie ankstesnio ženklo @@ -3559,6 +3621,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}{COMPANY STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Bėgių dalys: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signalai STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Kelio dalys: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Tramvajaus dalys: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Vandens langeliai: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanalai STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stotys: @@ -3928,6 +3991,10 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Pakeitim # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} +STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}Centruoti traukinį pagrindiniame lange. Spustelėjus dukart, pagrindinis langas seks traukinį paskui. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį traukinį +STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}Centruoti automobilį pagrindiniame lange. Spustelėjus dukart, pagrindinis langas seks automobilį paskui. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį automobilį +STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}Centruoti laivą pagrindiniame lange. Spustelėjus dukart, pagrindinis langas seks laivą paskui. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį laivą +STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Centruoti lėktuvą pagrindiniame lange. Spustelėjus dukart, pagrindinis langas seks lėktuvą paskui. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atidarytas naujas peržiūros langas su vaizdu į šį lėktuvą STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Nukreipti traukinį į depą. Spragtelėjus laikant nuspaustą Ctrl klavišą, traukinys bus nukreiptas tik techninei apžiūrai STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Nukreipti automobilį į garažą. Spragtelėjus laikant nuspaustą Ctrl klavišą, automobilis bus nukreiptas tik techninei apžiūrai @@ -3959,6 +4026,10 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Parodyti STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Parodyti išsamią laivo informaciją STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Parodyti išsamią lėktuvo informaciją +STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}Dabartinė traukinio būsena - spragtelkite, jei norite sustabdyti/paleisti traukinį +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATUS_START_STOP_TOOLTIP :{BLACK}Dabartinė automobilio būsena - spragtelkite, jei norite sustabdyti/paleisti automobilį +STR_VEHICLE_VIEW_SHIP_STATE_STATUS_STOP_TOOLTIP :{BLACK}Dabartinė laivo būsena - spragtelkite, jei norite sustabdyti/paleisti laivą +STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Dabartinė lėktuvo būsena - spragtelkite, jei norite sustabdyti/paleisti lėktuvą # Messages in the start stop button in the vehicle view @@ -4681,7 +4752,8 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Šio kel STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Neįmanoma pašalinti tramvajaus... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... nėra kelio STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... nėra kelio tramvajui -STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Čia negalima konvertuoti tramvajaus tipo... +STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Neįmanoma čia pakeisti kelio tipo... +STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Neįmanoma čia pakeisti tramvajaus bėgių tipo... STR_ERROR_NO_SUITABLE_ROAD :{WHITE} Nėra tinkamo kelio STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Netinkama tramvajaus vėžė diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 272db40265..036e382f91 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2282,6 +2282,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jo, download d'Grafiken STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, verlooss OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparenzoptiounen STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Schëlder. Ctrl+Klick fir festzesetzen diff --git a/src/lang/malay.txt b/src/lang/malay.txt index ed4fc8bddf..97c33c2f2b 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1981,6 +1981,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ya, muat turun grafik STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Tidak, keluar dari OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Pilihan transparansi STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Gulir kejernihan nama untuk isyarat stesen. Ctrl+Klik untuk mengunci. diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 5f195ad879..607cf3c424 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1664,12 +1664,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maks zoom-inn n STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maksimalt forstørrelsesnivå for synsfelt. Vær oppmerksom på at aktivering av høyere forstørrelsesnivå øker minnekravet STR_CONFIG_SETTING_ZOOM_MAX :Maks zoom-ut nivå: {STRING} STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Maksimalt 'zoom-ut' nivå for synsfelt. Høye ut-zoomingsnivåer kan føre til hakking når det brukes +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Høyeste oppløsning effekter kan bruke: {STRING} +STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Begrens maks oppløsning effektene kan bruke. Å begrense oppløsningen vil unngå å bruke høy oppløsning selv når den er tilgjengelig. Dette kan bidra til å holde spillets utseende enhetlig når du bruker en blanding av GRF-filer med og uten grafikk med høy oppløsning. 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 :Hastighet for byenes vekst: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Hastigheten byer vokser med STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ingen @@ -2338,6 +2343,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, last ned grafikken STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nei, avslutt OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Instillinger for gjennomsiktighet STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Gjennomsiktige skilt. Ctrl+klikk for å låse diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index af90ba5974..adb99fdae1 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2149,6 +2149,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, last ned grafikken. STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nei, avslutt OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Gjennomsynsval STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Byt gjennomsyn for stasjonssktilt. Ctrl+klikk for å låsa diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 3ce8686cc1..cc7a8a07bc 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2703,6 +2703,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Tak, pobierz grafikę STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nie, opuść OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opcje przeźroczystości STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Przełącz przeźroczystość dla znaków. Ctrl+klik, aby zablokować diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 261335a7f6..436d4ce3e2 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2282,6 +2282,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}O OpenTT STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sim, obter os gráficos pela rede STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Não, sair do OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opções de transparência STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Comutar transparência para sinais. Ctrl+Clique para bloquear. diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 936c0b0879..29982f62c8 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2232,6 +2232,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, descarcă pachetele grafice STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nu, ieși din OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Optiuni transparenţă STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Comută transparenţa pentru nume/semne. Ctrl+Click pentru blocare diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 110fa7341d..b7b816d62d 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2497,6 +2497,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Для STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Да, скачать STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Нет, выйти + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Настройки прозрачности STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Переключение прозрачности надписей. Ctrl+щелчок - заблокировать. diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index c367db9d23..114a810ca9 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2517,6 +2517,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, preuzmi grafike STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, napusti OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Podešavanja Prozirnosti STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Promena prozirnosti znakova. Sa Ctrl+Klik se zaključava diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index c1fe7f3fea..2625301648 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2283,6 +2283,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}好,开始下载 STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}不,退出OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}透明选项 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}调整标志是否为透明{}CTRL+点击 锁定 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 9393b9d7c9..3742a20aad 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2385,6 +2385,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Áno, stiahnite si grafiku STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nie, ukončiť OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Nastavenia priehľadnosti STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Prepnúť priehľadnosť nápisov. Ctrl+klik uzamkne nastavenie diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 0845e626ea..a462aa9c13 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2381,6 +2381,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, prenesi grafike STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, zapusti OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Nastavitve prozornega pogleda STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Prozoren ali poln pogled imen postaj. Ctrl+Klik za zaklepanje diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 93774464df..4c1b7a07e1 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -197,7 +197,7 @@ STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL} {NBSP}casillas/día -STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}cv +STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp STR_UNITS_POWER_METRIC :{COMMA}{NBSP}cv STR_UNITS_POWER_SI :{COMMA}{NBSP}kW @@ -213,7 +213,7 @@ 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} gal{P ón ones} +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gal{P ón ones} STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litro{P "" s} STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³ @@ -230,24 +230,24 @@ STR_LIST_FILTER_TITLE :{BLACK}Patrón STR_LIST_FILTER_OSKTITLE :{BLACK}Escribe un patrón de filtrado STR_LIST_FILTER_TOOLTIP :{BLACK}Introduzca una palabra clave para filtrar la lista -STR_TOOLTIP_GROUP_ORDER :{BLACK}Selecciona orden de agrupamiento -STR_TOOLTIP_SORT_ORDER :{BLACK}Selecciona orden de clasificación (descendiente/ascendiente) -STR_TOOLTIP_SORT_CRITERIA :{BLACK}Selecciona orden de clasificación -STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Selecciona criterio de filtrado +STR_TOOLTIP_GROUP_ORDER :{BLACK}Selecciona la orden de agrupamiento +STR_TOOLTIP_SORT_ORDER :{BLACK}Selecciona el orden de clasificación (descendiente/ascendiente) +STR_TOOLTIP_SORT_CRITERIA :{BLACK}Selecciona el orden de clasificación +STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Selecciona el criterio de filtrado STR_BUTTON_SORT_BY :{BLACK}Ordenar por STR_BUTTON_CATCHMENT :{BLACK}Cobertura -STR_TOOLTIP_CATCHMENT :{BLACK}Mostrar u ocultar área de cobertura +STR_TOOLTIP_CATCHMENT :{BLACK}Muestra/Oculta el área de cobertura -STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Cerrar ventana -STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título de la ventana - arrastre para moverla -STR_TOOLTIP_SHADE :{BLACK}Ocultar ventana - mostrar solo título de la ventana -STR_TOOLTIP_DEBUG :{BLACK}Mostrar información de depuración NewGRF +STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Cierra la ventana +STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título de la ventana - arrastra para moverla +STR_TOOLTIP_SHADE :{BLACK}Oculta la ventana - muestra sólo el título de la ventana +STR_TOOLTIP_DEBUG :{BLACK}Muestra la información de depuración NewGRF STR_TOOLTIP_DEFSIZE :{BLACK}Redimensionar ventana al tamaño por defecto. Ctrl+Clic permite almacenar el tamaño actual como tamaño por defecto STR_TOOLTIP_STICKY :{BLACK}Esta ventana no se cerrará tras usar el comando 'Cerrar Todas las Ventanas'. Ctrl+Clic permite guardar el estado como estado por defecto -STR_TOOLTIP_RESIZE :{BLACK}Pulse y arrastre para redimensionar la ventana -STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Cambiar entre tamaño de ventana grande/pequeño -STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento - mueve la lista arriba/abajo -STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento - mueve la lista izquierda/derecha +STR_TOOLTIP_RESIZE :{BLACK}Clica y arrastra para redimensionar la ventana +STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Alterna el tamaño de ventana entre grande/pequeño +STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento - mueve la lista hacia arriba/abajo +STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento - mueve la lista a izquierda/derecha STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Demoler edificios, etc. en un área de terreno. Ctrl permite seleccionar un área diagonalmente. Mayús permite mostrar una estimación del precio # Show engines button @@ -265,7 +265,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Al activ STR_BUTTON_DEFAULT :{BLACK}Por defecto STR_BUTTON_CANCEL :{BLACK}Cancelar STR_BUTTON_OK :{BLACK}Aceptar -STR_WARNING_PASSWORD_SECURITY :{YELLOW}Advertencia: Los administradores del servidor podrían ser capaz de leer cualquier texto introducido aquí. +STR_WARNING_PASSWORD_SECURITY :{YELLOW}Advertencia: Los administradores del servidor podrían ser capaces de leer cualquier texto introducido aquí. # On screen keyboard window STR_OSK_KEYBOARD_LAYOUT :º1234567890'¡\qwertyuiop`+asdfghjklñ´ç -STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}El juego se ha guardado en una versión sin soporte para tranvías. Todos los tranvías han sido eliminados +STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}La partida se guardó en una versión sin soporte para tranvías. Todos los tranvías han sido eliminados # Map generation messages STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generación de mapa abortada...{}... no hay localizaciones apropiadas para municipios @@ -4324,14 +4330,14 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... no s STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... la imagen es demasiado grande STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Alerta de escala -STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No es recomendable cambiar en exceso el tamaño del mapa original. ¿Desea continuar con la generación? +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}No es recomendable cambiar en exceso el tamaño del mapa original. ¿Deseas continuar con la generación? # Soundset messages -STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Solamente se encontró un conjunto de sonidos vacío. Si lo desea, instale un conjunto de sonidos a través del 'Contenido Online' +STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Solamente se encontró un conjunto de sonidos vacío. Si lo deseas, instala un conjunto de sonidos a través del 'Contenido Online' # Screenshot related messages STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura de pantalla gigante -STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}La captura de pantalla tendrá una resolución {COMMA} x {COMMA} pixeles. Realizar la captura puede llevar un tiempo. ¿Desea continuar? +STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}La captura de pantalla tendrá una resolución {COMMA} x {COMMA} pixeles. Realizar la captura puede tardar tiempo. ¿Deseas continuar? STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Captura de pantalla realizada con éxito en '{STRING}' STR_ERROR_SCREENSHOT_FAILED :{WHITE}¡Captura de pantalla fallida! @@ -4691,7 +4697,7 @@ STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... la a # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}No se puede asignar horario al vehículo... -STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Los vehículos solo pueden esperar en estaciones +STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Los vehículos sólo pueden esperar en estaciones STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Este vehículo no va a detenerse en esta estación # Sign related errors @@ -4719,9 +4725,9 @@ STR_BASEMUSIC_NONE_DESCRIPTION :Un conjunto de # Town building names STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_1 :Bloque alto de oficinas STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_1 :Bloque de oficinas -STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Bloque de apartamentos pequeño +STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Bloque de pisos pequeño STR_TOWN_BUILDING_NAME_CHURCH_1 :Iglesia -STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Gran bloque de oficinas +STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Edificio de oficinas grande STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas del municipio STR_TOWN_BUILDING_NAME_HOTEL_1 :Hotel STR_TOWN_BUILDING_NAME_STATUE_1 :Estatua @@ -4734,9 +4740,9 @@ STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Almacén STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_3 :Bloque de oficinas STR_TOWN_BUILDING_NAME_STADIUM_1 :Estadio STR_TOWN_BUILDING_NAME_OLD_HOUSES_1 :Casas viejas -STR_TOWN_BUILDING_NAME_COTTAGES_1 :Casitas +STR_TOWN_BUILDING_NAME_COTTAGES_1 :Casa de campo STR_TOWN_BUILDING_NAME_HOUSES_1 :Casas -STR_TOWN_BUILDING_NAME_FLATS_1 :Apartamentos +STR_TOWN_BUILDING_NAME_FLATS_1 :Pisos STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_2 :Bloque alto de oficinas STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_2 :Tiendas y oficinas STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_3 :Tiendas y oficinas @@ -4873,12 +4879,12 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Vagón Blindado STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :Vagón de Papel -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Vagón tolva de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :Cisterna de Agua STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COTTON_CANDY_HOPPER :Vagón tolva de Algodón de Azúcar STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOFFEE_HOPPER :Vagoneta de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :Cisterna de Cola @@ -4903,12 +4909,12 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Vagón Blindado STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :Vagón de Papel -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Vagón tolva de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :Cisterna de Agua STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COTTON_CANDY_HOPPER :Vagón tolva de Algodón de Azúcar STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOFFEE_HOPPER :Vagoneta de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COLA_TANKER :Cisterna de Cola @@ -4917,10 +4923,10 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :Vagón de Jugue STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :Vagón de Pilas STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :Vagón de Refrescos STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :Vagón de Plásticos -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Eléctrico) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Eléctrico) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Eléctrico) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviatán' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cíclope' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegaso' (Eléctrico) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Quimera' (Eléctrico) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :Vagón de Pasajeros STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :Furgón de Correos @@ -4935,13 +4941,13 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :Vagón de Acero STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Vagón Blindado STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Vagón de Alimentos STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :Vagón de Papel -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Vagoneta de Mineral de Cobre +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Vagón tolva de Mineral de Cobre STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :Cisterna de Agua STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :Vagón de Fruta STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :Vagón de Caucho STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_SUGAR_TRUCK :Vagón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :Vagoneta de Algodón de Azúcar -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :Vagoneta de Tofe +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COTTON_CANDY_HOPPER :Vagón tolva de Algodón de Azúcar +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_TOFFEE_HOPPER :Vagón tolva de Tofe STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_BUBBLE_VAN :Vagón de Burbujas STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COLA_TANKER :Cisterna de Cola STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_CANDY_VAN :Vagón de Caramelos @@ -4956,9 +4962,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_MKII_SUPERBUS :Superbus Foster STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKI_BUS :Bus Ploddyphut MkI STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKII_BUS :Bus Ploddyphut MkII STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKIII_BUS :Bus Ploddyphut MkIII -STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Camión Carbonero Balogh -STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COAL_TRUCK :Camión Carbonero Uhl -STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :Camión carbonero DW +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Camión de Carbón Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COAL_TRUCK :Camión de Carbón Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :Camión de Carbón DW STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_MAIL_TRUCK :Camión de Correo MPS STR_VEHICLE_NAME_ROAD_VEHICLE_REYNARD_MAIL_TRUCK :Camión de Correo Reynard STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_MAIL_TRUCK :Camión de Correo Perry diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index ee9de11e93..02f6c86f3b 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2335,6 +2335,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descargar los gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, salir de OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opciones de transparencia STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparencia de carteles. Ctrl+Clic para bloquear diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 289df8314d..9e44bc6703 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2334,6 +2334,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, ladda ner grafiken STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nej, avsluta OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Genomskinlighetsinställningar STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Växla genomskinlighet för skyltar. Ctrl+klick för att låsa diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 94fbdd30e2..df27bc03d9 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2071,6 +2071,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}ஆம், அசையூட்டங்களை பதிவிறக்கம் செய் STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}இல்லை, OpenTTD-ஐ விட்டு வெளியேறு + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}ஒளி அமைப்புகள் STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}வீடுகளுக்கான வெளிப்படைத்தன்மையை நிலைமாற்று. Ctrl + கிளிக் பூட்ட செய்க diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 696ec3cfcf..5be7099591 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2174,6 +2174,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}ดาวน์โหลดกราฟฟิก STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}ออกจาก OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}ตัวเลือกค่าโปร่งใส STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}เปิด/ปิด การโปร่งใสของป้าย. กด Ctrl+Click สำหรับการล็อก diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 352f0de4dc..4c9fa0252e 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2229,6 +2229,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}是,下載圖形 STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}否,離開 OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}透明度選項 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}切換車站標籤是否透明。按住 Ctrl 鍵點選此掣以鎖定狀態 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 2124295234..873461966e 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2284,6 +2284,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Evet, grafikleri indir STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Hayır, OpenTTD'den çık + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Şeffaflık Seçenekleri STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Durak tabelaları için şeffaflığı aç. Kilitlemek için Ctrl ile tıklayın diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index ca1b7edd9f..254edbc260 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -437,11 +437,14 @@ STR_SORT_BY_CARGO_CAPACITY :за містк STR_SORT_BY_RANGE :за дальністю STR_SORT_BY_POPULATION :за населенням STR_SORT_BY_RATING :за рейтингом +STR_SORT_BY_NUM_VEHICLES :Кількість авто STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Загальний прибуток минулого року STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Загальний прибуток цього року STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Середній прибуток мигулого року # Group by options for vehicle list +STR_GROUP_BY_NONE :Нема +STR_GROUP_BY_SHARED_ORDERS :Спільні накази # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Пауза @@ -870,6 +873,7 @@ STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Нерівна земля STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Трава STR_SMALLMAP_LEGENDA_BARE_LAND :{TINY_FONT}{BLACK}Пустир +STR_SMALLMAP_LEGENDA_RAINFOREST :{TINY_FONT}{BLACK}Джунглі STR_SMALLMAP_LEGENDA_FIELDS :{TINY_FONT}{BLACK}Поля STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Дерева STR_SMALLMAP_LEGENDA_ROCKS :{TINY_FONT}{BLACK}Каміння @@ -1119,11 +1123,13 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Нати STR_GAME_OPTIONS_RESOLUTION :{BLACK}Роздільна здатність STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Виберіть роздільну здатність екрану STR_GAME_OPTIONS_RESOLUTION_OTHER :інша +STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM} STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Розмір інтерфейсу STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Оберіть розмір елементів інтерфейсу +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(автоматичо) STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Нормальний розмір STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Подвійний розмір STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір @@ -1131,12 +1137,14 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Почетве STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Розмір шрифту STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Виберть розмір шрифту інтерфейсу +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(автоматичо) STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Нормальний STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Подвійний розмір STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Показати швидкість оновлення +STR_GAME_OPTIONS_REFRESH_RATE_OTHER :інша STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати @@ -1573,6 +1581,7 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Залишат STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Залишати інструменти будівництва активними після використання. STR_CONFIG_SETTING_EXPENSES_LAYOUT :Групувати витрати у вікні фінансів: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Налаштування відображення інформації про вітрати у вікні фінансів +STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Автоматично прибирати сигнали при будівництві колії.: {STRING} STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Автоматично прибирати сигнали на шляху при будівництві колії. Увага: це може спричинити зіткнення потягів! STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% нормальної швидкості гри @@ -1688,6 +1697,7 @@ STR_CONFIG_SETTING_ENDING_YEAR :Рік закі STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Рік закінчення гри для підрахунку очок. У кінці року додають очки компанії і показують загальний результат, але гравці можуть грати далі.{}Якщо встановлено рік раніший початкового, загальний результат не зʼявиться. STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Ніколи +STR_CONFIG_SETTING_ECONOMY_TYPE :Тип економіки: {STRING} STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Оригінальна STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Плавно STR_CONFIG_SETTING_ALLOW_SHARES :Дозволити придбання акції інших компаній: {STRING} @@ -2333,6 +2343,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Гра ще п STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Гра ще призупинена ({STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Гра ще призупинена ({STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Гра ще на паузі ({STRING}, {STRING}, {STRING}, {STRING}) +STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_5 :Гра ще призупинена ({STRING}, {STRING}, {STRING}, {STRING}, {STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Гра знята з паузи ({STRING}) STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :кількість гравців STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :приєднання клієнтів @@ -2424,6 +2435,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Так, завантажити графіку STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ні, вийти з OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Опції прозорості STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Переключити прозорість для знаків станцій. Утримуйте Ctrl, щоб заблокувати @@ -2955,6 +2967,7 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: STR_SAVELOAD_FILTER_TITLE :{BLACK}Фільтр: STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Перезаписати файл STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW} Ви справді хочете перезаписати існуючий файл? +STR_SAVELOAD_DIRECTORY :{STRING} (Directory) STR_SAVELOAD_OSKTITLE :{BLACK}Введіть назву файла збереженої гри @@ -3288,6 +3301,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Під STR_GOALS_CAPTION :{WHITE}Цілі {COMPANY} STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальні цілі: STR_GOALS_SPECTATOR :Загальні задачі +STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Показати глобальні цілі STR_GOALS_COMPANY_BUTTON :{BLACK}Компанія STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Показати цілі компанії STR_GOALS_TEXT :{ORANGE}{STRING} @@ -3509,6 +3523,7 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Прод STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Назва компанії STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Ім'я керівника +STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Введіть суму грошей, яку бажаєте передати STR_BUY_COMPANY_MESSAGE :{WHITE}Ми шукаємо нового власника нашої компанії.{}{}Чи бажаєте Ви купити {COMPANY} за {CURRENCY_LONG}? @@ -3663,6 +3678,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Поту STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Може бути переобладненим на: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Всі типи вантажів STR_PURCHASE_INFO_NONE :Нема +STR_PURCHASE_INFO_ENGINES_ONLY :Тільки локомотиви STR_PURCHASE_INFO_ALL_BUT :Всі, крім {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Максимальна тягова сила: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальність: {GOLD}{COMMA} клітинок diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index 180b9e9abd..e70e1b774c 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -819,6 +819,7 @@ STR_CONTENT_DETAIL_VERSION :{SILVER}Вер # Content downloading error messages + # Transparency settings window # Linkgraph legend window diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 22dc71d385..27e0ef81a9 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2071,6 +2071,7 @@ STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Missende STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, ôfbyldings delheljen STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, OpenTTD ôfslute + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Trochsichtigenopsjes STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Skeakelje trochsichtigens fan seinen. Brûk Ctrl+Klik om fêste te setten diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index f7f815dee9..0f7b1d1573 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -668,6 +668,7 @@ STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} # Content downloading error messages + # Transparency settings window # Linkgraph legend window diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index faba333da1..a4614cb1f9 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1034,6 +1034,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :ГШ библи # Content downloading error messages + # Transparency settings window # Linkgraph legend window diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 5cbb460003..7261c292f2 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -597,6 +597,7 @@ STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} # Content downloading error messages + # Transparency settings window # Linkgraph legend window diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 56250c6158..f7717c2c0e 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -993,6 +993,7 @@ STR_NETWORK_SERVER_MESSAGE :*** {1:STRING} # Content downloading error messages + # Transparency settings window # Linkgraph legend window diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index fc2fdb3890..290dc10d0f 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -1939,6 +1939,7 @@ STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}گراف STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}بله, فایلهای گرافیک را بارگیری کن STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}خیر, خروج OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}گزینه های شفافیت STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}فعال/غیر فعال کردن شفافیت برای نشانه های ایستگاه. کنترل+کلیک برای قفل کردن diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index bff6b13360..fc4fe0191f 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -1828,6 +1828,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}ہاں، گرافکس ڈاون لوڈ کریں STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}نہیں، OpenTTD سے باہر نکلو + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Transparency کے اختیارات STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}اشاروں کی شفافیت کی تدویم کریں۔ محدوظ کرنے کے لئے Ctrl+Click دبائیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 3a01b7d228..337a13a581 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2285,6 +2285,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Có, cho phép tải chúng STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Không, thoát OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Tuỳ Hiệu Ứng Trong Suốt STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Bật hiệu ứng trong suốt cho đèn tín hiệu. Ctrl+Click để khoá. diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 1eab406f2f..e5f8ebc3f1 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2233,6 +2233,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Mae Open STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ia, llawrlwytho'r graffigau STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Na, gadael OpenTTD + # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Dewisiadau Tryloywder STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toglu tryloywder ar gyfer arwyddion. Mae Ctrl+Clic yn cloi From 74c98db1b61c805f7931cc252c30cc62c4eb0c90 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sun, 14 Mar 2021 20:26:48 +0100 Subject: [PATCH 52/53] Fix 217071aa: spanish translation contains an invalid character (#8863) --- src/lang/spanish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 4c1b7a07e1..80f36ee335 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3472,7 +3472,7 @@ STR_INDUSTRY_DIRECTORY_FILTER_NONE :Ninguna STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Producción del mes anterior: STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% transportado) -STR_INDUSTRY_VIEW_LOCATION_TOOLTIP : {BLACK}Centra la vista sobre la industria. Ctrl+clic abre un punto de vista en dicha posición +STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centra la vista sobre la industria. Ctrl+clic abre un punto de vista en dicha posición STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La industria ha anunciado su cierre inminente! From 9bfa7198fdd617df4ed41086c62d3806d890573d Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sun, 14 Mar 2021 20:47:31 +0100 Subject: [PATCH 53/53] Change: Heading for 1.12 now (#8862) --- bin/ai/compat_1.11.nut | 2 ++ bin/ai/compat_1.12.nut | 6 ++++++ bin/game/compat_1.11.nut | 2 ++ bin/game/compat_1.12.nut | 6 ++++++ regression/regression/info.nut | 2 +- regression/stationlist/info.nut | 2 +- src/ai/ai_info.cpp | 2 +- src/game/game_info.cpp | 2 +- src/rev.cpp.in | 2 +- src/saveload/saveload.h | 2 +- src/script/api/ai_changelog.hpp | 4 +++- src/script/api/game_changelog.hpp | 4 +++- 12 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 bin/ai/compat_1.12.nut create mode 100644 bin/game/compat_1.12.nut diff --git a/bin/ai/compat_1.11.nut b/bin/ai/compat_1.11.nut index 3081fb58e8..887f3f7fd9 100644 --- a/bin/ai/compat_1.11.nut +++ b/bin/ai/compat_1.11.nut @@ -4,3 +4,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +AILog.Info("1.11 API compatibility in effect."); diff --git a/bin/ai/compat_1.12.nut b/bin/ai/compat_1.12.nut new file mode 100644 index 0000000000..3081fb58e8 --- /dev/null +++ b/bin/ai/compat_1.12.nut @@ -0,0 +1,6 @@ +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/bin/game/compat_1.11.nut b/bin/game/compat_1.11.nut index 3081fb58e8..fa240b5d2d 100644 --- a/bin/game/compat_1.11.nut +++ b/bin/game/compat_1.11.nut @@ -4,3 +4,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.11 API compatibility in effect."); diff --git a/bin/game/compat_1.12.nut b/bin/game/compat_1.12.nut new file mode 100644 index 0000000000..3081fb58e8 --- /dev/null +++ b/bin/game/compat_1.12.nut @@ -0,0 +1,6 @@ +/* + * This file is part of OpenTTD. + * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. + * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + */ diff --git a/regression/regression/info.nut b/regression/regression/info.nut index 758754cfe7..340dcff5c3 100644 --- a/regression/regression/info.nut +++ b/regression/regression/info.nut @@ -4,7 +4,7 @@ class Regression extends AIInfo { function GetShortName() { return "REGR"; } function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } - function GetAPIVersion() { return "1.11"; } + function GetAPIVersion() { return "1.12"; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "Regression"; } } diff --git a/regression/stationlist/info.nut b/regression/stationlist/info.nut index 42e5072fd4..a58fd20ba8 100644 --- a/regression/stationlist/info.nut +++ b/regression/stationlist/info.nut @@ -4,7 +4,7 @@ class StationList extends AIInfo { function GetShortName() { return "REGS"; } function GetDescription() { return "This runs stationlist-tests on some commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } - function GetAPIVersion() { return "1.11"; } + function GetAPIVersion() { return "1.12"; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "StationList"; } } diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index c5280fe5d6..985271fa1b 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -25,7 +25,7 @@ */ static bool CheckAPIVersion(const char *api_version) { - static const std::set versions = { "0.7", "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "1.10", "1.11" }; + static const std::set versions = { "0.7", "1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "1.10", "1.11", "1.12" }; return versions.find(api_version) != versions.end(); } diff --git a/src/game/game_info.cpp b/src/game/game_info.cpp index 77725c5e7b..deda2e8933 100644 --- a/src/game/game_info.cpp +++ b/src/game/game_info.cpp @@ -23,7 +23,7 @@ */ static bool CheckAPIVersion(const char *api_version) { - static const std::set versions = {"1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "1.10", "1.11"}; + static const std::set versions = { "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "1.10", "1.11", "1.12" }; return versions.find(api_version) != versions.end(); } diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 16c403a67a..208588a711 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -85,4 +85,4 @@ const byte _openttd_revision_tagged = ${REV_ISTAG}; * final release will always have a lower version number than the released * version, thus making comparisons on specific revisions easy. */ -const uint32 _openttd_newgrf_version = 1 << 28 | 11 << 24 | 0 << 20 | ${REV_ISSTABLETAG} << 19 | 28004; +const uint32 _openttd_newgrf_version = 1 << 28 | 12 << 24 | 0 << 20 | ${REV_ISSTABLETAG} << 19 | 28004; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 7f4f0d287c..e23c9c47f9 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -323,7 +323,7 @@ enum SaveLoadVersion : uint16 { SLV_GS_INDUSTRY_CONTROL, ///< 287 PR#7912 and PR#8115 GS industry control. SLV_VEH_MOTION_COUNTER, ///< 288 PR#8591 Desync safe motion counter - SLV_INDUSTRY_TEXT, ///< 289 PR#8576 Additional GS text for industries. + SLV_INDUSTRY_TEXT, ///< 289 PR#8576 v1.11 Additional GS text for industries. SL_MAX_VERSION, ///< Highest possible saveload version }; diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index a0d9097d9e..f63b41fa9b 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -13,10 +13,12 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * - * \b 1.11.0 + * \b 1.12.0 * * This version is not yet released. The following changes are not set in stone yet. * + * \b 1.11.0 + * * API additions: * \li AICargo::GetName * \li AIPriorityQueue diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 737adc7fc5..2702a98e7c 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -13,10 +13,12 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * - * \b 1.11.0 + * \b 1.12.0 * * This version is not yet released. The following changes are not set in stone yet. * + * \b 1.11.0 + * * API additions: * \li GSCargo::GetName * \li GSEventStoryPageButtonClick