diff --git a/Makefile.lang.in b/Makefile.lang.in index 3df524d74e..fbed06b790 100644 --- a/Makefile.lang.in +++ b/Makefile.lang.in @@ -43,23 +43,23 @@ RES := $(shell mkdir -p $(BIN_DIR)/lang ) all: table/strings.h $(LANGS) -strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h +strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< -strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h +strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< -string.o: $(SRC_DIR)/string.cpp endian_host.h +string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< -alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h +alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< -getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h +getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $< diff --git a/Makefile.setting.in b/Makefile.setting.in index fa00c7b90a..d89501d21b 100644 --- a/Makefile.setting.in +++ b/Makefile.setting.in @@ -28,23 +28,23 @@ endif all: table/settings.h -settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $(SRC_DIR)/strings_type.h $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/ini_type.h $(SRC_DIR)/core/smallvec_type.hpp +settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $(SRC_DIR)/strings_type.h $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/ini_type.h $(SRC_DIR)/core/smallvec_type.hpp $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $< -alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h +alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $< -getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h +getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $< -string.o: $(SRC_DIR)/string.cpp endian_host.h +string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $< -ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h +ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h $(SRC_DIR)/safeguards.h $(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)' $(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $< diff --git a/bin/ai/regression/regression.nut b/bin/ai/regression/regression.nut index 5e8533a2e8..72a0c5a973 100644 --- a/bin/ai/regression/regression.nut +++ b/bin/ai/regression/regression.nut @@ -1234,10 +1234,6 @@ function Regression::Station() print(" GetLocation(1000): " + AIStation.GetLocation(1000)); print(" GetStationID(33411): " + AIStation.GetStationID(33411)); print(" GetStationID(34411): " + AIStation.GetStationID(34411)); - print(" GetCargoWaiting(0, 0): " + AIStation.GetCargoWaiting(0, 0)); - print(" GetCargoWaiting(1000, 0): " + AIStation.GetCargoWaiting(1000, 0)); - print(" GetCargoWaiting(0, 1000): " + AIStation.GetCargoWaiting(0, 1000)); - print(" GetStationID(33411): " + AIStation.GetStationID(33411)); print(" HasRoadType(3, TRAM): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_TRAM)); print(" HasRoadType(3, ROAD): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_ROAD)); @@ -1254,6 +1250,25 @@ function Regression::Station() print(" GetNearestTown(): " + AIStation.GetNearestTown(10000)); print(" GetNearestTown(): " + AIStation.GetNearestTown(3)); + print(""); + print("--CargoWaiting--"); + for (local cargo = 0; cargo <= 1000; cargo += 1000) { + for (local station0 = 0; station0 <= 1000; station0 += 1000) { + print(" GetCargoWaiting(" + station0 + ", " + cargo + "): " + + AIStation.GetCargoWaiting(station0, cargo)); + for (local station1 = 0; station1 <= 1000; station1 += 1000) { + print(" GetCargoWaitingFrom(" + station0 + ", " + station1 + ", " + cargo + "): " + + AIStation.GetCargoWaitingFrom(station0, station1, cargo)); + print(" GetCargoWaitingVia(" + station0 + ", " + station1 + ", " + cargo + "): " + + AIStation.GetCargoWaitingFrom(station0, station1, cargo)); + for (local station2 = 0; station2 <= 1000; station2 += 1000) { + print(" GetCargoWaitingFromVia(" + station0 + ", " + station1 + ", " + station2 + ", " + cargo + "): " + + AIStation.GetCargoWaitingFromVia(station0, station1, station2, cargo)); + } + } + } + } + local list = AIStationList(AIStation.STATION_BUS_STOP + AIStation.STATION_TRUCK_STOP); print(""); diff --git a/bin/ai/regression/regression.txt b/bin/ai/regression/regression.txt index 5eab441031..e6f30d220c 100644 --- a/bin/ai/regression/regression.txt +++ b/bin/ai/regression/regression.txt @@ -7487,9 +7487,6 @@ ERROR: IsEnd() is invalid as Begin() is never called GetLocation(1000): -1 GetStationID(33411): 4 GetStationID(34411): 65535 - GetCargoWaiting(0, 0): 0 - GetCargoWaiting(1000, 0): -1 - GetCargoWaiting(0, 1000): -1 GetStationID(33411): 4 HasRoadType(3, TRAM): false HasRoadType(3, ROAD): false @@ -7504,6 +7501,44 @@ ERROR: IsEnd() is invalid as Begin() is never called GetNearestTown(): 65535 GetNearestTown(): 10 +--CargoWaiting-- + GetCargoWaiting(0, 0): 0 + GetCargoWaitingFrom(0, 0, 0): 0 + GetCargoWaitingVia(0, 0, 0): 0 + GetCargoWaitingFromVia(0, 0, 0, 0): 0 + GetCargoWaitingFromVia(0, 0, 1000, 0): -1 + GetCargoWaitingFrom(0, 1000, 0): -1 + GetCargoWaitingVia(0, 1000, 0): -1 + GetCargoWaitingFromVia(0, 1000, 0, 0): -1 + GetCargoWaitingFromVia(0, 1000, 1000, 0): -1 + GetCargoWaiting(1000, 0): -1 + GetCargoWaitingFrom(1000, 0, 0): -1 + GetCargoWaitingVia(1000, 0, 0): -1 + GetCargoWaitingFromVia(1000, 0, 0, 0): -1 + GetCargoWaitingFromVia(1000, 0, 1000, 0): -1 + GetCargoWaitingFrom(1000, 1000, 0): -1 + GetCargoWaitingVia(1000, 1000, 0): -1 + GetCargoWaitingFromVia(1000, 1000, 0, 0): -1 + GetCargoWaitingFromVia(1000, 1000, 1000, 0): -1 + GetCargoWaiting(0, 1000): -1 + GetCargoWaitingFrom(0, 0, 1000): -1 + GetCargoWaitingVia(0, 0, 1000): -1 + GetCargoWaitingFromVia(0, 0, 0, 1000): -1 + GetCargoWaitingFromVia(0, 0, 1000, 1000): -1 + GetCargoWaitingFrom(0, 1000, 1000): -1 + GetCargoWaitingVia(0, 1000, 1000): -1 + GetCargoWaitingFromVia(0, 1000, 0, 1000): -1 + GetCargoWaitingFromVia(0, 1000, 1000, 1000): -1 + GetCargoWaiting(1000, 1000): -1 + GetCargoWaitingFrom(1000, 0, 1000): -1 + GetCargoWaitingVia(1000, 0, 1000): -1 + GetCargoWaitingFromVia(1000, 0, 0, 1000): -1 + GetCargoWaitingFromVia(1000, 0, 1000, 1000): -1 + GetCargoWaitingFrom(1000, 1000, 1000): -1 + GetCargoWaitingVia(1000, 1000, 1000): -1 + GetCargoWaitingFromVia(1000, 1000, 0, 1000): -1 + GetCargoWaitingFromVia(1000, 1000, 1000, 1000): -1 + --StationList-- Count(): 2 Location ListDump: diff --git a/bin/baseset/no_sound.obs b/bin/baseset/no_sound.obs index e70678d7c8..3fa75d2f9b 100644 --- a/bin/baseset/no_sound.obs +++ b/bin/baseset/no_sound.obs @@ -22,6 +22,7 @@ description.en_AU = A sound pack without any sounds. description.en_US = A sound pack without any sounds. description.es_ES = Un conjunto de sonidos vacío. description.et_EE = Helikogu ilma helideta. +description.eu_ES = Soinurik gabeko soinu pakete bat description.fi_FI = Äänipaketti, jossa ei ole ääniä. description.fr_FR = Un pack de sons sans sons. description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith. diff --git a/changelog.txt b/changelog.txt index c7576aed65..1da7d4d1b2 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,19 @@ +1.4.0 (2014-04-01) +------------------------------------------------------------------------ +(None) + + +1.4.0-RC1 (2014-03-18) +------------------------------------------------------------------------ +- Feature: [Script] APIs to get cargo waiting from/via other station (r26396) +- Fix: Do not explain "symmetric" cargodist mode when the setting does not allow it [FS#5939] (r26394) +- Fix: Update distances between link graph nodes when station sign is moved (r26393) +- Fix: No need to call OnFocus twice [FS#5933] (r26392) +- Fix: Select a specific font size when freetype fails to select one automatically [FS#5885] (r26389) +- Fix: Return correct values from ICU iterators in case of leading or trailing whitespace [FS#5924] (r26384) +- Fix: All goal commands invalidated the goal list of company 0 [FS#5932] (r26382) + + 1.4.0-beta5 (2014-02-25) ------------------------------------------------------------------------ - Feature: Warn the user about empty setting search results, and about missing setting search results due to filtering (r26322, r26321) diff --git a/config.lib b/config.lib index 8e3d1cc50e..424d3372f2 100644 --- a/config.lib +++ b/config.lib @@ -862,7 +862,7 @@ check_params() { endian="PREPROCESSOR" fi - log 1 "checking endianess... $endian" + log 1 "checking endianness... $endian" # Suppress language errors when there is a version defined, indicating a release # It just isn't pretty if any release produces warnings in the languages. diff --git a/docs/desync.txt b/docs/desync.txt index 8163027814..fb53b62ae5 100644 --- a/docs/desync.txt +++ b/docs/desync.txt @@ -106,7 +106,7 @@ Table of contents The important thing here is: The detection of the Desync is only an ultimate failure detection. It does not give any indication on when the Desync happened. The Desync may after - all have occured long ago, and just did not affect the checksum + all have occurred long ago, and just did not affect the checksum up to now. The checksum may have matched 10 times or more since the Desync happend, and only now the Desync has spiraled enough to finally affect the checksum. (There was once a desync diff --git a/known-bugs.txt b/known-bugs.txt index ac87bf3d87..d26ef9ff86 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -33,12 +33,13 @@ No suitable AI can be found If you have no AIs and an AI is started the so-called 'dummy' AI will be loaded. This AI does nothing but writing a message on the AI debug window and showing a red warning. There are basically two solutions - for this problem: you must change the settings so no AI is started, - this is done in the difficulty settings window. The other solution is - acquiring (downloading) some AI. The easiest way to do this is via - the "Check Online Content" button in the main (intro) menu or via - "AI Settings" -> "Select AI" -> "Check Online Content" which is also - accessed via the main menu. + for this problem: Either you set the number of AI players to 0 so that + no AI is started. You find that setting at the top of the window in the + "AI / Game Scripts Settings" window. + The other solution is acquiring (downloading) some AI. The easiest way + to do this is via the "Check Online Content" button in the main (intro) + menu or directly in the "AI / Game Scripts Settings" dialogue via the + "Check Online Content" button. After a while of playing, colours get corrupted In Windows 7 the background slideshow corrupts the colour mapping of diff --git a/os/debian/changelog b/os/debian/changelog index ff655a1b4c..1ff0deed6c 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,15 @@ +openttd (1.4.0-0) unstable; urgency=low + + * New upstream release 1.4.0 + + -- OpenTTD Tue, 01 Apr 2014 21:00:00 +0200 + +openttd (1.4.0~RC1-0) unstable; urgency=low + + * New upstream release 1.4.0-RC1 + + -- OpenTTD Tue, 17 Mar 2014 21:00:00 +0100 + openttd (1.4.0~beta5-0) unstable; urgency=low * New upstream release 1.4.0-beta5 diff --git a/source.list b/source.list index 83144a9b2b..21df73bebb 100644 --- a/source.list +++ b/source.list @@ -1115,7 +1115,10 @@ music/null_m.cpp #else #if DOS #else - music/extmidi.cpp + #if MORPHOS + #else + music/extmidi.cpp + #end #end #end #end diff --git a/src/3rdparty/md5/md5.cpp b/src/3rdparty/md5/md5.cpp index d2d6fbab77..2111a8eb81 100644 --- a/src/3rdparty/md5/md5.cpp +++ b/src/3rdparty/md5/md5.cpp @@ -60,6 +60,8 @@ #include "../../core/endian_func.hpp" #include "md5.h" +#include "../../safeguards.h" + #define T_MASK ((uint32)~0) #define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) #define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) diff --git a/src/3rdparty/squirrel/include/squirrel.h b/src/3rdparty/squirrel/include/squirrel.h index 1fe023dfff..6da1f744de 100644 --- a/src/3rdparty/squirrel/include/squirrel.h +++ b/src/3rdparty/squirrel/include/squirrel.h @@ -49,33 +49,14 @@ extern "C" { #define SQUIRREL_API extern #endif -#if (defined(_WIN64) || defined(_LP64)) -#ifndef _SQ64 -#define _SQ64 -#endif +#if defined(__GNUC__) + #define __int64 long long #endif -#ifdef _SQ64 -#ifdef _MSC_VER typedef __int64 SQInteger; typedef unsigned __int64 SQUnsignedInteger; typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/ -#elif defined(_WIN32) -typedef long long SQInteger; -typedef unsigned long long SQUnsignedInteger; -typedef unsigned long long SQHash; /*should be the same size of a pointer*/ -#else -typedef long SQInteger; -typedef unsigned long SQUnsignedInteger; -typedef unsigned long SQHash; /*should be the same size of a pointer*/ -#endif typedef int SQInt32; -#else -typedef int SQInteger; -typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/ -typedef unsigned int SQUnsignedInteger; -typedef unsigned int SQHash; /*should be the same size of a pointer*/ -#endif #ifdef SQUSEDOUBLE @@ -84,17 +65,8 @@ typedef double SQFloat; typedef float SQFloat; #endif -#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64) -#ifdef _MSC_VER typedef __int64 SQRawObjectVal; //must be 64bits -#else -typedef long long SQRawObjectVal; //must be 64bits -#endif #define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; } -#else -typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise -#define SQ_OBJECT_RAWINIT() -#endif typedef void* SQUserPointer; typedef SQUnsignedInteger SQBool; @@ -186,6 +158,12 @@ typedef char SQChar; #define MAX_CHAR 0xFFFF #endif +#if defined(_MSC_VER) || defined(__MINGW32__) + #define SQ_PRINTF64 _SC("%I64d") +#else + #define SQ_PRINTF64 _SC("%lld") +#endif + #define SQUIRREL_VERSION _SC("Squirrel 2.2.5 stable - With custom OpenTTD modifications") #define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2010 Alberto Demichelis") #define SQUIRREL_AUTHOR _SC("Alberto Demichelis") diff --git a/src/3rdparty/squirrel/squirrel/sqdebug.cpp b/src/3rdparty/squirrel/squirrel/sqdebug.cpp index c683697d7c..77f88d1c4e 100644 --- a/src/3rdparty/squirrel/squirrel/sqdebug.cpp +++ b/src/3rdparty/squirrel/squirrel/sqdebug.cpp @@ -75,11 +75,7 @@ SQString *SQVM::PrintObjVal(const SQObject &o) switch(type(o)) { case OT_STRING: return _string(o); case OT_INTEGER: -#if defined(_SQ64) - scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%ld"), _integer(o)); -#else - scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%d"), _integer(o)); -#endif + scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), SQ_PRINTF64, _integer(o)); return SQString::Create(_ss(this), _spval); break; case OT_FLOAT: diff --git a/src/3rdparty/squirrel/squirrel/sqfuncstate.cpp b/src/3rdparty/squirrel/squirrel/sqfuncstate.cpp index b4f3541731..fd8caf2e4b 100644 --- a/src/3rdparty/squirrel/squirrel/sqfuncstate.cpp +++ b/src/3rdparty/squirrel/squirrel/sqfuncstate.cpp @@ -80,11 +80,7 @@ void DumpLiteral(SQObjectPtr &o) switch(type(o)){ case OT_STRING: scprintf(_SC("\"%s\""),_stringval(o));break; case OT_FLOAT: scprintf(_SC("{%f}"),_float(o));break; -#if defined(_SQ64) - case OT_INTEGER: scprintf(_SC("{%ld}"),_integer(o));break; -#else - case OT_INTEGER: scprintf(_SC("{%d}"),_integer(o));break; -#endif + case OT_INTEGER: scprintf(_SC("{") SQ_PRINTF64 _SC("}"),_integer(o));break; case OT_BOOL: scprintf(_SC("%s"),_integer(o)?_SC("true"):_SC("false"));break; default: scprintf(_SC("(%s %p)"),GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler } @@ -541,7 +537,7 @@ SQFunctionProto *SQFuncState::BuildProto() for(SQUnsignedInteger no = 0; no < _lineinfos.size(); no++) f->_lineinfos[no] = _lineinfos[no]; for(SQUnsignedInteger no = 0; no < _defaultparams.size(); no++) f->_defaultparams[no] = _defaultparams[no]; - memcpy(f->_instructions,&_instructions[0],_instructions.size()*sizeof(SQInstruction)); + memcpy(f->_instructions,&_instructions[0],(size_t)_instructions.size()*sizeof(SQInstruction)); f->_varparams = _varparams; diff --git a/src/3rdparty/squirrel/squirrel/sqmem.cpp b/src/3rdparty/squirrel/squirrel/sqmem.cpp index 6faf8165ae..26d07047ed 100644 --- a/src/3rdparty/squirrel/squirrel/sqmem.cpp +++ b/src/3rdparty/squirrel/squirrel/sqmem.cpp @@ -2,8 +2,8 @@ see copyright notice in squirrel.h */ #include "sqpcheader.h" -void *sq_vm_malloc(SQUnsignedInteger size){ return malloc(size); } +void *sq_vm_malloc(SQUnsignedInteger size){ return malloc((size_t)size); } -void *sq_vm_realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size){ return realloc(p, size); } +void *sq_vm_realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size){ return realloc(p, (size_t)size); } void sq_vm_free(void *p, SQUnsignedInteger size){ free(p); } diff --git a/src/3rdparty/squirrel/squirrel/sqstate.cpp b/src/3rdparty/squirrel/squirrel/sqstate.cpp index 45b533776a..659d59c176 100644 --- a/src/3rdparty/squirrel/squirrel/sqstate.cpp +++ b/src/3rdparty/squirrel/squirrel/sqstate.cpp @@ -507,26 +507,26 @@ void SQStringTable::AllocNodes(SQInteger size) { _numofslots = size; _strings = (SQString**)SQ_MALLOC(sizeof(SQString*)*_numofslots); - memset(_strings,0,sizeof(SQString*)*_numofslots); + memset(_strings,0,sizeof(SQString*)*(size_t)_numofslots); } SQString *SQStringTable::Add(const SQChar *news,SQInteger len) { if(len<0) len = (SQInteger)scstrlen(news); - SQHash h = ::_hashstr(news,len)&(_numofslots-1); + SQHash h = ::_hashstr(news,(size_t)len)&(_numofslots-1); SQString *s; for (s = _strings[h]; s; s = s->_next){ - if(s->_len == len && (!memcmp(news,s->_val,rsl(len)))) + if(s->_len == len && (!memcmp(news,s->_val,(size_t)rsl(len)))) return s; //found } SQString *t=(SQString *)SQ_MALLOC(rsl(len)+sizeof(SQString)); new (t) SQString; - memcpy(t->_val,news,rsl(len)); + memcpy(t->_val,news,(size_t)rsl(len)); t->_val[len] = _SC('\0'); t->_len = len; - t->_hash = ::_hashstr(news,len); + t->_hash = ::_hashstr(news,(size_t)len); t->_next = _strings[h]; _strings[h] = t; _slotused++; diff --git a/src/3rdparty/squirrel/squirrel/squtils.h b/src/3rdparty/squirrel/squirrel/squtils.h index 111a1c383a..28c6cbec2b 100644 --- a/src/3rdparty/squirrel/squirrel/squtils.h +++ b/src/3rdparty/squirrel/squirrel/squtils.h @@ -41,7 +41,7 @@ public: size_t allocated_size = _allocated * sizeof(T); _allocated = 0; - for(SQUnsignedInteger i = 0; i < _size; i++) + for(size_t i = 0; i < _size; i++) _vals[i].~T(); SQ_FREE(_vals, allocated_size); } @@ -61,7 +61,7 @@ public: for(SQUnsignedInteger i = newsize; i < _size; i++) { _vals[i].~T(); } - _size = newsize; + _size = (size_t)newsize; } } void shrinktofit() { if(_size > 4) { _realloc(_size); } } @@ -90,7 +90,7 @@ public: { _vals[idx].~T(); if(idx < (_size - 1)) { - memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - idx - 1)); + memmove(&_vals[idx], &_vals[idx+1], sizeof(T) * (_size - (size_t)idx - 1)); } _size--; } @@ -103,10 +103,10 @@ private: { newsize = (newsize > 0)?newsize:4; _vals = (T*)SQ_REALLOC(_vals, _allocated * sizeof(T), newsize * sizeof(T)); - _allocated = newsize; + _allocated = (size_t)newsize; } - SQUnsignedInteger _size; - SQUnsignedInteger _allocated; + size_t _size; + size_t _allocated; }; #endif //_SQUTILS_H_ diff --git a/src/3rdparty/squirrel/squirrel/sqvm.cpp b/src/3rdparty/squirrel/squirrel/sqvm.cpp index c8f4db674a..6f2894774a 100644 --- a/src/3rdparty/squirrel/squirrel/sqvm.cpp +++ b/src/3rdparty/squirrel/squirrel/sqvm.cpp @@ -259,11 +259,7 @@ void SQVM::ToString(const SQObjectPtr &o,SQObjectPtr &res) scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),_SC("%g"),_float(o)); break; case OT_INTEGER: -#if defined(_SQ64) - scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),_SC("%ld"),_integer(o)); -#else - scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),_SC("%d"),_integer(o)); -#endif + scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)),SQ_PRINTF64,_integer(o)); break; case OT_BOOL: scsprintf(_sp(rsl(6)),_integer(o)?_SC("true"):_SC("false")); @@ -293,8 +289,8 @@ bool SQVM::StringCat(const SQObjectPtr &str,const SQObjectPtr &obj,SQObjectPtr & ToString(obj, b); SQInteger l = _string(a)->_len , ol = _string(b)->_len; SQChar *s = _sp(rsl(l + ol + 1)); - memcpy(s, _stringval(a), rsl(l)); - memcpy(s + l, _stringval(b), rsl(ol)); + memcpy(s, _stringval(a), (size_t)rsl(l)); + memcpy(s + l, _stringval(b), (size_t)rsl(ol)); dest = SQString::Create(_ss(this), _spval, l + ol); return true; } diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 3b3c09a429..f920d31014 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -11,10 +11,13 @@ #include "../stdafx.h" #include "../settings_type.h" +#include "../string_func.h" #include "ai.hpp" #include "ai_config.hpp" #include "ai_info.hpp" +#include "../safeguards.h" + /** Configuration for AI start date, every AI has this setting. */ ScriptConfigItem _start_date_config = { "start_date", @@ -107,7 +110,7 @@ void AIConfig::SetSetting(const char *name, int value) if (it != this->settings.end()) { (*it).second = value; } else { - this->settings[strdup(name)] = value; + this->settings[stredup(name)] = value; } return; diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index 3f4381b0c5..d4ff233116 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -22,6 +22,8 @@ #include "ai_info.hpp" #include "ai.hpp" +#include "../safeguards.h" + /* static */ uint AI::frame_counter = 0; /* static */ AIScannerInfo *AI::scanner_info = NULL; /* static */ AIScannerLibrary *AI::scanner_library = NULL; diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index d75324a5d3..f309b8c816 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -40,11 +40,12 @@ #include "../game/game_info.hpp" #include "../game/game_instance.hpp" - #include "table/strings.h" #include +#include "../safeguards.h" + static ScriptConfig *GetConfig(CompanyID slot) { if (slot == OWNER_DEITY) return GameConfig::GetConfig(); @@ -854,7 +855,7 @@ struct AIConfigWindow : public Window { case WID_AIC_GAMELIST: { this->selected_slot = OWNER_DEITY; this->InvalidateData(); - if (click_count > 1 && this->selected_slot != INVALID_COMPANY) ShowAIListWindow((CompanyID)this->selected_slot); + if (click_count > 1 && this->selected_slot != INVALID_COMPANY && _game_mode != GM_NORMAL) ShowAIListWindow((CompanyID)this->selected_slot); break; } diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index 375248d7d2..e048a54572 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -15,8 +15,11 @@ #include "ai_info.hpp" #include "ai_scanner.hpp" #include "../debug.h" +#include "../string_func.h" #include "../rev.h" +#include "../safeguards.h" + /** * Check if the API version provided by the AI is supported. * @param api_version The API version as provided by the AI. @@ -69,8 +72,8 @@ template <> const char *GetClassName() { return "AIInfo"; } if (res != 0) return res; ScriptConfigItem config = _start_date_config; - config.name = strdup(config.name); - config.description = strdup(config.description); + config.name = stredup(config.name); + config.description = stredup(config.description); info->config_list.push_front(config); if (info->engine->MethodExists(*info->SQ_instance, "MinVersionToLoad")) { @@ -92,7 +95,7 @@ template <> const char *GetClassName() { return "AIInfo"; } return SQ_ERROR; } } else { - info->api_version = strdup("0.7"); + info->api_version = stredup("0.7"); } /* Remove the link to the real instance, else it might get deleted by RegisterAI() */ @@ -115,7 +118,7 @@ template <> const char *GetClassName() { return "AIInfo"; } char buf[8]; seprintf(buf, lastof(buf), "%d.%d", GB(_openttd_newgrf_version, 28, 4), GB(_openttd_newgrf_version, 24, 4)); - info->api_version = strdup(buf); + info->api_version = stredup(buf); /* Remove the link to the real instance, else it might get deleted by RegisterAI() */ sq_setinstanceup(vm, 2, NULL); diff --git a/src/ai/ai_instance.cpp b/src/ai/ai_instance.cpp index f109a09260..1c304c8569 100644 --- a/src/ai/ai_instance.cpp +++ b/src/ai/ai_instance.cpp @@ -82,6 +82,8 @@ #include "../company_base.h" #include "../company_func.h" +#include "../safeguards.h" + AIInstance::AIInstance() : ScriptInstance("AI") {} diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp index 64b877c6c8..4eb2071479 100644 --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -18,6 +18,8 @@ #include "ai_info.hpp" #include "ai_scanner.hpp" +#include "../safeguards.h" + AIScannerInfo::AIScannerInfo() : ScriptScanner(), @@ -31,7 +33,7 @@ void AIScannerInfo::Initialize() /* Create the dummy AI */ free(this->main_script); - this->main_script = strdup("%_dummy"); + this->main_script = stredup("%_dummy"); extern void Script_CreateDummyInfo(HSQUIRRELVM vm, const char *type, const char *dir); Script_CreateDummyInfo(this->engine->GetVM(), "AI", "ai"); } @@ -46,9 +48,9 @@ AIScannerInfo::~AIScannerInfo() delete this->info_dummy; } -void AIScannerInfo::GetScriptName(ScriptInfo *info, char *name, int len) +void AIScannerInfo::GetScriptName(ScriptInfo *info, char *name, const char *last) { - snprintf(name, len, "%s", info->GetName()); + seprintf(name, last, "%s", info->GetName()); } void AIScannerInfo::RegisterAPI(class Squirrel *engine) @@ -96,7 +98,7 @@ AIInfo *AIScannerInfo::FindInfo(const char *nameParam, int versionParam, bool fo if (nameParam == NULL) return NULL; char ai_name[1024]; - ttd_strlcpy(ai_name, nameParam, sizeof(ai_name)); + strecpy(ai_name, nameParam, lastof(ai_name)); strtolower(ai_name); AIInfo *info = NULL; @@ -118,7 +120,7 @@ AIInfo *AIScannerInfo::FindInfo(const char *nameParam, int versionParam, bool fo if (force_exact_match) { /* Try to find a direct 'name.version' match */ char ai_name_tmp[1024]; - snprintf(ai_name_tmp, sizeof(ai_name_tmp), "%s.%d", ai_name, versionParam); + seprintf(ai_name_tmp, lastof(ai_name_tmp), "%s.%d", ai_name, versionParam); strtolower(ai_name_tmp); if (this->info_list.find(ai_name_tmp) != this->info_list.end()) return static_cast(this->info_list[ai_name_tmp]); } @@ -143,10 +145,10 @@ void AIScannerLibrary::Initialize() ScriptScanner::Initialize("AIScanner"); } -void AIScannerLibrary::GetScriptName(ScriptInfo *info, char *name, int len) +void AIScannerLibrary::GetScriptName(ScriptInfo *info, char *name, const char *last) { AILibrary *library = static_cast(info); - snprintf(name, len, "%s.%s", library->GetCategory(), library->GetInstanceName()); + seprintf(name, last, "%s.%s", library->GetCategory(), library->GetInstanceName()); } void AIScannerLibrary::RegisterAPI(class Squirrel *engine) @@ -158,7 +160,7 @@ AILibrary *AIScannerLibrary::FindLibrary(const char *library, int version) { /* Internally we store libraries as 'library.version' */ char library_name[1024]; - snprintf(library_name, sizeof(library_name), "%s.%d", library, version); + seprintf(library_name, lastof(library_name), "%s.%d", library, version); strtolower(library_name); /* Check if the library + version exists */ diff --git a/src/ai/ai_scanner.hpp b/src/ai/ai_scanner.hpp index e09eca9d9c..d8e8a6993d 100644 --- a/src/ai/ai_scanner.hpp +++ b/src/ai/ai_scanner.hpp @@ -42,7 +42,7 @@ public: void SetDummyAI(class AIInfo *info); protected: - /* virtual */ void GetScriptName(ScriptInfo *info, char *name, int len); + /* virtual */ void GetScriptName(ScriptInfo *info, char *name, const char *last); /* virtual */ const char *GetFileName() const { return PATHSEP "info.nut"; } /* virtual */ Subdirectory GetDirectory() const { return AI_DIR; } /* virtual */ const char *GetScannerName() const { return "AIs"; } @@ -65,7 +65,7 @@ public: class AILibrary *FindLibrary(const char *library, int version); protected: - /* virtual */ void GetScriptName(ScriptInfo *info, char *name, int len); + /* virtual */ void GetScriptName(ScriptInfo *info, char *name, const char *last); /* virtual */ const char *GetFileName() const { return PATHSEP "library.nut"; } /* virtual */ Subdirectory GetDirectory() const { return AI_LIBRARY_DIR; } /* virtual */ const char *GetScannerName() const { return "AI Libraries"; } diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index ee89fbf0df..2f49158eb9 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -39,6 +39,8 @@ #include "table/strings.h" +#include "safeguards.h" + static const int ROTOR_Z_OFFSET = 5; ///< Z Offset between helicopter- and rotorsprite. static const int PLANE_HOLDING_ALTITUDE = 150; ///< Altitude of planes in holding pattern (= lowest flight altitude). diff --git a/src/aircraft_gui.cpp b/src/aircraft_gui.cpp index 6db75d3af8..2c58b68c89 100644 --- a/src/aircraft_gui.cpp +++ b/src/aircraft_gui.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Draw the details for the given vehicle at the given position * diff --git a/src/airport.cpp b/src/airport.cpp index c3c67effc5..a50c049c23 100644 --- a/src/airport.cpp +++ b/src/airport.cpp @@ -15,6 +15,8 @@ #include "table/airport_movement.h" #include "table/airporttile_ids.h" +#include "safeguards.h" + /** * Define a generic airport. diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 225a95e5b9..050ec993e3 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -32,6 +32,8 @@ #include "widgets/airport_widget.h" +#include "safeguards.h" + static AirportClassID _selected_airport_class; ///< the currently visible airport class static int _selected_airport_index; ///< the index of the selected airport in the current class or -1 diff --git a/src/animated_tile.cpp b/src/animated_tile.cpp index 8995275e90..78dda8b3b6 100644 --- a/src/animated_tile.cpp +++ b/src/animated_tile.cpp @@ -14,6 +14,8 @@ #include "tile_cmd.h" #include "viewport_func.h" +#include "safeguards.h" + /** The table/list with animated tiles. */ TileIndex *_animated_tile_list = NULL; /** The number of animated tiles in the current state. */ diff --git a/src/articulated_vehicles.cpp b/src/articulated_vehicles.cpp index 501af719de..859d9a750a 100644 --- a/src/articulated_vehicles.cpp +++ b/src/articulated_vehicles.cpp @@ -19,6 +19,8 @@ #include "table/strings.h" +#include "safeguards.h" + static const uint MAX_ARTICULATED_PARTS = 100; ///< Maximum of articulated parts per vehicle, i.e. when to abort calling the articulated vehicle callback. /** diff --git a/src/autoreplace.cpp b/src/autoreplace.cpp index 0cb8d997f2..3b7f739726 100644 --- a/src/autoreplace.cpp +++ b/src/autoreplace.cpp @@ -15,6 +15,8 @@ #include "autoreplace_base.h" #include "core/pool_func.hpp" +#include "safeguards.h" + /** The pool of autoreplace "orders". */ EngineRenewPool _enginerenew_pool("EngineRenew"); INSTANTIATE_POOL_METHODS(EngineRenew) @@ -28,7 +30,7 @@ static EngineRenew *GetEngineReplacement(EngineRenewList erl, EngineID engine, G EngineRenew *er = (EngineRenew *)erl; while (er != NULL) { - if (er->from == engine && er->group_id == group) return er; + if (er->from == engine && GroupIsInGroup(group, er->group_id)) return er; er = er->next; } return NULL; diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index 2e13caffba..e69ac66eb2 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" +#include "safeguards.h" + extern void ChangeVehicleViewports(VehicleID from_index, VehicleID to_index); extern void ChangeVehicleNews(VehicleID from_index, VehicleID to_index); extern void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index); diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 485df66b04..dcac278bd3 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -28,6 +28,8 @@ #include "widgets/autoreplace_widget.h" +#include "safeguards.h" + uint GetEngineListHeight(VehicleType type); void DrawEngineList(VehicleType type, int x, int r, int y, const GUIEngineList *eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count, GroupID selected_group); diff --git a/src/base_consist.cpp b/src/base_consist.cpp index 005c886723..c7fcdec217 100644 --- a/src/base_consist.cpp +++ b/src/base_consist.cpp @@ -12,6 +12,9 @@ #include "stdafx.h" #include "base_consist.h" #include "vehicle_base.h" +#include "string_func.h" + +#include "safeguards.h" BaseConsist::~BaseConsist() { @@ -27,7 +30,7 @@ void BaseConsist::CopyConsistPropertiesFrom(const BaseConsist *src) if (this == src) return; free(this->name); - this->name = src->name != NULL ? strdup(src->name) : NULL; + this->name = src->name != NULL ? stredup(src->name) : NULL; this->current_order_time = src->current_order_time; this->lateness_counter = src->lateness_counter; diff --git a/src/base_media_func.h b/src/base_media_func.h index 6322ba1dba..650506f903 100644 --- a/src/base_media_func.h +++ b/src/base_media_func.h @@ -51,16 +51,16 @@ bool BaseSet::FillSetDetails(IniFile *ini, const IniItem *item; fetch_metadata("name"); - this->name = strdup(item->value); + this->name = stredup(item->value); fetch_metadata("description"); - this->description[strdup("")] = strdup(item->value); + this->description[stredup("")] = stredup(item->value); /* Add the translations of the descriptions too. */ for (const IniItem *item = metadata->item; item != NULL; item = item->next) { if (strncmp("description.", item->name, 12) != 0) continue; - this->description[strdup(item->name + 12)] = strdup(item->value); + this->description[stredup(item->name + 12)] = stredup(item->value); } fetch_metadata("shortname"); @@ -129,9 +129,9 @@ bool BaseSet::FillSetDetails(IniFile *ini, const if (item == NULL) item = origin->GetItem("default", false); if (item == NULL) { DEBUG(grf, 1, "No origin warning message specified for: %s", filename); - file->missing_warning = strdup(""); + file->missing_warning = stredup(""); } else { - file->missing_warning = strdup(item->value); + file->missing_warning = stredup(item->value); } switch (T::CheckMD5(file, BASESET_DIR)) { @@ -164,7 +164,7 @@ bool BaseMedia::AddFile(const char *filename, size_t basepath_length, IniFile *ini = new IniFile(); ini->LoadFromDisk(filename, BASESET_DIR); - char *path = strdup(filename + basepath_length); + char *path = stredup(filename + basepath_length); char *psep = strrchr(path, PATHSEPCHAR); if (psep != NULL) { psep[1] = '\0'; diff --git a/src/blitter/16bpp_anim.cpp b/src/blitter/16bpp_anim.cpp index 2b077ef475..115ffe9df5 100644 --- a/src/blitter/16bpp_anim.cpp +++ b/src/blitter/16bpp_anim.cpp @@ -366,7 +366,7 @@ void Blitter_16bppAnim::PaletteAnimate(const Palette &palette) } /* Make sure the backend redraws the whole screen */ - _video_driver->MakeDirty(0, 0, _screen.width, _screen.height); + VideoDriver::GetInstance()->MakeDirty(0, 0, _screen.width, _screen.height); } Blitter::PaletteAnimation Blitter_16bppAnim::UsePaletteAnimation() diff --git a/src/blitter/16bpp_base.hpp b/src/blitter/16bpp_base.hpp index e7a5b5e7a9..c4d63b0bd4 100644 --- a/src/blitter/16bpp_base.hpp +++ b/src/blitter/16bpp_base.hpp @@ -163,9 +163,9 @@ public: */ static inline Colour16 MakeGrey(Colour16 colour) { - uint r = colour.r; - uint g = colour.g; - uint b = colour.b; + uint8 r = colour.r; + uint8 g = colour.g; + uint8 b = colour.b; /* To avoid doubles and stuff, multiple it with a total of 65536 (16bits), then * divide by it to normalize the value to a byte again. See heightmap.cpp for @@ -175,6 +175,23 @@ public: return To16(grey, grey, grey); } + /** + * Make a colour dark grey, for specialized 32bpp remapping. + * @param r red component + * @param g green component + * @param b blue component + * @return the brightness value of the new colour, now dark grey. + */ + static inline uint8 MakeDark(Colour16 colour) + { + uint8 r = colour.r; + uint8 g = colour.g; + uint8 b = colour.b; + + /* Magic-numbers are ~66% of those used in MakeGrey() */ + return (((r << 3) * 13063) + ((g << 2) * 25647) + ((b << 3) * 4981)) / 65536; + } + enum { DEFAULT_BRIGHTNESS = 8 }; /** diff --git a/src/blitter/16bpp_simple.cpp b/src/blitter/16bpp_simple.cpp index 36f90f17b6..675b58b87d 100644 --- a/src/blitter/16bpp_simple.cpp +++ b/src/blitter/16bpp_simple.cpp @@ -46,6 +46,17 @@ void Blitter_16bppSimple::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom) } break; + case BM_CRASH_REMAP: + if (src->m == 0) { + if (src->a != 0) { + uint8 g = MakeDark(src->c); + *dst = ComposeColourRGBA(g, g, g, src->a, *dst); + } + } else { + if (bp->remap[src->m] != 0) *dst = ComposeColourPA(AdjustBrightness(LookupColourInPalette(bp->remap[src->m]), src->v), src->a, *dst); + } + break; + case BM_TRANSPARENT: /* TODO -- We make an assumption here that the remap in fact is transparency, not some colour. * This is never a problem with the code we produce, but newgrfs can make it fail... or at least: @@ -72,6 +83,7 @@ void Blitter_16bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoo case BM_NORMAL: Draw (bp, zoom); return; case BM_COLOUR_REMAP: Draw(bp, zoom); return; case BM_TRANSPARENT: Draw (bp, zoom); return; + case BM_CRASH_REMAP: Draw (bp, zoom); return; } } diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index 7681d25ed5..6127ff3a00 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -15,6 +15,8 @@ #include "../table/sprites.h" +#include "../safeguards.h" + /** Instantiation of the 32bpp with animation blitter factory. */ static FBlitter_32bppAnim iFBlitter_32bppAnim; @@ -133,6 +135,46 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel } break; + case BM_CRASH_REMAP: + if (src_px->a == 255) { + do { + uint m = *src_n; + if (m == 0) { + uint8 g = MakeDark(src_px->r, src_px->g, src_px->b); + *dst = ComposeColourRGBA(g, g, g, src_px->a, *dst); + *anim = 0; + } else { + uint r = remap[GB(m, 0, 8)]; + *anim = r | (m & 0xFF00); + if (r != 0) *dst = this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8)); + } + anim++; + dst++; + src_px++; + src_n++; + } while (--n != 0); + } else { + do { + uint m = *src_n; + if (m == 0) { + if (src_px->a != 0) { + uint8 g = MakeDark(src_px->r, src_px->g, src_px->b); + *dst = ComposeColourRGBA(g, g, g, src_px->a, *dst); + *anim = 0; + } + } else { + uint r = remap[GB(m, 0, 8)]; + *anim = 0; + if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8)), src_px->a, *dst); + } + anim++; + dst++; + src_px++; + src_n++; + } while (--n != 0); + } + break; + case BM_TRANSPARENT: /* TODO -- We make an assumption here that the remap in fact is transparency, not some colour. * This is never a problem with the code we produce, but newgrfs can make it fail... or at least: @@ -208,6 +250,7 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL case BM_NORMAL: Draw (bp, zoom); return; case BM_COLOUR_REMAP: Draw(bp, zoom); return; case BM_TRANSPARENT: Draw (bp, zoom); return; + case BM_CRASH_REMAP: Draw (bp, zoom); return; } } @@ -439,7 +482,7 @@ void Blitter_32bppAnim::PaletteAnimate(const Palette &palette) } /* Make sure the backend redraws the whole screen */ - _video_driver->MakeDirty(0, 0, _screen.width, _screen.height); + VideoDriver::GetInstance()->MakeDirty(0, 0, _screen.width, _screen.height); } Blitter::PaletteAnimation Blitter_32bppAnim::UsePaletteAnimation() diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp index 004e320760..f25683a10b 100644 --- a/src/blitter/32bpp_anim_sse4.cpp +++ b/src/blitter/32bpp_anim_sse4.cpp @@ -17,6 +17,8 @@ #include "32bpp_anim_sse4.hpp" #include "32bpp_sse_func.hpp" +#include "../safeguards.h" + /** Instantiation of the SSE4 32bpp blitter factory. */ static FBlitter_32bppSSE4_Anim iFBlitter_32bppSSE4_Anim; @@ -313,6 +315,25 @@ bmcr_alpha_blend_single: if (src[0].a) anim[0] = 0; } break; + + case BM_CRASH_REMAP: + for (uint x = (uint) bp->width; x > 0; x--) { + if (src_mv->m == 0) { + if (src->a != 0) { + uint8 g = MakeDark(src->r, src->g, src->b); + *dst = ComposeColourRGBA(g, g, g, src->a, *dst); + *anim = 0; + } + } else { + uint r = remap[src_mv->m]; + if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), src_mv->v), src->a, *dst); + } + src_mv++; + dst++; + src++; + anim++; + } + break; } next_line: @@ -373,6 +394,7 @@ bm_normal: } break; case BM_TRANSPARENT: Draw(bp, zoom); return; + case BM_CRASH_REMAP: Draw(bp, zoom); return; } } diff --git a/src/blitter/32bpp_base.cpp b/src/blitter/32bpp_base.cpp index 3ea03327f6..26dd2f037e 100644 --- a/src/blitter/32bpp_base.cpp +++ b/src/blitter/32bpp_base.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "32bpp_base.hpp" +#include "../safeguards.h" + void *Blitter_32bppBase::MoveTo(void *video, int x, int y) { return (uint32 *)video + x + y * _screen.pitch; diff --git a/src/blitter/32bpp_base.hpp b/src/blitter/32bpp_base.hpp index ca58f0353f..26c3dee3fd 100644 --- a/src/blitter/32bpp_base.hpp +++ b/src/blitter/32bpp_base.hpp @@ -112,6 +112,19 @@ public: return Colour(r * nom / denom, g * nom / denom, b * nom / denom); } + /** + * Make a colour dark grey, for specialized 32bpp remapping. + * @param r red component + * @param g green component + * @param b blue component + * @return the brightness value of the new colour, now dark grey. + */ + static inline uint8 MakeDark(uint8 r, uint8 g, uint8 b) + { + /* Magic-numbers are ~66% of those used in MakeGrey() */ + return ((r * 13063) + (g * 25647) + (b * 4981)) / 65536; + } + /** * Make a colour grey - based. * @param colour the colour to make grey. diff --git a/src/blitter/32bpp_optimized.cpp b/src/blitter/32bpp_optimized.cpp index 4911e83140..9b7d7115c9 100644 --- a/src/blitter/32bpp_optimized.cpp +++ b/src/blitter/32bpp_optimized.cpp @@ -14,6 +14,8 @@ #include "../settings_type.h" #include "32bpp_optimized.hpp" +#include "../safeguards.h" + /** Instantiation of the optimized 32bpp blitter factory. */ static FBlitter_32bppOptimized iFBlitter_32bppOptimized; @@ -141,6 +143,40 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL } break; + case BM_CRASH_REMAP: + if (src_px->a == 255) { + do { + uint m = *src_n; + if (m == 0) { + uint8 g = MakeDark(src_px->r, src_px->g, src_px->b); + *dst = ComposeColourRGBA(g, g, g, src_px->a, *dst); + } else { + uint r = remap[GB(m, 0, 8)]; + if (r != 0) *dst = this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8)); + } + dst++; + src_px++; + src_n++; + } while (--n != 0); + } else { + do { + uint m = *src_n; + if (m == 0) { + if (src_px->a != 0) { + uint8 g = MakeDark(src_px->r, src_px->g, src_px->b); + *dst = ComposeColourRGBA(g, g, g, src_px->a, *dst); + } + } else { + uint r = remap[GB(m, 0, 8)]; + if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8)), src_px->a, *dst); + } + dst++; + src_px++; + src_n++; + } while (--n != 0); + } + break; + case BM_TRANSPARENT: /* TODO -- We make an assumption here that the remap in fact is transparency, not some colour. * This is never a problem with the code we produce, but newgrfs can make it fail... or at least: @@ -204,6 +240,7 @@ void Blitter_32bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, case BM_NORMAL: Draw (bp, zoom); return; case BM_COLOUR_REMAP: Draw(bp, zoom); return; case BM_TRANSPARENT: Draw (bp, zoom); return; + case BM_CRASH_REMAP: Draw (bp, zoom); return; } } diff --git a/src/blitter/32bpp_simple.cpp b/src/blitter/32bpp_simple.cpp index 4a9036a134..0ad7418db0 100644 --- a/src/blitter/32bpp_simple.cpp +++ b/src/blitter/32bpp_simple.cpp @@ -15,6 +15,8 @@ #include "../table/sprites.h" +#include "../safeguards.h" + /** Instantiation of the simple 32bpp blitter factory. */ static FBlitter_32bppSimple iFBlitter_32bppSimple; @@ -45,6 +47,17 @@ void Blitter_32bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoo } break; + case BM_CRASH_REMAP: + if (src->m == 0) { + if (src->a != 0) { + uint8 g = MakeDark(src->r, src->g, src->b); + *dst = ComposeColourRGBA(g, g, g, src->a, *dst); + } + } else { + if (bp->remap[src->m] != 0) *dst = ComposeColourPA(this->AdjustBrightness(this->LookupColourInPalette(bp->remap[src->m]), src->v), src->a, *dst); + } + break; + case BM_TRANSPARENT: /* TODO -- We make an assumption here that the remap in fact is transparency, not some colour. * This is never a problem with the code we produce, but newgrfs can make it fail... or at least: diff --git a/src/blitter/32bpp_sse2.cpp b/src/blitter/32bpp_sse2.cpp index 40b3620a26..ae2b3ccc52 100644 --- a/src/blitter/32bpp_sse2.cpp +++ b/src/blitter/32bpp_sse2.cpp @@ -17,6 +17,8 @@ #include "32bpp_sse2.hpp" #include "32bpp_sse_func.hpp" +#include "../safeguards.h" + /** Instantiation of the SSE2 32bpp blitter factory. */ static FBlitter_32bppSSE2 iFBlitter_32bppSSE2; @@ -36,6 +38,7 @@ Sprite *Blitter_32bppSSE_Base::Encode(const SpriteLoader::Sprite *sprite, Alloca /* Calculate sizes and allocate. */ SpriteData sd; + memset(&sd, 0, sizeof(sd)); uint all_sprites_size = 0; for (ZoomLevel z = zoom_min; z <= zoom_max; z++) { const SpriteLoader::Sprite *src_sprite = &sprite[z]; diff --git a/src/blitter/32bpp_sse4.cpp b/src/blitter/32bpp_sse4.cpp index dab0d8f3e9..723264f03f 100644 --- a/src/blitter/32bpp_sse4.cpp +++ b/src/blitter/32bpp_sse4.cpp @@ -17,6 +17,8 @@ #include "32bpp_sse4.hpp" #include "32bpp_sse_func.hpp" +#include "../safeguards.h" + /** Instantiation of the SSE4 32bpp blitter factory. */ static FBlitter_32bppSSE4 iFBlitter_32bppSSE4; diff --git a/src/blitter/32bpp_sse_func.hpp b/src/blitter/32bpp_sse_func.hpp index f0469d66eb..6b60ba6642 100644 --- a/src/blitter/32bpp_sse_func.hpp +++ b/src/blitter/32bpp_sse_func.hpp @@ -238,13 +238,13 @@ inline void Blitter_32bppSSE4::Draw(const Blitter::BlitterParams *bp, ZoomLevel for (int y = bp->height; y != 0; y--) { Colour *dst = dst_line; const Colour *src = src_rgba_line + META_LENGTH; - if (mode == BM_COLOUR_REMAP) src_mv = src_mv_line; + if (mode == BM_COLOUR_REMAP || mode == BM_CRASH_REMAP) src_mv = src_mv_line; if (read_mode == RM_WITH_MARGIN) { assert(bt_last == BT_NONE); // or you must ensure block type is preserved src += src_rgba_line[0].data; dst += src_rgba_line[0].data; - if (mode == BM_COLOUR_REMAP) src_mv += src_rgba_line[0].data; + if (mode == BM_COLOUR_REMAP || mode == BM_CRASH_REMAP) src_mv += src_rgba_line[0].data; const int width_diff = si->sprite_width - bp->width; effective_width = bp->width - (int) src_rgba_line[0].data; const int delta_diff = (int) src_rgba_line[1].data - width_diff; @@ -377,10 +377,27 @@ bmcr_alpha_blend_single: dst->data = _mm_cvtsi128_si32(DarkenTwoPixels(srcABCD, dstABCD, DARKEN_PARAM_1, DARKEN_PARAM_2)); } break; + + case BM_CRASH_REMAP: + for (uint x = (uint) bp->width; x > 0; x--) { + if (src_mv->m == 0) { + if (src->a != 0) { + uint8 g = MakeDark(src->r, src->g, src->b); + *dst = ComposeColourRGBA(g, g, g, src->a, *dst); + } + } else { + uint r = remap[src_mv->m]; + if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), src_mv->v), src->a, *dst); + } + src_mv++; + dst++; + src++; + } + break; } next_line: - if (mode == BM_COLOUR_REMAP) src_mv_line += si->sprite_width; + if (mode == BM_COLOUR_REMAP || mode == BM_CRASH_REMAP) src_mv_line += si->sprite_width; src_rgba_line = (const Colour*) ((const byte*) src_rgba_line + si->sprite_line_size); dst_line += bp->pitch; } @@ -429,6 +446,7 @@ bm_normal: Draw(bp, zoom); return; } case BM_TRANSPARENT: Draw(bp, zoom); return; + case BM_CRASH_REMAP: Draw(bp, zoom); return; } } #endif /* FULL_ANIMATION */ diff --git a/src/blitter/32bpp_ssse3.cpp b/src/blitter/32bpp_ssse3.cpp index 33d49648e7..ab6c9eba5d 100644 --- a/src/blitter/32bpp_ssse3.cpp +++ b/src/blitter/32bpp_ssse3.cpp @@ -17,6 +17,8 @@ #include "32bpp_ssse3.hpp" #include "32bpp_sse_func.hpp" +#include "../safeguards.h" + /** Instantiation of the SSSE3 32bpp blitter factory. */ static FBlitter_32bppSSSE3 iFBlitter_32bppSSSE3; diff --git a/src/blitter/8bpp_base.cpp b/src/blitter/8bpp_base.cpp index f2ba704054..eab6eaa0db 100644 --- a/src/blitter/8bpp_base.cpp +++ b/src/blitter/8bpp_base.cpp @@ -13,6 +13,8 @@ #include "../gfx_func.h" #include "8bpp_base.hpp" +#include "../safeguards.h" + void Blitter_8bppBase::DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) { const uint8 *ctab = GetNonSprite(pal, ST_RECOLOUR) + 1; diff --git a/src/blitter/8bpp_optimized.cpp b/src/blitter/8bpp_optimized.cpp index c84e7aea77..bcd8dc2824 100644 --- a/src/blitter/8bpp_optimized.cpp +++ b/src/blitter/8bpp_optimized.cpp @@ -15,6 +15,8 @@ #include "../core/math_func.hpp" #include "8bpp_optimized.hpp" +#include "../safeguards.h" + /** Instantiation of the 8bpp optimised blitter factory. */ static FBlitter_8bppOptimized iFBlitter_8bppOptimized; @@ -83,7 +85,8 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z width -= pixels; switch (mode) { - case BM_COLOUR_REMAP: { + case BM_COLOUR_REMAP: + case BM_CRASH_REMAP: { const uint8 *remap = bp->remap; do { uint m = remap[*src]; diff --git a/src/blitter/8bpp_simple.cpp b/src/blitter/8bpp_simple.cpp index d1bd316bb2..d24d8caac5 100644 --- a/src/blitter/8bpp_simple.cpp +++ b/src/blitter/8bpp_simple.cpp @@ -13,6 +13,8 @@ #include "../zoom_func.h" #include "8bpp_simple.hpp" +#include "../safeguards.h" + /** Instantiation of the simple 8bpp blitter factory. */ static FBlitter_8bppSimple iFBlitter_8bppSimple; @@ -37,6 +39,7 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom switch (mode) { case BM_COLOUR_REMAP: + case BM_CRASH_REMAP: colour = bp->remap[*src]; break; diff --git a/src/blitter/base.cpp b/src/blitter/base.cpp index d30f4054b7..e83df2e714 100644 --- a/src/blitter/base.cpp +++ b/src/blitter/base.cpp @@ -13,6 +13,8 @@ #include "base.hpp" #include "../core/math_func.hpp" +#include "../safeguards.h" + void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash) { int dy; diff --git a/src/blitter/base.hpp b/src/blitter/base.hpp index 00851eeef2..3314eddfec 100644 --- a/src/blitter/base.hpp +++ b/src/blitter/base.hpp @@ -20,6 +20,7 @@ enum BlitterMode { BM_NORMAL, ///< Perform the simple blitting. BM_COLOUR_REMAP, ///< Perform a colour remapping. BM_TRANSPARENT, ///< Perform transparency colour remapping. + BM_CRASH_REMAP, ///< Perform a crash remapping. }; /** diff --git a/src/blitter/factory.hpp b/src/blitter/factory.hpp index cda470510b..01faca68fd 100644 --- a/src/blitter/factory.hpp +++ b/src/blitter/factory.hpp @@ -63,7 +63,7 @@ protected: * @pre There is no blitter registered with this name. */ BlitterFactory(const char *name, const char *description, bool usable = true) : - name(strdup(name)), description(strdup(description)) + name(stredup(name)), description(stredup(description)) { if (usable) { /* diff --git a/src/blitter/null.cpp b/src/blitter/null.cpp index 1c2b379d1b..e968abe13f 100644 --- a/src/blitter/null.cpp +++ b/src/blitter/null.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "null.hpp" +#include "../safeguards.h" + /** Instantiation of the null blitter factory. */ static FBlitter_Null iFBlitter_Null; diff --git a/src/bmp.cpp b/src/bmp.cpp index 2cb3dbf787..1033d89f11 100644 --- a/src/bmp.cpp +++ b/src/bmp.cpp @@ -15,6 +15,8 @@ #include "core/alloc_func.hpp" #include "core/mem_func.hpp" +#include "safeguards.h" + void BmpInitializeBuffer(BmpBuffer *buffer, FILE *file) { buffer->pos = -1; diff --git a/src/bootstrap_gui.cpp b/src/bootstrap_gui.cpp index c2b76f0b1c..7abc38563c 100644 --- a/src/bootstrap_gui.cpp +++ b/src/bootstrap_gui.cpp @@ -29,6 +29,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** Widgets for the background window to prevent smearing. */ static const struct NWidgetPart _background_widgets[] = { NWidget(WWT_PANEL, COLOUR_DARK_BLUE, WID_BB_BACKGROUND), SetResize(1, 1), @@ -244,7 +246,7 @@ bool HandleBootstrap() new BootstrapAskForDownloadWindow(); /* Process the user events. */ - _video_driver->MainLoop(); + VideoDriver::GetInstance()->MainLoop(); /* _exit_game is used to get out of the video driver's main loop. * In case GM_BOOTSTRAP is still set we did not exit it via the diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp index 9ce304fed8..1c2dfe2fe0 100644 --- a/src/bridge_gui.cpp +++ b/src/bridge_gui.cpp @@ -30,6 +30,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** The type of the last built rail bridge */ static BridgeType _last_railbridge_type = 0; /** The type of the last built road bridge */ diff --git a/src/bridge_map.cpp b/src/bridge_map.cpp index 6ebf80424e..d1e0d6024a 100644 --- a/src/bridge_map.cpp +++ b/src/bridge_map.cpp @@ -13,6 +13,8 @@ #include "landscape.h" #include "tunnelbridge_map.h" +#include "safeguards.h" + /** * Finds the end of a bridge in the specified direction starting at a middle tile diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 95d20e7515..4e5fdb4684 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -37,6 +37,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Get the height of a single 'entry' in the engine lists. * @param type the vehicle type to get the height of diff --git a/src/cargoaction.cpp b/src/cargoaction.cpp index 48c49e99f1..96ddc3708e 100644 --- a/src/cargoaction.cpp +++ b/src/cargoaction.cpp @@ -14,6 +14,8 @@ #include "cargoaction.h" #include "station_base.h" +#include "safeguards.h" + /** * Decides if a packet needs to be split. * @param cp Packet to be either split or moved in one piece. diff --git a/src/cargomonitor.cpp b/src/cargomonitor.cpp index 5120967854..7d31e6e237 100644 --- a/src/cargomonitor.cpp +++ b/src/cargomonitor.cpp @@ -13,6 +13,8 @@ #include "cargomonitor.h" #include "station_base.h" +#include "safeguards.h" + CargoMonitorMap _cargo_pickups; ///< Map of monitored pick-ups to the amount since last query/activation. CargoMonitorMap _cargo_deliveries; ///< Map of monitored deliveries to the amount since last query/activation. diff --git a/src/cargopacket.cpp b/src/cargopacket.cpp index 67d00554b6..9b96be62eb 100644 --- a/src/cargopacket.cpp +++ b/src/cargopacket.cpp @@ -17,6 +17,8 @@ #include "cargoaction.h" #include "order_type.h" +#include "safeguards.h" + /* Initialize the cargopacket-pool */ CargoPacketPool _cargopacket_pool("CargoPacket"); INSTANTIATE_POOL_METHODS(CargoPacket) @@ -357,6 +359,7 @@ void VehicleCargoList::AddToCache(const CargoPacket *cp) */ void VehicleCargoList::RemoveFromMeta(const CargoPacket *cp, MoveToAction action, uint count) { + assert(count <= this->action_counts[action]); this->AssertCountConsistency(); this->RemoveFromCache(cp, count); this->action_counts[action] -= count; diff --git a/src/cargotype.cpp b/src/cargotype.cpp index 6d601e2558..863c585616 100644 --- a/src/cargotype.cpp +++ b/src/cargotype.cpp @@ -20,6 +20,8 @@ #include "table/strings.h" #include "table/cargo_const.h" +#include "safeguards.h" + CargoSpec CargoSpec::array[NUM_CARGO]; /** diff --git a/src/cheat.cpp b/src/cheat.cpp index f8dae235fa..8b300c9668 100644 --- a/src/cheat.cpp +++ b/src/cheat.cpp @@ -12,6 +12,8 @@ #include "stdafx.h" #include "cheat_type.h" +#include "safeguards.h" + /** All the cheats. */ Cheats _cheats; diff --git a/src/cheat_gui.cpp b/src/cheat_gui.cpp index db6102476e..8c0550fb03 100644 --- a/src/cheat_gui.cpp +++ b/src/cheat_gui.cpp @@ -30,6 +30,8 @@ #include "table/sprites.h" +#include "safeguards.h" + /** * The 'amount' to cheat with. diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 0035de54cb..ad73ed143d 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -23,6 +23,8 @@ #include "table/sprites.h" #include "table/clear_land.h" +#include "safeguards.h" + static CommandCost ClearTile_Clear(TileIndex tile, DoCommandFlag flags) { static const Price clear_price_table[] = { diff --git a/src/command.cpp b/src/command.cpp index 777eb4107c..b47b633470 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -31,6 +31,8 @@ #include "table/strings.h" +#include "safeguards.h" + CommandProc CmdBuildRailroadTrack; CommandProc CmdRemoveRailroadTrack; CommandProc CmdBuildSingleRail; @@ -182,7 +184,7 @@ CommandProc CmdDepotSellAllVehicles; CommandProc CmdDepotMassAutoReplace; CommandProc CmdCreateGroup; -CommandProc CmdRenameGroup; +CommandProc CmdAlterGroup; CommandProc CmdDeleteGroup; CommandProc CmdAddVehicleGroup; CommandProc CmdAddSharedVehicleGroup; @@ -340,7 +342,7 @@ static const Command _command_proc_table[] = { DEF_CMD(CmdDepotMassAutoReplace, 0, CMDT_VEHICLE_CONSTRUCTION ), // CMD_DEPOT_MASS_AUTOREPLACE DEF_CMD(CmdCreateGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_CREATE_GROUP DEF_CMD(CmdDeleteGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_DELETE_GROUP - DEF_CMD(CmdRenameGroup, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_GROUP + DEF_CMD(CmdAlterGroup, 0, CMDT_OTHER_MANAGEMENT ), // CMD_ALTER_GROUP DEF_CMD(CmdAddVehicleGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_ADD_VEHICLE_GROUP DEF_CMD(CmdAddSharedVehicleGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_ADD_SHARE_VEHICLE_GROUP DEF_CMD(CmdRemoveAllVehiclesGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_REMOVE_ALL_VEHICLES_GROUP diff --git a/src/command_type.h b/src/command_type.h index b4a49bd9fd..a369be6651 100644 --- a/src/command_type.h +++ b/src/command_type.h @@ -314,7 +314,7 @@ enum Commands { CMD_CREATE_GROUP, ///< create a new group CMD_DELETE_GROUP, ///< delete a group - CMD_RENAME_GROUP, ///< rename a group + CMD_ALTER_GROUP, ///< alter a group CMD_ADD_VEHICLE_GROUP, ///< add a vehicle to a group CMD_ADD_SHARED_VEHICLE_GROUP, ///< add all other shared vehicles to a group which are missing CMD_REMOVE_ALL_VEHICLES_GROUP, ///< remove all vehicles from a group diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 9d4a15e426..1786c5104a 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -39,6 +39,8 @@ #include "table/strings.h" +#include "safeguards.h" + CompanyByte _local_company; ///< Company controlled by the human player at this client. Can also be #COMPANY_SPECTATOR. CompanyByte _current_company; ///< Company currently doing an action. Colours _company_colours[MAX_COMPANIES]; ///< NOSAVE: can be determined from company structs. @@ -853,59 +855,21 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 MarkWholeScreenDirty(); } - if (_network_server) { - if (ci != NULL) { - /* ci is only NULL when replaying. - * When replaying no client is actually in need of an update. */ - ci->client_playas = c->index; - NetworkUpdateClientInfo(ci->client_id); - } - - if (Company::IsValidID(c->index)) { - _network_company_states[c->index].months_empty = 0; - _network_company_states[c->index].password[0] = '\0'; - NetworkServerUpdateCompanyPassworded(c->index, false); - - /* XXX - When a client joins, we automatically set its name to the - * client's name (for some reason). As it stands now only the server - * knows the client's name, so it needs to send out a "broadcast" to - * do this. To achieve this we send a network command. However, it - * uses _local_company to execute the command as. To prevent abuse - * (eg. only yourself can change your name/company), we 'cheat' by - * impersonation _local_company as the server. Not the best solution; - * but it works. - * TODO: Perhaps this could be improved by when the client is ready - * with joining to let it send itself the command, and not the server? - * For example in network_client.c:534? */ - if (ci != NULL) { - /* ci is only NULL when replaying. - * When replaying, the command to rename the president will - * automatically be ran, so this is not even needed to get - * the exact same state. */ - NetworkSendCommand(0, 0, 0, CMD_RENAME_PRESIDENT, NULL, ci->client_name, c->index); - } - } - - /* Announce new company on network. */ - NetworkAdminCompanyInfo(c, true); - - if (ci != NULL) { - /* ci is only NULL when replaying. - * When replaying, the message that someone started a new company - * is not interesting at all. */ - NetworkServerSendChat(NETWORK_ACTION_COMPANY_NEW, DESTTYPE_BROADCAST, 0, "", ci->client_id, c->index + 1); - } - } + NetworkServerNewCompany(c, ci); #endif /* ENABLE_NETWORK */ break; } - case 1: // Make a new AI company + case 1: { // Make a new AI company if (!(flags & DC_EXEC)) return CommandCost(); if (company_id != INVALID_COMPANY && (company_id >= MAX_COMPANIES || Company::IsValidID(company_id))) return CMD_ERROR; - DoStartupNewCompany(true, company_id); + Company *c = DoStartupNewCompany(true, company_id); +#ifdef ENABLE_NETWORK + if (c != NULL) NetworkServerNewCompany(c, NULL); +#endif /* ENABLE_NETWORK */ break; + } case 2: { // Delete a company CompanyRemoveReason reason = (CompanyRemoveReason)GB(p2, 0, 2); @@ -1115,7 +1079,7 @@ CommandCost CmdRenameCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uin if (flags & DC_EXEC) { Company *c = Company::Get(_current_company); free(c->name); - c->name = reset ? NULL : strdup(text); + c->name = reset ? NULL : stredup(text); MarkWholeScreenDirty(); CompanyAdminUpdate(c); } @@ -1164,12 +1128,12 @@ CommandCost CmdRenamePresident(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (reset) { c->president_name = NULL; } else { - c->president_name = strdup(text); + c->president_name = stredup(text); if (c->name_1 == STR_SV_UNNAMED && c->name == NULL) { char buf[80]; - snprintf(buf, lengthof(buf), "%s Transport", text); + seprintf(buf, lastof(buf), "%s Transport", text); DoCommand(0, 0, 0, DC_EXEC, CMD_RENAME_COMPANY, buf); } } diff --git a/src/company_gui.cpp b/src/company_gui.cpp index dabaa3e695..f2dbff8abc 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -39,6 +39,8 @@ #include "widgets/company_widget.h" +#include "safeguards.h" + /** Company GUI constants. */ static const uint EXP_LINESPACE = 2; ///< Amount of vertical space for a horizontal (sub-)total line. @@ -1106,7 +1108,7 @@ public: this->GetWidget(WID_SCMF_SEL_LOADSAVE)->SetDisplayedPlane(advanced ? 0 : SZSP_NONE); this->GetWidget(WID_SCMF_SEL_PARTS)->SetDisplayedPlane(advanced ? 0 : SZSP_NONE); this->GetWidget(WID_SCMF_SEL_MALEFEMALE)->SetDisplayedPlane(advanced ? SZSP_NONE : 0); - this->GetWidget(WID_SCMF_RANDOM_NEW_FACE)->widget_data = advanced ? STR_MAPGEN_RANDOM : STR_FACE_NEW_FACE_BUTTON; + this->GetWidget(WID_SCMF_RANDOM_NEW_FACE)->widget_data = advanced ? STR_FACE_RANDOM : STR_FACE_NEW_FACE_BUTTON; NWidgetCore *wi = this->GetWidget(WID_SCMF_TOGGLE_LARGE_SMALL_BUTTON); if (advanced) { diff --git a/src/console.cpp b/src/console.cpp index 1b5ff24224..511019281a 100644 --- a/src/console.cpp +++ b/src/console.cpp @@ -20,6 +20,8 @@ #include +#include "safeguards.h" + static const uint ICON_TOKEN_COUNT = 20; ///< Maximum number of tokens in one command /* console parser */ @@ -103,7 +105,7 @@ void IConsolePrint(TextColour colour_code, const char *string) /* Create a copy of the string, strip if of colours and invalid * characters and (when applicable) assign it to the console buffer */ - str = strdup(string); + str = stredup(string); str_strip_colours(str); str_validate(str, str + strlen(str)); @@ -135,7 +137,7 @@ void CDECL IConsolePrintF(TextColour colour_code, const char *format, ...) char buf[ICON_MAX_STREAMSIZE]; va_start(va, format); - vsnprintf(buf, sizeof(buf), format, va); + vseprintf(buf, lastof(buf), format, va); va_end(va); IConsolePrint(colour_code, buf); @@ -254,7 +256,7 @@ char *RemoveUnderscores(char *name) void IConsoleCmdRegister(const char *name, IConsoleCmdProc *proc, IConsoleHook *hook) { IConsoleCmd *item_new = MallocT(1); - item_new->name = RemoveUnderscores(strdup(name)); + item_new->name = RemoveUnderscores(stredup(name)); item_new->next = NULL; item_new->proc = proc; item_new->hook = hook; @@ -289,8 +291,8 @@ void IConsoleAliasRegister(const char *name, const char *cmd) return; } - char *new_alias = RemoveUnderscores(strdup(name)); - char *cmd_aliased = strdup(cmd); + char *new_alias = RemoveUnderscores(stredup(name)); + char *cmd_aliased = stredup(cmd); IConsoleAlias *item_new = MallocT(1); item_new->next = NULL; diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 11cf46b009..0b5a5d46e8 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -40,6 +40,8 @@ #include "game/game.hpp" #include "table/strings.h" +#include "safeguards.h" + /* scriptfile handling */ static bool _script_running; ///< Script is running (used to abort execution when #ConReturn is encountered). @@ -1356,7 +1358,7 @@ DEF_CONSOLE_CMD(ConAlias) IConsoleAliasRegister(argv[1], argv[2]); } else { free(alias->cmdline); - alias->cmdline = strdup(argv[2]); + alias->cmdline = stredup(argv[2]); } return true; } diff --git a/src/console_gui.cpp b/src/console_gui.cpp index 3f5fe45302..ed84f6fe09 100644 --- a/src/console_gui.cpp +++ b/src/console_gui.cpp @@ -28,6 +28,8 @@ #include "table/strings.h" +#include "safeguards.h" + #ifdef __ANDROID__ #include #endif @@ -190,7 +192,7 @@ struct IConsoleWindow : Window ~IConsoleWindow() { _iconsole_mode = ICONSOLE_CLOSED; - _video_driver->EditBoxLostFocus(); + VideoDriver::GetInstance()->EditBoxLostFocus(); } /** @@ -389,7 +391,7 @@ struct IConsoleWindow : Window virtual void OnFocusLost() { - _video_driver->EditBoxLostFocus(); + VideoDriver::GetInstance()->EditBoxLostFocus(); } }; @@ -448,11 +450,11 @@ void IConsoleSwitch() char buf[1024] = ""; for (const IConsoleLine *print = IConsoleLine::Get(0); print != NULL; print = print->previous) { if (print->buffer && print->buffer[0]) { - strncat(buf, print->buffer, sizeof(buf)-strlen(buf)-1); - strncat(buf, "\n", sizeof(buf)-strlen(buf)-1); + strecat(buf, print->buffer, lastof(buf)); + strecat(buf, "\n", lastof(buf)); } } - strncat(buf, "\n\n\n\n\n\n\n\n", sizeof(buf)-strlen(buf)-1); // Move all text to top + strecat(buf, "\n\n\n\n\n\n\n\n", lastof(buf)); // Move all text to top SDL_ANDROID_SetScreenKeyboardHintMesage(buf); char text[512] = ""; SDL_ANDROID_GetScreenKeyboardTextInput(text, sizeof(text) - 1); /* Invoke Android built-in screen keyboard */ @@ -494,7 +496,7 @@ static const char *IConsoleHistoryAdd(const char *cmd) if (_iconsole_history[0] == NULL || strcmp(_iconsole_history[0], cmd) != 0) { free(_iconsole_history[ICON_HISTORY_SIZE - 1]); memmove(&_iconsole_history[1], &_iconsole_history[0], sizeof(_iconsole_history[0]) * (ICON_HISTORY_SIZE - 1)); - _iconsole_history[0] = strdup(cmd); + _iconsole_history[0] = stredup(cmd); } /* Reset the history position */ diff --git a/src/core/alloc_func.cpp b/src/core/alloc_func.cpp index d2b3a4b6c5..b78023f4d6 100644 --- a/src/core/alloc_func.cpp +++ b/src/core/alloc_func.cpp @@ -11,6 +11,8 @@ #include "../stdafx.h" +#include "../safeguards.h" + /** * Function to exit with an error message after malloc() or calloc() have failed * @param size number of bytes we tried to allocate diff --git a/src/core/bitmath_func.cpp b/src/core/bitmath_func.cpp index af0200bcb8..7763227315 100644 --- a/src/core/bitmath_func.cpp +++ b/src/core/bitmath_func.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "bitmath_func.hpp" +#include "../safeguards.h" + const uint8 _ffb_64[64] = { 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, diff --git a/src/core/geometry_func.cpp b/src/core/geometry_func.cpp index 1a15887380..86f317a372 100644 --- a/src/core/geometry_func.cpp +++ b/src/core/geometry_func.cpp @@ -13,6 +13,8 @@ #include "geometry_func.hpp" #include "math_func.hpp" +#include "../safeguards.h" + /** * Compute bounding box of both dimensions. * @param d1 First dimension. diff --git a/src/core/math_func.cpp b/src/core/math_func.cpp index 8c136c0bb6..d927702083 100644 --- a/src/core/math_func.cpp +++ b/src/core/math_func.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "math_func.hpp" +#include "../safeguards.h" + /** * Compute least common multiple (lcm) of arguments \a a and \a b, the smallest * integer value that is a multiple of both \a a and \a b. diff --git a/src/core/pool_func.cpp b/src/core/pool_func.cpp index fa410850f1..f8ff93cecc 100644 --- a/src/core/pool_func.cpp +++ b/src/core/pool_func.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "pool_type.hpp" +#include "../safeguards.h" + /** * Destructor removes this object from the pool vector and * deletes the vector itself if this was the last item removed. diff --git a/src/core/random_func.cpp b/src/core/random_func.cpp index 8cf21b54f5..5c1d079403 100644 --- a/src/core/random_func.cpp +++ b/src/core/random_func.cpp @@ -13,6 +13,8 @@ #include "random_func.hpp" #include "bitmath_func.hpp" +#include "../safeguards.h" + Randomizer _random, _interactive_random; /** diff --git a/src/cpu.cpp b/src/cpu.cpp index 1a878c1826..c48b8cbd4d 100644 --- a/src/cpu.cpp +++ b/src/cpu.cpp @@ -12,6 +12,8 @@ #include "stdafx.h" #include "core/bitmath_func.hpp" +#include "safeguards.h" + #undef RDTSC_AVAILABLE /* rdtsc for MSC_VER, uses simple inline assembly, or _rdtsc diff --git a/src/crashlog.cpp b/src/crashlog.cpp index 986736bb3e..e8290a7c3f 100644 --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -36,6 +36,8 @@ #include +#include "safeguards.h" + /* static */ const char *CrashLog::message = NULL; /* static */ char *CrashLog::gamelog_buffer = NULL; /* static */ const char *CrashLog::gamelog_last = NULL; @@ -138,14 +140,14 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const BaseGraphics::GetUsedSet() == NULL ? "none" : BaseGraphics::GetUsedSet()->name, BaseGraphics::GetUsedSet() == NULL ? UINT32_MAX : BaseGraphics::GetUsedSet()->version, _current_language == NULL ? "none" : _current_language->file, - _music_driver == NULL ? "none" : _music_driver->GetName(), + MusicDriver::GetInstance() == NULL ? "none" : MusicDriver::GetInstance()->GetName(), BaseMusic::GetUsedSet() == NULL ? "none" : BaseMusic::GetUsedSet()->name, BaseMusic::GetUsedSet() == NULL ? UINT32_MAX : BaseMusic::GetUsedSet()->version, _networking ? (_network_server ? "server" : "client") : "no", - _sound_driver == NULL ? "none" : _sound_driver->GetName(), + SoundDriver::GetInstance() == NULL ? "none" : SoundDriver::GetInstance()->GetName(), BaseSounds::GetUsedSet() == NULL ? "none" : BaseSounds::GetUsedSet()->name, BaseSounds::GetUsedSet() == NULL ? UINT32_MAX : BaseSounds::GetUsedSet()->version, - _video_driver == NULL ? "none" : _video_driver->GetName() + VideoDriver::GetInstance() == NULL ? "none" : VideoDriver::GetInstance()->GetName() ); buffer += seprintf(buffer, last, @@ -482,7 +484,7 @@ bool CrashLog::MakeCrashLog() const */ /* static */ void CrashLog::AfterCrashLogCleanup() { - if (_music_driver != NULL) _music_driver->Stop(); - if (_sound_driver != NULL) _sound_driver->Stop(); - if (_video_driver != NULL) _video_driver->Stop(); + if (MusicDriver::GetInstance() != NULL) MusicDriver::GetInstance()->Stop(); + if (SoundDriver::GetInstance() != NULL) SoundDriver::GetInstance()->Stop(); + if (VideoDriver::GetInstance() != NULL) VideoDriver::GetInstance()->Stop(); } diff --git a/src/currency.cpp b/src/currency.cpp index 52060e21c8..56111022cf 100644 --- a/src/currency.cpp +++ b/src/currency.cpp @@ -20,6 +20,8 @@ #include "table/strings.h" +#include "safeguards.h" + /* exchange rate prefix symbol_pos * | separator | postfix | * | | Euro year | | | name diff --git a/src/date.cpp b/src/date.cpp index 800e4faeaf..9c25af40ee 100644 --- a/src/date.cpp +++ b/src/date.cpp @@ -21,6 +21,8 @@ #include "linkgraph/linkgraph.h" #include "saveload/saveload.h" +#include "safeguards.h" + Year _cur_year; ///< Current year, starting at 0 Month _cur_month; ///< Current month (0..11) Date _date; ///< Current date in days (day counter) diff --git a/src/date_gui.cpp b/src/date_gui.cpp index a0c4bc38c0..520b3e7f92 100644 --- a/src/date_gui.cpp +++ b/src/date_gui.cpp @@ -20,6 +20,8 @@ #include "widgets/dropdown_type.h" #include "widgets/date_widget.h" +#include "safeguards.h" + /** Window to select a date graphically by using dropdowns */ struct SetDateWindow : Window { diff --git a/src/debug.cpp b/src/debug.cpp index d39e434576..f03e9490bd 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -27,6 +27,8 @@ SOCKET _debug_socket = INVALID_SOCKET; #endif /* ENABLE_NETWORK */ +#include "safeguards.h" + int _debug_driver_level; int _debug_grf_level; int _debug_map_level; @@ -117,7 +119,7 @@ static void debug_print(const char *dbg, const char *buf) if (_debug_socket != INVALID_SOCKET) { char buf2[1024 + 32]; - snprintf(buf2, lengthof(buf2), "%sdbg: [%s] %s\n", GetLogPrefix(), dbg, buf); + seprintf(buf2, lastof(buf2), "%sdbg: [%s] %s\n", GetLogPrefix(), dbg, buf); /* Sending out an error when this fails would be nice, however... the error * would have to be send over this failing socket which won't work. */ send(_debug_socket, buf2, (int)strlen(buf2), 0); @@ -167,7 +169,7 @@ void CDECL debug(const char *dbg, const char *format, ...) va_list va; va_start(va, format); - vsnprintf(buf, lengthof(buf), format, va); + vseprintf(buf, lastof(buf), format, va); va_end(va); debug_print(dbg, buf); @@ -242,10 +244,10 @@ const char *GetDebugString() memset(dbgstr, 0, sizeof(dbgstr)); i = debug_level; - snprintf(dbgstr, sizeof(dbgstr), "%s=%d", i->name, *i->level); + seprintf(dbgstr, lastof(dbgstr), "%s=%d", i->name, *i->level); for (i++; i != endof(debug_level); i++) { - snprintf(dbgval, sizeof(dbgval), ", %s=%d", i->name, *i->level); + seprintf(dbgval, lastof(dbgval), ", %s=%d", i->name, *i->level); strecat(dbgstr, dbgval, lastof(dbgstr)); } diff --git a/src/dedicated.cpp b/src/dedicated.cpp index 6342bc2476..ce383ee4a5 100644 --- a/src/dedicated.cpp +++ b/src/dedicated.cpp @@ -20,6 +20,8 @@ FILE *_log_fd = NULL; ///< File to reroute output of a forked OpenTTD to #include +#include "safeguards.h" + #if (defined(SUNOS) && !defined(_LP64) && !defined(_I32LPx)) || defined(__HAIKU__) /* Solaris has, in certain situation, pid_t defined as long, while in other * cases it has it defined as int... this handles all cases nicely. diff --git a/src/depot.cpp b/src/depot.cpp index 9663f042e3..821399fd2b 100644 --- a/src/depot.cpp +++ b/src/depot.cpp @@ -18,6 +18,8 @@ #include "vehicle_gui.h" #include "vehiclelist.h" +#include "safeguards.h" + /** All our depots tucked away in a pool. */ DepotPool _depot_pool("Depot"); INSTANTIATE_POOL_METHODS(Depot) diff --git a/src/depot_cmd.cpp b/src/depot_cmd.cpp index 5fb2b2de2f..5101b7c2ca 100644 --- a/src/depot_cmd.cpp +++ b/src/depot_cmd.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Check whether the given name is globally unique amongst depots. * @param name The name to check. @@ -68,7 +70,7 @@ CommandCost CmdRenameDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 d->name = NULL; MakeDefaultName(d); } else { - d->name = strdup(text); + d->name = stredup(text); } /* Update the orders and depot */ diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 35d44dd54a..b00658254c 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -33,6 +33,8 @@ #include "table/strings.h" +#include "safeguards.h" + /* * Since all depot window sizes aren't the same, we need to modify sizes a little. * It's done with the following arrays of widget indexes. Each of them tells if a widget side should be moved and in what direction. diff --git a/src/disaster_cmd.cpp b/src/disaster_cmd.cpp index a027dd0484..1be0f217a2 100644 --- a/src/disaster_cmd.cpp +++ b/src/disaster_cmd.cpp @@ -47,6 +47,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** Delay counter for considering the next disaster. */ uint16 _disaster_delay; diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index 9dcb3c40d8..a12c5e0d10 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -33,6 +33,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + static void ShowBuildDockStationPicker(Window *parent); static void ShowBuildDocksDepotPicker(Window *parent); diff --git a/src/driver.cpp b/src/driver.cpp index dd03e5e7b6..825c489b97 100644 --- a/src/driver.cpp +++ b/src/driver.cpp @@ -16,17 +16,16 @@ #include "video/video_driver.hpp" #include "string_func.h" -VideoDriver *_video_driver; ///< The currently active video driver. +#include "safeguards.h" + char *_ini_videodriver; ///< The video driver a stored in the configuration file. int _num_resolutions; ///< The number of resolutions. Dimension _resolutions[32]; ///< List of resolutions. Dimension _cur_resolution; ///< The current resolution. bool _rightclick_emulate; ///< Whether right clicking is emulated. -SoundDriver *_sound_driver; ///< The currently active sound driver. char *_ini_sounddriver; ///< The sound driver a stored in the configuration file. -MusicDriver *_music_driver; ///< The currently active music driver. char *_ini_musicdriver; ///< The music driver a stored in the configuration file. char *_ini_blitter; ///< The blitter as stored in the configuration file. @@ -86,9 +85,25 @@ int GetDriverParamInt(const char * const *parm, const char *name, int def) * @param type the type of driver to select * @post Sets the driver so GetCurrentDriver() returns it too. */ -Driver *DriverFactoryBase::SelectDriver(const char *name, Driver::Type type) +void DriverFactoryBase::SelectDriver(const char *name, Driver::Type type) { - if (GetDrivers().size() == 0) return NULL; + if (!DriverFactoryBase::SelectDriverImpl(name, type)) { + StrEmpty(name) ? + usererror("Failed to autoprobe %s driver", GetDriverTypeName(type)) : + usererror("Failed to select requested %s driver '%s'", GetDriverTypeName(type), name); + } +} + +/** + * Find the requested driver and return its class. + * @param name the driver to select. + * @param type the type of driver to select + * @post Sets the driver so GetCurrentDriver() returns it too. + * @return True upon success, otherwise false. + */ +bool DriverFactoryBase::SelectDriverImpl(const char *name, Driver::Type type) +{ + if (GetDrivers().size() == 0) return false; if (StrEmpty(name)) { /* Probe for this driver, but do not fall back to dedicated/null! */ @@ -101,15 +116,18 @@ Driver *DriverFactoryBase::SelectDriver(const char *name, Driver::Type type) if (d->type != type) continue; if (d->priority != priority) continue; + Driver *oldd = *GetActiveDriver(type); Driver *newd = d->CreateInstance(); + *GetActiveDriver(type) = newd; + const char *err = newd->Start(NULL); if (err == NULL) { DEBUG(driver, 1, "Successfully probed %s driver '%s'", GetDriverTypeName(type), d->name); - delete *GetActiveDriver(type); - *GetActiveDriver(type) = newd; - return newd; + delete oldd; + return true; } + *GetActiveDriver(type) = oldd; DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s", GetDriverTypeName(type), d->name, err); delete newd; } @@ -158,7 +176,7 @@ Driver *DriverFactoryBase::SelectDriver(const char *name, Driver::Type type) DEBUG(driver, 1, "Successfully loaded %s driver '%s'", GetDriverTypeName(type), d->name); delete *GetActiveDriver(type); *GetActiveDriver(type) = newd; - return newd; + return true; } usererror("No such %s driver: %s\n", GetDriverTypeName(type), buffer); } @@ -206,7 +224,7 @@ DriverFactoryBase::DriverFactoryBase(Driver::Type type, int priority, const char strecpy(buf, GetDriverTypeName(type), lastof(buf)); strecpy(buf + 5, name, lastof(buf)); - const char *longname = strdup(buf); + const char *longname = stredup(buf); std::pair P = GetDrivers().insert(Drivers::value_type(longname, this)); assert(P.second); diff --git a/src/driver.h b/src/driver.h index a466d67d00..12ca4474d4 100644 --- a/src/driver.h +++ b/src/driver.h @@ -59,6 +59,10 @@ DECLARE_POSTFIX_INCREMENT(Driver::Type) /** Base for all driver factories. */ class DriverFactoryBase { private: + friend class MusicDriver; + friend class SoundDriver; + friend class VideoDriver; + Driver::Type type; ///< The type of driver. int priority; ///< The priority of this factory. const char *name; ///< The name of the drivers of this factory. @@ -97,6 +101,8 @@ private: return driver_type_name[type]; } + static bool SelectDriverImpl(const char *name, Driver::Type type); + protected: DriverFactoryBase(Driver::Type type, int priority, const char *name, const char *description); @@ -114,7 +120,7 @@ public: } } - static Driver *SelectDriver(const char *name, Driver::Type type); + static void SelectDriver(const char *name, Driver::Type type); static char *GetDriversInfo(char *p, const char *last); /** diff --git a/src/economy.cpp b/src/economy.cpp index 5db7061bf9..e36e431478 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -19,6 +19,7 @@ #include "network/network_func.h" #include "ai/ai.hpp" #include "aircraft.h" +#include "train.h" #include "newgrf_engine.h" #include "engine_base.h" #include "ground_vehicle.hpp" @@ -53,6 +54,8 @@ #include "table/strings.h" #include "table/pricebase.h" +#include "safeguards.h" + /* Initialize the cargo payment-pool */ CargoPaymentPool _cargo_payment_pool("CargoPayment"); @@ -1066,9 +1069,9 @@ static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, Ti /* Update station statistics */ if (accepted > 0) { - SetBit(st->goods[cargo_type].acceptance_pickup, GoodsEntry::GES_EVER_ACCEPTED); - SetBit(st->goods[cargo_type].acceptance_pickup, GoodsEntry::GES_CURRENT_MONTH); - SetBit(st->goods[cargo_type].acceptance_pickup, GoodsEntry::GES_ACCEPTED_BIGTICK); + SetBit(st->goods[cargo_type].status, GoodsEntry::GES_EVER_ACCEPTED); + SetBit(st->goods[cargo_type].status, GoodsEntry::GES_CURRENT_MONTH); + SetBit(st->goods[cargo_type].status, GoodsEntry::GES_ACCEPTED_BIGTICK); } /* Update company statistics */ @@ -1240,7 +1243,7 @@ void PrepareUnload(Vehicle *front_v) const GoodsEntry *ge = &st->goods[v->cargo_type]; if (v->cargo_cap > 0 && v->cargo.TotalCount() > 0) { v->cargo.Stage( - HasBit(ge->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE), + HasBit(ge->status, GoodsEntry::GES_ACCEPTANCE), front_v->last_station_visited, next_station, front_v->current_order.GetUnloadType(), ge, front_v->cargo_payment); @@ -1338,21 +1341,135 @@ static void ReserveConsist(Station *st, Vehicle *u, CargoArray *consist_capleft, } /** - * Checks whether an articulated vehicle is empty. - * @param v Vehicle - * @return true if all parts are empty. + * Iterate the articulated parts of a vehicle, also considering the special cases of "normal" + * aircraft and double headed trains. Apply an action to each vehicle and immediately return false + * if that action does so. Otherwise return true. + * @tparam Taction Class of action to be applied. Must implement bool operator()([const] Vehicle *). + * @param v First articulated part. + * @param action Instance of Taction. + * @return false if any of the action invocations returned false, true otherwise. */ -static bool IsArticulatedVehicleEmpty(Vehicle *v) +template +bool IterateVehicleParts(Vehicle *v, Taction action) { - v = v->GetFirstEnginePart(); - - for (; v != NULL; v = v->HasArticulatedPart() ? v->GetNextArticulatedPart() : NULL) { - if (v->cargo.StoredCount() != 0) return false; + for (Vehicle *w = v; w != NULL; + w = w->HasArticulatedPart() ? w->GetNextArticulatedPart() : NULL) { + if (!action(w)) return false; + if (w->type == VEH_TRAIN) { + Train *train = Train::From(w); + if (train->IsMultiheaded() && !action(train->other_multiheaded_part)) return false; + } } - + if (v->type == VEH_AIRCRAFT && Aircraft::From(v)->IsNormalAircraft()) return action(v->Next()); return true; } +/** + * Action to check if a vehicle has no stored cargo. + */ +struct IsEmptyAction +{ + /** + * Checks if the vehicle has stored cargo. + * @param v Vehicle to be checked. + * @return true if v is either empty or has only reserved cargo, false otherwise. + */ + bool operator()(const Vehicle *v) + { + return v->cargo.StoredCount() == 0; + } +}; + +/** + * Refit preparation action. + */ +struct PrepareRefitAction +{ + CargoArray &consist_capleft; ///< Capacities left in the consist. + uint32 &refit_mask; ///< Bitmask of possible refit cargoes. + + /** + * Create a refit preparation action. + * @param consist_capleft Capacities left in consist, to be updated here. + * @param refit_mask Refit mask to be constructed from refit information of vehicles. + */ + PrepareRefitAction(CargoArray &consist_capleft, uint32 &refit_mask) : + consist_capleft(consist_capleft), refit_mask(refit_mask) {} + + /** + * Prepares for refitting of a vehicle, subtracting its free capacity from consist_capleft and + * adding the cargoes it can refit to to the refit mask. + * @param v The vehicle to be refitted. + * @return true. + */ + bool operator()(const Vehicle *v) + { + this->consist_capleft[v->cargo_type] -= v->cargo_cap - v->cargo.ReservedCount(); + this->refit_mask |= EngInfo(v->engine_type)->refit_mask; + return true; + } +}; + +/** + * Action for returning reserved cargo. + */ +struct ReturnCargoAction +{ + Station *st; ///< Station to give the returned cargo to. + StationID next_hop; ///< Next hop the cargo should be assigned to. + + /** + * Construct a cargo return action. + * @param st Station to give the returned cargo to. + * @param next_one Next hop the cargo should be assigned to. + */ + ReturnCargoAction(Station *st, StationID next_one) : st(st), next_hop(next_one) {} + + /** + * Return all reserved cargo from a vehicle. + * @param v Vehicle to return cargo from. + * @return true. + */ + bool operator()(Vehicle *v) + { + v->cargo.Return(UINT_MAX, &this->st->goods[v->cargo_type].cargo, this->next_hop); + return true; + } +}; + +/** + * Action for finalizing a refit. + */ +struct FinalizeRefitAction +{ + CargoArray &consist_capleft; ///< Capacities left in the consist. + Station *st; ///< Station to reserve cargo from. + StationIDStack &next_station; ///< Next hops to reserve cargo for. + + /** + * Create a finalizing action. + * @param consist_capleft Capacities left in the consist. + * @param st Station to reserve cargo from. + * @param next_station Next hops to reserve cargo for. + */ + FinalizeRefitAction(CargoArray &consist_capleft, Station *st, StationIDStack &next_station) : + consist_capleft(consist_capleft), st(st), next_station(next_station) {} + + /** + * Reserve cargo from the station and update the remaining consist capacities with the + * vehicle's remaining free capacity. + * @param v Vehicle to be finalized. + * @return true. + */ + bool operator()(Vehicle *v) + { + this->st->goods[v->cargo_type].cargo.Reserve(v->cargo_cap - v->cargo.RemainingCount(), + &v->cargo, st->xy, next_station); + this->consist_capleft[v->cargo_type] += v->cargo_cap - v->cargo.RemainingCount(); + return true; + } +}; + /** * Refit a vehicle in a station. * @param v Vehicle to be refitted. @@ -1363,32 +1480,15 @@ static bool IsArticulatedVehicleEmpty(Vehicle *v) */ static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station *st, StationIDStack next_station, CargoID new_cid) { - if (v->type == VEH_AIRCRAFT && (!Aircraft::From(v)->IsNormalAircraft() || v->Next()->cargo.StoredCount() > 0)) { - return; - } - - bool is_normal_aircraft = (v->type == VEH_AIRCRAFT && Aircraft::From(v)->IsNormalAircraft()); Vehicle *v_start = v->GetFirstEnginePart(); - - /* Remove old capacity from consist capacity */ - consist_capleft[v_start->cargo_type] -= (v_start->cargo_cap - v_start->cargo.ReservedCount()); - for (Vehicle *w = v_start; w->HasArticulatedPart(); ) { - w = w->GetNextArticulatedPart(); - consist_capleft[w->cargo_type] -= (w->cargo_cap - w->cargo.ReservedCount()); - } - if (is_normal_aircraft) { - consist_capleft[v->Next()->cargo_type] -= (v->Next()->cargo_cap - v->Next()->cargo.ReservedCount()); - } + if (!IterateVehicleParts(v_start, IsEmptyAction())) return; Backup cur_company(_current_company, v->owner, FILE_LINE); - /* Check if all articulated parts are empty and collect refit mask. */ uint32 refit_mask = v->GetEngine()->info.refit_mask; - Vehicle *w = v_start; - while (w->HasArticulatedPart()) { - w = w->GetNextArticulatedPart(); - refit_mask |= EngInfo(w->engine_type)->refit_mask; - } + + /* Remove old capacity from consist capacity and collect refit mask. */ + IterateVehicleParts(v_start, PrepareRefitAction(consist_capleft, refit_mask)); if (new_cid == CT_AUTO_REFIT) { /* Get a refittable cargo type with waiting cargo for next_station or INVALID_STATION. */ @@ -1401,8 +1501,13 @@ static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station DoCommand(v_start->tile, v_start->index, cid | 1U << 6 | 0xFF << 8 | 1U << 16, DC_QUERY_COST, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. /* Try to balance different loadable cargoes between parts of the consist, so that * all of them can be loaded. Avoid a situation where all vehicles suddenly switch - * to the first loadable cargo for which there is only one packet. */ - if (_returned_refit_capacity > 0 && consist_capleft[cid] < consist_capleft[new_cid]) { + * to the first loadable cargo for which there is only one packet. If the capacities + * are equal refit to the cargo of which most is available. This is important for + * consists of only a single vehicle as those will generally have a consist_capleft + * of 0 for all cargoes. */ + if (_returned_refit_capacity > 0 && (consist_capleft[cid] < consist_capleft[new_cid] || + (consist_capleft[cid] == consist_capleft[new_cid] && + st->goods[cid].cargo.AvailableCount() > st->goods[new_cid].cargo.AvailableCount()))) { new_cid = cid; } } @@ -1411,35 +1516,38 @@ static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station /* Refit if given a valid cargo. */ if (new_cid < NUM_CARGO && new_cid != v_start->cargo_type) { - StationID next_one = StationIDStack(next_station).Pop(); - v_start->cargo.Return(UINT_MAX, &st->goods[v_start->cargo_type].cargo, next_one); - for (w = v_start; w->HasArticulatedPart();) { - w = w->GetNextArticulatedPart(); - w->cargo.Return(UINT_MAX, &st->goods[w->cargo_type].cargo, next_one); - } - if (is_normal_aircraft) { - v->Next()->cargo.Return(UINT_MAX, &st->goods[v->Next()->cargo_type].cargo, next_one); - } + IterateVehicleParts(v_start, ReturnCargoAction(st, StationIDStack(next_station).Pop())); CommandCost cost = DoCommand(v_start->tile, v_start->index, new_cid | 1U << 6 | 0xFF << 8 | 1U << 16, DC_EXEC, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. if (cost.Succeeded()) v->First()->profit_this_year -= cost.GetCost() << 8; } /* Add new capacity to consist capacity and reserve cargo */ - w = v_start; - do { - st->goods[w->cargo_type].cargo.Reserve(w->cargo_cap - w->cargo.RemainingCount(), &w->cargo, st->xy, next_station); - consist_capleft[w->cargo_type] += w->cargo_cap - w->cargo.RemainingCount(); - w = w->HasArticulatedPart() ? w->GetNextArticulatedPart() : NULL; - } while (w != NULL); - if (is_normal_aircraft) { - w = v->Next(); - st->goods[w->cargo_type].cargo.Reserve(w->cargo_cap - w->cargo.RemainingCount(), &w->cargo, st->xy, next_station); - consist_capleft[w->cargo_type] += w->cargo_cap - w->cargo.RemainingCount(); - } + IterateVehicleParts(v_start, FinalizeRefitAction(consist_capleft, st, next_station)); cur_company.Restore(); } +/** + * Update the vehicle's load_unload_ticks, the time it will wait until it tries to load or unload + * again. Adjust for overhang of trains and set it at least to 1. + * @param front The vehicle to be updated. + * @param st The station the vehicle is loading at. + * @param ticks The time it would normally wait, based on cargo loaded and unloaded. + */ +static void UpdateLoadUnloadTicks(Vehicle *front, const Station *st, int ticks) +{ + if (front->type == VEH_TRAIN) { + /* Each platform tile is worth 2 rail vehicles. */ + int overhang = front->GetGroundVehicleCache()->cached_total_length - st->GetPlatformLength(front->tile) * TILE_SIZE; + if (overhang > 0) { + ticks <<= 1; + ticks += (overhang * ticks) / 8; + } + } + /* Always wait at least 1, otherwise we'll wait 'infinitively' long. */ + front->load_unload_ticks = max(1, ticks); +} + /** * Loads/unload the vehicle if possible. * @param front the vehicle to be (un)loaded @@ -1472,7 +1580,7 @@ static void LoadUnloadVehicle(Vehicle *front) return; } - int unloading_time = 0; + int new_load_unload_ticks = 0; bool dirty_vehicle = false; bool dirty_station = false; @@ -1505,7 +1613,7 @@ static void LoadUnloadVehicle(Vehicle *front) payment->SetCargo(v->cargo_type); - if (!HasBit(ge->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE) && v->cargo.ActionCount(VehicleCargoList::MTA_DELIVER) > 0) { + if (!HasBit(ge->status, GoodsEntry::GES_ACCEPTANCE) && v->cargo.ActionCount(VehicleCargoList::MTA_DELIVER) > 0) { /* The station does not accept our goods anymore. */ if (front->current_order.GetUnloadType() & (OUFB_TRANSFER | OUFB_UNLOAD)) { /* Transfer instead of delivering. */ @@ -1530,14 +1638,24 @@ static void LoadUnloadVehicle(Vehicle *front) } } - /* Mark the station dirty if we transfer, but not if we only deliver. */ - dirty_station = v->cargo.ActionCount(VehicleCargoList::MTA_TRANSFER) > 0; + if (v->cargo.ActionCount(VehicleCargoList::MTA_TRANSFER) > 0) { + /* Mark the station dirty if we transfer, but not if we only deliver. */ + dirty_station = true; + + if (!ge->HasRating()) { + /* Upon transfering cargo, make sure the station has a rating. Fake a pickup for the + * first unload to prevent the cargo from quickly decaying after the initial drop. */ + ge->time_since_pickup = 0; + SetBit(ge->status, GoodsEntry::GES_RATING); + } + } + amount_unloaded = v->cargo.Unload(amount_unloaded, &ge->cargo, payment); remaining = v->cargo.UnloadCount() > 0; if (amount_unloaded > 0) { dirty_vehicle = true; anything_unloaded = true; - unloading_time += amount_unloaded; + new_load_unload_ticks += amount_unloaded; /* Deliver goods to the station */ st->time_since_unload = 0; @@ -1557,7 +1675,7 @@ static void LoadUnloadVehicle(Vehicle *front) if (front->current_order.GetLoadType() & OLFB_NO_LOAD || HasBit(front->vehicle_flags, VF_STOP_LOADING)) continue; /* This order has a refit, if this is the first vehicle part carrying cargo and the whole vehicle is empty, try refitting. */ - if (front->current_order.IsRefit() && artic_part == 1 && IsArticulatedVehicleEmpty(v)) { + if (front->current_order.IsRefit() && artic_part == 1) { HandleStationRefit(v, consist_capleft, st, next_station, front->current_order.GetRefitCargo()); ge = &st->goods[v->cargo_type]; } @@ -1631,7 +1749,7 @@ static void LoadUnloadVehicle(Vehicle *front) AirportAnimationTrigger(st, AAT_STATION_CARGO_TAKEN, v->cargo_type); } - unloading_time += loaded; + new_load_unload_ticks += loaded; dirty_vehicle = dirty_station = true; } @@ -1663,15 +1781,18 @@ static void LoadUnloadVehicle(Vehicle *front) * on the vehicle type - the values here are those found in TTDPatch */ const uint gradual_loading_wait_time[] = { 40, 20, 10, 20 }; - unloading_time = gradual_loading_wait_time[front->type]; + new_load_unload_ticks = gradual_loading_wait_time[front->type]; } /* We loaded less cargo than possible for all cargo types and it's not full * load and we're not supposed to wait any longer: stop loading. */ if (!anything_unloaded && full_load_amount == 0 && reservation_left == 0 && !(front->current_order.GetLoadType() & OLFB_FULL_LOAD) && - front->current_order_time >= (uint)max(front->current_order.wait_time - front->lateness_counter, 0)) { + front->current_order_time >= (uint)max(front->current_order.GetTimetabledWait() - front->lateness_counter, 0)) { SetBit(front->vehicle_flags, VF_STOP_LOADING); } + + UpdateLoadUnloadTicks(front, st, new_load_unload_ticks); } else { + UpdateLoadUnloadTicks(front, st, 20); // We need the ticks for link refreshing. bool finished_loading = true; if (front->current_order.GetLoadType() & OLFB_FULL_LOAD) { if (front->current_order.GetLoadType() == OLF_FULL_LOAD_ANY) { @@ -1690,22 +1811,12 @@ static void LoadUnloadVehicle(Vehicle *front) * along them. Otherwise the vehicle could wait for cargo * indefinitely if it hasn't visited the other links yet, or if the * links die while it's loading. */ - if (!finished_loading) LinkRefresher::Run(front); + if (!finished_loading) LinkRefresher::Run(front, true, true); } - unloading_time = 20; SB(front->vehicle_flags, VF_LOADING_FINISHED, 1, finished_loading); } - if (front->type == VEH_TRAIN) { - /* Each platform tile is worth 2 rail vehicles. */ - int overhang = front->GetGroundVehicleCache()->cached_total_length - st->GetPlatformLength(front->tile) * TILE_SIZE; - if (overhang > 0) { - unloading_time <<= 1; - unloading_time += (overhang * unloading_time) / 8; - } - } - /* Calculate the loading indicator fill percent and display * In the Game Menu do not display indicators * If _settings_client.gui.loading_indicators == 2, show indicators (bool can be promoted to int as 0 or 1 - results in 2 > 0,1 ) @@ -1722,9 +1833,6 @@ static void LoadUnloadVehicle(Vehicle *front) } } - /* Always wait at least 1, otherwise we'll wait 'infinitively' long. */ - front->load_unload_ticks = max(1, unloading_time); - if (completely_emptied) { /* Make sure the vehicle is marked dirty, since we need to update the NewGRF * properties such as weight, power and TE whenever the trigger runs. */ @@ -1740,6 +1848,7 @@ static void LoadUnloadVehicle(Vehicle *front) if (dirty_station) { st->MarkTilesDirty(true); SetWindowDirty(WC_STATION_VIEW, last_visited); + InvalidateWindowData(WC_STATION_LIST, last_visited); } } diff --git a/src/effectvehicle.cpp b/src/effectvehicle.cpp index a196c52d64..48f3e6cdf0 100644 --- a/src/effectvehicle.cpp +++ b/src/effectvehicle.cpp @@ -19,6 +19,8 @@ #include "effectvehicle_func.h" #include "effectvehicle_base.h" +#include "safeguards.h" + static void ChimneySmokeInit(EffectVehicle *v) { diff --git a/src/elrail.cpp b/src/elrail.cpp index a431837920..8116bff2c6 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -67,6 +67,8 @@ #include "table/elrail_data.h" +#include "safeguards.h" + /** * Get the tile location group of a tile. * @param t The tile to get the tile location group of. diff --git a/src/engine.cpp b/src/engine.cpp index 700475c1b4..362bd014af 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -35,6 +35,8 @@ #include "table/strings.h" #include "table/engines.h" +#include "safeguards.h" + EnginePool _engine_pool("Engine"); INSTANTIATE_POOL_METHODS(Engine) @@ -1025,7 +1027,7 @@ CommandCost CmdRenameEngine(TileIndex tile, DoCommandFlag flags, uint32 p1, uint if (reset) { e->name = NULL; } else { - e->name = strdup(text); + e->name = stredup(text); } MarkWholeScreenDirty(); diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 6ee47692d4..3ac261d15a 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -25,6 +25,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Return the category of an engine. * @param engine Engine to examine. diff --git a/src/error_gui.cpp b/src/error_gui.cpp index 1914826b7e..8d40ebbbbe 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -29,6 +29,8 @@ #include "table/strings.h" #include +#include "safeguards.h" + static const NWidgetPart _nested_errmsg_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_RED), @@ -75,7 +77,7 @@ ErrorMessageData::ErrorMessageData(const ErrorMessageData &data) *this = data; for (size_t i = 0; i < lengthof(this->strings); i++) { if (this->strings[i] != NULL) { - this->strings[i] = strdup(this->strings[i]); + this->strings[i] = stredup(this->strings[i]); this->decode_params[i] = (size_t)this->strings[i]; } } @@ -156,7 +158,7 @@ void ErrorMessageData::SetDParam(uint n, uint64 v) void ErrorMessageData::SetDParamStr(uint n, const char *str) { free(this->strings[n]); - this->strings[n] = strdup(str); + this->strings[n] = stredup(str); } /** Define a queue with errors. */ diff --git a/src/fileio.cpp b/src/fileio.cpp index 9c400634ef..94c6adcbad 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -32,6 +32,8 @@ #include "basedir.h" #endif +#include "safeguards.h" + /** Size of the #Fio data buffer. */ #define FIO_BUFFER_SIZE 512 @@ -263,7 +265,7 @@ void FioOpenFile(int slot, const char *filename, Subdirectory subdir) /* Store the filename without path and extension */ const char *t = strrchr(filename, PATHSEPCHAR); - _fio.shortnames[slot] = strdup(t == NULL ? filename : t); + _fio.shortnames[slot] = stredup(t == NULL ? filename : t); char *t2 = strrchr(_fio.shortnames[slot], '.'); if (t2 != NULL) *t2 = '\0'; strtolower(_fio.shortnames[slot]); @@ -346,30 +348,30 @@ void FioFCloseFile(FILE *f) fclose(f); } -char *FioGetFullPath(char *buf, size_t buflen, Searchpath sp, Subdirectory subdir, const char *filename) +char *FioGetFullPath(char *buf, const char *last, Searchpath sp, Subdirectory subdir, const char *filename) { assert(subdir < NUM_SUBDIRS); assert(sp < NUM_SEARCHPATHS); - snprintf(buf, buflen, "%s%s%s", _searchpaths[sp], _subdirs[subdir], filename); + seprintf(buf, last, "%s%s%s", _searchpaths[sp], _subdirs[subdir], filename); return buf; } /** * Find a path to the filename in one of the search directories. * @param buf [out] Destination buffer for the path. - * @param buflen Length of the destination buffer. + * @param last End of the destination buffer. * @param subdir Subdirectory to try. * @param filename Filename to look for. * @return \a buf containing the path if the path was found, else \c NULL. */ -char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char *filename) +char *FioFindFullPath(char *buf, const char *last, Subdirectory subdir, const char *filename) { Searchpath sp; assert(subdir < NUM_SUBDIRS); FOR_ALL_SEARCHPATHS(sp) { - FioGetFullPath(buf, buflen, sp, subdir, filename); + FioGetFullPath(buf, last, sp, subdir, filename); if (FileExists(buf)) return buf; #if !defined(WIN32) /* Be, as opening files, aware that sometimes the filename @@ -382,27 +384,27 @@ char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char return NULL; } -char *FioAppendDirectory(char *buf, size_t buflen, Searchpath sp, Subdirectory subdir) +char *FioAppendDirectory(char *buf, const char *last, Searchpath sp, Subdirectory subdir) { assert(subdir < NUM_SUBDIRS); assert(sp < NUM_SEARCHPATHS); - snprintf(buf, buflen, "%s%s", _searchpaths[sp], _subdirs[subdir]); + seprintf(buf, last, "%s%s", _searchpaths[sp], _subdirs[subdir]); return buf; } -char *FioGetDirectory(char *buf, size_t buflen, Subdirectory subdir) +char *FioGetDirectory(char *buf, const char *last, Subdirectory subdir) { Searchpath sp; /* Find and return the first valid directory */ FOR_ALL_SEARCHPATHS(sp) { - char *ret = FioAppendDirectory(buf, buflen, sp, subdir); + char *ret = FioAppendDirectory(buf, last, sp, subdir); if (FileExists(buf)) return ret; } /* Could not find the directory, fall back to a base path */ - ttd_strlcpy(buf, _personal_dir, buflen); + strecpy(buf, _personal_dir, last); return buf; } @@ -423,7 +425,7 @@ static FILE *FioFOpenFileSp(const char *filename, const char *mode, Searchpath s if (subdir == NO_DIRECTORY) { strecpy(buf, filename, lastof(buf)); } else { - snprintf(buf, lengthof(buf), "%s%s%s", _searchpaths[sp], _subdirs[subdir], filename); + seprintf(buf, lastof(buf), "%s%s%s", _searchpaths[sp], _subdirs[subdir], filename); } #if defined(WIN32) @@ -552,7 +554,7 @@ static void FioCreateDirectory(const char *name) mkdir(OTTD2FS(name)); #elif defined(__MORPHOS__) || defined(__AMIGAOS__) char buf[MAX_PATH]; - ttd_strlcpy(buf, name, MAX_PATH); + strecpy(buf, name, lastof(buf)); size_t len = strlen(name) - 1; if (buf[len] == '/') { @@ -568,20 +570,19 @@ static void FioCreateDirectory(const char *name) /** * Appends, if necessary, the path separator character to the end of the string. * It does not add the path separator to zero-sized strings. - * @param buf string to append the separator to - * @param buflen the length of \a buf. + * @param buf string to append the separator to + * @param last the last element of \a buf. * @return true iff the operation succeeded */ -bool AppendPathSeparator(char *buf, size_t buflen) +bool AppendPathSeparator(char *buf, const char *last) { size_t s = strlen(buf); /* Length of string + path separator + '\0' */ if (s != 0 && buf[s - 1] != PATHSEPCHAR) { - if (s + 2 >= buflen) return false; + if (&buf[s] >= last) return false; - buf[s] = PATHSEPCHAR; - buf[s + 1] = '\0'; + seprintf(buf + s, last, "%c", PATHSEPCHAR); } return true; @@ -596,7 +597,8 @@ bool AppendPathSeparator(char *buf, size_t buflen) char *BuildWithFullPath(const char *dir) { char *dest = MallocT(MAX_PATH); - ttd_strlcpy(dest, dir, MAX_PATH); + char *last = dest + MAX_PATH - 1; + strecpy(dest, dir, last); /* Check if absolute or relative path */ const char *s = strchr(dest, PATHSEPCHAR); @@ -604,10 +606,10 @@ char *BuildWithFullPath(const char *dir) /* Add absolute path */ if (s == NULL || dest != s) { if (getcwd(dest, MAX_PATH) == NULL) *dest = '\0'; - AppendPathSeparator(dest, MAX_PATH); - ttd_strlcat(dest, dir, MAX_PATH); + AppendPathSeparator(dest, last); + strecat(dest, dir, last); } - AppendPathSeparator(dest, MAX_PATH); + AppendPathSeparator(dest, last); return dest; } @@ -757,7 +759,7 @@ bool TarScanner::AddFile(const char *filename, size_t basepath_length, const cha * been given read access. */ if (f == NULL) return false; - const char *dupped_filename = strdup(filename); + const char *dupped_filename = stredup(filename); _tar_list[this->subdir][filename].filename = dupped_filename; _tar_list[this->subdir][filename].dirname = NULL; @@ -793,15 +795,15 @@ bool TarScanner::AddFile(const char *filename, size_t basepath_length, const cha /* The prefix contains the directory-name */ if (th.prefix[0] != '\0') { - ttd_strlcpy(name, th.prefix, lengthof(name)); - ttd_strlcat(name, PATHSEP, lengthof(name)); + strecpy(name, th.prefix, lastof(name)); + strecat(name, PATHSEP, lastof(name)); } /* Copy the name of the file in a safe way at the end of 'name' */ - ttd_strlcat(name, th.name, lengthof(name)); + strecat(name, th.name, lastof(name)); /* Calculate the size of the file.. for some strange reason this is stored as a string */ - ttd_strlcpy(buf, th.size, lengthof(buf)); + strecpy(buf, th.size, lastof(buf)); size_t skip = strtoul(buf, &end, 8); switch (th.typeflag) { @@ -830,7 +832,7 @@ bool TarScanner::AddFile(const char *filename, size_t basepath_length, const cha case '1': // hard links case '2': { // symbolic links /* Copy the destination of the link in a safe way at the end of 'linkname' */ - ttd_strlcpy(link, th.linkname, lengthof(link)); + strecpy(link, th.linkname, lastof(link)); if (strlen(name) == 0 || strlen(link) == 0) break; @@ -846,36 +848,45 @@ bool TarScanner::AddFile(const char *filename, size_t basepath_length, const cha /* Process relative path. * Note: The destination of links must not contain any directory-links. */ - ttd_strlcpy(dest, name, lengthof(dest)); + strecpy(dest, name, lastof(dest)); char *destpos = strrchr(dest, PATHSEPCHAR); if (destpos == NULL) destpos = dest; *destpos = '\0'; char *pos = link; while (*pos != '\0') { - char *next = strchr(link, PATHSEPCHAR); - if (next == NULL) next = pos + strlen(pos); + char *next = strchr(pos, PATHSEPCHAR); + if (next == NULL) { + next = pos + strlen(pos); + } else { + /* Terminate the substring up to the path separator character. */ + *next++= '\0'; + } - /* Skip '.' (current dir) */ - if (next != pos + 1 || pos[0] != '.') { - if (next == pos + 2 && pos[0] == '.' && pos[1] == '.') { - /* level up */ - if (dest[0] == '\0') { - DEBUG(misc, 1, "Ignoring link pointing outside of data directory: %s -> %s", name, link); - break; - } - - /* Truncate 'dest' after last PATHSEPCHAR. - * This assumes that the truncated part is a real directory and not a link. */ - destpos = strrchr(dest, PATHSEPCHAR); - if (destpos == NULL) destpos = dest; - } else { - /* Append at end of 'dest' */ - if (destpos != dest) *(destpos++) = PATHSEPCHAR; - strncpy(destpos, pos, next - pos); // Safe as we do '\0'-termination ourselves - destpos += next - pos; + if (strcmp(pos, ".") == 0) { + /* Skip '.' (current dir) */ + } else if (strcmp(pos, "..") == 0) { + /* level up */ + if (dest[0] == '\0') { + DEBUG(misc, 1, "Ignoring link pointing outside of data directory: %s -> %s", name, link); + break; } + + /* Truncate 'dest' after last PATHSEPCHAR. + * This assumes that the truncated part is a real directory and not a link. */ + destpos = strrchr(dest, PATHSEPCHAR); + if (destpos == NULL) destpos = dest; *destpos = '\0'; + } else { + /* Append at end of 'dest' */ + if (destpos != dest) destpos = strecpy(destpos, PATHSEP, lastof(dest)); + destpos = strecpy(destpos, pos, lastof(dest)); + } + + if (destpos >= lastof(dest)) { + DEBUG(misc, 0, "The length of a link in tar-file '%s' is too large (malformed?)", filename); + fclose(f); + return false; } pos = next; @@ -894,7 +905,7 @@ bool TarScanner::AddFile(const char *filename, size_t basepath_length, const cha /* Store the first directory name we detect */ DEBUG(misc, 6, "Found dir in tar: %s", name); - if (_tar_list[this->subdir][filename].dirname == NULL) _tar_list[this->subdir][filename].dirname = strdup(name); + if (_tar_list[this->subdir][filename].dirname == NULL) _tar_list[this->subdir][filename].dirname = stredup(name); break; default: @@ -1074,8 +1085,8 @@ bool DoScanWorkingDirectory() if (_searchpaths[SP_PERSONAL_DIR] == NULL) return true; char tmp[MAX_PATH]; - snprintf(tmp, lengthof(tmp), "%s%s", _searchpaths[SP_WORKING_DIR], PERSONAL_DIR); - AppendPathSeparator(tmp, MAX_PATH); + seprintf(tmp, lastof(tmp), "%s%s", _searchpaths[SP_WORKING_DIR], PERSONAL_DIR); + AppendPathSeparator(tmp, lastof(tmp)); return strcmp(tmp, _searchpaths[SP_PERSONAL_DIR]) != 0; } @@ -1088,12 +1099,12 @@ void DetermineBasePaths(const char *exe) char tmp[MAX_PATH]; #if defined(WITH_XDG_BASEDIR) && defined(WITH_PERSONAL_DIR) const char *xdg_data_home = xdgDataHome(NULL); - snprintf(tmp, MAX_PATH, "%s" PATHSEP "%s", xdg_data_home, + seprintf(tmp, lastof(tmp), "%s" PATHSEP "%s", xdg_data_home, PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR); free(xdg_data_home); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_PERSONAL_DIR_XDG] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_PERSONAL_DIR_XDG] = stredup(tmp); #endif #if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2) || !defined(WITH_PERSONAL_DIR) _searchpaths[SP_PERSONAL_DIR] = NULL; @@ -1101,7 +1112,7 @@ void DetermineBasePaths(const char *exe) #ifdef __HAIKU__ BPath path; find_directory(B_USER_SETTINGS_DIRECTORY, &path); - const char *homedir = strdup(path.Path()); + const char *homedir = stredup(path.Path()); #else /* getenv is highly unsafe; duplicate it as soon as possible, * or at least before something else touches the environment @@ -1109,21 +1120,21 @@ void DetermineBasePaths(const char *exe) * unvalidated data we rather not want internally. */ const char *homedir = getenv("HOME"); if (homedir != NULL) { - homedir = strndup(homedir, MAX_PATH); + homedir = stredup(homedir); } if (homedir == NULL) { const struct passwd *pw = getpwuid(getuid()); - homedir = (pw == NULL) ? NULL : strdup(pw->pw_dir); + homedir = (pw == NULL) ? NULL : stredup(pw->pw_dir); } #endif if (homedir != NULL) { ValidateString(homedir); - snprintf(tmp, MAX_PATH, "%s" PATHSEP "%s", homedir, PERSONAL_DIR); - AppendPathSeparator(tmp, MAX_PATH); + seprintf(tmp, lastof(tmp), "%s" PATHSEP "%s", homedir, PERSONAL_DIR); + AppendPathSeparator(tmp, lastof(tmp)); - _searchpaths[SP_PERSONAL_DIR] = strdup(tmp); + _searchpaths[SP_PERSONAL_DIR] = stredup(tmp); free(homedir); } else { _searchpaths[SP_PERSONAL_DIR] = NULL; @@ -1131,9 +1142,9 @@ void DetermineBasePaths(const char *exe) #endif #if defined(WITH_SHARED_DIR) - snprintf(tmp, MAX_PATH, "%s", SHARED_DIR); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_SHARED_DIR] = strdup(tmp); + seprintf(tmp, lastof(tmp), "%s", SHARED_DIR); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_SHARED_DIR] = stredup(tmp); #else _searchpaths[SP_SHARED_DIR] = NULL; #endif @@ -1142,8 +1153,8 @@ void DetermineBasePaths(const char *exe) _searchpaths[SP_WORKING_DIR] = NULL; #else if (getcwd(tmp, MAX_PATH) == NULL) *tmp = '\0'; - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_WORKING_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_WORKING_DIR] = stredup(tmp); #endif _do_scan_working_directory = DoScanWorkingDirectory(); @@ -1151,8 +1162,8 @@ void DetermineBasePaths(const char *exe) /* Change the working directory to that one of the executable */ if (ChangeWorkingDirectoryToExecutable(exe)) { if (getcwd(tmp, MAX_PATH) == NULL) *tmp = '\0'; - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_BINARY_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_BINARY_DIR] = stredup(tmp); } else { _searchpaths[SP_BINARY_DIR] = NULL; } @@ -1167,9 +1178,9 @@ void DetermineBasePaths(const char *exe) #if defined(__MORPHOS__) || defined(__AMIGA__) || defined(DOS) || defined(OS2) _searchpaths[SP_INSTALLATION_DIR] = NULL; #else - snprintf(tmp, MAX_PATH, "%s", GLOBAL_DATA_DIR); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_INSTALLATION_DIR] = strdup(tmp); + seprintf(tmp, lastof(tmp), "%s", GLOBAL_DATA_DIR); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_INSTALLATION_DIR] = stredup(tmp); #endif #ifdef WITH_COCOA extern void cocoaSetApplicationBundleDir(); @@ -1196,11 +1207,11 @@ void DeterminePaths(const char *exe) char config_home[MAX_PATH]; const char *xdg_config_home = xdgConfigHome(NULL); - snprintf(config_home, MAX_PATH, "%s" PATHSEP "%s", xdg_config_home, + seprintf(config_home, lastof(config_home), "%s" PATHSEP "%s", xdg_config_home, PERSONAL_DIR[0] == '.' ? &PERSONAL_DIR[1] : PERSONAL_DIR); free(xdg_config_home); - AppendPathSeparator(config_home, MAX_PATH); + AppendPathSeparator(config_home, lastof(config_home)); #endif Searchpath sp; @@ -1211,7 +1222,7 @@ void DeterminePaths(const char *exe) char *config_dir; if (_config_file != NULL) { - config_dir = strdup(_config_file); + config_dir = stredup(_config_file); char *end = strrchr(config_dir, PATHSEPCHAR); if (end == NULL) { config_dir[0] = '\0'; @@ -1220,10 +1231,10 @@ void DeterminePaths(const char *exe) } } else { char personal_dir[MAX_PATH]; - if (FioFindFullPath(personal_dir, lengthof(personal_dir), BASE_DIR, "openttd.cfg") != NULL) { + if (FioFindFullPath(personal_dir, lastof(personal_dir), BASE_DIR, "openttd.cfg") != NULL) { char *end = strrchr(personal_dir, PATHSEPCHAR); if (end != NULL) end[1] = '\0'; - config_dir = strdup(personal_dir); + config_dir = stredup(personal_dir); _config_file = str_fmt("%sopenttd.cfg", config_dir); } else { #if defined(WITH_XDG_BASEDIR) && defined(WITH_PERSONAL_DIR) @@ -1237,7 +1248,7 @@ void DeterminePaths(const char *exe) config_dir = NULL; for (uint i = 0; i < lengthof(new_openttd_cfg_order); i++) { if (IsValidSearchPath(new_openttd_cfg_order[i])) { - config_dir = strdup(_searchpaths[new_openttd_cfg_order[i]]); + config_dir = stredup(_searchpaths[new_openttd_cfg_order[i]]); break; } } @@ -1416,13 +1427,13 @@ static uint ScanPath(FileScanner *fs, const char *extension, const char *path, s if (!FiosIsValidFile(path, dirent, &sb)) continue; - snprintf(filename, lengthof(filename), "%s%s", path, d_name); + seprintf(filename, lastof(filename), "%s%s", path, d_name); if (S_ISDIR(sb.st_mode)) { /* Directory */ if (!recursive) continue; if (strcmp(d_name, ".") == 0 || strcmp(d_name, "..") == 0) continue; - if (!AppendPathSeparator(filename, lengthof(filename))) continue; + if (!AppendPathSeparator(filename, lastof(filename))) continue; num += ScanPath(fs, extension, filename, basepath_length, recursive); } else if (S_ISREG(sb.st_mode)) { /* File */ @@ -1473,7 +1484,7 @@ uint FileScanner::Scan(const char *extension, Subdirectory sd, bool tars, bool r /* Don't search in the working directory */ if (sp == SP_WORKING_DIR && !_do_scan_working_directory) continue; - FioAppendDirectory(path, MAX_PATH, sp, sd); + FioAppendDirectory(path, lastof(path), sp, sd); num += ScanPath(this, extension, path, strlen(path), recursive); } @@ -1509,6 +1520,6 @@ uint FileScanner::Scan(const char *extension, const char *directory, bool recurs { char path[MAX_PATH]; strecpy(path, directory, lastof(path)); - if (!AppendPathSeparator(path, lengthof(path))) return 0; + if (!AppendPathSeparator(path, lastof(path))) return 0; return ScanPath(this, extension, path, strlen(path), recursive); } diff --git a/src/fileio_func.h b/src/fileio_func.h index 449ba51fe5..443460b2d3 100644 --- a/src/fileio_func.h +++ b/src/fileio_func.h @@ -51,15 +51,15 @@ static inline bool IsValidSearchPath(Searchpath sp) void FioFCloseFile(FILE *f); FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir, size_t *filesize = NULL); bool FioCheckFileExists(const char *filename, Subdirectory subdir); -char *FioGetFullPath(char *buf, size_t buflen, Searchpath sp, Subdirectory subdir, const char *filename); -char *FioFindFullPath(char *buf, size_t buflen, Subdirectory subdir, const char *filename); -char *FioAppendDirectory(char *buf, size_t buflen, Searchpath sp, Subdirectory subdir); -char *FioGetDirectory(char *buf, size_t buflen, Subdirectory subdir); +char *FioGetFullPath(char *buf, const char *last, Searchpath sp, Subdirectory subdir, const char *filename); +char *FioFindFullPath(char *buf, const char *last, Subdirectory subdir, const char *filename); +char *FioAppendDirectory(char *buf, const char *last, Searchpath sp, Subdirectory subdir); +char *FioGetDirectory(char *buf, const char *last, Subdirectory subdir); const char *FiosGetScreenshotDir(); void SanitizeFilename(char *filename); -bool AppendPathSeparator(char *buf, size_t buflen); +bool AppendPathSeparator(char *buf, const char *last); void DeterminePaths(const char *exe); void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize); bool FileExists(const char *filename); diff --git a/src/fios.cpp b/src/fios.cpp index ff7153af3f..00ed5a484c 100644 --- a/src/fios.cpp +++ b/src/fios.cpp @@ -26,9 +26,12 @@ #include "table/strings.h" +#include "safeguards.h" + /* Variables to display file lists */ SmallVector _fios_items; static char *_fios_path; +static const char *_fios_path_last; SmallFiosItem _file_to_saveload; SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING; @@ -89,14 +92,12 @@ StringID FiosGetDescText(const char **path, uint64 *total_free) */ const char *FiosBrowseTo(const FiosItem *item) { - char *path = _fios_path; - switch (item->type) { case FIOS_TYPE_DRIVE: #if defined(WINCE) - snprintf(path, MAX_PATH, PATHSEP ""); + seprintf(_fios_path, _fios_path_last, PATHSEP ""); #elif defined(WIN32) || defined(__OS2__) - snprintf(path, MAX_PATH, "%c:" PATHSEP, item->title[0]); + seprintf(_fios_path, _fios_path_last, "%c:" PATHSEP, item->title[0]); #endif /* FALL THROUGH */ case FIOS_TYPE_INVALID: @@ -104,16 +105,16 @@ const char *FiosBrowseTo(const FiosItem *item) case FIOS_TYPE_PARENT: { /* Check for possible NULL ptr (not required for UNIXes, but AmigaOS-alikes) */ - char *s = strrchr(path, PATHSEPCHAR); - if (s != NULL && s != path) { + char *s = strrchr(_fios_path, PATHSEPCHAR); + if (s != NULL && s != _fios_path) { s[0] = '\0'; // Remove last path separator character, so we can go up one level. } - s = strrchr(path, PATHSEPCHAR); + s = strrchr(_fios_path, PATHSEPCHAR); if (s != NULL) { s[1] = '\0'; // go up a directory #if defined(__MORPHOS__) || defined(__AMIGAOS__) /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ - } else if ((s = strrchr(path, ':')) != NULL) { + } else if ((s = strrchr(_fios_path, ':')) != NULL) { s[1] = '\0'; #endif } @@ -121,12 +122,12 @@ const char *FiosBrowseTo(const FiosItem *item) } case FIOS_TYPE_DIR: - strcat(path, item->name); - strcat(path, PATHSEP); + strecat(_fios_path, item->name, _fios_path_last); + strecat(_fios_path, PATHSEP, _fios_path_last); break; case FIOS_TYPE_DIRECT: - snprintf(path, MAX_PATH, "%s", item->name); + seprintf(_fios_path, _fios_path_last, "%s", item->name); break; case FIOS_TYPE_FILE: @@ -147,9 +148,9 @@ const char *FiosBrowseTo(const FiosItem *item) * @param path Directory path, may be \c NULL. * @param name Filename. * @param ext Filename extension (use \c "" for no extension). - * @param size Size of \a buf. + * @param last Last element of buffer \a buf. */ -static void FiosMakeFilename(char *buf, const char *path, const char *name, const char *ext, size_t size) +static void FiosMakeFilename(char *buf, const char *path, const char *name, const char *ext, const char *last) { const char *period; @@ -161,15 +162,15 @@ static void FiosMakeFilename(char *buf, const char *path, const char *name, cons unsigned char sepchar = path[(strlen(path) - 1)]; if (sepchar != ':' && sepchar != '/') { - snprintf(buf, size, "%s" PATHSEP "%s%s", path, name, ext); + seprintf(buf, last, "%s" PATHSEP "%s%s", path, name, ext); } else { - snprintf(buf, size, "%s%s%s", path, name, ext); + seprintf(buf, last, "%s%s%s", path, name, ext); } } else { - snprintf(buf, size, "%s%s", name, ext); + seprintf(buf, last, "%s%s", name, ext); } #else - snprintf(buf, size, "%s" PATHSEP "%s%s", path, name, ext); + seprintf(buf, last, "%s" PATHSEP "%s%s", path, name, ext); #endif } @@ -177,39 +178,40 @@ static void FiosMakeFilename(char *buf, const char *path, const char *name, cons * Make a save game or scenario filename from a name. * @param buf Destination buffer for saving the filename. * @param name Name of the file. - * @param size Length of buffer \a buf. + * @param last Last element of buffer \a buf. */ -void FiosMakeSavegameName(char *buf, const char *name, size_t size) +void FiosMakeSavegameName(char *buf, const char *name, const char *last) { const char *extension = (_game_mode == GM_EDITOR) ? ".scn" : ".sav"; - FiosMakeFilename(buf, _fios_path, name, extension, size); + FiosMakeFilename(buf, _fios_path, name, extension, last); } /** * Construct a filename for a height map. * @param buf Destination buffer. * @param name Filename. - * @param size Size of \a buf. + * @param last Last element of buffer \a buf. */ -void FiosMakeHeightmapName(char *buf, const char *name, size_t size) +void FiosMakeHeightmapName(char *buf, const char *name, const char *last) { char ext[5]; ext[0] = '.'; strecpy(ext + 1, GetCurrentScreenshotExtension(), lastof(ext)); - FiosMakeFilename(buf, _fios_path, name, ext, size); + FiosMakeFilename(buf, _fios_path, name, ext, last); } /** * Delete a file. * @param name Filename to delete. + * @return Whether the file deletion was successful. */ bool FiosDelete(const char *name) { char filename[512]; - FiosMakeSavegameName(filename, name, lengthof(filename)); + FiosMakeSavegameName(filename, name, lastof(filename)); return unlink(filename) == 0; } @@ -324,7 +326,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc fios->type = FIOS_TYPE_DIR; fios->mtime = 0; strecpy(fios->name, d_name, lastof(fios->name)); - snprintf(fios->title, lengthof(fios->title), "%s" PATHSEP " (Directory)", d_name); + seprintf(fios->title, lastof(fios->title), "%s" PATHSEP " (Directory)", d_name); str_validate(fios->title, lastof(fios->title)); } } @@ -428,13 +430,16 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, void FiosGetSavegameList(SaveLoadDialogMode mode) { static char *fios_save_path = NULL; + static char *fios_save_path_last = NULL; if (fios_save_path == NULL) { fios_save_path = MallocT(MAX_PATH); - FioGetDirectory(fios_save_path, MAX_PATH, SAVE_DIR); + fios_save_path_last = fios_save_path + MAX_PATH - 1; + FioGetDirectory(fios_save_path, fios_save_path_last, SAVE_DIR); } _fios_path = fios_save_path; + _fios_path_last = fios_save_path_last; FiosGetFileList(mode, &FiosGetSavegameListCallback, NO_DIRECTORY); } @@ -479,17 +484,20 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char void FiosGetScenarioList(SaveLoadDialogMode mode) { static char *fios_scn_path = NULL; + static char *fios_scn_path_last = NULL; /* Copy the default path on first run or on 'New Game' */ if (fios_scn_path == NULL) { fios_scn_path = MallocT(MAX_PATH); - FioGetDirectory(fios_scn_path, MAX_PATH, SCENARIO_DIR); + fios_scn_path_last = fios_scn_path + MAX_PATH - 1; + FioGetDirectory(fios_scn_path, fios_scn_path_last, SCENARIO_DIR); } _fios_path = fios_scn_path; + _fios_path_last = fios_scn_path_last; char base_path[MAX_PATH]; - FioGetDirectory(base_path, sizeof(base_path), SCENARIO_DIR); + FioGetDirectory(base_path, lastof(base_path), SCENARIO_DIR); FiosGetFileList(mode, &FiosGetScenarioListCallback, (mode == SLD_LOAD_SCENARIO && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY); } @@ -522,7 +530,7 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char Searchpath sp; FOR_ALL_SEARCHPATHS(sp) { char buf[MAX_PATH]; - FioAppendDirectory(buf, sizeof(buf), sp, HEIGHTMAP_DIR); + FioAppendDirectory(buf, lastof(buf), sp, HEIGHTMAP_DIR); if (strncmp(buf, it->second.tar_filename, strlen(buf)) == 0) { match = true; @@ -545,16 +553,19 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char void FiosGetHeightmapList(SaveLoadDialogMode mode) { static char *fios_hmap_path = NULL; + static char *fios_hmap_path_last = NULL; if (fios_hmap_path == NULL) { fios_hmap_path = MallocT(MAX_PATH); - FioGetDirectory(fios_hmap_path, MAX_PATH, HEIGHTMAP_DIR); + fios_hmap_path_last = fios_hmap_path + MAX_PATH - 1; + FioGetDirectory(fios_hmap_path, fios_hmap_path_last, HEIGHTMAP_DIR); } _fios_path = fios_hmap_path; + _fios_path_last = fios_hmap_path_last; char base_path[MAX_PATH]; - FioGetDirectory(base_path, sizeof(base_path), HEIGHTMAP_DIR); + FioGetDirectory(base_path, lastof(base_path), HEIGHTMAP_DIR); FiosGetFileList(mode, &FiosGetHeightmapListCallback, strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY); } @@ -569,7 +580,7 @@ const char *FiosGetScreenshotDir() if (fios_screenshot_path == NULL) { fios_screenshot_path = MallocT(MAX_PATH); - FioGetDirectory(fios_screenshot_path, MAX_PATH, SCREENSHOT_DIR); + FioGetDirectory(fios_screenshot_path, fios_screenshot_path + MAX_PATH - 1, SCREENSHOT_DIR); } return fios_screenshot_path; diff --git a/src/fios.h b/src/fios.h index 43a018f260..b26fe00925 100644 --- a/src/fios.h +++ b/src/fios.h @@ -170,8 +170,8 @@ const char *FiosBrowseTo(const FiosItem *item); StringID FiosGetDescText(const char **path, uint64 *total_free); bool FiosDelete(const char *name); -void FiosMakeHeightmapName(char *buf, const char *name, size_t size); -void FiosMakeSavegameName(char *buf, const char *name, size_t size); +void FiosMakeHeightmapName(char *buf, const char *name, const char *last); +void FiosMakeSavegameName(char *buf, const char *name, const char *last); FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last); diff --git a/src/fios_gui.cpp b/src/fios_gui.cpp index 670ba6a73b..ed17717e48 100644 --- a/src/fios_gui.cpp +++ b/src/fios_gui.cpp @@ -34,6 +34,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + SaveLoadDialogMode _saveload_mode; LoadCheckData _load_check_data; ///< Data loaded from save during SL_LOAD_CHECK. @@ -296,17 +298,17 @@ public: switch (_saveload_mode) { case SLD_SAVE_GAME: case SLD_LOAD_GAME: - FioGetDirectory(o_dir.name, lengthof(o_dir.name), SAVE_DIR); + FioGetDirectory(o_dir.name, lastof(o_dir.name), SAVE_DIR); break; case SLD_SAVE_SCENARIO: case SLD_LOAD_SCENARIO: - FioGetDirectory(o_dir.name, lengthof(o_dir.name), SCENARIO_DIR); + FioGetDirectory(o_dir.name, lastof(o_dir.name), SCENARIO_DIR); break; case SLD_SAVE_HEIGHTMAP: case SLD_LOAD_HEIGHTMAP: - FioGetDirectory(o_dir.name, lengthof(o_dir.name), HEIGHTMAP_DIR); + FioGetDirectory(o_dir.name, lastof(o_dir.name), HEIGHTMAP_DIR); break; default: @@ -652,10 +654,10 @@ public: } else if (this->IsWidgetLowered(WID_SL_SAVE_GAME)) { // Save button clicked if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) { _switch_mode = SM_SAVE_GAME; - FiosMakeSavegameName(_file_to_saveload.name, this->filename_editbox.text.buf, sizeof(_file_to_saveload.name)); + FiosMakeSavegameName(_file_to_saveload.name, this->filename_editbox.text.buf, lastof(_file_to_saveload.name)); } else { _switch_mode = SM_SAVE_HEIGHTMAP; - FiosMakeHeightmapName(_file_to_saveload.name, this->filename_editbox.text.buf, sizeof(_file_to_saveload.name)); + FiosMakeHeightmapName(_file_to_saveload.name, this->filename_editbox.text.buf, lastof(_file_to_saveload.name)); } /* In the editor set up the vehicle engines correctly (date might have changed) */ diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 975643cca5..f1a2ac7775 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -23,6 +23,8 @@ #include "table/control_codes.h" #include "table/unicode.h" +#include "safeguards.h" + static const int ASCII_LETTERSTART = 32; ///< First printable ASCII letter. static const int MAX_FONT_SIZE = 72; ///< Maximum font size. diff --git a/src/fontdetection.cpp b/src/fontdetection.cpp index c1dd6cdbd5..5cc8a97118 100644 --- a/src/fontdetection.cpp +++ b/src/fontdetection.cpp @@ -35,6 +35,8 @@ extern FT_Library _library; #include /* SHGetFolderPath */ #include "os/windows/win32.h" +#include "safeguards.h" + /** * Get the short DOS 8.3 format for paths. * FreeType doesn't support Unicode filenames and Windows' fopen (as used @@ -373,6 +375,8 @@ bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, i #include "os/macosx/macos.h" +#include "safeguards.h" + FT_Error GetFontByFaceName(const char *font_name, FT_Face *face) { FT_Error err = FT_Err_Cannot_Open_Resource; @@ -542,6 +546,8 @@ bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, i #include +#include "safeguards.h" + /* ======================================================================================== * FontConfig (unix) support * ======================================================================================== */ @@ -560,7 +566,7 @@ FT_Error GetFontByFaceName(const char *font_name, FT_Face *face) char *font_family; /* Split & strip the font's style */ - font_family = strdup(font_name); + font_family = stredup(font_name); font_style = strchr(font_family, ','); if (font_style != NULL) { font_style[0] = '\0'; diff --git a/src/game/game_config.cpp b/src/game/game_config.cpp index a85c2f467e..50cd5da4e0 100644 --- a/src/game/game_config.cpp +++ b/src/game/game_config.cpp @@ -15,6 +15,8 @@ #include "game_config.hpp" #include "game_info.hpp" +#include "../safeguards.h" + /* static */ GameConfig *GameConfig::GetConfig(ScriptSettingSource source) { GameConfig **config; diff --git a/src/game/game_core.cpp b/src/game/game_core.cpp index 9fd47a4c8b..2f95e26224 100644 --- a/src/game/game_core.cpp +++ b/src/game/game_core.cpp @@ -21,6 +21,8 @@ #include "game_instance.hpp" #include "game_info.hpp" +#include "../safeguards.h" + /* static */ uint Game::frame_counter = 0; /* static */ GameInfo *Game::info = NULL; /* static */ GameInstance *Game::instance = NULL; diff --git a/src/game/game_info.cpp b/src/game/game_info.cpp index ab49fea12a..e6ec3657bf 100644 --- a/src/game/game_info.cpp +++ b/src/game/game_info.cpp @@ -16,6 +16,8 @@ #include "game_scanner.hpp" #include "../debug.h" +#include "../safeguards.h" + /** * Check if the API version provided by the Game is supported. * @param api_version The API version as provided by the Game. diff --git a/src/game/game_instance.cpp b/src/game/game_instance.cpp index f4afc69b9a..9d030f296b 100644 --- a/src/game/game_instance.cpp +++ b/src/game/game_instance.cpp @@ -85,6 +85,8 @@ #include "../script/api/game/game_waypointlist.hpp.sq" #include "../script/api/game/game_window.hpp.sq" +#include "../safeguards.h" + GameInstance::GameInstance() : ScriptInstance("GS") diff --git a/src/game/game_scanner.cpp b/src/game/game_scanner.cpp index f8c2b4f22e..bc02f6afd2 100644 --- a/src/game/game_scanner.cpp +++ b/src/game/game_scanner.cpp @@ -15,15 +15,17 @@ #include "game_info.hpp" #include "game_scanner.hpp" +#include "../safeguards.h" + void GameScannerInfo::Initialize() { ScriptScanner::Initialize("GSScanner"); } -void GameScannerInfo::GetScriptName(ScriptInfo *info, char *name, int len) +void GameScannerInfo::GetScriptName(ScriptInfo *info, char *name, const char *last) { - snprintf(name, len, "%s", info->GetName()); + seprintf(name, last, "%s", info->GetName()); } void GameScannerInfo::RegisterAPI(class Squirrel *engine) @@ -37,7 +39,7 @@ GameInfo *GameScannerInfo::FindInfo(const char *nameParam, int versionParam, boo if (nameParam == NULL) return NULL; char game_name[1024]; - ttd_strlcpy(game_name, nameParam, sizeof(game_name)); + strecpy(game_name, nameParam, lastof(game_name)); strtolower(game_name); GameInfo *info = NULL; @@ -59,7 +61,7 @@ GameInfo *GameScannerInfo::FindInfo(const char *nameParam, int versionParam, boo if (force_exact_match) { /* Try to find a direct 'name.version' match */ char game_name_tmp[1024]; - snprintf(game_name_tmp, sizeof(game_name_tmp), "%s.%d", game_name, versionParam); + seprintf(game_name_tmp, lastof(game_name_tmp), "%s.%d", game_name, versionParam); strtolower(game_name_tmp); if (this->info_list.find(game_name_tmp) != this->info_list.end()) return static_cast(this->info_list[game_name_tmp]); } @@ -84,10 +86,10 @@ void GameScannerLibrary::Initialize() ScriptScanner::Initialize("GSScanner"); } -void GameScannerLibrary::GetScriptName(ScriptInfo *info, char *name, int len) +void GameScannerLibrary::GetScriptName(ScriptInfo *info, char *name, const char *last) { GameLibrary *library = static_cast(info); - snprintf(name, len, "%s.%s", library->GetCategory(), library->GetInstanceName()); + seprintf(name, last, "%s.%s", library->GetCategory(), library->GetInstanceName()); } void GameScannerLibrary::RegisterAPI(class Squirrel *engine) @@ -99,7 +101,7 @@ GameLibrary *GameScannerLibrary::FindLibrary(const char *library, int version) { /* Internally we store libraries as 'library.version' */ char library_name[1024]; - snprintf(library_name, sizeof(library_name), "%s.%d", library, version); + seprintf(library_name, lastof(library_name), "%s.%d", library, version); strtolower(library_name); /* Check if the library + version exists */ diff --git a/src/game/game_scanner.hpp b/src/game/game_scanner.hpp index f1d334f0fc..071d19d38d 100644 --- a/src/game/game_scanner.hpp +++ b/src/game/game_scanner.hpp @@ -28,7 +28,7 @@ public: class GameInfo *FindInfo(const char *nameParam, int versionParam, bool force_exact_match); protected: - /* virtual */ void GetScriptName(ScriptInfo *info, char *name, int len); + /* virtual */ void GetScriptName(ScriptInfo *info, char *name, const char *last); /* virtual */ const char *GetFileName() const { return PATHSEP "info.nut"; } /* virtual */ Subdirectory GetDirectory() const { return GAME_DIR; } /* virtual */ const char *GetScannerName() const { return "Game Scripts"; } @@ -49,7 +49,7 @@ public: class GameLibrary *FindLibrary(const char *library, int version); protected: - /* virtual */ void GetScriptName(ScriptInfo *info, char *name, int len); + /* virtual */ void GetScriptName(ScriptInfo *info, char *name, const char *last); /* virtual */ const char *GetFileName() const { return PATHSEP "library.nut"; } /* virtual */ Subdirectory GetDirectory() const { return GAME_LIBRARY_DIR; } /* virtual */ const char *GetScannerName() const { return "GS Libraries"; } diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp index cd9721b8ab..d4a1379047 100644 --- a/src/game/game_text.cpp +++ b/src/game/game_text.cpp @@ -24,12 +24,14 @@ #include +#include "../safeguards.h" + void CDECL strgen_warning(const char *s, ...) { char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); DEBUG(script, 0, "%s:%d: warning: %s", _file, _cur_line, buf); _warnings++; @@ -40,7 +42,7 @@ void CDECL strgen_error(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); DEBUG(script, 0, "%s:%d: error: %s", _file, _cur_line, buf); _errors++; @@ -51,7 +53,7 @@ void NORETURN CDECL strgen_fatal(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); DEBUG(script, 0, "%s:%d: FATAL: %s", _file, _cur_line, buf); throw std::exception(); @@ -64,7 +66,7 @@ void NORETURN CDECL strgen_fatal(const char *s, ...) */ LanguageStrings::LanguageStrings(const char *language, const char *end) { - this->language = end == NULL ? strdup(language) : strndup(language, end - language); + this->language = stredup(language, end != NULL ? end - 1 : NULL); } /** Free everything. */ @@ -113,7 +115,7 @@ LanguageStrings *ReadRawLanguageStrings(const char *file) while (i > 0 && (buffer[i - 1] == '\r' || buffer[i - 1] == '\n' || buffer[i - 1] == ' ')) i--; buffer[i] = '\0'; - *ret->lines.Append() = strndup(buffer, to_read); + *ret->lines.Append() = stredup(buffer, buffer + to_read - 1); if (len > to_read) { to_read = 0; @@ -149,11 +151,11 @@ struct StringListReader : StringReader { { } - /* virtual */ char *ReadLine(char *buffer, size_t size) + /* virtual */ char *ReadLine(char *buffer, const char *last) { if (this->p == this->end) return NULL; - strncpy(buffer, *this->p, size); + strecpy(buffer, *this->p, last); this->p++; return buffer; @@ -210,7 +212,7 @@ struct StringNameWriter : HeaderWriter { void WriteStringID(const char *name, int stringid) { - if (stringid == (int)this->strings->Length()) *this->strings->Append() = strdup(name); + if (stringid == (int)this->strings->Length()) *this->strings->Append() = stredup(name); } void Finalise(const StringData &data) @@ -229,7 +231,7 @@ private: public: /** Initialise */ - LanguageScanner(GameStrings *gs, const char *exclude) : gs(gs), exclude(strdup(exclude)) {} + LanguageScanner(GameStrings *gs, const char *exclude) : gs(gs), exclude(stredup(exclude)) {} ~LanguageScanner() { free(exclude); } /** @@ -377,7 +379,7 @@ void ReconsiderGameScriptLanguage() if (_current_data == NULL) return; char temp[MAX_PATH]; - strecpy(temp, _current_language->file, temp + sizeof(temp)); + strecpy(temp, _current_language->file, lastof(temp)); /* Remove the extension */ char *l = strrchr(temp, '.'); diff --git a/src/gamelog.cpp b/src/gamelog.cpp index b4b9fd7a62..400c0d22fb 100644 --- a/src/gamelog.cpp +++ b/src/gamelog.cpp @@ -21,6 +21,8 @@ #include +#include "safeguards.h" + extern const uint16 SAVEGAME_VERSION; ///< current savegame version extern SavegameType _savegame_type; ///< type of savegame we are loading @@ -93,53 +95,37 @@ void GamelogReset() _current_action = NULL; } -static const uint GAMELOG_BUF_LEN = 1024; ///< length of buffer for one line of text - -static uint _dbgofs = 0; ///< offset in current output buffer - -static void AddDebugText(char *buf, const char *s, ...) WARN_FORMAT(2, 3); - -static void AddDebugText(char *buf, const char *s, ...) -{ - if (GAMELOG_BUF_LEN <= _dbgofs) return; - - va_list va; - - va_start(va, s); - _dbgofs += vsnprintf(buf + _dbgofs, GAMELOG_BUF_LEN - _dbgofs, s, va); - va_end(va); -} - - /** * Prints GRF ID, checksum and filename if found - * @param buf The location in the _dbgofs buffer to draw + * @param buf The location in the buffer to draw + * @param last The end of the buffer * @param grfid GRF ID * @param md5sum array of md5sum to print, if known * @param gc GrfConfig, if known + * @return The buffer location. */ -static void PrintGrfInfo(char *buf, uint grfid, const uint8 *md5sum, const GRFConfig *gc) +static char *PrintGrfInfo(char *buf, const char *last, uint grfid, const uint8 *md5sum, const GRFConfig *gc) { char txt[40]; if (md5sum != NULL) { md5sumToString(txt, lastof(txt), md5sum); - AddDebugText(buf, "GRF ID %08X, checksum %s", BSWAP32(grfid), txt); + buf += seprintf(buf, last, "GRF ID %08X, checksum %s", BSWAP32(grfid), txt); } else { - AddDebugText(buf, "GRF ID %08X", BSWAP32(grfid)); + buf += seprintf(buf, last, "GRF ID %08X", BSWAP32(grfid)); } if (gc != NULL) { - AddDebugText(buf, ", filename: %s (md5sum matches)", gc->filename); + buf += seprintf(buf, last, ", filename: %s (md5sum matches)", gc->filename); } else { gc = FindGRFConfig(grfid, FGCM_ANY); if (gc != NULL) { - AddDebugText(buf, ", filename: %s (matches GRFID only)", gc->filename); + buf += seprintf(buf, last, ", filename: %s (matches GRFID only)", gc->filename); } else { - AddDebugText(buf, ", unknown GRF"); + buf += seprintf(buf, last, ", unknown GRF"); } } - return; + return buf; } @@ -177,7 +163,7 @@ typedef SmallMap GrfIDMapping; */ void GamelogPrint(GamelogPrintProc *proc) { - char buf[GAMELOG_BUF_LEN]; + char buffer[1024]; GrfIDMapping grf_names; proc("---- gamelog start ----"); @@ -187,58 +173,57 @@ void GamelogPrint(GamelogPrintProc *proc) for (const LoggedAction *la = _gamelog_action; la != laend; la++) { assert((uint)la->at < GLAT_END); - snprintf(buf, GAMELOG_BUF_LEN, "Tick %u: %s", (uint)la->tick, la_text[(uint)la->at]); - proc(buf); + seprintf(buffer, lastof(buffer), "Tick %u: %s", (uint)la->tick, la_text[(uint)la->at]); + proc(buffer); const LoggedChange *lcend = &la->change[la->changes]; for (const LoggedChange *lc = la->change; lc != lcend; lc++) { - _dbgofs = 0; - AddDebugText(buf, " "); + char *buf = buffer; switch (lc->ct) { default: NOT_REACHED(); case GLCT_MODE: - AddDebugText(buf, "New game mode: %u landscape: %u", + buf += seprintf(buf, lastof(buffer), "New game mode: %u landscape: %u", (uint)lc->mode.mode, (uint)lc->mode.landscape); break; case GLCT_REVISION: - AddDebugText(buf, "Revision text changed to %s, savegame version %u, ", + buf += seprintf(buf, lastof(buffer), "Revision text changed to %s, savegame version %u, ", lc->revision.text, lc->revision.slver); switch (lc->revision.modified) { - case 0: AddDebugText(buf, "not "); break; - case 1: AddDebugText(buf, "maybe "); break; + case 0: buf += seprintf(buf, lastof(buffer), "not "); break; + case 1: buf += seprintf(buf, lastof(buffer), "maybe "); break; default: break; } - AddDebugText(buf, "modified, _openttd_newgrf_version = 0x%08x", lc->revision.newgrf); + buf += seprintf(buf, lastof(buffer), "modified, _openttd_newgrf_version = 0x%08x", lc->revision.newgrf); break; case GLCT_OLDVER: - AddDebugText(buf, "Conversion from "); + buf += seprintf(buf, lastof(buffer), "Conversion from "); switch (lc->oldver.type) { default: NOT_REACHED(); case SGT_OTTD: - AddDebugText(buf, "OTTD savegame without gamelog: version %u, %u", + buf += seprintf(buf, lastof(buffer), "OTTD savegame without gamelog: version %u, %u", GB(lc->oldver.version, 8, 16), GB(lc->oldver.version, 0, 8)); break; case SGT_TTO: - AddDebugText(buf, "TTO savegame"); + buf += seprintf(buf, lastof(buffer), "TTO savegame"); break; case SGT_TTD: - AddDebugText(buf, "TTD savegame"); + buf += seprintf(buf, lastof(buffer), "TTD savegame"); break; case SGT_TTDP1: case SGT_TTDP2: - AddDebugText(buf, "TTDP savegame, %s format", + buf += seprintf(buf, lastof(buffer), "TTDP savegame, %s format", lc->oldver.type == SGT_TTDP1 ? "old" : "new"); if (lc->oldver.version != 0) { - AddDebugText(buf, ", TTDP version %u.%u.%u.%u", + buf += seprintf(buf, lastof(buffer), ", TTDP version %u.%u.%u.%u", GB(lc->oldver.version, 24, 8), GB(lc->oldver.version, 20, 4), GB(lc->oldver.version, 16, 4), GB(lc->oldver.version, 0, 16)); } @@ -247,25 +232,25 @@ void GamelogPrint(GamelogPrintProc *proc) break; case GLCT_SETTING: - AddDebugText(buf, "Setting changed: %s : %d -> %d", lc->setting.name, lc->setting.oldval, lc->setting.newval); + buf += seprintf(buf, lastof(buffer), "Setting changed: %s : %d -> %d", lc->setting.name, lc->setting.oldval, lc->setting.newval); break; case GLCT_GRFADD: { const GRFConfig *gc = FindGRFConfig(lc->grfadd.grfid, FGCM_EXACT, lc->grfadd.md5sum); - AddDebugText(buf, "Added NewGRF: "); - PrintGrfInfo(buf, lc->grfadd.grfid, lc->grfadd.md5sum, gc); + buf += seprintf(buf, lastof(buffer), "Added NewGRF: "); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfadd.grfid, lc->grfadd.md5sum, gc); GrfIDMapping::Pair *gm = grf_names.Find(lc->grfrem.grfid); - if (gm != grf_names.End() && !gm->second.was_missing) AddDebugText(buf, ". Gamelog inconsistency: GrfID was already added!"); + if (gm != grf_names.End() && !gm->second.was_missing) buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was already added!"); grf_names[lc->grfadd.grfid] = gc; break; } case GLCT_GRFREM: { GrfIDMapping::Pair *gm = grf_names.Find(lc->grfrem.grfid); - AddDebugText(buf, la->at == GLAT_LOAD ? "Missing NewGRF: " : "Removed NewGRF: "); - PrintGrfInfo(buf, lc->grfrem.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); + buf += seprintf(buf, lastof(buffer), la->at == GLAT_LOAD ? "Missing NewGRF: " : "Removed NewGRF: "); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfrem.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); if (gm == grf_names.End()) { - AddDebugText(buf, ". Gamelog inconsistency: GrfID was never added!"); + buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was never added!"); } else { if (la->at == GLAT_LOAD) { /* Missing grfs on load are not removed from the configuration */ @@ -279,27 +264,27 @@ void GamelogPrint(GamelogPrintProc *proc) case GLCT_GRFCOMPAT: { const GRFConfig *gc = FindGRFConfig(lc->grfadd.grfid, FGCM_EXACT, lc->grfadd.md5sum); - AddDebugText(buf, "Compatible NewGRF loaded: "); - PrintGrfInfo(buf, lc->grfcompat.grfid, lc->grfcompat.md5sum, gc); - if (!grf_names.Contains(lc->grfcompat.grfid)) AddDebugText(buf, ". Gamelog inconsistency: GrfID was never added!"); + buf += seprintf(buf, lastof(buffer), "Compatible NewGRF loaded: "); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfcompat.grfid, lc->grfcompat.md5sum, gc); + if (!grf_names.Contains(lc->grfcompat.grfid)) buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was never added!"); grf_names[lc->grfcompat.grfid] = gc; break; } case GLCT_GRFPARAM: { GrfIDMapping::Pair *gm = grf_names.Find(lc->grfrem.grfid); - AddDebugText(buf, "GRF parameter changed: "); - PrintGrfInfo(buf, lc->grfparam.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); - if (gm == grf_names.End()) AddDebugText(buf, ". Gamelog inconsistency: GrfID was never added!"); + buf += seprintf(buf, lastof(buffer), "GRF parameter changed: "); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfparam.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); + if (gm == grf_names.End()) buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was never added!"); break; } case GLCT_GRFMOVE: { GrfIDMapping::Pair *gm = grf_names.Find(lc->grfrem.grfid); - AddDebugText(buf, "GRF order changed: %08X moved %d places %s", + buf += seprintf(buf, lastof(buffer), "GRF order changed: %08X moved %d places %s", BSWAP32(lc->grfmove.grfid), abs(lc->grfmove.offset), lc->grfmove.offset >= 0 ? "down" : "up" ); - PrintGrfInfo(buf, lc->grfmove.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); - if (gm == grf_names.End()) AddDebugText(buf, ". Gamelog inconsistency: GrfID was never added!"); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfmove.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); + if (gm == grf_names.End()) buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was never added!"); break; } @@ -308,11 +293,11 @@ void GamelogPrint(GamelogPrintProc *proc) switch (lc->grfbug.bug) { default: NOT_REACHED(); case GBUG_VEH_LENGTH: - AddDebugText(buf, "Rail vehicle changes length outside a depot: GRF ID %08X, internal ID 0x%X", BSWAP32(lc->grfbug.grfid), (uint)lc->grfbug.data); + buf += seprintf(buf, lastof(buffer), "Rail vehicle changes length outside a depot: GRF ID %08X, internal ID 0x%X", BSWAP32(lc->grfbug.grfid), (uint)lc->grfbug.data); break; } - PrintGrfInfo(buf, lc->grfbug.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); - if (gm == grf_names.End()) AddDebugText(buf, ". Gamelog inconsistency: GrfID was never added!"); + buf = PrintGrfInfo(buf, lastof(buffer), lc->grfbug.grfid, NULL, gm != grf_names.End() ? gm->second.gc : NULL); + if (gm == grf_names.End()) buf += seprintf(buf, lastof(buffer), ". Gamelog inconsistency: GrfID was never added!"); break; } @@ -320,7 +305,7 @@ void GamelogPrint(GamelogPrintProc *proc) break; } - proc(buf); + proc(buffer); } } @@ -477,7 +462,7 @@ void GamelogSetting(const char *name, int32 oldval, int32 newval) LoggedChange *lc = GamelogChange(GLCT_SETTING); if (lc == NULL) return; - lc->setting.name = strdup(name); + lc->setting.name = stredup(name); lc->setting.oldval = oldval; lc->setting.newval = newval; } diff --git a/src/genworld.cpp b/src/genworld.cpp index 822fe141fa..88e1b84a51 100644 --- a/src/genworld.cpp +++ b/src/genworld.cpp @@ -33,6 +33,9 @@ #include "error.h" #include "game/game.hpp" #include "game/game_instance.hpp" +#include "string_func.h" + +#include "safeguards.h" void GenerateClearTile(); @@ -98,7 +101,7 @@ static void _GenerateWorld(void *) try { _generating_world = true; _modal_progress_work_mutex->BeginCritical(); - if (_network_dedicated) DEBUG(net, 0, "Generating map, please wait..."); + 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(); _random.SetSeed(_settings_game.game_creation.generation_seed); @@ -195,12 +198,12 @@ static void _GenerateWorld(void *) ShowNewGRFError(); - if (_network_dedicated) DEBUG(net, 0, "Map generated, starting game"); + if (_network_dedicated) DEBUG(net, 1, "Map generated, starting game"); DEBUG(desync, 1, "new_map: %08x", _settings_game.game_creation.generation_seed); if (_debug_desync_level > 0) { char name[MAX_PATH]; - snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); + seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false); } } catch (...) { @@ -328,7 +331,7 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti _gw.thread = NULL; } - if (!_video_driver->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread)) { + if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread)) { DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode"); _gw.threaded = false; _modal_progress_work_mutex->EndCritical(); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index bc5bc80c85..af200fef6a 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -32,6 +32,8 @@ #include "widgets/genworld_widget.h" +#include "safeguards.h" + extern void MakeNewgameSettingsLive(); @@ -82,7 +84,6 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = { NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_LAND_GENERATOR, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_TOWNS, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_TERRAIN_TYPE, STR_NULL), SetFill(1, 1), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_RANDOM_SEED, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_QUANTITY_OF_SEA_LAKES, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_TREE_PLACER, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_VARIETY, STR_NULL), SetFill(1, 1), @@ -99,7 +100,6 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = { NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_LANDSCAPE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TOWN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TERRAIN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - NWidget(WWT_EDITBOX, COLOUR_ORANGE, WID_GL_RANDOM_EDITBOX), SetDataTip(STR_MAPGEN_RANDOM_SEED_OSKTITLE, STR_MAPGEN_RANDOM_SEED_HELP), SetFill(1, 1), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_WATER_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TREE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_VARIETY_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), @@ -113,6 +113,7 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = { NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_LINE_HEIGHT, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_INDUSTRIES, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SMOOTHNESS, STR_NULL), SetFill(1, 1), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_QUANTITY_OF_RIVERS, STR_NULL), SetFill(1, 1), EndContainer(), NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), /* Starting date. */ @@ -129,23 +130,37 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = { EndContainer(), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_INDUSTRY_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_SMOOTHNESS_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), + NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_RIVER_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_GL_RANDOM_BUTTON), SetDataTip(STR_MAPGEN_RANDOM, STR_MAPGEN_RANDOM_HELP), SetFill(1, 0), - NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_QUANTITY_OF_RIVERS, STR_NULL), SetFill(1, 1), - NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_RIVER_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - EndContainer(), - /* Map borders buttons for each edge. */ - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_NW), SetDataTip(STR_JUST_STRING, STR_MAPGEN_NORTHWEST), SetFill(1, 1), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_NE), SetDataTip(STR_JUST_STRING, STR_MAPGEN_NORTHEAST), SetFill(1, 1), - EndContainer(), - NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_SW), SetDataTip(STR_JUST_STRING, STR_MAPGEN_SOUTHWEST), SetFill(1, 1), - NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_SE), SetDataTip(STR_JUST_STRING, STR_MAPGEN_SOUTHEAST), SetFill(1, 1), - EndContainer(), - NWidget(WWT_PUSHTXTBTN, COLOUR_GREEN, WID_GL_GENERATE_BUTTON), SetDataTip(STR_MAPGEN_GENERATE, STR_NULL), SetFill(1, 0), + NWidget(NWID_SPACER), SetFill(1, 1), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREEN, WID_GL_GENERATE_BUTTON), SetMinimalSize(84, 30), SetDataTip(STR_MAPGEN_GENERATE, STR_NULL), SetFill(1, 0), + EndContainer(), + EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 4), + /* Map borders buttons for each edge. */ + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 0, 10), + NWidget(NWID_HORIZONTAL), SetPIP(0, 0, 3), + NWidget(NWID_SPACER), SetFill(1, 1), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NORTHWEST, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(0, 1), + EndContainer(), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_NW), SetDataTip(STR_JUST_STRING, STR_MAPGEN_NORTHWEST), SetFill(1, 1), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_NE), SetDataTip(STR_JUST_STRING, STR_MAPGEN_NORTHEAST), SetFill(1, 1), + NWidget(NWID_HORIZONTAL), SetPIP(3, 0, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NORTHEAST, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(0, 1), + NWidget(NWID_SPACER), SetFill(1, 1), + EndContainer(), + EndContainer(), + NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(10, 0, 10), + NWidget(NWID_HORIZONTAL), SetPIP(0, 0, 3), + NWidget(NWID_SPACER), SetFill(1, 1), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SOUTHWEST, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(0, 1), + EndContainer(), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_SW), SetDataTip(STR_JUST_STRING, STR_MAPGEN_SOUTHWEST), SetFill(1, 1), + NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_WATER_SE), SetDataTip(STR_JUST_STRING, STR_MAPGEN_SOUTHEAST), SetFill(1, 1), + NWidget(NWID_HORIZONTAL), SetPIP(3, 0, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SOUTHEAST, STR_NULL), SetPadding(1, 0, 0, 0), SetFill(0, 1), + NWidget(NWID_SPACER), SetFill(1, 1), EndContainer(), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 10), @@ -181,7 +196,6 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = { NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_MAPSIZE, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_TOWNS, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_INDUSTRIES, STR_NULL), SetFill(1, 1), - NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_RANDOM_SEED, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_QUANTITY_OF_RIVERS, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_TREE_PLACER, STR_NULL), SetFill(1, 1), NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_ROTATION, STR_NULL), SetFill(1, 1), @@ -199,7 +213,6 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = { EndContainer(), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TOWN_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_INDUSTRY_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), - NWidget(WWT_EDITBOX, COLOUR_ORANGE, WID_GL_RANDOM_EDITBOX), SetDataTip(STR_MAPGEN_RANDOM_SEED_OSKTITLE, STR_MAPGEN_RANDOM_SEED_HELP), SetFill(1, 1), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_RIVER_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_TREE_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), NWidget(WWT_DROPDOWN, COLOUR_ORANGE, WID_GL_HEIGHTMAP_ROTATION_PULLDOWN), SetDataTip(STR_JUST_STRING, STR_NULL), SetFill(1, 0), @@ -225,7 +238,6 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = { EndContainer(), EndContainer(), EndContainer(), - NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_GL_RANDOM_BUTTON), SetDataTip(STR_MAPGEN_RANDOM, STR_MAPGEN_RANDOM_HELP), SetFill(1, 0), NWidget(NWID_SPACER), SetFill(1, 1), NWidget(WWT_PUSHTXTBTN, COLOUR_GREEN, WID_GL_GENERATE_BUTTON), SetMinimalSize(84, 30), SetDataTip(STR_MAPGEN_GENERATE, STR_NULL), SetFill(1, 0), EndContainer(), @@ -291,19 +303,13 @@ struct GenerateLandscapeWindow : public Window { uint y; char name[64]; GenenerateLandscapeWindowMode mode; - QueryString seed_editbox; - GenerateLandscapeWindow(WindowDesc *desc, WindowNumber number = 0) : Window(desc), seed_editbox(11) + GenerateLandscapeWindow(WindowDesc *desc, WindowNumber number = 0) : Window(desc) { this->InitNested(number); this->LowerWidget(_settings_newgame.game_creation.landscape + WID_GL_TEMPERATE); - this->querystrings[WID_GL_RANDOM_EDITBOX] = &this->seed_editbox; - this->seed_editbox.text.Print("%u", _settings_newgame.game_creation.generation_seed); - this->seed_editbox.caption = STR_NULL; - this->seed_editbox.text.afilter = CS_NUMERAL; - this->mode = (GenenerateLandscapeWindowMode)this->window_number; /* Disable town, industry and trees in SE */ @@ -530,12 +536,6 @@ struct GenerateLandscapeWindow : public Window { ShowDropDownMenu(this, _num_inds, _settings_newgame.difficulty.industry_density, WID_GL_INDUSTRY_PULLDOWN, 0, 0); break; - case WID_GL_RANDOM_BUTTON: // Random seed - _settings_newgame.game_creation.generation_seed = InteractiveRandom(); - this->seed_editbox.text.Print("%u", _settings_newgame.game_creation.generation_seed); - this->SetDirty(); - break; - case WID_GL_GENERATE_BUTTON: { // Generate /* Get rotated map size. */ uint map_x; @@ -676,17 +676,6 @@ struct GenerateLandscapeWindow : public Window { } } - virtual void OnEditboxChanged(int wid) - { - if (wid == WID_GL_RANDOM_EDITBOX) { - /* the seed is unsigned, therefore atoi cannot be used. - * As UINT32_MAX is a 'magic' value (use random seed) it - * should not be possible to be entered into the input - * field; the generate seed button can be used instead. */ - _settings_newgame.game_creation.generation_seed = minu(strtoul(this->seed_editbox.text.buf, NULL, 10), UINT32_MAX - 1); - } - } - virtual void OnDropdownSelect(int widget, int index) { switch (widget) { @@ -800,8 +789,8 @@ static void _ShowGenerateLandscape(GenenerateLandscapeWindowMode mode) DeleteWindowByClass(WC_GENERATE_LANDSCAPE); - /* Always give a new seed if not editor */ - if (_game_mode != GM_EDITOR) _settings_newgame.game_creation.generation_seed = InteractiveRandom(); + /* Generate a new seed when opening the window */ + _settings_newgame.game_creation.generation_seed = InteractiveRandom(); if (mode == GLWM_HEIGHTMAP) { /* If the function returns negative, it means there was a problem loading the heightmap */ diff --git a/src/gfx.cpp b/src/gfx.cpp index 10af016469..615a48bf62 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -26,8 +26,11 @@ #include "table/sprites.h" #include "table/control_codes.h" +#include "safeguards.h" + byte _dirkeys; ///< 1 = left, 2 = up, 4 = right, 8 = down bool _fullscreen; +byte _support8bpp; CursorVars _cursor; bool _ctrl_pressed; ///< Is Ctrl pressed? bool _shift_pressed; ///< Is Shift pressed? @@ -88,7 +91,7 @@ void GfxScroll(int left, int top, int width, int height, int xo, int yo) blitter->ScrollBuffer(_screen.dst_ptr, left, top, width, height, xo, yo); /* This part of the screen is now dirty. */ - _video_driver->MakeDirty(left, top, width, height); + VideoDriver::GetInstance()->MakeDirty(left, top, width, height); } @@ -421,19 +424,21 @@ static int DrawLayoutLine(const ParagraphLayouter::Line *line, int y, int left, NOT_REACHED(); } + TextColour colour = TC_BLACK; + bool draw_shadow = false; for (int run_index = 0; run_index < line->CountRuns(); run_index++) { const ParagraphLayouter::VisualRun *run = line->GetVisualRun(run_index); const Font *f = (const Font*)run->GetFont(); FontCache *fc = f->fc; - TextColour colour = f->colour; + colour = f->colour; SetColourRemap(colour); DrawPixelInfo *dpi = _cur_dpi; int dpi_left = dpi->left; int dpi_right = dpi->left + dpi->width - 1; - bool draw_shadow = fc->GetDrawGlyphShadow() && colour != TC_BLACK; + draw_shadow = fc->GetDrawGlyphShadow() && colour != TC_BLACK; for (int i = 0; i < run->GetGlyphCount(); i++) { GlyphID glyph = run->GetGlyphs()[i]; @@ -464,6 +469,11 @@ static int DrawLayoutLine(const ParagraphLayouter::Line *line, int y, int left, if (truncation) { int x = (_current_text_dir == TD_RTL) ? left : (right - 3 * dot_width); for (int i = 0; i < 3; i++, x += dot_width) { + if (draw_shadow) { + SetColourRemap(TC_BLACK); + GfxMainBlitter(dot_sprite, x + 1, y + 1, BM_COLOUR_REMAP); + SetColourRemap(colour); + } GfxMainBlitter(dot_sprite, x, y, BM_COLOUR_REMAP); } } @@ -791,7 +801,7 @@ void DrawSpriteViewport(SpriteID img, PaletteID pal, int x, int y, const SubSpri GfxMainBlitterViewport(GetSprite(real_sprite, ST_NORMAL), x, y, BM_TRANSPARENT, sub, real_sprite); } else if (pal != PAL_NONE) { _colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR) + 1; - GfxMainBlitterViewport(GetSprite(real_sprite, ST_NORMAL), x, y, BM_COLOUR_REMAP, sub, real_sprite); + GfxMainBlitterViewport(GetSprite(real_sprite, ST_NORMAL), x, y, pal == PALETTE_CRASH ? BM_CRASH_REMAP : BM_COLOUR_REMAP, sub, real_sprite); } else { GfxMainBlitterViewport(GetSprite(real_sprite, ST_NORMAL), x, y, BM_NORMAL, sub, real_sprite); } @@ -814,7 +824,7 @@ void DrawSprite(SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub, GfxMainBlitter(GetSprite(real_sprite, ST_NORMAL), x, y, BM_TRANSPARENT, sub, real_sprite, zoom); } else if (pal != PAL_NONE) { _colour_remap_ptr = GetNonSprite(GB(pal, 0, PALETTE_WIDTH), ST_RECOLOUR) + 1; - GfxMainBlitter(GetSprite(real_sprite, ST_NORMAL), x, y, BM_COLOUR_REMAP, sub, real_sprite, zoom); + GfxMainBlitter(GetSprite(real_sprite, ST_NORMAL), x, y, pal == PALETTE_CRASH ? BM_CRASH_REMAP : BM_COLOUR_REMAP, sub, real_sprite, zoom); } else { GfxMainBlitter(GetSprite(real_sprite, ST_NORMAL), x, y, BM_NORMAL, sub, real_sprite, zoom); } @@ -1181,7 +1191,7 @@ void UndrawMouseCursor() Blitter *blitter = BlitterFactory::GetCurrentBlitter(); _cursor.visible = false; blitter->CopyFromBuffer(blitter->MoveTo(_screen.dst_ptr, _cursor.draw_pos.x, _cursor.draw_pos.y), _cursor_backup.GetBuffer(), _cursor.draw_size.x, _cursor.draw_size.y); - _video_driver->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y); + VideoDriver::GetInstance()->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y); } } @@ -1236,7 +1246,7 @@ void DrawMouseCursor() _cur_dpi = &_screen; DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x + _cursor.short_vehicle_offset, _cursor.pos.y); - _video_driver->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y); + VideoDriver::GetInstance()->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y); _cursor.visible = true; _cursor.dirty = false; @@ -1260,7 +1270,7 @@ void RedrawScreenRect(int left, int top, int right, int bottom) DrawOverlappedWindowForAll(left, top, right, bottom); - _video_driver->MakeDirty(left, top, right - left, bottom - top); + VideoDriver::GetInstance()->MakeDirty(left, top, right - left, bottom - top); } /** @@ -1569,12 +1579,12 @@ void SetAnimatedMouseCursor(const AnimCursor *table) bool ChangeResInGame(int width, int height) { - return (_screen.width == width && _screen.height == height) || _video_driver->ChangeResolution(width, height); + return (_screen.width == width && _screen.height == height) || VideoDriver::GetInstance()->ChangeResolution(width, height); } bool ToggleFullScreen(bool fs) { - bool result = _video_driver->ToggleFullscreen(fs); + bool result = VideoDriver::GetInstance()->ToggleFullscreen(fs); if (_fullscreen != fs && _num_resolutions == 0) { DEBUG(driver, 0, "Could not find a suitable fullscreen resolution"); } diff --git a/src/gfx_func.h b/src/gfx_func.h index eff0930b16..ccb27a3fed 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -53,6 +53,7 @@ void CreateConsole(); extern byte _dirkeys; ///< 1 = left, 2 = up, 4 = right, 8 = down extern bool _fullscreen; +extern byte _support8bpp; extern CursorVars _cursor; extern bool _ctrl_pressed; ///< Is Ctrl pressed? extern bool _shift_pressed; ///< Is Shift pressed? diff --git a/src/gfx_layout.cpp b/src/gfx_layout.cpp index 0c4c1f23fd..2dba6a2046 100644 --- a/src/gfx_layout.cpp +++ b/src/gfx_layout.cpp @@ -21,6 +21,8 @@ #include #endif /* WITH_ICU */ +#include "safeguards.h" + /** Cache of ParagraphLayout lines. */ Layouter::LineCache *Layouter::linecache; diff --git a/src/gfx_type.h b/src/gfx_type.h index 2b792d0904..0633bdd521 100644 --- a/src/gfx_type.h +++ b/src/gfx_type.h @@ -300,4 +300,11 @@ struct Palette { int count_dirty; ///< The number of dirty elements. }; +/** Modes for 8bpp support */ +enum Support8bpp { + S8BPP_NONE = 0, ///< No support for 8bpp by OS or hardware, force 32bpp blitters. + S8BPP_SYSTEM, ///< No 8bpp support by hardware, do not try to use 8bpp video modes or hardware palettes. + S8BPP_HARDWARE, ///< Full 8bpp support by OS and hardware. +}; + #endif /* GFX_TYPE_H */ diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 109db2e08a..72ded8f76f 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -25,6 +25,8 @@ #include "table/sprites.h" +#include "safeguards.h" + /** Whether the given NewGRFs must get a palette remap from windows to DOS or not. */ bool _palette_remap_grf[MAX_FILE_SLOTS]; @@ -236,16 +238,21 @@ static bool SwitchNewGRFBlitter() /* Null driver => dedicated server => do nothing. */ if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) return false; - /* Get preferred depth. */ + /* Get preferred depth. + * - depth_wanted_by_base: Depth required by the baseset, i.e. the majority of the sprites. + * - depth_wanted_by_grf: Depth required by some NewGRF. + * Both can force using a 32bpp blitter. depth_wanted_by_base is used to select + * between multiple 32bpp blitters, which perform differently with 8bpp sprites. + */ uint depth_wanted_by_base = BaseGraphics::GetUsedSet()->blitter == BLT_32BPP ? 32 : 8; - uint depth_wanted_by_grf = 8; + uint depth_wanted_by_grf = _support8bpp == S8BPP_NONE ? 32 : 8; for (GRFConfig *c = _grfconfig; c != NULL; c = c->next) { if (c->status == GCS_DISABLED || c->status == GCS_NOT_FOUND || HasBit(c->flags, GCF_INIT_ONLY)) continue; if (c->palette & GRFP_BLT_32BPP) depth_wanted_by_grf = 32; } /* Search the best blitter. */ - struct { + static const struct { const char *name; uint animation; ///< 0: no support, 1: do support, 2: both uint min_base_depth, max_base_depth, min_grf_depth, max_grf_depth; @@ -282,9 +289,9 @@ static bool SwitchNewGRFBlitter() break; } - if (!_video_driver->AfterBlitterChange()) { + if (!VideoDriver::GetInstance()->AfterBlitterChange()) { /* Failed to switch blitter, let's hope we can return to the old one. */ - if (BlitterFactory::SelectBlitter(cur_blitter) == NULL || !_video_driver->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); + if (BlitterFactory::SelectBlitter(cur_blitter) == NULL || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); } return true; diff --git a/src/goal.cpp b/src/goal.cpp index e2436745ce..2f6ca242a9 100644 --- a/src/goal.cpp +++ b/src/goal.cpp @@ -24,6 +24,8 @@ #include "gui.h" #include "network/network.h" +#include "safeguards.h" + GoalID _new_goal_id; @@ -88,7 +90,7 @@ CommandCost CmdCreateGoal(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 g->type = type; g->dst = p2; g->company = company; - g->text = strdup(text); + g->text = stredup(text); g->progress = NULL; g->completed = false; @@ -153,7 +155,7 @@ CommandCost CmdSetGoalText(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 if (flags & DC_EXEC) { Goal *g = Goal::Get(p1); free(g->text); - g->text = strdup(text); + g->text = stredup(text); if (g->company == INVALID_COMPANY) { InvalidateWindowClassesData(WC_GOALS_LIST); @@ -185,7 +187,7 @@ CommandCost CmdSetGoalProgress(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (StrEmpty(text)) { g->progress = NULL; } else { - g->progress = strdup(text); + g->progress = stredup(text); } if (g->company == INVALID_COMPANY) { diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index b2e591ffdd..f98189d183 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -23,11 +23,14 @@ #include "company_base.h" #include "story_base.h" #include "command_func.h" +#include "string_func.h" #include "widgets/goal_widget.h" #include "table/strings.h" +#include "safeguards.h" + /** Goal list columns. */ enum GoalColumn { GC_GOAL = 0, ///< Goal text column. @@ -362,7 +365,7 @@ struct GoalQuestionWindow : public Window { GoalQuestionWindow(WindowDesc *desc, WindowNumber window_number, byte type, uint32 button_mask, const char *question) : Window(desc), type(type) { assert(type < GOAL_QUESTION_TYPE_COUNT); - this->question = strdup(question); + this->question = stredup(question); /* Figure out which buttons we have to enable. */ uint bit; diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 4e8e3aeeb6..019c4f039d 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -30,6 +30,8 @@ #include "table/sprites.h" #include +#include "safeguards.h" + /* Bitmasks of company and cargo indices that shouldn't be drawn. */ static uint _legend_excluded_companies; static uint _legend_excluded_cargo; diff --git a/src/ground_vehicle.cpp b/src/ground_vehicle.cpp index 5712b28f96..f3134608ac 100644 --- a/src/ground_vehicle.cpp +++ b/src/ground_vehicle.cpp @@ -14,6 +14,8 @@ #include "roadveh.h" #include "depot_map.h" +#include "safeguards.h" + /** * Recalculates the cached total power of a vehicle. Should be called when the consist is changed. */ diff --git a/src/group.h b/src/group.h index d8680c294d..91ee77e601 100644 --- a/src/group.h +++ b/src/group.h @@ -71,6 +71,8 @@ struct Group : GroupPool::PoolItem<&_group_pool> { bool replace_protection; ///< If set to true, the global autoreplace have no effect on the group GroupStatistics statistics; ///< NOSAVE: Statistics and caches on the vehicles in the group. + GroupID parent; ///< Parent group + Group(CompanyID owner = INVALID_COMPANY); ~Group(); }; @@ -101,6 +103,7 @@ void SetTrainGroupID(Train *v, GroupID grp); void UpdateTrainGroupID(Train *v); void RemoveVehicleFromGroup(const Vehicle *v); void RemoveAllGroupsForCompany(const CompanyID company); +bool GroupIsInGroup(GroupID search, GroupID group); extern GroupID _new_group_id; diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index e86b9de283..8712c378fc 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -24,6 +24,8 @@ #include "table/strings.h" +#include "safeguards.h" + GroupID _new_group_id; GroupPool _group_pool("Group"); @@ -285,6 +287,7 @@ CommandCost CmdCreateGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 Group *g = new Group(_current_company); g->replace_protection = false; g->vehicle_type = vt; + g->parent = INVALID_GROUP; _new_group_id = g->index; @@ -313,6 +316,14 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 /* Remove all vehicles from the group */ DoCommand(0, p1, 0, flags, CMD_REMOVE_ALL_VEHICLES_GROUP); + /* Delete sub-groups */ + Group *gp; + FOR_ALL_GROUPS(gp) { + if (gp->parent == g->index) { + DoCommand(0, gp->index, 0, flags, CMD_DELETE_GROUP); + } + } + if (flags & DC_EXEC) { /* Update backupped orders if needed */ OrderBackup::ClearGroup(g->index); @@ -352,33 +363,60 @@ static bool IsUniqueGroupNameForVehicleType(const char *name, VehicleType type) } /** - * Rename a group + * Alter a group * @param tile unused * @param flags type of operation * @param p1 index of array group * - p1 bit 0-15 : GroupID - * @param p2 unused + * - p1 bit 16: 0 - Rename grouop + * 1 - Set group parent + * @param p2 parent group index * @param text the new name or an empty string when resetting to the default * @return the cost of this operation or an error */ -CommandCost CmdRenameGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) +CommandCost CmdAlterGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) { - Group *g = Group::GetIfValid(p1); + Group *g = Group::GetIfValid(GB(p1, 0, 16)); if (g == NULL || g->owner != _current_company) return CMD_ERROR; - bool reset = StrEmpty(text); + if (!HasBit(p1, 16)) { + /* Rename group */ + bool reset = StrEmpty(text); - if (!reset) { - if (Utf8StringLength(text) >= MAX_LENGTH_GROUP_NAME_CHARS) return CMD_ERROR; - if (!IsUniqueGroupNameForVehicleType(text, g->vehicle_type)) return_cmd_error(STR_ERROR_NAME_MUST_BE_UNIQUE); + if (!reset) { + if (Utf8StringLength(text) >= MAX_LENGTH_GROUP_NAME_CHARS) return CMD_ERROR; + if (!IsUniqueGroupNameForVehicleType(text, g->vehicle_type)) return_cmd_error(STR_ERROR_NAME_MUST_BE_UNIQUE); + } + + if (flags & DC_EXEC) { + /* Delete the old name */ + free(g->name); + /* Assign the new one */ + g->name = reset ? NULL : stredup(text); + } + } else { + /* Set group parent */ + const Group *pg = Group::GetIfValid(GB(p2, 0, 16)); + + if (pg != NULL) { + if (pg->owner != _current_company) return CMD_ERROR; + if (pg->vehicle_type != g->vehicle_type) return CMD_ERROR; + + /* Ensure request parent isn't child of group. + * This is the only place that infinite loops are prevented. */ + const Group *looptest = pg; + while (looptest->parent != INVALID_GROUP) { + if (looptest->parent == g->index) return CMD_ERROR; + looptest = Group::Get(looptest->parent); + } + } + + if (flags & DC_EXEC) { + g->parent = (pg == NULL) ? INVALID_GROUP : pg->index; + } } if (flags & DC_EXEC) { - /* Delete the old name */ - free(g->name); - /* Assign the new one */ - g->name = reset ? NULL : strdup(text); - SetWindowDirty(WC_REPLACE_VEHICLE, g->vehicle_type); InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), VehicleListIdentifier(VL_GROUP_LIST, g->vehicle_type, _current_company).Pack()); } @@ -542,6 +580,20 @@ CommandCost CmdRemoveAllVehiclesGroup(TileIndex tile, DoCommandFlag flags, uint3 return CommandCost(); } +/** + * Set replace protection for a group and its sub-groups. + * @param g initial group. + * @param protect 1 to set or 0 to clear protection. + */ +static void SetGroupReplaceProtection(Group *g, bool protect) +{ + g->replace_protection = protect; + + Group *pg; + FOR_ALL_GROUPS(pg) { + if (pg->parent == g->index) SetGroupReplaceProtection(pg, protect); + } +} /** * (Un)set global replace protection from a group @@ -551,6 +603,7 @@ CommandCost CmdRemoveAllVehiclesGroup(TileIndex tile, DoCommandFlag flags, uint3 * - p1 bit 0-15 : GroupID * @param p2 * - p2 bit 0 : 1 to set or 0 to clear protection. + * - p2 bit 1 : 1 to apply to sub-groups. * @param text unused * @return the cost of this operation or an error */ @@ -560,7 +613,11 @@ CommandCost CmdSetGroupReplaceProtection(TileIndex tile, DoCommandFlag flags, ui if (g == NULL || g->owner != _current_company) return CMD_ERROR; if (flags & DC_EXEC) { - g->replace_protection = HasBit(p2, 0); + if (HasBit(p2, 1)) { + SetGroupReplaceProtection(g, HasBit(p2, 0)); + } else { + g->replace_protection = HasBit(p2, 0); + } SetWindowDirty(GetWindowClassForVehicleType(g->vehicle_type), VehicleListIdentifier(VL_GROUP_LIST, g->vehicle_type, _current_company).Pack()); InvalidateWindowData(WC_REPLACE_VEHICLE, g->vehicle_type); @@ -639,8 +696,13 @@ void UpdateTrainGroupID(Train *v) */ uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e) { + uint count = 0; const Engine *e = Engine::Get(id_e); - return GroupStatistics::Get(company, id_g, e->type).num_engines[id_e]; + const Group *g; + FOR_ALL_GROUPS(g) { + if (g->parent == id_g) count += GetGroupNumEngines(company, g->index, id_e); + } + return count + GroupStatistics::Get(company, id_g, e->type).num_engines[id_e]; } void RemoveAllGroupsForCompany(const CompanyID company) @@ -651,3 +713,25 @@ void RemoveAllGroupsForCompany(const CompanyID company) if (company == g->owner) delete g; } } + + +/** + * Test if GroupID group is a descendant of (or is) GroupID search + * @param search The GroupID to search in + * @param group The GroupID to search for + * @return True iff group is search or a descendant of search + */ +bool GroupIsInGroup(GroupID search, GroupID group) +{ + if (search == NEW_GROUP || + search == ALL_GROUP || + search == DEFAULT_GROUP || + search == INVALID_GROUP) return search == group; + + do { + if (search == group) return true; + search = Group::Get(search)->parent; + } while (search != INVALID_GROUP); + + return false; +} diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 551697d601..e465950af5 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -30,6 +30,10 @@ #include "table/sprites.h" +#include "safeguards.h" + +static const int LEVEL_WIDTH = 10; ///< Indenting width of a sub-group in pixels + typedef GUIList GUIGroupList; static const NWidgetPart _nested_group_widgets[] = { @@ -105,34 +109,27 @@ private: }; VehicleID vehicle_sel; ///< Selected vehicle + GroupID group_sel; ///< Selected group (for drag/drop) GroupID group_rename; ///< Group being renamed, INVALID_GROUP if none GroupID group_over; ///< Group over which a vehicle is dragged, INVALID_GROUP if none + GroupID group_confirm; ///< Group awaiting delete confirmation GUIGroupList groups; ///< List of groups uint tiny_step_height; ///< Step height for the group list Scrollbar *group_sb; + SmallVector indents; ///< Indentation levels + Dimension column_size[VGC_END]; ///< Size of the columns in the group list. - /** - * (Re)Build the group list. - * - * @param owner The owner of the window - */ - void BuildGroupList(Owner owner) + void AddParents(GUIGroupList *source, GroupID parent, int indent) { - if (!this->groups.NeedRebuild()) return; - - this->groups.Clear(); - - const Group *g; - FOR_ALL_GROUPS(g) { - if (g->owner == owner && g->vehicle_type == this->vli.vtype) { - *this->groups.Append() = g; + for (const Group **g = source->Begin(); g != source->End(); g++) { + if ((*g)->parent == parent) { + *this->groups.Append() = *g; + *this->indents.Append() = indent; + AddParents(source, (*g)->index, indent + 1); } } - - this->groups.Compact(); - this->groups.RebuildDone(); } /** Sort the groups by their name */ @@ -158,6 +155,36 @@ private: return r; } + /** + * (Re)Build the group list. + * + * @param owner The owner of the window + */ + void BuildGroupList(Owner owner) + { + if (!this->groups.NeedRebuild()) return; + + this->groups.Clear(); + this->indents.Clear(); + + GUIGroupList list; + + const Group *g; + FOR_ALL_GROUPS(g) { + if (g->owner == owner && g->vehicle_type == this->vli.vtype) { + *list.Append() = g; + } + } + + list.ForceResort(); + list.Sort(&GroupNameSorter); + + AddParents(&list, INVALID_GROUP, 0); + + this->groups.Compact(); + this->groups.RebuildDone(); + } + /** * Compute tiny_step_height and column_size * @return Total width required for the group list. @@ -206,9 +233,10 @@ private: * @param left Left of the row. * @param right Right of the row. * @param g_id Group to list. + * @param indent Indentation level. * @param protection Whether autoreplace protection is set. */ - void DrawGroupInfo(int y, int left, int right, GroupID g_id, bool protection = false) const + void DrawGroupInfo(int y, int left, int right, GroupID g_id, int indent = 0, bool protection = false) const { /* Highlight the group if a vehicle is dragged over it */ if (g_id == this->group_over) { @@ -238,7 +266,7 @@ private: } } int x = rtl ? right - WD_FRAMERECT_RIGHT - 8 - this->column_size[VGC_NAME].width - longer_name + 1 : left + WD_FRAMERECT_LEFT + 8; - DrawString(x, x + this->column_size[VGC_NAME].width + longer_name - 1, y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour); + DrawString(x + indent * LEVEL_WIDTH, x + this->column_size[VGC_NAME].width + longer_name - 1, y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour); /* draw autoreplace protection */ x = rtl ? x - 2 - this->column_size[VGC_PROTECT].width : x + 2 + this->column_size[VGC_NAME].width; @@ -302,6 +330,7 @@ public: this->vli.index = ALL_GROUP; this->vehicle_sel = INVALID_VEHICLE; + this->group_sel = INVALID_GROUP; this->group_rename = INVALID_GROUP; this->group_over = INVALID_GROUP; @@ -315,7 +344,6 @@ public: this->groups.ForceRebuild(); this->groups.NeedResort(); this->BuildGroupList(vli.company); - this->groups.Sort(&GroupNameSorter); this->GetWidget(WID_GL_CAPTION)->widget_data = STR_VEHICLE_LIST_TRAIN_CAPTION + this->vli.vtype; this->GetWidget(WID_GL_LIST_VEHICLE)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype; @@ -443,7 +471,6 @@ public: this->SortVehicleList(); this->BuildGroupList(this->owner); - this->groups.Sort(&GroupNameSorter); this->group_sb->SetCount(this->groups.Length()); this->vscroll->SetCount(this->vehicles.Length()); @@ -509,7 +536,7 @@ public: assert(g->owner == this->owner); - DrawGroupInfo(y1, r.left, r.right, g->index, g->replace_protection); + DrawGroupInfo(y1, r.left, r.right, g->index, this->indents[i], g->replace_protection); y1 += this->tiny_step_height; } @@ -524,11 +551,33 @@ public: break; case WID_GL_LIST_VEHICLE: + if (this->vli.index != ALL_GROUP) { + /* Mark vehicles which are in sub-groups */ + int y = r.top; + uint max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->vehicles.Length()); + for (uint i = this->vscroll->GetPosition(); i < max; ++i) { + const Vehicle *v = this->vehicles[i]; + if (v->group_id != this->vli.index) { + GfxFillRect(r.left + 1, y + 1, r.right - 1, y + this->resize.step_height - 2, _colour_gradient[COLOUR_GREY][3], FILLRECT_CHECKER); + } + y += this->resize.step_height; + } + } + this->DrawVehicleListItems(this->vehicle_sel, this->resize.step_height, r); break; } } + static void DeleteGroupCallback(Window *win, bool confirmed) + { + if (confirmed) { + VehicleGroupWindow *w = (VehicleGroupWindow*)win; + w->vli.index = ALL_GROUP; + DoCommandP(0, w->group_confirm, 0, CMD_DELETE_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_DELETE)); + } + } + virtual void OnClick(Point pt, int widget, int click_count) { switch (widget) { @@ -561,7 +610,9 @@ public: uint id_g = this->group_sb->GetScrolledRowFromWidget(pt.y, this, WID_GL_LIST_GROUP, 0, this->tiny_step_height); if (id_g >= this->groups.Length()) return; - this->vli.index = this->groups[id_g]->index; + this->group_sel = this->vli.index = this->groups[id_g]->index; + + SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); this->vehicles.ForceRebuild(); this->SetDirty(); @@ -591,10 +642,8 @@ public: } case WID_GL_DELETE_GROUP: { // Delete the selected group - GroupID group = this->vli.index; - this->vli.index = ALL_GROUP; - - DoCommandP(0, group, 0, CMD_DELETE_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_DELETE)); + this->group_confirm = this->vli.index; + ShowQuery(STR_QUERY_GROUP_DELETE_CAPTION, STR_GROUP_DELETE_QUERY_TEXT, this, DeleteGroupCallback); break; } @@ -621,14 +670,46 @@ public: case WID_GL_REPLACE_PROTECTION: { const Group *g = Group::GetIfValid(this->vli.index); if (g != NULL) { - DoCommandP(0, this->vli.index, !g->replace_protection, CMD_SET_GROUP_REPLACE_PROTECTION); + DoCommandP(0, this->vli.index, !g->replace_protection | (_ctrl_pressed << 1), CMD_SET_GROUP_REPLACE_PROTECTION); } break; } } } - virtual void OnDragDrop(Point pt, int widget) + void OnDragDrop_Group(Point pt, int widget) + { + const Group *g = Group::Get(this->group_sel); + + switch (widget) { + case WID_GL_ALL_VEHICLES: // All vehicles + case WID_GL_DEFAULT_VEHICLES: // Ungroupd vehicles + if (g->parent != INVALID_GROUP) { + DoCommandP(0, this->group_sel | (1 << 16), INVALID_GROUP, CMD_ALTER_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_SET_PARENT)); + } + + this->group_sel = INVALID_GROUP; + this->group_over = INVALID_GROUP; + this->SetDirty(); + break; + + case WID_GL_LIST_GROUP: { // Matrix group + uint id_g = this->group_sb->GetScrolledRowFromWidget(pt.y, this, WID_GL_LIST_GROUP, 0, this->tiny_step_height); + GroupID new_g = id_g >= this->groups.Length() ? INVALID_GROUP : this->groups[id_g]->index; + + if (this->group_sel != new_g && g->parent != new_g) { + DoCommandP(0, this->group_sel | (1 << 16), new_g, CMD_ALTER_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_SET_PARENT)); + } + + this->group_sel = INVALID_GROUP; + this->group_over = INVALID_GROUP; + this->SetDirty(); + break; + } + } + } + + void OnDragDrop_Vehicle(Point pt, int widget) { switch (widget) { case WID_GL_DEFAULT_VEHICLES: // Ungrouped vehicles @@ -669,12 +750,19 @@ public: break; } } + } + + virtual void OnDragDrop(Point pt, int widget) + { + if (this->vehicle_sel != INVALID_VEHICLE) OnDragDrop_Vehicle(pt, widget); + if (this->group_sel != INVALID_GROUP) OnDragDrop_Group(pt, widget); + _cursor.vehchain = false; } virtual void OnQueryTextFinished(char *str) { - if (str != NULL) DoCommandP(0, this->group_rename, 0, CMD_RENAME_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_RENAME), NULL, str); + if (str != NULL) DoCommandP(0, this->group_rename, 0, CMD_ALTER_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_RENAME), NULL, str); this->group_rename = INVALID_GROUP; } @@ -743,7 +831,7 @@ public: virtual void OnMouseDrag(Point pt, int widget) { - if (this->vehicle_sel == INVALID_VEHICLE) return; + if (this->vehicle_sel == INVALID_VEHICLE && this->group_sel == INVALID_GROUP) return; /* A vehicle is dragged over... */ GroupID new_group_over = INVALID_GROUP; @@ -760,7 +848,11 @@ public: } /* Do not highlight when dragging over the current group */ - if (Vehicle::Get(vehicle_sel)->group_id == new_group_over) new_group_over = INVALID_GROUP; + if (this->vehicle_sel != INVALID_VEHICLE) { + if (Vehicle::Get(vehicle_sel)->group_id == new_group_over) new_group_over = INVALID_GROUP; + } else if (this->group_sel != INVALID_GROUP) { + if (this->group_sel == new_group_over || Group::Get(this->group_sel)->parent == new_group_over) new_group_over = INVALID_GROUP; + } /* Mark widgets as dirty if the group changed. */ if (new_group_over != this->group_over) { diff --git a/src/heightmap.cpp b/src/heightmap.cpp index 50cfd6e22a..93cfa0a62c 100644 --- a/src/heightmap.cpp +++ b/src/heightmap.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Convert RGB colours to Grayscale using 29.9% Red, 58.7% Green, 11.4% Blue * (average luminosity formula, NTSC Colour Space) diff --git a/src/highscore.cpp b/src/highscore.cpp index b2dcf8e5f6..86e4f5ae88 100644 --- a/src/highscore.cpp +++ b/src/highscore.cpp @@ -20,6 +20,8 @@ #include "core/sort_func.hpp" #include "debug.h" +#include "safeguards.h" + HighScore _highscore_table[SP_HIGHSCORE_END][5]; ///< various difficulty-settings; top 5 char *_highscore_file; ///< The file to store the highscore data in. diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp index d79afe4ebd..35ada7266c 100644 --- a/src/highscore_gui.cpp +++ b/src/highscore_gui.cpp @@ -25,6 +25,8 @@ #include "widgets/highscore_widget.h" +#include "safeguards.h" + struct EndGameHighScoreBaseWindow : Window { uint32 background_img; int8 rank; diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index c5a8109ade..84288a0e81 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -16,6 +16,8 @@ #include "string_func.h" #include "window_gui.h" +#include "safeguards.h" + char *_hotkeys_file; /** @@ -139,7 +141,7 @@ static void ParseHotkeys(Hotkey *hotkey, const char *value) * by a '+'. * @param keycode The keycode to convert to a string. * @return A string representation of this keycode. - * @note The return value is a static buffer, strdup the result before calling + * @note The return value is a static buffer, stredup the result before calling * this function again. */ static const char *KeycodeToString(uint16 keycode) @@ -193,7 +195,7 @@ static const char *KeycodeToString(uint16 keycode) * keycodes are attached to the hotkey they are split by a comma. * @param hotkey The keycodes of this hotkey need to be converted to a string. * @return A string representation of all keycodes. - * @note The return value is a static buffer, strdup the result before calling + * @note The return value is a static buffer, stredup the result before calling * this function again. */ const char *SaveKeycodes(const Hotkey *hotkey) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 6cd4c29025..9deb043632 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -45,6 +45,8 @@ #include "table/industry_land.h" #include "table/build_industry.h" +#include "safeguards.h" + IndustryPool _industry_pool("Industry"); INSTANTIATE_POOL_METHODS(Industry) @@ -518,7 +520,7 @@ static void TransportIndustryGoods(TileIndex tile) if (newgfx != INDUSTRYTILE_NOANIM) { ResetIndustryConstructionStage(tile); - SetIndustryCompleted(tile, true); + SetIndustryCompleted(tile); SetIndustryGfx(tile, newgfx); MarkTileDirtyByTile(tile); } @@ -718,7 +720,7 @@ static void MakeIndustryTileBigger(TileIndex tile) SetIndustryConstructionCounter(tile, 0); SetIndustryConstructionStage(tile, stage); StartStopIndustryTileAnimation(tile, IAT_CONSTRUCTION_STATE_CHANGE); - if (stage == INDUSTRY_COMPLETED) SetIndustryCompleted(tile, true); + if (stage == INDUSTRY_COMPLETED) SetIndustryCompleted(tile); MarkTileDirtyByTile(tile); @@ -854,7 +856,7 @@ static void TileLoop_Industry(TileIndex tile) case GFX_GOLD_MINE_TOWER_ANIMATED: gfx = GFX_GOLD_MINE_TOWER_NOT_ANIMATED; break; } SetIndustryGfx(tile, gfx); - SetIndustryCompleted(tile, true); + SetIndustryCompleted(tile); SetIndustryConstructionStage(tile, 3); DeleteAnimatedTile(tile); } diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 5b264e6ffc..e6ecdf70f5 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -41,6 +41,8 @@ #include "table/strings.h" +#include "safeguards.h" + bool _ignore_restrictions; uint64 _displayed_industries; ///< Communication from the industry chain window to the smallmap window about what industries to display. diff --git a/src/industry_map.h b/src/industry_map.h index 14fb990187..7d927a13c3 100644 --- a/src/industry_map.h +++ b/src/industry_map.h @@ -85,13 +85,12 @@ IndustryType GetIndustryType(TileIndex tile); /** * Set if the industry that owns the tile as under construction or not * @param tile the tile to query - * @param isCompleted whether it is completed or not * @pre IsTileType(tile, MP_INDUSTRY) */ -static inline void SetIndustryCompleted(TileIndex tile, bool isCompleted) +static inline void SetIndustryCompleted(TileIndex tile) { assert(IsTileType(tile, MP_INDUSTRY)); - SB(_m[tile].m1, 7, 1, isCompleted ? 1 :0); + SB(_m[tile].m1, 7, 1, 1); } /** diff --git a/src/ini.cpp b/src/ini.cpp index 11f79ed16e..ccce192393 100644 --- a/src/ini.cpp +++ b/src/ini.cpp @@ -26,6 +26,8 @@ # include "core/mem_func.hpp" #endif +#include "safeguards.h" + /** * Create a new ini file with given group names. * @param list_group_names A \c NULL terminated list with group names that should be loaded as lists instead of variables. @see IGT_LIST @@ -87,6 +89,8 @@ bool IniFile::SaveToDisk(const char *filename) #endif #if defined(WIN32) || defined(WIN64) + /* _tcsncpy = strcpy is TCHAR is char, but isn't when TCHAR is wchar. */ + #undef strncpy /* Allocate space for one more \0 character. */ TCHAR tfilename[MAX_PATH + 1], tfile_new[MAX_PATH + 1]; _tcsncpy(tfilename, OTTD2FS(filename), MAX_PATH); diff --git a/src/ini_load.cpp b/src/ini_load.cpp index 158ffa6a78..389dcab031 100644 --- a/src/ini_load.cpp +++ b/src/ini_load.cpp @@ -15,18 +15,18 @@ #include "ini_type.h" #include "string_func.h" +#include "safeguards.h" + /** * Construct a new in-memory item of an Ini file. * @param parent the group we belong to * @param name the name of the item - * @param len the length of the name of the item + * @param last the last element of the name of the item */ -IniItem::IniItem(IniGroup *parent, const char *name, size_t len) : next(NULL), value(NULL), comment(NULL) +IniItem::IniItem(IniGroup *parent, const char *name, const char *last) : next(NULL), value(NULL), comment(NULL) { - if (len == 0) len = strlen(name); - - this->name = strndup(name, len); - if (this->name != NULL) str_validate(this->name, this->name + len); + this->name = stredup(name, last); + str_validate(this->name, this->name + strlen(this->name)); *parent->last_item = this; parent->last_item = &this->next; @@ -49,21 +49,19 @@ IniItem::~IniItem() void IniItem::SetValue(const char *value) { free(this->value); - this->value = strdup(value); + this->value = stredup(value); } /** * Construct a new in-memory group of an Ini file. * @param parent the file we belong to * @param name the name of the group - * @param len the length of the name of the group + * @param last the last element of the name of the group */ -IniGroup::IniGroup(IniLoadFile *parent, const char *name, size_t len) : next(NULL), type(IGT_VARIABLES), item(NULL), comment(NULL) +IniGroup::IniGroup(IniLoadFile *parent, const char *name, const char *last) : next(NULL), type(IGT_VARIABLES), item(NULL), comment(NULL) { - if (len == 0) len = strlen(name); - - this->name = strndup(name, len); - if (this->name != NULL) str_validate(this->name, this->name + len); + this->name = stredup(name, last); + str_validate(this->name, this->name + strlen(this->name)); this->last_item = &this->item; *parent->last_group = this; @@ -113,7 +111,7 @@ IniItem *IniGroup::GetItem(const char *name, bool create) if (!create) return NULL; /* otherwise make a new one */ - return new IniItem(this, name, strlen(name)); + return new IniItem(this, name, NULL); } /** @@ -169,8 +167,8 @@ IniGroup *IniLoadFile::GetGroup(const char *name, size_t len, bool create_new) if (!create_new) return NULL; /* otherwise make a new one */ - IniGroup *group = new IniGroup(this, name, len); - group->comment = strdup("\n"); + IniGroup *group = new IniGroup(this, name, name + len - 1); + group->comment = stredup("\n"); return group; } @@ -264,17 +262,17 @@ void IniLoadFile::LoadFromDisk(const char *filename, Subdirectory subdir) e--; } s++; // skip [ - group = new IniGroup(this, s, e - s); + group = new IniGroup(this, s, e - 1); if (comment_size != 0) { - group->comment = strndup(comment, comment_size); + group->comment = stredup(comment, comment + comment_size - 1); comment_size = 0; } } else if (group != NULL) { if (group->type == IGT_SEQUENCE) { /* A sequence group, use the line as item name without further interpretation. */ - IniItem *item = new IniItem(group, buffer, e - buffer); + IniItem *item = new IniItem(group, buffer, e - 1); if (comment_size) { - item->comment = strndup(comment, comment_size); + item->comment = stredup(comment, comment + comment_size - 1); comment_size = 0; } continue; @@ -290,9 +288,9 @@ void IniLoadFile::LoadFromDisk(const char *filename, Subdirectory subdir) } /* it's an item in an existing group */ - IniItem *item = new IniItem(group, s, t - s); + IniItem *item = new IniItem(group, s, t - 1); if (comment_size != 0) { - item->comment = strndup(comment, comment_size); + item->comment = stredup(comment, comment + comment_size - 1); comment_size = 0; } @@ -308,7 +306,7 @@ void IniLoadFile::LoadFromDisk(const char *filename, Subdirectory subdir) *e = '\0'; /* If the value was not quoted and empty, it must be NULL */ - item->value = (!quoted && e == t) ? NULL : strndup(t, e - t); + item->value = (!quoted && e == t) ? NULL : stredup(t); if (item->value != NULL) str_validate(item->value, item->value + strlen(item->value)); } else { /* it's an orphan item */ @@ -317,7 +315,7 @@ void IniLoadFile::LoadFromDisk(const char *filename, Subdirectory subdir) } if (comment_size > 0) { - this->comment = strndup(comment, comment_size); + this->comment = stredup(comment, comment + comment_size - 1); comment_size = 0; } diff --git a/src/ini_type.h b/src/ini_type.h index 05133c77f0..ce383b959c 100644 --- a/src/ini_type.h +++ b/src/ini_type.h @@ -28,7 +28,7 @@ struct IniItem { char *value; ///< The value of this item char *comment; ///< The comment associated with this item - IniItem(struct IniGroup *parent, const char *name, size_t len = 0); + IniItem(struct IniGroup *parent, const char *name, const char *last = NULL); ~IniItem(); void SetValue(const char *value); @@ -43,7 +43,7 @@ struct IniGroup { char *name; ///< name of group char *comment; ///< comment for group - IniGroup(struct IniLoadFile *parent, const char *name, size_t len = 0); + IniGroup(struct IniLoadFile *parent, const char *name, const char *last = NULL); ~IniGroup(); IniItem *GetItem(const char *name, bool create); diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index 3d07096d6b..eaf67fb971 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -33,6 +33,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + struct SelectGameWindow : public Window { SelectGameWindow(WindowDesc *desc) : Window(desc) diff --git a/src/landscape.cpp b/src/landscape.cpp index a19c98db95..c4116eaafd 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -37,6 +37,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + extern const TileTypeProcs _tile_type_clear_procs, _tile_type_rail_procs, diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 9fd2aa1937..af767fa7eb 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -811,13 +811,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} wag in depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} wag in die vliegtuig hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} het te min bevele in skedule STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} het 'n leë bevel STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} het duplikaat bevele STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} het onwettige stasie in sy bevele -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} raak oud. STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} raak baie oud. @@ -955,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Skermkiekie formaat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Kies die skermkiekie formaat om te gebruik - 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} @@ -1131,8 +1126,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Skakel rampe aa STR_CONFIG_SETTING_CITY_APPROVAL :Stadsraad se gesindheid teenoor omgewings-konstruksie: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoeveel invloed klank en skade aan die omgewing deur maatskappye aan die stadswaardering het en verderde bouwerk in die stad. -STR_CONFIG_SETTING_BUILDONSLOPES :Laat bou op skuinstes en kuslyn toe: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :As geaktiveer, kan spore en stasies op meeste hellings gebou word. Indien gedeaktiveer, kan hulle net gebou work op hellings wat die rigting van die spoor volg, en dus geen fondasies verg nie STR_CONFIG_SETTING_AUTOSLOPE :Laat landargitektuur toe onder geboue, spore, ens. (outohelling): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Laat Landargitektuur onder geboue en spore sonder om dit te verwyder STR_CONFIG_SETTING_CATCHMENT :Laat meer realisties grootte opvangsgebied toe: {STRING} @@ -1157,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Verbied triene STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 grade draaie kom voor wanneer 'n horisontale spoor direk gevolg deur 'n vertikale spoor op die aangrensende teël, dus waardeur die trein 'n 90 grade draai maak deur die teël rand in plaas van die gewone 45 grade vir 'n ander spoor kombinasies. Dit geld ook vir die draai radius van skepe STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Laat toe dat stasies lanks mekaar gebind kan word: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Laat die toevoeging van dele van 'n stasie sonder om direk aan die bestaande dele te raak toe. Ctrl+klik om die nuwe dele te plaas -STR_CONFIG_SETTING_IMPROVEDLOAD :Gebruik verebeterde laai algoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Indien geaktiveer, verskeie voertuie wat by 'n stasie wag sal opeenvolgend gelaai word. Die laai van die volgende voertuig begin eers wanneer daar is genoeg vrag is wat wag om die eerste voertuig te vul -STR_CONFIG_SETTING_GRADUAL_LOADING :Laai voertuie geleidelik: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Geleidelik laai vanvoertuie deur die gebruik van die voertuig se spesifieke laai tydsduur, in plaas van om alles op eenslag te laai met 'n vaste tydduur, afhangende van diehoeveelheid vrag gelaai STR_CONFIG_SETTING_INFLATION :Inflasie: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Aktiveer inflasie in die ekonomie, waar die kostes vinniger styg as betalings -STR_CONFIG_SETTING_SELECTGOODS :Aflewer vrag na 'n stasie slegs as daar 'n aanvrag is:: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Lewer slegs 'n vrag af by 'n stasie wat die vrag van die voertuig versoek het. Dit verhoed dat slegte graderings vir ladings wat nie benodig word by 'n stasie nie STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum brug lengte: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum lengte vir die bou van bruë STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tonnel lengte: {STRING} @@ -1192,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plek waar 'n tr STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :naby einde STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :middel STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ver einde -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Pad voertuig toustaan (met kwantum effekte): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Maak 'n pad voertuig wag by besette padstoppe totdat hulle leeg is STR_CONFIG_SETTING_AUTOSCROLL :Rol skerm as muis by die kant is: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :As dit geaktiveer is, sal subventers begin skuif wanneer die muis naby die kante van die venster is STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Gedeaktiveer @@ -1224,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Laat deur-ry pa STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Laat Bouery van deur-ry pad stasies op dorp beheerde paaie STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Laat deur-ry padhalte toe op paaie wat deur ander deelnemers besit word: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Laat die konstruksie van die ry-deur pad stasies op paaie toe wat deur ander maatskappye besit word -STR_CONFIG_SETTING_ADJACENT_STATIONS :Laat die bou van aangrensende stasies toe: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Laat verskeie stasies toe om mekaar te raak -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Aktiveer veeltallige NewGRF enjin stelle: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :versoenbaarheid opsie vir ou NewGRFs. Moenie deaktiveer, behalwe as jy weet wat jy doen! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Verandering van die stelling is nie moontlik wanneer daar voertuie is nie STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktuur onderhoud: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :As dit geaktiveer is sal dit veroorsaak dat infrastruktuur onderhoudskoste verhoog. Die koste groei oor-proporsioneel met die netwerk grootte, wat groter maatskappye meer as kleiner maatskappye benadeel @@ -1285,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Hoogtekaart rot STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Teller vooruit STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Vooruit STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Die hoogte vlak wat 'n plat scenario kaart kry: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Aktiveer terra vorming van teëls op die kaart rant: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :wanneer gedeaktiveer, die kaart se kante sal altyd see wees STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Een of meer teëls op die Noordelike grens is nie leeg nie STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Een of meer teëls by een van die kante is nie water nie @@ -1343,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lank (31ste Des STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standaard palet word aangeneem vir NewGRFs geen palet gespesifiseer: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Verstek kleurskema om te gebruik vir NewGRFs wat nie spesifeer watter kleurskema benodig word nie -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Verstek (D) kleur skakering -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Tradisionele (W) kleur skakering - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Outomaties pouse wanneer om te begin 'n nuwe speletjie: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :As hierdie opsie geaktiveer is, sal die spel gepousseer wees wanneer die spel begin. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Wanneer gepouseer laat toe: {STRING} @@ -1569,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Aanvanklike stad grootte multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Normale stede groote relatief na normale dorpe aan die begin van speletjie -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Verwyder absurde pad-elemente gedurende die pad konstruksie: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Verwyder doodloop strate, wanner befondse pad konstruksie plaasvind STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Herreken die verspreingskaart elke {STRING} da{P 0:2 g e} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tyd tussen daaropvolgende herrekeninge van die verspreidingskaart. Elke herrekening is vir een komponent van die hele kaart, so net 'n gedeelte is dan op datum, nie die hele kaart nie. Hoe korter hierdie stelling is, hoe meer verwerkingskrag word benodig, hoe langer hierdie stelling is, hoe langer vat dit vir die vrag om op nuwe roetes te versprei. @@ -1632,27 +1604,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Empiries (vt) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metries (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}koppelvlak STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisasie -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruksie -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Voertuie -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stasies -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomie -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Vrag Verspreiding -STR_CONFIG_SETTING_AI :{ORANGE}Mededingers -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Skerm opsies -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaksie STR_CONFIG_SETTING_SOUND :{ORANGE}Klankeffekte -STR_CONFIG_SETTING_NEWS :{ORANGE}Nuus en booskappe -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Seine -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Goedere hantering -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Rekenaar spelers -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Outo hernu -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Diens +STR_CONFIG_SETTING_INTERFACE :{ORANGE}koppelvlak +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruksie +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Voertuie STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Roete -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Treine -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Dorpe -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Nywerhede +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Dorpe +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Nywerhede +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Vrag Verspreiding +STR_CONFIG_SETTING_AI :{ORANGE}Mededingers +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Rekenaar spelers STR_CONFIG_SETTING_PATHFINDER_OPF :Oorspronklik STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1771,7 @@ STR_LIVERY_FREIGHT_TRAM :Vrag Trem STR_FACE_CAPTION :{WHITE}Gesig Keuse STR_FACE_CANCEL_TOOLTIP :{BLACK}Kanselleer nuwe gesig keuse STR_FACE_OK_TOOLTIP :{BLACK}Aanvar nuwe gesig keuse +STR_FACE_RANDOM :{BLACK}Lukraake STR_FACE_MALE_BUTTON :{BLACK}Manlik STR_FACE_MALE_TOOLTIP :{BLACK}Kies manlik gesigte @@ -2687,10 +2650,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Hoev. ny STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Sneeu lyn hoogte: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Beweeg die sneeu lyn een op STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Beweeg die sneeu lyn een af -STR_MAPGEN_RANDOM_SEED :{BLACK}Lukraak Saad: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik om 'n willekeurige saad in te voer -STR_MAPGEN_RANDOM :{BLACK}Lukraake -STR_MAPGEN_RANDOM_HELP :{BLACK}Verander die lukraak saad gebruik vir Terrein Generasie STR_MAPGEN_LAND_GENERATOR :{BLACK}Land genereerder: STR_MAPGEN_TREE_PLACER :{BLACK}Boom algoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrein tipe: @@ -2717,7 +2676,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Hoogteka STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Groote: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Sleutel 'n lukraak saad in STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Verander sneeu lyn hoogte STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Verander begin jaar @@ -3303,6 +3261,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Vee uit STR_GROUP_RENAME_TOOLTIP :{BLACK}Hernoem die gekose groep STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik om hierdie groep teen outovervanging te beskerm + STR_GROUP_ADD_SHARED_VEHICLE :Voeg gedeelde voertuie STR_GROUP_REMOVE_ALL_VEHICLES :Verwyder alle voertuie diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index ffdcdc1d4f..ddb0188dff 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -785,13 +785,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} تنتظر في حوض السفن STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} تنتظر في الحظيرة -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} لديها اوامر قليلة جدا في جدولها STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} لديها امر غير صالح STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} لديها امر مكرر STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} لديها محطة غير صالحة في القائمة -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} اصبحت قديمة STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} اصبحت قديمة جدا @@ -922,9 +920,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}صيغة حفظ الشاشة -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}اختر صيغة حفظ الشاشة - STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ملف مفقود او غير صالح @@ -1056,7 +1051,6 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :متوسط STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين -STR_CONFIG_SETTING_BUILDONSLOPES :السماح بالبناء على المنحدرات و السواحل: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :السماح باعادة بناء التلال تحت المباني, الطرق, الخ .-الانحدار الذاتي- {STRING} STR_CONFIG_SETTING_CATCHMENT :السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {STRING} @@ -1065,10 +1059,7 @@ STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :موديل تس STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :نمط تسارع عربات الطريق: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG :منع القطارات والسفن من الدوران بزاوية تسعين درجة : {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :السماح بربط محطتين غير متجاورتين : {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :أستخدام خوارزمية التحميل المحسنه: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :تحميل القطارات بالتدريج: {STRING} STR_CONFIG_SETTING_INFLATION :التضخم: {STRING} -STR_CONFIG_SETTING_SELECTGOODS :أوصل الحموله للمحطه إذا كان هناك حاجة فقط: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :طريقة بناء المصانع الأولية يدوية : {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :بدون STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :ككل المصانع الأخرى @@ -1080,7 +1071,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :اوامر ال STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :قرب النهاية STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :وسط STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :النهاية القصوى -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :تسلسل عربات الطريق - بالتأثير الكمي : {STRING} STR_CONFIG_SETTING_AUTOSCROLL :حرك الشاشة عندما تكون المؤشر على الحافة: {STRING} STR_CONFIG_SETTING_BRIBE :السماح برشوة السلطات االمحليه: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :السماح بشراء حقوق النقل الحصري: {STRING} @@ -1094,8 +1084,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :منخفض STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :طبيعي STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :السماح للعربات بالعبور خلال المواقف المملوكة داخل المدن: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :السماح بمرور العربات خلال المحطات المملوكة للمنافسين: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :السماح ببناء محطات متلاصقة{STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES :السماح بتعدد محركات NewGFR {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}تغير هذا الخيار غير متاح عندما يكون هناك عربات STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :صيانة البنية التحتية: {STRING} @@ -1130,7 +1118,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :اتجاة خر STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :عكس عقارب الساعة STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :مع عقارب الساعة STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :الأرتفاع الأعلى في محرر الخريطة لسطح المستوي: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :السماح بتعديل الحدود الحرة للخريطة: {STRING} STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}مربع او اكثر غير فارغ في الحدود الشمالية STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}مربع او اكثر من حدود الخريطة لا يكون بحر @@ -1166,8 +1153,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :طويل - 31 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :قصير - 31 - 12 - 2008 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ايزو 31-12-2008 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :النوافذ القياسية للاضافة غير محددة: {STRING} - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :إيقاف اللعبة تلقائيا عند بدأ لعبة جديدة: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :عندمل توقف أسمح: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :لا تصرف @@ -1302,7 +1287,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :عادي STR_CONFIG_SETTING_TOWN_GROWTH_FAST :سريع STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :سريع جدا STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :مضاعف المدن المبدئي: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :ازالة العوالق اثناء ترميم الطرق: {STRING} @@ -1311,25 +1295,15 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :ازالة ال -STR_CONFIG_SETTING_GUI :{ORANGE}النظام البيني -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}البناء -STR_CONFIG_SETTING_VEHICLES :{ORANGE}المركبات -STR_CONFIG_SETTING_STATIONS :{ORANGE}المحطات -STR_CONFIG_SETTING_ECONOMY :{ORANGE}الأقتصاد -STR_CONFIG_SETTING_AI :{ORANGE}المتنافسين -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}عرض الخيارات -STR_CONFIG_SETTING_INTERACTION :{ORANGE} التفاعل STR_CONFIG_SETTING_SOUND :{ORANGE}الصوت -STR_CONFIG_SETTING_NEWS :{ORANGE}الاخبار و الرسائل -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}الإشارات -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE} طريقة التحميل -STR_CONFIG_SETTING_AI_NPC :{ORANGE} لاعبين الحاسوب -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE} التجديد التلقائي -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE} الصيانة +STR_CONFIG_SETTING_INTERFACE :{ORANGE}النظام البيني +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}البناء +STR_CONFIG_SETTING_VEHICLES :{ORANGE}المركبات STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE} المسارات -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE} قطارات -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE} مدن -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE} مصانع +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE} مدن +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE} مصانع +STR_CONFIG_SETTING_AI :{ORANGE}المتنافسين +STR_CONFIG_SETTING_AI_NPC :{ORANGE} لاعبين الحاسوب STR_CONFIG_SETTING_PATHFINDER_OPF :اصلي STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1474,6 +1448,7 @@ STR_LIVERY_FREIGHT_TRAM :عربة ترا STR_FACE_CAPTION :{WHITE}اختيار الوجة STR_FACE_CANCEL_TOOLTIP :{BLACK}الغاء اختيار الوجة الجديد STR_FACE_OK_TOOLTIP :{BLACK}اقبل الوجة الجديد +STR_FACE_RANDOM :{BLACK}عشوائي STR_FACE_MALE_BUTTON :{BLACK}رجل STR_FACE_MALE_TOOLTIP :{BLACK}اختر وجة رجل @@ -2314,10 +2289,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}عدد STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK} ارتفاع خط الثلج STR_MAPGEN_SNOW_LINE_UP :{BLACK}ارفع خط الثلج مستوى واحد STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}خفض خط الثلج مستوى واحد -STR_MAPGEN_RANDOM_SEED :{BLACK}مرجع عشوائي -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}اضغط لادخال مرجع عشوائي -STR_MAPGEN_RANDOM :{BLACK}عشوائي -STR_MAPGEN_RANDOM_HELP :{BLACK}غير المرجع العشوائي لتوليد تضاريس الخريطة STR_MAPGEN_LAND_GENERATOR :{BLACK}مولد الخريطة: STR_MAPGEN_TREE_PLACER :{BLACK} لوغاريثم الشجر: STR_MAPGEN_TERRAIN_TYPE :{BLACK} نوع التضاريس @@ -2344,7 +2315,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}ادخل مرجع عشوائي STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية @@ -2829,6 +2799,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}أحذف STR_GROUP_RENAME_TOOLTIP :{BLACK}أعد تسمية المجموعة المختارة STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}اضغط لحماية المجموعة من التغيير الكلي للعربات + STR_GROUP_ADD_SHARED_VEHICLE :اضافة عربات مشتركة STR_GROUP_REMOVE_ALL_VEHICLES :أزل جميع المركبات diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 909aa9c5f6..3790452246 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -199,21 +199,26 @@ STR_UNITS_POWER_IMPERIAL :{COMMA}hp STR_UNITS_POWER_METRIC :{COMMA}hp STR_UNITS_POWER_SI :{COMMA}kW +STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}t STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}t STR_UNITS_WEIGHT_SHORT_SI :{COMMA}kg +STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA} tona{P "" s} STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} tona STR_UNITS_WEIGHT_LONG_SI :{COMMA} kg +STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}galoi STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}l STR_UNITS_VOLUME_SHORT_SI :{COMMA}m³ +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA} galoi{P "" s} STR_UNITS_VOLUME_LONG_METRIC :{COMMA} litro STR_UNITS_VOLUME_LONG_SI :{COMMA} m³ STR_UNITS_FORCE_SI :{COMMA} kN STR_UNITS_HEIGHT_IMPERIAL :{COMMA} ft +STR_UNITS_HEIGHT_METRIC :{COMMA} m STR_UNITS_HEIGHT_SI :{COMMA} m # Common window strings @@ -221,6 +226,7 @@ STR_LIST_FILTER_TITLE :{BLACK}Lokarri STR_LIST_FILTER_OSKTITLE :{BLACK}Sartu lokarri iragazkia STR_LIST_FILTER_TOOLTIP :{BLACK}Sartu hitz bat iragazkian zerrendan aurkitzeko +STR_TOOLTIP_GROUP_ORDER :{BLACK}Aukeratu taldekatzeko ordena STR_TOOLTIP_SORT_ORDER :{BLACK}Hautatu agertze ordena (deszendientea/aszendientea) STR_TOOLTIP_SORT_CRITERIA :{BLACK}Aukeratu ordenatze irizpideak STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Aukeratu iragazki irizpideak @@ -288,6 +294,7 @@ STR_SORT_BY_POWER_VS_RUNNING_COST :Potentzia/Mante STR_SORT_BY_CARGO_CAPACITY :Zama Edukiera STR_SORT_BY_RANGE :Irismena STR_SORT_BY_POPULATION :Biztanleria +STR_SORT_BY_RATING :Balorazioa # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Jokoa pausatu @@ -703,6 +710,7 @@ STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLA STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Aukeratu hirien izenak on/off mapan STR_SMALLMAP_CENTER :{BLACK}Mapa txikia orain zauden posizioan zentratu STR_SMALLMAP_INDUSTRY :{TINY_FONT}{STRING} ({NUM}) +STR_SMALLMAP_LINKSTATS :{TINY_FONT}{STRING} STR_SMALLMAP_COMPANY :{TINY_FONT}{COMPANY} STR_SMALLMAP_TOWN :{TINY_FONT}{WHITE}{TOWN} STR_SMALLMAP_DISABLE_ALL :{BLACK}Dena desgaitu @@ -713,6 +721,8 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Erakutsi STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Garaiera mapa erakutsi/ ez erakutsi STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Ez erakutsi konpainiaren jabetzak mapan. STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Erakutsi konpaniaren propietate denak mapan +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Ez erakutsi zamarik mapan +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Zama guztiak mapan erakutsi # Status bar messages STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Erakutsi azken mezu edo albiste erreportaia @@ -789,13 +799,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} deposituan itxaroten dago STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} hegazkin deposituan itxaroten dago -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} agindu gutxiegi ditu zerrendan STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} agindu zerrenda hutsik du STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} agindu bikoitzak ditu STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} geltoki baliogabea du aginduetan -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} zaharra bihurtzen ari da STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} oso zaharra bihurtzen ari da @@ -931,9 +939,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Pantaila STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantailaren resulozioa aukeratu STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Pantaila argazkien formatoa -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Screenshot-aren formatua aukeratu - 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} @@ -1047,6 +1052,8 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Joko ezarpenak STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Konpainia ezarpenak (Gorden bilduta; bakarrik joko berriei eragingo die) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Konpainia ezarpenak (Gorden bilduta; bakarrik uneko konpainiari eragiten dio) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategoria: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Mota: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Beheko zerrenda laburtu bakarrik aldatutako ezarpenak erakutsiz STR_CONFIG_SETTING_RESTRICT_BASIC :Oinarrizko ezarpenak STR_CONFIG_SETTING_RESTRICT_ADVANCED :Ezarpen aurreratuak @@ -1054,6 +1061,7 @@ STR_CONFIG_SETTING_RESTRICT_ALL :Adituentzako ez STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Ezarpenak lehenetsitakoen balio ezberdinarekin STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Balio ezberdinak dituzten ezarpenak zure joko berriaren ezarpenekin alderatuta +STR_CONFIG_SETTINGS_NONE :{WHITE}- Ezer ez - STR_CONFIG_SETTING_OFF :Itzalita STR_CONFIG_SETTING_ON :Piztuta @@ -1094,8 +1102,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Azpiegiturak et STR_CONFIG_SETTING_CITY_APPROVAL :Udaletxearen jarrera bere lurrak berregituratzeko: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Aukeratu zenbateraino eragingo dion konpainia bati herri batean zarata sortzea eta ingurumena kaltetzea, herrian duen balorazioa txartuz eta eraikin berriak egiteko baimena mugatuz -STR_CONFIG_SETTING_BUILDONSLOPES :Aldapa eta kostan eraikitzea baimendu: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Gaitua badago, bideak eta geltokiak mendi magal gehienetan eraiki daitezke. Desgaitua badago, bakarrik onartuko dira bidearen norabidearekin bat datozen mendi magalak STR_CONFIG_SETTING_AUTOSLOPE :Eraikinen, trenbideen etabarren azpian paisaia aldatzea baimendu. (autoaldapak): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Eraikin eta bideen azpian paisaia aldatzea baimendu hauek kendu gabe STR_CONFIG_SETTING_CATCHMENT :Geltokien irismen eremu hedapena errealagoa egitea baimendu: {STRING} @@ -1120,14 +1126,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Itsasontzi eta STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 graduko bihurgunek trenbide horizontalari trenbide bertikala jarraitzen dionean gertatzen da, trenak 90 graduko bihurgunea egingo du ohiko 45 graduko bihurguneen ordez. Honako hau itsasuntzientzat aplikatzen da ere STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Elkarren ondoan ez baina oso hurbil dauden geltokiak bateratu : {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Geltoki bati zatiak gehitu dauden zatiak ukitu gabe. Zati berriak gehitzerakoan Crtl+klikatu sakatu beharko da. -STR_CONFIG_SETTING_IMPROVEDLOAD :Zamatzeko algoritmo hobetua erabili: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Gaitua badago, geltokian dauden ibilgailuak sekuentzalki kargatuko dira. Hurrengo ibilgailuaren karga bakarrik hasiko da aurreko ibilgailua betetzeko adina karga badago -STR_CONFIG_SETTING_GRADUAL_LOADING :Ibilgailuak mailaka zamatu: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Ibilgailuak gradualki zamatu ibilgailu bakoitzaren zamaketa denbora espezifikazioak erabiliz, guztia batera zamatuko duen denbora finkoa erabili ordez, zama kopuruan oinarritzen dena STR_CONFIG_SETTING_INFLATION :Inflazioa: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Gaitu inflazioa ekonomiari, kosteak salneurriak baino pixka bat azkarrago igoko dira -STR_CONFIG_SETTING_SELECTGOODS :Geltokietan bakarrik onartutako zama utzi : {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Bakarrik zamak geltokietara eraman ibilgailu batek zama hori jasotzera joan bada. Honek geltokietan garraiatuak ez diren zamen kalifikazio txarrak ekiditzen ditu STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Zubien gehienezko luzera: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Zubiak eraikitzeko gehienezko luzera STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Tunel baten gehienezko luzera: {STRING} @@ -1155,8 +1155,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Lehenezpenez tr STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :amaieratik gertu STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :erdian STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :amaieratik urrun -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Errepide ibilgailuen lerroketak(quantum efektuekin): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Errepide ibligaluak okupatutako errepideen aurrean itxaronaraztea errepidea hustu arte STR_CONFIG_SETTING_AUTOSCROLL :Leihoa mugitu sagua ertzean dagoenean: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Gaitua dagoenean, sagua lehioen ertzara hurbiltzerakoan mapa mugitzen hasiko da STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desgaitua @@ -1187,10 +1185,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Herrien errepid STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Herrien menpe dauden errepideetan zehar-pasatzeko geltokiak baimendu STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Arerioen errepideetan zehar-pasatzeko geltokiak baimendu: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Beste konpainien menpe dauden errepideetan zehar-pasatzeko geltokiak bahimendu -STR_CONFIG_SETTING_ADJACENT_STATIONS :Alboko geltokiak eraikitzea baimendu: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Geltoki ezberdinak bata bestea ukitzea baimendu -STR_CONFIG_SETTING_DYNAMIC_ENGINES :NewGRF set bat baino gehiago erabili ahal izatea aktibatu: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :NewGRF zaharren bateragarritasun aukera. Ez ezgaitu hau ez badakizu zer egiten hari zaren! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Hau ezin da aldatu ibilgailuak daudenean STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Azpiegituren mantentze-lana: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Gaitua dagoenean, azpiegiturek mantentze kostuak eragiten dituzte. Kostuak garraio sarearekin proportzionalki hazten dira, hau da, kostu handiagoak izango dituzten konpainia handiagoek @@ -1248,8 +1242,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Garaiera mapare STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Erlojuko orratzen kontrara STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Erlojuko orratzen erara STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Eszenario mapa lauak hartzen duten garaiera: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Maparen ertzean dauden laukitxoetan paisaia eraldatzea baimendu: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Desgaituta badago, maparen mugak itsasoa izango dira beti STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ipar ertzean dauden laukitxoetako bat, edo bat baino gehiago ez daude hutsik STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Edozein ertzean dauden laukitxo bat edo bat baino gehiagotan ez da urik egongo @@ -1306,9 +1298,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :luzea (2008ko A STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :laburra (2008-12-31) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paletarik zehazten ez duten NewGRF berrientzat aurretik zehaztutako paleta erabiltzea: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Beharrezko paleta zehazten ez duten NewGRFetan paleta lehenetsia erabili - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatikoki jokoa pausan jarri joko berri bat hastearakoan: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Gaitua dagoenean, joko berria hasterakoan automatikoki pausatua egongo da, aldez aurretik mapa aztertzeko STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Jokoa geldituta dagoenean baimendu: {STRING} @@ -1499,33 +1488,59 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :{COMMA}-tik bat STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Bat ere ez STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Herrien hasierako tamainaren biderkatzailea: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Joko hasieran hirien bataz besteko tamaina herri normalekin alderatuta -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Errepideak eraikitzerakoan elementu ez egokiak eragotzi: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Errepide berreraikuntza ordaintzerakoan irteerarik gabeko errepideak kentzea +STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :eskuz egin +STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetrikoa +STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetrikoa +STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Banaketen zehaztasuna: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Abiadura unitateak: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Inperiala (milia/orduko) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrikoa (km/h) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Ibilgailuen indar unitateak: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Inperiala (zp) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metrikoa (zp) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Pisu unitateak: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Metrikoa (t/tona) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Bolumen unitateak: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Inperiala (galoi) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Metrikoa (l) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Metrikoa (kgf) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Garaiera unitateak: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Inperiala (oin) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrikoa (m) +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfazea -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Eraikuntza +STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Kokapena +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafikoak +STR_CONFIG_SETTING_SOUND :{ORANGE}Soinu efektuak +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfazea +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Orokorra +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Eraikuntza +STR_CONFIG_SETTING_COMPANY :{ORANGE}Konpainia STR_CONFIG_SETTING_VEHICLES :{ORANGE}Ibilgailuak -STR_CONFIG_SETTING_STATIONS :{ORANGE}Geltokiak -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomia -STR_CONFIG_SETTING_AI :{ORANGE}Lehiakideak -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Aukerak erakutsi -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interakzioa -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Seinaleak -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Zamak -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Ordenagailu jokalariak -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Berritze automatikoa -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Mantenimendua +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fisika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Ibilbideak -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trenak -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Herriak -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industriak +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Mugak +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Hondamendiak / Istripuak +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Mundua sortu +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ingurugiroa +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Agintariak +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Herriak +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industriak +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Zama Banaketa +STR_CONFIG_SETTING_AI :{ORANGE}Lehiakideak +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Ordenagailu jokalariak STR_CONFIG_SETTING_PATHFINDER_OPF :Jatorrizkoa STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1559,6 +1574,7 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... Gord STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... jaramonik ez egiten Grafiko baseari '{STRING}': ez da aurkitu STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... jaramonik ez egiten Soinu Paketeari '{STRING}': ez da aurkitu 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 # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -1680,6 +1696,7 @@ STR_LIVERY_FREIGHT_TRAM :Merkantzietarak STR_FACE_CAPTION :{WHITE}Aurpegia aukeratu STR_FACE_CANCEL_TOOLTIP :{BLACK}Bertan behera utzi aurpegia aukeratu STR_FACE_OK_TOOLTIP :{BLACK}Aurpegi berria onartu +STR_FACE_RANDOM :{BLACK}Ausaz egin STR_FACE_MALE_BUTTON :{BLACK}Gizonezkoa STR_FACE_MALE_TOOLTIP :{BLACK}Aukeratu gizonezko aurpegiak @@ -1735,6 +1752,8 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Aldatu k # Network server list STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Multijokalaria +STR_NETWORK_SERVER_LIST_ADVERTISED_NO :Ez +STR_NETWORK_SERVER_LIST_ADVERTISED_YES :Bai STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Jokalariaren izena: STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Izen honen bidez ezagutua izango zara beste jokalarien artean @@ -1793,6 +1812,8 @@ STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Jokoaren STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Pasahitza ezarri STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Babestu zure jokoa pasahitz batekin ez baduzu nahi publikoa izatea +STR_NETWORK_START_SERVER_UNADVERTISED :Ez +STR_NETWORK_START_SERVER_ADVERTISED :Bai STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} Bezero STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Gehienezko bezeroak: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Gehienezko bezero kopurua aukeratu. Ez da beharrezkoa guztia betetzea @@ -1913,6 +1934,7 @@ STR_NETWORK_CLIENT :Bezeroa STR_NETWORK_SPECTATORS :Ikusleak STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Eman nahi duzun diru kantitatea ezarri +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Ikusle # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}Ez gorde sartutako pasahitza @@ -2102,8 +2124,12 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Zama adi STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Objektuak ikusezinak egin, gardenak izan ordez # Linkgraph legend window +STR_LINKGRAPH_LEGEND_ALL :{BLACK}Denak +STR_LINKGRAPH_LEGEND_NONE :{BLACK}Bat ere ez # Linkgraph legend window and linkgraph legend in smallmap +STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}erabiltzeke +STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}saturatua # Base for station construction window(s) STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Geltoki irismena erakutsi @@ -2165,7 +2191,7 @@ STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Geltokia STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Eraikiko den geltoki mota STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Eraikiko den geltoki mota -STR_STATION_CLASS_DFLT :Oinarrizko geltokia +STR_STATION_CLASS_DFLT :Geltoki lehenetsia STR_STATION_CLASS_WAYP :Bidepuntuak # Signal window @@ -2407,6 +2433,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Onartutako zama: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Trenbidearen abiadura muga: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Bideko abiadura muga: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Haitzak @@ -2522,6 +2549,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Gorde STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Jokoa gorde, aukeratutako izenarekin STR_SAVELOAD_LOAD_BUTTON :{BLACK}Kargatu STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Aukeratutako jokoa kargatu +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Aukeratutako garaiera mapa kargatu STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Jokoaren Xehetasunak STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Ez dago informaziorik STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2539,10 +2567,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Industri STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Elur garaiera: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Igo puntu batean elur garaiera STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Jeitsi puntu batean elur garaiera -STR_MAPGEN_RANDOM_SEED :{BLACK}Ausazko hazia: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikatu ausazko hazia ezartzeko -STR_MAPGEN_RANDOM :{BLACK}Ausaz egin -STR_MAPGEN_RANDOM_HELP :{BLACK}Ausazko hazia aldatu paisaia sortzeko STR_MAPGEN_LAND_GENERATOR :{BLACK}Paisaia sortzailea: STR_MAPGEN_TREE_PLACER :{BLACK}Zuhaitz algoritmoa: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Lur mota: @@ -2569,7 +2593,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Garaiera STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaina: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Ausazko hazia ezarri STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Elur garaiera aldatu STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Hasierako urtea aldatu @@ -2748,6 +2771,7 @@ STR_NEWGRF_INVALID_ENGINE : # Placeholders for other invalid stuff, e.g. vehicles that have gone (Game Script). +STR_INVALID_VEHICLE : # NewGRF scanning window STR_NEWGRF_SCAN_CAPTION :{WHITE} NewGRF berriak bilatzen. @@ -2830,9 +2854,13 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Urte ba STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Udaletxea sobornatu zure balorazioa hobetzeko, isun larria jasotzeko arriskuarekinn.{}Kostea: {CURRENCY_LONG} # 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_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 @@ -2872,6 +2900,13 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikatu garraio zerbitzuan ikuspegi nagusia industria/herrian zentratzeko. Ktrl+Klik ikuspegi lehio berria irekiko du indutri/herriaren kokapenean # Story book window +STR_STORY_BOOK_TITLE :{YELLOW}{STRING} +STR_STORY_BOOK_GENERIC_PAGE_ITEM :Orrialdea {NUM} +STR_STORY_BOOK_PREV_PAGE :{BLACK}Aurrekoa +STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Aurreko orrialdera joan +STR_STORY_BOOK_NEXT_PAGE :{BLACK}Hurrengoa +STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Hurrengo orrialdera joan +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Helburu erreferentzia baliogabea # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Geltokien izenak - Klikatu geltokiaren izenean ikuspegi nagusia geltokian zentratzeko. Ktrl+Klik Ikuspegi lehio berria irekiko du geltokiaren kokapenean @@ -2899,8 +2934,27 @@ STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPAN STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Zama balorazioak STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Geltokiaren zama balorazioak erakutsi +STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) +STR_STATION_VIEW_WAITING_STATION :Geltokia: Itxaroten +STR_STATION_VIEW_WAITING_AMOUNT :Kopurua: Itxoiten +STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} {STATION}-tik +STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT}{STATION}-tik +STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT}{STATION}-ra +STR_STATION_VIEW_FROM_ANY :{RED}{CARGO_SHORT} geltoki ezezagunetik +STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHORT} edozein geltokitara +STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} edozein geltokitatik pasatuz +STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} geltoki honetatik +STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} geltoki honetan geldituz +STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} geltoki honetara +STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} gelditu gabe +STR_STATION_VIEW_GROUP_S_V_D :Abiapuntua-Bidea-Helburua +STR_STATION_VIEW_GROUP_S_D_V :Abiapuntua-Helburua-Bidea +STR_STATION_VIEW_GROUP_V_S_D :Bidea-Abiapuntua-Helburua +STR_STATION_VIEW_GROUP_V_D_S :Bidea-Helburua-Abiapuntua +STR_STATION_VIEW_GROUP_D_S_V :Helburua-Abiapuntua-Bidea +STR_STATION_VIEW_GROUP_D_V_S :Helburua-Bidea-Abiapuntua ############ range for rating starts STR_CARGO_RATING_APPALLING :Negargarria @@ -3043,6 +3097,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Azken hi STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} (%{COMMA} garraiatua) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Ikuspegi nagusia industrian kokatu. Ktrl+Klik ikuspegi lehio berri bat irekiko du industriaren kokapenarekin STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ekoizpen kopurua: {YELLOW}{COMMA}% +STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industriak berehalako itxiera iragarri du! ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Beharrezkoa du: {YELLOW}{STRING}{STRING} @@ -3111,6 +3166,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Aukeratu STR_GROUP_RENAME_TOOLTIP :{BLACK}Aukeratutako taldea berrizendatu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikatu taldean ordezkatze orokorretik babesteko + STR_GROUP_ADD_SHARED_VEHICLE :Geheitu konpartituako ibilgailuak STR_GROUP_REMOVE_ALL_VEHICLES :Ibilgailu guztiak ezabatu @@ -3158,10 +3214,10 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Ibilgail STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Itsasontia erosi STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Hegazkina erosi -STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Piztuta dagoen ibilgailua erosi. Shift+Klik gutxi gora beherako kostea erakutsi -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Piztuta dagoen ibilgailua erosi. Shift+Klik gutxi gora beherako kostea erakutsi -STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Piztuta dagoen itsasontzia erosi. Shift+Klik gutxi gora beherako kostea erakutsi -STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Piztuta dagoen hegazkina erosi. Shift+Klik gutxi gora beherako kostea erakutsi +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Aukeratuta dagoen ibilgailua erosi. Shift+Klik gutxi gora beherako kostea erakutsi +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Aukeratuta dagoen ibilgailua erosi. Shift+Klik gutxi gora beherako kostea erakutsi +STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Aukeratuta dagoen itsasontzia erosi. Shift+Klik gutxi gora beherako kostea erakutsi +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Aukeratuta dagoen hegazkina erosi. Shift+Klik gutxi gora beherako kostea erakutsi STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Berrizendatu STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Berrizendatu @@ -3406,6 +3462,9 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Mantenim STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Mantenimendu tartea 10 puntutan igo. Ktrl+klik mantenimendu tartea 5 puntutan igo STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Mantenimendu tartea 10 puntutan gutxitu. Ktrl+klik mantenimendu tartea 5 puntutan gutxitu +STR_VEHICLE_DETAILS_DEFAULT :Lehenetsia +STR_VEHICLE_DETAILS_DAYS :Egunak +STR_VEHICLE_DETAILS_PERCENT :Ehunekoa STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Trena izendatu STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Errepide ibilgailua izendatu @@ -3755,6 +3814,7 @@ STR_AI_SETTINGS_START_DELAY :IA hau abiarazt STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} {STRING} ren "irakur nazazu" artxiboa STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} {STRING}-aren aldaketak STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} {STRING} rako lizentzia +STR_TEXTFILE_WRAP_TEXT :{WHITE}Testua trinkotu STR_TEXTFILE_VIEW_README :{BLACK}Ikusi "irakur nazazu" STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Aldaketak STR_TEXTFILE_VIEW_LICENCE :{BLACK}Lizentzia @@ -3777,6 +3837,10 @@ STR_INCOME_FLOAT_INCOME_SMALL :{TINY_FONT}{GRE STR_INCOME_FLOAT_INCOME :{GREEN}Sarrerak: {CURRENCY_LONG} STR_FEEDER_TINY :{TINY_FONT}{YELLOW}Transferitu: {CURRENCY_LONG} STR_FEEDER :{YELLOW}Transferitu: {CURRENCY_LONG} +STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}Transferitu: {CURRENCY_LONG}{WHITE} / {GREEN}Sarrera: {CURRENCY_LONG} +STR_FEEDER_INCOME :{YELLOW}Transferitu: {CURRENCY_LONG}{WHITE} / {GREEN}Sarrera: {CURRENCY_LONG} +STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}Transferitu: {CURRENCY_LONG}{WHITE} / {RED}Kostua: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}Transferitu: {CURRENCY_LONG}{WHITE} / {RED}Kostua: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}Gutxi gora beherako kostea: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Gutxi gora beherako sarrerak: {CURRENCY_LONG} @@ -4128,6 +4192,9 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Ezin da STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... garraioa suntsituta +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Ez da ibilgailu erabilgarririk egongo +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Aldatu zure NewGRF konfigurazioa +STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ez dago ibilgailu erabilgarririk oraindik # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ezin da trena seinalea pasatzera behartu, istripu arriskua... @@ -4172,6 +4239,7 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Ezin da STR_DESKTOP_SHORTCUT_COMMENT :Transport Tycoon Deluxe-ren simulazio bat # Translatable descriptions in media/baseset/*.ob* files +STR_BASESOUNDS_NONE_DESCRIPTION :Soinurik gabeko soinu pakete bat ##id 0x2000 # Town building names @@ -4621,6 +4689,7 @@ STR_JUST_DATE_ISO :{DATE_ISO} STR_JUST_STRING :{STRING} STR_JUST_STRING_STRING :{STRING}{STRING} STR_JUST_RAW_STRING :{STRING} +STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING} # Slightly 'raw' stringcodes with colour or size STR_BLACK_COMMA :{BLACK}{COMMA} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 316f448a72..1a413fe814 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1123,13 +1123,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} чакае ў дэпо STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} чакае ў самалётным анґары -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}У ТС «{VEHICLE}» не хапае заданьняў у раскладзе STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} не мае заданьняў STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} мае дубляваныя заданьні STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} мае няісную станцыю ў заданьнях -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} састарэў STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} цалкам састарэў @@ -1267,9 +1265,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Выра STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбар вырашэньня экрана STR_GAME_OPTIONS_RESOLUTION_OTHER :Iншае -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Фармат здымкаў экрана -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_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 "" ы аў} @@ -1443,8 +1438,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Пераклю STR_CONFIG_SETTING_CITY_APPROVAL :Стаўленьне гарадзкой рады да рэструктурызацыі навакольляў: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Выберыце ўзровень шуму й забруджваньня навакольнага асяроддзя кампаніямі, які ўплывае на іх рэйтынґ у гарадах і магчымасьць далейшага будаўніцтва каля гарадоў -STR_CONFIG_SETTING_BUILDONSLOPES :Дазволіць будаўніцтва на сьхілах і на беразе: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Калі ўключана, рэйкі й станцыі ня могуць будавацца на сьхілах. Калі адключана, то можна будаваць на сьхілах, якія адпавядаюць напрамку рэйкаў і таму не патрабуюць фундамэнтаў. STR_CONFIG_SETTING_AUTOSLOPE :Дазволіць зьмену ляндшафту пад будынкамі, дарогамі й г. д. (аўтаспускі): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Дазволіць зьмену ляндшафту пад будынкамі й рэйкамi, не выдаляючы іx STR_CONFIG_SETTING_CATCHMENT :Зона пакрыцьця залежыць ад тыпу станцыі: {STRING} @@ -1469,14 +1462,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Забаран STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-ґрадусныя павароты здараюцца, калі за гарызантальнымі рэйкамі адразу вынікаюць вэртыкальныя на суседняй клетцы. Цягнік вымушаны паварочваць на 90 ґрадусаў пры перасячэньні клетак замест звычайных 45 ґрадусаў пры іншай камбінацыі каляінаў. Гэта таксама датычыць радыюса паваротаў для караблёў. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Дазволіць аб'яднаньне станцыяў, не прымыкаючых адна да адной: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Дазволіць дадаць частку станцыі, якая непасрэдна не прылягае да існуючых частак. Патрабуе Ctrl+пстрычку пры разьмяшчэньні новых частак. -STR_CONFIG_SETTING_IMPROVEDLOAD :Выкарыстоўваць палепшаны алгарытм загрузкі: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Калі ўключана, некалькі транспартных сродкаў, якія чакаюць на станцыі, загружаюцца пасьлядоўна. Загрузка наступнага пачынаецца, калі на станцыі ёсьць досыць грузу, каб запоўніць парядэдні транспарт. -STR_CONFIG_SETTING_GRADUAL_LOADING :Паступовая загрузка транспарту: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Паступова загружаць транспартныя сродкі, выкарыстоўваючы іх спэцыфічную працялегласьць загрузкі, замест таго каб загрузіць усё адразу за сталы час, які можа залежыць толькі ад колькасьці грузу. STR_CONFIG_SETTING_INFLATION :Уключыць інфляцыю: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Уключыць інфляцыю ў эканоміцы, калі кошты растуць нязначна хутчэй за выплаты -STR_CONFIG_SETTING_SELECTGOODS :Пастаўляць груз на станцыю, толькі калі на яго быў попыт: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Пастаўляць груз на станцыю, калі на яго быў попыт з транспарта, які загружаецца. Гэта прадухіляе кепскія рэйтынґі для грузаў, якія не вывозяцца са станцыі. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Максымальная даўжыня мастоў: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Максымальная даўжыня мастоў, якія вы можаце пабудаваць STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Максымальная даўжыня тунэляў: {STRING} @@ -1504,8 +1491,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Усталяв STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :на пачатку STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :ў сярэдзіне STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ў канцы -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Аўтатранспарт зьбіраецца ў чаргу каля прыпынка: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Аўтатранспарт будзе чакаць перад прыпынкам, пакуль ён вызваліцца ад іншых машынаў. STR_CONFIG_SETTING_AUTOSCROLL :Перамяшчаць агляд, калі курсор знаходзіцца на краі экрана: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Уключае зрушваньне агляду пры набліжэньні паказальніка мышы да краю экрана STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :няма @@ -1536,10 +1521,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Дазволі STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Дазволіць пабудову на дарогах, якія належаць гораду, прыпынкаў, празь якія можна проста праехаць (не заязжаючы "унутар"). STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Дазволіць будаўніцтва прыпынкаў Ro-Ro на дарогах канкурэнтаў: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Дазволіць пабудову на дарогах, якія належаць іншым кампаніям, прыпынкаў, празь якія можна проста праехаць (не заязжаючы "унутар"). -STR_CONFIG_SETTING_ADJACENT_STATIONS :Дазволіць будаўніцтва сумежных станцыяў: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Дазволіць розным станцыям датыкацца адна да адной. -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Уключыць падтрымку некалькіх транспартных набораў NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Опцыя сумяшчальнасьці для старых набораў ґрафікі. Не адключайце яе, калі вы дакладна ня ведаеце, што робіце! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Зьмена гэтага парамэтру немагчыма, калі ў гульні ёсьць транспартныя сродкі. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Утрыманьне iнфраструктуры: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Калі ўключана, інфраструктура патрабуе выдаткаў на ўтрыманьне. Кошт расьце прапарцыянальна памерам сеткі, таму гэта больш датычыць вялікіх кампаніяў, ніж малых. @@ -1597,8 +1578,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Кручэнь STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :супраць руху гадзіньнікавай стрэлкі STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :па гадзіньнікавай стрэлцы STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Ўзровень вышыні для мапаў з пляскатым рэльефам: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Дазволіць зьмену ляндшафту на краю мапы: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Калі адключана, граніцамі мапы заўсёды будзе акіян. STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Адна ці некалькі клетак ў паўночным куце мапы не пустыя STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Адна ці некалькі клетак берага без вады @@ -1655,11 +1634,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :доўгі (31- STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :кароткі (31-01-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-01-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Калі ў NewGRF ня вызначана палітра, выкарыстоўваць: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Палітра ґрафічных набораў (NewGRF), якая ўжываецца па змоўчаньні, калі ня вызначана ў самім наборы. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Палітра па змоўчаньні (DOS) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Састарэлы фармат палітры (Win) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Аўтаматычнае ўключэньне паўзы напачатку гульні: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Калі ўключана, распачатая гульня будзе аўтаматычна стаяць на паўзе, дазваляючы блізкае вывучэньне мапы. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Падчас паўзы дазволіць: {STRING} @@ -1881,8 +1855,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 з {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нiводнае STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Першапачатковы множнік памеру населенага пункта: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Адносная колькасьць гарадоў у параўнаньні з мястэчкамі на пачатку гульні. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Выдаляць абсурдныя элемэнты падчас дарожнага будаўніцтва: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Выдаляць "мёртвыя" канцы дарогаў, якія ўтварыліся пасля рэканструкцыі вуліц. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Абнаўляць ґраф размеркаваньня раз у {STRING} д{P 0:2 зень ні зён} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Перыяд пераразьліку ґрафаў размеркаваньня. У кожным цыкле разьлічваецца не ґраф цалкам, а толькі адзін зь яго кампанэнтаў. Чым менш гэта значэньне, тым больш будзе нагрузка на працэсар. Чым больш значэньне, тым больш часу пройдзе перад пачаткам разьліку ґрафаў для новых маршрутаў. @@ -1944,27 +1916,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :ангельс STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :мэтрычная (м) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :СІ (м) -STR_CONFIG_SETTING_GUI :{ORANGE}Інтэрфэйс STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Лакалізацыя -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Будаўніцтва -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспарт -STR_CONFIG_SETTING_STATIONS :{ORANGE}Станцыі -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Эканоміка -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Разьмеркаваньне грузаў -STR_CONFIG_SETTING_AI :{ORANGE}Канкурэнты -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Наладкі відарысу -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Узаемадзеяньне STR_CONFIG_SETTING_SOUND :{ORANGE}Гукавыя эфэкты -STR_CONFIG_SETTING_NEWS :{ORANGE}Навіны й паведамленьні -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Сыґналы -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Перамяшчэньне грузаў -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Кампутарныя гульцы -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Аўтаабнаўленьне -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Абслугоўваньне +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Інтэрфэйс +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Будаўніцтва +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспарт STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршруты -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Цягнікі -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Населеныя пункты -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Прамысловасьць +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Населеныя пункты +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Прамысловасьць +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Разьмеркаваньне грузаў +STR_CONFIG_SETTING_AI :{ORANGE}Канкурэнты +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Кампутарныя гульцы STR_CONFIG_SETTING_PATHFINDER_OPF :арыґінальны STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2121,6 +2083,7 @@ STR_LIVERY_FREIGHT_TRAM :Грузавы STR_FACE_CAPTION :{WHITE}Выбар твару STR_FACE_CANCEL_TOOLTIP :{BLACK}Скасаваць выбар новага твару STR_FACE_OK_TOOLTIP :{BLACK}Прыняць выбар новага твару +STR_FACE_RANDOM :{BLACK}Выпадковая STR_FACE_MALE_BUTTON :{BLACK}Мужчынскі STR_FACE_MALE_TOOLTIP :{BLACK}Выбар мужчынскіх твараў @@ -3020,10 +2983,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Коль STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Вышыня сьнегавой лініі: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Падняць сьнегавую лінію STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Апусьціць сьнегавую лінію -STR_MAPGEN_RANDOM_SEED :{BLACK}Выпадковая лічба: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Пстрыкніце тут, каб увесьці адвольную пачатковую лічбу. Ляндшафт ствараецца псэўдавыпадкова, лічба — апорная кропка ў пасьлядоўнасьці выпадковых лічбаў. -STR_MAPGEN_RANDOM :{BLACK}Выпадковая -STR_MAPGEN_RANDOM_HELP :{BLACK}Зьмяніць выпадковую лічбу, якую выкарыстоўвае ґенэратар ляндшафту STR_MAPGEN_LAND_GENERATOR :{BLACK}Ґенэратар ляндшафту: STR_MAPGEN_TREE_PLACER :{BLACK}Альґарытм дрэваў: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тып ляндшафту: @@ -3050,7 +3009,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Назв STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Памер: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Увядзіце выпадковую лiчбу STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Зьмяніць вышыню сьнегавой лініі STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Зьмяніць год пачатку гульні @@ -3630,12 +3588,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Бяз груп STR_GROUP_DEFAULT_SHIPS :Бяз групы STR_GROUP_DEFAULT_AIRCRAFTS :Бяз групы -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Клікніце па назьве групы, каб убачыць сьпіс транспарту +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ґрупы — клікніце па назьве ґрупы, каб убачыць сьпіс транспарту ў гэтай ґрупе. Націсьніце ды перацягвайце ґрупы, каб упарадкаваць гіерархію. STR_GROUP_CREATE_TOOLTIP :{BLACK}Стварыць групу STR_GROUP_DELETE_TOOLTIP :{BLACK}Выдаліць выбраную групу STR_GROUP_RENAME_TOOLTIP :{BLACK}Перайменаваць выбраную групу STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Абарона транспарту ў групе ад глабальнай аўтазамены +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Выдаліць ґрупу +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Вы ўпэўнены, што жадаеце выдаліць гэту ґрупу з усімі вытворнымі? + STR_GROUP_ADD_SHARED_VEHICLE :Дадаць транспарт з агульнымі заданьнямі STR_GROUP_REMOVE_ALL_VEHICLES :Выдаліць усе @@ -4629,6 +4590,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... Вы STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Не атрымалася стварыць групу... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Не атрымалася выдаліць групу... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Не атрымалася перайменаваць групу... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Немагчыма ўсталяваць "бацькоўскую" (вышэйстаячую) ґрупу... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Не атрымалася выдаліць увесь транспарт з групы... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Не атрымалася дадаць транспарт у групу... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Не атрымалася дадаць транспарт з агульнымі заданьнямі ў групу... diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index a003a5d75a..4ab3b06582 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -811,13 +811,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} está aguardando no depósito STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} está aguardando no hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} tem tem muito poucas ordens no horário STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tem uma ordem nula STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tem ordens duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tem uma estação inválida em suas ordens -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} está ficando velho STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} está ficando muito velho @@ -955,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formato da captura de tela -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selecionar o formato da captura de tela para usar - 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} @@ -1073,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Config. da comp STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoria: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restringe a lista abaixo a mostrar apenas configs. alteradas +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restringe a lista abaixo a mostrar apenas filtros pré-definidos STR_CONFIG_SETTING_RESTRICT_BASIC :Configs. básicas STR_CONFIG_SETTING_RESTRICT_ADVANCED :Configs. avançadas STR_CONFIG_SETTING_RESTRICT_ALL :Configs. expert / todas as configs. @@ -1082,11 +1077,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Configs. com um STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restringe a lista abaixo a determinados tipos STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Todos os tipos de configs. -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Config. do cliente (não é guardado no savegame; afeta todos os jogos) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Config. do jogo (guardado no savegame; afeta apenas novos jogos) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Config. do jogo (guardado no savegame; afeta apenas o jogo atual) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Config. da companhia (guardado no savegame; afeta apenas novos jogos) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Config. de companhia (guardado no savegame; afeta apenas a companhia atual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Configs. do cliente (não é guardado no savegame; afeta todos os jogos) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Configs. do jogo (guardado no savegame; afeta apenas novos jogos) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Configs. do jogo (guardado no savegame; afeta apenas o jogo atual) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Configs. da companhia (guardado no savegame; afeta apenas novos jogos) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Configs. de companhia (guardado no savegame; afeta apenas a companhia atual) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostrar todos resultados por configuração{}{SILVER}Categoria {BLACK}até {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar todos resultados por configuração{}{SILVER}Tipo {BLACK}até {WHITE}Todas configurações de tipos STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostrar todos resultados por configuração{}{SILVER}Category {BLACK}até {WHITE}{STRING} {BLACK}e {SILVER}Tipo {BLACK}até {WHITE}Todas configurações de tipos @@ -1128,12 +1123,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Desabilitar rev STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Se ativado, trens não irão mudar de direção em estações não terminais, mesmo se houver um caminho mais curto ao próximo destino ao trocar de direção STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Alterna desastres que podem ocasionalmente bloquear ou destruir veículos ou infraestrutura -STR_CONFIG_SETTING_CITY_APPROVAL :Atitude da prefeitura em relação à restruturação de área: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :Atitude da prefeitura em relação à restruturação local: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolhe como a poluição sonoroa e ambiental afeta a classificação na cidade e as ações futuras naquela área -STR_CONFIG_SETTING_BUILDONSLOPES :Permitir a construção em declives e encostas: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Se ativado, trilhos e estações podem ser construídas na maioria das inclinações. Se desativado, são permitidas apenas em inclinações correspondentes à direção da via, sem precisar de fundações -STR_CONFIG_SETTING_AUTOSLOPE :Permitir paisagismo sob edifícios, ruas, etc. (auto nivelação): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Permitir paisagismo sob edifícios, trilhos, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite paisagismo sob edifícios e vias sem precisar removê-las STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista das áreas de abrangência: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Exibe áreas de abrangência de para diferentes tipos de estações e aeroportos @@ -1157,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Proibir trens e STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Curvas em 90 graus ocorrem quando um trilho horizontal é seguido imediatamente por um trilho vertical, fazendo com que o trem vire 90 graus, ao invés dos 45 graus padrão para as outras combinações de trilhos. Isso também afeta as embarcações STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitie unir estações não adjacentes: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite adicionar partes a uma estação sem que aquelas encostem diretamente nestas. Pressione Ctrl+clique para fazer isso -STR_CONFIG_SETTING_IMPROVEDLOAD :Usar algoritmo de carregamento melhorado: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Se ativado, veículos múltiplos aguardando em uma estação são carregados um por vez. Carregamento do próximo veículo só começa quando houver carga o bastante para encher o primeiro veículo -STR_CONFIG_SETTING_GRADUAL_LOADING :Carregar veículos gradualmente: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradualmente carrega veículos usando durações de carregamento específicos de cada veículo, ao invés de carregar tudo de uma vez durante um intervalo fixo dependendo apenas da carga carregada STR_CONFIG_SETTING_INFLATION :Inflação: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ativa inflação na economia, de forma que custos sobem um pouco mais do que recebidos -STR_CONFIG_SETTING_SELECTGOODS :Somente entregar carga a uma estação quando houver procura: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Apenas entrega carga a uma estação com um veículo que a requisitou. Isso impede más avaliações para cargas que não são coletadas numa estação STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Tamanho máximo de pontes: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Tamanho máximo para construção de pontes STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Tamanho máximo de túneis: {STRING} @@ -1192,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Define onde um STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :início STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :meio STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :fim -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Fila de automóveis (com efeitos de quantidade): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Faz com que automóveis aguardem na frente de paradas de rua até que sejam liberados STR_CONFIG_SETTING_AUTOSCROLL :Deslocar janela quando o cursor está na borda do mapa: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quando ativado, janelas de visualização irão rolar quando o mouse se aproximar das bordas STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desativado @@ -1224,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir estaç STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite a construção de paradas nas laterais das ruas em vias locais STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir estações drive-through nas ruas de outros competidores: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite a construção de paradas nas laterais das ruas em vias de outras companhias -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permitir construção de estações adjacentes: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permite construir várias estações, uma do lado da outra, criando estações mistas -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Ativar múltiplos conjuntos NewGRF de locomotivas: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opção de compatibilidade para NewGRFs velhos. Não desative isso a não ser que você saiba o que está fazendo! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Impossível alterar essa configuração enquanto houverem veículos STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de Infraestrutura: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quando ativado, infraestrutura gera custos de manutenção. O custo aumenta proporcionalmente à malha de transportes, afetando companhias maiores mais do que as menores @@ -1248,7 +1229,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Veículos nunca STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Quanto ativado, mantém todos os modelos de veículos disponíveis após serem introduzidos STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Auto-renovação de veículos quando ficam velhos: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quando ativado, os veículos próximos do fim da vida útil são automaticamente substituídos quando as condições forem atingidas -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar a {STRING} da vida útil +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar veículos a {STRING} da vida útil STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Idade relativa para quando um veículo deva ser renovado STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} m{P 0 ês eses} antes STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} m{P 0 ês eses} depois @@ -1269,7 +1250,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grossura da lin STR_CONFIG_SETTING_LAND_GENERATOR :Gerador de Terreno: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Dist. máx. da borda para Refinarias de Óleo: {STRING} +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Dist máx da borda para Refinarias de Óleo: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Refinarias são construídas apenas nas bordas, ou no litoral, para ilhas STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altitude da linha de neve: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregularidade do terreno (TerraGenesis apenas) : {STRING} @@ -1285,12 +1266,10 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotação do ma STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sentido Anti-Horário STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Sentido Horário STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :A altitude de um mapa regular é de: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Permitir paisagismo nos quadrados na bordas do mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Se desativado, as bordas do mapa serão sempre oceanos STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Há construções na borda norte do mapa STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Há bordas acima da nível do mar -STR_CONFIG_SETTING_STATION_SPREAD :Tam. máx. de estações compostas {STRING} +STR_CONFIG_SETTING_STATION_SPREAD :Tam máx de estações compostas {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Área máxima que uma só estação pode ocupar com partes de estação. Valores altos tornam o jogo lento STR_CONFIG_SETTING_SERVICEATHELIPAD :Manutenção automática de helicópteros em heliportos: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Faz manutenção de helicópteros a cada pouso, mesmo que não haja depósito no local de pouso @@ -1307,7 +1286,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Suavizar rolame STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controla como a janela principal rola para uma posição específica quando clicado no minimapa ou após localizar um objeto. Ativado torna o rolamento suave. Desativado torna o rolamento instanâneo STR_CONFIG_SETTING_MEASURE_TOOLTIP :Exibe distâncias quando usar ferramentas de construção: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Exibe distâncias e diferenças de altitude quando clicando e arrastando enquanto constrói -STR_CONFIG_SETTING_LIVERIES :Exibir cores das empresas: {STRING} +STR_CONFIG_SETTING_LIVERIES :Exibir cores avançadas: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Contra o uso de cores de veículos dependentes do tipo (ao invés de cores específicas à companhia) STR_CONFIG_SETTING_LIVERIES_NONE :Nenhum STR_CONFIG_SETTING_LIVERIES_OWN :Minha empresa @@ -1343,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :comprido (31 De STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curto (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paleta padrão a ser usada para NewGRF's sem paletas específicas: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Paleta padrão a ser usada por NewGRFs que não a especificarem -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Paleta Padrão (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Paleta Original (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausar automaticamente ao inicar um novo jogo: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Ativado, pausa o jogo ao iniciar um jogo novo, permitindo um estudo do mapa antes do jogo STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Permite enquanto pausado: {STRING} @@ -1356,7 +1330,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Nenhuma ação STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas ações "não-construentes" STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Todas ações exceto modificações de terreno STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Todas ações -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar a lista avançada de veículos: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar a lista agrupada de veículos: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ativa o uso da listagem avançada para agrupamento de veículos STR_CONFIG_SETTING_LOADING_INDICATORS :Usar indicadores de carga: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Seleciona se os indicadores de carga são exibidos sobre os veículos (des)carregando @@ -1371,7 +1345,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de trilho STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primeiro disponível STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponível STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Mais utilizado -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Exibir vias reservadas: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Exibir vias reservadas para trilhos: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Escurece as vias reservadas para ajudar a lidar com problemas de trens não funcionando em blocos baseados em destinos STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Manter a barra de construção aberta: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantém as ferramentas de construção para pontes, túneis, etc abertas após o uso @@ -1397,13 +1371,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Tocar som ambie STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Desativar construção de infraestrutura quando nenhum veículo adequado estiver disponível: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Quando ativado, a infraestrutura só é disponível se há veículos disponíveis para usá-la, prevenindo gasto de tempo e dinheiro com infraestrutura inútil. -STR_CONFIG_SETTING_MAX_TRAINS :Máximo de trens por companhia: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Número máx de trens por companhia: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Máx. de trens que uma companhia pode ter -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Máximo de automóveis por companhia: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máx de automóveis por companhia: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Quantidade máxima de automóveis que uma companhia pode ter -STR_CONFIG_SETTING_MAX_AIRCRAFT :Máximo de aeronaves por companhia: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Número máx de aeronaves por companhia: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Quantidade máxima de aeronaves que uma companhia pode ter -STR_CONFIG_SETTING_MAX_SHIPS :Máximo de embarcações por companhia: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Número máx de embarcações por companhia: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Quantidade máxima de embarcações que uma companhia pode ter STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desativar trens para o computador: {STRING} @@ -1521,7 +1495,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permite cidades STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Permitir cidades construirem cruzamentos de nível: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Se ativado, permite as cidades construírem ruas que atravessam ferrovias STR_CONFIG_SETTING_NOISE_LEVEL :Permitir controle de ruído de aeronaves pelas cidades: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Se desativado, podem haver 2 aeroportos por cidade. Se ativado, o número de aeroportos depende do controle de ruído da cidade, que depende da população, tamanho e distância do aeroporto +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Se desativado, podem haver 2 aeroportos por cidade. Se ativado, o número de aeroportos é limitado pelo controle de ruído da cidade, que depende da população, tamanho e distância do aeroporto STR_CONFIG_SETTING_TOWN_FOUNDING :Fundação de cidades no jogo: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Se ativado, permite jogadores construírem novas cidades STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Proibido @@ -1569,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 a cada {COMMA STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador do tamanho inicial da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho médio das cidades grandes em relação às cidades no início do jogo -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Remover elementos de estrada absurdos ao construir ruas: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Remove ruas sem saída durante a reconstrução de ruas patrocinada STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Atualizar gráfico de distribuição a cada {STRING} dia{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo tomado entre recálculos subsequentes de cada gráfico. Cada recálculo calcula os planos para cada componente do gráfico. Isso significa que um valor X para essa configuração não indica que o gráfico todo será atualizado a cada X dias. Apenas alguns componentes irão. Quanto mais curto você o definir, mais tempo de CPU será necessário para calculá-lo. Quanto mais longo, mais tempo levará até que a distribuição de carga começe em novas rotas. @@ -1632,27 +1604,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localização -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construção +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos +STR_CONFIG_SETTING_SOUND :{ORANGE}Som +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Geral +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Janelas de visualização +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construção +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Notícias / Conselheiros +STR_CONFIG_SETTING_COMPANY :{ORANGE}Companhia +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidade STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veículos -STR_CONFIG_SETTING_STATIONS :{ORANGE}Estações -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economia -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribuição de Carga -STR_CONFIG_SETTING_AI :{ORANGE}Oponentes -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Opções de visualização -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interação -STR_CONFIG_SETTING_SOUND :{ORANGE}Efeitos sonoros -STR_CONFIG_SETTING_NEWS :{ORANGE}Notícias e mensagens -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinais -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Manejo de carga -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computadores -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Auto-renovação -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Manutenção +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Física STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Rota -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trens -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE} Cidades -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Indústrias +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitações +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Acidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Geração de Mundo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Meio-Ambiente +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE} Cidades +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Indústrias +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuição de Carga +STR_CONFIG_SETTING_AI :{ORANGE}Oponentes +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computadores STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1783,7 @@ STR_LIVERY_FREIGHT_TRAM :Bonde de Carga STR_FACE_CAPTION :{WHITE}Seleção de Rosto STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancelar seleção da novo rosto STR_FACE_OK_TOOLTIP :{BLACK}Aceitar seleção do novo rosto +STR_FACE_RANDOM :{BLACK}Randomizar STR_FACE_MALE_BUTTON :{BLACK}Masculino STR_FACE_MALE_TOOLTIP :{BLACK}Rostos masculinos @@ -1929,13 +1904,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Proteja STR_NETWORK_START_SERVER_UNADVERTISED :Não STR_NETWORK_START_SERVER_ADVERTISED :Sim STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} cliente{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Máx de clientes: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Num máx de clientes: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Escolha o número máximo de clientes. Não é necessário estarem todos preenchidos STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} empresa{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Máximo de empresas: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Núm máx de empresas: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limita o servidor para uma certa quantia de empresas STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} espectador{P "" es} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Máx de espectadores: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Núm máx de espectadores: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limita o servidor para um certa quantia de espectadores STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Idioma falado: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Outros jogadores saberão o idioma utilizado no servidor. @@ -2688,10 +2663,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. de i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Linha da neve STR_MAPGEN_SNOW_LINE_UP :{BLACK}Aumentar a linha da neve em um ponto STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Diminuir a linha da neve em um ponto -STR_MAPGEN_RANDOM_SEED :{BLACK}Semente: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Clique para digitar uma semente -STR_MAPGEN_RANDOM :{BLACK}Randomizar -STR_MAPGEN_RANDOM_HELP :{BLACK}Muda a semente randômica da Geração de Terreno STR_MAPGEN_LAND_GENERATOR :{BLACK}Gerador de terra STR_MAPGEN_TREE_PLACER :{BLACK}Algorítimo de árvores STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno @@ -2718,7 +2689,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome do STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamanho: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Coloque uma semente randomica STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Mudar linha da neve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Mudar data de início @@ -3298,12 +3268,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Automóveis sem STR_GROUP_DEFAULT_SHIPS :Embarcações sem grupo STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sem grupo -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos - Clique em um grupo para listar seus veículos +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos - Clique em um grupo para listar seus veículos. Clique e arraste para organizar a hierarquia. STR_GROUP_CREATE_TOOLTIP :{BLACK}Clique para criar um grupo STR_GROUP_DELETE_TOOLTIP :{BLACK}Remove o grupo selecionado STR_GROUP_RENAME_TOOLTIP :{BLACK}Renomeia o grupo selecionado STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para excluir esse grupo da substituição automática +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Remover grupo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Tem certeza que deseja remover esse grupo e seus descendentes? + STR_GROUP_ADD_SHARED_VEHICLE :Adicionar veículos compartilhados STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos os veículos @@ -3692,8 +3665,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Altera a STR_ORDER_REFIT :{BLACK}Adaptar STR_ORDER_REFIT_TOOLTIP :{BLACK}Selecionar a adaptação na ordem atual. CTRL + Clique para remover a instrução -STR_ORDER_REFIT_AUTO :{BLACK}Auto-reforma -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selecione o tipo de carga para o qual auto-reformar nessa ordem. Ctrl+clique para remover a ordem de reforma. Auto-reformar apenas será feito se o veículo permitir +STR_ORDER_REFIT_AUTO :{BLACK}Reformar na estação +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selecione o tipo de carga para o qual reformar nessa ordem. Ctrl+clique para remover a ordem de reforma. Reforma apenas será feita se o veículo permitir STR_ORDER_DROP_REFIT_AUTO :Carga fixa STR_ORDER_DROP_REFIT_AUTO_ANY :Cargas disponíveis @@ -3784,18 +3757,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Não descarreg STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Não descarregar e esperar por qualquer carregamento completo) STR_ORDER_NO_UNLOAD_NO_LOAD :(Não descarregar e não carregar) -STR_ORDER_AUTO_REFIT :(Auto-reformar para {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Carga completa com auto-reforma para {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Qualquer carga completa com auto-reforma para {STRING}) -STR_ORDER_UNLOAD_REFIT :(Descarregar e carregar com auto-reforma para {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descarregar e aguardar carga completa com auto-reforma para {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descarregar e aguardar qualquer carga completa com auto-reforma para {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transferir e carregar com auto-reforma para {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir e aguardar carga completa com auto-reforma para {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir e aguardar por qualquer carga completa com auto-reforma para {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Não descarregar e carregar com auto-reforma para {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Não descarregar e aguardar carga completa com auto-reforma para {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Não carregar e aguardar por qualquer carga completa com auto-reforma para {STRING}) +STR_ORDER_AUTO_REFIT :(Reformar para {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Carga completa com reforma para {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Qualquer carga completa com reforma para {STRING}) +STR_ORDER_UNLOAD_REFIT :(Descarregar e carregar com reforma para {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descarregar e aguardar carga completa com reforma para {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descarregar e aguardar qualquer carga completa com reforma para {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transferir e carregar com reforma para {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir e aguardar carga completa com reforma para {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir e aguardar por qualquer carga completa com reforma para {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Não descarregar e carregar com reforma para {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Não descarregar e aguardar carga completa com reforma para {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Não descarregar e aguardar por qualquer carga completa com reforma para {STRING}) STR_ORDER_AUTO_REFIT_ANY :cargas disponíveis @@ -4277,6 +4250,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... já STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Impossível criar grupo... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Impossível remover grupo... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Impossível renomear grupo... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Impossível definir grupo ascendente... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Impossível remover todos os veículos desse grupo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Impossível adicionar veículo a esse grupo STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Impossível adicionar veículos compartilhados a esse grupo... diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index e4c77b2ab2..bd190c0302 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -802,13 +802,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} чака в депото STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} чака в хангара -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} има прекалено малко задачи STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} има празна задача STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} има дублирани задачи STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} има невалидна спирка в задачите -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} започва да остарява STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} е много остаряло @@ -946,9 +944,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разм STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Избор размера на екран STR_GAME_OPTIONS_RESOLUTION_OTHER :друго -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Формат на снимките -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Избор на файловия форма в който ще се записват екранните снимки - STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базов графичен набор STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Изберете базов графичен набор STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} липсващи/повредени файлове @@ -1125,8 +1120,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Включва STR_CONFIG_SETTING_CITY_APPROVAL :Отношението на градския съвет към реструктурирането на района: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Изберете какво количество шум и поражения по околната среда причинени от компаниите афектират техния рейтинг в града и бъдещи конструкции в района. -STR_CONFIG_SETTING_BUILDONSLOPES :Строене на склонове и брегове: {STRING.n} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ако бъде активирано, ЖП линиите и гарите могат да бъдат построени на повечето склонове. Ако е деактивирано могат да бъдат построени само на склонове, които съвпадат с посоката на линията и следователно не изискват основи STR_CONFIG_SETTING_AUTOSLOPE :Тераформиране под постройки (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Разреши промяна на наклона на терена под постройки и пътища без необходимост от премахване STR_CONFIG_SETTING_CATCHMENT :По-реалистична зона за обслужване: {STRING} @@ -1151,14 +1144,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Забрани STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 градусови завои, това е, когато хоризонтални релси са последвани от вертикални, следователно влакът прави 90 градусов завой когато преминава през тях, вместо нормалният 45 градусов завой при останалите комбинации от релси. Това се отнася и за завоите на корабите STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Позволено е присъединяването на станции, които не се допират: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Позволява добавянето на части към дадена гара без директно на докосва вече съществуващи нейни части. Натиснете Ctrl+Click докато поставяте новите части -STR_CONFIG_SETTING_IMPROVEDLOAD :Подобрен алгоритъм за зареждане: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ако е активирано, превозните средства чакащи на гарите биват натоварвани последователно. Натоварването на следващото превозно средство започва едва когато има достатъчно товар, който да запълни напълно превозното средство преди него -STR_CONFIG_SETTING_GRADUAL_LOADING :Постепенно зареждане на автомобилите: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Постепенно натоварване на превозните средства, използва се специфична продължителност за натоварването на различните стоки, вместо всичко да се товари наведнъж за фиксирано време, зависещо единствено от количеството на товара STR_CONFIG_SETTING_INFLATION :Инфлация: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Разрешава инфлация на икономиката, при което цените ще се покачват малко по-бързо от заплащането -STR_CONFIG_SETTING_SELECTGOODS :Доставяне на стока до станция само ако има търсене: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Доставяне на товара само на спирките, които са го изискали от товарещо превозно средство. Това предотвратява лош ратинг за стоки, които не се приемат на дадена станция STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Максимална дължина на мост: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Максимална дължина за построяване на мост STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Максимална дължина на тунел: {STRING} @@ -1186,8 +1173,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Мястото STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :в близкия край STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :по средата STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :в далечния край -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Опашка на автомобилите (със сумарен ефект): {STRING.f} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Пътните превозни средства ще изчакват пред заетите спирки, докато не се освободят STR_CONFIG_SETTING_AUTOSCROLL :Местене на екрана когато мишката е в края: {STRING.n} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ако тази опция бъде активирана, viewports ще се "скролват" кога курсора на мишката доближи края на прозореца STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Изключен @@ -1218,10 +1203,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Премина STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Позволява строежа на ЖП линии пресичащи път притежаван от даден град STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Преминаване през спирки на пътища, собственост на конкуренти: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Позволява строежа на ЖП линии пресичащи път притежаван от други компании -STR_CONFIG_SETTING_ADJACENT_STATIONS :Позвалявай допрени гари: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Разреши различни станции взаимно да се допират -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Няколко NewGRF алгоритъма едновременно: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Опция за съвместимост за стари NewGRFs. Не деактивирайте тази опция, освен ако наистина знаете какво правите! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Промяната не е възможна, когато има превозни средства. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Поддръжка на инфраструктурата: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Когато е разрешено, съществуват разходи за поддръжка на инфраструктурата. Разходите се увеличават пропорционално на размера на пътната мрежа, влияейки повече на големите компании отколкото на по-малките @@ -1279,8 +1260,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Завърта STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Обратрно на часовниковата стрелка STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :По часовниковата стрелка STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Височина на картата за плосък сценарий: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Разреши тераформирането на терена в краищата на картата: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ако се забрани, границите на картата е винаги океан STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Една или повече плочи в северния край не са празни STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Един или повече от плочките в един от краищата не е вода @@ -1337,10 +1316,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :дълъг (31s STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :къс (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Палитра по подразбиране за NewGRF, които не са задали палитра: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Палитра по подразбиране за NewGRF, за които е зададена от коя се нуждаят -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Игрите започват в пауза: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Ако тази опция бъде активирана, играта автоматично ще бъде паузирана, когато започнете нова игра, това ще ви позволи да изучите по-подробно картата STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :По време на пауза разреши: {STRING} @@ -1562,8 +1537,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 на {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Без STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Множител за големината на града: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Относителен размер на мегаполисите в сравнение с градовете в началото на играта -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Премахване на абсурдни разклонения при строене на пътища: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Премахва краищата на пътища при финансиране на ремонт на пътя STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Единици за скорост: {STRING} @@ -1602,26 +1575,16 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Интерфейс STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Позициониране -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Строене -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Автомобили -STR_CONFIG_SETTING_STATIONS :{ORANGE}Станции -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Икономика -STR_CONFIG_SETTING_AI :{ORANGE}Съперници -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Покажи опциите -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Взаимодействие STR_CONFIG_SETTING_SOUND :{ORANGE}Звукови ефекти -STR_CONFIG_SETTING_NEWS :{ORANGE}Новини и съобщения -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Сигнализация -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Обработката на товари -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Компютърни играчи -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Автоматично подновяване -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Сервизиране +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Интерфейс +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Строене +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Автомобили STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршрутизация -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Влакове -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Градове -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Индустрии +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Градове +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Индустрии +STR_CONFIG_SETTING_AI :{ORANGE}Съперници +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Компютърни играчи STR_CONFIG_SETTING_PATHFINDER_OPF :Оригинален STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1777,6 +1740,7 @@ STR_LIVERY_FREIGHT_TRAM :Товарен STR_FACE_CAPTION :{WHITE}Избор на лице STR_FACE_CANCEL_TOOLTIP :{BLACK}Прекъсване избора на ново лице STR_FACE_OK_TOOLTIP :{BLACK}Признавам избора на ново лице +STR_FACE_RANDOM :{BLACK}Произволно STR_FACE_MALE_BUTTON :{BLACK}Мъж STR_FACE_MALE_TOOLTIP :{BLACK}Избери мъжки лица @@ -2645,10 +2609,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Брой STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Снежна линия: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Преместване снежната линия нагоре STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Преместване снежната линия надолу -STR_MAPGEN_RANDOM_SEED :{BLACK}Случайност: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Натиснете за въвеждане семе на случайност -STR_MAPGEN_RANDOM :{BLACK}Произволно -STR_MAPGEN_RANDOM_HELP :{BLACK}Промяна на случайността използване за генериране на терен STR_MAPGEN_LAND_GENERATOR :{BLACK}Земегенератор: STR_MAPGEN_TREE_PLACER :{BLACK}Дърворазсад: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тип на терен: @@ -2675,7 +2635,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Име STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Размер: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Въведи случаено семе STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Височина на снежната линия STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Промяна началната година @@ -3226,6 +3185,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Изтр STR_GROUP_RENAME_TOOLTIP :{BLACK}Преименувай избраната група STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Щракни да защитиш тази група от глобална автоматична замяна + STR_GROUP_ADD_SHARED_VEHICLE :Добави споделени превозни средства STR_GROUP_REMOVE_ALL_VEHICLES :Премахни всички превозни средсва diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9406c7f5d5..ba34038c8d 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -274,12 +274,12 @@ STR_SORT_BY_PRODUCTION :Producció STR_SORT_BY_TYPE :Tipus STR_SORT_BY_TRANSPORTED :Transportat STR_SORT_BY_NUMBER :Número -STR_SORT_BY_PROFIT_LAST_YEAR :Benef. darrer any -STR_SORT_BY_PROFIT_THIS_YEAR :Benef. aquest any -STR_SORT_BY_AGE :Antig. +STR_SORT_BY_PROFIT_LAST_YEAR :Benefici darrer any +STR_SORT_BY_PROFIT_THIS_YEAR :Benefici aquest any +STR_SORT_BY_AGE :Antiguitat STR_SORT_BY_RELIABILITY :Rendibilitat STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Capac. total per tipus de càrrega -STR_SORT_BY_MAX_SPEED :Veloc. Màxima +STR_SORT_BY_MAX_SPEED :Velocitat màxima STR_SORT_BY_MODEL :Model STR_SORT_BY_VALUE :Valor STR_SORT_BY_LENGTH :Llargada @@ -290,7 +290,7 @@ STR_SORT_BY_WAITING_TOTAL :Càrrega en esp STR_SORT_BY_WAITING_AVAILABLE :Càrrega en espera disponible STR_SORT_BY_RATING_MAX :Rati de càrrega més alt STR_SORT_BY_RATING_MIN :Rati de càrrega més baix -STR_SORT_BY_ENGINE_ID :IDMotor (ordre clàssic) +STR_SORT_BY_ENGINE_ID :IDModel (ordre clàssic) STR_SORT_BY_COST :Cost STR_SORT_BY_POWER :Potència STR_SORT_BY_TRACTIVE_EFFORT :Esforç de tracció @@ -317,7 +317,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostra l STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Mostra llista d'objectius STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostra gràfics STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostra la taula de la lliga d'empreses -STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Financia la construcció d'una nova indústria +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finança la construcció d'una nova indústria STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Mostra la llista de trens de la companyia. Ctrl+Clic commuta l'obertura de la llista de grups/vehicles STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Mostra la llista de vehicles de la companyia. Ctrl+Clic commuta l'obertura de la llista de grups/vehicles STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Mostra la llista de vaixells de la companyia. Ctrl+Clic canvia entre l'obertura de la llista de grups/vehicles @@ -373,7 +373,7 @@ STR_SETTINGS_MENU_SIGNS_DISPLAYED :Mostra els seny STR_SETTINGS_MENU_SHOW_COMPETITOR_SIGNS :Mostra noms i senyals dels competidors STR_SETTINGS_MENU_FULL_ANIMATION :Animació completa STR_SETTINGS_MENU_FULL_DETAIL :Detall complet -STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :Edificis Transparents +STR_SETTINGS_MENU_TRANSPARENT_BUILDINGS :Edificis transparents STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Senyals transparents ############ range ends here @@ -388,12 +388,12 @@ STR_FILE_MENU_EXIT :Surt # map menu STR_MAP_MENU_MAP_OF_WORLD :Mapa del món STR_MAP_MENU_EXTRA_VIEW_PORT :Vista extra -STR_MAP_MENU_LINGRAPH_LEGEND :Llegenda del fluxe de càrrega +STR_MAP_MENU_LINGRAPH_LEGEND :Llegenda del flux de càrrega STR_MAP_MENU_SIGN_LIST :Llista de senyals ############ range for town menu starts -STR_TOWN_MENU_TOWN_DIRECTORY :Directori de Poblacions -STR_TOWN_MENU_FOUND_TOWN :Funda un poble +STR_TOWN_MENU_TOWN_DIRECTORY :Directori de poblacions +STR_TOWN_MENU_FOUND_TOWN :Funda una població ############ range ends here ############ range for subsidies menu starts @@ -405,7 +405,7 @@ STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Gràfic de bene STR_GRAPH_MENU_INCOME_GRAPH :Gràfic d'ingressos STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Gràfic d'entrega de càrrega STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :Gràfic històric de rendiment -STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Gràfic de valor de l'Empresa +STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Gràfic de valor de l'empresa STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Tarifes de pagament per càrrega ############ range ends here @@ -418,19 +418,19 @@ STR_GRAPH_MENU_HIGHSCORE :Taula de rècor ############ range for industry menu starts STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :Directori d'indústries STR_INDUSTRY_MENU_INDUSTRY_CHAIN :Cadenes industrials -STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Financia una nova indústria +STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Finança una nova indústria ############ range ends here ############ range for railway construction menu starts -STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcció de Ferrocarril -STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcció de Ferrocarril Elèctric -STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcció de Monorail +STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construcció de ferrocarril +STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construcció de ferrocarril elèctric +STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construcció de monorail STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construcció de Maglev ############ range ends here ############ range for road construction menu starts -STR_ROAD_MENU_ROAD_CONSTRUCTION :Construcció de Carreteres -STR_ROAD_MENU_TRAM_CONSTRUCTION :Construcció de Tramvies +STR_ROAD_MENU_ROAD_CONSTRUCTION :Construcció de carreteres +STR_ROAD_MENU_TRAM_CONSTRUCTION :Construcció de tramvies ############ range ends here ############ range for waterways construction menu starts @@ -438,7 +438,7 @@ STR_WATERWAYS_MENU_WATERWAYS_CONSTRUCTION :Construcció de ############ range ends here ############ range for airport construction menu starts -STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :Construcció d'Aeroport +STR_AIRCRAFT_MENU_AIRPORT_CONSTRUCTION :Construcció d'aeroport ############ range ends here ############ range for landscaping menu starts @@ -453,7 +453,7 @@ STR_TOOLBAR_SOUND_MUSIC :So/música ############ range for message menu starts STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Darrer missatge/notícia -STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de Missatges +STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de missatges ############ range ends here ############ range for about menu starts @@ -596,13 +596,13 @@ STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Préstec STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total: ############ End of order list STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Quantitat de vehicles que han donat beneficis el darrer any. Inclou els automòbils, trens, vaixells i avions -STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Quantitat d'estacions revisades recentment. Estacions, parades d'autobús, aeroports, etc. es compten separadament, fins hi tot si pertanyen a la mateixa estació. +STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Quantitat d'estacions revisades recentment. Estacions, parades d'autobús, aeroports, etc. es compten separadament, fins i tot si pertanyen a la mateixa estació. STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}El benefici del vehicle amb els menors ingressos (només s'han considerat els vehicles més antics de 2 anys) -STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el quatrimestre amb el mínim benefici dels darrers 12 quatrimestres -STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Quantitat de diners fets durant el quatrimestre amb el màxim benefici dels darrers 12 quatrimestres +STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Quantitat de diners guanyats durant el trimestre amb el mínim benefici dels darrers 12 trimestres +STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Quantitat de diners guanyats durant el trimestre amb el màxim benefici dels darrers 12 trimestres STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Unitats de càrrega entregades en els darrers quatre trimestres. STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Tipus de càrrega entregada durant el darrer trimestre. -STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Quantitats de diners en efectiu +STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Quantitat de diners en efectiu d'aquesta companyia STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}La quantitat de diners que aquesta companyia té com a préstec STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}Total de punts sobre els punts possibles @@ -675,14 +675,14 @@ STR_SMALLMAP_CAPTION :{WHITE}Mapa - { STR_SMALLMAP_TYPE_CONTOURS :Límits STR_SMALLMAP_TYPE_VEHICLES :Vehicles STR_SMALLMAP_TYPE_INDUSTRIES :Indústries -STR_SMALLMAP_TYPE_ROUTEMAP :Fluxe de càrregues +STR_SMALLMAP_TYPE_ROUTEMAP :Flux de càrregues STR_SMALLMAP_TYPE_ROUTES :Rutes STR_SMALLMAP_TYPE_VEGETATION :Vegetació STR_SMALLMAP_TYPE_OWNERS :Propietaris STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Mostra els límits de terreny al mapa STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Mostra els vehicles al mapa STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Mostra les indústries al mapa -STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Mostra el fluxe de càrregues al mapa +STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Mostra el flux de càrregues al mapa STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Mostra les rutes de transport al mapa STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Mostra la vegetació al mapa STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Mostra els propietaris del terreny al mapa @@ -696,7 +696,7 @@ STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Edificis/Indústries STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Vehicles STR_SMALLMAP_LEGENDA_TRAINS :{TINY_FONT}{BLACK}Trens -STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Vehicles de carretera +STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Automòbils STR_SMALLMAP_LEGENDA_SHIPS :{TINY_FONT}{BLACK}Vaixells STR_SMALLMAP_LEGENDA_AIRCRAFT :{TINY_FONT}{BLACK}Avions STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES :{TINY_FONT}{BLACK}Rutes de Transport @@ -740,7 +740,7 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Mostra t STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Mostra el darrer missatge o notícia STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {COMPANY} - - STR_STATUSBAR_PAUSED :{YELLOW}* * EN PAUSA * * -STR_STATUSBAR_AUTOSAVE :RED}DESADA AUTOMÀTICA +STR_STATUSBAR_AUTOSAVE :{RED}DESADA AUTOMÀTICA STR_STATUSBAR_SAVING_GAME :{RED}* * DESANT PARTIDA * * # News message history @@ -759,21 +759,21 @@ STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLAC STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Celebració popular...{}El primer vaixell arriba a {STATION}! STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Celebració popular...{}El primer avió arriba a {STATION}! -STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Accident de Tren!{}{COMMA} moren en una bola de foc després de la col·lisió +STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Accident de tren!{}{COMMA} moren en una bola de foc després de la col·lisió STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Accident d'automòbil!{}El conductor mor en una bola de foc després de la col·lisió amb un tren STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Accident d'automòbil!{}{COMMA} moren en una bola de foc després d'una col·lisió amb un tren STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Accident d'avió!{}{COMMA} moren en una bola de foc a {STATION} STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Accident d'aviació!{}L'avió s'ha quedat sense combustible, {COMMA} morts en l'accident! -STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Desastre de Zeppelin a {STATION}! -STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Automòbil destruït en col·lisionar amb un 'OVNI'! +STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Desastre amb un zepelí a {STATION}! +STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Automòbil destruït en col·lisionar amb un ovni! STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}Explosió de refineria de petroli prop de {TOWN}! STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}Fàbrica destruïda en estranyes circumstàncies prop de {TOWN}! -STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}'OVNI' aterra prop de {TOWN}! +STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}Ovni aterra prop de {TOWN}! STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}L'enfonsament d'una mina de carbó deixa un rastre de destrucció prop de {TOWN}! -STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Inundacions!{}Al menys {COMMA} presumptament desapareguts o morts després de les inundacions! +STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Inundacions!{}Almenys {COMMA} presumptament desapareguts o morts després de les inundacions! -STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Empresa de Transport en dificultats! +STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Empresa de transport en dificultats! STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ha de ser venuda o declarar-se en fallida a menys que el seu rendiment s'incrementi aviat! STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}Fusió d'Empreses de Transport! STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} s'ha venut a {STRING} per {CURRENCY_LONG}! @@ -784,7 +784,7 @@ STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLAC STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} ha estat absorbida per {STRING}! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(President) -STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} ha patrocinat la construcció d'un nou poble, anomenat {TOWN}! +STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} ha patrocinat la construcció d'una nova població, anomenada {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}No{G u va} {STRING} en construcció prop de {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}S'està implantant {G un una} {G nou nova} {STRING} prop de {TOWN}! @@ -802,8 +802,8 @@ STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLAC STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}Noves reserves de petroli trobades a {INDUSTRY}!{}Es preveu doblar la producció! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}Sistemes de conreu millorats a {INDUSTRY} fan preveure doblar la producció! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}La producció de {STRING} a {INDUSTRY} creix un {COMMA}%! -STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}La producció de {INDUSTRY} es redueix un 50% -STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}Una plaga d'insectes provoca el caos a {INDUSTRY}!{}La producció es redueix un 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}La producció de {INDUSTRY} descendeix un 50% +STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}Una plaga d'insectes provoca el caos a {INDUSTRY}!{}La producció baixa a un 50% STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}La producció de {STRING} a {INDUSTRY} es redueix un {COMMA}%! STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} està esperant a la cotxera @@ -811,13 +811,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} està esperant a la drassana STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} està esperant a l'hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} té massa poques ordres a l'agenda STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} té una ordre buida STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} té ordres duplicades STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} té una estació invàlida en les seves ordres -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} té en les seves ordres un aeroport amb pista d'aterratge massa curta STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} s'està fent vell STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} s'està fent molt vell @@ -937,13 +936,15 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Català ############ end of townname region STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Desa automàticament -STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Selecciona l'interval en què el joc es desa automàticament +STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Selecciona l'interval entre desades automàtiques de les partides +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Inactiu STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Cada mes STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Cada 3 mesos STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Cada 6 mesos STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Cada 12 mesos +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Idioma STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Selecciona l'idioma de la interfície @@ -955,9 +956,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format de les captures de pantalla -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selecciona el format a utilitzar en les captures de pantalla - 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} faltant{P "" s}/corromput{P "" s} @@ -1049,7 +1047,7 @@ STR_SUBSIDY_X4 :x4 STR_TERRAIN_TYPE_VERY_FLAT :Molt Pla STR_TERRAIN_TYPE_FLAT :Pla STR_TERRAIN_TYPE_HILLY :Accidentat -STR_TERRAIN_TYPE_MOUNTAINOUS :Muntanyenc +STR_TERRAIN_TYPE_MOUNTAINOUS :Muntanyós STR_CITY_APPROVAL_PERMISSIVE :Permissiu STR_CITY_APPROVAL_TOLERANT :Tolerant @@ -1073,7 +1071,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Paràmetre de l STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoria: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipus: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restringeix la llista de sota mostrant només els paràmetres canviats +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restringeix la llista de sota usant els filtres predefinits STR_CONFIG_SETTING_RESTRICT_BASIC :Paràmetres bàsics STR_CONFIG_SETTING_RESTRICT_ADVANCED :Paràmetres avançats STR_CONFIG_SETTING_RESTRICT_ALL :Paràmetres per experts / tots els paràmetres @@ -1128,12 +1126,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :No permet que e STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Si està actiu els trens no canviaran de sentit a les estacions no-finals, inclús si hi ha un camí més curt al seu proper destí en cas de canviar de sentit STR_CONFIG_SETTING_DISASTERS :Desastres: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Commuta els desastres que poden bloquejar o destruir ocasionalment vehicles o infraestructures -STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la ciutat davant de reestructuracions a la zona: {STRING} -STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escull quin nivell de soroll i de danys ambientals fets per les companyies afecten al seu prestigi al poble i a futures accions de construcció a la zona +STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la població davant de reestructuracions a la zona: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escull quin nivell de soroll i de danys ambientals fets per les companyies afecten al seu prestigi a la població i a futures accions de construcció a la zona -STR_CONFIG_SETTING_BUILDONSLOPES :Permet construir en desnivells i costes: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Si està activat, les vies i les estacions poden ser construïdes en la majoria de pendents. Si està desactivat, només està permès en aquells pendents que coincideixin amb la direcció de la via i no necessitin fonaments -STR_CONFIG_SETTING_AUTOSLOPE :Permet modelar el terreny sota edificis, rails, etc. (autopendent): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Permet modificar el terreny sota edificis, rails, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permetre modelar el terreny sota edificis i rails, sense eliminar-los STR_CONFIG_SETTING_CATCHMENT :Permet una mida més real de l'àrea d'influència: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Tenir diferents mides de zones de captació per a diferents tipus d'estacions i aeroports @@ -1147,27 +1143,21 @@ STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Establir la qua STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Model d'acceleració dels trens: {STRING} STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Seleccioneu el model físic per a l'acceleració del tren. El model "original" penalitza les pujades per igual a tots els vehicles. El model "realístic" penalitza les pujades i les corbes en funció de diverses propietats del compost, al igual que la longitud i la força de tracció STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Model d'acceleració per als vehicles: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Seleccioneu el model físic per a l'acceleració d'un vehicle de carretera. El model "original" penalitza les pujades per igual a tots els vehicles. El model "realista" penalitza les pendents en funció de les diferents propietats de la màquina, com per exemple "l'esforç de tracció" +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Seleccioneu el model físic per a l'acceleració dels automòbils. El model "original" penalitza les pujades per igual a tots els vehicles. El model "realista" penalitza les pendents en funció de les diferents propietats de la màquina, com per exemple "l'esforç de tracció" STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Pendent d'inclinació per als trens: {STRING} -STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una celda en pendent per a un tren. Els valors més alts fan que sigui més difícil escalar un turó +STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una cel·la en pendent per a un tren. Els valors més alts fan que sigui més difícil escalar un turó STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Pendent d'inclinació per als automòbils: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una celda en pendent per a un vehicle de carretera. Els valors més alts fan que sigui més difícil escalar un turó +STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :La inclinació d'una cel·la amb pendent per a automòbils. Els valors més alts fan que sigui més difícil escalar un turó STR_CONFIG_SETTING_FORBID_90_DEG :Prohibeix fer girs de 90 graus als trens i vaixells: {STRING} -STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Els girs de 90 graus succeeixen quan una via horitzontal està seguida d'una vertical a la cel·la annexa, provocant que el tren giri 90 graus quan atravessi la vora de la cel·la enlloc dels 45 graus usuals en les altres combinacions. Això també s'aplica al radi de gir dels vaixells +STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Els girs de 90 graus succeeixen quan una via horitzontal està seguida d'una vertical a la cel·la annexa, provocant que el tren giri 90 graus quan travessi la vora de la cel·la en lloc dels 45 graus usuals en les altres combinacions. Això també s'aplica al radi de gir dels vaixells STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permet ajuntar estacions no annexes: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permetre afegir parts a una estació sense contacte directe amb les parts existents. Fa falta Ctrl + Clic, mentre és col·loquen les peces noves -STR_CONFIG_SETTING_IMPROVEDLOAD :Utilitza algorisme millorat de càrrega: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Si està activat, múltiples vehicles esperant a una estació es carreguen de forma seqüencial. -STR_CONFIG_SETTING_GRADUAL_LOADING :Carrega els vehicles gradualment: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :De mica en mica, carregar els vehícles que utilitzen duracions específiques de vehícles, en comptes de carregar-los tots alhora en un temps fix que només depén de la quantitat de càrrega carregada STR_CONFIG_SETTING_INFLATION :Inflació: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Habilita la inflació a l'economia, on l'augment dels costos són una mica més ràpids que els dels pagaments -STR_CONFIG_SETTING_SELECTGOODS :Entrega càrregues en una estació només quan hi ha demananda: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Només entregar la càrrega en una estació que ha demanat el vehícle de càrrega. Això evita ratis erronis per les càrregues que no han estat demanades per l'estació -STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Màxima longitud del pont: {STRING} +STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Màxima longitud dels ponts: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longitud màxima per a la construcció de ponts -STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Màxima longitud del túnel: {STRING} +STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Màxima longitud dels túnels: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Longitud màxima per a construir tunels STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Mètode de construcció de la indústria primària manual: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Mètode de finançament d'indústria primària. 'cap' significa que no serà possible fundar-ne cap, 'prospecció' significa que serà possible fundar-ne, però la construcció succeirà en un lloc aleatori del mapa i també podria passar que fracassi, 'com les altre indústries' significa que les indústries de matèries primeres poden ser construides a qualsevol lloc per les companyies igual que les indústries manufactureres @@ -1177,7 +1167,7 @@ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospeccionant STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Àrea plana al voltant de les indústries: {STRING} STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Quantitat d'espai pla al voltant d'una indústira. Això assegura que quedarà espai buit al voltant de la indústria per a construir vies, etc. STR_CONFIG_SETTING_MULTIPINDTOWN :Permet vàries indústries similars a cada població: {STRING} -STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normalment, un poble no vol més d'un tipus d'indústria de cada tipus. Amb aquest paràmetre es permetrà diverses indústries del mateix tipus al mateix poble +STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Normalment, una població no vol més d'un tipus d'indústria de cada tipus. Amb aquest paràmetre es permetrà diverses indústries del mateix tipus a la mateixa població STR_CONFIG_SETTING_SIGNALSIDE :Mostra els senyals: {STRING} STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :Selecciona a quin costat de la via s'han de posar els senyals STR_CONFIG_SETTING_SIGNALSIDE_LEFT :A l'esquerra @@ -1192,22 +1182,20 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Situa en quin l STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :a l'extrem més proper STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :a la meitat STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :a l'extrem més llunyà -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Cues d'automòbils (amb efectes quàntics): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Fes que un vehicle esperi davant d'una parada plena fins que estigui lliure -STR_CONFIG_SETTING_AUTOSCROLL :Finestra d'avis quan el ratolí és al marc del programa: {STRING} +STR_CONFIG_SETTING_AUTOSCROLL :Finestra d'avís quan el ratolí és al marc del programa: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quan està activat, les vistes començaran a desplaçar-se quan el ratolí sigui a prop la vora de la finestra STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivat STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Vista principal, només pantalla completa STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Vista principal STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Cada vista STR_CONFIG_SETTING_BRIBE :Permet subornar a les autoritats locals: {STRING} -STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permet a les companyies intentar subornar a l'autoritat local. Si el suborn es detectat per un inspector, la companyia no podrà actuar al poble durant sis mesos +STR_CONFIG_SETTING_BRIBE_HELPTEXT :Permet a les companyies intentar subornar a l'autoritat local. Si el suborn és detectat per un inspector, la companyia no podrà actuar a la població durant sis mesos STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Permet comprar els drets del transport en exclusiva: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una companyia compra els drets de transport en exclusiva en un poble, les estacions dels oponents (passatgers i càrrega) no rebran cap càrrega durant tot l'any +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :Si una companyia compra els drets de transport en exclusiva en una població, les estacions dels oponents (passatgers i càrrega) no rebran cap càrrega durant tot l'any STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :Permet finançar edificis: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners als pobles per a finançar noves cases +STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :Permet a les companyies donar diners a les poblacions per a finançar nous edificis STR_CONFIG_SETTING_ALLOW_FUND_ROAD :Permet finançar la reconstrucció dels carrers locals: {STRING} -STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permet a les companyies donar diners als pobles per a la reconstrucció de carrers i sabotejar la circulació de vehicles al poble +STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Permet a les companyies donar diners a les poblacions per a la reconstrucció de carrers i sabotejar-hi la circulació de vehicles STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Permet enviar diners a altres companyies: {STRING} STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Permet transferir diners entre companyies en el mode multijugador STR_CONFIG_SETTING_FREIGHT_TRAINS :Multiplicador de pes per contenidor per simular trens pesats: {STRING} @@ -1221,13 +1209,9 @@ STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Cap STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reduït STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permet situar parades en carreteres que són propietat de la població: {STRING} -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permet la construcció de passos a nivell en els carrers propietat dels pobles +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permet la construcció de passos a nivell en els carrers propietat de les poblacions STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permet circular a través de les parades en carreteres propietat de competidors: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permet la construcció de passos a nivell en els carrers propietat d'altres companyies -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permet construir estacions annexes: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permet que diferents estacions es toquin l'una a l'altra -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Activa diversos paquets de motors NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opció de compatibilitat per NewGRFs vells. No desactivis això, a menys que sàpigues exactament el que estàs fent! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}No es pot canviar aquest ajustament quan hi ha vehicles STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manteniment d'infrastructures: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quan està activat, la infrastructura provoca costos de manteniment. El cost creix proporcionalment al tamany de la xarxa de transport, afectant en conseqüència més a les companyies grosses que a les petites @@ -1248,53 +1232,67 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Els vehicles ma STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Quan està activat, tots els models de vehicles continuen disponibles per sempre després de la seva introducció STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Autorenova el vehicle quan sigui vell: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Quan està activat, un vehicle que arriba al seu final de vida útil és automàticament substituït quan es compleixen les condicions d'autorenovació -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenova quan el vehicle tingui {STRING} anys màx. -STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edat relativa quan el vehicle hagi de ser considerat per l'autorenovació -STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mesos{P 0 "" s} abans -STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mesos{P 0 "" s} després -STR_CONFIG_SETTING_AUTORENEW_MONEY :Autorenovació: mínim de diners per renovar: {STRING} +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenova el vehicle {STRING} de la seva edat màxima +STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Edat relativa a partir de la qual s'ha de considerar l'autorenovació del vehicle +STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" os} abans +STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mes{P 0 "" os} després +STR_CONFIG_SETTING_AUTORENEW_MONEY :Mínim de diners per a renovacions automàtiques: {STRING} STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantitat mínima de diners que han de quedar al banc abans de considerar l'autorenovació de vehicles STR_CONFIG_SETTING_ERRMSG_DURATION :Duració del missatge d'error: {STRING} -STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duració d'exhibició dels missatges d'error a la finestra vermella. Alguns missatges d'error (crítics) no són tancats automàticament després d'una estona, i han de ser tancats manualment +STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duració dels missatges d'error mostrats en finestres vermelles. Alguns missatges d'error (crítics) no es tanquen automàticament i s'han de tancar manualment STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segon{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY :Mostra descripcions emergents: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Retard abans que les descripcions emergents siguin mostrades quan el ratolí sigui sobre algun element de l'interfície. Alternativament les descripcions emergents poden ser vinculades al botó dret del ratolí STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Manté durant {COMMA} segon{P 0 "" s} STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Botó dret -STR_CONFIG_SETTING_POPULATION_IN_LABEL :Mostra els habitants a la etiqueta del nom de població: {STRING} -STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mostra la població a l'etiqueta dels pobles dins el mapa +STR_CONFIG_SETTING_POPULATION_IN_LABEL :Mostra els habitants a l'etiqueta del nom de la població: {STRING} +STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mostra els habitants a les etiquetes dels noms de les poblacions al mapa STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Gruix de les línies dels gràfics: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Gruix de la línia als gràfics. Una línia més fina és més llegible, una línia més gruixuda és més fàcil de veure i els colors són més fàcils de distingir +STR_CONFIG_SETTING_LANDSCAPE :Paisatge: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :El tipus de paisatge defineix escenaris amb diferents tipus de càrrega i requisits per al creixement de les poblacions. Els NewGRF i l'script de la partida poden modificar-ne l'aparença i el comportament STR_CONFIG_SETTING_LAND_GENERATOR :Generador de terrenys: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :L'algorisme generador original depèn del tipus de gràfics base i crea formes de terreny predefinides. TerraGenesis és un generador basat en el soroll Perlin que permet una configuració més precisa STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distància màxima des de la vora de refineries de petroli: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Tipus de terreny: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Només TerraGenesis) Escollir el tipus de terreny: des de molt pla fins a muntanyós +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densitat d'indústries: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Fixa el nombre d'indústries que s'haurien de generar i mantenir durant la partida +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distància màxima des de la vora a les refineries de petroli: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Les refineries de petroli només es construeixen a prop de les vores del mapa, això és a la costa en els mapes d'illes STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Alçada de la cota de neu: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Geografia del terreny (TerraGenesis només) : {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a quina alçada la neu comença en el paisatge subàrtic. La neu també afecta la generació d'indústries i els requisits per al creixement de les poblacions +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Geografia del terreny: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Només TerraGenesis) Escollir la suavitat del paisatge: els terrenys suaus tenen menys turons i són regulars; els terrenys més rugosos són irregulars i tenen molts turons STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Molt suau STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Suau STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Escarpat STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Molt escarpat +STR_CONFIG_SETTING_VARIETY :Varietat: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Només TerraGenesis) Controla la varietat en la distribució de les zones muntanyoses i planes. Aquesta opció controla la distribució d'aquestes zones; si es vol modificar si el terreny és més o menys muntanyós s'han de modificar altres opcions +STR_CONFIG_SETTING_RIVER_AMOUNT :Quantitat de rius: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Escollir la quantitat de rius a generar STR_CONFIG_SETTING_TREE_PLACER :Algorisme per situar arbres: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Permet escollir la distribució d'arbres al mapa. 'Original' distribueix els arbres uniformement. 'Millorat' els planta en grups STR_CONFIG_SETTING_TREE_PLACER_NONE :Cap STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Millorat +STR_CONFIG_SETTING_ROAD_SIDE :Automòbils: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Escollir el costat de conducció STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotació del mapa d'alçades: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Antihorari STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Horari STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Alçada que un escenari pla pren: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Activa modelar el terreny de les cel·les a les vores del mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Si està desactivat, les vores del mapa sempre seran oceans STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o més cel·les al vèrtex nord no està buit STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o més cel·les en una de les vores no és aigua -STR_CONFIG_SETTING_STATION_SPREAD :Màx. extensió de les estacions: {STRING} +STR_CONFIG_SETTING_STATION_SPREAD :Extensió màxima de les estacions: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Àrea màxima en què les parts d'una sola estació es poden estendre. Un valor alt farà alentir el joc STR_CONFIG_SETTING_SERVICEATHELIPAD :Revisions automàtiques dels helicòpters als heliports: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Inspecciona els helicòpters cada vegada que aterrin, encara que no hi hagi hangar a l'aeroport -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Enllaça la barra d'eines del paisatge a les barres d'eines de vies/carreteres/aigua/aeroports {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Enllaça la barra d'eines del paisatge a les barres d'eines de vies/carreteres/aigua/aeroports: {STRING} STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Quan s'obre la barra d'eines de construcció per un tipus de transport, també s'obre la barra d'eines de remodelació del paisatge STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color del terra utilitzat al mapa petit: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color del terreny al mapa petit @@ -1307,7 +1305,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Desplaçament s STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controla com la vista principal es desplaça a una posició específica quan es clica al mapa petit o quan s'envia una ordre de desplaçar-se a un objecte específic al mapa. Si està activat, la vista es desplaça suaument, si està desactivat salta directament al punt assenyalat STR_CONFIG_SETTING_MEASURE_TOOLTIP :Mostra un cartell de mesura quan estiguis utilitzant vàries eines de construcció: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Mostra les distàncies-cel·la i les diferències d'alçada quan s'arrossegui durant la construcció -STR_CONFIG_SETTING_LIVERIES :Mostra la decoració de la companyia: {STRING} +STR_CONFIG_SETTING_LIVERIES :Mostra la decoració específica del tipus de vehicle: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controla la utilització de les decoracions específiques d'un tipus de vehicle (en oposició a específic d'una companyia) STR_CONFIG_SETTING_LIVERIES_NONE :Cap STR_CONFIG_SETTING_LIVERIES_OWN :Pròpia companyia @@ -1337,17 +1335,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desactivat STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplaçament amb el botó esquerre: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el desplaçament del mapa arrossegant-lo amb el botó esquerre del ratolí. Això és especialment útil quan s'utilitzen pantalles tàctils -STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Utilitza el format de data curta {STRING} per a guardar partides +STR_CONFIG_SETTING_AUTOSAVE :Desada automàtica: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona l'interval entre desades automàtiques de les partides + +STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Utilitza el format de data {STRING} per a guardar partides STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format de la data en els noms dels arxius de les partides que es guardin STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :llarga (31 Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curta (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paleta predeterminada pels NewGRFs que no n'especifiquin una: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Paleta predeterminada a utilitzar als NewGRFs que no especifiquen quina necessiten -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Paleta predeterminada (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Paleta preexistent (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausa automàticament en començar una nova partida: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quan està activat, el joc es pausarà automàticament quan es comenci una partida nova, permetent a l'usuari estudiar el mapa més detalladament STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Quan s'estigui en pausa permet: {STRING} @@ -1356,12 +1352,12 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Sense accions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Totes les accions no-constructores STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Tot menys les accions modificadores del paisatge STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Totes les accions -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Utilitza la llista de vehicles avançada: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Mostra els grups en el llistat de vehicles de la companyia: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Activa la utilització de llistes de vehicles avançades per agrupar vehicles STR_CONFIG_SETTING_LOADING_INDICATORS :Utilitza indicadors de càrrega: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Selecciona si els indicadors de càrrega seran mostrats sobre els vehicles en càrrega o descàrrega -STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostra horaris amb marques enlloc de dies: {STRING} -STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Mostra els temps de viatge als horaris en marques enlloc de dies +STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Mostra horaris amb marques en lloc de dies: {STRING} +STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Mostra els temps de viatge als horaris en marques en lloc de dies STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostra l'arribada i la sortida als horaris: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostra als horaris l'arribada anticipadament i les hores de sortida STR_CONFIG_SETTING_QUICKGOTO :Creació ràpida d'ordres per a vehicles: {STRING} @@ -1371,9 +1367,9 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipus de via a STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :El més antic disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :El més modern disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :El més utilitzat disponible -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra les vies reservades: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra els camins reservats: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dóna a les vies reservades un color diferent per ajudar en problemes de trens que refusen entrar en blocs basats en camí -STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantingues les eines de construcció actives després del seu us: {STRING} +STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantingues les eines de construcció actives després del seu ús: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantingues les eines de construcció pels ponts, túnels, etc. obertes després d'utilitzar-les STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupa les despeses a la finestra de finances de la companyia: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Defineix la disposició de la companyia a la finestra de despeses @@ -1393,24 +1389,24 @@ STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Reprodueix els STR_CONFIG_SETTING_SOUND_VEHICLE :Vehicles: {STRING} STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Reprodueix els efectes de so dels vehicles STR_CONFIG_SETTING_SOUND_AMBIENT :Ambient: {STRING} -STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Reprodueix efectes de so ambient del paisatge, les indústries i els pobles +STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Reprodueix efectes de so ambient del paisatge, les indústries i les poblacions STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Desactiva la construcció d'infrastructures quan no hi hagi disponibles vehicles adequats: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Quan està activat, la infrastructura només està disponible si hi ha també vehicles disponibles, prevenint perdre temps i diners en infraestructures no utilitzables -STR_CONFIG_SETTING_MAX_TRAINS :Màx. trens per companyia: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Màxim nombre de trens per companyia: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Màxim nombre de trens que pot tenir una companyia -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Màx. automòbils per companyia: {STRING} -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Màxim nombre de vehicles de carretera que pot tenir una companyia -STR_CONFIG_SETTING_MAX_AIRCRAFT :Màx. avions per companyia: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Màxim nombre d'automòbils per companyia: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Màxim nombre d'automòbils que pot tenir una companyia +STR_CONFIG_SETTING_MAX_AIRCRAFT :Màxim nombre d'avions per companyia: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Màxim nombre d'avions que pot tenir una companyia -STR_CONFIG_SETTING_MAX_SHIPS :Màx. vaixells per companyia: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Màxim nombre de vaixells per companyia: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Màxim nombre de vaixells que pot tenir una companyia STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Desactiva trens per a les IA de l'ordinador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir trens als jugadors IA de l'ordinador STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Desactiva automòbils per a les IA de l'ordinador: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vehicles de carretera als jugadors IA de l'ordinador -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva els avions per a les IA de l'ordinador: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Activant aquesta opció fa que sigui impossible construir automòbils als jugadors IA de l'ordinador +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Desactiva avions per a les IA de l'ordinador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Activant aquesta opció fa que sigui impossible construir avions als jugadors IA de l'ordinador STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactiva vaixells per a les IA de l'ordinador: {STRING} STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vaixells als jugadors IA de l'ordinador @@ -1430,7 +1426,7 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT :Els intervals d STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Escull si les revisions dels vehicles depenen del temps passat des de la darrera revisió o de la caiguda d'un cert percentatge de la fiabilitat màxima STR_CONFIG_SETTING_SERVINT_TRAINS :Interval per defecte de servei per als trens: {STRING} STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous ferrocarrils, si no hi ha un interval de revisió explícit pel vehicle -STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} dia{P 0 "" s}/% +STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} di{P 0 a es}/% STR_CONFIG_SETTING_SERVINT_DISABLED :Desactivat STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Interval per defecte de servei per als vehicles: {STRING} STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous vehicles de caretera, si no hi ha un interval de revisió explícit pel vehicle @@ -1440,7 +1436,7 @@ STR_CONFIG_SETTING_SERVINT_SHIPS :Interval per de STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous vaixells, si no hi ha un interval de revisió explícit pel vehicle STR_CONFIG_SETTING_NOSERVICE :Desactiva les revisions quan les avaries s'estableixen a cap: {STRING} STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Quan està activat, els vehicles no són revisats si no es poden espatllar -STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activa limit de velocitat per al vagó: {STRING} +STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activa límits de velocitat per als vagons: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Quan està activat, també utilitza els límits de velocitat dels vagons per decidir la velocitat màxima del tren STR_CONFIG_SETTING_DISABLE_ELRAILS :Desactiva vies electrificades: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Activant aquest paràmetre es desactiva el requeriment d'electrificar les vies per poder fer-hi circular locomotores elèctriques @@ -1451,13 +1447,13 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Arribada del pr STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Mostra les notícies quan arribi el primer vehicle a una estació d'un competidor STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidents / desastres: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Mostra un diari quan passin accidents i desastres -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Informació de l'Empresa: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Informació de l'empresa: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Mostra les notícies de companyies noves que es creen i de companyies en risc de fer fallida STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Obertura d'indústries: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Mostra les notícies d'aparicions d'indústries noves STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Tancament d'indústries: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Mostra les notícies d'indústries que tanquen -STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Canvis de l'Economia: {STRING} +STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Canvis de l'economia: {STRING} STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Mostra un diari sobre els canvis globals en l'economia STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Canvis de producció de les indústries aprovisionades per la companyia: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Mostra les notícies de canvis als nivells de producció de les indústries proveïdes per la companyia pròpia @@ -1473,10 +1469,10 @@ STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Canvis en l'adm STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Mostra missatges sobre les estacions que canviïn l'acceptació d'alguna càrrega STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subvencions: {STRING} STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Mostra les notícies d'esdeveniments relacionats amb subsidis -STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Informació General: {STRING} +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Informació general: {STRING} STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Mostra les notícies d'esdeveniments generals, com ara compra de drets exclusius o finançar la reconstrucció de carrers -STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Fora +STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Desactivat STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resum STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Complet @@ -1491,13 +1487,13 @@ STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentatge del STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentatge del benefici donat a branques intermediàries dins els sistemes, donant més control sobre els beneficis STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :En arrossegar, col·locar senyals cada: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Estableix la distància en les quals els senyals seran construïts a la via fins al següent obstacle (senyal, desviament), si els senyals són arrossegats -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} cel·la{P 0 "" s} +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} cel·l{P 0 a es} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Quan arrosseguis, mantingues fixada la distància entre senyals: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Selecciona el comportament de la situació de senyals quan Ctrl+arrossega senyals. Si es desactiva, els senyals són situats al voltant dels túnels o ponts per evitar grans trossos sense senyals. Si s'activa, els senyals són situats cada n cel·les, fent l'alineament de senyals en vies paral·leles més fàcil STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Construir semàfors mecànics automàticament abans de: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Estableix l'any per utilitzar semàfors elèctrics. Abans d'aquest any s'utilitzaran senyals mecànics (que tenen exactament la mateixa funció, però amb diferent aspecte) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activa la interfície de senyals: {STRING} -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Mostra una finestra per escollir els tipus de senyals a construir, enlloc de només la rotació sense finestra de tipus de senyals amb Ctrl+clic sobre els senyals +STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Mostra una finestra per escollir els tipus de senyals a construir, en lloc de només la rotació sense finestra de tipus de senyals amb Ctrl+clic sobre els senyals STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipus de senyal a construir predeterminada: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipus de senyal predeterminat a utilitzar STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Normal @@ -1509,19 +1505,19 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Només normal STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Només avançada STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Totes -STR_CONFIG_SETTING_TOWN_LAYOUT :Disposició de carreteres pels nous pobles: {STRING} -STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Disposició per la xarxa de carreteres dels pobles +STR_CONFIG_SETTING_TOWN_LAYOUT :Disposició de carreteres per les noves poblacions: {STRING} +STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Disposició per la xarxa de carreteres de les poblacions STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Original STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Millors carreteres STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :graella 2x2 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :graella 3x3 STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatori -STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Els pobles poden construir carreteres: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permet als pobles construir carreteres per créixer. Desactiva-ho per prevenir que les autoritats del poble construeixin carreteres -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Els pobles tenen permís per construir passos a nivell: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activant aquesta opció permets als pobles construir passos a nivell +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Les poblacions poden construir carreteres: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permet a les poblacions construir carreteres per créixer. Desactiva-ho per prevenir que les autoritats de la població construeixin carreteres +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Les poblacions tenen permís per construir passos a nivell: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activant aquesta opció es permet a les poblacions construir passos a nivell STR_CONFIG_SETTING_NOISE_LEVEL :Permet a la ciutat controlar el nivell de soroll dels aeroports: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Amb aquesta opció desactivada, no hi podran haver dos aeroports en un poble. Amb aquesta opció activada, el nombre d'aeroports en una ciutat està limitat pels límits d'acceptació de sorolls de la ciutat que depen de la població, la mida de l'aeroport i la distància +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Amb aquesta opció desactivada, no podran haver-hi més de dos aeroports en una mateixa població. Amb aquesta opció activada, el nombre d'aeroports en cada població està limitat pel límit d'acceptació de soroll de la població, que depèn de la mida de l'aeroport i de la distància STR_CONFIG_SETTING_TOWN_FOUNDING :Fundar poblacions durant la partida: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Activant aquesta opció permets els jugadors fundar noves poblacions durant la partida STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Prohibit @@ -1546,10 +1542,10 @@ STR_CONFIG_SETTING_SOFT_LIMIT :Nombre màxim d STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Nombre de finestres no-enganxoses obertes abans que les finestres antigues es tanquin automàticament per fer lloc a les noves finestres STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :desactivat -STR_CONFIG_SETTING_ZOOM_MIN :Nivell màxim de zoom cap endavant: {STRING} -STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivell màxim de zoom cap endins a les vistes. Activant els nivells de zoom cap endins elevats incrementa les necessitats de memòria -STR_CONFIG_SETTING_ZOOM_MAX :Nivell màxim de zoom cap enrera: {STRING} -STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :El nivell de zoom cap enfora màxim a les vistes. Un nivell més elevat de zoom cap enfora pot causar alentiments +STR_CONFIG_SETTING_ZOOM_MIN :Zoom màxim d'apropament: {STRING} +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_ZOOM_LVL_MIN :4x STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal @@ -1563,18 +1559,16 @@ STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Lenta STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normal STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Ràpida STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Molt ràpida -STR_CONFIG_SETTING_LARGER_TOWNS :Proporció de pobles que es convertiran en ciutats: {STRING} -STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Quantitat de pobles que esdevenen una ciutat, es a dir un poble que comença més gran i creix més ràpidament -STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 en {COMMA} +STR_CONFIG_SETTING_LARGER_TOWNS :Proporció de pobles que esdevindran ciutats: {STRING} +STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Proporció de poblacions que seran ciutats, és a dir, poblacions que comencen amb més habitants i que creixen més ràpidament +STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 de cada {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Cap -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida de ciutat inicial: {STRING} -STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles normals a l'inici de la partida -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Treu els elements de carretera absurds durant la reconstrucció de carretera: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Elimina les carreteres sense sortida durant les reconstruccions de carreteres finançades +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador de mida inicial de ciutats: {STRING} +STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :La grandària mitjana de les ciutats en relació als pobles a l'inici de la partida -STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualitza el graf de distribució cada {STRING} di{P 0:2 a es} +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualitza el graf de distribució cada {STRING} di{P 0 a es} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Temps entre recàlculs successius del graf de distribució. Cada recàlcul calcula els plans per un component del graf. Això significa que un valor X per aquest paràmetre no implica que tot el graf serà actualitzat cada X dies. Només alguns components ho seran. Com més curt el valor, més temps de processador es requerirà per calcular-ho. Com més llarg, més temps passarà fins que la distribució de càrregues comenci en noves rutes. -STR_CONFIG_SETTING_LINKGRAPH_TIME :Empra {STRING} di{P 0:2 a es} per al recàlcul del graf de distribució +STR_CONFIG_SETTING_LINKGRAPH_TIME :Empra {STRING} di{P 0 a es} per al recàlcul del graf de distribució STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Temps dedicat a cada recàlcul d'un component del graf de connexions. Quan un recàlcul s'inicia, el programa crea un fil que pot executar-se durant aquest nombre de dies. Com més curt el valor, més probable que el fil no hagi acabat quan s'espera. Aleshores el programa s'atura fins que el fil acaba ("ralentització"). Com més llarg el valor, més temps requereix l'actualització de la distribució quan les rutes canvien. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimètric @@ -1586,7 +1580,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simètric" vol STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Mode de distribució per la classe de càrrega BLINDADA: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :La classe de càrrega BLINDADA conté objectes de valor a la zona temperada, diamants a la subtropical o or al clima subàrtic. Els NewGRF poden canviar això. "simètric" significa que aproximadament la mateixa quantitat d'aquesta càrrega s'enviarà de l'estació A a la B que de B a A. "asimètric" vol dir que quantitats arbitràries d'aquesta càrrega poden ser enviades en qualsevol sentit. "manual" significa que no s'aplicarà cap distribució automàtica a aquesta càrrega. Es recomana indicar asimètric o manual en clima subàrtic, doncs els bancs no enviaran or de tornada a les mines. Pels climes temperat i subtropical podeu també seleccionar simètric, doncs els bancs enviaran objectes de valor de tornada al banc d'origen de certa quantitat d'aquests. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Mode de distribució per altres classes de càrrega: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"simètric" significa que aproximadament la mateixa quantitat de càrrega s'enviarà de l'estació A a la B que de B a A. "asimètric" vol dir que quantitats arbitràries de càrrega poden ser enviades en qualsevol sentit. "manual" significa que no s'aplicarà cap distribució automàtica a aquestes càrregues. Probablement voldreu indicar "asimètric" o manual. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asimètric" vol dir que quantitats arbitràries de càrrega poden ser enviades en qualsevol sentit. "manual" significa que no s'aplicarà cap distribució automàtica a aquestes càrregues. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisió de la distribució: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Com més alt el valor indicat, més temps de processador requerirà el càlcul del graf de distribució. Si requereix massa temps podeu notar ralentització. Si indiqueu un valor baix, però, la distribució serà poc acurada, i us podeu trobar que la càrrega no és enviada als llocs que espereu. STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecte de la distància sobre les demandes: {STRING} @@ -1632,38 +1626,40 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (peu) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Mètric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfície STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localització -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construcció -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicles -STR_CONFIG_SETTING_STATIONS :{ORANGE}Estacions -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economia -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribució de la Càrrega -STR_CONFIG_SETTING_AI :{ORANGE}Competidors -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Opcions de pantalla -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interacció +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gràfics STR_CONFIG_SETTING_SOUND :{ORANGE}Efectes de so -STR_CONFIG_SETTING_NEWS :{ORANGE}Notícies i missatges -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Senyals -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Manipulació de la càrrega -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadors de l'ordinador (IA) -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autorenovació -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Revisions +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfície +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Finestres de visualització +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcció +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Notícies / Consells +STR_CONFIG_SETTING_COMPANY :{ORANGE}Companyia +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Comptabilitat +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicles +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Lleis físiques STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Recorreguts -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trens -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Pobles -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Indústries +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitacions +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Accidents +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generació del món +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Interacció amb l'entorn +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoritats +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Poblacions +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Indústries +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribució de la càrrega +STR_CONFIG_SETTING_AI :{ORANGE}Competidors +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadors de l'ordinador (IA) STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF STR_CONFIG_SETTING_PATHFINDER_YAPF_RECOMMENDED :YAPF {BLUE}(Recomanat) -STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Cerca de rutes per trens: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Cercar rutes per a utilitzar als trens -STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Cerca de rutes per vehicles: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Cercar rutes per a utilitzar per a vehícles de carretera -STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Cerca de rutes per vaixells: {STRING} -STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Cercar rutes per a utilitzar als vaixells +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Encaminador dels trens: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Algorisme a emprar per a escollir les rutes dels trens +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Encaminador d'automòbils: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Algorisme a emprar per a escollir les rutes dels automòbils +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Encaminador dels vaixells: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Algorisme a emprar per a escollir les rutes dels vaixells STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :Canvi de sentit automàtic als senyals: {STRING} STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT :Permetre als trens girar en un senyal, si esperaven allà durant molt temps @@ -1677,7 +1673,7 @@ STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... car STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... ignorant NewGRF '{STRING}': GRF ID duplicada amb '{STRING}' STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... ignorant NewGRF invàlid '{STRING}': {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no trobat -STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :insegur per a us estàtic +STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :insegur per a ús estàtic STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :sistema NewGRF STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :incompatible amb aquesta versió d'OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconegut @@ -1722,7 +1718,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Seleccio STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Mostra les opcions del joc STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostra la taula de rècords STR_INTRO_TOOLTIP_ADVANCED_SETTINGS :{BLACK}Mostra paràmetres avançats -STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostra els paràmetres NewGRF +STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostra la configuració de les extensions NewGRF STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprova si hi ha continguts nous i actualitzats per a descarregar STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra els paràmetres de les IA/Script de la partida STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt d'OpenTTD @@ -1761,10 +1757,10 @@ STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugant STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Eruga màgica (treu indústries, objectes inamovibles): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Els túnels es poden creuar: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Els avions a reacció no tindran accidents (freqüents) en els aeroports petits: {ORANGE}{STRING} -STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :paisatge temperat -STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :paisatge subàrtic -STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :paisatge subtropical -STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :paisatge de joguines +STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Paisatge temperat +STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Paisatge subàrtic +STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Paisatge subtropical +STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Paisatge de joguines STR_CHEAT_CHANGE_DATE :{LTBLUE}Canvia la data: {ORANGE}{DATE_SHORT} STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Canvia l'any actual STR_CHEAT_SETUP_PROD :{LTBLUE}Activa la modificació de valors de producció: {ORANGE}{STRING} @@ -1782,11 +1778,11 @@ STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Escollei STR_LIVERY_PANEL_TOOLTIP :{BLACK}Selecciona un esquema de colors per canviar-lo, o diversos esquemes amb CTRL+Clic. Clica a la casella per canviar l'esquema STR_LIVERY_DEFAULT :Decoració estàndard -STR_LIVERY_STEAM :Motor de vapor -STR_LIVERY_DIESEL :Motor Dièsel -STR_LIVERY_ELECTRIC :Motor Elèctric -STR_LIVERY_MONORAIL :Motor Monorail -STR_LIVERY_MAGLEV :Motor maglev +STR_LIVERY_STEAM :Locomotora a Vapor +STR_LIVERY_DIESEL :Locomotora Dièsel +STR_LIVERY_ELECTRIC :Locomotora Elèctrica +STR_LIVERY_MONORAIL :Locomotora Monorail +STR_LIVERY_MAGLEV :Locomotora Maglev STR_LIVERY_DMU :DMU STR_LIVERY_EMU :EMU STR_LIVERY_PASSENGER_WAGON_STEAM :Vagó de passatgers (Vapor) @@ -1809,6 +1805,7 @@ STR_LIVERY_FREIGHT_TRAM :Tramvia de càr STR_FACE_CAPTION :{WHITE}Selecció de cares STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancel·la la selecció de nova cara STR_FACE_OK_TOOLTIP :{BLACK}Accepta la selecció de nova cara +STR_FACE_RANDOM :{BLACK}Aleatoritza STR_FACE_MALE_BUTTON :{BLACK}Home STR_FACE_MALE_TOOLTIP :{BLACK}Selecciona cares d'home @@ -1929,14 +1926,14 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protegei STR_NETWORK_START_SERVER_UNADVERTISED :No STR_NETWORK_START_SERVER_ADVERTISED :Sí STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} client{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Màx. clients: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Màxim nombre de clients: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Tria el nombre màxim de clients. No és necessari omplir tots els llocs. STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} companyi{P a es} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Màx. companyies: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Màxim nombre de companyies: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limita el servidor a un cert nombre de companyies STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} espectador{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Màx. espectadors: -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limita el servidor a un cert nombre de espectadors +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Màxim nombre d'espectadors: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limita el servidor a un cert nombre d'espectadors STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Idioma parlat: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Els altres jugadors sabran quin idioma es parla en aquest servidor. @@ -2119,7 +2116,7 @@ STR_NETWORK_ERROR_CLIENT_CHEATER :s'ha intentat u STR_NETWORK_ERROR_CLIENT_SERVER_FULL :servidor ple STR_NETWORK_ERROR_CLIENT_TOO_MANY_COMMANDS :estava enviant massa ordres STR_NETWORK_ERROR_CLIENT_TIMEOUT_PASSWORD :no s'ha rebut la contrasenya a temps -STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :General temps d'espera esgotat +STR_NETWORK_ERROR_CLIENT_TIMEOUT_COMPUTER :temps d'espera general esgotat STR_NETWORK_ERROR_CLIENT_TIMEOUT_MAP :la descàrrega del mapa ha tardat massa STR_NETWORK_ERROR_CLIENT_TIMEOUT_JOIN :el processat del mapa ha tardat massa ############ End of leave-in-this-order @@ -2238,10 +2235,10 @@ STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}Commuta STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}Commuta la transparència de les estructures com ara fars i antenes. Ctrl+Clic per bloquejar STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Commuta la transparència de la catenària. CTRL+clic per bloquejar STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Commuta la transparència dels indicadors de càrrega. Ctrl+Clic per bloquejar -STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Mostra els objectes invisibles enlloc de transparents +STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Alternar entre transparència i invisibilitat dels objectes # Linkgraph legend window -STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Llegenda del fluxe de càrrega +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Llegenda del Flux de Càrrega STR_LINKGRAPH_LEGEND_ALL :{BLACK}Tot STR_LINKGRAPH_LEGEND_NONE :{BLACK}Cap STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Selecciona les companyies que seran mostrades @@ -2334,8 +2331,8 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Disminue STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Incrementa la densitat de senyals en arrossegar # Bridge selection window -STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selecciona pont de tren -STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selecciona un Pont de carretera +STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Selecciona Pont de Tren +STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Selecciona Pont de Carretera STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selecció de pont - clica sobre el pont triat per construir-lo STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} @@ -2493,10 +2490,10 @@ STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}Gran STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}Aleatori STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}Selecciona la mida de la població STR_FOUND_TOWN_CITY :{BLACK}Ciutat -STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Les ciutats creixen més ràpid que els pobles normals{}Depenent de la configuració, són més grans quan es funden +STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Les ciutats creixen més ràpid que els pobles{}Depenent de la configuració, són més grans quan es funden STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Disposició de les carreteres de la població: -STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Selecciona la disposició de les carreteres utilitzades per aquest poble +STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Selecciona la disposició de les carreteres utilitzades per a aquesta població STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Original STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Millors carreteres STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}graella 2x2 @@ -2504,14 +2501,14 @@ STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}graella STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatori # Fund new industry window -STR_FUND_INDUSTRY_CAPTION :{WHITE}Financia una nova indústria +STR_FUND_INDUSTRY_CAPTION :{WHITE}Finança una nova indústria STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Escolleix el tipus d'indústria adequada d'aquesta llista STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :Moltes indústries aleatòries STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Omple el mapa amb indústries situades aleatòriament STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Cost: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Prospecciona STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Construeix -STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Financia +STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Finança # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadena industrial per la indústria {STRING} @@ -2682,23 +2679,19 @@ STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Generaci STR_MAPGEN_MAPSIZE :{BLACK}Mida del mapa: STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Selecciona la mida del mapa en cel·les. El nombre de cel·les disponibles serà lleugerament més petit STR_MAPGEN_BY :{BLACK}* -STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. de pobles: +STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Nombre de poblacions: STR_MAPGEN_DATE :{BLACK}Data: -STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. d'indústries: +STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nombre d'indústries: STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Alçada de la neu: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mou la línia de neu un pas amunt STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mou la línia de neu un pas avall -STR_MAPGEN_RANDOM_SEED :{BLACK}Nombre aleatori: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Clica per introduir un nombre aleatori -STR_MAPGEN_RANDOM :{BLACK}Aleatoritza -STR_MAPGEN_RANDOM_HELP :{BLACK}Canvia el nombre aleatori utilitzat pel Generador de Terrenys -STR_MAPGEN_LAND_GENERATOR :{BLACK}Gen. de terrenys: +STR_MAPGEN_LAND_GENERATOR :{BLACK}Generació de terrenys: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritme d'arbres: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipus de terreny: STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nivell del mar: STR_MAPGEN_QUANTITY_OF_RIVERS :{BLACK}Rius: -STR_MAPGEN_SMOOTHNESS :{BLACK}Planitut: -STR_MAPGEN_VARIETY :{BLACK}Distribució de la varietat: +STR_MAPGEN_SMOOTHNESS :{BLACK}Suavitat: +STR_MAPGEN_VARIETY :{BLACK}Varietat: STR_MAPGEN_GENERATE :{WHITE}Genera # Strings for map borders at game generation @@ -2718,7 +2711,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nom del STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Mida: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Posa un valor aleatori STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Canviar alçada de la línia de neu STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Canviar l'any inicial @@ -2758,10 +2750,10 @@ STR_NEWGRF_SETTINGS_INACTIVE_LIST :{WHITE}Arxius N STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}Selecciona configuració: STR_NEWGRF_FILTER_TITLE :{ORANGE}Cadena de filtre: STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Carrega la predefinició seleccionada -STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Desa predef. +STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Desa configuració STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Desa la llista actual com a predefinició STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Introdueix el nom de la predefinició -STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Esborra predef. +STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Esborra configuració STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Esborra la predefinició selecciona actualment STR_NEWGRF_SETTINGS_ADD :{BLACK}Afegeix STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Afegeix l'arxiu NewGRF seleccionat a la teva configuració @@ -2773,9 +2765,11 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mou amun STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mou amunt l'arxiu NewGRF seleccionat de la llista STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mou avall STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mou avall l'arxiu NewGRF seleccionat de la llista +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Actualitza +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Empra les versions més noves dels NewGRF d'aquesta configuració preestablerta si prèviament se n'han actualitzat els NewGRF corresponents STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Una llista de fitxers NewGRF que estan instal·lats -STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Estableix paràm. +STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Establir paràmetres STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Mostra els paràmetres STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Commuta paleta STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Commuta la paleta del NewGRF seleccionat.{}Fes això quan els gràfics del NewGRF en el joc es vegin rosats @@ -2797,6 +2791,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}No s'ha tr STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivat STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Versió incompatible amb aquesta versió de OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Guardar configuració NewGRF +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Llista de totes les configuracions NewGRF preestablertes; seleccioneu-ne una per a copiar el nom +STR_SAVE_PRESET_TITLE :{BLACK}Introduïu un nom per a l'actual configuració NewGRF +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nom amb què guardar la nova configuració preestablerta de NewGRF +STR_SAVE_PRESET_CANCEL :{BLACK}Cancel·la +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}No guardar els canvies en la configuració NewGRF preestablerta +STR_SAVE_PRESET_SAVE :{BLACK}Guarda +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Guarda la configuració NewGRF preestablerta amb el nom seleccionat + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Canvia els paràmetres NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Tanca @@ -2885,7 +2889,7 @@ STR_NEWGRF_BROKEN :{WHITE}El compo STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Un vehicle '{1:ENGINE}' ha canviat el seu estat de vagó amb potència mentre estava fora de la cotxera STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Un vehicle '{1:ENGINE}' ha canviat la seva llargada mentre estava fora del dipòsit STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Un vehicle '{1:ENGINE}' ha canviat la seva capacitat mentre estava fora del dipòsit o no s'estava canviant el tipus de càrrega a transportar -STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' pertanyent a '{COMPANY}' té una llargada invàlida. Això està causat probablement per problemes amb els NewGRFs. La partida podria desincronitzar-se o penjar-se +STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren '{VEHICLE}' pertanyent a '{COMPANY}' té una llargada invàlida. Això està causat probablement per problemes amb els NewGRF. La partida podria desincronitzar-se o penjar-se STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' està donant informació incorrecta STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}La informació de càrrega/remodelació per '{1:ENGINE}' no encaixa amb la llista de compres després de la construcció. Això podria causar un mal funcionament de autorenova/-substitueix @@ -2903,8 +2907,8 @@ STR_NEWGRF_INVALID_INDUSTRYTYPE : # NewGRF scanning window -STR_NEWGRF_SCAN_CAPTION :{WHITE}Escanejant NewGRFs -STR_NEWGRF_SCAN_MESSAGE :{BLACK}Escanejant NewGRFs. Depenent de la quantitat pot trigar una estona... +STR_NEWGRF_SCAN_CAPTION :{WHITE}Escanejant fitxers NewGRF +STR_NEWGRF_SCAN_MESSAGE :{BLACK}Escanejant NewGRF. Depenent de la quantitat pot trigar una estona... STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} escanejats de {NUM} NewGRF{P "" s} estimats STR_NEWGRF_SCAN_ARCHIVES :Escanejant arxius @@ -2933,15 +2937,15 @@ STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} ( STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Població: {ORANGE}{COMMA}{BLACK} Cases: {ORANGE}{COMMA} STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Passatgers el darrer mes: {ORANGE}{COMMA}{BLACK} màx: {ORANGE}{COMMA} STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Correu el darrer mes: {ORANGE}{COMMA}{BLACK} màx: {ORANGE}{COMMA} -STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Càrrega requerida per tal de que el poble creixi: +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Càrrega requerida per tal de que la població creixi: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} requerides STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} requerit a l'hivern STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} entregat STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (encara requerit) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (entregat) -STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}El poble creix cada {ORANGE}{COMMA}{BLACK} di{P a es} -STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}El poble creix cada {ORANGE}{COMMA}{BLACK} di{P a es} (finançat) -STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}El poble {RED}no {BLACK} està creixent +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}La població creix cada {ORANGE}{COMMA}{BLACK} di{P a es} +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}La població creix cada {ORANGE}{COMMA}{BLACK} di{P a es} (finançat) +STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}La població {RED}no {BLACK} està creixent STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Límit de soroll a la ciutat: {ORANGE}{COMMA}{BLACK} màx: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centra la vista principal a la població. Ctrl+Clic obre una nova vista al lloc de la població STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Autoritat local @@ -2967,20 +2971,20 @@ STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Treure l STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Petita campanya de publicitat STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Mitjana campanya de publicitat STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Gran campanya de publicitat -STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Financia la reconstrucció dels carrers de la població +STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Finança la reconstrucció dels carrers de la població STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Construeix una estàtua del propietari de la companyia -STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financia nous edificis +STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finança nous edificis 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}Financia la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}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}Financia 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ó. La 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_BRIBE :{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen!!.{}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_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 @@ -2992,7 +2996,7 @@ STR_GOALS_SPECTATOR_NONE :{ORANGE}- No ap 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/poble/cel·la. Ctrl+clic per obrir una nova vista sobre la indústria/poble/cel·la +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 STR_GOAL_QUESTION_CAPTION_QUESTION :Pregunta @@ -3270,7 +3274,7 @@ STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trens Disponibl STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehicles Disponibles STR_VEHICLE_LIST_AVAILABLE_SHIPS :Vaixells Disponibles STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Avions Disponibles -STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Veure una llista dels motors disponibles per aquest tipus de vehicle +STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Veure una llista dels models disponibles per aquest tipus de vehicle STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Administra llista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Envia instruccions a tots els vehicles de la llista @@ -3298,12 +3302,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Vehicles desagr STR_GROUP_DEFAULT_SHIPS :Vaixells desagrupats STR_GROUP_DEFAULT_AIRCRAFTS :Avions desagrupats -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grups - Clica en un grup per llistar tots els vehicles d'aquest grup +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grups - Clica en un grup per llistar tots els vehicles d'aquest grup. Arrossega i solta per a canviar-ne la jerarquia. STR_GROUP_CREATE_TOOLTIP :{BLACK}Clica per crear un grup STR_GROUP_DELETE_TOOLTIP :{BLACK}Elimina el grup seleccionat STR_GROUP_RENAME_TOOLTIP :{BLACK}Canvia el nom del grup seleccionat STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clica per protegir aquest grup de l'autosubstitueix global +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Esborrar grup +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Estàs segur que vols esborrar aquest grup i tots els seus subgrups? + STR_GROUP_ADD_SHARED_VEHICLE :Afegeix vehicles compartits STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els vehicles @@ -3361,15 +3368,15 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Canvia e STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}Canvia el nom STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Canvia el nom -STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Canvia el nom del tipus de vehicle ferroviari -STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Canvia el nom del tipus d'automòbil -STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Canvia el nom del tipus de vaixell -STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Canvia el nom del tipus d'avió +STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Canvia el nom del model de vehicle ferroviari +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Canvia el nom del model d'automòbil +STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Canvia el nom del model de vaixell +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Canvia el nom del model d'avió -STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Canvia el nom del tipus vehicle ferroviari -STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Canvia el nom del tipus d'automòbil -STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Canvia el nom del tipus de vaixell -STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Canvia el nom del tipus d'avió +STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Canvia el nom del model de vehicle ferroviari +STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Canvia el nom del model d'automòbil +STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Canvia el nom del model de vaixell +STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Canvia el nom del model d'avió # Depot window STR_DEPOT_CAPTION :{WHITE}{DEPOT} @@ -3448,7 +3455,7 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Estàs # Engine preview window STR_ENGINE_PREVIEW_CAPTION :{WHITE}Missatge del fabricant de vehicles -STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Acabem de dissenyar {G un una} {G nou nova} {STRING}. Esteu interessats en fer ús exclusiu d'aquest vehicle durant un any, per veure com va, abans del seu llançament mundial ? +STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Acabem de dissenyar {G un una} {G nou nova} {STRING}. Esteu interessats en fer ús exclusiu d'aquest vehicle durant un any, per veure com va, abans del seu llançament mundial? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=Femenin}locomotora de tren STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=Masculin}automòbil STR_ENGINE_PREVIEW_AIRCRAFT :{G=Masculin}avió @@ -3470,26 +3477,26 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :Vehicle STR_REPLACE_VEHICLE_SHIP :Vaixell STR_REPLACE_VEHICLE_AIRCRAFT :Avió -STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Selecciona el tipus de motor a substituir -STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Selecciona el nou tipus de motor que vols fer servir en lloc del seleccionat +STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Selecciona el model a substituir +STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Selecciona el nou model que vols fer servir en lloc del seleccionat STR_REPLACE_VEHICLES_START :{BLACK}Comença a substituir STR_REPLACE_VEHICLES_NOW :Substitueix ara tots els vehicles STR_REPLACE_VEHICLES_WHEN_OLD :Substitueix només vehicles vells -STR_REPLACE_HELP_START_BUTTON :{BLACK}Prem per iniciar el reemplaçament del tipus de motor seleccionat a l'esquerra pel seleccionat a la dreta +STR_REPLACE_HELP_START_BUTTON :{BLACK}Prem per iniciar el reemplaçament del model seleccionat a l'esquerra pel seleccionat a la dreta STR_REPLACE_NOT_REPLACING :{BLACK}No substituint STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}Cap vehicle seleccionat STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} quan sigui vell STR_REPLACE_VEHICLES_STOP :{BLACK}Para de substituir -STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Prem per aturar el reemplaçament del tipus de motor seleccionat a l'esquerra +STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Prem per aturar el reemplaçament del model seleccionat a l'esquerra STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituint: {ORANGE}{STRING} STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Canvia entre finestres de substitució de vagons i de motors STR_REPLACE_ENGINES :Motors STR_REPLACE_WAGONS :Vagons -STR_REPLACE_HELP_RAILTYPE :{BLACK}Tria el tipus de via pel que vols substituir motors -STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra quin motor dels seleccionats a l'esquerra es substitueix, si n'hi ha +STR_REPLACE_HELP_RAILTYPE :{BLACK}Tria el tipus de via dels models de vehicle que vols substituir +STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra quin model dels seleccionats a l'esquerra es substitueix, si n'hi ha STR_REPLACE_RAIL_VEHICLES :Trens de Vapor i Dièsel STR_REPLACE_ELRAIL_VEHICLES :Trens Elèctrics STR_REPLACE_MONORAIL_VEHICLES :Trens Monorail @@ -3519,7 +3526,7 @@ STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}Això co STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}Obliga al tren a actuar sense esperar a tenir el semàfor lliure STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Remodela un tren per transportar un altre tipus de càrrega -STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Remodela vehicle de carretera per dur un tipus diferent de càrrega +STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Remodela l'automòbil per dur un tipus diferent de càrrega STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Remodela vaixell mercant per portar un tipus diferent de càrrega STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Remodela avions per poder transportar diferents tipus de càrrega @@ -3578,7 +3585,7 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Anys: {L STR_VEHICLE_INFO_AGE :{COMMA} any{P "" s} ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} any{P "" s} ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. Màx: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vel. Màx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Vel. màx: {LTBLUE}{VELOCITY} {BLACK}Abast: {LTBLUE}{COMMA} cel·les STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pes: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potència: {LTBLUE}{POWER}{BLACK} Vel. Màx: {LTBLUE}{VELOCITY} {BLACK}Màx. E.T.: {LTBLUE}{FORCE} @@ -3647,12 +3654,12 @@ STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Seleccio STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Selecciona tipus de càrrega a transportar STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Remodela tren -STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Remodela vehicle de carretera +STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Remodela automòbil STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Remodela vaixell STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Remodela avió STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Remodela un tren per transportar el tipus de càrrega seleccionada -STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Remodela vehicle de carretera per a dur el tipus de carrega senyalat +STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Remodela l'automòbil per a dur el tipus de càrrega escollit STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Remodela vaixell per portar el tipus de càrrega seleccionat STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Remodela l'avió per poder transportar el tipus de càrrega seleccionat @@ -3692,8 +3699,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Canvia e STR_ORDER_REFIT :{BLACK}Remodela STR_ORDER_REFIT_TOOLTIP :{BLACK}Selecciona quin tipus de càrrega vols remodelar en aquesta ordre. Control+Clic per eliminar l'ordre de remodelar -STR_ORDER_REFIT_AUTO :{BLACK}Auto-remodela -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selecciona quin tipus de càrrega s'ha d'auto-remodelar en aquesta ordre. Ctrl+Clic per treure l'instrucció remodela. Auto-remodela només serà aplicat si el vehicle ho permet +STR_ORDER_REFIT_AUTO :{BLACK}Remodela a l'estació +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selecciona a quin tipus de càrrega s'ha de remodelar en aquesta ordre. Ctrl+Clic per treure la instrucció "remodela". El remodelat en estacions només serà aplicat si el vehicle ho permet STR_ORDER_DROP_REFIT_AUTO :Càrrega fixa STR_ORDER_DROP_REFIT_AUTO_ANY :Càrrega disponible @@ -3754,7 +3761,7 @@ STR_ORDER_SERVICE_NON_STOP_AT :Revisió sense STR_ORDER_NEAREST_DEPOT :el més proper STR_ORDER_NEAREST_HANGAR :l'hangar més proper -STR_ORDER_TRAIN_DEPOT :Cotxeres de tren +STR_ORDER_TRAIN_DEPOT :Cotxeres de Tren STR_ORDER_ROAD_VEHICLE_DEPOT :Cotxera de Vehicles STR_ORDER_SHIP_DEPOT :Drassanes STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} @@ -3784,18 +3791,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descarregui STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descarreguis i espera carregar del tot qualsevol càrrega) STR_ORDER_NO_UNLOAD_NO_LOAD :(No descarreguis i no carreguis) -STR_ORDER_AUTO_REFIT :(Auto-remodela a {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Càrrega completa amb auto-remodela a {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Càrrega completa de qualsevol càrrega amb auto-remodela a {STRING}) -STR_ORDER_UNLOAD_REFIT :(Descarrega i pren la càrrega amb auto-remodela a {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descarrega i espera fins a càrrega completa amb auto-remodela a {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descarrega i espera fins a càrrega completa qualsevol amb auto-remodela a {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transfereix i pren la càrrega amb auto-remodela a {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfereix i espera a càrrega completa amb auto-remodela a {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfereix i espera a càrrega completa qualsevol amb auto-remodela a {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(No descarreguis i pren càrrega amb auto-remodela a {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descarreguis i espera càrrega completa amb auto-remodela a {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descarreguis i espera càrrega completa qualsevol amb auto-remodela a {STRING}) +STR_ORDER_AUTO_REFIT :(Remodelació a {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Càrrega completa amb remodelació a {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Càrrega completa de qualsevol càrrega amb remodelació a {STRING}) +STR_ORDER_UNLOAD_REFIT :(Descarrega i pren la càrrega amb remodelació a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descarrega i espera fins a càrrega completa amb remodelació a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descarrega i espera fins a càrrega completa qualsevol amb remodelació a {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transfereix i pren la càrrega amb remodelació a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfereix i espera a càrrega completa amb remodelació a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfereix i espera a càrrega completa qualsevol amb remodelació a {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No descarreguis i pren càrrega amb remodelació a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descarreguis i espera càrrega completa amb remodelació a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descarreguis i espera càrrega completa qualsevol amb remodelació a {STRING}) STR_ORDER_AUTO_REFIT_ANY :càrrega disponible @@ -3821,9 +3828,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Horari - STR_TIMETABLE_NO_TRAVEL :Sense viatge STR_TIMETABLE_NOT_TIMETABLEABLE :Viatge (automàtic; programat per la següent ordre manual) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viatge (fora d'horari) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viatja com a molt a {2:VELOCITY} (sense horari) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viatja (sense horari) com a molt a {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Viatge a {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viatja durant {STRING} com a molt a {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viatja (durant {STRING}, sense horari) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viatja (durant {STRING}, sense horari) com a molt a {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(quedar-s'hi durant {STRING}, sense horari) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viatja durant {STRING}, sense horari) STR_TIMETABLE_STAY_FOR :i estigues {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :i viatge per {STRING} STR_TIMETABLE_DAYS :{COMMA} di{P a es} @@ -3946,7 +3957,7 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de la Pa STR_AI_SETTINGS_CLOSE :{BLACK}Tanca STR_AI_SETTINGS_RESET :{BLACK}Reset STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING} -STR_AI_SETTINGS_START_DELAY :Número de dies per començar aquesta IA després de l'anterior (dóna o pren): {ORANGE}{STRING} +STR_AI_SETTINGS_START_DELAY :Número de dies per començar aquesta IA després de l'anterior (aproximadament): {ORANGE}{STRING} # Textfile window @@ -4001,7 +4012,7 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE : STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}La partida es va desar amb una versió sense suport de tramvies. S'han eliminat tots els tramvies # Map generation messages -STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generació del mapa avortada...{}... no hi ha llocs adequats per als pobles +STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generació del mapa avortada...{}... no hi ha llocs adequats per a poblacions STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no hi ha poblacions en aquest escenari STR_ERROR_PNGMAP :{WHITE}Impossible carregar un terreny des del PNG... @@ -4086,15 +4097,15 @@ STR_ERROR_PROTECTED :{WHITE}Aquesta STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Impossible construir poblacions STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}No es pot canviar el nom de la població... STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}No es pot construir una població aquí... -STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}No es pot expandir el poble... +STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}No es pot expandir la població... STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... massa prop del límit del mapa STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... massa prop d'una altra població STR_ERROR_TOO_MANY_TOWNS :{WHITE}... massa poblacions STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... no queda espai al mapa -STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}El poble no construirà carrers. Pots activar la construcció de carrers via Paràmetres avançats->Economia->Pobles +STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}La població no construirà carrers. Pots activar la construcció de carrers via Paràmetres avançats->Economia->Poblacions STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obres en progrés -STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No es pot eliminar aquest poble...{}Hi ha una estació o una cotxera al poble o una cel·la pertanyent al poble no pot ser eliminada -STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no hi ha un lloc adequat per situar l'estàtua al centre d'aquest poble +STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No es pot eliminar aquesta població...{}Hi ha una estació, un dipòsit o una cel·la pertanyent a la població que no pot ser eliminada +STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no hi ha un lloc adequat per situar l'estàtua al centre d'aquesta població # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... massa indústries @@ -4277,6 +4288,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ja STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}No es pot crear el grup... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}No puc eliminar aquest grup... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}No puc canviar el nom del grup... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}No es pot establir la jerarquia de grups... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}No puc eliminar tots els vehicles d'aquest grup... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}No puc afegir el vehicle a aquest grup... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}No puc afegir vehicles compartits al grup... @@ -4288,7 +4300,7 @@ STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Vaixell STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Avió al camí STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}No es pot remodelar el tren... -STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}No es pot remodelar el vehicle de carretera... +STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}No es pot remodelar l'automòbil... STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}No es pot remodelar el vaixell... STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}No es pot remodelar l'avió... @@ -4530,10 +4542,10 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_KELLING_3100_DIESEL :Kelling 3100 (D STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_TURNER_TURBO_DIESEL :Turner Turbo (Dièsel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_MJS_1000_DIESEL :MJS 1000 (Dièsel) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_125_DIESEL :SH '125' (Dièsel) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Elèctric) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Elèctrica) STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :{G=Masculin}Vagó per Correu STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :{G=Masculin}Vagó per Carbó @@ -4561,8 +4573,8 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :{G=Masculin}Vag STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :{G=Masculin}Vagó per Piles STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó per Begudes Gasoses STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :{G=Masculin}Vagó per Plàstic -STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Elèctric) +STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :{G=Masculin}Vagó per Correu @@ -4591,10 +4603,10 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :{G=Masculin}Vag STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :{G=Masculin}Vagó per Piles STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :{G=Masculin}Vagó per Begudes Gasoses STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :{G=Masculin}Vagó per Plàstic -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cíclope' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Elèctric) -STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Quimera' (Elèctric) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cíclope' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Elèctrica) +STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Quimera' (Elèctrica) STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :{G=Masculin}Vagó per Correu diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 9764e1fca2..ba78f3a221 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -906,13 +906,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} čeka u brodogradilištu STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} čeka u zrakoplovnom hangaru -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ima premalo naredbi u rasporedu STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ima nevažeće naredbe STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ima duplicirane naredbe STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ima neispravnu postaju u svojim naredbama -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ima u naredbama aerodrom sa prekratkom sletnom stazom STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} postaje star STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} postaje vrlo star @@ -1034,11 +1033,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Katalonski STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Automatsko spremanje STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Odaberi interval između automatskih spremanja igre +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Isključeno STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Svaki mjesec STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Svaka 3 mjeseca STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Svakih 6 mjeseci STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Svakih 12 mjeseci +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Jezik STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Izaberi jezično sučelje @@ -1050,9 +1051,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Razluči STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Izaberi razlučivost ekrana STR_GAME_OPTIONS_RESOLUTION_OTHER :ostalo -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Format za sliku ekrana -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Izaberi format za sliku ekrana - 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} @@ -1168,7 +1166,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Postavke kompan STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategorija: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tip: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Sužava doljnju listu prikazom samo izmijenjenih postavki +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Sužava doljnju listu koristeći samo predpostavljene filtere STR_CONFIG_SETTING_RESTRICT_BASIC :Osnovne postavke STR_CONFIG_SETTING_RESTRICT_ADVANCED :Napredne postavke STR_CONFIG_SETTING_RESTRICT_ALL :Postavke za napredne korisnike / sve postavke @@ -1226,9 +1224,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Uključivanje n STR_CONFIG_SETTING_CITY_APPROVAL :Stav gradske uprave prema restrukturiranju područja: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Odaberi koliko buka i ekološka šteta utječu na gradsku ocjenu pojedine kompanije i na daljnja građevinska djelovanja u njihovim područjima -STR_CONFIG_SETTING_BUILDONSLOPES :Dopusti izgradnju na kosinama i obalama: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ukoliko je uključenom, tračnice i stanice se mogu graditi na većini nagiba. Ukoliko je isključeni, dozvoljava se njihova gradnja samo na nagibima koji se podudaraju smjerom tračnica i tada ne trebaju temelje -STR_CONFIG_SETTING_AUTOSLOPE :Dopusti modeliranje zemlje ispod građevina, tračnica, itd (autonagib): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Dopusti modeliranje zemlje ispod građevina, tračnica, itd.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dozvoli uređivanje terena ispod građevina i pruga bez njihovog uklanjanja STR_CONFIG_SETTING_CATCHMENT :Dopusti realističnije veličine područja zahvaćanja: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Različiti dohvati za različite vrste stanica i zračnih luka @@ -1252,14 +1248,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zabrani vlakovi STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Okreti za 90 stupnjeva se događaju kada vodoravni dio pruge odmah nastavlja okomiti dio pruge na sljedećoj pločici, dakle čineći zaokret vlaka od 90 stupnjeva prelaskom ruba pločice umjesto uobičajenih 45 stupnjeva kod drugih kombinacija pruge. Ovo se primjenjuje i na radijus okretanja brodova STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Dopusti spajanje postaja koje nisu izravno jedna do druge {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Dozvoli dodavanje dijelova stanice bez direktog dodira s postojećim dijelovima. Potrebno pritisnuti Ctrl+Klik dok se dodaju novi dijelovi -STR_CONFIG_SETTING_IMPROVEDLOAD :Koristi unaprijeđeni utovarni algoritam: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ukoliko je uključeno, vozila koja čekaju na stanici se utovaruju jedno po jedno. Utovarivanje sljedećeg vozila započinje tek kada ima dovoljno tereta da se napuni prethodno vozilo. -STR_CONFIG_SETTING_GRADUAL_LOADING :Postupno utovaruj u vozila: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Postupno utovarivanje vozila koristeći specifično trajanje utovara, umjesto utovarivanja odjednom sa stalnim vremenom ovisnom jedino o količini utovarenog tereta STR_CONFIG_SETTING_INFLATION :Inflacija: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Uključi inflaciju u ekonomiji, gdje troškovi rastu malo brže od plaćanja -STR_CONFIG_SETTING_SELECTGOODS :Dostavi teret na postaju samo ako na njoj postoji potražnja: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Isporuči teret jedino na stanicu gdje je zatražen od strane vozila koje se utovaruje. Ovo sprečava loše ocjene za terete koji nisu servisirani na stanici STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Najveća dužina mostova: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Najveća dužina za izgradnju mostova STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Najveća dužina tunela: {STRING} @@ -1287,8 +1277,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Mjesto gdje će STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :početka STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :sredine STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :kraja -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Nizanje cestovnih vozila (s kvantnim učincima): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Cestovna vozila moraju čekati ispred zauzetih raskrižja dok se ne rasčiste STR_CONFIG_SETTING_AUTOSCROLL :Pomakni prozor kada je miš na rubu: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Kada je uključeno, prikazna polja će se početi pomicati kada se miš nalazi blizu ruba prozora STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Isključeno @@ -1319,10 +1307,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Dopusti prolazn STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Dozvoli izgradnju prolaznih stanica za cestama u vlasništvu grada STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Dopusti prolazne postaje na cestama koje su u vlasništvu konkurencije: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Dozvoli izgradnju prolaznih stanica na cestama u vlasništvu drugih kompanija -STR_CONFIG_SETTING_ADJACENT_STATIONS :Dopusti izgradnju pridruženih postaja: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Dozvoli dodirivanje različitih stanica -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Omogući više setova NewGRF strojeva: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opcija za kompatibilnost starih NewGRF-ova. Ne isključujte osim ako točno znate što radite! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Mijenjanje ovih postavki nije moguće kada postoje vozila STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Održavanje infrastrukture: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kada je omogućeno, infrastruktura uzrokuje troškove održavanja. Cijena raste više nego proporcionalno s veličinom mreže, čime utječe veće tvrtke više od manjih @@ -1361,27 +1345,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Prikaži popula STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Debljina linija u grafikonima: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Debljina linije u grafikonima. Tanja linija je preciznija za čitanje, deblja linija je lakša za vidjeti i boje su lakše za razabrati +STR_CONFIG_SETTING_LANDSCAPE :Teren: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Tereni definiraju osnovne scenarije za igru sa različitim teretima i preduvjetima za rast gradova. NewGRF-ovi i Skripte Igre dozvoljavaju detaljnije kontrole i postavke. STR_CONFIG_SETTING_LAND_GENERATOR :Generator zemlje: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Originalni generator ovisi o baznom grafičkom setu i stvara fiksne oblike u terenu. TerraGenesis je generator baziran na Perlinu sa detaljnijim kontrolama i postavkama. STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Izvorni STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Najveća udaljenost Rafinerija Nafte od rubova: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Vrsta terena: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Samo TerraGenesis) Brdovitost terena +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Gustoća industrija: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Odredite koliko će industrija biti stvoreno i kolika će količina biti održavana tijekom igre. +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Najveća udaljenost rafinerija nafte od rubova mape: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinerije nafte se grade samo uz rubove mape odnosno na obali za otočne mape STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Visina linije snijega: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Grubost terena (samo TerraGenesis) : {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Upravljajte na kojoj visini počinje snijeg u subarktičkoj klimi. Snijeg također utječe na stvaranje industrija i preduvjeta za rast gradova. +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Grubost terena: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Samo TerraGenesis) Odaberite učestalost brda: Blaži tereni imaju rjeđa ali raširenija brda. Teži tereni imaju više brda koja bi mogla izgledati kao da se ponavljaju. STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Vrlo glatko STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Glatko STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Grubo STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Vrlo grubo +STR_CONFIG_SETTING_VARIETY :Raspodjela raznolikosti: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Samo TerraGenesis) Upravljajte da li će mapa sadržati i planinska i ravna područja. Pošto ovo samo radi mapu ravnijom, druge postavke bi trebali biti podešene na planinske. +STR_CONFIG_SETTING_RIVER_AMOUNT :Količina rijeka: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Odaberite koliko rijeka želite stvoriti STR_CONFIG_SETTING_TREE_PLACER :Algoritam za sađenje drveća: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Odaberite raspored drveća na mapi: 'Original' sadi drveće ravnomjerno raspoređeno, 'Napredno' ih sadi u skupinama. STR_CONFIG_SETTING_TREE_PLACER_NONE :Nijedan STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Izvorni STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Unaprijeđen +STR_CONFIG_SETTING_ROAD_SIDE :Cestovna vozila: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Odaberite stranu vožnje STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotacija visinske karte: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Obrnuto od smjera kazaljke na satu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :U smjeru kazaljke na satu STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Visinski nivo koji ravna mapa u scenariju dobiva: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Omogući teraformiranje polja na rubovima karte: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ako je isključeno, rubovi mape će uvijek biti ocean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Jedna ili više pločica na sjevernom rubu nisu prazne STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedna ili više pločica na jednom od rubova nije voda @@ -1402,7 +1400,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Glatko klizanje STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontroliraj kako se glavni prikaz pomiče na neku lokaciju kada se klikne na malu mapu ili kada se izda naredba za pomicanje na određeni objekt na mapi. Ako je uključeno, prikaz se pomiče glatko, ako je isključeno, prikaz odmah preskoči na ciljnu lokaciju STR_CONFIG_SETTING_MEASURE_TOOLTIP :Pokaži mjerni naputak prilikom korištenja raznih alata za izgradnju: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Prikaži udaljenosu u pločicama i visinsku razliku kod povlačenja prilikom operacija gradnje -STR_CONFIG_SETTING_LIVERIES :Pokaži tvrtkine boje: {STRING} +STR_CONFIG_SETTING_LIVERIES :Pokaži specifične livreje prema tipu vozila: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Kontroliraj korištenje shema boja tipa vozila za određena vozila (u suprotnosti sa shemama boja kompanija) STR_CONFIG_SETTING_LIVERIES_NONE :Nijedna STR_CONFIG_SETTING_LIVERIES_OWN :Vlastita tvrtka @@ -1432,17 +1430,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Isključeno STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Skrolanje lijevim klikom: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Uključi pomicanje mape povlačenjem sa lijevom tipkom miša. Ovo je posebno korisno kada se koristi ekran na dodir za pomicanje +STR_CONFIG_SETTING_AUTOSAVE :Automatsko snimanje: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Odaberite interval između automatskog snimanja igre + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Koristi {STRING} format datuma za ime snimljene pozicije STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format datuma u imenima datoteka sa snimljenom igrom STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dugo (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kratko (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Osnovna paleta će biti postavljena za NewGRFove koji ne odrede paletu: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Osnovna paleta koju će koristiti NewGRF-ovi koji nemaju specificirano koju paletu trebaju -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Osnovna (D) paleta boja -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) paleta boja - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatski pauziraj prilikom pokretanja nove igre: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Kada je uključeno, igra će se automatski pauzirati priliko pokretanja nove igre, dozvoljavajući bolje proučavanje mape STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Kod pauze dozvoli: {STRING} @@ -1451,7 +1447,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Nijedna akcija STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Sve ne-konstrukcijske akcije STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Sve osim akcija za izmjenu krajolika STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Sve akcije -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Koristi napredni popis vozila: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Koristi grupe u listi vozila: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Uključi korištenje naprednih lista vozila za grupiranje vozila STR_CONFIG_SETTING_LOADING_INDICATORS :Koristi pokazatelje utovara: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Odaberi da li će prikazivači utovara biti prikazani iznad vozila koja se utovaruju ili iznad vozila koja se istovaruju @@ -1492,13 +1488,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Sviraj zvučne STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Isključi gradnju infrastrukture kada odgovarajuća vozila nisu dostupna: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Kada je uključeno, infrastruktura je dostupna samo ako su dostupna i vozila za nju, sprečavajući trošenje vremena i novca na neupotrebljivu infrastrukturu -STR_CONFIG_SETTING_MAX_TRAINS :Maksimalan broj vlakova po kompaniji: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maksimalni broj vlakova po kompaniji: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Najveći broj vlakova koje može imati kompanija -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maksimalan broj cestovnih vozila po kompaniji: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maksimalni broj cestovnih vozila po kompaniji: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Najveći broj cestovnih vozila koje može imati kompanija -STR_CONFIG_SETTING_MAX_AIRCRAFT :Maksimalan broj zrakoplova po kompaniji: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maksimalni broj zrakoplova po kompaniji: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Najveći broj zrakoplova koje može imati kompanija -STR_CONFIG_SETTING_MAX_SHIPS :Maksimalan broj brodova po kompaniji: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maksimalni broj brodova po kompaniji: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Najveći broj brodova koje može imati kompanija STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Isključi vlakove za računalo: {STRING} @@ -1616,7 +1612,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Dozvoli gradovi STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Gradovi smiju graditi pružne prijelaze: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Uključivanje ove postavke dozvoljava se gradovima da grade cestovno-pružne prijelaze STR_CONFIG_SETTING_NOISE_LEVEL :Omogući određivanje razine buke za zračne luke od strane gradova: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kada je ova postavka isključena, mogu postojati dve zračne luke u svakom gradu. Kada je ova postavka uključena, broj zračnih luka u nekom gradu je limitirana količinom dozvoljene buke u gradu, koja ovisi o populaciji i udaljenosti i veličini zračnih luka +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kada je ova postavka isključena, mogu postojati dva aerodroma u svakom gradu. Kada je ova postavka uključena, broj aerodroma u nekom gradu je limitirana količinom dozvoljene buke u gradu, koja ovisi o populaciji i udaljenosti i veličini aerodroma STR_CONFIG_SETTING_TOWN_FOUNDING :Osnivanje gradova tijekom igre: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Uklučivanje ove postavke dozvoljava igračima osnivanje novih gradova tijekom igre STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Zabranjeno @@ -1664,8 +1660,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 od {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nijedan STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Početni množitelj veličine grada: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Prosječna veličina gradova u donosu na naselja kod početka igre -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Ukloni besmislene cestovne elemente tijekom izgradnje prometnica: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Uklanjanje slijepih ulica kod financirane rekonstrukcije cesta STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Ažuriraj povezni grafikon svakih {STRING} dan{P 0:2 a a a} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Vrijeme između slijedećih rekalkulacija poveznog grafikona. Svaka rekalkulacija izračunava planove za jednu komponentu grafikona. To znači da vrijednost X za ovu postavku ne mora značiti i ažuriranje kompletnog grafikona unutar X dana. Samo neke komponente će biti ažurirane. Čim kraće vrijeme odredite, više će biti potrebno resursa CPU-a za izračun. Čim duže vrijeme odredite, trebati će više vremena za pokretanje distribucije po novim rutama. @@ -1727,27 +1721,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperijalni (ft STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrički (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Sučelje STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalizacija -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Izgradnja -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila -STR_CONFIG_SETTING_STATIONS :{ORANGE}Postaje -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomija -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribucija tereta -STR_CONFIG_SETTING_AI :{ORANGE}Suparnici -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Postavke prikaza -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interakcija +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafika STR_CONFIG_SETTING_SOUND :{ORANGE}Zvučni efekti -STR_CONFIG_SETTING_NEWS :{ORANGE}Novosti i poruke -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signali -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Tretiranje tereta -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računalni igrači -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Auto-obnavljanje -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servisiranje +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Sučelje +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Opće +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Pogledi +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Izgradnja +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novosti / savjetnici +STR_CONFIG_SETTING_COMPANY :{ORANGE}Kompanija +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Računovodstvo +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Rutanje -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vlakovi -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Gradovi -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ograničenja +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofe / nesreće +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generacija svijeta +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Okoliš +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Vlasti +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Gradovi +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribucija tereta +STR_CONFIG_SETTING_AI :{ORANGE}Suparnici +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računalni igrači STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1904,6 +1900,7 @@ STR_LIVERY_FREIGHT_TRAM :Teretni tramvaj STR_FACE_CAPTION :{WHITE}Izbor lica STR_FACE_CANCEL_TOOLTIP :{BLACK}Odustani od izbora novog lica STR_FACE_OK_TOOLTIP :{BLACK}Prihvati izbor novog lica +STR_FACE_RANDOM :{BLACK}Nasumično STR_FACE_MALE_BUTTON :{BLACK}Muško STR_FACE_MALE_TOOLTIP :{BLACK}Odaberi muška lica @@ -2024,13 +2021,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Zaštiti STR_NETWORK_START_SERVER_UNADVERTISED :Ne STR_NETWORK_START_SERVER_ADVERTISED :Da STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klijen{P t ta ata} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maks klijenata: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimalni broj klijenata: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Izaberi maksimalan broj klijenata. Ne moraju sva mjesta biti popunjena. STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} tvrtk{P a e i} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maks tvrtki: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimalni broj tvrtki: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Ograniči poslužitelj na određeni broj tvrtki STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} gledatelj{P "" a a} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maks promatrača: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimalni broj promatrača: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Ograniči poslužitelj na određeni broj gledatelja STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Jezik kojim se govori: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Drugi igrači znat će kojim se jezikom govori na poslužitelju @@ -2783,10 +2780,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Broj ind STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Visina linije snijega STR_MAPGEN_SNOW_LINE_UP :{BLACK}Pomakni visinu linije snijega za jedan gore STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Pomakni visinu linije snijega za jedan dolje -STR_MAPGEN_RANDOM_SEED :{BLACK}Nasumični slijed: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikni za unos nasumičnog slijeda -STR_MAPGEN_RANDOM :{BLACK}Nasumično -STR_MAPGEN_RANDOM_HELP :{BLACK}Promijeni slučajni slijed koji se koristi za kreiranje terena STR_MAPGEN_LAND_GENERATOR :{BLACK}Izrađivač zemljišta: STR_MAPGEN_TREE_PLACER :{BLACK} Algoritam za drveće: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Vrsta terena: @@ -2813,7 +2806,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ime visi STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Veličina: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Upiši nasumično sjeme STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Promijeni visinu linije snijega STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Promijeni početnu godinu @@ -2868,6 +2860,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Pomakni STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Pomakni odabranu NewGRF datoteku gore na listi STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK} Pomakni dolje STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Pomakni odabranu NewGRF datoteku dolje na listi +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Nadogradnja +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Nadogradite NewGRF datoteke za koje već imate instalirane novije verzije STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Popis instaliranih NewGRF datoteka STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Postavi parametre @@ -2892,6 +2886,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Nije prona STR_NEWGRF_SETTINGS_DISABLED :{RED}Onemogućeno STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Nije kompatibilno sa ovom verzijom OpenTTD-a +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Snimiti predpostavke +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Popis dostupnih predpostavki, odaberite jednu za kopiranje pod imenom ispod +STR_SAVE_PRESET_TITLE :{BLACK}Unesite ime za predpostavke +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Trenutno odabrano ime za snimanje predpostavki +STR_SAVE_PRESET_CANCEL :{BLACK}Odustani +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Ne mijenjati predpostavke +STR_SAVE_PRESET_SAVE :{BLACK}Snimanje +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Snimite predpostavke u trenutno odabrano ime + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Promijeni NewGRF parametre STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Zatvori @@ -3244,7 +3248,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Ukupno: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Bankovna bilanca STR_FINANCES_LOAN_TITLE :{WHITE}Zajam -STR_FINANCES_MAX_LOAN :{WHITE}Maks zajam: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maksimalni kredit: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Pozajmi {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Povećaj iznos zajma. Ctrl+klik posuđuje najveći mogući iznos @@ -3393,12 +3397,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Negrupirana ces STR_GROUP_DEFAULT_SHIPS :Negrupirani brodovi STR_GROUP_DEFAULT_AIRCRAFTS :Negrupirani zrakoplovi -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groupe - klikni na grupu kako bi izlistao sva vozila ove grupe +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupe - kliknite na grupu kako bi izlistali sva vozila ove grupe. Povucite i prenesite grupe za postavljanje hijerarhije. STR_GROUP_CREATE_TOOLTIP :{BLACK}Klikni za kreiranje grupe STR_GROUP_DELETE_TOOLTIP :{BLACK}Obriši odabranu grupu STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenuj odabranu grupu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni kako bi zaštitio ovu grupu od globalne automatske zamjene +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Izbriši grupu +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Da li ste sigurni da želite izbrisati ovu grupu i sve njene podgrupe? + STR_GROUP_ADD_SHARED_VEHICLE :Dodaj dijeljena vozila STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozila @@ -3787,7 +3794,7 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Promijen STR_ORDER_REFIT :{BLACK}Prenamijeni STR_ORDER_REFIT_TOOLTIP :{BLACK}Odaberi vrstu tereta za prenamijenu u ovoj naredbi. Ctrl+klik kako bi uklonio naputak za prenamjenu -STR_ORDER_REFIT_AUTO :{BLACK}Auto-remont +STR_ORDER_REFIT_AUTO :{BLACK}Auto-remont na stanici STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Odaberi za koji tip tereta odraditi auto-remont. Ctrl+Click za micanje remontnih uputa. Auto-remont će se odraditi samo ako ga vozilo dopušta. STR_ORDER_DROP_REFIT_AUTO :Popravljen teret STR_ORDER_DROP_REFIT_AUTO_ANY :Dostupni teret @@ -3880,8 +3887,8 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Čekaj bilo ko STR_ORDER_NO_UNLOAD_NO_LOAD :(Bez iskrcaja i bez ukrcaja) STR_ORDER_AUTO_REFIT :(Auto-remont u {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Puni teret sa auto-remontom u {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Bilo koji puni teret sa auto-remontom u {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Preuzimanje punog tereta sa auto-remontom u {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Preuzimanje bilo kojeg punog tereta sa auto-remontom u {STRING}) STR_ORDER_UNLOAD_REFIT :(Iskrcaj i preuzimanje tereta sa auto-remontom u {STRING}) STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Iskrcaj i čekanje punog tereta sa auto-remontom u {STRING}) STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Iskrcaj i čekanje bilo kojeg punog tereta sa auto-remontom u {STRING}) @@ -3916,9 +3923,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Vozni re STR_TIMETABLE_NO_TRAVEL :Nema putovanja STR_TIMETABLE_NOT_TIMETABLEABLE :Putovanje (automatsko; prema rasporedu sljedeće ručno određene naredbe) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Putovanje (izvan voznog reda) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Putuj uz najviše {2:VELOCITY} (not timetabled) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Putovanje (nije mjereno) uz najviše {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Putovanje za {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Putuj prema {STRING} uz najviše {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Putovanje (za {STRING}, nije mjereno) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Putovanje (za {STRING}, nije mjereno) sa najviše {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stajanje za {STRING}, nije mjereno) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(putovanje za {STRING}, nije mjereno) STR_TIMETABLE_STAY_FOR :i boravak za {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :i putovanje za {STRING} STR_TIMETABLE_DAYS :{COMMA} dan{P "" a a} @@ -4372,6 +4383,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... već STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Nije moguće kreirati grupu... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Nije moguće obrisati ovu grupu... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Nije moguće preimenovati ovu grupu... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Ne može se postaviti matična grupa... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nije moguće ukloniti sva vozila iz ove grupe... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nije moguće dodati vozila u ovu grupu STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Nije moguće dodati dijeljena vozila u grupu... diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 4c4208aaeb..71cf60849f 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -215,7 +215,7 @@ STR_ABBREV_GRAIN :{TINY_FONT}ZR STR_ABBREV_WOOD :{TINY_FONT}DŘ STR_ABBREV_IRON_ORE :{TINY_FONT}ŽR STR_ABBREV_STEEL :{TINY_FONT}OC -STR_ABBREV_VALUABLES :{TINY_FONT}CE +STR_ABBREV_VALUABLES :{TINY_FONT}CN STR_ABBREV_COPPER_ORE :{TINY_FONT}MR STR_ABBREV_MAIZE :{TINY_FONT}KU STR_ABBREV_FRUIT :{TINY_FONT}OV @@ -897,13 +897,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} čeká v depu STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} čeká v hangáru -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} má příliš málo příkazů STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} nemá žádné příkazy STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} má zdvojené příkazy STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} má v příkazech neplatnou stanici -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} má v příkazech letiště, jehož dráha je příliš krátká STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} zastarává STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} silně zastarává @@ -1025,11 +1024,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Katalánská STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Automatické ukládání STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Volba intervalu mezi automatickým ukládáním hry +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Vypnuto STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Každý měsíc STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Každé 3 měsíce STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Každých 6 měsíců STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Každých 12 měsíců +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Jazyk STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Zvolit jazyk uživatelského rozhraní @@ -1041,9 +1042,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formát screenshotů -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Zvolit formát screenshotů - 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 ů} @@ -1159,7 +1157,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Nastavení spol STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategorie: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Druh: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Zobrazovat v seznamu níže pouze změněná nastavení +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Omezit nastavení v seznamu níže pomocí předdefinovaných filtrů STR_CONFIG_SETTING_RESTRICT_BASIC :Základní nastavení STR_CONFIG_SETTING_RESTRICT_ADVANCED :Pokročilé nastavení STR_CONFIG_SETTING_RESTRICT_ALL :Expertní nastavení / všechna nastavení @@ -1168,7 +1166,7 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Nastavení s ji STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Omezí určitá nastavení v seznamu níže STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Všechny typy nastavení -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Nastavení klienta (není uchováno v uložených hrách; ovlivní všechny hry) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Nastavení klienta (neuchována v uložených hrách; ovlivní všechny hry) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Nastavení hry (uchováno v uložených hrách; ovlivní pouze nové hry) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Nastavení hry (uchováno v uložené hře; ovlivní pouze stávající hru) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Nastavení společnosti (uchováno v uložených hrách; ovlivní pouze nové hry) @@ -1217,9 +1215,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Katastrofy, kte STR_CONFIG_SETTING_CITY_APPROVAL :Postoj městské rady k úpravám v oblasti: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vyber jak moc hluku a změn prostředí poškozuje hodnocení společnosti u města a tak dále komplikuje budoucí stavbu na jeho území -STR_CONFIG_SETTING_BUILDONSLOPES :Povolit výstavbu na svazích kopců a na pobřežích: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Pokud je zapnuto, tratě a stanice mohou být postaveny na většině svahů. Pokud ne, mohou být postaveny pouze na svazích stejného směru tak, že nevyžadují žádné základy. -STR_CONFIG_SETTING_AUTOSLOPE :Srovnání terénu pod budovami, kolejemi atd. (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Povolit srovnání terénu pod budovami, kolejemi atd. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Povoluje změnu terénu pod budovami a tratěmi bez jejich odstranění STR_CONFIG_SETTING_CATCHMENT :Povolit u oblasti pokrytí realističtější velikost: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Rozdílná velikost oblasti pokrytí u různých stanic a letišť @@ -1243,14 +1239,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zakázat vlaků STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90° zatočení nastane ve chvíli, kdy vodorovná kolej přímo navazuje na svislou kolej na vedlejším políčku. Vlak tak zatáčí o 90° místo klasických 45° u jiných kombinací kolejí. Ovlivní i zatáčení lodí. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Umožnit spojení nesousedících stanic: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Povolit přidávání částí stanice, které se nedotýkají již existujících částí. Je potřeba stisknout Ctrl při přidávání nových částí. -STR_CONFIG_SETTING_IMPROVEDLOAD :Použít vylepšený algoritmus nakládání: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Pokud je zapnuto, vozidla čekající ve stanici jsou nakládána postupně. Nakládání druhého vozidla začne pouze pokud ve stanici čeká dostatek nákladu k plnému naložení prvního vozidla. -STR_CONFIG_SETTING_GRADUAL_LOADING :Nakládat vozidla postupně: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Postupně nakládat vozidla po danou dobu, místo nakládání všeho najednou za pevný čas stanovený množstvím nákladu STR_CONFIG_SETTING_INFLATION :Inflace: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Povolit inflaci. Ceny se časem zvyšují mírně rychleji než platby. -STR_CONFIG_SETTING_SELECTGOODS :Dodávat zboží do stanice jen když je poptávka: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Stanice přijme náklad pouze pokud je vyžadován nakládajícím vozidlem. Zamezí se tak špatnému hodnocení u nákladů, které nejsou ze stanice vůbec odváženy STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximální délka mostu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Určuje maximální délku mostů STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximální délka tunelu: {STRING} @@ -1278,8 +1268,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Místo kde vlak STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :na začátku STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :uprostřed STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :na konci -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Silniční vozidla stojí fronty (s kvantovým efektem): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Vozidlo bude stát před zastávkou dokud se neuvolní STR_CONFIG_SETTING_AUTOSCROLL :Posouvat okno, když je kurzor na okraji: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Pokud je zapnuto, pohledy se začnou posouvat pokud bude kurzor v blízkosti okraje okna STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Vypnuto @@ -1310,10 +1298,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Stavba průjezd STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Povoluje stavbu průjezdných stanic na městem vlastněných silnicích STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Stavba průjezdných zastávek na silnicích vlastněných konkurencí: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Povolit stavění průjezných stanic na silnicích vlastněných jinými společnostmi. -STR_CONFIG_SETTING_ADJACENT_STATIONS :Povolit stavění přilehlých stanic: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Povoluje stavbu stanic dotýkajících se jiných -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Více grafických setů s vozidly vedle sebe: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Možnost kompatibility pro starší grafiky. Nevypínej, pokud nevíš co přesně děláš! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Toto nastavení nemůže být změněno, když jsou ve hře již nějaká vozidla STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Udržování infrastruktury: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Pokud je zapnuto, je třeba platit za údržbu infrastruktury. Náklady vzrůstají společně s velikostí dopravní sítě, takže velké společnosti platí více než malé. @@ -1334,7 +1318,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Vozidlům se ni STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Pokud je zapnuto, všechny modely vlaků zůstanou po uvedení dostupné napořád. (nezastarají) STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Automaticky nahradit dopravní prostředek, když zestárne: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Pokud je zapnuto, vozidla na konci své plánované životnosti budou automaticky nahrazena, když jsou splněny podmínky pro automatické obnovení. -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Automaticky nahradit vozidlo {STRING} před/po dosažení životnosti +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Automaticky nahradit vozidlo při dosažení {STRING} životnosti STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relativní věk kdy by měli být vozidlo automaticky vyměněno za nové STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} měsíc{P "" e ů} před STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} měsíc{P "" e ů} po @@ -1352,27 +1336,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Zobrazovat měs STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Tloušťky čar v grafech: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Tloušťka čáry v grafech. Tenká čára se čte přesněji, silnější je lépe viditelná a barva je snadněji rozpoznatelná. +STR_CONFIG_SETTING_LANDSCAPE :Klima: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Klima určuje základy herního scénáře s rozdílnými druhy nákladu a požadavky na růst měst. Nové GRaFiky a Herní Skripty umožní ještě jemnější kontrolu STR_CONFIG_SETTING_LAND_GENERATOR :Tvůrce krajiny: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Originální generátor závisí na originálním setu grafik a tvoří mapy pevně daného tvaru. TerraGenesis je založen na generátoru Perlinova šumu s lepšími možnostmi nastavení STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :původní STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Druh terénu: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(pouze TerraGenesis) Hornatost terénu +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Množství průmyslu: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Nastavuje množství průmyslu, které bude nyní vytvořeno a udržováno v průběhu hry STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximální vzdálenost rafinerie od okraje mapy: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Ropné rafinerie jsou stavěny pouze blízko okrajům mapy. Pokud je mapa ostrov, pak je to pobřeží. STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Výška sněhové čáry: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Členitost krajiny (jen TerraGenesis): {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Určuje o jaké výšky se vyskytuje sníh u subarktického klimatu. Sníh rovněž ovlivňuje vytváření průmyslu a požadavky na růst měst +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Členitost krajiny: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Pouze TerraGenesis) Zvol množství hor: Rovinatý terén má méně hor, které jsou však rozlehlejší. Členitý terén má mnoho hor, u kterých se může zdát, že se upakují STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :velmi rovná STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :rovná STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :členitá STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :velmi členitá +STR_CONFIG_SETTING_VARIETY :Rozmanitost umisťování: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Pouze TerraGenesis) Určuje, zda krajina bude obsahovat zároveň hory i roviny. Vzhledem k tomu, že toto dělá mapu rovinatější, ostatní nastavení by měla být nastavena na hornatá +STR_CONFIG_SETTING_RIVER_AMOUNT :Množství řek: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Zvol množství řek k vytvoření STR_CONFIG_SETTING_TREE_PLACER :Algoritmus sázení stromového porostu: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Zvol způsob rozmisťování stromů ve světe: "Originální" sází stromy rovnoměrně, "Vylepšené" sází stromy ve skupinách STR_CONFIG_SETTING_TREE_PLACER_NONE :žádné STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :původní STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :vylepšené +STR_CONFIG_SETTING_ROAD_SIDE :Silniční vozidla: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Zvol na jaké straně vozovky jezdí vozidla STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Otočení výškové mapy: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Doleva STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Doprava STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Výšková úroveň pro plochou krajinu: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Umožnit terénní úpravy na okrajích mapy: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Pokud je deaktivován, okraje mapy budou vždy tvořeny oceánem STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Alespoň jeden dílek na severním okraji není prázdný STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Alespoň jeden dílek na jednom z okrajů není zaplaven @@ -1423,17 +1421,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :vypnutá STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Posouvání levým tlačítkem: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Povolit posouvání mapy chycením pomocí levého tlačítka myši. Toto je velmi užitečné hlavně při použití s dotykovou obrazovkou. +STR_CONFIG_SETTING_AUTOSAVE :Automaticky ukládat: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Zvol frekvenci automatického ukládání + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Pro jméno uložené hry použít {STRING} formát STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formát data v názvu uložené hry STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dlouhý (31. pro 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :krátký (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Předpokládaná základní paleta pro NewGRF nespecifikuje paletu: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Pro nové grafiky, které nemají definovanou potřebnou paletu, použít paletu defaultní. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Původní (D) paleta -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Stará (W) paleta - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Zastavit automaticky hru při začínání nové hry: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Pokud je zapnuto, hra se na začátku nové hry automaticky pozastaví a umožní tak bližší prozkoumání mapy STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :V pozastavené hře povolit: {STRING} @@ -1442,7 +1438,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Žádné akce STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Všechny akce kromě stavebních STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Všechny akce kromě úprav terénu STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Všechny akce -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Používat pokročilý seznam vozidel: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Používat seznam vozidel se skupinami: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Umožňuje použití vylepšeného seznamu vozidel ve skupinách STR_CONFIG_SETTING_LOADING_INDICATORS :Používat ukazatele naložení: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Vyber jestli budou zobrazovány ukazatele naložení nad nakládajícími a vykládajícími vozidly. @@ -1483,7 +1479,7 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Přehrávat zvu STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Zakázat zastávky, když nejsou dostupná příslušná vozidla: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Pokud je zapnuto, infrastruktura je dostupná pouze pokud jsou k dispozici vozidla, která ji mohou používat. Zamezí ztrátě času a peněz za budovaní nevyužitelné infrastruktury -STR_CONFIG_SETTING_MAX_TRAINS :Maximum vlaků na hráče: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum vlaků na společnost: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximální počet vlaků, které může společnost vlastnit STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum silničních vozidel na společnost: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximální počet vozidel, které může společnost vlastnit @@ -1607,7 +1603,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Povolí městů STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Města mohou stavět přejezdy: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Povolení tohoto nastavení umožní městům, budovat železniční přejezdy STR_CONFIG_SETTING_NOISE_LEVEL :Umožnit městům ovlivňovat hlukový limit pro letiště: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Pokud je vypnuto, ve každém městě mohou být dvě letiště. Pokud je zapnuto, počet letišť bude omezen hlukovými limity města, což závisí na jeho populaci, velikosti letiště a jeho vzdálenosti od centra města +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Pokud je vypnuto, ve každém městě mohou být dvě letiště. Pokud je zapnuto, počet letišť ve městě bude omezen hlukovými limity města, což závisí na jeho populaci, velikosti letiště a jeho vzdálenosti od centra města STR_CONFIG_SETTING_TOWN_FOUNDING :Zakládání měst během hry: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Povoluje hráčům zakládat nové města během hry STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Zakázáno @@ -1655,8 +1651,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 z {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Žádné STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Činitel základní velikosti města: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Průměrná velikost větších měst v porovnání s ostatními městy na začátku hry -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Odstraňovat nesmyslné prvky vozovky při výstavbě silnic: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Odstraní mrtvé konce silnice při rekonstrukci silnic STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Aktualizovat distribuční graf každých {STRING} {P den dny dnů} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Čas mezi přepočítáváním částí grafu spojení. Každý přepočet přepočítává plány jedné části grafu. To znamená, že hodnota X u toho nastavení nezpůsobí, že se každých X dní přepočítá celý graf, ale pouze určité části. Čím kratší interval nastavíš, tím více času CPU bude potřeba ke spočítání. Čím delší nastavíš, tím déle bude trvat dokud si distribuce nákladu najde nové trasy. @@ -1718,27 +1712,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperiální (f STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrické (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Ovládaní STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Překlad -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Výstavba +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafika +STR_CONFIG_SETTING_SOUND :{ORANGE}Zvuk +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Ovládaní +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Obecné +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Pohledy +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Výstavba +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novinky / Poradci +STR_CONFIG_SETTING_COMPANY :{ORANGE}Společnost +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Účetnictví STR_CONFIG_SETTING_VEHICLES :{ORANGE}Dopravní prostředky -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stanice -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomika -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribuce nákladu -STR_CONFIG_SETTING_AI :{ORANGE}Konkurenti -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Zobrazení -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Chování -STR_CONFIG_SETTING_SOUND :{ORANGE}Zvukové efekty -STR_CONFIG_SETTING_NEWS :{ORANGE}Novinky a zprávy -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Návěstidla -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Náklad -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Umělá inteligence -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Obnovování -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servis +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fyzika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Směrování -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vlaky -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Města -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Průmysl +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Omezení +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofy / Nehody +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generování krajiny +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Prostředí +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Městská správa +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Města +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Průmysl +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuce nákladu +STR_CONFIG_SETTING_AI :{ORANGE}Konkurenti +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Umělá inteligence STR_CONFIG_SETTING_PATHFINDER_OPF :Původní STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1895,6 +1891,7 @@ STR_LIVERY_FREIGHT_TRAM :Nákladní tram STR_FACE_CAPTION :{WHITE}Volba tváře STR_FACE_CANCEL_TOOLTIP :{BLACK}Zrušit volbu nového obličeje STR_FACE_OK_TOOLTIP :{BLACK}Potvrdit výběr obličeje +STR_FACE_RANDOM :{BLACK}Nové číslo STR_FACE_MALE_BUTTON :{BLACK}Mužská STR_FACE_MALE_TOOLTIP :{BLACK}Zvolit mužské obličeje @@ -2761,6 +2758,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Uložit STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Uložit současnou hru se zvoleným jménem STR_SAVELOAD_LOAD_BUTTON :{BLACK}Nahrát STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Rozehrát vybranou hru +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Načíst označenou výškovou mapu STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Vlastnosti hry STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Není dostupná žádná informace STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2779,10 +2777,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Množstv STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Výška sněžné čáry: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Zvýšit sněžnou čáru o jednu úroveň STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Snížit sněžnou čáru o jednu úroveň -STR_MAPGEN_RANDOM_SEED :{BLACK}Náhodné číslo: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Zde můžeš zadat seed -STR_MAPGEN_RANDOM :{BLACK}Nové číslo -STR_MAPGEN_RANDOM_HELP :{BLACK}Vytvořit nový seed (číslo) pro generátor terénu STR_MAPGEN_LAND_GENERATOR :{BLACK}Generátor krajiny: STR_MAPGEN_TREE_PLACER :{BLACK}Sázení stromů: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Typ krajiny: @@ -2809,7 +2803,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Jméno v STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Velikost: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Zadej náhodné číslo STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Změnit výšku sněžne čáry STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Změnit počáteční rok @@ -2864,6 +2857,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Nahoru STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Posunout označenou grafiku nahoru STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Dolů STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Posunout označenou grafiku dolů +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Aktualizovat +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Aktualizovat soubory nových grafik, u kterých jsi nainstaloval novější verzi. STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Seznam NewGRF souborů, které jsou nainstalovány. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Nastavit parametry @@ -2888,6 +2883,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Nenalezen STR_NEWGRF_SETTINGS_DISABLED :{RED}Vypnuto STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Není kompatibilní s touto verzí OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Uložit předvolby +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Seznam předvoleb k dispozici, vyber jednu pro zkopírování do uložené hry vybrané níže +STR_SAVE_PRESET_TITLE :{BLACK}Vlož název pro předvolby +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Aktuálně zvolený název pro předvolby +STR_SAVE_PRESET_CANCEL :{BLACK}Zrušit +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Neměnit předvolby +STR_SAVE_PRESET_SAVE :{BLACK}Uložit +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Uloží předvolby do aktuálně zvolené uložené hry + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Úprava nastavení parametrů STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Zavřít @@ -3240,7 +3245,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Celkem: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Stav na účtu STR_FINANCES_LOAN_TITLE :{WHITE}Půjčka -STR_FINANCES_MAX_LOAN :{WHITE}Max. půjčka: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximální půjčka: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Půjčit {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Půjčit si více @@ -3389,12 +3394,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Nezařazená si STR_GROUP_DEFAULT_SHIPS :Nezařazené lodě STR_GROUP_DEFAULT_AIRCRAFTS :Nezařazená letadla -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Skupiny - Kliknutím na skupinu se zobrazí seznam vozidel ve skupině +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Skupiny - Kliknutím na skupinu se zobrazí seznam vozidel ve skupině. Přetáhnutím skupin je uspořádáš. STR_GROUP_CREATE_TOOLTIP :{BLACK}Kliknutím vytvoříš skupinu STR_GROUP_DELETE_TOOLTIP :{BLACK}Vymazat vybranou skupinu STR_GROUP_RENAME_TOOLTIP :{BLACK}Přejmenovat vybranou skupinu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Kliknutím nebude na tuto skupinu mít vliv automatická výměna vozidel +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Smazat Skupinu +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Jste si jist, že chcete smazat tuto skupinu a všechny její podskupiny? + STR_GROUP_ADD_SHARED_VEHICLE :Přidat sdílená vozidla STR_GROUP_REMOVE_ALL_VEHICLES :Odstranit všechna vozidla @@ -3789,7 +3797,7 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Ovlivnit STR_ORDER_REFIT :{BLACK}Přestavět STR_ORDER_REFIT_TOOLTIP :{BLACK}Vyber, na který druh nákladu přestavět. Ctrl+klik odstraní přestavbu z příkazu -STR_ORDER_REFIT_AUTO :{BLACK}Automaticky přestavět +STR_ORDER_REFIT_AUTO :{BLACK}Ve stanici přestavět STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Zvolit druh nákladu pro automatické přestavění pro tento příkaz. Ctrl+Click odebere z příkazu automatické přestavění. Automatické přestavění bude fungovat pouze pokud vozidlo lze přestavět. STR_ORDER_DROP_REFIT_AUTO :Neměnný náklad STR_ORDER_DROP_REFIT_AUTO_ANY :Dostupný náklad @@ -3881,18 +3889,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(nevykládat a STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(nevykládat a plně naložit čímkoli) STR_ORDER_NO_UNLOAD_NO_LOAD :(nevykládat ani nenakládat) -STR_ORDER_AUTO_REFIT :(Automatické přestavění na {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Plně naložit vše s automatickým přestavěním na {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Plně naložit cokoliv a automaticky přestavět na {STRING}) -STR_ORDER_UNLOAD_REFIT :(Vyložit a naložit s automatickým přestavěním na {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Vyložit a počkat na plné naložení s automatickým přestavěním na {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Vyložit a počkat na naložení čehokoliv s automatickým přestavěním na {STRING}) -STR_ORDER_TRANSFER_REFIT :(Přeložit a naložit s automatickým přestavěním na {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Přeložit a počkat na plné naložení s automatickým přestavěním na {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Přeložit a počkat na naložení čehokoliv s automatickým přestavěním na {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Nevykládat a naložit s automatickým přestavěním na {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nevykládat a počkat na plné naložení s automatickým přestavěním na {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nevykládat a počkat na plné naložení čehokoliv s automatickým přestavěním na {STRING}) +STR_ORDER_AUTO_REFIT :(Přestavění na {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Plně naložit vše s přestavěním na {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Plně naložit cokoliv a přestavět na {STRING}) +STR_ORDER_UNLOAD_REFIT :(Vyložit a naložit s přestavěním na {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Vyložit a počkat na plné naložení s přestavěním na {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Vyložit a počkat na naložení čehokoliv s přestavěním na {STRING}) +STR_ORDER_TRANSFER_REFIT :(Přeložit a naložit s přestavěním na {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Přeložit a počkat na plné naložení s přestavěním na {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Přeložit a počkat na naložení čehokoliv s přestavěním na {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Nevykládat a naložit s přestavěním na {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nevykládat a počkat na plné naložení s přestavěním na {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nevykládat a počkat na plné naložení čehokoliv s přestavěním na {STRING}) STR_ORDER_AUTO_REFIT_ANY :dostupný náklad @@ -3918,9 +3926,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Jízdní STR_TIMETABLE_NO_TRAVEL :Nikam nejet STR_TIMETABLE_NOT_TIMETABLEABLE :Jet do (automatický; jizdní řád podle následujícího ručního příkazu) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Jet do (mimo jízdní řád) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Jet maximálně {2:VELOCITY} (mimo jízdní řád) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Jet (mimo jízdní řád) maximální rychlostí {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Jet do {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Jeď {STRING} a maximálně {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Jeď ({STRING}, mimo jízdní řád) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Jeď ({STRING}, mimo jízdní řád) při maximální rychlosti {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(zůstaň {STRING}, mimo jízdní řád) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(jet {STRING}, mimo jízdní řád) STR_TIMETABLE_STAY_FOR :a zůstat {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :a jet {STRING} STR_TIMETABLE_DAYS :{COMMA} d{P en ny nů} @@ -4381,6 +4393,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... již STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Nelze vytvořit skupinu... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Nelze vymazat skupinu... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Nelze přejmenovat skupinu... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Nelze nastavit nadřazenou skupinu STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nelze odstranit všechna vozidla ze skupiny... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nelze přidat vozidlo do skupiny... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Nelze přidat sdílená vozidla do skupiny... diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 19941ef504..ee751e5435 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} venter i skibsdokken STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} venter i hangaren -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} har for få ordrer i ordrelisten STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} har en ugyldig ordre STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} har dublerede ordrer STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} har en ugyldig station i sine ordrer -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} er gammel STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} er meget gammel @@ -954,9 +952,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Skærmbillede-format -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Vælg skærmbillede-format - 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} @@ -1127,8 +1122,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Slå katastrofe STR_CONFIG_SETTING_CITY_APPROVAL :Byrådets holdning til omstrukturering: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vælg hvor meget selskaber støj og miljømæssige skader påvirker byvurdering og fremtidige byggeretigheder i området -STR_CONFIG_SETTING_BUILDONSLOPES :Tillad bygning på skråninger og kyster: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Hvis den er aktiveret, kan spor og stationer bygges på de fleste skråninger. Hvis den er deaktiveret, er de kun tilladt på skråninger, som svarer til retningen af sporet og kræver derfor ikke fundament STR_CONFIG_SETTING_AUTOSLOPE :Tillad landskabsformning under bygninger, spor, etc. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tillad landskabsformning under bygninger og spor uden at fjerne dem STR_CONFIG_SETTING_CATCHMENT :Tillad mere realistisk størrelse på stationernes opland: {STRING} @@ -1153,14 +1146,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Forbyd skibe og STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 graders drejninger forekommer når et horisontalt spor er direkte efterfulgt af et lodret spor stykke på det tilstødende felt, hvorved toget drejer 90 grader ved kørsel på feltets kant stedet for de sædvanlige 45 grader for andre spor kombinationer. Dette gælder også for drejeradius af skibe STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Tillad sammenkædning af stationer der ikke ligger direkte op ad hinanden: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Tillad at tilføje dele til en station uden direkte at berøre eksisterende dele. Ctrl+Klik for at sætte nye dele -STR_CONFIG_SETTING_IMPROVEDLOAD :Brug forbedret indlæsningsalgoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Hvis aktiveret, er flere køretøjer ventende på en station indlæst sekventielt. Lastning af det næste køretøj kun starter, når der er nok fragt der venter på at fylde det første køretøj -STR_CONFIG_SETTING_GRADUAL_LOADING :Last køretøjer gradvist: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradvist last køretøjer ved brug af specifikke laste varigheder, i stedet for at laste alting på én gang med en fast tid afhængigt af kun lastet mængde gods STR_CONFIG_SETTING_INFLATION :Inflation: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Aktiver inflation i økonomien, hvor omkostningerne er lidt hurtigere stigende end betalinger -STR_CONFIG_SETTING_SELECTGOODS :Aflever kun last til en station hvis der er en forespørgsel: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Kun aflevere last til en station, der er blevet anmodet af et køretøj. Dette forhindrer dårlige bedømmelse af laster, der ikke serviceres på en station STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksimal bro længde: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimal længde af broer STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksimal tunnel længde: {STRING} @@ -1188,8 +1175,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Stedet hvor et STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :den nærmeste ende STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :midten STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :den fjerneste ende -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Kødannelse af køretøjer (med kvanteeffekt): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Få et køretøj til at vente foran optaget veje indtil de er ryddet STR_CONFIG_SETTING_AUTOSCROLL :Panorér vindue når musen er ved kanten: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Når den er aktiveret, vil skærmbilledet begynde at rulle, når musen er nær kanten af skærmen STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Deaktiveret @@ -1220,10 +1205,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillad gennemk STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillad konstruktion af gennemkørsels-stop på by-ejede veje STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Tillad gennemkørsels-stoppesteder på veje ejet af konkurrenter: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillad konstruktion af gennemkørsels-stop på veje ejet af andre firmaer -STR_CONFIG_SETTING_ADJACENT_STATIONS :Tillad bygning af tilstødende stationer: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Tillad forskellige stationer til at røre hinanden -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Muliggør flere NewGRF køretøjssæt: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompatibilitet for gamle NewGRFs. Deaktiver ikke dette, medmindre du ved præcis hvad du laver! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Denne indstilling kan ikke ændres, når der er køretøjer. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktur vedligeholdelse: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Når aktiveret, infrastruktur forårsager vedligeholdelsesomkostninger. Omkostningerne vokser over-proportional med nettets størrelse, hvilket påvirker større virksomheder mere end de små @@ -1281,8 +1262,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotér højdeko STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Mod uret STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Med uret STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Den højde et flat scenariekort får: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Tillad landskabsændring af felter ved kortets kanter: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Hvis deaktiveret vil kortets kanter altid være hav STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Et eller flere felter ved den nordlige kant er ikke tomme STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Et eller flere felter ved en af kanterne er ikke vand @@ -1339,11 +1318,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :langt (31. Dec STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standard palette NewGRFer uden valgt palette: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standardpalet til brug af NewGRFs der ikke angiver hvilken en de har brug for -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standard (D) palet -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palet - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Sæt automatisk på pause når nyt spil startes: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Når aktiveret, vil spillet automatisk pause når du starter et nyt spil, det giver mulighed for at studerer kortet nærmere STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Når pauset tillad: {STRING} @@ -1565,8 +1539,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 ud af {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ingen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Startværdi for bystørrelsesfaktor: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gennemsnitlig størrelse af storbyer i forhold til normale byer ved start af spillet -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Fjern absurde vejelementer under opførelse af vej: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Fjern døde vej-ender i løbet af finansierede vej-rekostruktioner STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Opdatér distributionsgraf hver {STRING} dag{P 0:2 "" e} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tid mellem efterfølgende genberegninger af forbindelsesgrafen. Hver genberegning beregner planerne for et komponent af grafen. Det betyder, at en værdi X for denne indstilling ikke betyder at hele grafen vil blive opdateret hver X dage. Kun nogle komponenter vil. Jo kortere du sætter indstillingen, jo mere CPU-tid vil være nødvendig for at beregne forbindelsesgrafen. Jo længere du sætter indstillingen, jo længere vil det tage før lastdistribution starter på nye ruter. @@ -1628,27 +1600,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperisk (fod) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisk (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Brugerflade STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisering -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruktion -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Køretøjer -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stationer -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Økonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Fragtdistribution -STR_CONFIG_SETTING_AI :{ORANGE}Modstandere -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Visningsindstillinger -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Brugerflade STR_CONFIG_SETTING_SOUND :{ORANGE}Lydeffekter -STR_CONFIG_SETTING_NEWS :{ORANGE}Nyheder og beskeder -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaler -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Fragthåndtering -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerstyrede spillere -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Auto-forny -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servicering +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Brugerflade +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruktion +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Køretøjer STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Ruteplanlægning -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tog -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Byer -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Byer +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Fragtdistribution +STR_CONFIG_SETTING_AI :{ORANGE}Modstandere +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerstyrede spillere STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1805,6 +1767,7 @@ STR_LIVERY_FREIGHT_TRAM :Fragt-sporvogn STR_FACE_CAPTION :{WHITE}Ansigtsvalg STR_FACE_CANCEL_TOOLTIP :{BLACK}Annuller nyt valg af ansigt STR_FACE_OK_TOOLTIP :{BLACK}Accepter nyt ansigtsvalg +STR_FACE_RANDOM :{BLACK}Tilfældig STR_FACE_MALE_BUTTON :{BLACK}Mand STR_FACE_MALE_TOOLTIP :{BLACK}Vælg mandlige ansigter @@ -2683,10 +2646,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Antal in STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snegrænse STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flyt snegrænsen een op STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flyt snegrænsen een ned -STR_MAPGEN_RANDOM_SEED :{BLACK}Tilfældig -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik for at angive tilfældighed -STR_MAPGEN_RANDOM :{BLACK}Tilfældig -STR_MAPGEN_RANDOM_HELP :{BLACK}Ændre den tilfældige værdi ved brug i terrængeneratoren STR_MAPGEN_LAND_GENERATOR :{BLACK}Terrængenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Træalgoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terræntype: @@ -2713,7 +2672,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Højdeko STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Størrelse: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Skriv startværdi til tilfældige tal STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ændre snegrænsen STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ændre startår @@ -3298,6 +3256,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Slet den STR_GROUP_RENAME_TOOLTIP :{BLACK}Omdøb den valgte gruppe STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik for at beskytte denne gruppe mod global auto-udskiftning + STR_GROUP_ADD_SHARED_VEHICLE :Tilføj delte køretøjer STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køretøjer diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 073414e478..33eeff4bbf 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} wacht in dok STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} wacht in hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} heeft te weinig orders STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} heeft een lege order STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} heeft dubbele orders STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} heeft een ongeldig station in de orders -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} heeft in de opdrachten een luchthaven waarvan de start-en landingsbaan is te kort STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} is oud aan het worden STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} is erg oud aan het worden @@ -954,9 +953,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Schermre STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecteer de schermresolutie STR_GAME_OPTIONS_RESOLUTION_OTHER :Anders -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Screenshotformaat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selecteer het bestandsformaat van screenshots - STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kies de te gebruiken basisset voor graphics STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/corrupt{P "" e} bestand{P "" en} @@ -1072,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Bedrijfsinstell STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categorie: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Filtert de onstaande lijst op alleen gewijzigde instellingen +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Beperkt de onderstaande lijst met vooraf gedefinieerde filters STR_CONFIG_SETTING_RESTRICT_BASIC :Gewone instellingen STR_CONFIG_SETTING_RESTRICT_ADVANCED :Geavanceerde instellingen STR_CONFIG_SETTING_RESTRICT_ALL :Geavanceerde instellingen / Alle instellingen @@ -1082,8 +1078,8 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Instellingen me STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Filter de lijst hieronder op bepaalde instellingstypen STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Alle instellingen STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Gebruikersinstellingen (Niet opgeslagen in bestand; heeft betrekking op alle spellen) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Spelinstellingen (Opgeslagen in bestand; hebben alleen betrekking op nieuw spel) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Bedrijfsinstellingen (Opgeslagen in bestand; hebben alleen betrekking op huidig spel) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Spelinstellingen (Opgeslagen in bestand; hebben alleen betrekking op nieuwe spellen) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spelinstellingen (Opgeslagen in bestand; hebben alleen betrekking op huidig spel) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Bedrijfsinstellingen (Opgeslagen in bestand; heeft alleen betrekking op nieuwe spellen) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Bedrijfsinstellingen (Opgeslagen in bestand; hebben alleen betrekking op huidig bedrijf) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Toon alle zoekresultaten per instelling{}{SILVER}Categorie {BLACK}naar {WHITE}{STRING} @@ -1130,9 +1126,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Schakel rampen STR_CONFIG_SETTING_CITY_APPROVAL :Gemeenteraad's houding ten opzichte van herstructurering gebied: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoeveel lawaai en schade aan het milieu door bedrijven de stadswaardering en hun acties beïnvloeden in hun bouwgebied -STR_CONFIG_SETTING_BUILDONSLOPES :Bouwen op hellingen en kusten toestaan: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Indien ingeschakeld kunnen sporen en stations gebouwd worden op hellingen. Indien uitgeschakeld kunnen stations en sporen alleen gebouwd worden op hellingen waar geen fundering nodig is en alleen in de richting van het spoor. -STR_CONFIG_SETTING_AUTOSLOPE :Omgeving aanpassen onder gebouwen, spoorwegen, enz. toestaan (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Omgeving aanpassen onder gebouwen, spoorwegen, enz. toestaan: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Laat het aanpassen van funderingne onder gebouwen en spoor toe zonder deze te verwijderen STR_CONFIG_SETTING_CATCHMENT :Gebruik meer realistische handelsgebieden: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Heb verschillende grootte verzorgingsgebied voor verschillende typen stations en luchthavens @@ -1156,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Verbied treinen STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 graden draaien treden op wanneer een horizontale baan direct gevolgd door een verticale baan stuk op de aangrenzende tegel, waardoor de trein daarna 90 graad wanneer het doorlopen van de tegel rand plaats van de gebruikelijke 45 graden voor andere spoor combinaties. Dit geldt ook voor de draaicirkel van schepen STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Sta het samenvoegen van niet direct aaneensluitende stations toe: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Sta toe dat er aanvullende onderdelen aan een station worden geplaatst, zonder dat reed bestaande onderdelen beïnvloed worden. Gebruikt Ctrl+Click tijdens het plaatsen van nieuwe onderdelen. -STR_CONFIG_SETTING_IMPROVEDLOAD :Gebruik verbeterd laadalgoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Indien ingeschakeld, meerdere voertuigen die wachten op een station worden achter elkaar geplaatst. Het laden van het volgende voertuig start pas als er voldoende lading is om het eerste voertuig volledig te vullen -STR_CONFIG_SETTING_GRADUAL_LOADING :Voertuigen geleidelijk laden: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Geleidelijk laadt voertuigen die gebruikmaken van het voertuig specifieke laad-duur, in plaats van laden alles in een keer met een vaste tijd die alleen afhangt van de hoeveelheid te laden vracht STR_CONFIG_SETTING_INFLATION :Inflatie: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Schakel de inflatie in de economie in, waar de kosten iets sneller stijgen dan de betalingen -STR_CONFIG_SETTING_SELECTGOODS :Vracht alleen bezorgen aan een station als er vraag naar is: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Leveren alleen vracht naar een station dat werd aangevraagd bij een laad-voertuig. Dit voorkomt een slechte score voor ladingen die niet wordt opgehaald bij een station STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum brug lengte: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum lengte voor te bouwen bruggen STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnel lengte: {STRING} @@ -1191,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plaats waar een STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :aan het begin STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :in het midden STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :aan het einde -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Wachtrijvorming bij wegvoertuigen (met bijwerkingen): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Wegvoertuigen laten stoppen voor een bezet wegstation tot ze toestemming krijgen om door te gaan. STR_CONFIG_SETTING_AUTOSCROLL :Verschuif scherm als muis aan de rand is: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Wanneer aan, start een subvenster met scrollen wanneer de muis vlak bij de rand van het venster komt STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Uitgeschakeld @@ -1223,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Sta toe dat doo STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Laat het bouwen van doorrijhaltes toe op stedelijke wegen STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Sta doorrijhaltes op wegen van tegenstanders toe: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Laat het bouwen van doorrijhaltes toe op wegen van andere bedrijven -STR_CONFIG_SETTING_ADJACENT_STATIONS :Bouwen van aangrenzende stations toestaan: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Laat het aaneen bouwen van verschillende stations toe -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Maak het mogelijk om meerdere NewGRF-voertuigsets te gebruiken: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Compatibiliteit optie voor oude NewGRFs. Schakel dit niet uit, tenzij je precies weet wat je doet! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Deze instelling kan niet gewijzigd worden als er voertuigen zijn STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Onderhoud infrastructuur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wanneer ingeschakeld, infrastructuur veroorzaakt onderhoudskosten. De kosten groeit boven-proportioneel met de grootte van het netwerk, hetgeen van hogere invloed is op grotere bedrijven dan kleinere @@ -1265,27 +1247,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Toon de populat STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Dikte van de lijnen in grafieken: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Breedte van de lijnen in de grafiek. Een dunne lijn is preciezer leesbaar, een dikke lijn is makkelijker te zien en kleuren zijn gemakkelijker herkenbaar.e lijn +STR_CONFIG_SETTING_LANDSCAPE :Landschap: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landschappen definiëren basis gameplay scenario's met verschillende vracht en stadsgroei eisen. NewGRF en Game Scripts kunnen fijne instellingen hebben STR_CONFIG_SETTING_LAND_GENERATOR :Landgenerator: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :De originele generator afhankelijk van de basis graphics set, en composeert vaste landschap vormen. TerraGenesis is een Perlin-ruis gebaseerde generator met fijnere instellingen STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Origineel STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Max afstand van de rand voor Olierafinaderijen: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Terrein type: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Alleen TerraGenesis) Heuvelachtigheid van het landschap +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industrie-dichtheid: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Stel in hoeveel industrieën moeten worden gegenereerd en welk niveau tijdens het spel moet worden gehandhaafd +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum afstand van de rand voor Olierafinaderijen: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Olieraffinaderijen worden alleen gebouwd nabij de kaart grens, dat is aan de kust van eiland kaarten STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sneeuwhoogte: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Instellen op welke hoogte de sneeuw begint in sub-arctische landschap. Sneeuw heeft ook invloed op de industrie generatie en stadsgroei eisen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Ruwheid van het terrein (alleen TerraGenesis) : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Alleen TerraGenesis) Kies de frequentie van de heuvels: Gladde landschappen hebben minder, meer wijdverspreide heuvels. Ruwe landschappen hebben veel heuvels, die repetitief kunnen lijken STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Erg glad STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Glad STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Ruig STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Erg ruig +STR_CONFIG_SETTING_VARIETY :Variëteit distributie: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Alleen TerraGenesis) Controleer of de kaart zowel bergachtige als vlakke gebieden bevat. Aangezien dit alleen de kaart platter maakt, moeten andere instellingen worden ingesteld op bergachtige +STR_CONFIG_SETTING_RIVER_AMOUNT :Hoeveelheid rivieren: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Kies hoeveel rivieren er gegenereerd worden STR_CONFIG_SETTING_TREE_PLACER :Algoritme voor plaatsing van bomen: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Kies de verdeling van de bomen op de kaart: 'Origineel' plant bomen gelijkmatig verspreid, 'verbeterde' plant in groepen STR_CONFIG_SETTING_TREE_PLACER_NONE :Geen STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Origineel STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Verbeterd +STR_CONFIG_SETTING_ROAD_SIDE :Wegvoertuigen: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Kies de rij zijde STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Draaiing van hoogtekaart: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Tegen de klok in STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Met de klok mee STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :De hoogte van een plat scenario wordt: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Aanpassen van de hoogte van de randen van de kaart toestaan: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Indien uitgeschakeld, zijn de kaart grenzen altijd oceaan STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Een of meer vakjes aan de noordelijke rand zijn niet leeg STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Een of meer vakjes aan de rand zijn geen water @@ -1306,7 +1302,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Vloeiend scroll STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Bepalen hoe de hoofdweergave schuift naar een specifieke positie bij het klikken op de minikaart of bij de afgifte van een opdracht om naar een specifiek object op de kaart. Indien ingeschakeld, de viewport scrollt soepel, als deze uitgeschakeld gaat u rechtstreeks naar de beoogde plek STR_CONFIG_SETTING_MEASURE_TOOLTIP :Toon dimensie-informatie bij het gebruik van diverse bouwgereedschappen: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Geef tegel-afstanden en hoogteverschillen bij het slepen tijdens de bouw werkzaamheden -STR_CONFIG_SETTING_LIVERIES :Laat alle bedrijfskleuren zien: {STRING} +STR_CONFIG_SETTING_LIVERIES :Laat alle voertuigkleuren zien: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Beheer het gebruik van voertuigspecifieke levering voor voertuigen (in tegenstelling tot bedrijfsspecifieke leveringen). STR_CONFIG_SETTING_LIVERIES_NONE :Niets STR_CONFIG_SETTING_LIVERIES_OWN :Eigen bedrijf @@ -1342,11 +1338,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lang (31e dec 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standaard palette voor NewGRFs zonder specifiek palette: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standaard palet te gebruiken voor NewGRFs die niet aangeven welke ze nodig hebben -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standaard (D) palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatisch pauzeren als je een nieuw spel start: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Wanneer ingeschakeld, het spel zal automatisch pauzeren bij het starten van een nieuw spel, waardoor nadere bestudering van de kaart mogelijk is STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Toestaan wanneer gepauzeerd: {STRING} @@ -1355,7 +1346,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Geen mogelijkhe STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alle niet-constructie mogelijkheden STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Alles behalve landschapsaanpassingen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Alle mogelijkheden -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gebruik de geavanceerde voertuigenlijst: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Gebruik groepen voor voertuigenlijst: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Schakel het gebruik van de geavanceerde voertuigenlijsten in voor het groeperen van voertuigen STR_CONFIG_SETTING_LOADING_INDICATORS :Gebruik laadindicatoren: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Geef aan of laad indicatoren worden weergegeven boven ladende of lossende voertuigen @@ -1396,13 +1387,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Speel omgevings STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Bouwen van infrastructuur uitschakelen wanneer geen geschikt voertuig beschikbaar is: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Wanneer ingeschakeld, de infrastructuur is alleen beschikbaar als er ook voertuigen beschikbaar zijn, het voorkomen van verspilling van tijd en geld aan onbruikbare infrastructuur -STR_CONFIG_SETTING_MAX_TRAINS :Maximaal aantal treinen per bedrijf: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum aantal treinen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximum aantal treinen dat een bedrijf kan hebben -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximaal aantal wegvoertuigen per bedrijf: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum aantal wegvoertuigen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum aantal wegvoertuigen die een bedrijf kan hebben -STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximaal aantal vliegtuigen per bedrijf: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum aantal vliegtuigen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximum aantal vliegtuigen dat een bedrijf kan hebben -STR_CONFIG_SETTING_MAX_SHIPS :Maximaal aantal schepen per bedrijf: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maximum aantal schepen per bedrijf: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximum aantal schepen dat een bedrijf kan hebben STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Treinen voor de computer uitschakelen: {STRING} @@ -1568,8 +1559,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 op {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Geen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Stadsgroei-indicator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gemiddelde grootte van steden in vergelijking tot normale steden bij het begin van het spel. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Verwijder rare weg-elementen tijdens het repareren van de weg: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Verwijder doodlopende wegen bij het bouwen van gefinancierde wegen. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Bijwerken distributie grafiek elke {STRING} dag{P 0:2 "" en} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tijd tussen opeenvolgende herberekeningen van de link grafiek. Elke herberekening berekent de plannen voor een component van de grafiek. Dat betekent dat een waarde X voor deze instelling betekent niet dat de hele grafiek wordt elke X dagen worden bijgewerkt. Slechts een component wil. Hoe korter u instellen hoe meer CPU-tijd nodig is om het te berekenen zal zijn. Hoe langer je instellen hoe langer het zal duren totdat de lading distributie start op nieuwe routes. @@ -1631,27 +1620,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisch (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisatie -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Constructie +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics +STR_CONFIG_SETTING_SOUND :{ORANGE}Geluid +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Algemeen +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Kijkvensters +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Constructie +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nieuws / Adviseurs +STR_CONFIG_SETTING_COMPANY :{ORANGE}Bedrijf +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Boekhouding STR_CONFIG_SETTING_VEHICLES :{ORANGE}Voertuigen -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stations -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economie -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Vrachtdistributie -STR_CONFIG_SETTING_AI :{ORANGE}Tegenstanders -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Weergave-opties -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interactie -STR_CONFIG_SETTING_SOUND :{ORANGE}Geluidseffecten -STR_CONFIG_SETTING_NEWS :{ORANGE}Nieuws en berichten -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Seinen -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Vrachtafhandeling -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspelers -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatisch vervangen -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Onderhoud +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routebepaling -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Treinen -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Steden -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrieën +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Beperkingen +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Rampen / Ongelukken +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Wereld generatie +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Omgeving +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoriteiten +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Steden +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrieën +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Vrachtdistributie +STR_CONFIG_SETTING_AI :{ORANGE}Tegenstanders +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspelers STR_CONFIG_SETTING_PATHFINDER_OPF :Origineel STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1799,7 @@ STR_LIVERY_FREIGHT_TRAM :Vrachttram STR_FACE_CAPTION :{WHITE}Gezichtskeuze STR_FACE_CANCEL_TOOLTIP :{BLACK}Annuleer nieuwe gezichtskeuze STR_FACE_OK_TOOLTIP :{BLACK}Accepteer nieuwe gezichtskeuze +STR_FACE_RANDOM :{BLACK}Willekeurig maken STR_FACE_MALE_BUTTON :{BLACK}Mannelijk STR_FACE_MALE_TOOLTIP :{BLACK}Selecteer mannelijke gezichten @@ -1928,13 +1920,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Bescherm STR_NETWORK_START_SERVER_UNADVERTISED :Nee STR_NETWORK_START_SERVER_ADVERTISED :Ja STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} speler{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximaal aantal spelers: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximum aantal spelers: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Kies het maximaal aantal toegestane spelers. Niet alle posities hoeven gebruikt te worden STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} bedr{P ijf ijven} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max bedrijven: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximum aantal bedrijven: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Beperk de server tot een bepaald aantal bedrijven STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} toeschouwer{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max toeschouwers: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximum aantal toeschouwers: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Beperk de server tot een bepaald aantal toeschouwers STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Gesproken taal: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Andere spelers zullen weten welke taal er wordt gesproken op de server @@ -2687,10 +2679,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Aantal i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hoogte van sneeuwgrens: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Verschuif de sneeuwgrens één omhoog STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Verschuif de sneeuwgrens één omlaag -STR_MAPGEN_RANDOM_SEED :{BLACK}Willekeurig getal: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik om een willekeurig getal in te voeren -STR_MAPGEN_RANDOM :{BLACK}Willekeurig maken -STR_MAPGEN_RANDOM_HELP :{BLACK}Wijzig het willekeurige getal dat gebruikt wordt om het landschap te genereren STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Bosalgoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terreintype: @@ -2717,7 +2705,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Naam van STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grootte: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Voer een willekeurig getal in STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Verander hoogte van sneeuwgrens STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Verander beginjaar @@ -3148,7 +3135,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Totaal: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Banksaldo STR_FINANCES_LOAN_TITLE :{WHITE}Lening -STR_FINANCES_MAX_LOAN :{WHITE}Max. lening: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximum lening: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Leen {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Vergroot lening. Ctrl+klik om zoveel als mogelijk te lenen @@ -3297,12 +3284,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Niet gegroepeer STR_GROUP_DEFAULT_SHIPS :Niet gegroepeerde schepen STR_GROUP_DEFAULT_AIRCRAFTS :Niet gegroepeerde vliegtuigen -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groepen - Klik op een groep voor een lijst van alle voertuigen in deze groep +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groepen - Klik op een groep voor een lijst van alle voertuigen in deze groep. Klik en sleep om hiërarchie te beheren STR_GROUP_CREATE_TOOLTIP :{BLACK}Klik om een groep te maken STR_GROUP_DELETE_TOOLTIP :{BLACK}Verwijder de geselecteerde groep STR_GROUP_RENAME_TOOLTIP :{BLACK}Hernoem de geselecteerde groep STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik om deze groep te beschermen tegen globaal automatisch vervangen +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Verwijder groep +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Weet u zeker dat u deze groep en de eventuele subgroepen wilt verwijderen? + STR_GROUP_ADD_SHARED_VEHICLE :Toevoegen gedeelde voertuigen STR_GROUP_REMOVE_ALL_VEHICLES :Verwijder alle voertuigen @@ -3691,8 +3681,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Verander STR_ORDER_REFIT :{BLACK}Ombouwen STR_ORDER_REFIT_TOOLTIP :{BLACK}Kies naar welk type vracht ombouwen in deze order. Ctrl+klik om ombouw instructie te verwijderen -STR_ORDER_REFIT_AUTO :{BLACK}Auto-ombouwen -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Kies vrachttype voor auto-ombouwen naar in deze order. Ctrl+Klik om ombouw opdracht te verwijderen. Auto-ombouwen wordt alleen uitgevoerd als het voertuig dit toelaat +STR_ORDER_REFIT_AUTO :{BLACK}Ombouwen +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Kies vrachttype voor ombouwen naar in deze order. Ctrl+Klik om ombouw opdracht te verwijderen. Ombouwen wordt alleen uitgevoerd als het voertuig dit toelaat STR_ORDER_DROP_REFIT_AUTO :Voorgedefinieerde vracht STR_ORDER_DROP_REFIT_AUTO_ANY :Beschikbare vracht @@ -3783,18 +3773,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Niet lossen en STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Niet lossen en één soort vracht volledig laden) STR_ORDER_NO_UNLOAD_NO_LOAD :(Niet lossen en niet laden) -STR_ORDER_AUTO_REFIT :(Auto-ombouw naar {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Volledig laden met auto-ombouw naar {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Volledig willekeurige vracht laden met auto-ombouw naar {STRING}) -STR_ORDER_UNLOAD_REFIT :(Lossen en neem vracht met auto-ombouw naar {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Lossen en wacht op volledig geladen vracht met auto-ombouw naar {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Lossen en wacht op willekeurig volledig geladen vracht met auto-ombouw naar {STRING}) -STR_ORDER_TRANSFER_REFIT :(Overdragen en neem vracht met auto-ombouw naar {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Overdragen en wacht op volledig geladen vracht met auto-ombouw naar {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Overdragen en wacht op willekeurige vollediggeladen vracht met auto-ombouw naar {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Niet lossen en neem vracht met auto-ombouw naar {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Niet lossen en wacht op volledig geladen vracht met auto-ombouw naar {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Niet lossen en wacht voor willekeurige volledigladen vracht met auto-ombouw naar {STRING}) +STR_ORDER_AUTO_REFIT :(Ombouw naar {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Volledig laden met ombouw naar {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Volledig willekeurige vracht laden met ombouw naar {STRING}) +STR_ORDER_UNLOAD_REFIT :(Lossen en neem vracht met ombouw naar {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Lossen en wacht op volledig geladen vracht met ombouw naar {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Lossen en wacht op willekeurig volledig geladen vracht met ombouw naar {STRING}) +STR_ORDER_TRANSFER_REFIT :(Overdragen en neem vracht met ombouw naar {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Overdragen en wacht op volledig geladen vracht met ombouw naar {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Overdragen en wacht op willekeurige vollediggeladen vracht met ombouw naar {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Niet lossen en neem vracht met ombouw naar {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Niet lossen en wacht op volledig geladen vracht met ombouw naar {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Niet lossen en wacht voor willekeurige volledigladen vracht met ombouw naar {STRING}) STR_ORDER_AUTO_REFIT_ANY :beschikbare vracht @@ -3823,6 +3813,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (geen dien STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Reis met maximaal {2:VELOCITY} (geen tijdschema) STR_TIMETABLE_TRAVEL_FOR :Reis naar {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Reis {STRING} met maximaal {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Reis (gedurende {STRING}, geen tijdschema) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Reis (gedurende {STRING}, geen tijdschema) maximaal {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(wacht gedurende {STRING}, geen tijdschema) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reis gedurende {STRING}, geen tijdschema) STR_TIMETABLE_STAY_FOR :en blijf voor {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :en rijd naar {STRING} STR_TIMETABLE_DAYS :{COMMA} dag{P "" en} @@ -4276,6 +4270,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet maken... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan deze groep niet verwijderen... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan deze groep niet hernoemen... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan huidige groep niet instellen... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Kan niet alle voertuigen van deze groep verwijderen... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kan niet alle voertuigen aan deze groep toevoegen... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Kan niet alle gedeelde voertuigen aan deze groep toevoegen... diff --git a/src/lang/english.txt b/src/lang/english.txt index 1617b0c538..8083d1a1de 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} is waiting in depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} is waiting in the aircraft hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} has too few orders in the schedule STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} has a void order STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} has duplicate orders STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} has an invalid station in its orders -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} has in its orders an airport whose runway is too short STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} is getting old STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} is getting very old @@ -938,11 +937,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalan STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosave STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select interval between automatic game saves +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Off STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Every month STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Every 3 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Every 6 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Every 12 months +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Language STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Select the interface language to use @@ -954,9 +955,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Screenshot format -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Select the screenshot format to use - 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} @@ -1074,7 +1072,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Company setting STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Category: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below showing only changed settings +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below using predefined filters STR_CONFIG_SETTING_RESTRICT_BASIC :Basic settings STR_CONFIG_SETTING_RESTRICT_ADVANCED :Advanced settings STR_CONFIG_SETTING_RESTRICT_ALL :Expert settings / all settings @@ -1083,11 +1081,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Settings with a STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below to certain setting types STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :All setting types -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affects all games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; affects only new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; affects only current game) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; affects only new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; affects only current company) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affect all games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; affect only current game) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; affect only current company) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Type {BLACK}to {WHITE}All setting types STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} {BLACK}and {SILVER}Type {BLACK}to {WHITE}All setting types @@ -1129,12 +1127,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Disallow train STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :If enabled, trains will not reverse in non-terminus stations, even if there is a shorter path to their next destination when reversing STR_CONFIG_SETTING_DISASTERS :Disasters: {STRING2} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toggle disasters which may occasionally block or destroy vehicles or infrastructure -STR_CONFIG_SETTING_CITY_APPROVAL :City council's attitude towards area restructuring: {STRING2} +STR_CONFIG_SETTING_CITY_APPROVAL :Town council's attitude towards area restructuring: {STRING2} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area -STR_CONFIG_SETTING_BUILDONSLOPES :Allow building on slopes and coasts: {STRING2} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :If enabled, tracks and stations can be build on most slopes. If disabled, they are only allowed on slopes which match the direction of the track and thus require no foundations -STR_CONFIG_SETTING_AUTOSLOPE :Allow landscaping under buildings, tracks, etc. (autoslope): {STRING2} +STR_CONFIG_SETTING_AUTOSLOPE :Allow landscaping under buildings, tracks, etc.: {STRING2} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Allow landscaping under buildings and tracks without removing them STR_CONFIG_SETTING_CATCHMENT :Allow more realistically sized catchment areas: {STRING2} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Have differently sized catchment areas for different types of stations and airports @@ -1158,14 +1154,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Forbid trains a STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 degree turns occur when a horizontal track is directly followed by a vertical track piece on the adjacent tile, thus making the train turn by 90 degree when traversing the tile edge instead of the usual 45 degrees for other track combinations. This also applies to the turning radius of ships STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Allow to join stations not directly adjacent: {STRING2} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Allow adding parts to a station without directly touching the existing parts. Needs Ctrl+Click while placing the new parts -STR_CONFIG_SETTING_IMPROVEDLOAD :Use improved loading algorithm: {STRING2} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :If enabled, multiple vehicles waiting at a station are loaded sequentially. Loading of the next vehicle only starts when there is enough cargo waiting to completely fill the first vehicle -STR_CONFIG_SETTING_GRADUAL_LOADING :Load vehicles gradually: {STRING2} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradually load vehicles using vehicle specific loading durations, instead of loading everything at once with a fixed time depending only on the amount of cargo loaded STR_CONFIG_SETTING_INFLATION :Inflation: {STRING2} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Enable inflation in the economy, where costs are slightly faster rising than payments -STR_CONFIG_SETTING_SELECTGOODS :Deliver cargo to a station only when there is a demand: {STRING2} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Only deliver cargo to a station that was requested from a loading vehicle. This prevents bad ratings for cargoes that are not serviced at a station STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum bridge length: {STRING2} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum length for building bridges STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnel length: {STRING2} @@ -1199,8 +1189,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Place where a t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :near end STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :middle STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :far end -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Road vehicle queueing (with quantum effects): {STRING2} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Make road vehicle wait in front of occupied road stops until they are cleared STR_CONFIG_SETTING_AUTOSCROLL :Pan window when mouse is at the edge: {STRING2} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :When enabled, viewports will start to scroll when the mouse is near the edge of the window STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Disabled @@ -1231,10 +1219,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Allow drive-thr STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Allow construction of drive-through road stops on town-owned roads STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Allow drive-through road stops on roads owned by competitors: {STRING2} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Allow construction of drive-through road stops on roads owned by other companies -STR_CONFIG_SETTING_ADJACENT_STATIONS :Allow building adjacent stations: {STRING2} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Allow different stations to touch each other -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Enable multiple NewGRF engine sets: {STRING2} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Compatibility option for old NewGRFs. Do not disable this, unless you know exactly what you are doing! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Changing this setting is not possible when there are vehicles STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastructure maintenance: {STRING2} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :When enabled, infrastructure causes maintenance costs. The cost grows over-proportional with the network size, thus affecting bigger companies more than smaller ones @@ -1255,7 +1239,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Vehicles never STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :When enabled, all vehicle models remain available forever after their introduction STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Autorenew vehicle when it gets old: {STRING2} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :When enabled, a vehicle nearing its end of life gets automatically replaced when the renew conditions are fulfilled -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING2} max age +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING2} maximum age STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relative age when a vehicle should be considered for auto-renewing STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} month{P 0 "" s} before STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} month{P 0 "" s} after @@ -1273,31 +1257,45 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the pop STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING2} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colours are easier to distinguish +STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING2} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING2} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :The original generator depends on the base graphics set, and composes fixed landscape shapes. TerraGenesis is a Perlin noise based generator with finer control settings STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Max distance from edge for Oil Refineries: {STRING2} +STR_CONFIG_SETTING_TERRAIN_TYPE :Terrain type: {STRING2} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Hilliness of the landscape +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industry density: {STRING2} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many industries should be generated and what level should be maintained during the game +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil refineries: {STRING2} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oil refineries are only constructed near the map border, that is at the coast for island maps STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING2} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain (TerraGenesis only) : {STRING2} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING2} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Very Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rough STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Very Rough +STR_CONFIG_SETTING_VARIETY :Variety distribution: {STRING2} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis only) Control whether the map contains both mountainous and flat areas. Since this only makes the map flatter, other settings should be set to mountainous +STR_CONFIG_SETTING_RIVER_AMOUNT :River amount: {STRING2} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choose how many rivers to generate STR_CONFIG_SETTING_TREE_PLACER :Tree placer algorithm: {STRING2} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Choose the distribution of trees on the map: 'Original' plants trees uniformly scattered, 'Improved' plants them in groups STR_CONFIG_SETTING_TREE_PLACER_NONE :None STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Improved +STR_CONFIG_SETTING_ROAD_SIDE :Road vehicles: {STRING2} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Choose the driving side STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Heightmap rotation: {STRING2} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Counter clockwise STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Clockwise STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :The height level a flat scenario map gets: {STRING2} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Enable landscaping the tiles at the map borders: {STRING2} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :If disabled, the map borders will always be ocean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}One or more tiles at the northern edge are not empty STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}One or more tiles at one of the edges is not water -STR_CONFIG_SETTING_STATION_SPREAD :Max station spread: {STRING2} +STR_CONFIG_SETTING_STATION_SPREAD :Maximum station spread: {STRING2} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Maximum area the parts of a single station may be spread out on. Note that high values will slow the game STR_CONFIG_SETTING_SERVICEATHELIPAD :Service helicopters at helipads automatically: {STRING2} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Service helicopters after every landing, even if there is no depot at the airport @@ -1314,7 +1312,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Smooth viewport STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Control how the main view scrolls to a specific position when clicking on the smallmap or when issuing a command to scroll to a specific object on the map. If enabled, the viewport scrolls smoothly, if disabled it jumps directly to the targeted spot STR_CONFIG_SETTING_MEASURE_TOOLTIP :Show a measurement tooltip when using various build-tools: {STRING2} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Display tile-distances and height differences when dragging during construction operations -STR_CONFIG_SETTING_LIVERIES :Show company liveries: {STRING2} +STR_CONFIG_SETTING_LIVERIES :Show vehicle-type specific liveries: {STRING2} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Control usage of vehicle-type specific liveries for vehicles (in contrary to company specific) STR_CONFIG_SETTING_LIVERIES_NONE :None STR_CONFIG_SETTING_LIVERIES_OWN :Own company @@ -1344,17 +1342,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Off STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Left-click scrolling: {STRING2} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Enable scrolling the map by dragging it with the left mouse button. This is especially useful when using a touch-screen for scrolling +STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING2} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Use the {STRING2} date format for savegame names STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format of the date in save game filenames STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :long (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :short (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Default palette to assume for NewGRFs not specifying a palette: {STRING2} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Default palette to use for NewGRFs that do not specify which one they need -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Default (D) palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatically pause when starting a new game: {STRING2} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :When enabled, the game will automatically pause when starting a new game, allowing for closer study of the map STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :When paused allow: {STRING2} @@ -1363,7 +1359,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :No actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :All non-construction actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :All but landscape modifying actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :All actions -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use the advanced vehicle list: {STRING2} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use groups in vehicle list: {STRING2} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Enable usage of the advanced vehicle lists for grouping vehicles STR_CONFIG_SETTING_LOADING_INDICATORS :Use loading indicators: {STRING2} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Select whether loading indicators are displayed above loading or unloading vehicles @@ -1378,7 +1374,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rail type to se STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :First available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Last available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Most used -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show reserved tracks: {STRING2} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show path reservations for tracks: {STRING2} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Give reserved tracks a different colour to assist in problems with trains refusing to enter path-based blocks STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Keep building tools active after usage: {STRING2} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Keep the building tools for bridges, tunnels, etc. open after use @@ -1404,13 +1400,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Play ambient so STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Disable infrastructure building when no suitable vehicles are available: {STRING2} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :When enabled, infrastructure is only available if there are also vehicles available, preventing waste of time and money on unusable infrastructure -STR_CONFIG_SETTING_MAX_TRAINS :Max trains per company: {STRING2} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum number of trains per company: {STRING2} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximum number of trains that a company can have -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Max road vehicles per company: {STRING2} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum number of road vehicles per company: {STRING2} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum number of road vehicles that a company can have -STR_CONFIG_SETTING_MAX_AIRCRAFT :Max aircraft per company: {STRING2} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum number of aircraft per company: {STRING2} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximum number of aircraft that a company can have -STR_CONFIG_SETTING_MAX_SHIPS :Max ships per company: {STRING2} +STR_CONFIG_SETTING_MAX_SHIPS :Maximum number of ships per company: {STRING2} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximum number of ships that a company can have STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Disable trains for computer: {STRING2} @@ -1528,7 +1524,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Allow towns to STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Towns are allowed to build level crossings: {STRING2} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Enabling this setting allows towns to build level crossings STR_CONFIG_SETTING_NOISE_LEVEL :Allow town controlled noise level for airports: {STRING2} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a city is limited by the noise acceptance of the town, which depends on population and airport size and distance +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a town is limited by the noise acceptance of the town, which depends on population and airport size and distance STR_CONFIG_SETTING_TOWN_FOUNDING :Founding towns in game: {STRING2} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Enabling this setting allows players to found new towns in the game STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Forbidden @@ -1576,8 +1572,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING2} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Remove absurd road-elements during the road construction: {STRING2} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Remove dead road ends during funded road reconstruction STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Update distribution graph every {STRING2} day{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X days. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. @@ -1639,27 +1633,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localisation -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics +STR_CONFIG_SETTING_SOUND :{ORANGE}Sound +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Viewports +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_ADVISORS :{ORANGE}News / Advisors +STR_CONFIG_SETTING_COMPANY :{ORANGE}Company +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Accounting STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicles -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stations -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economy -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Cargo Distribution -STR_CONFIG_SETTING_AI :{ORANGE}Competitors -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Display options -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction -STR_CONFIG_SETTING_SOUND :{ORANGE}Sound effects -STR_CONFIG_SETTING_NEWS :{ORANGE}News and messages -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signals -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Cargo handling -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autorenew -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servicing +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routing -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trains -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Towns -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitations +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Disasters / Accidents +STR_CONFIG_SETTING_GENWORLD :{ORANGE}World generation +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Environment +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Authorities +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Towns +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Cargo distribution +STR_CONFIG_SETTING_AI :{ORANGE}Competitors +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1816,6 +1812,7 @@ STR_LIVERY_FREIGHT_TRAM :Freight Tram STR_FACE_CAPTION :{WHITE}Face Selection STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancel new face selection STR_FACE_OK_TOOLTIP :{BLACK}Accept new face selection +STR_FACE_RANDOM :{BLACK}Randomise STR_FACE_MALE_BUTTON :{BLACK}Male STR_FACE_MALE_TOOLTIP :{BLACK}Select male faces @@ -1936,13 +1933,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protect STR_NETWORK_START_SERVER_UNADVERTISED :No STR_NETWORK_START_SERVER_ADVERTISED :Yes STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} client{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max clients: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximum number of clients: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Choose the maximum number of clients. Not all slots need to be filled STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} compan{P y ies} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max companies: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximum number of companies: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limit the server to a certain amount of companies STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} spectator{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max spectators: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximum number of spectators: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limit the server to a certain amount of spectators STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Language spoken: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Other players will know which language is spoken on the server @@ -2713,10 +2710,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height one up STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height one down -STR_MAPGEN_RANDOM_SEED :{BLACK}Random seed: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Click to enter a random seed -STR_MAPGEN_RANDOM :{BLACK}Randomise -STR_MAPGEN_RANDOM_HELP :{BLACK}Change the random seed used for Terrain Generation STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator: STR_MAPGEN_TREE_PLACER :{BLACK}Tree algorithm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type: @@ -2743,7 +2736,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Enter a random seed STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year @@ -2798,6 +2790,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Move Up STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Move the selected NewGRF file up the list STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Move Down STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Move the selected NewGRF file down the list +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Upgrade NewGRF files for which you have a newer version installed STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}A list of the NewGRF files that are installed STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Set parameters @@ -2822,6 +2816,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matching f STR_NEWGRF_SETTINGS_DISABLED :{RED}Disabled STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible with this version of OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Save preset +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}List of available presets, select one to copy it to the save name below +STR_SAVE_PRESET_TITLE :{BLACK}Enter a name for the preset +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Currently selected name for the preset to save +STR_SAVE_PRESET_CANCEL :{BLACK}Cancel +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Don't change the preset +STR_SAVE_PRESET_SAVE :{BLACK}Save +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Save the preset to the current selected name + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Change NewGRF parameters STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Close @@ -3174,7 +3178,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Bank Balance STR_FINANCES_LOAN_TITLE :{WHITE}Loan -STR_FINANCES_MAX_LOAN :{WHITE}Max Loan: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximum Loan: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Borrow {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Increase size of loan. Ctrl+Click borrows as much as possible @@ -3323,12 +3327,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ungrouped road STR_GROUP_DEFAULT_SHIPS :Ungrouped ships STR_GROUP_DEFAULT_AIRCRAFTS :Ungrouped aircraft -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group. Drag and drop groups to arrange hierarchy. STR_GROUP_CREATE_TOOLTIP :{BLACK}Click to create a group STR_GROUP_DELETE_TOOLTIP :{BLACK}Delete the selected group STR_GROUP_RENAME_TOOLTIP :{BLACK}Rename the selected group STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click to protect this group from global autoreplace +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Delete Group +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Are you sure you want to delete this group and any descendants? + STR_GROUP_ADD_SHARED_VEHICLE :Add shared vehicles STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehicles @@ -3717,8 +3724,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Change t STR_ORDER_REFIT :{BLACK}Refit STR_ORDER_REFIT_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction -STR_ORDER_REFIT_AUTO :{BLACK}Auto-refit -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to auto-refit to in this order. Ctrl+Click to remove refit instruction. Auto-refitting will only be done if the vehicle allows it +STR_ORDER_REFIT_AUTO :{BLACK}Refit at station +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction. Refitting at stations will only be done if the vehicle allows it STR_ORDER_DROP_REFIT_AUTO :Fixed cargo STR_ORDER_DROP_REFIT_AUTO_ANY :Available cargo @@ -3809,18 +3816,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(No unloading a STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No unloading and wait for any full load) STR_ORDER_NO_UNLOAD_NO_LOAD :(No unloading and no loading) -STR_ORDER_AUTO_REFIT :(Auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Full load with auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with auto-refit to {STRING}) +STR_ORDER_AUTO_REFIT :(Refit to {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Full load with refit to {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with refit to {STRING}) +STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with refit to {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with refit to {STRING}) STR_ORDER_AUTO_REFIT_ANY :available cargo @@ -3846,9 +3853,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Timetabl STR_TIMETABLE_NO_TRAVEL :No travel STR_TIMETABLE_NOT_TIMETABLEABLE :Travel (automatic; timetabled by next manual order) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Travel (not timetabled) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel with at most {2:VELOCITY} (not timetabled) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel (not timetabled) with at most {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Travel for {STRING1} STR_TIMETABLE_TRAVEL_FOR_SPEED :Travel for {STRING1} with at most {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Travel (for {STRING1}, not timetabled) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Travel (for {STRING1}, not timetabled) with at most {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stay for {STRING1}, not timetabled) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(travel for {STRING1}, not timetabled) STR_TIMETABLE_STAY_FOR :and stay for {STRING1} STR_TIMETABLE_AND_TRAVEL_FOR :and travel for {STRING1} STR_TIMETABLE_DAYS :{COMMA} day{P "" s} @@ -4302,6 +4313,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... you STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Can't create group... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Can't delete this group... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Can't rename group... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Can't set parent group... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Can't remove all vehicles from this group... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Can't add the vehicle to this group... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Can't add shared vehicles to group... diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index df6689db2f..c4b8a7377f 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} is waiting in depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} is waiting in the aircraft hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} has too few orders in the schedule STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} has a void order STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} has duplicate orders STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} has an invalid station in its orders -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} has in its orders an airport whose runway is too short STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} is getting old STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} is getting very old @@ -938,11 +937,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalan STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosave STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select interval between automatic game saves +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Off STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Every month STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Every 3 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Every 6 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Every 12 months +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Language STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Select the interface language to use @@ -954,9 +955,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Screenshot format -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Select the screenshot format to use - 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} @@ -1072,7 +1070,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Company setting STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Category: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below showing only changed settings +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below using predefined filters STR_CONFIG_SETTING_RESTRICT_BASIC :Basic settings STR_CONFIG_SETTING_RESTRICT_ADVANCED :Advanced settings STR_CONFIG_SETTING_RESTRICT_ALL :Expert settings / all settings @@ -1081,11 +1079,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Settings with a STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below to certain setting types STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :All setting types -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affects all games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; only affects new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; only affects current game) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; only affects new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; only affects current company) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affect all games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; affect only current game) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; affect only current company) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Type {BLACK}to {WHITE}All setting types STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} {BLACK}and {SILVER}Type {BLACK}to {WHITE}All setting types @@ -1127,12 +1125,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Disallow train STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :If enabled, trains will not reverse in non-terminus stations, even if there is a shorter path to their next destination when reversing STR_CONFIG_SETTING_DISASTERS :Disasters: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toggle disasters which may occasionally block or destroy vehicles or infrastructure -STR_CONFIG_SETTING_CITY_APPROVAL :City council's attitude towards area restructuring: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :Town council's attitude towards area restructuring: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area -STR_CONFIG_SETTING_BUILDONSLOPES :Allow building on slopes and coasts: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :If enabled, tracks and stations can be built on most slopes. If disabled, they are only allowed on slopes which match the direction of the track and thus require no foundations -STR_CONFIG_SETTING_AUTOSLOPE :Allow landscaping under buildings, tracks, etc. (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Allow landscaping under buildings, tracks, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Allow landscaping under buildings and tracks without removing them STR_CONFIG_SETTING_CATCHMENT :Allow more realistically sized catchment areas: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Have differently sized catchment areas for different types of stations and airports @@ -1156,14 +1152,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Forbid trains a STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 degree turns occur when a horizontal track is directly followed by a vertical track piece on the adjacent tile, thus making the train turn by 90 degree when traversing the tile edge instead of the usual 45 degrees for other track combinations. This also applies to the turning radius of ships STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Allow to join stations not directly adjacent: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Allow adding parts to a station without directly touching the existing parts. Needs Ctrl+Click while placing the new parts -STR_CONFIG_SETTING_IMPROVEDLOAD :Use improved loading algorithm: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :If enabled, multiple vehicles waiting at a station are loaded sequentially. Loading of the next vehicle only starts when there is enough cargo waiting to completely fill the first vehicle -STR_CONFIG_SETTING_GRADUAL_LOADING :Load vehicles gradually: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradually load vehicles using vehicle specific loading durations, instead of loading everything at once with a fixed time depending only on the amount of cargo loaded STR_CONFIG_SETTING_INFLATION :Inflation: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Enable inflation in the economy, where costs are rising slightly faster than payments -STR_CONFIG_SETTING_SELECTGOODS :Deliver cargo to a station only when there is a demand: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Only deliver cargo to a station that was requested from a loading vehicle. This prevents bad ratings for cargoes that are not serviced at a station STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum bridge length: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum length for building bridges STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnel length: {STRING} @@ -1191,8 +1181,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Place where a t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :near end STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :middle STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :far end -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Road vehicle queueing (with quantum effects): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Make road vehicle wait in front of occupied road stops until they are cleared STR_CONFIG_SETTING_AUTOSCROLL :Pan window when mouse is at the edge: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :When enabled, viewports will start to scroll when the mouse is near the edge of the window STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Disabled @@ -1223,10 +1211,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Allow drive-thr STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Allow construction of drive-through road stops on town-owned roads STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Allow drive-through road stops on roads owned by competitors: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Allow construction of drive-through road stops on roads owned by other companies -STR_CONFIG_SETTING_ADJACENT_STATIONS :Allow building adjacent stations: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Allow different stations to touch each other -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Enable multiple NewGRF engine sets: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Compatibility option for old NewGRFs. Do not disable this, unless you know exactly what you are doing! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Changing this setting is not possible when there are vehicles STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastructure maintenance: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :When enabled, infrastructure causes maintenance costs. The cost grows in proportion to the network size, thus affecting larger companies more than smaller ones @@ -1247,7 +1231,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Vehicles never STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :When enabled, all vehicle models remain available forever after their introduction STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Autorenew vehicle when it gets old: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :When enabled, a vehicle nearing its end of life gets replaced automatically when the renew conditions are fulfilled -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING} max age +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING} maximum age STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relative age when a vehicle should be considered for auto-renewing STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} month{P 0 "" s} before STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} month{P 0 "" s} after @@ -1265,31 +1249,45 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the pop STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colours are easier to distinguish +STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :The original generator depends on the base graphics set, and composes fixed landscape shapes. TerraGenesis is a Perlin noise based generator with finer control settings STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Max distance from edge for Oil Refineries: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Terrain type: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Hilliness of the landscape +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industry density: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many industries should be generated and what level should be maintained during the game +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil refineries: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oil refineries are only constructed near the map border, that is at the coast for island maps STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain (TerraGenesis only) : {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Very Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rough STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Very Rough +STR_CONFIG_SETTING_VARIETY :Variety distribution: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis only) Control whether the map contains both mountainous and flat areas. Since this only makes the map flatter, other settings should be set to mountainous +STR_CONFIG_SETTING_RIVER_AMOUNT :River amount: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choose how many rivers to generate STR_CONFIG_SETTING_TREE_PLACER :Tree placer algorithm: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Choose the distribution of trees on the map: 'Original' plants trees uniformly scattered, 'Improved' plants them in groups STR_CONFIG_SETTING_TREE_PLACER_NONE :None STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Improved +STR_CONFIG_SETTING_ROAD_SIDE :Road vehicles: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Choose the driving side STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Heightmap rotation: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Counter clockwise STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Clockwise STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :The height level a flat scenario map gets: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Enable landscaping the tiles at the map borders: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :If disabled, the map borders will always be ocean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}One or more tiles at the northern edge are not empty STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}One or more tiles at one of the edges is not water -STR_CONFIG_SETTING_STATION_SPREAD :Max station spread: {STRING} +STR_CONFIG_SETTING_STATION_SPREAD :Maximum station spread: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Maximum area which parts of a single station may be spread out over. Note that high values will slow the game STR_CONFIG_SETTING_SERVICEATHELIPAD :Service helicopters at helipads automatically: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Service helicopters after every landing, even if there is no depot at the airport @@ -1306,7 +1304,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Smooth viewport STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Control how the main view scrolls to a specific position when clicking on the smallmap or when issuing a command to scroll to a specific object on the map. If enabled, the viewport scrolls smoothly, if disabled it jumps directly to the targeted spot STR_CONFIG_SETTING_MEASURE_TOOLTIP :Show a measurement tooltip when using various build-tools: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Display tile-distances and height differences when dragging during construction operations -STR_CONFIG_SETTING_LIVERIES :Show company liveries: {STRING} +STR_CONFIG_SETTING_LIVERIES :Show vehicle-type specific liveries: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Control usage of vehicle-type specific liveries for vehicles (in contrary to company specific) STR_CONFIG_SETTING_LIVERIES_NONE :None STR_CONFIG_SETTING_LIVERIES_OWN :Own company @@ -1336,17 +1334,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Off STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Left-click scrolling: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Enable scrolling the map by dragging it with the left mouse button. This is especially useful when using a touch-screen for scrolling +STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Use the {STRING} date format for savegame names STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format of the date in save game filenames STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :long (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :short (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Default palette to assume for NewGRFs not specifying a palette: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Default palette to use for NewGRFs that do not specify which one they need -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Default (D) palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatically pause when starting a new game: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :When enabled, the game will automatically pause when starting a new game, allowing for closer study of the map STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :When paused allow: {STRING} @@ -1355,7 +1351,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :No actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :All non-construction actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :All but landscape modifying actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :All actions -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use the advanced vehicle list: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use groups in vehicle list: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Enable usage of the advanced vehicle lists for grouping vehicles STR_CONFIG_SETTING_LOADING_INDICATORS :Use loading indicators: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Select whether loading indicators are displayed above loading or unloading vehicles @@ -1370,7 +1366,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rail type to se STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :First available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Last available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Most used -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show reserved tracks: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show path reservations for tracks: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Give reserved tracks a different colour to assist in problems with trains refusing to enter path-based blocks STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Keep building tools active after usage: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Keep the building tools for bridges, tunnels, etc. open after use @@ -1396,13 +1392,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Play ambient so STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Disable infrastructure building when no suitable vehicles are available: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :When enabled, infrastructure is only available if there are also vehicles available, preventing waste of time and money on unusable infrastructure -STR_CONFIG_SETTING_MAX_TRAINS :Max trains per company: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum number of trains per company: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximum number of trains that a company can have -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Max road vehicles per company: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum number of road vehicles per company: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum number of road vehicles that a company can have -STR_CONFIG_SETTING_MAX_AIRCRAFT :Max aircraft per company: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum number of aircraft per company: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximum number of aircraft that a company can have -STR_CONFIG_SETTING_MAX_SHIPS :Max ships per company: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maximum number of ships per company: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximum number of ships that a company can have STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Disable trains for computer: {STRING} @@ -1520,7 +1516,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Allow towns to STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Towns are allowed to build level crossings: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Enabling this setting allows towns to build level crossings STR_CONFIG_SETTING_NOISE_LEVEL :Allow town controlled noise level for airports: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a city is limited by the noise acceptance of the town, which depends on population and airport size and distance +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a town is limited by the noise acceptance of the town, which depends on population and airport size and distance STR_CONFIG_SETTING_TOWN_FOUNDING :Founding towns in game: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Enabling this setting allows players to found new towns in the game STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Forbidden @@ -1568,8 +1564,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Remove absurd road-elements during the road construction: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Remove dead road ends during funded road reconstruction STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Update distribution graph every {STRING} day{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X days. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. @@ -1631,27 +1625,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localisation -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics +STR_CONFIG_SETTING_SOUND :{ORANGE}Sound +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Viewports +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_ADVISORS :{ORANGE}News / Advisors +STR_CONFIG_SETTING_COMPANY :{ORANGE}Company +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Accounting STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicles -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stations -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economy -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Cargo Distribution -STR_CONFIG_SETTING_AI :{ORANGE}Competitors -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Display options -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction -STR_CONFIG_SETTING_SOUND :{ORANGE}Sound effects -STR_CONFIG_SETTING_NEWS :{ORANGE}News and messages -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signals -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Cargo handling -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autorenew -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servicing +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routing -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trains -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Towns -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitations +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Disasters / Accidents +STR_CONFIG_SETTING_GENWORLD :{ORANGE}World generation +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Environment +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Authorities +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Towns +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Cargo distribution +STR_CONFIG_SETTING_AI :{ORANGE}Competitors +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1804,7 @@ STR_LIVERY_FREIGHT_TRAM :Freight Tram STR_FACE_CAPTION :{WHITE}Face Selection STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancel new face selection STR_FACE_OK_TOOLTIP :{BLACK}Accept new face selection +STR_FACE_RANDOM :{BLACK}Randomise STR_FACE_MALE_BUTTON :{BLACK}Male STR_FACE_MALE_TOOLTIP :{BLACK}Select male faces @@ -1928,13 +1925,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protect STR_NETWORK_START_SERVER_UNADVERTISED :No STR_NETWORK_START_SERVER_ADVERTISED :Yes STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} client{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max clients: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximum number of clients: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Choose the maximum number of clients. Not all slots need to be filled STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} compan{P y ies} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max companies: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximum number of companies: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limit the server to a certain amount of companies STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} spectator{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max spectators: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximum number of spectators: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limit the server to a certain amount of spectators STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Language spoken: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Other players will know which language is spoken on the server @@ -2687,10 +2684,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height one up STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height one down -STR_MAPGEN_RANDOM_SEED :{BLACK}Random seed: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Click to enter a random seed -STR_MAPGEN_RANDOM :{BLACK}Randomise -STR_MAPGEN_RANDOM_HELP :{BLACK}Change the random seed used for Terrain Generation STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator: STR_MAPGEN_TREE_PLACER :{BLACK}Tree algorithm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type: @@ -2717,7 +2710,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Enter a random seed STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year @@ -2772,6 +2764,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Move Up STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Move the selected NewGRF file up the list STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Move Down STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Move the selected NewGRF file down the list +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Upgrade NewGRF files for which you have a newer version installed STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}A list of the NewGRF files that are installed STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Set parameters @@ -2796,6 +2790,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matching f STR_NEWGRF_SETTINGS_DISABLED :{RED}Disabled STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible with this version of OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Save preset +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}List of available presets, select one to copy it to the save name below +STR_SAVE_PRESET_TITLE :{BLACK}Enter a name for the preset +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Currently selected name for the preset to save +STR_SAVE_PRESET_CANCEL :{BLACK}Cancel +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Don't change the preset +STR_SAVE_PRESET_SAVE :{BLACK}Save +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Save the preset to the current selected name + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Change NewGRF parameters STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Close @@ -3148,7 +3152,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Bank Balance STR_FINANCES_LOAN_TITLE :{WHITE}Loan -STR_FINANCES_MAX_LOAN :{WHITE}Max Loan: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximum Loan: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Borrow {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Increase size of loan. Ctrl+Click borrows as much as possible @@ -3297,12 +3301,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ungrouped road STR_GROUP_DEFAULT_SHIPS :Ungrouped ships STR_GROUP_DEFAULT_AIRCRAFTS :Ungrouped aircraft -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group. Drag and drop groups to arrange hierarchy. STR_GROUP_CREATE_TOOLTIP :{BLACK}Click to create a group STR_GROUP_DELETE_TOOLTIP :{BLACK}Delete the selected group STR_GROUP_RENAME_TOOLTIP :{BLACK}Rename the selected group STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click to protect this group from global autoreplace +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Delete Group +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Are you sure you want to delete this group and any descendants? + STR_GROUP_ADD_SHARED_VEHICLE :Add shared vehicles STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehicles @@ -3691,8 +3698,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Change t STR_ORDER_REFIT :{BLACK}Refit STR_ORDER_REFIT_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction -STR_ORDER_REFIT_AUTO :{BLACK}Auto-refit -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to auto-refit to in this order. Ctrl+Click to remove refit instruction. Auto-refitting will only be done if the vehicle allows it +STR_ORDER_REFIT_AUTO :{BLACK}Refit at station +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction. Refitting at stations will only be done if the vehicle allows it STR_ORDER_DROP_REFIT_AUTO :Fixed cargo STR_ORDER_DROP_REFIT_AUTO_ANY :Available cargo @@ -3783,18 +3790,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(No unloading a STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No unloading and wait for any full load) STR_ORDER_NO_UNLOAD_NO_LOAD :(No unloading and no loading) -STR_ORDER_AUTO_REFIT :(Auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Full load with auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with auto-refit to {STRING}) +STR_ORDER_AUTO_REFIT :(Refit to {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Full load with refit to {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with refit to {STRING}) +STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with refit to {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with refit to {STRING}) STR_ORDER_AUTO_REFIT_ANY :available cargo @@ -3820,9 +3827,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Timetabl STR_TIMETABLE_NO_TRAVEL :No travel STR_TIMETABLE_NOT_TIMETABLEABLE :Travel (automatic; timetabled by next manual order) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Travel (not timetabled) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel with at most {2:VELOCITY} (not timetabled) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel (not timetabled) with at most {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Travel for {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Travel for {STRING} with at most {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Travel (for {STRING}, not timetabled) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Travel (for {STRING}, not timetabled) with at most {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stay for {STRING}, not timetabled) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(travel for {STRING}, not timetabled) STR_TIMETABLE_STAY_FOR :and stay for {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :and travel for {STRING} STR_TIMETABLE_DAYS :{COMMA} day{P "" s} @@ -4276,6 +4287,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... you STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Can't create group... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Can't delete this group... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Can't rename group... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Can't set parent group... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Can't remove all vehicles from this group... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Can't add the vehicle to this group... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Can't add shared vehicles to group... diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index ac0a745c00..83735ccf67 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} is waiting in depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} is waiting in the aircraft hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} has too few orders in the schedule STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} has a void order STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} has duplicate orders STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} has an invalid station in its orders -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} has in its orders an airport whose runway is too short STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} is getting old STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} is getting very old @@ -938,11 +937,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalan STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosave STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Select interval between automatic game saves +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Off STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Every month STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Every 3 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Every 6 months STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Every 12 months +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Language STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Select the interface language to use @@ -954,9 +955,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Screenshot format -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Select the screenshot format to use - 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} @@ -1072,7 +1070,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Company setting STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Category: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below showing only changed settings +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below using predefined filters STR_CONFIG_SETTING_RESTRICT_BASIC :Basic settings STR_CONFIG_SETTING_RESTRICT_ADVANCED :Advanced settings STR_CONFIG_SETTING_RESTRICT_ALL :Expert settings / all settings @@ -1081,11 +1079,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Settings with a STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Restricts the list below to certain setting types STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :All setting types -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affects all games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; affects only new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; affects only current game) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; affects only new games) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; affects only current company) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Client settings (not stored in saves; affect all games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Game settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Game settings (stored in save; affect only current game) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Company settings (stored in saves; affect only new games) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Company settings (stored in save; affect only current company) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Type {BLACK}to {WHITE}All setting types STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Show all search results by setting{}{SILVER}Category {BLACK}to {WHITE}{STRING} {BLACK}and {SILVER}Type {BLACK}to {WHITE}All setting types @@ -1127,12 +1125,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Disallow train STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :If enabled, trains will not reverse in non-terminus stations, even if there is a shorter path to their next destination when reversing STR_CONFIG_SETTING_DISASTERS :Disasters: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toggle disasters which may occasionally block or destroy vehicles or infrastructure -STR_CONFIG_SETTING_CITY_APPROVAL :City council's attitude towards area restructuring: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :Town council's attitude towards area restructuring: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area -STR_CONFIG_SETTING_BUILDONSLOPES :Allow building on slopes and coasts: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :If enabled, tracks and stations can be build on most slopes. If disabled, they are only allowed on slopes which match the direction of the track and thus require no foundations -STR_CONFIG_SETTING_AUTOSLOPE :Allow terraforming under buildings, tracks, etc. (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Allow terraforming under buildings, tracks, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Allow terraforming under buildings and tracks without removing them STR_CONFIG_SETTING_CATCHMENT :Allow more realistically sized catchment areas: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Have differently sized catchment areas for different types of stations and airports @@ -1156,14 +1152,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Forbid trains a STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 degree turns occur when a horizontal track is directly followed by a vertical track piece on the adjacent tile, thus making the train turn by 90 degree when traversing the tile edge instead of the usual 45 degrees for other track combinations. This also applies to the turning radius of ships STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Allow joining stations not directly adjacent: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Allow adding parts to a station without directly touching the existing parts. Needs Ctrl+Click while placing the new parts -STR_CONFIG_SETTING_IMPROVEDLOAD :Use improved loading algorithm: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :If enabled, multiple vehicles waiting at a station are loaded sequentially. Loading of the next vehicle only starts when there is enough cargo waiting to completely fill the first vehicle -STR_CONFIG_SETTING_GRADUAL_LOADING :Load vehicles gradually: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradually load vehicles using vehicle specific loading durations, instead of loading everything at once with a fixed time depending only on the amount of cargo loaded STR_CONFIG_SETTING_INFLATION :Inflation: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Enable inflation in the economy, where costs are slightly faster rising than payments -STR_CONFIG_SETTING_SELECTGOODS :Deliver cargo to a station only when there is a demand: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Only deliver cargo to a station that was requested from a loading vehicle. This prevents bad ratings for cargos that are not serviced at a station STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximum bridge length: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximum length for building bridges STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximum tunnel length: {STRING} @@ -1191,8 +1181,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Place where a t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :near end STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :middle STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :far end -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Road vehicle queueing (with quantum effects): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Make road vehicle wait in front of occupied road stops until they are cleared STR_CONFIG_SETTING_AUTOSCROLL :Pan window when mouse is at the edge: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :When enabled, viewports will start to scroll when the mouse is near the edge of the window STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Disabled @@ -1223,10 +1211,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Allow drive-thr STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Allow construction of drive-through road stops on town-owned roads STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Allow drive-through road stops on roads owned by competitors: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Allow construction of drive-through road stops on roads owned by other companies -STR_CONFIG_SETTING_ADJACENT_STATIONS :Allow building adjacent stations: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Allow different stations to touch each other -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Enable multiple NewGRF engine sets: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Compatibility option for old NewGRFs. Do not disable this, unless you know exactly what you are doing! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Changing this setting is not possible when there are vehicles STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastructure maintenance: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :When enabled, infrastructure causes maintenance costs. The cost grows over-proportional with the network size, thus affecting bigger companies more than smaller ones @@ -1247,7 +1231,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Vehicles never STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :When enabled, all vehicle models remain available forever after their introduction STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Autorenew vehicle when it gets old: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :When enabled, a vehicle nearing its end of life gets automatically replaced when the renew conditions are fulfilled -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING} max age +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Autorenew when vehicle is {STRING} maximum age STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relative age when a vehicle should be considered for auto-renewing STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} month{P 0 "" s} before STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} month{P 0 "" s} after @@ -1265,31 +1249,45 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the pop STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colors are easier to distinguish +STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :The original generator depends on the base graphics set, and composes fixed landscape shapes. TerraGenesis is a Perlin noise based generator with finer control settings STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Max distance from edge for Oil Refineries: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Terrain type: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Hilliness of the landscape +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industry density: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many industries should be generated and what level should be maintained during the game +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil refineries: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oil refineries are only constructed near the map border, that is at the coast for island maps STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain (TerraGenesis only) : {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Very Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Smooth STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rough STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Very Rough +STR_CONFIG_SETTING_VARIETY :Variety distribution: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis only) Control whether the map contains both mountainous and flat areas. Since this only makes the map flatter, other settings should be set to mountainous +STR_CONFIG_SETTING_RIVER_AMOUNT :River amount: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choose how many rivers to generate STR_CONFIG_SETTING_TREE_PLACER :Tree placer algorithm: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Choose the distribution of trees on the map: 'Original' plants trees uniformly scattered, 'Improved' plants them in groups STR_CONFIG_SETTING_TREE_PLACER_NONE :None STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Improved +STR_CONFIG_SETTING_ROAD_SIDE :Road vehicles: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Choose the driving side STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Heightmap rotation: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Counter-clockwise STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Clockwise STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :The height level a flat scenario map gets: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Enable terraforming the tiles at the map borders: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :If disabled, the map borders will always be ocean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}One or more tiles at the northern edge are not empty STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}One or more tiles at one of the edges is not water -STR_CONFIG_SETTING_STATION_SPREAD :Max station spread: {STRING} +STR_CONFIG_SETTING_STATION_SPREAD :Maximum station spread: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Maximum area the parts of a single station may be spread out on. Note that high values will slow the game STR_CONFIG_SETTING_SERVICEATHELIPAD :Perform maintenance on helicopters at helipads automatically: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Service helicopters after every landing, even if there is no depot at the airport @@ -1306,7 +1304,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Smooth viewport STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Control how the main view scrolls to a specific position when clicking on the smallmap or when issuing a command to scroll to a specific object on the map. If enabled, the viewport scrolls smoothly, if disabled it jumps directly to the targeted spot STR_CONFIG_SETTING_MEASURE_TOOLTIP :Show a measurement tooltip when using various build-tools: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Display tile-distances and height differences when dragging during construction operations -STR_CONFIG_SETTING_LIVERIES :Show company liveries: {STRING} +STR_CONFIG_SETTING_LIVERIES :Show vehicle-type specific liveries: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Control usage of vehicle-type specific liveries for vehicles (in contrary to company specific) STR_CONFIG_SETTING_LIVERIES_NONE :None STR_CONFIG_SETTING_LIVERIES_OWN :Own company @@ -1336,17 +1334,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Off STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Left-click scrolling: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Enable scrolling the map by dragging it with the left mouse button. This is especially useful when using a touch-screen for scrolling +STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Use the {STRING} date format for savegame names STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format of the date in save game filenames STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :long (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :short (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Default palette to assume for NewGRFs not specifying a palette: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Default palette to use for NewGRFs that do not specify which one they need -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Default (D) palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Legacy (W) palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatically pause when starting a new game: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :When enabled, the game will automatically pause when starting a new game, allowing for closer study of the map STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :When paused allow: {STRING} @@ -1355,7 +1351,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :No actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :All non-construction actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :All but landscape modifying actions STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :All actions -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use the advanced vehicle list: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Use groups in vehicle list: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Enable usage of the advanced vehicle lists for grouping vehicles STR_CONFIG_SETTING_LOADING_INDICATORS :Use loading indicators: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Select whether loading indicators are displayed above loading or unloading vehicles @@ -1370,7 +1366,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Rail type to se STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :First available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Last available STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Most used -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show reserved tracks: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Show path reservations for tracks: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Give reserved tracks a different color to assist in problems with trains refusing to enter path-based blocks STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Keep building tools active after usage: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Keep the building tools for bridges, tunnels, etc. open after use @@ -1396,13 +1392,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Play ambient so STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Disable infrastructure building when no suitable vehicles are available: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :When enabled, infrastructure is only available if there are also vehicles available, preventing waste of time and money on unusable infrastructure -STR_CONFIG_SETTING_MAX_TRAINS :Max trains per company: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum number of trains per company: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximum number of trains that a company can have -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Max road vehicles per company: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum number of road vehicles per company: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximum number of road vehicles that a company can have -STR_CONFIG_SETTING_MAX_AIRCRAFT :Max aircraft per company: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum number of aircraft per company: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximum number of aircraft that a company can have -STR_CONFIG_SETTING_MAX_SHIPS :Max ships per company: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maximum number of ships per company: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximum number of ships that a company can have STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Disable trains for computer: {STRING} @@ -1451,7 +1447,7 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Display a newsp STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidents / disasters: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Display a newspaper when accidents or disasters occur STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Company information: {STRING} -STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Display a newspaper when a new company starts, or when companies are risking to bankrupt +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Display a newspaper when a new company starts, or when companies are at risk of going bankrupt STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Opening of industries: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Display a newspaper when new industries open STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Closing of industries: {STRING} @@ -1520,7 +1516,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Allow towns to STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Towns are allowed to build grade crossings: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Enabling this setting allows towns to build grade crossings STR_CONFIG_SETTING_NOISE_LEVEL :Allow town controlled noise level for airports: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a city is limited by the noise acceptance of the town, which depends on population and airport size and distance +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :With this setting disabled, there can be two airports in each town. With this setting enabled, the number of airports in a town is limited by the noise acceptance of the town, which depends on population and airport size and distance STR_CONFIG_SETTING_TOWN_FOUNDING :Founding towns in game: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Enabling this setting allows players to found new towns in the game STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Forbidden @@ -1568,8 +1564,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :None STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial city size multiplier: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Average size of cities relative to normal towns at start of the game -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Remove absurd road-elements during the road construction: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Remove dead road ends during funded road reconstruction STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Update distribution graph every {STRING} day{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Time between subsequent recalculations of the link graph. Each recalculation calculates the plans for one component of the graph. That means that a value X for this setting does not mean the whole graph will be updated every X days. Only some component will. The shorter you set it the more CPU time will be necessary to calculate it. The longer you set it the longer it will take until the cargo distribution starts on new routes. @@ -1585,7 +1579,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symmetric" mea STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Distribution mode for the ARMORED cargo class: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :The ARMORED cargo class contains valuables in the temperate, diamonds in the subtropical or gold in subarctic climate. NewGRFs may change that. "symmetric" means that roughly the same amount of that cargo will be sent from a station A to a station B as from B to A. "asymmetric" means that arbitrary of that cargo can be sent in either direction. "manual" means that no automatic distribution will take place for that cargo. It is recommended to set this to asymmetric or manual when playing subarctic, as banks won't send any gold back to gold mines. For temperate and subtropical you can also choose symmetric as banks will send valuables back to the origin bank of some load of valuables. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Distribution mode for other cargo classes: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"symmetric" means that roughly the same amount of cargo will be sent from a station A to a station B as from B to A. "asymmetric" means that arbitrary amounts of cargo can be sent in either direction. "manual" means that no automatic distribution will take place for those cargos. You probably want to set this to either "asymmetric" or manual. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymmetric" means that arbitrary amounts of cargo can be sent in either direction. "manual" means that no automatic distribution will take place for those cargos. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Distribution accuracy: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :The higher you set this the more CPU time the calculation of the link graph will take. If it takes too long you may notice lag. If you set it to a low value, however, the distribution will be inaccurate, and you may notice cargo not being sent to the places you expect it to go. STR_CONFIG_SETTING_DEMAND_DISTANCE :Effect of distance on demands: {STRING} @@ -1631,27 +1625,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localization -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphics +STR_CONFIG_SETTING_SOUND :{ORANGE}Sound +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Viewports +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_ADVISORS :{ORANGE}News / Advisors +STR_CONFIG_SETTING_COMPANY :{ORANGE}Company +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Accounting STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicles -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stations -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economy -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Cargo Distribution -STR_CONFIG_SETTING_AI :{ORANGE}Competitors -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Display options -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction -STR_CONFIG_SETTING_SOUND :{ORANGE}Sound effects -STR_CONFIG_SETTING_NEWS :{ORANGE}News and messages -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signals -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Cargo handling -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autorenew -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Maintenance +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physics STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routing -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trains -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Towns -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitations +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Disasters / Accidents +STR_CONFIG_SETTING_GENWORLD :{ORANGE}World generation +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Environment +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Authorities +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Towns +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Cargo distribution +STR_CONFIG_SETTING_AI :{ORANGE}Competitors +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer players STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1804,7 @@ STR_LIVERY_FREIGHT_TRAM :Freight Streetc STR_FACE_CAPTION :{WHITE}Face Selection STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancel new face selection STR_FACE_OK_TOOLTIP :{BLACK}Accept new face selection +STR_FACE_RANDOM :{BLACK}Randomize STR_FACE_MALE_BUTTON :{BLACK}Male STR_FACE_MALE_TOOLTIP :{BLACK}Select male faces @@ -1874,7 +1871,7 @@ STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Name STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Name of the game STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA} STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Clients -STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clients online / clients max +STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clients online / clients max{}Companies online / companies max STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Map size STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Map size of the game{}Click to sort by area @@ -1928,13 +1925,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protect STR_NETWORK_START_SERVER_UNADVERTISED :No STR_NETWORK_START_SERVER_ADVERTISED :Yes STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} client{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max clients: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximum number of clients: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Choose the maximum number of clients. Not all slots need to be filled STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} compan{P y ies} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max companies: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximum number of companies: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limit the server to a certain number of companies STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} spectator{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max spectators: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximum number of spectators: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limit the server to a certain number of spectators STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Language spoken: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Other players will know which language is spoken on the server @@ -2668,6 +2665,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Save STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Save the current game, using the selected name STR_SAVELOAD_LOAD_BUTTON :{BLACK}Load STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Load the selected game +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Load the selected heightmap STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Game Details STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No information available STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2686,10 +2684,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height up one STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height down one -STR_MAPGEN_RANDOM_SEED :{BLACK}Random seed: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Click to enter a random seed -STR_MAPGEN_RANDOM :{BLACK}Randomize -STR_MAPGEN_RANDOM_HELP :{BLACK}Change the random seed used for Terrain Generation STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator: STR_MAPGEN_TREE_PLACER :{BLACK}Tree algorithm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type: @@ -2716,7 +2710,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Enter a random seed STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year @@ -2771,6 +2764,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Move Up STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Move the selected NewGRF file up the list STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Move Down STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Move the selected NewGRF file down the list +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Upgrade NewGRF files for which you have a newer version installed STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}A list of the NewGRF files that are installed STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Set parameters @@ -2795,6 +2790,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matching f STR_NEWGRF_SETTINGS_DISABLED :{RED}Disabled STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible with this version of OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Save preset +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}List of available presets, select one to copy it to the save name below +STR_SAVE_PRESET_TITLE :{BLACK}Enter a name for the preset +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Currently selected name for the preset to save +STR_SAVE_PRESET_CANCEL :{BLACK}Cancel +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Don't change the preset +STR_SAVE_PRESET_SAVE :{BLACK}Save +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Save the preset to the current selected name + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Change NewGRF parameters STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Close @@ -3147,7 +3152,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Bank Balance STR_FINANCES_LOAN_TITLE :{WHITE}Loan -STR_FINANCES_MAX_LOAN :{WHITE}Max Loan: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximum Loan: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Borrow {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Increase size of loan. Ctrl+Click borrows as much as possible @@ -3296,12 +3301,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ungrouped road STR_GROUP_DEFAULT_SHIPS :Ungrouped ships STR_GROUP_DEFAULT_AIRCRAFTS :Ungrouped aircraft -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups - click on a group to list all vehicles of this group. Drag and drop groups to arrange hierarchy. STR_GROUP_CREATE_TOOLTIP :{BLACK}Click to create a group STR_GROUP_DELETE_TOOLTIP :{BLACK}Delete the selected group STR_GROUP_RENAME_TOOLTIP :{BLACK}Rename the selected group STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click to protect this group from global autoreplace +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Delete Group +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Are you sure you want to delete this group and any descendants? + STR_GROUP_ADD_SHARED_VEHICLE :Add shared vehicles STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehicles @@ -3690,8 +3698,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Change t STR_ORDER_REFIT :{BLACK}Refit STR_ORDER_REFIT_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction -STR_ORDER_REFIT_AUTO :{BLACK}Auto-refit -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to auto-refit to in this order. Ctrl+Click to remove refit instruction. Auto-refitting will only be done if the vehicle allows it +STR_ORDER_REFIT_AUTO :{BLACK}Refit at station +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Select what cargo type to refit to in this order. Ctrl+Click to remove refit instruction. Refitting at stations will only be done if the vehicle allows it STR_ORDER_DROP_REFIT_AUTO :Fixed cargo STR_ORDER_DROP_REFIT_AUTO_ANY :Available cargo @@ -3782,18 +3790,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(No unloading a STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No unloading and wait for any full load) STR_ORDER_NO_UNLOAD_NO_LOAD :(No unloading and no loading) -STR_ORDER_AUTO_REFIT :(Auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Full load with auto-refit to {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with auto-refit to {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with auto-refit to {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with auto-refit to {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with auto-refit to {STRING}) +STR_ORDER_AUTO_REFIT :(Refit to {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Full load with refit to {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Full load any cargo with refit to {STRING}) +STR_ORDER_UNLOAD_REFIT :(Unload and take cargo with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Unload and wait for full load with refit to {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Unload and wait for any full load with refit to {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transfer and take cargo with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer and wait for full load with refit to {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer and wait for any full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No unloading and take cargo with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No unloading and wait for full load with refit to {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No unloading and wait for any full load with refit to {STRING}) STR_ORDER_AUTO_REFIT_ANY :available cargo @@ -3819,9 +3827,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Timetabl STR_TIMETABLE_NO_TRAVEL :No travel STR_TIMETABLE_NOT_TIMETABLEABLE :Travel (automatic; timetabled by next manual order) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Travel (not timetabled) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel with at most {2:VELOCITY} (not timetabled) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Travel (not timetabled) with at most {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Travel for {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Travel for {STRING} with at most {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Travel (for {STRING}, not timetabled) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Travel (for {STRING}, not timetabled) with at most {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stay for {STRING}, not timetabled) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(travel for {STRING}, not timetabled) STR_TIMETABLE_STAY_FOR :and stay for {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :and travel for {STRING} STR_TIMETABLE_DAYS :{COMMA} day{P "" s} @@ -4275,6 +4287,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... you STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Can't create group... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Can't delete this group... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Can't rename group... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Can't set parent group... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Can't remove all vehicles from this group... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Can't add the vehicle to this group... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Can't add shared vehicles to group... @@ -4534,7 +4547,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Elect STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Electric) STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :Passenger Car STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :Mail Car -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Coal Car +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Coal Hopper STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_OIL_TANKER :Oil Tanker STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :Livestock Boxcar STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :Goods Car @@ -4564,7 +4577,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :Passenger Car STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :Mail Car -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Coal Car +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Coal Hopper STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :Oil Tanker STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :Livestock Boxcar STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :Goods Car @@ -4596,7 +4609,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :Passenger Car STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :Mail Car -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :Coal Car +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :Coal Hopper STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :Oil Tanker STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :Livestock Boxcar STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :Goods Car diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 7560d0ad7d..e433c680f0 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -784,13 +784,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} atendas en depoto STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} atendas en la hangaro. -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ne havas sufiĉajn ordonojn en la itinero STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} havas malplenan ordonon STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} havas duoblajn ordonojn STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Ordonoj de {VEHICLE} enhavas nevalidan stacion -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} malnoviĝis STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} tre malnoviĝis @@ -923,9 +921,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Ekranfota formato -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Elektu uzotan ekranfotan formaton - 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} @@ -1068,7 +1063,6 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Ŝanĝu nivelon STR_CONFIG_SETTING_RECESSIONS :Recesioj: {STRING} STR_CONFIG_SETTING_DISASTERS :Katastrofoj: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES :Permesu konstrui sur kliniĝoj kaj bordoj: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :Permesu terecigon sub konstruaĵoj, trakoj, ktp. (aŭtodeklivo): {STRING} STR_CONFIG_SETTING_CATCHMENT :Permesu pli realgrandaj kaptoregionoj: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Permesu forigon de pli da urbaj stratoj, pontoj ktp: {STRING} @@ -1079,10 +1073,7 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Modelo de strat STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_FORBID_90_DEG :Vagonaroj kaj ŝipoj ne ort-turniĝu: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permesu ligi staciojn ne rekte najbarajn: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :Uzu plibonigitan ŝarĝalgoritmon: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :Laŭgrade ŝarĝu veturilojn: {STRING} STR_CONFIG_SETTING_INFLATION :Inflacio: {STRING} -STR_CONFIG_SETTING_SELECTGOODS :Nur liveru ŝarĝon al stacio se estas peto: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Permana ĉefa industri-konstrumaniero: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :neniu STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kiel aliaj industrioj @@ -1097,7 +1088,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :Novaj trajnordo STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :proksima fino STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :meza STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :fora fino -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Stratveturila vicigo (kun kvantum-efektoj): {STRING} STR_CONFIG_SETTING_AUTOSCROLL :Ŝovu fenestron se la muso estas ĉe la rando: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Malaktiva STR_CONFIG_SETTING_BRIBE :Permesu subaĉeti la lokajn estrojn: {STRING} @@ -1112,8 +1102,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :reduktita STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :normala STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permesu trairajn bushaltejojn sur urboposedataj stratoj: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permesu trairajn strathaltejojn sur stratoj posedataj de konkurantoj: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permesu konstrui staciojn apude: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Ebligu multoblajn NewGRF-motorarojn: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Ne eblas ŝanĝi ĉi tiujn agordon dum veturiloj ĉeestas STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flughavenoj neniam antikviĝas: {STRING} @@ -1146,7 +1134,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Altecmapa turni STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Maldekstrume STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Dekstrume STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Kiom alta fariĝos scenara mapo: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Ebligu terecigon de la kaheloj ĉe la eĝoj de la mapo: {STRING} STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Unu ay pli da xeloj en norda parto ne malplenas STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Almenaŭ unu kahelo ĉe unu de la eĝoj ne estas akvo @@ -1186,8 +1173,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :longa (31st Dec STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :mallonga (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Norma paletro supozi por NewGRFs ne specifanta paletron: {STRING} - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Aŭtomate paŭzu startante novan ludon: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Permesu dum paŭza: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :neniu agoj @@ -1304,7 +1289,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normale STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Rapide STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Tre rapide STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Komenca urbgrandeca multobligo: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Forigu sensensajn straterojn dum stratkonstruado: {STRING} @@ -1313,25 +1297,15 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Forigu sensensa -STR_CONFIG_SETTING_GUI :{ORANGE}Interfaco -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruado -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veturiloj -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stacioj -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomio -STR_CONFIG_SETTING_AI :{ORANGE}Konkurantoj -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Montru opciojn -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interago STR_CONFIG_SETTING_SOUND :{ORANGE}Sonefektoj -STR_CONFIG_SETTING_NEWS :{ORANGE}Novaĵo kaj mesaĝoj -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaloj -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Kargotraktado -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Komputil-ludantoj -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Aŭtorenovigo -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Prizorgado +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaco +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruado +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veturiloj STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Navigado -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trajnoj -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Urboj -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrioj +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Urboj +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrioj +STR_CONFIG_SETTING_AI :{ORANGE}Konkurantoj +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Komputil-ludantoj STR_CONFIG_SETTING_PATHFINDER_OPF :Originale STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1464,6 +1438,7 @@ STR_LIVERY_FREIGHT_TRAM :Frajttramo STR_FACE_CAPTION :{WHITE}Elekto de Vizaĝo STR_FACE_CANCEL_TOOLTIP :{BLACK}Nuligu elekton de nova vizaĝo STR_FACE_OK_TOOLTIP :{BLACK}Akceptu elekton de nova vizaĝo +STR_FACE_RANDOM :{BLACK}Hazardigu STR_FACE_MALE_BUTTON :{BLACK}Vira STR_FACE_MALE_TOOLTIP :{BLACK}Elektu virajn vizaĝojn @@ -2264,10 +2239,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Kiom da STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Neĝlinia alteco: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Altigu la neĝlinion per unu STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Malaltigu la neĝlinion per unu -STR_MAPGEN_RANDOM_SEED :{BLACK}Hazarda Enigo: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klaku por enigi hazardan enigon -STR_MAPGEN_RANDOM :{BLACK}Hazardigu -STR_MAPGEN_RANDOM_HELP :{BLACK}Ŝanĝu la hazardan enigon uzatan de la terengenerilo STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerilo: STR_MAPGEN_TREE_PLACER :{BLACK}Arba algoritmo: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terentipo: @@ -2294,7 +2265,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Mapa nom STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grandeco: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Enigu hazardan semon STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ŝanĝu altecon de la neĝlinio STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ŝanĝu komencjaron @@ -2754,6 +2724,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}Klaku po STR_GROUP_DELETE_TOOLTIP :{BLACK}Viŝu la selektitan grupon STR_GROUP_RENAME_TOOLTIP :{BLACK}Alinomi la elektitan grupon + STR_GROUP_ADD_SHARED_VEHICLE :Aldonu kunhavajn veturilojn STR_GROUP_REMOVE_ALL_VEHICLES :Forigi ĉiujn veturilojn diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 064088e5dd..5f3c9965a2 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -867,13 +867,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} ootab depoos STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ootab lennukiangaaris -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} sõiduplaanis on liiga vähe ülesandeid STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Sõidukil {VEHICLE} on tühistatud ülesanne STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Sõidukil {VEHICLE} on topeltülesandeid STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Sõiduki «{VEHICLE}» ülesannetes on kõlbmatu jaam -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} on vanaks saamas STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} on väga vanaks saamas @@ -1011,9 +1009,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekraanil STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekraanilahutuse valimine STR_GAME_OPTIONS_RESOLUTION_OTHER :muu -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Ekraanipildi vorming -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Vali kasutatav ekraanipildi vorming - STR_GAME_OPTIONS_BASE_GRF :{BLACK}Alusgraafika kogu STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valib kasutatava alusgraafika kogu STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuduv{P "" ad}/viga{P ne sed} fail{P "" id} @@ -1129,7 +1124,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Ettevõtte sead STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Rühm: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Liik: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Piirab alljärgnevat nimekirja muudetud seadete kuvamiseks +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Piirab varem tehtud filtridega alljärgnevat loendit STR_CONFIG_SETTING_RESTRICT_BASIC :Põhilised seaded STR_CONFIG_SETTING_RESTRICT_ADVANCED :Täpsemad seaded STR_CONFIG_SETTING_RESTRICT_ALL :Eksperdi seaded / kõik seaded @@ -1187,8 +1182,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Lülita sisse/v STR_CONFIG_SETTING_CITY_APPROVAL :Linnavalitusese suhtumine pinnase restruktureerimisse: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vali kui suurt mõju tekitavad müra ning keskkonna muudatused ettevõtte mainele ja edasistele ehitustoimingutele antud piirkonnas -STR_CONFIG_SETTING_BUILDONSLOPES :Nõlvadele ja kallastele ehitamine: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Kui lubatud, saab teid ja jaamu ehitada enamikle nõlvadele. Kui keelatud, siis on need lubatud ainult nõlvadel, mis vastavad rööbastee suunale ja mis eeldavad seega vundamenti. STR_CONFIG_SETTING_AUTOSLOPE :Maastikukujundus majade, rööbaste jms. all (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Lase maja- ja rööpaalust maad kujundada ilma neid eemaldamata STR_CONFIG_SETTING_CATCHMENT :Reaalsemad veekogud: {STRING} @@ -1213,14 +1206,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Rongidel ja lae STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 kraadine pööre esineb, kui rõhtsele rööpale järgneb püstne rööbas, seega peab rong tegema 90 kraadise pöörde tavalise 45 kraadise pöörde asemel. Muudab ka laevade pöörderaadiust STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Mitte kõrvuti asetsevate jaamade liitmine: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Lubab lisada uusi jaamade osi ilma puudutamata olemasolevaid osi. Vajalik Ctrl+Vajutus, kui asetada uut osa -STR_CONFIG_SETTING_IMPROVEDLOAD :Täiustatud laadimisalgoritm: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Kui lubatud, laaditakse ootel sõidukid jaamas järjestikkul. Järgmise sõiduki laadimine käivitub ainult siis, kui on piisavalt lasti, et täielikult täita esimese sõiduk -STR_CONFIG_SETTING_GRADUAL_LOADING :Veovahendite järkjärguline laadimine: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Järk-järgult laetud sõidukitel kasutatakse sõiduki kindlalt laadimis aega, selle asemel et pealelaadida kõik korraga kindlaks määratud ajaga, mis oleneb ainult laetud lasti summast STR_CONFIG_SETTING_INFLATION :Inflatsioon: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Tekitab majandusinflatsiooni, kus hinnad tõusevad pisut kiiremini kui maksed -STR_CONFIG_SETTING_SELECTGOODS :Kauba toimetamine jaama ainult nõudluse korral: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Jaama tuleb ainult kaup mis on nõutud vastava sõiduki poolt. See välistab halvad reitingud teistele kaupadele mida sellest jaamast ei transpordita STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksimaalne silla pikkus: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimaalne pikkus ehitatud sildadele STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksimaalne tunneli pikkus: {STRING} @@ -1248,8 +1235,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Esialgne peatum STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :lõpu lähedal STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :keskel STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :täiesti lõpus -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Mootorsõidukite järjekorrad (koos mahuefektidega): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Pane sõiduk ootama hõivatud peatuse ees kuni need on vabastatud STR_CONFIG_SETTING_AUTOSCROLL :Vaate liikumine, kui hiireosuti on akna servas: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Sisse lülitamisel liigub vaade, kui hiireosuti on aknaserva lähedal STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Väljas @@ -1280,10 +1265,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Läbisõidupeat STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Lubab linnale kuuluvatel teedel ehitada läbisõidupeatuseid STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Läbisõidupeatused konkurentide teedel: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Lubab teisele ettevõttele kuulaval teel ehitada läbisõidupeatuseid -STR_CONFIG_SETTING_ADJACENT_STATIONS :Jaamade kõrvutiehitamine: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Luba erinevaid jaamu omavahel kokku puutuda -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Mitme NewGRF sõidukikomplekti lubamine: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Ühilduvuse suvand vanadele NewGRF'le. Ärge keelake seda, juhul kui Sa tead täpselt mida sa teed! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Sõidukite olemasolul ei saa seda seadet muuta STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Taristu hooldamine: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Taristuga kaasnevad halduskulud. Kulud kasvavad taristu hulga suhtes ebaproportsionaalselt, ning mõjutavad pigem suurettevõtteid @@ -1341,8 +1322,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Kõrgustekaardi STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Vastu-päevapidi STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Päevapidi STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Kõrguse level kui kõrgele lapik kaart läheb: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Maastikukujundus kaardiäärsetel ruutudel: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Kui välja lülitatud, siis kaardi piirid on alati maailmameri STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Üks või enam ruutu põhjaäärel pole tühjad STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Üks või enam ääreruutu pole vesi @@ -1399,11 +1378,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :pikka (31. dets STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :lühikest (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :NewGRF-i palett, kui palett on määramata: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Palett, kui NewGRF vajalikku paletti ei määra -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Vaikimisi (D) palett -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Algupärane (W) palett - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Mängu alguses mäng seisab: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Sisse lülitamisel mängu alguses aeg seisab, et oleks rohkem aega kaardiga tutvuda STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Lubatud seisaku ajal: {STRING} @@ -1577,7 +1551,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Luba linnadel e STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Linnadel on lubatud ehitada ülesõidukohti: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Selle seade sisse lülitamine lubab linnadel ehitada ülesõidukohti STR_CONFIG_SETTING_NOISE_LEVEL :Lennujaamade mürapiirangud linnades: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kui ei ole aktiveeritud, siis on igas linnas lubatud kuni kaks lennujaama. Kui see seade on aktiveeritud, siis on lubatud igas linnas lennujaamu ehitada vastavalt linna müra vastuvõrlikkuse tasemele, mis sõltub otseselt linna elanike arvust ja lennujaama suurusest ja kaugusest kesklinnast +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kui seade ei ole sisse lülitatud, siis igasse linna on lubatud ehitada kuni kaks lennuvälja. Kui see seade on lubatud, siis lennuväljade arvu ülempiiri määrab linna müratundlikkus, mis sõltub rahvaarvust ja lennuvälja suurusest ja kaugusest STR_CONFIG_SETTING_TOWN_FOUNDING :Linnade rajamine keset mängu: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Võimaldab ettevõttel uusi linnu rajada STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Keelatud @@ -1625,8 +1599,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 iga {COMMA} k STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Mitte ühtegi STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Algne linnade suurustegur: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Keskmine linna suurus võrreldes tavalise asulaga mängu alguses -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Mittevajaliku eemaldamine teedeehitusel: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Eemalda tupikteed kui rahastatakse kohalikku teedeehitust STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Jaotusgraafikuid uuendatakse igal {STRING}. päeval STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Aega ahelgraafikute koostamise vahel. Koostamine uuendab plaane ainult ühes graafiku osas. Seega X väärtusega ei uuendata graafikut iga X päeva tagant. Uuendatakse vaid ühte osa. Väiksema arvuga kasutatakse protsessorit rohkem. Suurema arvuga läheb kauem aega, kuni uuel teel alustatakse kaubavedu. @@ -1688,27 +1660,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Inglise mõõdu STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Meetermõõdustik (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI-süsteem (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Liides STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Kohandused -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Ehitus -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Sõidukid -STR_CONFIG_SETTING_STATIONS :{ORANGE}Jaamad -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Majandus -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Kaubajaotus -STR_CONFIG_SETTING_AI :{ORANGE}Konkurendid -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Vaate seadistus -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Käitumine STR_CONFIG_SETTING_SOUND :{ORANGE}Heliefektid -STR_CONFIG_SETTING_NEWS :{ORANGE}Uudised ja sõnumid -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaalid -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Kauba käsitlemine -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Arvuti -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Uuendamine -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Hooldus +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Liides +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Ehitus +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Sõidukid STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Marsruutimine -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Rongid -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Linnad -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Tööstused +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Linnad +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Tööstused +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Kaubajaotus +STR_CONFIG_SETTING_AI :{ORANGE}Konkurendid +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Arvuti STR_CONFIG_SETTING_PATHFINDER_OPF :Algne STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1865,6 +1827,7 @@ STR_LIVERY_FREIGHT_TRAM :Kaubatramm STR_FACE_CAPTION :{WHITE}Näo valik STR_FACE_CANCEL_TOOLTIP :{BLACK}Tühista uue näo valimine STR_FACE_OK_TOOLTIP :{BLACK}Uue näo valimine +STR_FACE_RANDOM :{BLACK}Suvaline STR_FACE_MALE_BUTTON :{BLACK}Mees STR_FACE_MALE_TOOLTIP :{BLACK}Vali mehe nägu @@ -2743,10 +2706,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Tööstu STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Lumepiiri kõrgus: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Lumepiiri liigutamine ühe võrra üles STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Lumepiiri liigutamine ühe võrra alla -STR_MAPGEN_RANDOM_SEED :{BLACK}Juhuarv: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klõpsa juhuarvu sisestamiseks -STR_MAPGEN_RANDOM :{BLACK}Suvaline -STR_MAPGEN_RANDOM_HELP :{BLACK}Muuda maastiku tekitamisel kasutatavat juhuarvu STR_MAPGEN_LAND_GENERATOR :{BLACK}Maatekituse meetod: STR_MAPGEN_TREE_PLACER :{BLACK}Puude algoritm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Maapinna tüüp: @@ -2773,7 +2732,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Kõrguse STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Suurus: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Sisesta suvaline arv STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Muuda lumepiiri kõrgust STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Muuda algusaastat @@ -3359,6 +3317,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Eemalda STR_GROUP_RENAME_TOOLTIP :{BLACK}Valitud rühma nime vahetamine STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klõpsa, et seda rühma üldise automaatse asenduse eest kaitsta + STR_GROUP_ADD_SHARED_VEHICLE :Kõik jagatud sõidukid STR_GROUP_REMOVE_ALL_VEHICLES :Eemalda kõik sõidukid diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 0ed87f7633..5bd1b5424e 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -791,13 +791,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} bíðar í goymsluni STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} bíðar í hangarinum -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} hevur ov fá boð í skránni STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} hevur eini ógyldig boð STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} hevur boð ið eru eins STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} hevur eina óviðkomandi støð í sinum boðum -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} er vi at eldast STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} er við at eldast serstakliga nógv @@ -935,9 +933,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skerm up STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Vel hvørja skermupploysn tú vil brúka STR_GAME_OPTIONS_RESOLUTION_OTHER :annað -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Skermmynda snið -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Vel hvat skermmynda snið tú vil brúka - 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} @@ -1105,8 +1100,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Tendra/sløkk STR_CONFIG_SETTING_CITY_APPROVAL :Støðan hjá býraðnum viðvíkjandi umbygging: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vel hvussu nógv óljóð og umhvørvis skaði frá fyritøkum virkar á teirra meting í bygdini og hvussu tær sleppa at byggja víðari í økinum -STR_CONFIG_SETTING_BUILDONSLOPES :Loyv bygging á hellandi lendi og strondum: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Um tendra kunnu breytir og støðir byggjast har lendi hellur. Um sløkt, mugu breytir fara sama veg sum lendi hellir og støðir mugu byggjast á flatt lendi STR_CONFIG_SETTING_AUTOSLOPE :Loyv landslagsbroytingar undir bygningum, breytum, osv. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Loyv landslagsbroytingar undir bygningum og breytum uttan at beina tey burtur STR_CONFIG_SETTING_CATCHMENT :Loyv meira verðuleikakendum støddum á upplandi hjá støðum: {STRING} @@ -1131,14 +1124,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Bannað tokum o STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 gradirs sneiðingar eru tá ein vatnrætt breyt kemur beint aftaná eina loddrætta breyt í tí puntinum ið er næstur, ið førir við sær at toki ger eina 90 gradirs sneiðing heldur enn tær vanligu 45. Hetta ávirkar eisini snúnings radius hjá skipum STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Loyv at skoyta støðir saman ið ikki hava beinleiðis samband: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Loyvir at leggja deilir til eina støð uttan at teir beinleiðis nerta verðandi deilir. Krevst Ctrl+trýst tá tú leggur nýggju deilinar -STR_CONFIG_SETTING_IMPROVEDLOAD :Brúka betraða lessingar algoritmu: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Um tendra, verða flutningstól lessaði hvørt eftir annað tá tey eru fleyri í einari støð. Lessing av næsta flutningstólinum byrjar ikki fyrr enn nóg miki av farmi er til at fylla fyrra flutningstóli -STR_CONFIG_SETTING_GRADUAL_LOADING :Lessa flutningstól so líðandi: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Lessa flutningstól so líðandi við nýtslu av serligum lessingar tíðarbilum fyri hvørt flutningstóli, í staðin fyri at lessa alt uppá ein gang uppá eina fasta tíð einans treytað av hvussu nógvur farmur skal lessast STR_CONFIG_SETTING_INFLATION :Virðisminkan: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Gilda virðisminkan í búskapinum, har kostnaðir vaksa eitt sindur skjótari enn lønir -STR_CONFIG_SETTING_SELECTGOODS :Einans útflýggja farm til eina støð tá ið ein tørvur er: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Einans útflýggja farm til eina støð ið var umbiðin av einum lessandi flutningstóli. Hetta forðar vánaligum metingum av farmi ið ikki verður avgreiddur á eini støð STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Mest loyvda longd av brúm: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Mest loyvda longd tá ið tú byggir brýr STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Mest loyvda longd av bergholi: {STRING} @@ -1166,8 +1153,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Áset hvar við STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :nær endanum STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :miðjuni STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :fjart endanum -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Akfar í bíðirøð (við kvantum ávirkan): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Akfør bíða frammanfyri upptiknar veg steðgir til teir eru tómir STR_CONFIG_SETTING_AUTOSCROLL :Skotra vindeyga tá músin er við eggina: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Um gilda, byrja sýnisgluggar at skrulla tá músin er nær við egginar á vindeyganum STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Ikki sligi til @@ -1198,10 +1183,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Loyv gjøgnumko STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Loyv bygging av gjøgnumkoyrings steðgum á vegum ið bygdir eiga STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Loyv gjøgnumkoyrings steðgum á vegum ið kappingarneytar eiga: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Loyv bygging av gjøgnumkoyrings steðgum á vegum ið kappingarneytar eiga -STR_CONFIG_SETTING_ADJACENT_STATIONS :Loyv at byggja støðir síð um síð: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Loyv ymsum støðum at nema við hvørja aðra -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Gilda fleiri NewGRF motor sett: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Háttlíkis møguleiki fyri gomul NewGRF. Ikki ógilda hetta, uttan so er at tú veist nágreiniliga hvat tú ger! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Ikki møguligt at broyta hesa áseting tá ta eru flutningstól STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Innakervis viðlílkahald: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Um gilda, innankervi elvir til viðlíkahalds kostnað. Kostnaðurin vaksur yvir-lutfalsliga við støddina á kervinum, og ávirkar harvið størri fyritøkur meira enn smærri fyritøkur @@ -1259,8 +1240,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Hæddarkort sna STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Í móti klokkunu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Við klokkuni STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Hæddar støði eitt flatt tilburðs kort fær: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Gilda landslags broytingar av puntum við eggina á kortinum: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Um ógilda, eru egginar á kortinum altíð hav STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ein ella fleiri puntar við norðaru eggina eru ikki tómir STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Ein ella fleiri puntar við eina egg eru ikki vatn @@ -1317,9 +1296,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :langt (31. Des STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :stutt (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Vanligt litaval at ganga út frá fyri NewGRFs uttan serstakt litaval: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Vanligt litaval at nýta fyri NewGRF ið ikki tilskila hvat litaval teimum tørvar - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Sjálvirknan steðg tá nýtt spæl verður byrja: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Um gilda er spæli steðga tá ið tú byrjar eitt nýtt spæl, hetta loyvir tær at skoða korti í frið og náðum STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Meðan steðgur er, loyv: {STRING} @@ -1520,25 +1496,15 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Eingin -STR_CONFIG_SETTING_GUI :{ORANGE}Takførisflati -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Bygging -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Flutningstól -STR_CONFIG_SETTING_STATIONS :{ORANGE}Støðir -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Búskapur -STR_CONFIG_SETTING_AI :{ORANGE}Kappingarneytar -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Vísu møguleikar -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Ávirkan STR_CONFIG_SETTING_SOUND :{ORANGE}Ljóð effektir -STR_CONFIG_SETTING_NEWS :{ORANGE}Tíðindi og boð -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Tekin -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Farma stýring -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Teldu spælarir -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Sjálvendurnýggja -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Eftirlit +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Takførisflati +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Bygging +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Flutningstól STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Beining -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tok -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Bygdir -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Ídnaðir +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bygdir +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Ídnaðir +STR_CONFIG_SETTING_AI :{ORANGE}Kappingarneytar +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Teldu spælarir STR_CONFIG_SETTING_PATHFINDER_OPF :Upprunaligur STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1682,6 +1648,7 @@ STR_LIVERY_FREIGHT_TRAM :{G=m}Góðs spo STR_FACE_CAPTION :{WHITE}Andlits úrval STR_FACE_CANCEL_TOOLTIP :{BLACK}Angra nýtt andlits val STR_FACE_OK_TOOLTIP :{BLACK}Góðtak nýtt andlits val +STR_FACE_RANDOM :{BLACK}Blanda STR_FACE_MALE_BUTTON :{BLACK}Kallkyn STR_FACE_MALE_TOOLTIP :{BLACK}Vel kallkyns andlit @@ -2479,10 +2446,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nr. av STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hædd á kava linju: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flyt kava linjuna eitt upp STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flyt kava linjuna eitt niður -STR_MAPGEN_RANDOM_SEED :{BLACK}Tilvildarligt sáð: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Trýst fyri at skriva tilvildarligt sáð -STR_MAPGEN_RANDOM :{BLACK}Blanda -STR_MAPGEN_RANDOM_HELP :{BLACK}Broyt tilvildarliga sáði ið verur nýtt til landslags framleiðslu STR_MAPGEN_LAND_GENERATOR :{BLACK}Lendis framleiðari: STR_MAPGEN_TREE_PLACER :{BLACK}Træ algoritma: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Slag av lendi: @@ -2509,7 +2472,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Navn á STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Stødd: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Skriva eitt tilvildarligt sáð STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Broyt hædd á kava linju STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Broyt byrjunar ár @@ -3002,6 +2964,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Strika v STR_GROUP_RENAME_TOOLTIP :{BLACK}Navngev valda bólkin STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Trýst fyri at verja hendan bólkin móti alheims sjálvendurnýggjan + STR_GROUP_ADD_SHARED_VEHICLE :Legg deild flutningstól til STR_GROUP_REMOVE_ALL_VEHICLES :Bein øll flutningstól burtur diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 0eba6e3f57..0f6b7b9924 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} odottaa varikolla STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} odottaa lentokonehallissa -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Kulkuneuvolla {VEHICLE} on liian vähän käskyjä STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Kulkuneuvolla {VEHICLE} on virheellinen käsky STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Ajoneuvolla {VEHICLE} on toistuvia käskyjä STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Kulkuneuvon {VEHICLE} käskyissä on virheellinen asema -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}Kulkuneuvon {VEHICLE} käskyissä on lentokenttä, jonka kiitorata on liian lyhyt STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} on tulossa vanhaksi STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} on tulossa hyvin vanhaksi @@ -938,11 +937,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Katalonialainen STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Automaattitallennus STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Valitse aikaväli automaattisille pelitallennuksille. +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Pois STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Kuukausittain STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Joka 3. kuukausi STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Joka 6. kuukausi STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Kerran vuodessa +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Kieli STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Valitse käyttöliittymän kieli. @@ -954,9 +955,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Kuvakaappauksen muoto -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Valitse kuvankaappauksen muoto. - 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/korruptoitunut tiedosto{P "" ja} @@ -1072,7 +1070,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Yhtiön asetus STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategoria: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tyyppi: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Rajaa alla olevaa listaa ja näyttää vain muutetut asetukset +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Rajaa alla olevaa listaa ennalta määritellyillä suodattimilla STR_CONFIG_SETTING_RESTRICT_BASIC :Perusasetukset STR_CONFIG_SETTING_RESTRICT_ADVANCED :Lisäasetukset STR_CONFIG_SETTING_RESTRICT_ALL :Kehittyneet asetukset / kaikki asetukset @@ -1130,9 +1128,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ottaa käyttö STR_CONFIG_SETTING_CITY_APPROVAL :Kaupunginvaltuuston asenne alueiden uudelleenjärjestelyyn: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Valitse, kuinka paljon yhtiöiden aiheuttama melu ja ympäristövahingot vaikuttavat niiden arvioihin sekä tuleviin rakennustoimiin alueella -STR_CONFIG_SETTING_BUILDONSLOPES :Rakentaminen rinteisiin ja rannikolle sallittu: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Mikäli käytössä, ratoja ja asemia voidaan rakentaa useimmille rinteille. Mikäli pois käytöstä, niitä voidaan rakentaa vain radalle sopivaan maastoon joka ei vaadi perustuksia -STR_CONFIG_SETTING_AUTOSLOPE :Salli maaston muokkaaminen rakennusten, raiteiden jne. juurella (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Salli maaston muokkaaminen rakennusten, raiteiden jne. juurella: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Sallii maaston muokkaamisen rakennusten ja ratojen alta tuhoamatta niitä STR_CONFIG_SETTING_CATCHMENT :Realistisemman kokoiset vaikutusalueet: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Erityyppisillä asemilla ja lentokentillä on eri kokoiset vaikutusalueet @@ -1156,14 +1152,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :90 asteen kää STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 asteen käännöksiä esiintyy kun vaakasuuntaista rataa seuraa pystysuuntainen rata viereisellä ruudulla, tämä vaatii junan kääntymään 90 astetta ruutujen reunalla normaalin 45 asteen sijasta. Tämä asetus vaikuttaa myös laivojen kääntymissäteeseen STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Salli ei-vierekkäisten asemien yhdistäminen: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Mahdollistaa aseman osien rakentamisen vaikka ne eivät olisi kosketuksissa olemassaoleviin aseman osiin. Vaatii Ctrl-näppäimen painamisen rakennettaessa -STR_CONFIG_SETTING_IMPROVEDLOAD :Käytä kehittyneempää lastausalgoritmia: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Mikäli käytössä, asemalla odottavat kulkuneuvot lastataan järjestyksessä. Seuraavan ajoneuvon lastaaminen aloitetaan vasta kun asemalla on tarpeeksi rahtia ensimmäisen kulkuneuvon täyteen lastaamiseen -STR_CONFIG_SETTING_GRADUAL_LOADING :Lataa kulkuneuvot vähitellen: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Lastaa kulkuneuvot vähitellen, käyttäen kulkuneuvokohtaisia lastausaikoja sen sijaan, että rahdit lastataan vakiossa, rahdin määrästä riippuvassa ajassa STR_CONFIG_SETTING_INFLATION :Inflaatio: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ota talouden inflaatio käyttöön. Mikäli käytössä, hinnat nousevat hieman nopeammin kuin kuljetusmaksut -STR_CONFIG_SETTING_SELECTGOODS :Pura rahti asemalle vain, kun on kysyntää: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Kuljeta rahtia asemalle vain jos asemalla on rahtia vastaanottava kulkuneuvo. Tämä estää huonot arviot johtuen rahtityypeistä, joita ei kuljeteta STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Suurin sallittu sillan pituus: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Suurin sallittu pituus siltoja rakennettaessa STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Suurin sallittu tunnelin pituus: {STRING} @@ -1191,8 +1181,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Paikka, johon j STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :alkuun STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :keskelle STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :loppuun -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Ajoneuvojen jonotus (tehostein): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Ajoneuvot odottavat pysäkkien edessä kunnes ne vapautuvat STR_CONFIG_SETTING_AUTOSCROLL :Vieritä ikkunaa, kun hiiri osuu reunaan: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Mikäli käytössä, näkymät siirtyvät hiiren ollessa lähellä ikkunan reunaa STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Pois käytöstä @@ -1223,10 +1211,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Läpiajettavat STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Sallii pysäkkien rakentamisen kaupunkien omistamille teille STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Salli läpiajettavat pysäkit kilpailijoiden omistamilla teillä: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Salli pysäkkien rakentaminen toisten yhtiöiden omistamille teille -STR_CONFIG_SETTING_ADJACENT_STATIONS :Vierekkäiset asemat: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Salli asemien olla kosketuksissa toistensa kanssa -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Useat NewGRF-veturisetit: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Yhteensopivuusasetus vanhoille NewGRF-tiedostoille. Älä poista tätä käytöstä ellet tiedä mitä teet! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Tätä asetusta ei voi muuttaa, kun kulkuneuvoja on olemassa STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktuurin huoltokustannukset: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Mikäli käytössä, infrastruktuurista aiheutuu huoltokuluja. Kulut kasvavat suhteettomasti verkon kokoon nähden, täten ne vaikuttavat suurempiin yhtiöihin enemmän kuin pieniin @@ -1265,27 +1249,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Näytä kaupunk STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Viivojen paksuus kuvaajissa: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Viivan leveys kuvaajissa. Ohut viiva on tarkasti luettavissa kun taas paksumpi viiva on helpompi nähdä ja sen värit ovat helpommin havaittavissa +STR_CONFIG_SETTING_LANDSCAPE :Maasto: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Maasto vaikuttaa useisiin pelin peruselementteihin, kuten rahtiin ja kaupunkien kasvuvaatimuksiin. NewGRF:t ja Peliskriptit voivat kuitenkin vaikuttaa tarkemmin pelin kulkuun STR_CONFIG_SETTING_LAND_GENERATOR :Maastogeneraattori: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Alkuperäinen maastonluoja riippuu perusgrafiikkapaketista ja luo ennalta määritettyjä maastonmuotoja. TerraGenesis luo maastoa Perlin-kohinan perusteella ja mahdollistaa asetusten tarkemman määrittelyn STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Alkuperäinen STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Maaston tyyppi: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Vain TerraGenesis) Maaston mäkisyys +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Teollisuuden määrä: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Määritä, kuinka paljon teollisuutta tulisi luoda ja millä tasolla teollisuuden tulisi pysytellä pelin aikana STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Suurin sallittu etäisyys kartan reunoilta öljynjalostamoille: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Öljynjalostamoja rakennetaan ainoastaan kartan reunoille eli rannikoille saarikartoilla STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Lumirajan korkeus: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Maaston epätasaisuus (vain TerraGenesis) : {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Määritä, millä korkeudella lumiraja on pohjoisessa maastotyypissä. Lumi vaikuttaa teollisuuksien luontiin sekä kaupunkien kasvuvaatimuksiin +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Maaston epätasaisuus: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Vain TerraGenesis) Määritä mäkien tiheys: Tasaisessa maastossa mäet ovat laajempia ja niitä on vähemmän. Epätasaisessa maastossa on enemmän mäkiä, mikä voi saada maaston näyttämään itseään toistavalta STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Erittäin tasainen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Tasainen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Epätasainen STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Erittäin epätasainen +STR_CONFIG_SETTING_VARIETY :Maaston vaihtelu: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Vain TerraGenesis) Valitse, onko kartalla sekä vuoristoisia että tasaisia alueita. Koska tämä asetus tekee maastosta tasaisempaa, muut asetukset tulisi määrittää vuoristoisiksi +STR_CONFIG_SETTING_RIVER_AMOUNT :Jokien määrä: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Valitse, kuinka paljon jokia luodaan STR_CONFIG_SETTING_TREE_PLACER :Puiden sijoittelualgoritmi: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Määritä puiden jakautuminen kartalla: 'Alkuperäinen' istuttaa puita tasaisesti ympäri karttaa, 'Parannettu' istuttaa niitä ryhmiin STR_CONFIG_SETTING_TREE_PLACER_NONE :Ei mitään STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Alkuperäinen STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Parannettu +STR_CONFIG_SETTING_ROAD_SIDE :Ajoneuvot: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Valitse ajokaista STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Korkeuskartan pyöritys:{STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Vastapäivään STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Myötäpäivään STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Litteälle maisemalle annettava korkeus: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Salli maanmuokkaus kartan reunoilla: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Mikäli pois käytöstä, kartan reunat ovat aina merta STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Yksi tai useampi ruutu pohjoisreunalla ei ole tyhjä STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Yksi tai useampi ruutu jollakin reunalla ei ole vettä @@ -1306,7 +1304,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Näkymän tasai STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Hallitse miten päänäkymä siirtyy valittuun paikkaan karttaa klikattaessa tai käytettäessä komentoa joka muuttaa näkymän sijaintia. Mikäli käytössä, päänäkymä siirtyy uuteen sijaintiin pehmeäesti, muutoin se hyppää suoraan valittuun sijaintiin STR_CONFIG_SETTING_MEASURE_TOOLTIP :Näytä mittauksen työkaluvihje, kun käytetään rakennustyökaluja: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Näytä etäisyydet ja korkeuserot vedettäessä rakennustoimintojen aikana -STR_CONFIG_SETTING_LIVERIES :Näytä yhtiön tunnukset: {STRING} +STR_CONFIG_SETTING_LIVERIES :Näytä kulkuneuvotyypille ominaiset tunnukset: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Hallitse kulkuneuvokohtaisten tunnusten käyttöä (yhtiökohtaisten tunnusten sijaan) STR_CONFIG_SETTING_LIVERIES_NONE :Ei yhtään STR_CONFIG_SETTING_LIVERIES_OWN :Oma yhtiö @@ -1336,17 +1334,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Pois STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Vasemmalla hiiren painikkeella liikkuminen: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Salli näkymän siirtäminen vetämällä hiiren vasemmalla näppäimellä. Hyödyllinen erityisesti kosketusnäyttöä käytettäessä +STR_CONFIG_SETTING_AUTOSAVE :Automaattitallennus: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Valitse aikaväli automaattisille pelitallennuksille + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Käytä {STRING} päivämäärämuotoa tallennettujen pelien niminä STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Pelitallenteiden tiedostonimissä käytettävä päivämäärän muoto STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :pitkä (31. joulu 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :lyhyt (31.12.2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Käytettävä oletuspaletti jos NewGRF ei määritä palettia: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Oletuspaletti NewGRF-tiedostoille jotka eivät määritä palettia -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Oletuspaletti (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Yhteensopivuuspaletti (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Uusi peli alkaa pysäytettynä: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Mikäli käytössä, peli pysäytetään automaattisesti uuden pelin alussa, mahdollistaen esimerkiksi kartan tarkemman tutkimisen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Pelin ollessa pysäytetty, salli: {STRING} @@ -1355,7 +1351,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Ei mitkään to STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Kaikki ei-rakennustoiminnot STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Kaikki paitsi maastonmuokkaustoiminnot STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Kaikki toiminnot -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Edistynyt ajoneuvolista: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Käytä ryhmiä kulkuneuvolistassa: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Salli kehittyneiden kulkuneuvolistojen käyttö kulkuneuvojen ryhmittelyssä STR_CONFIG_SETTING_LOADING_INDICATORS :Lastausilmaisimet: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Määritä näytetäänkö lastausilmaisimet kulkuneuvojen yläpuolella lastatessa ja purettaessa rahtia @@ -1370,7 +1366,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Ratatyyppi, jok STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Ensimmäinen STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Viimeinen STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Yleisin -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Näytä varatut raiteet: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Näytä reittivaraukset raiteilla: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Värjää varatut rataosuudet eri värillä. Tämä auttaa opastimien ja risteysten vianetsinnässä STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Pidä rakennustyökalut aktiivisina käytön jälkeen: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Pidä siltojen, tunneleiden, jne. rakennustyökalut käytössä käytön jälkeen @@ -1568,8 +1564,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 / {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Suurkaupunkien keskimääräinen koko suhteessa normaaleihin kaupunkeihin pelin alussa -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Poista turhat tie-elementit tienrakennuksen aikana: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Poista turhat tien loppuosat tieverkon uudelleenrakentamisen yhteydessä STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Päivitä rahdin jakautuminen {STRING} päivän välein STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Yhteyskuvaajan uudelleenlaskujen välinen aika. Kukin uudelleenlasku laskee yhden kuvaajan komponentin. Tämä tarkoittaa sitä, että koko kuvaajaa ei lasketa uudelleen määrittämäsi ajan välein, vaan ainoastaan yksi komponentti. Mitä lyhyemmäksi määrität asetuksen, sitä enemmän prosessoriaikaa komponentin laskemiseen vaaditaan. Mitä pidemmäksi määrität sen, sitä pidempi aika kuluu, kunnes rahdin jakaminen alkaa uusilla reiteillä. @@ -1631,27 +1625,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Brittiläinen ( STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrinen (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Käyttöliittymä STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisointi -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Rakentaminen +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafiikka +STR_CONFIG_SETTING_SOUND :{ORANGE}Ääni +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Käyttöliittymä +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Yleinen +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Näkymät +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Rakentaminen +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Uutiset / Neuvonantajat +STR_CONFIG_SETTING_COMPANY :{ORANGE}Yhtiö +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Talous STR_CONFIG_SETTING_VEHICLES :{ORANGE}Ajoneuvot -STR_CONFIG_SETTING_STATIONS :{ORANGE}Asemat -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Talous -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Rahdin jakautuminen -STR_CONFIG_SETTING_AI :{ORANGE}Kilpailijat -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Näyttöasetukset -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Vuorovaikutus -STR_CONFIG_SETTING_SOUND :{ORANGE}Ääniefektit -STR_CONFIG_SETTING_NEWS :{ORANGE}Uutiset ja viestit -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Opastimet -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Rahdin käsittely -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Tietokonepelaajat -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automaattinen uudistus -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Huoltokäynnit +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fysiikka STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Reititys -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Junat -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Kaupungit -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Laitokset +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Rajoitukset +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Onnettomuudet +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Maailman luominen +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ympäristö +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Viranomaiset +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Kaupungit +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Laitokset +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Rahdin jakautuminen +STR_CONFIG_SETTING_AI :{ORANGE}Kilpailijat +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Tietokonepelaajat STR_CONFIG_SETTING_PATHFINDER_OPF :Alkuperäinen STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1804,7 @@ STR_LIVERY_FREIGHT_TRAM :Raitiotavaravau STR_FACE_CAPTION :{WHITE}Kasvojen valinta STR_FACE_CANCEL_TOOLTIP :{BLACK}Peruuta uusien kasvojen valinta. STR_FACE_OK_TOOLTIP :{BLACK}Hyväksy uusien kasvojen valinta. +STR_FACE_RANDOM :{BLACK}Satunnainen STR_FACE_MALE_BUTTON :{BLACK}Mies STR_FACE_MALE_TOOLTIP :{BLACK}Valitse miehen kasvot. @@ -2687,10 +2684,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Teollisu STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Lumirajan korkeus: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Siirrä lumirajaa yksi taso ylöspäin STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Siirrä lumirajaa yksi taso alaspäin -STR_MAPGEN_RANDOM_SEED :{BLACK}Satunnaislukusiemen: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikkaa antaaksesi satunnaislukusiemenen -STR_MAPGEN_RANDOM :{BLACK}Satunnainen -STR_MAPGEN_RANDOM_HELP :{BLACK}Vaihda maaston luomisessa käytettävä satunnaislukusiemen STR_MAPGEN_LAND_GENERATOR :{BLACK}Maastogeneraattori: STR_MAPGEN_TREE_PLACER :{BLACK}Puiden algoritmi: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Maaston tyyppi: @@ -2717,7 +2710,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Korkeusk STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Koko: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Syötä satunnaissiemen STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Vaihda lumirajan korkeutta STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Vaihda aloitusvuosi @@ -2772,6 +2764,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Siirrä STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Siirrä valittua NewGRF-tiedostoa listassa ylöspäin STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Siirrä alas STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Siirrä valittua NewGRF-tiedostoa listassa alaspäin +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Päivitä +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Päivitä NewGRF-tiedostot joista on asennettuna uudempi versio STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Lista asennetuista NewGRF-tiedostoista STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Aseta parametrit @@ -2796,6 +2790,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Sopivaa ti STR_NEWGRF_SETTINGS_DISABLED :{RED}Ei käytössä STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Epäyhteensopiva tämän OpenTTD-version kanssa +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Tallenna valmislistaksi +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Luettelo saatavilla olevista valmislistoista, valitse yksi kopioitavaksi alla olevaan tallenteeseen +STR_SAVE_PRESET_TITLE :{BLACK}Syötä nimi valmislistalle +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Valittu nimi tallennettavalle valmislistalle +STR_SAVE_PRESET_CANCEL :{BLACK}Peruuta +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Älä muuta valmislistaa +STR_SAVE_PRESET_SAVE :{BLACK}Tallenna +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Tallenna valmislista valitulle nimelle + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Muuta NewGRF-parametrejä STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Sulje @@ -3297,12 +3301,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Muut autot STR_GROUP_DEFAULT_SHIPS :Muut laivat STR_GROUP_DEFAULT_AIRCRAFTS :Muut lentokoneet -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ryhmät - klikkaa ryhmää nähdäksesi kaikki kulkuneuvot tässä ryhmässä +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ryhmät - klikkaa ryhmää nähdäksesi kaikki kulkuneuvot tässä ryhmässä. Järjestä ryhmiä vetämällä ja pudottamalla. STR_GROUP_CREATE_TOOLTIP :{BLACK}Luo ryhmä STR_GROUP_DELETE_TOOLTIP :{BLACK}Poista valittu ryhmä STR_GROUP_RENAME_TOOLTIP :{BLACK}Nimeä valittu ryhmä STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Poista ryhmä automaattisesti korvattavien joukosta +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Poista ryhmä +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Haluatko varmasti poistaa tämän ryhmän ja sen alaryhmät? + STR_GROUP_ADD_SHARED_VEHICLE :Lisää jaettuja ajoneuvoja STR_GROUP_REMOVE_ALL_VEHICLES :Poista kaikki ajoneuvot @@ -3691,8 +3698,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Muuta ko STR_ORDER_REFIT :{BLACK}Sovita STR_ORDER_REFIT_TOOLTIP :{BLACK}Valitse mihin rahtityyppiin tämä käsky sovittaa. Ctrl+Klik poistaa sovituskäskyn -STR_ORDER_REFIT_AUTO :{BLACK}Automaattinen sovitus -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Valitse tällä määräyksellä automaattisesti sovitettava rahtityyppi. Ctrl+Klik poistaaksesi sovitusmääräyksen. Automaattinen sovitus suoritetaan vain, jos kulkuneuvo sallii sen. +STR_ORDER_REFIT_AUTO :{BLACK}Uudelleensovitus asemalla +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Valitse tällä määräyksellä sovitettava rahtityyppi. Ctrl+Klik poistaaksesi sovitusmääräyksen. Sovitus suoritetaan vain, jos kulkuneuvo sallii sen. STR_ORDER_DROP_REFIT_AUTO :Määrätty rahti STR_ORDER_DROP_REFIT_AUTO_ANY :Saatavilla oleva rahti @@ -3783,18 +3790,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Ei lastin purk STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Ei lastin purkua, mutta odota minkä tahansa lastin täyttymistä) STR_ORDER_NO_UNLOAD_NO_LOAD :(Ei purkua eikä lastausta) -STR_ORDER_AUTO_REFIT :(Sovita automaattisesti rahdille {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Täysi lasti ja automaattinen sovitus rahdille {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Täysi lasti mitä tahansa rahtia sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_UNLOAD_REFIT :(Pura ja ota rahti sekä automaattinen sovitus rahdille {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Pura ja odota täyttä lastia sekä sovita automaattisesti rahdille {STRING}) +STR_ORDER_AUTO_REFIT :(Sovita rahdille {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Täysi lasti ja sovitus rahdille {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Täysi lasti mitä tahansa rahtia sekä sovita rahdille {STRING}) +STR_ORDER_UNLOAD_REFIT :(Pura ja ota rahti sekä sovita rahdille {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Pura ja odota täyttä lastia sekä sovita rahdille {STRING}) STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Pura ja odota mitä tahansa täyttä lastia sekä sovita rahdille {STRING}) -STR_ORDER_TRANSFER_REFIT :(Siirrä ja ota rahti sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Siirrä ja odota täyttä lastia sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Siirrä ja odota mitä tahansa täyttä lastia sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Ei purkua ja ota rahti sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Ei purkua ja odota täyttä lastia sekä sovita automaattisesti rahdille {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Ei purkua ja odota mitä tahansa täyttä lastia sekä sovita automaattisesti rahdille {STRING}) +STR_ORDER_TRANSFER_REFIT :(Siirrä ja ota rahti sekä sovita rahdille {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Siirrä ja odota täyttä lastia sekä sovita rahdille {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Siirrä ja odota mitä tahansa täyttä lastia sekä sovita rahdille {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Ei purkua ja ota rahti sekä sovita rahdille {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Ei purkua ja odota täyttä lastia sekä sovita rahdille {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Ei purkua ja odota mitä tahansa täyttä lastia sekä sovita rahdille {STRING}) STR_ORDER_AUTO_REFIT_ANY :saatavilla oleva rahti @@ -3820,9 +3827,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Aikataul STR_TIMETABLE_NO_TRAVEL :Ei kulkua STR_TIMETABLE_NOT_TIMETABLEABLE :Kulje (automaattinen; aikataulu seuraavan manuaalisen käskyn mukaisesti) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Kiertävä (ei aikataulua) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Kulje enimmillään {2:VELOCITY} (ei aikataulutettu) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Kulje (ilman aikataulua) enimmillään {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Kulje kohteeseen {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Kulje kohteeseen {STRING} enintään {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Kulje ({STRING}, ei aikataulua) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Kulje ({STRING}, ei aikataulua) enimmillään {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(pysy {STRING}, ei aikataulua) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(matkusta {STRING}, ei aikataulua) STR_TIMETABLE_STAY_FOR :ja odota {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :ja kulje {STRING} STR_TIMETABLE_DAYS :{COMMA} päivä{P "" ä} @@ -4276,6 +4287,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... omis STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Ei voi luoda ryhmää. STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Ryhmää ei voi poistaa. STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Ryhmää ei voi nimetä. +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Pääryhmää ei voi määrittää... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Ryhmän kaikkia ajoneuvoja ei voi poistaa. STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Ei voi lisätä ajoneuvoa ryhmään. STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Ei voi lisätä jaettuja ajoneuvoja ryhmään. diff --git a/src/lang/french.txt b/src/lang/french.txt index c38d28c0c0..f9e7cb388b 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -811,13 +811,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} est en attente au dépôt STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} est en attente au hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} a trop peu d'ordres dans son itinéraire STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} a un ordre vide STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} a des ordres en double STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} a une station invalide dans ses ordres -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} a dans ses ordres un aéroport dont la piste est trop courte STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} devient vieux STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} devient très vieux @@ -939,11 +938,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalans STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Sauvegarde automatique STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Sélectionner l'intervalle de temps entre les sauvegardes automatiques +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Désactivée STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Tous les mois STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Tous les 3 mois STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Tous les 6 mois STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Tous les 12 mois +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Langue STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Sélectionner la langue à utiliser pour l'interface @@ -955,9 +956,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format de la copie d'écran -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Choisir le format graphique de la copie d'écran - 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} @@ -1071,7 +1069,9 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Paramètre de j STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Paramètre de compagnie (enregistré dans les sauvegardes{NBSP}; affecte uniquement les nouvelles parties) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Paramètre de compagnie (enregistré dans la sauvegarde{NBSP}; affecte uniquement la compagnie actuelle) -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restreint la liste ci-dessous en ne montrant que les paramètres modifiés +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Catégorie{NBSP}: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type{NBSP}: +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restreint la liste ci-dessous en utilisant des filtres prédéfinis STR_CONFIG_SETTING_RESTRICT_BASIC :Options de base STR_CONFIG_SETTING_RESTRICT_ADVANCED :Options avancées STR_CONFIG_SETTING_RESTRICT_ALL :Paramètres expert / Tous les paramètres @@ -1085,6 +1085,10 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Paramètres de STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Paramètres de jeu (enregistrés dans les sauvegardes{NBSP}; affectent uniquement la partie actuelle) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Paramètres de compagnie (enregistrés dans les sauvegardes{NBSP}; affectent uniquement les nouvelles parties) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Paramètres de compagnie (enregistrés dans les sauvegardes{NBSP}; affectent uniquement la compagnie actuelle) +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Afficher tous les résultats de la recherche en définissant{}la {SILVER}catégorie {BLACK}sur {WHITE}{STRING} +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Afficher tous les résultats de la recherche en définissant{}le {SILVER}type {BLACK}sur {WHITE}tous les types +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Afficher tous les résultats de la recherche en définissant{}la{SILVER}catégorie {BLACK}sur {WHITE}{STRING} {BLACK}et le{SILVER} type {BLACK}sur {WHITE}tous les types +STR_CONFIG_SETTINGS_NONE :{WHITE}- Aucun - STR_CONFIG_SETTING_OFF :Désactivé STR_CONFIG_SETTING_ON :Activé @@ -1125,9 +1129,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activer/Désact STR_CONFIG_SETTING_CITY_APPROVAL :Attitude du conseil municipal envers la restructuration de la zone{NBSP}: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Définit comment le bruit et les dommages environnementaux des compagnies affectent leur réputation et leurs prochaines actions de constructions dans la zone -STR_CONFIG_SETTING_BUILDONSLOPES :Construction côtière et sur pentes{NBSP}: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Si activé, les voies et les stations peuvent être construites sur la plupart des pentes. Si désactivé, elles sont autorisées uniquement sur les pentes correspondant à la direction de la voie et ne requérant pas de fondations. -STR_CONFIG_SETTING_AUTOSLOPE :Terrassement sous les bâtiments, voies, etc. (Autoslope){NBSP}: {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Terrassement sous les bâtiments, voies, etc.{NBSP}: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Autoriser le terrassement sous les bâtiments et les voies sans les retirer STR_CONFIG_SETTING_CATCHMENT :Autoriser des zones de desserte plus réalistes{NBSP}: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Les zones de desserte ont des tailles différentes selon les types de stations et d'aéroports @@ -1151,14 +1153,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Interdire aux t STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Les virages à 90° se produisent lorsqu'une voie horizontale est directement suivie par une voie verticale, impliquant que le train tourne de 90° en traversant la bordure de la case au lieu des 45° habituels pour les autres combinaisons de voies.{}S'applique également à la rotation des navires. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permettre de joindre des stations non adjacentes{NBSP}: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Autoriser l'ajout à une station de morceaux ne touchant pas directement les morceaux existants. Un Ctrl-clic est requis pour placer les nouveaux morceaux. -STR_CONFIG_SETTING_IMPROVEDLOAD :Utiliser l'algorithme amélioré de chargement{NBSP}: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Si activé, les différents véhicules attendant à une station sont chargés successivement. Le chargement du véhicule suivant démarre quand il y a assez de marchandises pour complètement remplir le premier véhicule. -STR_CONFIG_SETTING_GRADUAL_LOADING :Charger les véhicules graduellement{NBSP}: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Charger graduellement les véhicules en utilisant les durées de chargement spécifiques aux véhicules, au lieu de tout charger en une fois avec une durée fixe dépendant uniquement de la quantité de marchandises chargée. STR_CONFIG_SETTING_INFLATION :Inflation{NBSP}: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activer l'inflation dans l'économie, où les coûts augmentent légèrement plus vite que les revenus. -STR_CONFIG_SETTING_SELECTGOODS :Livrer la cargaison seulement sur demande{NBSP}: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Livrer la marchandise uniquement à une station où un véhicule prêt à la charger s'est arrêté. Cela permet d'éviter d'avoir une mauvaise qualité de service pour les marchandises qui ne sont pas prises en charge par la station. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longueur maximum des ponts{NBSP}: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Longueur maximum pour la construction des ponts STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longueur maximum des tunnels{NBSP}: {STRING} @@ -1186,8 +1182,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Endroit du quai STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :{G=f}queue STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :{G=m}milieu STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :{G=f}tête -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Mise en file des véhicules routiers (+ effets quantiques){NBSP}: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Les véhicules routiers attendront à l'entrée des arrêts occupés jusqu'à ce qu'ils ne le soient plus STR_CONFIG_SETTING_AUTOSCROLL :Faire défiler la vue quand le pointeur est au bord{NBSP}: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Si activé, les vues commenceront a défiler quand la souris sera proche des bords de la fenêtre STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Désactivé @@ -1218,10 +1212,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Autoriser les a STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Autoriser la construction des arrêts de bus sur les routes des municipalités STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Autoriser les arrêts de bus sur les routes des concurrents{NBSP}: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Autoriser la construction des arrêts de bus sur les routes d'autres compagnies -STR_CONFIG_SETTING_ADJACENT_STATIONS :Autoriser la construction de stations adjacentes{NBSP}: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Autoriser des stations différentes à se toucher -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Utiliser plusieurs NewGRF de véhicules{NBSP}: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Option de compatibilité pour les anciens NewGRFs. Ne pas désactiver, à moins de savoir exactement ce que vous faites{NBSP}! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Il n'est pas possible de modifier ce paramètre quand il y a des véhicules STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Entretien de l'infrastructure{NBSP}: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Si activé, les infrastructures entraineront des coût d'entretien. Le coût augmente proportionnellement à la taille du réseau, affectant les grosses compagnies plus que les petites @@ -1260,27 +1250,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Afficher la pop STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Épaisseur des lignes dans les graphiques{NBSP}: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Épaisseur de la ligne dans les graphiques. Une ligne fine est lisible plus précisément, une ligne épaisse est plus facile à voir et les couleurs sont plus facile à distinguer +STR_CONFIG_SETTING_LANDSCAPE :Paysage{NBSP}: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Les paysages définissent les scénarios de jouabilité classique avec différentes marchandises et exigences pour la croissance des villes. Les NewGRFs et les scripts de jeux autorisent cependant un contrôle plus fin STR_CONFIG_SETTING_LAND_GENERATOR :Générateur de terrain{NBSP}: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Le générateur original dépend des graphiques de base, et compose des zones de paysage fixes. TerraGenesis est un générateur basé sur le bruit de Perlin avec des paramètres de contrôle plus fins STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Type de terrain{NBSP}: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis only) Vallonnement du paysage +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densité des industries{NBSP}: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Définit combien d'industries doivent être générée et quel niveau doit être maintenu pendant la partie STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distance maximum depuis les bords pour les raffineries{NBSP}: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Les raffineries pétrolières ne sont construites que près du bord de la carte, ou sur la côte pour les cartes d'îles. STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altitude d'enneigement{NBSP}: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rugosité du terrain (TerraGenesis seulement){NBSP}: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Contrôle à quelle altitude la neige commence dans le climat sub-arctique.La neige affecte aussi la génération des industries et les exigences pour la croissance des villes +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rugosité du terrain{NBSP}: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choisir la fréquence des collines{NBSP}: Les paysages doux ont des collines moins nombreuses et plus éloignées. Les paysages rudes ont beaucoup de collines, ce qui peut sembler répétitif STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Très lisse STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Lisse STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rugueux STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Très rugueux +STR_CONFIG_SETTING_VARIETY :Distribution de variété{NBSP}: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(TerraGenesis seulement) Contrôle si la carte contient à la fois de la montagne et du terrain plat. Comme cela rend seulement la carte plus plate, les autres paramètres doivent être définis sur montagneux +STR_CONFIG_SETTING_RIVER_AMOUNT :Quantité de rivières{NBSP}: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Choisir combien de rivières générer STR_CONFIG_SETTING_TREE_PLACER :Algorithme de placement des arbres{NBSP}: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Choisir la distribution des arbres sur la carte{NBSP}: 'Original' répartit les arbres uniformément, 'Amélioré' les plante en groupes STR_CONFIG_SETTING_TREE_PLACER_NONE :Aucun STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Amélioré +STR_CONFIG_SETTING_ROAD_SIDE :Véhicules routiers{NBSP}: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Choisir le côté de circulation STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotation de la carte d'altitude{NBSP}: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Anti-horaire STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Horaire STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Le terrain d'un scénario plat a pour altitude{NBSP}: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Autoriser le terrassement sur les bords de la carte{NBSP}: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Si désactivé, les bords de la carte seront toujours de l'océan. STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Une ou plusieurs cases sur le bord Nord ne sont pas vides STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Une ou plusieurs cases sur l'un des bords ne sont pas de l'eau @@ -1301,7 +1305,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Défilement ré STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Contrôle comment la vue principale défile jusqu'à une position spécifique lors d'un clic sur la mini-carte ou pour atteindre un objet précis sur la carte. Si activé, la vue défile doucement, si désactivé elle saute directement à la cible STR_CONFIG_SETTING_MEASURE_TOOLTIP :Montrer une infobulle de mesure lors de l'utilisation de divers outils de construction{NBSP}: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Affiche les distances et les différences de hauteur lors des opérations de construction -STR_CONFIG_SETTING_LIVERIES :Affichage des livrées des compagnies{NBSP}: {STRING} +STR_CONFIG_SETTING_LIVERIES :Affichage des livrées spécifiques aux types de véhicules{NBSP}: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Contrôle l'utilisation des livrées spécifiques au type de véhicule (ou, au contraire, celles spécifiques à la compagnie) STR_CONFIG_SETTING_LIVERIES_NONE :Aucune STR_CONFIG_SETTING_LIVERIES_OWN :Propre compagnie @@ -1331,17 +1335,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Désactivé STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Défilement par clic gauche{NBSP}: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Active le défilement de la carte en la glissant avec le bouton gauche de la souris. C'est surtout utile pour les écrans tactiles +STR_CONFIG_SETTING_AUTOSAVE :Sauvegarde automatique{NBSP}: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Sélectionner l'intervalle de temps entre les sauvegardes automatiques + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Utiliser le format de date {STRING} pour le nom des sauvegardes STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Format de la date dans les noms des fichiers de sauvegarde STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :Long (31 Déc 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :Court (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Palette utilisée par défaut si non spécifiée par les NewGRFs{NBSP}: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Palette à utiliser par défaut pour les NewGRFs qui ne précisent pas laquelle il nécessite -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Palette par défaut (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Ancienne palette (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pause automatique en début de nouvelle partie{NBSP}: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Lorsqu'il est activé, la partie sera mise en pause automatiquement au démarrage, afin de permettre une étude approfondie de la carte STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Actions autorisées pendant la pause{NBSP}: {STRING} @@ -1350,7 +1352,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Aucune STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Toutes hors construction STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Toutes sauf celles modifiant le terrain STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Toutes -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Utiliser la liste de véhicules avancée{NBSP}: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Utiliser les groupes dans la liste de véhicules{NBSP}: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Active l'utilisation des listes de véhicule avancées pour grouper les véhicules STR_CONFIG_SETTING_LOADING_INDICATORS :Utiliser les indicateurs de chargement{NBSP}: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Choisir si les indicateurs de chargement doivent être affichés au dessus des véhicules qui chargent ou déchargent @@ -1365,7 +1367,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Type de rail à STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Premier disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Dernier disponible STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Le plus utilisé -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Afficher les voies réservées{NBSP}: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Afficher les réservations de chemin sur les voies{NBSP}: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Donne une couleur différente aux voies réservées pour aider à résoudre les problèmes de trains refusant d'entrer dans des blocs basés sur le chemin STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Conserver les outils de construction actifs après usage{NBSP}: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Garde les outils de construction de ponts, tunnels, etc. ouverts après usage @@ -1515,7 +1517,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Autoriser les v STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Autoriser la construction des passages à niveau par les villes{NBSP}: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Activer ce paramètre pour autoriser les villes à construire des passages à niveau STR_CONFIG_SETTING_NOISE_LEVEL :Permettre plus d'aéroports par ville, selon les nuisances sonores{NBSP}: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Avec ce paramètre désactivé, il peut y avoir deux aéroports dans chaque ville. Avec ce paramètre désactivé, le nombre d'aéroports dans une ville est limité par le bruit qu'elle accepte, celui-ci dépend de la population, de la taille de l'aéroport et de la distance +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Avec ce paramètre désactivé, il peut y avoir deux aéroports dans chaque ville. Avec ce paramètre activé, le nombre d'aéroports dans une ville est limité par le bruit qu'elle accepte, celui-ci dépend de la population, de la taille de l'aéroport et de la distance STR_CONFIG_SETTING_TOWN_FOUNDING :Fonder des villes en cours de jeu{NBSP}: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Activer ce paramètre permet aux joueurs de fonder de nouvelles villes dans la partie STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Interdit @@ -1563,8 +1565,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 sur {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Aucune STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicateur initial pour la taille des métropoles{NBSP}: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Taille moyenne des métropoles par rapport aux villes normales au début de la partie -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Retirer les éléments absurdes lors de la construction des routes{NBSP}: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Supprime les voies sans issues pendant la reconstruction routière financée STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Réactualiser le graphique de la distribution tous les {STRING} jour{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Intervalle entre la recalculation des liens du graphique. À chaque itération, une seule composante du graphique est recalculée. Donc, une valeur X pour ce réglage ne signifie pas que le graphique est réactualisé entièrement tous les X jours. Plus l'intervalle est court, plus de temps CPU est nécessaire pour la recalculation. Plus il est long, et plus de temps sera nécessaire pour que la distribution s'effectue sur de nouvelles routes. @@ -1580,7 +1580,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symétrique" s STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Type de distribution pour les cargaisons de classe ARMOURED{NBSP}: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :La classe de cargaison ARMOURED contient des biens de valeur dans les climats tempéré, des diamants dans le climat subtropical, et de l'or dans le climat subarctique. Les NewGRFs peuvent changer ça. "symétrique" signifie qu'autant de ces cargaisons iront d'une station A vers une station B, que de la station B vers la station A. "asymétrique" signifie qu'une quantité arbitraire de ces cargaisons peut être envoyée dans les deux directions. "manuel" signifie qu'aucune distribution n'est mise en place pour ces cargaisons. Il est conseillé de choisir "asymétrique" ou "manuel" dans le climat subarctique, car les banques n'enverront pas d'or en retour vers les mines d'or. Dans les climats tempéré et subtropical, on peut choisir aussi "symétrique", car les banques peuvent renvoyer en retour des biens de valeurs aux banques qui en envoient à l'origine. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Type de distribution pour les autres classes de cargaison{NBSP}: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"symétrique" signifie qu'autant de cargaison ira d'une station A vers une station B, que de la station B vers la station A. "asymétrique" signifie qu'une quantité arbitraire de cargaison peut être envoyée dans les deux directions. "manuel" signifie qu'aucune distribution n'est mise en place pour la cargaison. Le mieux ici est logiquement de choisir "asymétrique" ou "manuel". +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymétrique" signifie qu'une quantité arbitraire de cargaison peut être envoyée dans les deux directions. "manuel" signifie qu'aucune distribution n'est mise en place pour la cargaison. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Précision de la distribution{NBSP}: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Plus ce réglage est élevé, plus la réactualisation du graphique de distribution occupe de temps CPU. S'il est trop élevé, cela peut produire de la latence ("lag"). Au contraire, plus la valeur est basse, plus la distribution sera imprécise et l'on risque de voir des cargaisons ne pas aller vers la destination attendue. STR_CONFIG_SETTING_DEMAND_DISTANCE :Effet de la distance sur la demande{NBSP}: {STRING} @@ -1626,27 +1626,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Impérial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrique (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localisation -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphiques +STR_CONFIG_SETTING_SOUND :{ORANGE}Son +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Général +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Vues +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construction +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Informations / Annonces +STR_CONFIG_SETTING_COMPANY :{ORANGE}Compagnie +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Comptabilité STR_CONFIG_SETTING_VEHICLES :{ORANGE}Véhicules -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stations -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Économie -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribution des cargaisons -STR_CONFIG_SETTING_AI :{ORANGE}Compétiteurs -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Options d'affichage -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction -STR_CONFIG_SETTING_SOUND :{ORANGE}Effets sonores -STR_CONFIG_SETTING_NEWS :{ORANGE}Journaux et messages -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaux -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Gestion des cargaisons -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Intelligence artificielle -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Renouvellement automatique -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Entretien +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physique STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routage -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trains -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Villes -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitations +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Catastrophes / Accidents +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Création du terrain +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Environnement +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autorités +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Villes +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industries +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribution des marchandises +STR_CONFIG_SETTING_AI :{ORANGE}Compétiteurs +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Intelligence artificielle STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1803,6 +1805,7 @@ STR_LIVERY_FREIGHT_TRAM :Tramway pour fr STR_FACE_CAPTION :{WHITE}Sélection du visage STR_FACE_CANCEL_TOOLTIP :{BLACK}Annuler le choix du nouveau visage STR_FACE_OK_TOOLTIP :{BLACK}Valider le nouveau visage +STR_FACE_RANDOM :{BLACK}Nouvelle amorce STR_FACE_MALE_BUTTON :{BLACK}Homme STR_FACE_MALE_TOOLTIP :{BLACK}Choisir un visage masculin @@ -1923,13 +1926,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protége STR_NETWORK_START_SERVER_UNADVERTISED :Non STR_NETWORK_START_SERVER_ADVERTISED :Oui STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} client{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Nombre de clients max.{NBSP}: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Nombre de clients maximum{NBSP}: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Choisir un nombre maximum de clients. Tous les emplacements n'auront pas besoin d'être remplis STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} compagnie{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max. compagnies{NBSP}: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Nombre de compagnies maximum{NBSP}: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Limiter le serveur à un certain nombre de compagnies STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} spectateur{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max. spectateurs{NBSP}: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Nombre de spectateurs maximum{NBSP}: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Limiter le serveur à un certain nombre de spectateurs STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Langue utilisée{NBSP}: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Les autres joueurs sauront quelle langue est parlée sur ce serveur @@ -2663,6 +2666,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Sauvegar STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Sauvegarder la partie en cours avec le nom choisi STR_SAVELOAD_LOAD_BUTTON :{BLACK}Charger STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Charger la partie sélectionnée +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Charger la carte d'altitude sélectionnée STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Détails STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Pas d'informations disponibles STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}{NBSP}: {WHITE}{STRING} @@ -2681,10 +2685,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nb. d'in STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Alt. d'enneigement{NBSP}: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Augmenter l'altitude d'enneigement STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Baisser l'altitude d'enneigement -STR_MAPGEN_RANDOM_SEED :{BLACK}Amorce{NBSP}: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Cliquer pour saisir une amorce -STR_MAPGEN_RANDOM :{BLACK}Nouvelle amorce -STR_MAPGEN_RANDOM_HELP :{BLACK}Modifier l'amorce utilisée pour la création du terrain STR_MAPGEN_LAND_GENERATOR :{BLACK}Générateur{NBSP}: STR_MAPGEN_TREE_PLACER :{BLACK}Ajout des arbres{NBSP}: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Type de terrain{NBSP}: @@ -2711,7 +2711,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nom de l STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Taille{NBSP}: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM}{NBSP}×{NBSP}{NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Entrer une amorce STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Modifier l'altitude d'enneigement STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Modifier l'année de départ @@ -2766,6 +2765,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Monter STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Monter le module NewGRF sélectionné dans la liste{NBSP}: cela réduit son influence relative (certains de ses paramètres sont plus susceptibles d'être écrasés par ceux équivalents provenant de modules situés plus bas dans la liste) STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Descendre STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Descendre le module NewGRF sélectionné dans la liste{NBSP}: cela augmente son influence relative (certains de ses paramètres sont moins susceptibles d'être écrasés par ceux équivalents provenant de modules situés plus bas dans la liste) +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Mettre à jour +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Mettre à jour les NewGRFs pour lesquels vous avez une version installée plus récente STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Une liste des modules NewGRF installés STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Changer les paramètres @@ -2790,6 +2791,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Module cor STR_NEWGRF_SETTINGS_DISABLED :{RED}Désactivé STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible avec cette version d'OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Sauvegarder la présélection +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Liste des présélections disponibles, en sélectionner une pour la copier sous le nom de sauvegarde ci-dessous +STR_SAVE_PRESET_TITLE :{BLACK}Entrer un nom pour la présélection +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nom actuellement sélectionné pour la présélection à sauvegarder +STR_SAVE_PRESET_CANCEL :{BLACK}Annuler +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Ne pas modifier la présélection +STR_SAVE_PRESET_SAVE :{BLACK}Sauvegarder +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Sauvegarder la présélection sous le nom actuellement sélectionné + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Modifier les paramètres NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Fermer @@ -2877,6 +2888,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Modules ma STR_NEWGRF_BROKEN :{WHITE}Le comportement du NewGRF "{0:STRING}" peut provoquer des erreurs de synchronisation et/ou des plantages STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Il a modifié l'état de wagon motorisé pour "{1:ENGINE}" en dehors du dépôt STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Il a modifié la longueur de véhicule pour "{1:ENGINE}" en dehors du dépôt +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Il a changé la capacité pour '{1:ENGINE}' hors d'un dépôt ou d'un réaménagement STR_BROKEN_VEHICLE_LENGTH :{WHITE}Le train "{VEHICLE}" appartenant à "{COMPANY}" a une longueur invalide. Cela est probablement dû à des problèmes avec des NewGRFs, et peut provoquer des erreurs de synchronisation ou planter le jeu. STR_NEWGRF_BUGGY :{WHITE}Le module NewGRF "{0:STRING}" fournit une information incorrecte @@ -3290,12 +3302,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Véhicules rout STR_GROUP_DEFAULT_SHIPS :Navires non groupés STR_GROUP_DEFAULT_AIRCRAFTS :Aéronefs non groupés -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groupes - Cliquer sur un groupe pour lister tous les véhicules de ce groupe +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groupes - Cliquer sur un groupe pour lister tous les véhicules de ce groupe. Glisser et déposer les groupes pour les hiérarchiser. STR_GROUP_CREATE_TOOLTIP :{BLACK}Créer un groupe de véhicules STR_GROUP_DELETE_TOOLTIP :{BLACK}Supprimer le groupe sélectionné STR_GROUP_RENAME_TOOLTIP :{BLACK}Renommer le groupe sélectionné STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Cliquer pour protéger ce groupe contre l'auto-remplacement global +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Supprimer un groupe +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Êtes-vous sûr de vouloir supprimer ce groupe et ses descendants{NBSP}? + STR_GROUP_ADD_SHARED_VEHICLE :Ajouter des véhicules partagés STR_GROUP_REMOVE_ALL_VEHICLES :Retirer tous les véhicules @@ -3684,8 +3699,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Modifier STR_ORDER_REFIT :{BLACK}Réaménager STR_ORDER_REFIT_TOOLTIP :{BLACK}Choisir pour quelle cargaison réaménager avec cet ordre.{}Ctrl-clic pour retirer l'instruction de réaménagement. -STR_ORDER_REFIT_AUTO :{BLACK}Réaménagement automatique -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Sélectionner pour quel type de cargaison cet ordre va réaménager automatiquement.{}Ctrl-Clic pour retirer l'instruction de réaménagement. Le réaménagement automatique ne sera fait que si le véhicule l'autorise. +STR_ORDER_REFIT_AUTO :{BLACK}Réaménagement aux stations +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Sélectionner pour quel type de cargaison cet ordre va réaménager.{}Ctrl-Clic pour retirer l'instruction de réaménagement. Le réaménagement aux stations ne sera fait que si le véhicule l'autorise. STR_ORDER_DROP_REFIT_AUTO :Cargaison fixée STR_ORDER_DROP_REFIT_AUTO_ANY :Cargaison disponible @@ -3776,18 +3791,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Ne pas déchar STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Ne pas décharger et attendre pleine charge pour un seul type) STR_ORDER_NO_UNLOAD_NO_LOAD :(Ne pas décharger et ne pas charger) -STR_ORDER_AUTO_REFIT :(Réaménager automatiquement pour {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Charger complétement avec réaménagement automatique pour {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Charger complétement pour un seul type avec réaménagement automatique pour {STRING}) -STR_ORDER_UNLOAD_REFIT :(Décharger et charger avec réaménagement automatique pour {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Décharger et attendre pleine charge avec réaménagement automatique pour {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Décharger et attendre pleine charge pour un seul type avec réaménagement automatique pour {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transférer et charger avec réaménagement automatique pour {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transférer et attendre pleine charge avec réaménagement automatique pour {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transférer et attendre pleine charge pour un seul type avec réaménagement automatique pour {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Ne pas décharger et charger avec réaménagement automatique pour {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Ne pas décharger et attendre pleine charge avec réaménagement automatique pour {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Ne pas décharger et attendre pleine charge pour un seul type avec réaménagement automatique pour {STRING}) +STR_ORDER_AUTO_REFIT :(Réaménager pour {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Charger complétement avec réaménagement pour {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Charger complétement pour un seul type avec réaménagement pour {STRING}) +STR_ORDER_UNLOAD_REFIT :(Décharger et charger avec réaménagement pour {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Décharger et attendre pleine charge avec réaménagement pour {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Décharger et attendre pleine charge pour un seul type avec réaménagement pour {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transférer et charger avec réaménagement pour {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transférer et attendre pleine charge avec réaménagement pour {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transférer et attendre pleine charge pour un seul type avec réaménagement pour {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Ne pas décharger et charger avec réaménagement pour {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Ne pas décharger et attendre pleine charge avec réaménagement pour {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Ne pas décharger et attendre pleine charge pour un seul type avec réaménagement pour {STRING}) STR_ORDER_AUTO_REFIT_ANY :cargaison disponible @@ -3813,9 +3828,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Horaire STR_TIMETABLE_NO_TRAVEL :Pas de voyage STR_TIMETABLE_NOT_TIMETABLEABLE :Voyager (automatique{NBSP}; horaire au prochain ordre manuel) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Voyager (sans horaire) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Déplacement à {2:VELOCITY} max. (non planifié) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Voyager (non planifié) à {2:VELOCITY} max. STR_TIMETABLE_TRAVEL_FOR :Voyager pendant {STRING} -STR_TIMETABLE_TRAVEL_FOR_SPEED :Déplacement de {STRING} à {VELOCITY} max. +STR_TIMETABLE_TRAVEL_FOR_SPEED :Voyager pendant {STRING} à {VELOCITY} max. +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Voyager (pendant {STRING}, non planifié) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Voyager (pendant {STRING}, non planifié) à {VELOCITY} max. +STR_TIMETABLE_STAY_FOR_ESTIMATED :(rester pendant {STRING}, non planifié) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(voyager pendant {STRING}, non planifié) STR_TIMETABLE_STAY_FOR :et rester pendant {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :et voyager pendant {STRING} STR_TIMETABLE_DAYS :{COMMA} jour{P "" s} @@ -4269,6 +4288,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... il v STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Impossible de créer le groupe... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Impossible de supprimer ce groupe... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Impossible de renommer le groupe... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Impossible de définir le groupe parent... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Impossible de retirer tous les véhicules de ce groupe... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Impossible d'ajouter le véhicule à ce groupe... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Impossible d'ajouter les véhicules partagés à ce groupe... diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 4907830afd..d8f819f0dc 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -934,8 +934,8 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Seall a STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Toglaich sealladh a' mhapa-àirde STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Na seall seilbh nan companaidh air a' mhapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Seall a h-uile sealbh nan companaidh air a' mhapa -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Na seall carago sam bith air a' mhapa -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Seall na h-uile carago air a' mhapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Na seall carago sam bith air a’ mhapa +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Seall na h-uile carago air a’ mhapa # Status bar messages STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Seall am brath no aithisg naidheachd mu dheireadh @@ -1012,13 +1012,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}Tha {VEH STR_NEWS_SHIP_IS_WAITING :{WHITE}Tha {VEHICLE} a' feitheamh sa chala STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}Tha {VEHICLE} a' feitheamh sa hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Chan eil òrduighean gu leòr air a' chlàr-ama aig {VEHICLE} STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Tha òrdugh falamh aig {VEHICLE} STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Tha òrdugh dùbailte aig {VEHICLE} STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Tha stèisean mì-dhligheach sna h-òrduighean aig {VEHICLE} -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}Tha {VEHICLE} a' fàs aosta STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}Tha {VEHICLE} a' fàs glè aosta @@ -1156,9 +1154,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Fòrmat ghlacaidhean-sgrìn -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Tagh am fòrmat ghlacaidhean-sgrìn a chleachdas tu - 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 @@ -1288,9 +1283,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Roghainnean a' STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Roghainnean a' gheama (thèid an sàbhaladh leis a' gheama; gun bhuaidh ach air a' gheama seo) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Roghainnean na companaidh (thèid an sàbhaladh leis a' gheama; gun bhuaidh ach air geamannan ùra) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Roghainnean na companaidh (thèid an sàbhaladh leis a' gheama; gun bhuaidh ach air a' chompanaidh seo) -STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Seall na h-uile toradh luirg 's tu a' suidheachadh{}{SILVER}Roinn-seòrsa {BLACK}air {WHITE}{STRING} -STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Seall na h-uile toradh luirg 's tu a' suidheachadh{}{SILVER}Seòrsa {BLACK}air {WHITE}Gach seòrsa -STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Seall na h-uile toradh luirg 's tu a' suidheachadh{}{SILVER}Roinn-seòrsa {BLACK}air {WHITE}{STRING} {BLACK}agus {SILVER}Seòrsa {BLACK}air {WHITE}Gach seòrsa +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Seall na h-uile toradh luirg ’s tu a’ suidheachadh{}{SILVER}Roinn-seòrsa {BLACK}air {WHITE}{STRING} +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Seall na h-uile toradh luirg ’s tu a’ suidheachadh{}{SILVER}Seòrsa {BLACK}air {WHITE}Gach seòrsa +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Seall na h-uile toradh luirg ’s tu a’ suidheachadh{}{SILVER}Roinn-seòrsa {BLACK}air {WHITE}{STRING} {BLACK}agus {SILVER}Seòrsa {BLACK}air {WHITE}Gach seòrsa STR_CONFIG_SETTINGS_NONE :{WHITE}- Chan eil gin - STR_CONFIG_SETTING_OFF :Dheth @@ -1332,8 +1327,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toglaich dunaid STR_CONFIG_SETTING_CITY_APPROVAL :Beachdan comhairle a' bhaile air leasachadh raointean: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Tagh am meud dhe dh'fhuaim is milleadh na h-àrainneachd le companaidhean a tha a dhìth mus bi buaidh air luachadh a' bhaile is barrachd togail san sgìre -STR_CONFIG_SETTING_BUILDONSLOPES :Ceadaich gun tèid togail air slèibhtean is an oirthir: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ma tha seo air, faodar slighean is stèiseanan a thogail air a' mhòr chuid dhe shlèibhtean. Ma tha seo dheth, chan fhaodar an togail ach air slèibhtean leis an aon chomhair ’s a tha aig an t-slighe is aig nach eil feum air bonn togalaich STR_CONFIG_SETTING_AUTOSLOPE :Ceadaich atharrachadh crutha-tìre fo thogalaichean, slighean agus msaa. (fèin-sliabh): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ceadaich atharrachadh crutha-tìre fo thogalaichean is slighean gun a bhith gan toirt air falbh STR_CONFIG_SETTING_CATCHMENT :Ceadaich raointean tionail le meud a tha nas fhìor-riochdail: {STRING} @@ -1358,14 +1351,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Bac trèanaiche STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Tachraidh tionndadh 90 nuair a bhios slighe còmhnard is inghearach dìreach an dèidh càch a chèile, mar sin bhiodh trèan a' tionndadh le 90 ceum nuair a ruigeas i oir na leacaige an àite nan tionndaidhean àbhaisteach le 45 ceum aig co-cheanglaidhean shlighean eile. Tha seo fìor airson rèideas tionndaidh nan longan cuideachd STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Ceadaich aonadh aig stèiseanan nach eil dìreach ri taobh càch a chèile: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Ceadaich gun tèid pàirtean a chur ri stèisean nach eil dìreach ri taobh nam pàirtean a tha ann mu thràth. Feumaidh tu Ctrl+Briogadh a chleachdadh nuair a chuireas tu na pàirtean ùra ann -STR_CONFIG_SETTING_IMPROVEDLOAD :Cleachd algairim luchdaidh leasaichte: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ma tha seo air, thèid carbadan a bhios a' feitheamh aig stèisean a luchdadh an dèidh càch a chèile. Cha tòisich luchdadh an ath charbaid nuair a bhios carago gu leòr ann gus a' chiad charbad a lìonadh -STR_CONFIG_SETTING_GRADUAL_LOADING :Luchdaich carbadan beag air bheag: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Luchdaich carbadan beag air bheag is ùine an luchdaidh a' crochadh air seòrsa a' charbaid an àite a bhith a' luchdadh a h-uile rud aig an aon àm le ùine luchdaidh shuidhichte a tha a' crochadh air seòrsa a' charago a-mhàin STR_CONFIG_SETTING_INFLATION :Atmhorachd: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Cuir atmhorachd an comas san eaconamaidh is bidh cosgaisean a' dìreadh beagan nas luaithe na pàighidhean -STR_CONFIG_SETTING_SELECTGOODS :Na lìbhrig carago dha stèisean ach ma tha iarrtas ann: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Na lìbhrig carago dha stèisean ach ma chaidh iarraidh aig carbad a bhios a' luchdadh. Le seo, chan fhaigh thu rangachadh dona airson carago nach tèid a fhrithealadh aig an stèisean STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Faide as motha nan drochaidean: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Chan urrainn dhut drochaidean a thogail a tha nas fhaide na seo STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Faide as motha nan tunailean: {STRING} @@ -1393,8 +1380,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Tagh far an sta STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :toiseach STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :meadhan STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ceann thall -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Ciutha nan carbadan-rathaid (le èifeachdan quantum): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Thoir air carbad-rathaid stad air beulaibh stèiseanan rathaid sa bheil carbad eile gus am falbh am fear eile STR_CONFIG_SETTING_AUTOSCROLL :Panaich an uinneag nuair a bhios an luchag aig oir na sgrìn: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Nuair a bhios seo air, tòisichidh pùirt-seallaidh air sgroladh nuair a bhios an luchag faisg air oir na h-uinneige STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :À comas @@ -1425,10 +1410,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Ceadaich stèis STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Ceadaich gun tèid stèiseanan ri taobh an rathaid a thogail air rathaidean a bhuineas ri baile STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Ceadaich stèiseanan ri taobh an rathaid air rathaidean a bhuineas ri co-fharpaisiche: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Ceadaich gun tèid stèiseanan ri taobh an rathaid a thogail air rathaidean a bhuineas ri companaidh eile -STR_CONFIG_SETTING_ADJACENT_STATIONS :Ceadaich togail stèiseanan ri taobh càch a chèile: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Ceadaich gum bean stèiseanan eadar-dhealaichte ri chèile -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Cuir seataidhean iomadach NewGRF an comas: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Roghainn co-chòrdalachd airson NewGRFan seana. Na cuir seo à comas mura h-eil thu eòlach air na tha thu a' dèanamh! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Cha ghabh an roghainn seo atharrachadh nuair a bhios carbad ann STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Cumail suas a' bhun-structair: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Nuair a bhios seo air, bidh cumail suas a' bhun-structair a' cosg airgid. Fàsaidh na cosgaisean nas luaithe na meud an lìonraidh, mar sin bheir an roghainn seo barrachd buaidh air companaidhean mòra @@ -1486,8 +1467,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Cuairteachadh a STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Tuathal STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Deiseil STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Ìre na h-àirde a bhios aig mapa cnàmh-sgeòil rèidh: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Cuir cruth-tìre nan leacan ri crìochan a' mhapa an comas: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ma tha seo dheth, bidh crìochan a' mhapa nan cuantan an-còmhnaidh STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Tha co-dhiù aon leac aig oir a tuath nach eil falamh STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Tha co-dhiù aon leac aig oir nach eil na uisge @@ -1544,11 +1523,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :fada (31d Dùbh STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :goirid (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Pailead bunaiteach airson NewGRFan gun phailead aca fhèin: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Pailead dhathan bunasach a thèid a chleachdadh le NewGRFan nach sònraich dè am fear a tha a dhìth -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Pailead tùsail (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Pailead dìleabach (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Cuir geamannan air ùr-thòiseachadh nan stad gu fèin-obrachail: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Nuair a bhios seo air, stadaidh an geama gu fèin-obrachail nuair a thòisicheas tu geama ùr. Bheir seo cothrom dhut gus am mapa a sgrùdadh air do shocair STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Na tha ceadaichte nuair a bhios an geama na stad: {STRING} @@ -1770,8 +1744,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 a-mach à {CO STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Chan eil gin STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Iomadaichear meud nam bailtean aig an toiseach: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Am meud cuibheasach dhe mhòr-bhailtean an coimeas ri bailtean àbhaisteach aig toiseach a' gheama -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Thoir air falbh eileamaidean-rathaid gun chiall nuair a thèid rathaid a thogail: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Thoir cùil-dhùinte nan rathaidean air falbh nuair a thèid togail rathaidean a mhaoineachadh STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Ùraich graf an sgaoilidh gach {STRING} {P 0:2 latha latha làithean latha} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :An ùine eadar dà ath-àireamhachadh dhe ghraf nan ceangal. Àireamhaichidh gach ath-àireamhachadh na planaichean airson co-phàirt dhen ghraf. Is ciall dha seo nach tèid an graf air fad ùrachadh gach X latha nuair a bhios an luach seo suidhichte air X, ach nach tèid ach co-phàirt ath-àireamhachadh. Mar as giorra a shuidhicheas tu e, ’s ann nas motha dhe ùine an CPU a bhios a dhìth airson an àireamhachadh. Mar as fhaide a shuidhicheas tu e, ’s ann nas fhaide a bheir e gus an tòisich sgaoileadh a' charago air slighean ùra. @@ -1785,13 +1757,13 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :Is ciall dha STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Am modh sgaoilidh airson post: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :Is ciall dha “co-chothromach” gun tèid cha mhòr an aon uiread dhe phost a chur o stèisean A gu stèisean B ’s a thèid a chur o stèisean B gu stèisean A. Is ciall dha “neo-chothromach” gun tèid uiread air thuaiream dhe phost a chur dhan dà chomhair. Is ciall dha “a làimh” nach tèid sgaoileadh fèin-obrachail sam bith a dhèanamh airson post. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Am modh sgaoilidh airson an t-seòrsa carago ARMAILTE: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :Tha an seòrsa carago ARMAILTE a' gabhail a-steach seilbh fo gnàth-shìde mheasarra, daoimeanan fo gnàth-shìde fho-thropaigeach is òr fo gnàth-shìde fho-artach. Dh'fhaoidte gun atharraich NewGRF seo. Is ciall dha “co-chothromach” gun tèid cha mhòr an aon uiread dhe charago a chur o stèisean A gu stèisean B ’s a thèid a chur o stèisean B gu stèisean A. Is ciall dha “neo-chothromach” gun tèid uiread air thuaiream a chur dhan dà chomhair. Is ciall dha “a làimh” nach tèid sgaoileadh fèin-obrachail sam bith a dhèanamh airson a' charago ud. Cha chreid sinn nach eil thu airson seo a shuidheachadh air “neo-chothromach” no “a làimh” nuair a bhios tu a' cluich le cruth-tìre fo-artach on nach cuir bancaichean òr air ais gu mèinnean òir. Le cruth-tìre measarra no fo-thropaigeach, 's urrainn dhut “co-chothromach” a thaghadh cuideachd on a chuireas bancaichean seilbh air ais dhan bhanca eile. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :Tha an seòrsa carago ARMAILTE a’ gabhail a-steach seilbh fo gnàth-shìde mheasarra, daoimeanan fo gnàth-shìde fho-thropaigeach is òr fo gnàth-shìde fho-artach. Dh’fhaoidte gun atharraich NewGRF seo. Is ciall dha “co-chothromach” gun tèid cha mhòr an aon uiread dhe charago a chur o stèisean A gu stèisean B ’s a thèid a chur o stèisean B gu stèisean A. Is ciall dha “neo-chothromach” gun tèid uiread air thuaiream a chur dhan dà chomhair. Is ciall dha “a làimh” nach tèid sgaoileadh fèin-obrachail sam bith a dhèanamh airson a’ charago ud. Cha chreid sinn nach eil thu airson seo a shuidheachadh air “neo-chothromach” no “a làimh” nuair a bhios tu a’ cluich le cruth-tìre fo-artach on nach cuir bancaichean òr air ais gu mèinnean òir. Le cruth-tìre measarra no fo-thropaigeach, ’s urrainn dhut “co-chothromach” a thaghadh cuideachd on a chuireas bancaichean seilbh air ais dhan bhanca eile. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Am modh sgaoilidh airson seòrsaichean eile dhe charago: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :Is ciall dha “co-chothromach” gun tèid cha mhòr an aon uiread dhe charago a chur o stèisean A gu stèisean B ’s a thèid a chur o stèisean B gu stèisean A. Is ciall dha “neo-chothromach” gun tèid uiread air thuaiream a chur dhan dà chomhair. Is ciall dha “a làimh” nach tèid sgaoileadh fèin-obrachail sam bith a dhèanamh airson a' charago ud. Cha chreid sinn nach eil thu airson seo a shuidheachadh air “neo-chothromach” no “a làimh”. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :Is ciall dha “neo-chothromach” gun tèid uiread air thuaiream a chur dhan dà chomhair. Is ciall dha “a làimh” nach tèid sgaoileadh fèin-obrachail sam bith a dhèanamh airson a' charago ud. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Pongalachd an sgaoilidh: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Mar as àirde a shuidhicheas tu seo, ’s ann nas motha dhe dh'ùine CPU a bheir àireamhachadh air graf nan ceangal. Ma bhios seo a' toirt ro fhada, ’s dòcha gum mothaich thu dàil. Co-dhiù, ma shuidhicheas tu air luach ìseal e, cha bhi an sgaoileadh pongail is mothaichidh tu nach tèid carago a chur dhan àite an robh thu an dùil. STR_CONFIG_SETTING_DEMAND_DISTANCE :Am buaidh aig an t-astar air iarrtasan: {STRING} -STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Ma chuireas tu luach nas àirde na 0 ann, bidh buaidh aig an t-astar eadar an stèisean tùsail A aig carago air choireigin is stèisean cinn-uidhe B air a' mheud dhe charago a thèid a chur o A gu B. Mar as fhaide air falbh o B 's a tha A, 's ann as lugha dhe charago a thèid a chur. Mar as àirde a shuidhicheas tu an luach seo, 's ann as lugha dhe charago a thèid a chur gu stèiseanan a bhios fad air falbh agus 's ann as motha dhe charago a thèid a chur gu stèiseanan a tha faisg. +STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Ma chuireas tu luach nas àirde na 0 ann, bidh buaidh aig an t-astar eadar an stèisean tùsail A aig carago air choireigin is stèisean cinn-uidhe B air a’ mheud dhe charago a thèid a chur o A gu B. Mar as fhaide air falbh o B ’s a tha A, ’s ann as lugha dhe charago a thèid a chur. Mar as àirde a shuidhicheas tu an luach seo, ’s ann as lugha dhe charago a thèid a chur gu stèiseanan a bhios fad air falbh agus ’s ann as motha dhe charago a thèid a chur gu stèiseanan a tha faisg. STR_CONFIG_SETTING_DEMAND_SIZE :Na thèid a thilleadh dhe charago leis a' mhodh co-chothromach: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Ma shuidhicheas tu seo air nas lugha na 100%, bidh giùlan an sgaoilidh co-chothromaich nas coltaiche ris an sgaoileadh neo-chothromach. Cha tèid sparradh air an aon uiread dhe charago tilleadh ma tha uiread sònraichte dhe charago ga cur gu stèisean. Ma shuidhicheas tu seo air 0%, bidh an aon ghiùlan aig an dà chuid sgaoileadh co-chothromach is neo-chothromach. STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Lìonadh nan slighean giorra mus tèid slighean le mòran ruim a chleachdadh: {STRING} @@ -1833,27 +1805,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Impireil (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Meatrach (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Eadar-aghaidh STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Ionadaileadh -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Togail -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Carbadan -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stèiseanan -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Eaconamaidh -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Sgaoileadh carago -STR_CONFIG_SETTING_AI :{ORANGE}Co-farpaisichean -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Taisbeanadh -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Eadar-ghnìomh STR_CONFIG_SETTING_SOUND :{ORANGE}Èifeachdan fuaime -STR_CONFIG_SETTING_NEWS :{ORANGE}Naidheachdan is brathan -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Comharran -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Làimhseachadh carago -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Cluicheadairean coimpiutair -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Fèin-nuadhachadh -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Obair-ghlèidhidh +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Eadar-aghaidh +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Togail +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Carbadan STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Lorg shlighean -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trèanaichean -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Bailtean -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Gnìomhachasan +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bailtean +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Gnìomhachasan +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Sgaoileadh carago +STR_CONFIG_SETTING_AI :{ORANGE}Co-farpaisichean +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Cluicheadairean coimpiutair STR_CONFIG_SETTING_PATHFINDER_OPF :Tùsail STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2010,6 +1972,7 @@ STR_LIVERY_FREIGHT_TRAM :Trama carago STR_FACE_CAPTION :{WHITE}Taghadh aodainn STR_FACE_CANCEL_TOOLTIP :{BLACK}Sguir dhen taghadh aodainn ùir STR_FACE_OK_TOOLTIP :{BLACK}Gabh ris an taghadh aodainn ùir +STR_FACE_RANDOM :{BLACK}Cuir sìol air thuaiream STR_FACE_MALE_BUTTON :{BLACK}Fireannach STR_FACE_MALE_TOOLTIP :{BLACK}Tagh aodann fireannaich @@ -2897,6 +2860,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Sàbhail STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Sàbhail an geama làithreach leis an ainm a thagh thu STR_SAVELOAD_LOAD_BUTTON :{BLACK}Luchdaich STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Luchdaich an geama a thagh thu +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Luchdaich am mapa-àirde air a thaghadh STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Fiosrachadh a' gheama STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Chan eil fiosrachadh ri làimh STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2915,10 +2879,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Gnìomha STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Àirde na loidhne-shneachda: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Gluais an loidhne-shneachda suas aon cheum STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Gluais an loidhne-shneachda sìos aon cheum -STR_MAPGEN_RANDOM_SEED :{BLACK}Sìol air thuaiream: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Briog gus sìol air thuaiream a chur a-steach -STR_MAPGEN_RANDOM :{BLACK}Cuir sìol air thuaiream -STR_MAPGEN_RANDOM_HELP :{BLACK}Atharraich an sìol air thuaiream a thèid a chleachdadh gus cruth-tìre a ghintinn STR_MAPGEN_LAND_GENERATOR :{BLACK}Gineadair crutha-thìre: STR_MAPGEN_TREE_PLACER :{BLACK}Algairim chraobhan: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Seòrsa a' chrutha-thìre: @@ -2945,7 +2905,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ainm a' STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Meud: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Cuir a-steach sìol air thuaiream STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Atharraich àirde na loidhne-shneachda STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Atharraich am bliadhna-tòiseachaidh @@ -3111,7 +3070,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Tha faidhl STR_NEWGRF_BROKEN :{WHITE}Tha e coltach gun adhbharaich an NewGRF “{0:STRING}" dì-shioncronachadh is/no tuisleadh STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Dh'atharraich a staid a' charbaid-cumhachd airson “{1:ENGINE}" nuair nach robh e ann an trèan-lann STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Dh'atharraich e faide a' charbaid/na trèan airson “{1:ENGINE}" nuair nach robh e/i ann an garaids/trèan-lann -STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Dh'atharraich e tomhas-lìonaidh carbaid airson '{1:ENGINE}' fhad 's nach robh e ann an garaid, trèana-lann, cala no hangar no ga mhùthadh +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Dh’atharraich e tomhas-lìonaidh carbaid airson “{1:ENGINE}” fhad ’s nach robh e ann an garaid, trèana-lann, cala no hangar no ga mhùthadh STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tha faide mì-dhligheach aig an trèan “{VEHICLE}" le “{COMPANY}". Tha e coltach gu bheil duilgheadasan le NewGRF as coireach. Dh'fhaoidte gun dì-shioncronaich no gun tuislich an geama STR_NEWGRF_BUGGY :{WHITE}Tha an NewGRF “{0:STRING}" a' toirt seachad fiosrachadh mealltach @@ -3531,6 +3490,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Sguab à STR_GROUP_RENAME_TOOLTIP :{BLACK}Thoir ainm ùr air a' bhuidheann a thagh thu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Briog gus am buidheann seo a dhìon bhon fhèin-leasachadh uile-choitcheann +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Sguab am buidheann às +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}A bheil thu cinnteach gu bheil thu airson am buidheann seo ’s a shliochd a sguabadh às? + STR_GROUP_ADD_SHARED_VEHICLE :Cuir carbadan co-roinnte ris STR_GROUP_REMOVE_ALL_VEHICLES :Thoir a h-uile carbad air falbh @@ -4118,13 +4080,13 @@ STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}Nuair a STR_AI_DEBUG_MATCH_CASE :{BLACK}Aire do litrichean mòra is beaga STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}Toglaich an tèid aire a thoirt do litrichean mòra is beaga nuair a thèid teachdaireachdan loga an IF a choimeas ris an t-sreang brisidh STR_AI_DEBUG_CONTINUE :{BLACK}Lean air adhart -STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Cuir a' dol is lean air an IF +STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Cuir a’ dol is lean air an IF STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Seall às-chur dì-bhugaidh aig an IF seo STR_AI_GAME_SCRIPT :{BLACK}Sgriobt geama STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Thoir sùil air loga aig an sgriobt geama STR_ERROR_AI_NO_AI_FOUND :Cha deach IF freagarrach a lorg airson luchdadh.{}Seo IF caochaige nach dèan dad.{}’S urrainn dhut caochladh dhe IF luchdadh a-nuas leis an t-siostam “Susbaint air loidhne" -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Thuislich aon dhe na sgriobtan a bha a' ruith. Feuch an cuir thu aithisg dha ùghdar an sgriobt le glacadh-sgrìn dhen uinneag dì-bhugaidh aig an IF/sgriobt geama +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Thuislich aon dhe na sgriobtan a bha a’ ruith. Feuch an cuir thu aithisg dha ùghdar an sgriobt le glacadh-sgrìn dhen uinneag dì-bhugaidh aig an IF/sgriobt geama STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}Chan eil an uinneag dì-bhugaidh aig an IF/sgriobt geama ri làimh ach airson an fhrithealaiche # AI configuration window @@ -4216,7 +4178,7 @@ STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Ga shàb STR_ERROR_AUTOSAVE_FAILED :{WHITE}Dh’fhàillig leis an fhèin-shàbhaladh STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Cha ghabh an draibh leughadh STR_ERROR_GAME_SAVE_FAILED :{WHITE}Dh’fhàillig le sàbhaladh a’ gheama{}{STRING} -STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Cha ghabh sguabadh às dhan fhaidhle +STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Cha ghabh am faidhle sguabadh às STR_ERROR_GAME_LOAD_FAILED :{WHITE}Dh’fhàillig le luchdadh a’ gheama{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Mearachd taobh a-staigh: {STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Tha an geama air shàbhaladh briste - {STRING} @@ -4228,24 +4190,24 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE :Eaconamaidh->Bailtean STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Rathad ga ath-thogail -STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Cha ghabh sguabadh às dhan bhaile seo...{}Tha stèisean no port no garaids no trèan-lann no cala no hangar a' toirt iomradh air a' bhaile no tha leac ann a tha leis a' bhaile is nach gabh toirt air falbh +STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Cha ghabh am baile seo sguabadh às...{}Tha stèisean no port no garaids no trèan-lann no cala no hangar a' toirt iomradh air a' bhaile no tha leac ann a tha leis a' bhaile is nach gabh toirt air falbh STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... chan eil ionad freagarrach airson ìomhaigh ann am meadhan a' bhaile seo # Industry related errors @@ -4502,8 +4464,9 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... tha # Group related errors STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Cha ghabh am buidheann cruthachadh... -STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Cha ghabh sguabadh às dhan bhuidheann seo... +STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Cha ghabh am buidheann seo sguabadh às... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Cha ghabh ainm a' bhuidhinn atharrachadh... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Cha ghabh am buidheann pàraint a shuidheachadh... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Cha ghabh na h-uile carbad toirt air falbh bhon bhuidheann seo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Chan urrainn dhut an carbad seo a chur ris a' bhuidheann seo... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Chan urrainn dhut carbadan co-roinnte a chur ris a' bhuidheann... @@ -4577,7 +4540,7 @@ STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Tha an c STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Chan eil barrachd rum airson òrduighean ann STR_ERROR_TOO_MANY_ORDERS :{WHITE}Tha cus òrduighean ann STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}Cha ghabh òrdugh ùr cur a-steach... -STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Cha ghabh sguabadh às dhan òrdugh seo... +STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Cha ghabh an t-òrdugh seo sguabadh às... STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}Cha ghabh an t-òrdugh seo atharrachadh... STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Cha ghabh an t-òrdugh seo gluasad... STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Cha ghabh leum gearradh thar an òrduigh seo... @@ -4601,7 +4564,7 @@ STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Chan eil STR_ERROR_TOO_MANY_SIGNS :{WHITE}... tha cus sanasan ann STR_ERROR_CAN_T_PLACE_SIGN_HERE :{WHITE}Chan urrainn dhut sanas a chur an-seo... STR_ERROR_CAN_T_CHANGE_SIGN_NAME :{WHITE}Cha ghabh ainm an t-sanais atharrachadh... -STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Cha ghabh sguabadh às dhan t-sanas... +STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Cha ghabh an sanas sguabadh às... # Translatable comment for OpenTTD's desktop shortcut STR_DESKTOP_SHORTCUT_COMMENT :Geama saoghail mas-fhìor stèidhichte air Transport Tycoon Deluxe diff --git a/src/lang/galician.txt b/src/lang/galician.txt index c3892e4a26..ed103e9fca 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -811,13 +811,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} está a esperar no depósito STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} está a esperar no hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ten moi poucas ordes no programa STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ten unha orde nula STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ten ordes duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ten unha estación inválida nas súas ordes -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} está a volverse vello STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} está a volverse moi vello @@ -955,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formato capturas de pantalla -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selecciona o formato a empregar nas capturas de pantalla - 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} @@ -1125,8 +1120,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa os desas STR_CONFIG_SETTING_CITY_APPROVAL :Actitude das autoridades locáis cara a restruturacións de áreas: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolle ata que punto o ruido e danos medioambientais producidos polas compañias afectan á súa valoración municipal e ás próximas actividades construtivas na súa área -STR_CONFIG_SETTING_BUILDONSLOPES :Permiti-la construción en pendentes e costas: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Se está activado, as vías e estacións poden ser construidas na maioría das pendentes. Se se desactiva, só se permite a súa construción en pendentes coa mesma dirección STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificacións do terreo baixo edificios, vías, etc. (autopendente): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite modificar o terreo baixo edificacións e vías sen retiralos STR_CONFIG_SETTING_CATCHMENT :Permitir áreas de captación máis realistas: {STRING} @@ -1151,14 +1144,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Prohibir xiros STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Os xiros de 90 graos ocorren cando unha vía horizontal vai seguida directamente dun tramo vertical no cadro adxancete, facendo que o tren vire 90 graos cando pasa o límite do cadro en vez dos 45 graos habituais noutras combinacións de vías. Esto tamén se aplica ao radio de xiro dos barcos STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir a unión de estacións non adxacentes {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite engadir partes a unha estación sen que estén en contacto directo coas partes existente. Necesita facer Ctrl+Click ao colocar as partes novas -STR_CONFIG_SETTING_IMPROVEDLOAD :Usa-lo algoritmo de carga mellorado: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Se se activa, os múltiples vehículos esperando unha estación son cargados secuencialmente. Só se inicia a carga do vehículo seguinte se hai carga suficiente para encher completamente o primeiro vehículo -STR_CONFIG_SETTING_GRADUAL_LOADING :Cargar vehículos gradualmente: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Os vehículos cargan gradualmente usando os tempos de carga específicos de cada un, en vez de cargar todo dunha vez nun tempo fixado que dependa só da cantidade de produto cargado STR_CONFIG_SETTING_INFLATION :Inflación: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activa a inflación na economía, onde os custos medran sensibelmente máis rápido ca os pagos -STR_CONFIG_SETTING_SELECTGOODS :Descarga-la carga só cando haxa demanda: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Só se leva a carga ás estacións cando un vehículo o solicitara. Esto evita rendementos baixos para as cargas que non teñen servizo nunha estación STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Luz máxima das pontes: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :A máxima lonxitude das pontes STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Lonxitude máxima de túnel: {STRING} @@ -1186,8 +1173,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Lugar onde un t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :extremo cercano STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :medio STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :extremo lonxano -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Cola para vehículos de estrada (con efecto cuantificador): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Fai que os vehículos de carretera agarden fronte ás paradas ocupadas ata que quedan libres STR_CONFIG_SETTING_AUTOSCROLL :Desplaza-la fiestra cando o ratón esté no borde: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Cando se activa, a vista desprazarase cando o punteiro se achegue ao borde da ventá STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Descativado @@ -1218,10 +1203,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permiti-la cons STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite a construcción de estacións pasantes sobre as rúas propiedade da cidade STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir estacións pasantes sobre estradas propiedade dos competidores: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite a construción de estacións pasantes sobre estradas propiedade das outras compañías -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permiti-la construción de estacións contiguas: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permite que diferentes estacións poidan estar en contacto directo -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Activar múltiples sets NewGRF de vehículos: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opción de compatibilidade para NewGRFs antigos. Non desactives isto, salvo que saibas exactamente o que estás a facer! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Non é posíbel mudar esta opción cando hai vehículos STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mantemento de infraestrutura: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cando se activa, a infraestrutura provoca custos de mantemento. O custo aumenta sobre-proporcionadamente co tamaño da rede, e afecta máis ás compañías máis grandes cás pequenas @@ -1279,8 +1260,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotación do ma STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Antihorario STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Horario STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Nivel de altitude dun escenario plano: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Activa-lo terreo nos bordes do mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Se se desactiva, os bordes do mapa sempre serán océano STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Un ou máis cadros no borde Norte non están baleiros STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Un ou máis cadros nun dos bordes non é auga @@ -1337,9 +1316,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :longo (31 Dec 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curto (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paleta a empregar por defecto para NewGRFs que non especifican unha paleta: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Paleta a empregar por defecto para NewGRFs que non especifican a paleta que necesitan - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausar automáticamente ó comezo dunha nova partida: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Cando estea activado, a partida pausarase automaticamente ao comezo dun novo xogo, permitindo un estudo detallado do mapa STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Permitir {STRING} durante pausa @@ -1561,8 +1537,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 entre {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ningunha STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial do tamaño da cidade: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Relación entre o tamaño medio das cidades e o dos pobos ao inicio da partida -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Elimina-los elementos absurdos das estradas en construción: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Eliminar tramos de estrada sen saída durante a reconstrución financiada das estradas STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimétrica @@ -1612,27 +1586,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localización -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construción -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos -STR_CONFIG_SETTING_STATIONS :{ORANGE}Estacións -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economía -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribución da carga -STR_CONFIG_SETTING_AI :{ORANGE}Competidores -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Mostrar opcións -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interacción STR_CONFIG_SETTING_SOUND :{ORANGE}Efectos de son -STR_CONFIG_SETTING_NEWS :{ORANGE}Novas e mensaxes -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinais -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Xestión da carga -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Xogadores da computadora -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autorenovar -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}En servizo +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construción +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Encamiñamento -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trens -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Cidades -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución da carga +STR_CONFIG_SETTING_AI :{ORANGE}Competidores +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Xogadores da computadora STR_CONFIG_SETTING_PATHFINDER_OPF :Orixinal STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1789,6 +1753,7 @@ STR_LIVERY_FREIGHT_TRAM :Tranvía de car STR_FACE_CAPTION :{WHITE}Selección de cara STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancela-la selección dunha nova cara STR_FACE_OK_TOOLTIP :{BLACK}Acepta-la selección da nova cara +STR_FACE_RANDOM :{BLACK}Aleatorio STR_FACE_MALE_BUTTON :{BLACK}Home STR_FACE_MALE_TOOLTIP :{BLACK}Seleccionar caras masculinas @@ -2665,10 +2630,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nº de i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Cota de neve: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Subir a cota de neve unha altura STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Baixar a cota de neve unha altura -STR_MAPGEN_RANDOM_SEED :{BLACK}Semente aleatoria: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Pincha para introducir unha semente aleatoria -STR_MAPGEN_RANDOM :{BLACK}Aleatorio -STR_MAPGEN_RANDOM_HELP :{BLACK}Cambia-la semente aleatoria usada para a xeración de terreo STR_MAPGEN_LAND_GENERATOR :{BLACK}Xerador de terreo: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritmo para árbores: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreo: @@ -2695,7 +2656,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome do STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Introduce unha semente aleatoria STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar a altura da cota de neve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambia-lo ano de inicio @@ -3276,6 +3236,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Borrar o STR_GROUP_RENAME_TOOLTIP :{BLACK}Renomear o grupo seleccionado STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Pincha para protexer a este grupo da autosubstitución global + STR_GROUP_ADD_SHARED_VEHICLE :Engadir vehículos compartidos STR_GROUP_REMOVE_ALL_VEHICLES :Borrar tódolos vehículos diff --git a/src/lang/german.txt b/src/lang/german.txt index 885d3b7d69..f437578329 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -811,13 +811,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} wartet im Depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} wartet im Hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} hat zu wenige Aufträge STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} hat einen ungültigen Auftrag STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} hat Ziele mehrfach im Fahrplan STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} hat eine ungültige Station im Fahrplan -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} hat in den Aufträgen einen Flughafen mit zu kurzer Landebahn STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} wird alt STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} wird sehr alt @@ -939,11 +938,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Katalanisch STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autosicherung STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Abstand zwischen den automatischen Spielesicherungen wählen +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Aus STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Jeden Monat STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Alle 3 Monate STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Alle 6 Monate STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Alle 12 Monate +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Sprache STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Sprache für die Spieloberfläche auswählen @@ -955,9 +956,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Screenshotformat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Format auswählen, in dem Screenshots abgespeichert werden sollen - 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} @@ -1073,7 +1071,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Firmen-Einstell STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategorie: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Art: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Beschränkt die Liste auf geänderte Einstellungen +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Vordefinierte Filter auf die untenstehende Liste anwenden STR_CONFIG_SETTING_RESTRICT_BASIC :Grundlegende Einstellungen STR_CONFIG_SETTING_RESTRICT_ADVANCED :Erweiterte Einstellungen STR_CONFIG_SETTING_RESTRICT_ALL :Alle Einstellungen @@ -1128,11 +1126,9 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Zügen das Umdr STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Falls aktiv, werden Züge in Durchgangsbahnhöfen nicht umdrehen, auch wenn ein kürzerer Pfad zum nächsten Zielbahnhof mittels Umdrehen verfügbar ist STR_CONFIG_SETTING_DISASTERS :Katastrophen: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ein- oder Ausschalten von Katastrophen, durch die gelegentlich Fahrzeuge oder Infrastruktur blockiert oder zerstört werden können -STR_CONFIG_SETTING_CITY_APPROVAL :Toleranz der Stadtverwaltung bei Landschaftsumgestaltungen: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :Toleranz der Stadtverwaltung gegenüber Landschaftsumgestaltungen: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Auswählen, wie stark Lärm und Umweltschäden die Stadtbewertung einer Firma sinken lassen. Bei einer zu schlechten Bewertung werden dann in dieser Stadt keine Bauvorhaben mehr genehmigt -STR_CONFIG_SETTING_BUILDONSLOPES :Das Bauen an Hängen und Küsten erlauben: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Falls aktiviert, können Transportwege und Stationen an die meisten Hänge gebaut werden. Falls deaktiviert, dürfen sie nur dann an einen Hang gebaut werden, wenn dafür keine Fundamente errichtet werden müssen STR_CONFIG_SETTING_AUTOSLOPE :Landschaftsbau unter Gebäuden, Gleisen, usw. erlauben: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaube Erdbauarbeiten unter Gebäuden oder Infrastruktur ohne sie zu entfernen STR_CONFIG_SETTING_CATCHMENT :Verschiedene Stationstypen haben unterschiedlich große Einzugsgebiete: {STRING} @@ -1157,14 +1153,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zügen und Schi STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-Grad-Kurven entstehen, wenn horizontale Streckenabschnitte unmittelbar auf vertikale Strecken im angrenzenden Feld folgen, so dass der Zug an Stelle der üblichen 45° um eine 90°-Kurve fahren muss. Dies bezieht sich auch auf den Wenderadius von Schiffen STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Erlaube, nicht direkt benachbarte Stationen zu verbinden: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Erlaube den Bau von Stationsteilen, die nicht unmittelbar an andere Stationsfelder angrenzen. Nutze Strg+Klick, um diese mit einer existierenden Station zu verbinden. -STR_CONFIG_SETTING_IMPROVEDLOAD :Verbessertes Beladeverfahren nutzen: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Belade Fahrzeuge nacheinander, wenn mehrere Fahrzeuge an einer Station auf Ladung warten. Das Beladen des zweiten Fahrzeugs wird nur dann vorgenommen, wenn genügend Fracht vorhanden ist, um das erste Fahrzeug komplett zu beladen -STR_CONFIG_SETTING_GRADUAL_LOADING :Fahrzeuge schrittweise beladen: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Lade Fahrzeuge schrittweise unter Nutzung der fahrzeugspezifischen Ladezeiten, anstatt alles auf einmal zu festgelegten Zeiten, die nur von der Frachtmenge abhängen, zu laden. STR_CONFIG_SETTING_INFLATION :Inflation: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Inflation einschalten. Beim Spielen mit Inflation steigen die Kosten geringfügig schneller als die Transporteinnahmen -STR_CONFIG_SETTING_SELECTGOODS :Stationen werden nur mit Fracht beliefert, wenn ein Fahrzeug sie von dort abholt: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Liefere nur Fracht an Stationen, wenn sie dort auch nachgefragt wird. Dies verhindert schlechte Bewertungen für nicht bediente Frachtarten STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximallänge für Brücken: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximale Länge für Brücken STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximallänge für Tunnel: {STRING} @@ -1192,8 +1182,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Die Position, a STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :am Anfang STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :in der Mitte STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :am Ende -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Fahrzeugwarteschlange (mit Überlagerung): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Lässt Straßenfahrzeuge so lange vor einer besetzten Haltestelle warten, bis sie frei wird STR_CONFIG_SETTING_AUTOSCROLL :Spielfeld scrollen, wenn die Maus am Bildrand anstößt: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Falls aktiv wird der Kartenausschnit scrollen, wenn die Maus nahe dem Fensterrand ist STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Ausgeschaltet @@ -1224,10 +1212,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Bus- und Lkw-Ha STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Erlaubt die Errichtung von Bus- und Lkw-Haltestellen auf städtischen Straßen STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Bus- und Lkw-Haltestellen auf Straßen von Mitbewerbern erlauben: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Erlaube die Errichtung von Bus- und Lkw-Haltestellen auf Straßen, die Mitbewerbern gehören -STR_CONFIG_SETTING_ADJACENT_STATIONS :Bau angrenzender Stationen erlauben: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Den Bau von aneinandergrenzenden Stationen erlauben -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Mehrere NewGRF-Fahrzeugsets erlauben: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompatibilitätseinstellung für veraltete NewGRFs. NICHT deaktivieren, wenn der Einfluss dieser Einstellung nicht genau bekannt ist! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Diese Einstellung kann nicht geändert werden solange Fahrzeuge im Spiel sind STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Instandhaltung der Infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Unterhaltskosten für Infrastruktur einschalten. Die Unterhaltskosten wachsen mit zunehmender Netzwerkgröße überproportional an, so dass sie größere Firmen stärker belasten als kleinere @@ -1266,27 +1250,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Zeige die Einwo STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Linienstärke in Diagrammen: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Strichdicke der Linien in Diagrammen. Dünnere Linien sind genauer ablesbar, dickere Linien sind besser sichtbar und erlauben es, Farben leichter zu unterscheiden +STR_CONFIG_SETTING_LANDSCAPE :Landschaftstyp: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landschaftstype definiert grundlegende Spielscenarien in Bezug auf verfügbare Fracht und Wachstumsvoraussetzungen für Städte. NewGRFs und Spielskripte erlauben weitgehendere Kontrolle dieser Parameter STR_CONFIG_SETTING_LAND_GENERATOR :Algorithmus zur Landschaftserzeugung: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Der orginale Generator hängt von den verwendeten Basisgrafiken ab und setzt vorgefertigte Landschaftsformen zusammen. terraGenesis ist ein auf Perlinrauschen basierter Generator mit erweiterten Einstellmöglichkeiten STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Landschaftstyp: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(nur TerraGenesis) Hügeligkeit der Landschaft +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industriedichte: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Wähle wieviele Industrien generiert werden sollen und welche Anzahl während des Spiels angestrebt wird zu erhalten STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximalabstand vom Kartenrand für Ölraffinerien: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Ölraffinerien werden nur in der Nähe des Kartenrands gebaut, bei inselreichen Karten nahe der Küste STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Schneegrenze auf: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rauheit (nur TerraGenesis): {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Wähle die Höhe der Schneefallgrenze im subarktischen Klima. Schnee beeinflusst auch die Platzierung von Industrien und Voraussetzungen für Städtewachstum +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rauheit des Geländes: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(nur TerraGenesis) Wähle die Häufigkeit von Hügeln: Rollende Landschaften haben wenige, weit verteilte Hügel. Zerklüftete Landschaften haben viele Hügel, was wiederum sich wiederholend aussehen kann STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Sehr eben STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Eben -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rau -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Sehr rau +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :zerklüftet +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Sehr zerklüftet +STR_CONFIG_SETTING_VARIETY :Größe der Geländeformen: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(nur TerraGenesis) Beinflusst, ob die Karte sowohl bergige als auch ebene Gegenden enthält. Weil dieses die Karte nur ebener macht, sollten andere Einstellungen auf bergig gesetzt werden +STR_CONFIG_SETTING_RIVER_AMOUNT :Anzahl Flüsse: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Wähle die Anzahl zu erzeugender Flüsse STR_CONFIG_SETTING_TREE_PLACER :Algorithmus zur Baumplatzierung: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Wähle die Verteilung der Bäume auf der Karte: 'Original' pflanzt die Bäume gleichmäßig verteilt, 'Verbessert' pflanzt sie in Gruppen STR_CONFIG_SETTING_TREE_PLACER_NONE :Keiner STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Verbessert +STR_CONFIG_SETTING_ROAD_SIDE :Straßenfahrzeuge: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Die Seite des Straßenverkehrs auswählen STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Drehung der Reliefkarte: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Nach links STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Nach rechts STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Höhenstufe des Spielfeldes in einem flachen Szenario: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Landschaftsbau am Spielfeldrand erlauben: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Wenn aktiviert, können sowohl Wasser- als auch Landflächen am Kartenrand liegen. Ansonsten wird das Spielfeld am Rand immer von Wasser begrenzt. STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ein oder mehrere Felder am nördlichen Spielfeldrand sind nicht leer STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Eines oder mehrere Felder am Spielfeldrand sind nicht Wasser @@ -1337,17 +1335,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Aus STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrollen mit linker Maustaste: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Scrolle die Karte, indem mit der linken Maustaste gezogen wird. Dies ist besonders sinnvoll, wenn ein Touchscreen zum Scrollen genutzt wird +STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Wähle das Interval zwischen automatischen Speicherungen + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Verwende {STRING} Datumsformat beim Benennen der Spielstände STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Lege das Datumsformat für Spielstandsdateien fest STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :langes (25. Dez 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kurzes (25-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-25) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standard-Palette für NewGRFs, die keine Paletteninformationen angeben: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standardpalette für NewGRFs, die keine Palette definieren -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standardfarbpalette (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Veraltete Farbpalette (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatische Pause bei Spielstart: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Starte ein Spiel im Pausenmodus; dies erlaubt vor Spielstart, die Karte ausführlich zu betrachten. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Erlauben während angehaltenen Spiels: {STRING} @@ -1569,8 +1565,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 von {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :keine STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Größe von Großstädten bei Spielbeginn: {STRING}x STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Durchschnittliche Größe von Großstädten relativ zu normalen Städten bei Spielbeginn -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Entferne absurde Straßenteile während Straßenreparaturen: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Entferne Sackgassen, wenn Straßenbauarbeiten finanziert werden STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Neuberechnung der Warenverteilung alle: {STRING} Tag{P "" e} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Zeit zwischen zwei Neuberechnungen des Verteilungsgraphen. Jede Neuberechnung berechnet die Verteilungspläne für eine Komponente des Graphen. Das heißt dass ein Wert X für diese Einstellung nicht zu einer Neuberechnung der gesamten Verteilung alle X Tage führt, sofern es mehrere getrennte Komponenten gibt. Je kleiner der Wert, desto rechenaufwändiger ist die Berechnung. Je größer er ist, desto länger dauert es bis Änderungen an den Fahrplänen sich auf die Verteilung auswirken. @@ -1632,27 +1626,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisch (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Oberfläche STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisierung -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruktion +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafik +STR_CONFIG_SETTING_SOUND :{ORANGE}Sound +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Oberfläche +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Allgemein +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Kartenansichten +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruktion +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nachrichten und Hinweise +STR_CONFIG_SETTING_COMPANY :{ORANGE}Firma +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Finanzen STR_CONFIG_SETTING_VEHICLES :{ORANGE}Fahrzeuge -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stationen -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Wirtschaft -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Warenverteilung -STR_CONFIG_SETTING_AI :{ORANGE}Mitbewerber -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Darstellung -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaktion -STR_CONFIG_SETTING_SOUND :{ORANGE}Soundeffekte -STR_CONFIG_SETTING_NEWS :{ORANGE}Nachrichten -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signale -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Frachtbehandlung -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspieler -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatische Erneuerung -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Wartung +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physik STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Wegsuche -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Züge -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Städte -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrien +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Beschränkungen +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Unfälle und Katastrophen +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Spielfeld-Erzeugung +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Umgebung +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Öffentliche Verwaltungen +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Städte +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrien +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Warenverteilung +STR_CONFIG_SETTING_AI :{ORANGE}Mitbewerber +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspieler STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1805,7 @@ STR_LIVERY_FREIGHT_TRAM :Frachtstraßenb STR_FACE_CAPTION :{WHITE}Gesicht auswählen STR_FACE_CANCEL_TOOLTIP :{BLACK}Gesichtswahl abbrechen STR_FACE_OK_TOOLTIP :{BLACK}Gesichtswahl übernehmen +STR_FACE_RANDOM :{BLACK}Zufällig STR_FACE_MALE_BUTTON :{BLACK}Männlich STR_FACE_MALE_TOOLTIP :{BLACK}Wähle männliches Gesicht aus @@ -1929,13 +1926,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Ein Pass STR_NETWORK_START_SERVER_UNADVERTISED :Nein STR_NETWORK_START_SERVER_ADVERTISED :Ja STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} Teilnehmer -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max. Teilnehmeranzahl: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximale Teilnehmeranzahl: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Auswahl der maximal erlaubten Anzahl von Teilnehmern. Nicht alle Slots müssen belegt werden STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} Firm{P a en} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max. Firmenanzahl: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximale Firmenanzahl: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Begrenzt den Server auf eine bestimmte Anzahl an Firmen STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} Zuschauer -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max. Zuschaueranzahl: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximale Zuschaueranzahl: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Begrenzt den Server auf eine gewisse Anzahl an Zuschauern STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Gesprochene Sprache: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Damit andere Spieler wissen, welche Sprache auf diesem Server gesprochen wird @@ -2669,6 +2666,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Speicher STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Speichere das Spiel unter dem gewählten Namen STR_SAVELOAD_LOAD_BUTTON :{BLACK}Laden STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Ausgewählten Spielstand laden +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Ausgewähltes Höhenrelief laden STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Spielstand-Details STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Keine Informationen verfügbar STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2687,10 +2685,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Industri STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Schneegrenze: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Schneegrenze um eine Stufe erhöhen STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Schneegrenze um eine Stufe senken -STR_MAPGEN_RANDOM_SEED :{BLACK}Zufallsstartwert: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Zufallsstartwert eingeben -STR_MAPGEN_RANDOM :{BLACK}Zufällig -STR_MAPGEN_RANDOM_HELP :{BLACK}Ändere den Zufallsstartwert für die Landschaftsgenerierung STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Baumalgorithmus: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Landschaftstyp: @@ -2717,7 +2711,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Reliefka STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Größe: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Zufallsstartwert eingeben STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Höhe der Schneegrenze ändern STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Startjahr ändern @@ -2772,6 +2765,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Nach obe STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Die ausgewählte NewGRF-Datei in der Liste nach oben verschieben STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Nach unten STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Die ausgewählte NewGRF-Datei in der Liste nach unten verschieben +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Update +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}NewGRF-Dateien updaten für die eine neuere Version installiert ist STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Eine Liste der installierten NewGRF-Dateien STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Parameter setzen @@ -2796,6 +2791,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Zugehörig STR_NEWGRF_SETTINGS_DISABLED :{RED}Deaktiviert STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Nicht mit dieser Version von OpenTTD kompatibel +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Voreinstellung speichern +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Liste der verfügbaren Voreinstellungen. Eine wählen, um deren Namen zum Speichern auszuwählen +STR_SAVE_PRESET_TITLE :{BLACK}Namen der Voreinstellung eingeben +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Name, der zum Speichern der Voreinstellung verwendet wird +STR_SAVE_PRESET_CANCEL :{BLACK}Abbrechen +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Voreinstellung nicht ändern +STR_SAVE_PRESET_SAVE :{BLACK}Speichern +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Voreinstellung unter dem ausgewählten Namen speichern + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF Parameter ändern STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Schließen @@ -3303,6 +3308,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Ausgewä STR_GROUP_RENAME_TOOLTIP :{BLACK}Ausgewählte Gruppe umbenennen STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Diese Gruppe von der automatischen Fahrzeugersetzung ausschließen +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Gruppe löschen +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Sicher, dass diese Gruppe inklusive aller Untergruppen gelöscht werden soll? + STR_GROUP_ADD_SHARED_VEHICLE :Gemeinsame Fahrzeuge hinzufügen STR_GROUP_REMOVE_ALL_VEHICLES :Liste leeren @@ -3691,8 +3699,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Ändert STR_ORDER_REFIT :{BLACK}Umrüsten STR_ORDER_REFIT_TOOLTIP :{BLACK}Frachtart auswählen, auf die umgerüstet werden soll. Strg+Klick, um einen Umrüstungsauftrag wieder zu entfernen -STR_ORDER_REFIT_AUTO :{BLACK}Automatisches Umrüsten -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Auswählen, auf welche Frachtart automatisch umgerüstet wird. Strg+Klick um Auftrag zum Umrüsten zu entfernen. Automatisches Umrüsten wird vorgenommen, wenn das Fahrzeug es zuläßt. +STR_ORDER_REFIT_AUTO :{BLACK}Umrüstung im Bahnhof +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Auswählen, auf welche Frachtart umgerüstet wird. Strg+Klick um Auftrag zum Umrüsten zu entfernen. Umrüsten wird vorgenommen, wenn das Fahrzeug es zuläßt. STR_ORDER_DROP_REFIT_AUTO :Vorgegebene Fracht STR_ORDER_DROP_REFIT_AUTO_ANY :Verfügbare Fracht @@ -3783,18 +3791,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Nicht entladen STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Nicht entladen, aber voll beladen mit beliebiger Fracht) STR_ORDER_NO_UNLOAD_NO_LOAD :(Weder entladen noch beladen) -STR_ORDER_AUTO_REFIT :(Automatische Umrüstung auf {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Volladen mit automatischer Umrüstung auf {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Volladen einer Frachtart und automatischer Umrüstung auf {STRING}) -STR_ORDER_UNLOAD_REFIT :(Entladen und laden mit automatischer Umrüstung auf {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Umladen und warten auf volle Zuladung mit automatischer Umrüstung auf {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Entladen und warten auf volle Zuladung einer Frachtart mit automatischer Umrüstung auf {STRING}) -STR_ORDER_TRANSFER_REFIT :(Umladen und laden mit automatischer Umrüstung auf {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Umladen und warten auf volle Zuladung mit automatischer Umrüstung auf {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Umladen und warten auf volle Zuladung einer Frachtart mit automatischer Umrüstung auf {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Nicht entladen und laden mit automatischer Umrüstung auf {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nicht entladen und warten auf volle Zuladung mit automatischer Umrüstung auf {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nicht entladen und warten auf volle Zuladung einer Fracht mit automatischer Umrüstung auf {STRING}) +STR_ORDER_AUTO_REFIT :(Umrüstung auf {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Volladen mit Umrüstung auf {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Volladen einer Frachtart und Umrüstung auf {STRING}) +STR_ORDER_UNLOAD_REFIT :(Entladen und laden mit Umrüstung auf {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Umladen und warten auf volle Zuladung mit Umrüstung auf {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Entladen und warten auf volle Zuladung einer Frachtart mit Umrüstung auf {STRING}) +STR_ORDER_TRANSFER_REFIT :(Umladen und laden mit Umrüstung auf {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Umladen und warten auf volle Zuladung mit Umrüstung auf {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Umladen und warten auf volle Zuladung einer Frachtart mit Umrüstung auf {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Nicht entladen und laden mit Umrüstung auf {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nicht entladen und warten auf volle Zuladung mit Umrüstung auf {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nicht entladen und warten auf volle Zuladung einer Fracht mit Umrüstung auf {STRING}) STR_ORDER_AUTO_REFIT_ANY :verfügbare Fracht @@ -3820,9 +3828,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Fahrplan STR_TIMETABLE_NO_TRAVEL :Nicht unterwegs STR_TIMETABLE_NOT_TIMETABLEABLE :Unterwegs (automatisch; Fahrplan abhängig vom nächsten manuellen Auftrag) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Unterwegs (ohne Fahrplan) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Fahrt mit höchstens {2:VELOCITY} (ohne Fahrplan) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Fahrt (ohne Fahrplan) mit höchstens {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :{STRING} unterwegs STR_TIMETABLE_TRAVEL_FOR_SPEED :Fahrt zu {STRING} mit höchstens {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Fahre ({STRING}, ohne Fahrplan) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Fahre ({STRING}, ohne Fahrplan) mit höchstens {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(warte {STRING}, ohne Fahrplan) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(fahre {STRING}, ohne Fahrplan) STR_TIMETABLE_STAY_FOR :und {STRING} lang bleiben STR_TIMETABLE_AND_TRAVEL_FOR :und {STRING} lang unterwegs STR_TIMETABLE_DAYS :{COMMA} Tag{P "" e} @@ -4276,6 +4288,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ist STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Gruppe kann nicht erstellt werden... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Gruppe kann nicht gelöscht werden... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Gruppe kann nicht umbenannt werden... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Übergeordnete Gruppe kann nicht gesetzt werden... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Entfernen aller Fahrzeuge dieser Gruppe nicht möglich... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Fahrzeug kann nicht zu dieser Gruppe hinzugefügt werden... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Fahrzeuge mit gemeinsamen Fahrplan können nicht zur Gruppe hinzugefügt werden... diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 29b72bbd92..ca2916cf8f 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -897,13 +897,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}Το {VE STR_NEWS_SHIP_IS_WAITING :{WHITE}Το {VEHICLE} περιμένει στο ναυπήγειο STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}Το {VEHICLE} περιμένει στο υπόστεγο αεροσκαφών -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Το {VEHICLE} έχει πολύ λίγες εντολές στο πρόγραμμα STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Το {VEHICLE} έχει μη έγκυρη εντολή STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Το {VEHICLE} έχει διπλή εντολή STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Το {VEHICLE} έχει μη έγκυρο σταθμό στις εντολές του -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}Το {VEHICLE} αρχίζει να παλιώνει STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}Το {VEHICLE} ξεπερνά το όριο ηλικίας @@ -1041,9 +1039,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ανάλ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Διαλέξτε την ανάλυση της οθόνης που θέλετε STR_GAME_OPTIONS_RESOLUTION_OTHER :άλλη -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Τύπος αρχείου στιγμιότυπου οθόνης -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_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 ο α} @@ -1215,8 +1210,6 @@ STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Όταν είν STR_CONFIG_SETTING_DISASTERS :Καταστροφές: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL :Στάση δημοτικού συμβουλίου προς τον μετασχηματισμό της περιοχής: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES :Επιτρέπεται το κτίσιμο σε πλαγιές και ακτές: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Όταν είναι ενεργοποιημένο, οι σιδηροτροχιές και σταθμοί μπορούν να κτισθούν στις περισσότερες κλίσεις. Όταν είναι απενεργοποιημένο, επιτρέπονται μόνο όπου αντιστοιχούν στην κατεύθυνση της σιδηροτροχιάς και γι' αυτό δεν χρειάζονται θεμέλια STR_CONFIG_SETTING_AUTOSLOPE :Να επιτρέπεται η διαμόρφωση εδάφους κάτω από κτίρια, γραμμές, κλπ. (αυτόματη κλίση): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Επιτρέπεται η διαμόρφωση του εδάφους κάτω από κτίρια και σιδηροτροχιές χωρίς αυτά να αφαιρούνται STR_CONFIG_SETTING_CATCHMENT :Επιτρέπονται πιο ρεαλιστικά ταξινομημένες περιοχές συλλογής : {STRING} @@ -1241,14 +1234,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Απαγόρε STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Στροφές 90 μοιρών προκύπτουν όταν μια οριζόντια σιδηροτροχιά ακολουθείται από μια κάθετη στο επόμενο τετραγωνίδιο, κάνοντας το τραίνο να στρίψει κατά 90 μοίρες όταν αλλάζει τετραγωνίδιο, αντί για τις συνηθισμένες 45 μοίρες σε άλλους συνδυασμούς σιδηροτροχιών. Αυτό έχει επίσης εφαρμογή στην ακτίνα στροφής των πλοίων STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Να επιτρέπεται η συνένωση μη παρακείμενων σταθμών: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Επιτρέπεται η προσθήκη τμημάτων σε σταθμό χωρίς αυτά να αγγίζουν τα ήδη υπάρχοντα τμήματα. Χρειάζεται Ctrl+Κλικ κατά την τοποθέτηση των νέων τμημάτων -STR_CONFIG_SETTING_IMPROVEDLOAD :Χρησιμοποίηση βελτιωμένου αλγόριθμου φόρτωσης: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Όταν είναι ενεργό, τα οχήματα που περιμένουν σε ένα σταθμό φορτώνονται με τη σειρά. Η φόρτωση του επόμενου οχήματος αρχίζει μόνο όταν υπάρχει αρκετό φορτίο σε αναμονή ώστε να γεμίσει πλήρως το πρώτο όχημα -STR_CONFIG_SETTING_GRADUAL_LOADING :Φόρτωση οχημάτων σταδιακά: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Σταδιακή φόρτωση των οχημάτων χρησιμοποιώντας τους χρόνους φόρτωσής τους, αντί της φόρτωσης όλων δια μιας σε ορισμένο χρόνο που εξαρτάται μόνο από την ποσότητα του φορτίου που φορτώθηκε STR_CONFIG_SETTING_INFLATION :Πληθωρισμός: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ενεργοποίηση του πληθωρισμού στην οικονομία, όπου τα κόστη αυξάνονται ελάχιστα ταχύτερα από τις πληρωμές -STR_CONFIG_SETTING_SELECTGOODS :Παράδοση φορτίου σε σταθμό μόνο όταν υπάρχει ζήτηση: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Παραδίδονται σε σταθμό μόνο τα φορτία που ζητήθηκαν από όχημα που φορτώνει. Αυτό αποτρέπει τις χαμηλές αξιολογήσεις για φορτία που δεν εξυπηρετούνται από το σταθμό STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Μέγιστο μήκος γέφυρας: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Μέγιστο μήκος για κτίσιμο γεφυρών STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Μέγιστο μήκος σήραγγας: {STRING} @@ -1276,8 +1263,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Το προεπ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :κοντινό άκρο STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :στη μέση STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :μακρινό άκρο -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Ουρά οχημάτων (με κβαντικά εφέ): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Υποχρεώνεται το όχημα να περιμένει μπροστά από τις κατειλημμένες στάσεις μέχρι να ελευθερωθούν STR_CONFIG_SETTING_AUTOSCROLL :Μετακίνηση παραθύρου όταν το ποντίκι είναι στην άκρη: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Όταν είναι ενεργή, η εμφάνιση θα κυλά όταν το ποντίκι είναι κοντά στην άκρη του παραθύρου STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Απενεργοποιημένη @@ -1308,10 +1293,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Επιτρέπ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Επιτρέπεται η κατασκευή στάσεων πάνω σε δρόμους που είναι ιδιοκτησία των πόλεων STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Επιτρέπονται οι στάσεις σε δρόμους που ανήκουν σε ανταγωνιστές: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Επιτρέπεται η κατασκευή στάσεων πάνω σε δρόμους που ανοίκουν σε ανταγωνιστές -STR_CONFIG_SETTING_ADJACENT_STATIONS :Επιτρέπεται η κατασκευή παρακείμενων σταθμών: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Επιτρέπεται να ακουμπούν μεταξύ τους διαφορετικοί σταθμοί -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Επιτρέπεται η χρήση πολλαπλών μηχανών από τα NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Επιλογή συμβατότητας για παλιά NewGRF. Μην την απενεργοποιήσετε, εκτός αν ξέρετε καλά τι κάνετε! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Δεν είναι δυνατή η αλλαγή αυτής της ρύθμισης όταν υπάρχουν οχήματα. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Συντήρηση υποδομής: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Όταν είναι ενεργοποιημένη, οι υποδομές προκαλούν έξοδα συντήρησης. Το κόστος μεγαλώνει δυσανάλογα με το μέγεθος του δικτύου, επηρεάζοντας έτσι τις μεγάλες εταιρείες περισσότερο από τις μικρότερες @@ -1369,8 +1350,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Περιστρ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Αριστερόστροφη STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Δεξιόστροφη STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Το επίπεδο ύψους που παίρνει ένα σενάριο: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Επιτρέπεται η διαμόρφωση του εδάφους στις άκρες του χάρτη: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Όταν είναι απενεργοποιημένη, τα όρια του χάρτη θα είναι πάντα ωκεανός STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ένα ή περισσότερα τετραγωνίδια στην βόρεια άκρη δεν είναι κενά STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Ένα ή περισσότερα τετραγωνίδια σε μια από τις άκρες δεν είναι νερό @@ -1426,9 +1405,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :μακριά (3 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :σύντομη (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Η προεπιλεγμένη παλέτα για NewGRF δεν ορίζει ορθά παλέτα: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Η προκαθορισμένη παλέτα που θα χρησιμοποιείται για τα NewGRF που δεν έχουν ορίσει ποια χρειάζονται - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Αυτόματη παύση κατά την εκκίνηση ενός νέου παιχνιδιού: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Όταν είναι ενεργοποιημένο, τα νέα παιχνίδια ξεκινούν σε παύση αυτόματα, επιτρέποντας καλύτερη μελέτη του χάρτη STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Όταν το παιχνίδι είναι σε παύση επιτρέπονται: {STRING} @@ -1637,8 +1613,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 σε {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Καμία STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Αρχικός πολλαπλασιαστής μεγέθους πόλης: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Μέσο μέγεθος μεγάλων πόλεων σε σχέση με τις κανονικές στην αρχή του παιχνιδιού -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Να αφαιρούνται παράλογα στοιχεία δρόμων κατά την κατασκευή τους: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Αφαίρεση αδιέξοδων άκρων κατά την χρηματοδοτούμενη ανακατασκευή δρόμων STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :χειροκίνητη STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :μη συμμετρική @@ -1663,26 +1637,16 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Μονάδες STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Μετρικές (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Περιβάλλον Λειτουργίας STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Τοπικοποίηση -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Κατασκευή -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Οχήματα -STR_CONFIG_SETTING_STATIONS :{ORANGE}Σταθμοί -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Οικονομία -STR_CONFIG_SETTING_AI :{ORANGE}Ανταγωνιστές -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Επιλογές εμφάνισης -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Αλληλεπιδράσεις STR_CONFIG_SETTING_SOUND :{ORANGE}Ηχητικά εφέ -STR_CONFIG_SETTING_NEWS :{ORANGE}Νέα και μηνύματα -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Σηματοδότες -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Χειρισμός εμπορευμάτων -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Παίκτες υπολογιστή -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Αυτόματη ανανέωση -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Έλεγχος οχημάτων +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Περιβάλλον Λειτουργίας +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Κατασκευή +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Οχήματα STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Δρομολογήσεις -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Τρένα -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Πόλεις -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Βιομηχανίες +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Πόλεις +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Βιομηχανίες +STR_CONFIG_SETTING_AI :{ORANGE}Ανταγωνιστές +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Παίκτες υπολογιστή STR_CONFIG_SETTING_PATHFINDER_OPF :Αρχικό STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1838,6 +1802,7 @@ STR_LIVERY_FREIGHT_TRAM :Εμπορικ STR_FACE_CAPTION :{WHITE}Επιλογή Προσώπου STR_FACE_CANCEL_TOOLTIP :{BLACK}Ακύρωση επιλογής νέου προσώπου STR_FACE_OK_TOOLTIP :{BLACK}Αποδοχή νέου προσώπου +STR_FACE_RANDOM :{BLACK}Τυχαίος STR_FACE_MALE_BUTTON :{BLACK}Αρσενικό STR_FACE_MALE_TOOLTIP :{BLACK}Επιλογή αρσενικών προσώπων @@ -2709,10 +2674,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Αριθ STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Ύψος γραμμής χιονιού: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Μετακίνηση του ύψους της γραμμής χιονιού ένα πάνω STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Μετακίνηση του ύψους της γραμμής χιονιού ένα κάτω -STR_MAPGEN_RANDOM_SEED :{BLACK}Τυχαίος σπόρος: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Κάνετε κλικ για να δώσετε ένα σπόρο τυχαίας παραγωγής -STR_MAPGEN_RANDOM :{BLACK}Τυχαίος -STR_MAPGEN_RANDOM_HELP :{BLACK}Αλλαγή του σπόρου τυχαίας παραγωγής για την Δημιουργία Εδάφους STR_MAPGEN_LAND_GENERATOR :{BLACK}Δημιουργός εδάφους: STR_MAPGEN_TREE_PLACER :{BLACK}Αλγόριθμος δέντρων: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Τύπος εδάφους: @@ -2739,7 +2700,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Όνομ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Μέγεθος: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Δώστε έναν σπόρο τυχαίας παραγωγής STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Άλλαγη του ύψους της γράμμης χιονιού STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Αλλαγή έτους έναρξης @@ -3298,6 +3258,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Διαγ STR_GROUP_RENAME_TOOLTIP :{BLACK}Μετονομασία της επιλεγμένης ομάδας STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Κάντε κλικ για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση + STR_GROUP_ADD_SHARED_VEHICLE :Προσθήκη κοινόχρηστων οχημάτων STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεση όλων των οχημάτων diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 07b51597b4..90972780e8 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -824,13 +824,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}ממתינה במבדוק {VEHICLE} STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}ממתין בסככת המטוסים {VEHICLE} -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}ל{VEHICLE} חסר(ים) יעד(ים) במסלול הנסיעה של STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}ל{VEHICLE} יעד שאינו קיים עוד עבור STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}ל{VEHICLE} כפילות ברשימת היעדים של STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} יעד בלתי חוקי במסלול הנסיעה של -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}מתיישן {VEHICLE} STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}מתיישן מאוד {VEHICLE} @@ -968,9 +966,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}רזלו STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}בחר את רזולוציית המסך STR_GAME_OPTIONS_RESOLUTION_OTHER :אחר -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}פורמט עבור צילומי מסך -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}בחר את הפורמט של צילום המסך - 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 "" ו} @@ -1144,8 +1139,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :אפשר/מנע STR_CONFIG_SETTING_CITY_APPROVAL :יחס מועצת העיר כלפי שינוי מבנה אזורי: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :בחר באיזו מידה רעש ונזק סביבתי ע"י חברות משפיעים על הדירוג העירוני שלהן ופעולות בנייה עתידיות באזור -STR_CONFIG_SETTING_BUILDONSLOPES :אפשר לבנות על מידרונות וחופים: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :אם מאופשר, ניתן לבנות מסילות ותחנות על גבי רוב המדרונות. אם מבוטל, ניתן לבנות אותם רק על מדרונות המתאימים לכיוון המסילה וכך אינם דורשים יסודות STR_CONFIG_SETTING_AUTOSLOPE :{STRING} :'אפשר יצירת מילוי עפר תחת מבנים, פסי רכבת וכו STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :אפשר שינוי פני השטח מתחת לבניינים ולמסילות ללא הסרתם STR_CONFIG_SETTING_CATCHMENT :אפשר לאזורי אגירת מים להיראות יותר ריאליסטיים: {STRING} @@ -1170,14 +1163,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :אסור על STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :סיבוב של 90 מעלות מתרחש כאשר מסילה אנכית באה מיד אחרי מסילה אופקית במשבצת סמוכה, וכך מאלצת את הרכבת לבצע פנייה של 90 מעלות בעת חציית גבול המשבצות במקום פניית 45 הרגילה עבור צירופי מסילות אחרים. הנ"ל תקף גם לגבי רדיוס הסיבוב של אוניות STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :{STRING} :אפשר חיבור בין תחנות שאינן צמודות זו לזו STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :אפשר הוספת חלקים לתחנה מבלי לגעת ישירות בחלקים הקיימים. דורש קליק בצירוף לחיצה על מקש Ctrl בעת מיקום החלקים החדשים -STR_CONFIG_SETTING_IMPROVEDLOAD :השתמש באלגוריתם טעינה משופר: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :אם מאופר, מספר רכבים הממתינים בתחנה מוטענים בזה אחר זה. טעינת הרכב הבא מתחילה רק כאשר ממתין די מטען לצורך מילוי הרכב הראשון -STR_CONFIG_SETTING_GRADUAL_LOADING :טען כלי רכב בהדרגה: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :טען רכבים בהדרגה באמצעות זמני טעינה ייחודיים לכל רכב, במקום לטעון הכל בבת אחת עם פרק זמן קבוע התלוי רק בכמות המטען הטעונה STR_CONFIG_SETTING_INFLATION :אנפלציה: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :אפשר אינפלציה בכלכלה, כך שהעלויות עולות מעט מהר יותר מאשר התשלומים -STR_CONFIG_SETTING_SELECTGOODS :מסור סחורה לתחנה רק כאשר יש ביקוש: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :מסור מטען לתחנה רק אם התבקש ע"י כלי רכב טוען. זה מונע דירוגים רעים עבור מטענים אשר אינם מקבלים שירות בתחנה STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :אורך גשר מירבי: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :אורך מירבי לבניית גשרים STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :אורך מנהרה מירבי: {STRING} @@ -1205,8 +1192,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :מקום בו STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :קצה קרוב STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :אמצע STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :קצה רחוק -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING ::(כלי רכב ממתינים(עם אפקט קונט {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :גרום לרכבי כביש להמתין מול תחנות מלאות עד שהן מתפנות STR_CONFIG_SETTING_AUTOSCROLL :{STRING} :גלילת תצוגה בעת שסמן העכבר נמצא בסמוך לקצוות STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :כאשר מאופשר, חלונות תצוגה יתחילו לגלול כאשר העכבר קרוב לקצה החלון STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :מבוטל @@ -1237,10 +1222,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :{STRING} :אפ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :אפשר בנייה של תחנות "על הדרך" בכבישים בבעלות עיירות STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :אפשר נסיעה דרך תמרורי-עצירה על דרכים בבעלות מתחרים: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :אפשר בנייה של תחנות "על הדרך" בכבישים בבעלות חברות אחרות -STR_CONFIG_SETTING_ADJACENT_STATIONS :{STRING} :אפשר בניית תחנות בשכנות -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :אפשר לתחנות שונות לדעת זו בזו -STR_CONFIG_SETTING_DYNAMIC_ENGINES :אפשר מספר ערכות מנוע GRF חדשות: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :אפשרות תאימות עבור NewGRF-ים ישנים. אל תבטל/י אפשרות זו, אלא אם את/ה יודע/ת בדיוק מה את/ה עושה! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}שינוי הגדרה זו אינה אפשרית כאשר קיימים כלי רכב STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :תחזוקת תשתיות: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :כאשר מאופשר, תשתיות גורמות לעלויות תחזוקה. העלות גדלה באופן שהוא מעבר ליחסי לעומת גודל הרשת, וכך משפיע יותר על חברות גדולות מאשר על חברות קטנות @@ -1298,8 +1279,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :סיבוב מפ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :נגד כיוון השעון STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :בכיוון השעון STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :{STRING} :עומק הקרקע עבור מפה שטוחה -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :{STRING} :אפשר יצירת קרקע בשולי המפה -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :אם מבוטל, גבולות המפה תמיד יהיו אוקיינוס STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}לפחות משבצת אחת בקצה הצפוני אינה ריקה STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}לפחות משבצת אחת באחד הקצוות אינה מכוסה מים @@ -1356,11 +1335,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :ארוך (31 ב STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :קצר (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :לוח צבעים ברירת מחדל שיש להניח עבור NewGRF-ים אשר אינם מפרטים לוח צבעים: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :לוח צבעים ברירת מחדל לשימוש עבור NewGRF-ים אשר אינם מפרטים איזה לוח צבעים הם צריכים -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :לוח צבעים ברירת מחדל (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :לוח צבעים מיושן (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :עצור משחק אוטומטית אחרי התחלת משחק חדש: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :כאשר מאופשר, המשחק יושהה אוטומטית בעת התחלת משחק חדש, דבר המאפשר בחינה מדוקדקת יותר של המפה STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :כאשר המחשק מושהה הרשה: {STRING} @@ -1582,8 +1556,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 ב-{COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :ללא STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :{STRING} :מכפיל התחלתי של גודל העיירות STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :גודל ממוצע של ערים יחסית לעיירות רגילות בתחילת המשחק -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :הסר רכיבי-דרך לא הגיוניים במהלך בניית דרכים: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :הסר קצות כבישים ללא מוצא בעת סלילה מחדש ממומנת של כבישים STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :עדכן את הגרף מדי {STRING} {P 0:2 יום ימים} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :זמן לחישוב מחדש של גרף הקישור. כל חישוב מחדש מחשב את התכניות של פריט יחיד בגרף. כלומר, בהגדרה של ערך X אין הכרח שכל הגרף יתעדכן מדי X ימים. רק פריט ממנו יתעדכן. ערך קטן יותר דורש יותר זמן מעבד לחישוב. ערך גבוה קובע זמן ארוך יותר עד שחלוקת המטען מתחילה בנתיב חדש. @@ -1638,27 +1610,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :בריטית ( STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :מטרי (מטר) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (מטר) -STR_CONFIG_SETTING_GUI :{ORANGE}ממשק חזותי STR_CONFIG_SETTING_LOCALISATION :{ORANGE}הגדרות מיקום -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}בנייה -STR_CONFIG_SETTING_VEHICLES :{ORANGE}כלי תחבורה -STR_CONFIG_SETTING_STATIONS :{ORANGE}תחנות -STR_CONFIG_SETTING_ECONOMY :{ORANGE}כלכלה -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}התפלגות המטען -STR_CONFIG_SETTING_AI :{ORANGE}מתחרים -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}הצג הגדרות -STR_CONFIG_SETTING_INTERACTION :{ORANGE}אינטראקציה STR_CONFIG_SETTING_SOUND :{ORANGE}צלילים -STR_CONFIG_SETTING_NEWS :{ORANGE}חדשות והודעות -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}רמזורים -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}טיפול במטען -STR_CONFIG_SETTING_AI_NPC :{ORANGE}שחקני מחשב -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}חידוש אוטומטי -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}טיפולים +STR_CONFIG_SETTING_INTERFACE :{ORANGE}ממשק חזותי +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}בנייה +STR_CONFIG_SETTING_VEHICLES :{ORANGE}כלי תחבורה STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}ניתוב -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}רכבות -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}ערים -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}תעשיות +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}ערים +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}תעשיות +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}התפלגות המטען +STR_CONFIG_SETTING_AI :{ORANGE}מתחרים +STR_CONFIG_SETTING_AI_NPC :{ORANGE}שחקני מחשב STR_CONFIG_SETTING_PATHFINDER_OPF :מקורי STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1813,6 +1775,7 @@ STR_LIVERY_FREIGHT_TRAM :חשמלית מ STR_FACE_CAPTION :{WHITE}בחירת תווי פנים STR_FACE_CANCEL_TOOLTIP :{BLACK}בטל פנים חדשות STR_FACE_OK_TOOLTIP :{BLACK}אישור תווי פנים +STR_FACE_RANDOM :{BLACK}אקראית STR_FACE_MALE_BUTTON :{BLACK}גבר STR_FACE_MALE_TOOLTIP :{BLACK}בחר תווי פנים של גברים @@ -2676,10 +2639,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK} :מספ STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}גובה קו השלג STR_MAPGEN_SNOW_LINE_UP :{BLACK}הגבה את קו השלג STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}הנמך את קו השלג -STR_MAPGEN_RANDOM_SEED :{BLACK} :מספר אקראי -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}הכנס מספר אקראי כלשהוא -STR_MAPGEN_RANDOM :{BLACK}אקראית -STR_MAPGEN_RANDOM_HELP :{BLACK}בחר מספר אקראי שישמש בסיס ליצירת הקרקע STR_MAPGEN_LAND_GENERATOR :{BLACK} :יצירת קרקע STR_MAPGEN_TREE_PLACER :{BLACK}אלגוריתם העצים: STR_MAPGEN_TERRAIN_TYPE :{BLACK} :סוג הקרקע @@ -2706,7 +2665,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK} :שם STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}גודל: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} על {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}מספר אקראי STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}שנה את גובה קו השלג STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}שנה את שנת הפתיחה @@ -3276,6 +3234,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}מחק STR_GROUP_RENAME_TOOLTIP :{BLACK}שנה את שם הקבוצה STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}לחץ על מנת להגן על הכלים בקבוצה בפני החלפה אוטומטית + STR_GROUP_ADD_SHARED_VEHICLE :הוסף כלים STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כל הכלים מהקבוצה diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index e0e72dcd1e..0ccfa2a12e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -874,13 +874,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} a dokkban vár STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} a hangárban vár -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} menetrendje túl kevés utasításból áll STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} érvénytelen utasítással rendelkezik STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} duplikált utasítással rendelkezik STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} utasításai között nem létező állomás szerepel -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} utasításlistájában olyan reptér van, aminek túl rövid a kifutópályája STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} elöregedett STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} nagyon elöregedett @@ -1018,9 +1017,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Képmentés formátuma -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Képmentésekhez használandó formátum kiválasztása - 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 @@ -1136,7 +1132,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Vállalat beál STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategória: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Típus: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Leszűkíti a listát a módosított értékekkel rendelkező opciókra +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Leszűkíti a listát a megadott szűrők segítségével STR_CONFIG_SETTING_RESTRICT_BASIC :Alapbeállítások STR_CONFIG_SETTING_RESTRICT_ADVANCED :Haladó beállítások STR_CONFIG_SETTING_RESTRICT_ALL :Szakértő beállítások / minden beállítás @@ -1186,7 +1182,7 @@ STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Támogatott kap STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Építkezési költségek: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Építkezések és beszerzésk költségeinek szintje STR_CONFIG_SETTING_RECESSIONS :Gazdasági válságok: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Ha bekapcsolod, gazdasági válság fog kitörni néhány évente. A válság alatt az összes ipar jelentősen kevesebbet termel. (A válság végével a termelés vissza áll az eredeti szintre.) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Ha bekapcsolod, gazdasági válság fog kitörni néhány évente. A válság alatt az összes ipar jelentősen kevesebbet termel. (A válság végével a termelés visszaáll az eredeti szintre.) STR_CONFIG_SETTING_TRAIN_REVERSING :Vonatok állomáson történő megfordulásának tiltása: {STRING} STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Ha engedélyezve van, a vonatok nem fordulnak vissza egy (nem vég-) állomáson, még ha lenne egy rövidebb út is visszafordulva STR_CONFIG_SETTING_DISASTERS :Katasztrófák: {STRING} @@ -1194,8 +1190,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ha engedélyezv STR_CONFIG_SETTING_CITY_APPROVAL :Városi tanács hozzáállása a területének az átépítéséhez: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Válaszd ki, hogy mennyi zaj és környezeti kár okozása befolyásolja a cég megítélését egy városban, mely hatással van a cég további építési lehetőségeire a város területén belül -STR_CONFIG_SETTING_BUILDONSLOPES :Lejtőre és partokra építés: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Bekapcsolva utak, vasutak és állomások lejtőre is építhetőek. Kikapcsolva csak olyan lejtőre építhetőek, melyek megegyeznek a lejtő irányával és nem igényelnek egyéb létesítményeket STR_CONFIG_SETTING_AUTOSLOPE :Épületek, vágányok stb. alatti tereprendezés engedélyezése: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tájrendezés engedélyezése épületek és utak alatt azok eltávolítása nélkül STR_CONFIG_SETTING_CATCHMENT :Élethűbben méretezett állomási vonzáskörzetek bekapcsolása: {STRING} @@ -1220,14 +1214,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Vonatok és haj STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 fokos kanyarok akkor fordulnak elő, ha egy vízszintes pályaelemet egy függőleges elem követ közvetlenül a következő mezőn, ami által a vonat egy 90 fokos kanyart tesz a szokásos 45 fokos helyett. Ez ugyanígy előfordulhat hajók esetében is STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Nem közvetlen szomszédos állomások egyesítése: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Állomásrészek hozzáadásának engedélyezése úgy, hogy az nem érinti közvetlenül a meglévő részeket. Ctrl+kattintás szükséges hozzá az új részek elhelyezése közben -STR_CONFIG_SETTING_IMPROVEDLOAD :Járművek egymás utáni telerakodása (egyidejű helyett): {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ha engedélyezett, az egyszerre az állomáson tartózkodó járművek egymás után kerülnek berakodásra. A következő jármű berakodása csak akkor kezdődik el, ha van elegendő áru az előző jármű teljes megtöltésére -STR_CONFIG_SETTING_GRADUAL_LOADING :Járművek fokozatos rakodása: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Járművek fokozatos rakodása meghatározott rakodási időkkel ahelyett, hogy minden egyszerre lenne berakodva egy adott ideig az áru mennyiségétől függően STR_CONFIG_SETTING_INFLATION :Infláció: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Infláció engedélyezése a gazdaságban, ahol a költségek jobban emelkednek, mint a bevételek -STR_CONFIG_SETTING_SELECTGOODS :Csak igény esetén kerüljön rakomány az állomásra: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Csak akkor kerül az állomásra az áru, ha arra igény van egy berakandó jármű által. Ez megelőzi a rossz értékelés kialakulását azokra az árufajtákra, amik nem kerülnek az állomáson kiszolgálásra STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Hidak maximális hossza: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Az építendő hidak maximális hossza STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Alagutak maximális hossza: {STRING} @@ -1255,8 +1243,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :A hely, ahol a STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :elején STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :közepén STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :távoli végén -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Közúti járművek sorbanállása: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Közúti járművek megállítása foglalt útszakasz előtt, míg az fel nem szabadul STR_CONFIG_SETTING_AUTOSCROLL :Ablakmozgatás, ha az egér a képernyő szélén van: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Bekapcsolva görgetődik a látkép, ha az egér az ablak széléhez közel van STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :kikapcsolva @@ -1287,10 +1273,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Áthaladó meg STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Áthaladó megállóhelyek építésének engedélyezése települési tulajdonú utakon STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Áthaladó megállóhelyek engedélyezése ellenfél tulajdonában lévő utakon: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Áthaladó megállóhelyek építésének engedélyezése olyan utakon, melyek más vállalatok birtokában vannak -STR_CONFIG_SETTING_ADJACENT_STATIONS :Érintkező állomások építésének engedélyezése: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Különböző állomások érintkezésének engedélyezése -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Több NewGRF járműgarnitúra engedélyezése: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompatibilitási lehetőség régi NewGRF-ekhez. Ne kapcsold ki, ha nem tudod mit csinálsz! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}A beállítást nem lehet megváltoztatni, ha van használatban jármű STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Az infrastruktúra fenntartási költségének engedélyezése: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Bekapcsolva az infrastruktúrának fenntartási költsége van. A költség hatványozottan nő a hálózatnagysággal, nagyobb hatással a nagyobb vállalatokra mint a kisebbekre @@ -1348,8 +1330,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Magasságtérk STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Órairánnyal szemben STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Órairányban STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :A sík térképhez hozzáadandó magasság: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :A térkép határain lévő mezők tájrendezésének engedélyezése: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Kikapcsolva a térkép határain mindig óceán lesz STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Az északi határnál egy vagy több mező nem üres STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Az egyik határnál egy vagy több mező nem víz @@ -1406,11 +1386,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :hosszú (31st D STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :rövid (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Alapértelmezett paletta NewGRF-eknek ha nincs meghatározva: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Alapértelmezett paletta, melyet a NewGRF-ek használnak amennyiben nincs meghatározva, hogy melyikre van szükségük -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Alapértelmezett (D) paletta -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Hagyományos (W) paletta - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatikus szünettel kezdés új játék esetén: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Bekapcsolva a játék szünettel kezdődik, időt hagyva a térkép közelebbi tanulmányozására STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Szünetben engedélyezett: {STRING} @@ -1632,8 +1607,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 a {COMMA}-bó STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :nincs STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kezdeti városméret-szorzó: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Átlagos városméret a normál településekhez képest a játék kezdetén -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Abszurd útrészletek automatikus eltávolítása útépítés közben: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Zsákutcák eltávolítása támogatott útfelújítások ideje alatt STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :A szétosztási gráf frissítése {STRING} naponként STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :A kapcsolati gráf egyes újraszámításai között eltelő idő. Minden számítás a gráf egy adott komponensére vonatkozik. Egy adott X beállítás esetén nem fog a teljes gráf X naponként frissülni, csak egy komponense. Minél rövidebb ez az idő, annál több CPU időre lesz szükség a számítás elvégzéséhez. Minél hosszabb ez az idő, annál több ideig fog tartani, mire a szétosztás megindul az új útvonalakon. @@ -1695,27 +1668,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Angolszász (l STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrikus (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Megjelenítés STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Honosítás -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Építkezés -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Járművek -STR_CONFIG_SETTING_STATIONS :{ORANGE}Állomások -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Gazdaság -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Rakományok szétosztása (úticélok) -STR_CONFIG_SETTING_AI :{ORANGE}Ellenfelek -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Megjelenítési beállítások -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Irányítás +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Megjelenés STR_CONFIG_SETTING_SOUND :{ORANGE}Hang effektek -STR_CONFIG_SETTING_NEWS :{ORANGE}Hírek és üzenetek -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Jelzők -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Rakomány kezelés -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Számítógép által vezérelt ellenfelek -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automata felújítás -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Javítás +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Felület +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Általános +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Nézet +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Építkezés +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Hírüzenetek / Figyelmeztetések +STR_CONFIG_SETTING_COMPANY :{ORANGE}Vállalat +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Pénzügyek +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Járművek +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Útvonalkeresés -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vonatok -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Települések -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Gazdasági épületek +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Korlátozások +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katasztrófák / Balesetek +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Térképgenerálás +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Környezet +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Önkormányzatok +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Települések +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Gazdasági épületek +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Rakományok szétosztása (úticélok) +STR_CONFIG_SETTING_AI :{ORANGE}Ellenfelek +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Számítógép által vezérelt ellenfelek STR_CONFIG_SETTING_PATHFINDER_OPF :Eredeti STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1872,6 +1847,7 @@ STR_LIVERY_FREIGHT_TRAM :Teherszállít STR_FACE_CAPTION :{WHITE}Arcválasztás STR_FACE_CANCEL_TOOLTIP :{BLACK}Új arc elvetése STR_FACE_OK_TOOLTIP :{BLACK}Új arc elfogadása +STR_FACE_RANDOM :{BLACK}Új véletlen alapszám STR_FACE_MALE_BUTTON :{BLACK}Férfi STR_FACE_MALE_TOOLTIP :{BLACK}Férfi arcok kiválasztása @@ -2503,7 +2479,7 @@ STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Talaj a STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Földterület megvétele későbbi használatra. Shift lenyomásával megmutatja a várható költséget # Object construction window -STR_OBJECT_BUILD_CAPTION :{WHITE}Objektum kiválaszás +STR_OBJECT_BUILD_CAPTION :{WHITE}Objektum kiválasztása STR_OBJECT_BUILD_TOOLTIP :{BLACK}Építendő objektum kiválasztása. Shift lenyomásával megmutatja a várható költséget STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Építendő objektum típusának kiválasztása STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Objektum előnézete @@ -2751,10 +2727,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Gazd. é STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hóhatár: STR_MAPGEN_SNOW_LINE_UP :{BLACK}A hóhatár megnövelése eggyel STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}A hóhatár csökkentése eggyel -STR_MAPGEN_RANDOM_SEED :{BLACK}Véletlen alapszám: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Kattints ide a véletlen alapszám beírásához -STR_MAPGEN_RANDOM :{BLACK}Új véletlen alapszám -STR_MAPGEN_RANDOM_HELP :{BLACK}Megváltoztatja a térképgenerálásnál használt véletlen alapszámot STR_MAPGEN_LAND_GENERATOR :{BLACK}Térkép generátor: STR_MAPGEN_TREE_PLACER :{BLACK}Fa algoritmus: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tereptípus: @@ -2781,7 +2753,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Magassá STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Méret: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Irj be egy tetszőleges számot STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Hóhatár megváltoztatása STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Kezdő év megváltoztatása @@ -3361,12 +3332,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Csoportosítatl STR_GROUP_DEFAULT_SHIPS :Csoportosítatlan hajók STR_GROUP_DEFAULT_AIRCRAFTS :Csoportosítatlan repülők -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Csoportok - Kattints a csoport nevére a járművek listázásához +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Csoportok - Kattints a csoport nevére a járművek listázásához. Húzással a csoportokat hierarchiába rendezheted. STR_GROUP_CREATE_TOOLTIP :{BLACK}Csoport létrehozásához kattints ide STR_GROUP_DELETE_TOOLTIP :{BLACK}Kijelölt csoport törlése STR_GROUP_RENAME_TOOLTIP :{BLACK}Kijelölt csoport átnevezése STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Csoport teljes listás automata csere alóli mentessége +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Csoport törlése +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Biztosan törölni akarod ezt a csoportot minden alcsoportjával együtt? + STR_GROUP_ADD_SHARED_VEHICLE :Megosztott jármű hozzáadása STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű eltávolítása @@ -3848,11 +3822,11 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Ki nem rakodá STR_ORDER_NO_UNLOAD_NO_LOAD :(Nincs ki- és berakodás) STR_ORDER_AUTO_REFIT :(Átalakítás {STRING} szállítására) -STR_ORDER_FULL_LOAD_REFIT :(Kirakodás, mindenből teljes berakodás és átalakítás {STRING} rakományra) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Kirakodás, bármiből teljes berakodás és átalakítás {STRING} rakományra) +STR_ORDER_FULL_LOAD_REFIT :(Mindenből teljes berakodás és átalakítás {STRING} rakományra) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Bármiből teljes berakodás és átalakítás {STRING} rakományra) STR_ORDER_UNLOAD_REFIT :(Kirakodás, rakományfelvétel és átalakítás {STRING} rakományra) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Ki nem rakodás, mindenből teljes berakodás és átalakítás {STRING} rakományra) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Ki nem rakodás, bármiből teljes berakodás és átalakítás {STRING} rakományra) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Kirakodás, mindenből teljes berakodás és átalakítás {STRING} rakományra) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Kirakodás, bármiből teljes berakodás és átalakítás {STRING} rakományra) STR_ORDER_TRANSFER_REFIT :(Elszállítás, rakományfelvétel és átalakítás {STRING} rakományra) STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Elszállítás, bármiből teljes berakodás és átalakítás {STRING} rakományra) STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Elszállítás, mindenből teljes berakodás és átalakítás {STRING} rakományra) @@ -3887,6 +3861,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Következő cé STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Menet {2:VELOCITY} max. sebességgel (nincs menetrend) STR_TIMETABLE_TRAVEL_FOR :Menetidő: {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Menetidő: {STRING} {VELOCITY} max. sebességgel +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Menet ({STRING}ig, időzítetlen) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Menet ({STRING}ig, időzítetlen) {VELOCITY} max. sebességgel +STR_TIMETABLE_STAY_FOR_ESTIMATED :(ottmarad {STRING}ig, időzítetlen) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :({STRING} utazás, időzítetlen) STR_TIMETABLE_STAY_FOR :állomásra és maradj ott {STRING}ig STR_TIMETABLE_AND_TRAVEL_FOR :és a menetidő: {STRING} STR_TIMETABLE_DAYS :{COMMA} nap @@ -4340,6 +4318,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... már STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Csoport létrehozás sikertelen... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Csoport törlése sikertelen... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Csoport átnevezése sikertelen... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Nem teheted ezt a csoportot a másik alcsoportjává... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Csoport járműveinek törlése sikertelen... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Jármű hozzáadása a csoporthoz sikertelen... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Megosztott jármű csoporthoz való hozzáadása sikertelen... @@ -4396,7 +4375,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Nem vál STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... jármű megsemmisült STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Egyáltalán nincsenek elérhető járművek -STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}NewGRF konfigurációd megváltoztatása +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Változtasd meg a NewGRF konfigurációdat! STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Még nincsenek elérhető járművek STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Indíts új játékot {DATE_SHORT} után, vagy használj olyan NewGRF-et, ami tartalmaz megfelelően korai járműveket! diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 2447e20db3..10c0684650 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -791,13 +791,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} bíður í þjónustumiðstöð STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} bíður í flugskýlinu -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} hefur of fáar skipanir á áætlun STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} hefur ógilda skipun STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} hefur endurteknar skipanir STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} hefur ógilda stöð í skipunum sínum -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} er tekinn að eldast STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} er tekinn að eldast mikið @@ -935,9 +933,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skjáupp STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Stilla skjáupplausn STR_GAME_OPTIONS_RESOLUTION_OTHER :annað -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Snið skjámynda -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Snið á skjámyndaskrám - 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} @@ -1105,8 +1100,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Kveikja eða sl STR_CONFIG_SETTING_CITY_APPROVAL :Viðhörf bæjaryfirvalda til endurskipulagningar: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Veldu hversu mikil áhrif hávaði og umhverfisspjöll frá fyrirtækjum hafa áhrif á mat bæja á fyrirtækinu og frekari framkvæmdir innan bæjarmarkanna -STR_CONFIG_SETTING_BUILDONSLOPES :Leyfilegt að byggja í halla og á strönd: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ef þessi stilling er virk er hægt að byggja spor og stöðvar í flestum brekkum. Ef hún er óvirk er það bara hægt í brekkum sem snúa í sömu átt og sporin og því þurfa þau engar undirstöður STR_CONFIG_SETTING_AUTOSLOPE :Leyfa landslagsbreytingar undir byggingum, sporum o.fl. (landfylling): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Leyfa mótun á landslagi undir byggingum og sporum án þess að þurfa að fjarlægja STR_CONFIG_SETTING_CATCHMENT :Raunverulegri stærð svæðis sem stöðvar ná yfir: {STRING} @@ -1131,14 +1124,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Banna lestum og STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 gráðu beygjur verða þegar lárétt spor liggja saman við lóðrétt spor, þannig að lestin beygir 90 gráður þegar hún fer milli reita í staðinn fyrir 45 gráður fyrir aðrar samsetningar spora. Þetta á einnig við um beygjuradíus skipa STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Leyfa sameiningu stöðva sem ekki tengjast á korti: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Gerir mögulegt að bæta við stöð án þess að reitirnir liggi saman. Það þarf að halda Ctrl+Smella þegar bætt er við stöðina -STR_CONFIG_SETTING_IMPROVEDLOAD :Nota endurbættan algóriþma við hleðslu: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ef þetta er virkt þá eru farartækin sem bíða á stöðinni hlaðinn eftir röð. Hleðsla á næsta farartæki byrjar aðeins þegar það bíður nógur farmur til að fylla fyrsta ökutækið -STR_CONFIG_SETTING_GRADUAL_LOADING :Ferma farartæki smám saman: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Smám saman hlaða farartækin eftir ákveðnum tíma sem miðast við hvert farartæki, í staðinn fyrir að hlaða öllu í einu á ákveðnum tíma sem miðast við magn farmsins STR_CONFIG_SETTING_INFLATION :Verðbólga: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Hafa verðbólgu, þá eykst kostnaður aðeins hraðar en greiðslur -STR_CONFIG_SETTING_SELECTGOODS :Aðeins afhlaða farmi á stöðvum þar sem er eftirspurn: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Aðeins afhlaða farm á stöðvar sem taka á móti fluttum farmi. Það kemur í veg fyrir að farmur fái slæma einkunn á stöð sem ekki tekur við viðkomandi farmi STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Hámarkslengd á brúm: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Hámarkslengd á brúm sem á að byggja STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Hámarkslengd á göngum: {STRING} @@ -1166,8 +1153,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Sjálfgefin sti STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :upphaf STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :miðju STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :enda -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Bifreiðir bíða í röð (með skömmtunaráhrifum): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Bílar verða að bíða fyrir aftan vegahindranir þar til þær hafa verið fjarlægðar STR_CONFIG_SETTING_AUTOSCROLL :Færa sjónarhorn þegar músin nálgast brún gluggans: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ef þessi stilling er virk þá færist landslagið til hliðar ef músin er við jaðra gluggans STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Óvirkt @@ -1198,10 +1183,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Leyfa stoppist STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Leyfa byggingu stoppistöðvar sem keyrt er í gegnum, á vegum í eigu bæja STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Leyfa stoppistöðvar sem keyrt er í gegnum, á vegum í eigu samkeppnisaðila: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Leyfa byggingu stoppistöðva sem keyrt er í gegnum, á vegum í eigu samkeppnisaðila -STR_CONFIG_SETTING_ADJACENT_STATIONS :Heimila sambyggingu stöðva: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Leyfa ólíkum stöðvum að snerta hvor aðra -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Virkja mörg NewGRF vélasöfn: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Samhæfni kostur fyrir gamla NewGRF. Ekki slökkva á þessu, nema þú vitir nákvæmlega hvað þú ert að gera! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Ekki er hægt að breyta þessari stillingu þegar til eru farartæki STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Viðhald á innviðum: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Ef þessi stilling er virk kostar að reka innviði fyrirtækisins. Kostnaður eykst í auknu hlutfalli við stærð fyrirtækisins, því eru áhrifin meiri á stór fyrirtæki en lítil @@ -1259,8 +1240,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Snúningur hæ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Rangsælis STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Réttsælis STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Hæð jafnslétts lands yfir sjávarmáli: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Leyfa landslagsbreytingar á jöðrum korts: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ef þessi stilling er óvirk eru jaðrar kortsins alltaf sjór STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Einn eða fleiri reitir við norðurjaðarinn eru ekki tómir STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Einn eða fleiri reitir við eina hlið kortsins hafa ekki vatn @@ -1317,9 +1296,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :löngu (31. Des STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :stuttu (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Sjálfgefið litaspjald fyrir NewGRF sem tilgreina ekki litaspjald: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Sjálfgefið litaspjald til að nota með NewGRF sem skilgreina ekki hvaða litaspjald það notar - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Setja leik á bið þegar nýr leikur er hafinn: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Ef þessi stilling er virk mun leikurinn fara sjálfvirkt á bið þegar nýr leikur hefst. Það gefur færi á að skoða kortið betur STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Þegar leikurinn er á bið skal leyfa: {STRING} @@ -1541,8 +1517,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 af {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Enginn STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Upphaflegur margfaldari bogarstærðar: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Meðalstærð borga miðað við bæi, við upphaf leiks -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Fjarlægja fráleita vegahluti þegar vegagerð stendur yfir: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Þegar bæir hafa verið styrktir til að endurnýja vegina sýna á þá að fjarlægja ónotaða vegenda @@ -1551,25 +1525,15 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Þegar bæir ha -STR_CONFIG_SETTING_GUI :{ORANGE}Viðmót -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Bygging -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Farartæki -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stöðvar -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Efnahagur -STR_CONFIG_SETTING_AI :{ORANGE}Mótherji -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Skjá-valmöguleikar -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Viðmót STR_CONFIG_SETTING_SOUND :{ORANGE}Hljóð -STR_CONFIG_SETTING_NEWS :{ORANGE}Fréttir og skilaboð -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Umferðarmerki -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Meðhöndlun farms -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Gervigreind -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Sjálfvirk endurnýjun -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Viðhald farartækja +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Viðmót +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Bygging +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Farartæki STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Leiðarvísun farartækja -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Lestir -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Bæir -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Iðnaður +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bæir +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Iðnaður +STR_CONFIG_SETTING_AI :{ORANGE}Mótherji +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Gervigreind STR_CONFIG_SETTING_PATHFINDER_OPF :Upprunalegt STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1726,6 +1690,7 @@ STR_LIVERY_FREIGHT_TRAM :Farmsporvagn STR_FACE_CAPTION :{WHITE}Andlitsval STR_FACE_CANCEL_TOOLTIP :{BLACK}Hætta við andlitsval STR_FACE_OK_TOOLTIP :{BLACK}Samþykkja andlitsval +STR_FACE_RANDOM :{BLACK}Nýtt raðnúmer STR_FACE_MALE_BUTTON :{BLACK}Karlmaður STR_FACE_MALE_TOOLTIP :{BLACK}Velja karlmannsandlit @@ -2590,10 +2555,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Fjöldi STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hæð snjólínu: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Hækka snjólínu upp um eitt þrep STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Lækka snjólínu niður um eitt þrep -STR_MAPGEN_RANDOM_SEED :{BLACK}Raðnúmer lands: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Smelltu til að skrifa inn raðnúmer -STR_MAPGEN_RANDOM :{BLACK}Nýtt raðnúmer -STR_MAPGEN_RANDOM_HELP :{BLACK}Fá tilviljanakennt raðnúmer fyrir myndun lands STR_MAPGEN_LAND_GENERATOR :{BLACK}Landmyndun: STR_MAPGEN_TREE_PLACER :{BLACK}Planta trjám: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Gerð lands: @@ -2620,7 +2581,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nafn hæ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Stærð: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Sláðu inn slembistofn STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Breyta hæð snjólínu STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Breyta upphafsári @@ -3167,6 +3127,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Eyða v STR_GROUP_RENAME_TOOLTIP :{BLACK}Endurnefna valinn hóp STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Smelltu til að halda þessum hóp frá sjálfvirkri uppfærslu + STR_GROUP_ADD_SHARED_VEHICLE :Bæta við deildu farartæki STR_GROUP_REMOVE_ALL_VEHICLES :Fjarlægja öll farartæki diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 0da06d1c29..35e25e5f91 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} sedang menunggu di galangan STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} sedang menunggu di hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Daftar perintah {VEHICLE} terlalu sedikit STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} memiliki perintah yang terabaikan STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} memiliki perintah ganda STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} memiliki perintah menuju stasiun yg salah -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} mulai menua STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} sudah sangat tua @@ -954,9 +952,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format tangkapan layar -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Pilih format hasil tangkapan layar - 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 @@ -1072,7 +1067,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setting perusah STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Jenis: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Hambat daftar dibawah, hanya tampilkan aturan yang diubah +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Batasi daftar dibawah ini menggunakan filter yang telah ditetapkan STR_CONFIG_SETTING_RESTRICT_BASIC :Pengaturan dasar STR_CONFIG_SETTING_RESTRICT_ADVANCED :Pengaturan lanjut STR_CONFIG_SETTING_RESTRICT_ALL :Pengaturan mahir / semua aturan @@ -1130,8 +1125,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Mengaktifkan be STR_CONFIG_SETTING_CITY_APPROVAL :Sikap pemerintah kota terhadap restrukturasi area: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih seberapa banyak dampak kebisingan dan lingkungan oleh perusahaan terhadap peringkat kota karena pembangunan di daerah -STR_CONFIG_SETTING_BUILDONSLOPES :Ijinkan pembangunan di lereng dan pantai: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Jika diaktifkan, rel dan stasiun bisa dibangun diatas kebanyakan slop. Jika dimatikan, hanya bisa dibangun di slop yang mengikuti arah rel STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb. (otomatiskan): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ijinkan pembentukan tanah dibawah bangunan dan trek tanpa merusaknya STR_CONFIG_SETTING_CATCHMENT :Ijinkan ukuran jangkauan wilayah lebih realistik: {STRING} @@ -1156,14 +1149,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Kereta dan kapa STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Belokan 90 derajat terjadi ketika rel horizontal diikuti langsung oleh rel vertikal di ubin berikutnya, jadi membuatnya berputar balik di ujung ubin daripada memutar 45 derajat di kombinasi rel lain. Ini juga berlaku pada radius belokan kapal. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Ijinkan menggabung stasiun meski tidak menempel: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Ijinkan penambahan bagian dari stasiun tanpa menyentuh bagian yang sudah ada. Perlu Ctrl+Klik ketika menambahkan bagian baru. -STR_CONFIG_SETTING_IMPROVEDLOAD :Gunakan algoritma pengangkutan terbaru : {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Jika diaktifkan, beberapa kendaraan di stasiun dimuat secara berurutan. Pemuatan kendaraan berikutnya hanya dimulai ketika ada kargo cukup menunggu untuk benar-benar mengisi kendaraan pertama -STR_CONFIG_SETTING_GRADUAL_LOADING :Angkut secara bertahap: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Muat kendaraan secara bertahap menggunakan jangka waktu spesifik kendaraan, bukan memuat dengan jangka waktu tetap berdasarkan jumlah kargo STR_CONFIG_SETTING_INFLATION :Inflasi: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Perbolehkan inflasi dalam ekonomi, dimana biaya naik sedikit lebih cepat daripada pembayaran -STR_CONFIG_SETTING_SELECTGOODS :Menerima kargo di suatu stasiun hanya jika dibutuhkan: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Hanya kirimkan kargo ke stasiun yang membutuhkan dari kendaraan. Ini mencegah peringkat jelek dari kargo yang tidak diterima di stasiun STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Panjang maksimum jembatan: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Panjang maksimum untuk membuat jembatan STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Panjang maksimum terowongan: {STRING} @@ -1191,8 +1178,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Tempat kereta a STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :hampir selesai STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :tengah STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :jauh di belakang -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Kendaraan jalan raya mengantri (dengan efek kuantum): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Buat kendaraan menunggu didepan pemberhentian yang penuh sampai kosong STR_CONFIG_SETTING_AUTOSCROLL :Geser tampilan saat mouse ada di tepi: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ketika diaktifkan, viewport akan bergeser saat mouse berada pada tepi viewport STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Dimatikan @@ -1223,10 +1208,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Ijinkan termina STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Membolehkan konstruksi halte di jalan kota STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Ijinkan terminal drive-thru pada jalan milik pesaing: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Membolehkan konstruksi halte di jalan yang dimiliki perusahaan lain -STR_CONFIG_SETTING_ADJACENT_STATIONS :Ijinkan membangun stasiun berdampingan: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Membolehkan stasiun berbeda untuk berhubungan satu sama lain -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Aktifkan beberapa pengaturan mesin NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opsi kompatibilitas untuk berkas NewGRF tua. Jangan menonaktifkan ini, kecuali Anda tahu persis apa yang Anda lakukan! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Tidak diijinkan mengubah setting ini karena kendaraan sudah ada STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Pemeliharaan Infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Jika dinyalakan, infrastruktur membutuhkan biaya pemeliharaan. Biaya berkembang secara proporsional sesuai dengan ukuran jaringan, lebih berdampak pada perusahaan besar dari pada perusahaan kecil @@ -1284,8 +1265,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Perputaran peta STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Melawan arah jam STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Searah jam STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Tinggi dataran pada peta skenario datar : {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Ijinkan pembentukan lansekap pada pinggir peta: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Jika dimatikan, batas peta selalu perairan STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Kotak pada ujung utara tidak kosong STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Kotak pada salah satu ujung peta bukanlah perairan @@ -1342,11 +1321,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :panjang (31st D STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :pendek (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Palette standard digunakan untuk NewGRFs yang tidak punya setting: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Palet standar digunakan untuk NewGRF yang tidak menentukan yang mana itu perlu -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Palet standar (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Palet warisan (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Selalu hentikan sementara permainan saat memulai : {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Jika diaktifkan, permainan akan berhenti sejenak secara otomatis ketika permainan baru dimulai, memungkinkan untuk lebih mempelajari peta STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Saat berhenti, ijinkan: {STRING} @@ -1520,7 +1494,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Perbolehkan kot STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Kota yang diperbolehkan untuk membangun perlintasan tingkat: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Mengaktifkan setelan ini akan memperbolehkan kota membuat perlintasan rel kereta STR_CONFIG_SETTING_NOISE_LEVEL :Ijinkan kota mengatur tingkat kebisingan bandara : {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Jika diaktifkan, pembuatan bandara di kota tergantung dari jarak,kebisingan bandara dan populasi kota. Jika dimatikan, di kota hanya boleh ada dua bandara +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Jika dimatikan, di setiap kota hanya boleh ada dua bandara. Jika diaktifkan, pembuatan bandara di kota dibatasi oleh batas kebisingan bandara, yang bergantung pada populasi kota, juga jarak dan ukuran bandara. STR_CONFIG_SETTING_TOWN_FOUNDING :Mendirikan kota pada permainan: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Mengaktifkan setting ini akan membolehkan pemain mendirikan kota dalam permainan STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Dilarang @@ -1568,8 +1542,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 dalam {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Tidak ada STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Faktor kali ukuran kota awal: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Ukuran rata-rata kota besar terhadap kota kecil saat permainan dimulai -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Buang elemen jalan yang aneh saat membangun: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Menghilangkan ujung jalan buntu saat rekonstruksi jalan STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Perbarui grafik distribusi setiap {STRING} hari STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Waktu diantara dua penghitungan linkgraph berurutan. Setiap penghitungan hanya menghitung satu komponen perencanaan dari grafik. Namun, angka yang diberikan untuk seting ini bukan berarti seluruh grafik akan diperbaharui dalam angka hari yang sama, hanya beberapa bagian. Semakin sedikit semakin banyak proses CPU yang diperlukan untuk menghitung. Semakin banyak semakin lama waktu sebelum cargo distribution dimulai pada rute baru. @@ -1631,27 +1603,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrik (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Antaramuka STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisasi -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruksi -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kendaraan -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stasiun -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribusi Kargo -STR_CONFIG_SETTING_AI :{ORANGE}Pesaing -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Tampilkan Pilihan -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaksi STR_CONFIG_SETTING_SOUND :{ORANGE}Efek suara -STR_CONFIG_SETTING_NEWS :{ORANGE}Berita dan pesan -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinyal -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Penanganan Kargo -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain Komputer -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Perbaruan Otomatis -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Perbaikan +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Antaramuka +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruksi +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kendaraan STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Pengarahan -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Kereta -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Kota -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industri +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Kota +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industri +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribusi Kargo +STR_CONFIG_SETTING_AI :{ORANGE}Pesaing +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain Komputer STR_CONFIG_SETTING_PATHFINDER_OPF :Asli STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1770,7 @@ STR_LIVERY_FREIGHT_TRAM :Trem Barang STR_FACE_CAPTION :{WHITE}Pilihan Wajah STR_FACE_CANCEL_TOOLTIP :{BLACK}Batalkan pemilihan wajah baru STR_FACE_OK_TOOLTIP :{BLACK}Terima pilihan wajah baru +STR_FACE_RANDOM :{BLACK}Acak angka STR_FACE_MALE_BUTTON :{BLACK}Pria STR_FACE_MALE_TOOLTIP :{BLACK}Pilih wajah pria @@ -2668,6 +2631,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Simpan STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Simpan permainan saat ini, gunakan nama yang terpilih STR_SAVELOAD_LOAD_BUTTON :{BLACK}Muat STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Membuka permainan yang telah dipilih +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Muat heightmap yang dipilih STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Rincian Permainan STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Tidak ada informasi yang tersedia STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2686,10 +2650,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Jumlah i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Tinggi garis salju: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Naikkan ketinggian garis salju satu angka STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Turunkan ketinggian garis salju satu angka -STR_MAPGEN_RANDOM_SEED :{BLACK}Angka masukkan: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik untuk mengisi umpan angka acak -STR_MAPGEN_RANDOM :{BLACK}Acak angka -STR_MAPGEN_RANDOM_HELP :{BLACK}Ganti angka umpan pengacakan untuk menghasilkan pulau STR_MAPGEN_LAND_GENERATOR :{BLACK}Algoritma pulau: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritma pohon: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Jenis dataran: @@ -2716,7 +2676,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nama Pet STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Luas: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Masukkan angka umpan pengacakan STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ubah ketinggian garis salju STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ganti Tahun Permulaan @@ -3299,9 +3258,12 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Pesawat tanpa k STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Kelompok - Klik salah satu untuk melihat daftar kendaraan pada kelompok tersebut STR_GROUP_CREATE_TOOLTIP :{BLACK}Klik untuk membuat kelompok STR_GROUP_DELETE_TOOLTIP :{BLACK}Hapus kelompok terpilih -STR_GROUP_RENAME_TOOLTIP :{BLACK}Ubah Nama kelompok terpilih +STR_GROUP_RENAME_TOOLTIP :{BLACK}Ubah nama kelompok terpilih STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik untuk memproteksi kelompok ini dari perintah penggantian otomatis +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Hapus Kelompok +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Apakah anda yakin untuk menghapus kelompok ini dan turunannya ? + STR_GROUP_ADD_SHARED_VEHICLE :Tambah kendaraan dgn perintah bersama STR_GROUP_REMOVE_ALL_VEHICLES :Jual semua @@ -4275,6 +4237,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... anda STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Tidak data membuat kelompok... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Tidak dapat menghapus kelompok ini... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Tidak dapat mengganti nama kelompok... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Tidak dapat menetapkan kelompok induk... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Tidak dapat memindahkan semua kendaraan dari kelompok ini... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Tidak dapat menambah Kendaraan dalam kelompok ini... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Tidak dapat menambah Kendaraan yang dapat dipakai bersama ke dalam grup... diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 49b8037629..b92a9393be 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -784,13 +784,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}Tá feit STR_NEWS_SHIP_IS_WAITING :{WHITE}Tá {VEHICLE} ag fanacht san iosta STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}Tá {VEHICLE} ag fanacht san haingear -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Níl a ndóthain orduithe ag {VEHICLE} sa sceideal STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Tá ordú folamh ag {VEHICLE} STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Tá orduithe dúbailte ag {VEHICLE} STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Tá stáisiún neamhbhailí ag {VEHICLE} ina chuid orduithe -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}Tá {VEHICLE} ag fáil sean STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}Tá {VEHICLE} ag fáil an-sean @@ -920,9 +918,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formáid seatanna scáileáin -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Roghnaigh an formáid le húsáid do sheatanna scáileáin - 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 @@ -1025,6 +1020,8 @@ STR_WARNING_NO_SUITABLE_AI :{WHITE}Níl aon # Advanced settings window STR_CONFIG_SETTING_CAPTION :{WHITE}Ardsocruithe +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Catagóir: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Cineál: STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Srian ar an liosta thíos le cineálacha áirithe a leagan síos STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Ulig na Suímh @@ -1033,6 +1030,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Suímh Cliche(s STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Suímh Cliche(stóráil i Sábhálann; ni tionchar ach an cliche faoi láthair) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Suímh Cuideachta (stóráil i Sábhálann; ni tionchar ach an cuideachta faoi láthair) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Suímh Cuideachta (stóráil i saibhail; ni tionchar ach chuideachta reatha) +STR_CONFIG_SETTINGS_NONE :{WHITE}- Ceann ar bith - STR_CONFIG_SETTING_OFF :As STR_CONFIG_SETTING_ON :Air @@ -1051,7 +1049,6 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Sa lár STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Ar dheis -STR_CONFIG_SETTING_BUILDONSLOPES :Ceadaigh tógáil a dhéanamh ar fhánaí agus ar chóstaí: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :Ceadaigh athrú talún faoi fhoirgnimh, ráillí iarnróid srl. (uathfhánú): {STRING} STR_CONFIG_SETTING_CATCHMENT :Ceadaigh ceantair stáisiún ar mhéid níos realaíoch: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Ceadaigh tuilleadh bóithre, droichid agus tolláin ar le baile iad a bhaint: {STRING} @@ -1060,10 +1057,7 @@ STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Samhail luasgh STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Samhail luasghéaraithe d'fheithiclí bóthair: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG :Cuir cosc ar thraenacha agus ar longa casadh 90° a dhéanamh: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Ceadaigh stáisiúin a changal nach bhfuil taobh lena gcéile: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :Úsáid an algartam lódála feabhsaithe: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :Lódáil feithiclí de réir a chéile: {STRING} STR_CONFIG_SETTING_INFLATION :Boilsciú: {STRING} -STR_CONFIG_SETTING_SELECTGOODS :Ná déan lastas a sheachadadh chuig stáisiún ach má tá éileamh ann: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Modh tógála tionscail de láimh go príomhúil: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :ceann ar bith STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :cosúil le tionscail eile @@ -1075,7 +1069,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :Stopann orduith STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :taobh abhus STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :lár STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :taobh thall -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Scuainí feithiclí bóthair (le maisíochtaí candamacha): {STRING} STR_CONFIG_SETTING_AUTOSCROLL :Peanáil an fhuinneog agus an luch ag an taobh: {STRING} STR_CONFIG_SETTING_BRIBE :Ceadaigh breabanna a thabhairt don údarás áitiúil: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :Ceadaigh cearta eisiach iompair a cheannach: {STRING} @@ -1088,8 +1081,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :laghdaithe STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :gnáth STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Ceadaigh stadanna bóthair 'tiomáin tríd' ar bhóithre ar le bailte iad: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Ceadaigh stopanna bóthair 'tiomáin tríd' ar bhóithre ar le hiomaitheoirí iad: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :Ceadaigh tógáil taobh le stáisiúin: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Cumasaigh níos mó ná sraith innill NewGRF amháin: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Ní féidir an socrú seo a athrú nuair atá feithiclí ann STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Cothabháil bonneagair: {STRING} @@ -1124,7 +1115,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rothlú an mhap STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Tuathal STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Deiseal STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Leibhéal airde a fhaighann léarscáil scéil réidh: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Ceadaigh athrú talún ar na tíleanna ag teorainneacha na léarscáile: {STRING} STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Tá tíl amháin nó níos mó ag an taobh thuaidh nach bhfuil folamh STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Tá tíl amháin nó níos mó ag ceann de na taobhanna nach uisce é @@ -1160,7 +1150,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :fada (31 Noll 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :gearr (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Cuir cluiche ar sos go huathoibríoch agus cluiche nua á thosú: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Agus an cluiche ar sos, ceadaigh: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :gníomh ar bith @@ -1274,7 +1263,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Gnáth STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Scioptha STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :An-scioptha STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Iolraitheoir tosaigh mhéid na gcathracha: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Bain gnéithe bóthair áiféiseacha agus bóithre á dtógáil: {STRING} @@ -1283,23 +1271,27 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Bain gnéithe b -STR_CONFIG_SETTING_GUI :{ORANGE}Comhéadan -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Tógáil +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafaicí +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Comhéadan +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Ginearálta +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Painéil amhairc +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Tógáil +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nuacht / Comhairleoirí +STR_CONFIG_SETTING_COMPANY :{ORANGE}Cuideachta +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Cuntasaíocht STR_CONFIG_SETTING_VEHICLES :{ORANGE}Feithiclí -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stáisiúin -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Geilleagar -STR_CONFIG_SETTING_AI :{ORANGE}Iomaitheoirí -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Roghanna taispeána -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Idirghníomhú -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Comharthaí -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Láimhseáil lastais -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Ríomh-imreoirí -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Uathathnuachan -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Seirbhísiú +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fisic STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Ródú -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Traenacha -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Bailte -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Tionscail +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Teorainneacha +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Tubaistí / Timpistí +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Domhan a chruthú +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Timpeallacht +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Údaráis +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bailte +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Tionscail +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Dáileadh lastais +STR_CONFIG_SETTING_AI :{ORANGE}Iomaitheoirí +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Ríomh-imreoirí STR_CONFIG_SETTING_PATHFINDER_NPF :NPF STR_CONFIG_SETTING_PATHFINDER_YAPF_RECOMMENDED :YAPF {BLUE}(Molta) @@ -1428,6 +1420,7 @@ STR_LIVERY_FREIGHT_TRAM :Tram Lastais STR_FACE_CAPTION :{WHITE}Aghaidh a Roghnú STR_FACE_CANCEL_TOOLTIP :{BLACK}Cealaigh roghnúchán aghaidhe nua STR_FACE_OK_TOOLTIP :{BLACK}Glac leis an aghaidh nua +STR_FACE_RANDOM :{BLACK}Déan randamú STR_FACE_MALE_BUTTON :{BLACK}Fear STR_FACE_MALE_TOOLTIP :{BLACK}Roghnaigh aghaidheanna fir @@ -1661,6 +1654,7 @@ STR_NETWORK_CLIENT :Cliant STR_NETWORK_SPECTATORS :Féachadóirí STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Iontráil an méid airgid is mian leat a thabhairt +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Féachadóir # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}Ná sábháil an pasfhocal a iontráladh @@ -2128,6 +2122,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Lastas a ghlactar leis: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Teorainn luais iarnróid: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Teorainn luais na mbóithre: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Carraigeacha @@ -2219,6 +2214,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Sábhái STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Sábháil an cluiche reatha, ag úsáid an t-ainm roghnaithe STR_SAVELOAD_LOAD_BUTTON :{BLACK}Lódáil STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Lódáil an cluiche roghnaithe +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Lódáil an mapa airde roghnaithe STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Sonraí an Chluiche STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Níl aon fhaisnéis le fáil. STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2237,10 +2233,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Líon na STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Airde na líne sneachta: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Bog airde na líne sneachta suas ceann amháin STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Bog airde na líne sneachta síos ceann amháin -STR_MAPGEN_RANDOM_SEED :{BLACK}Síol randamach: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Cliceáil chun síol randamach a iontráil -STR_MAPGEN_RANDOM :{BLACK}Déan randamú -STR_MAPGEN_RANDOM_HELP :{BLACK}Athraigh an síol randamach a úsáidtear chun an Tír-Raon a chruthú STR_MAPGEN_LAND_GENERATOR :{BLACK}Talamh a chruthú: STR_MAPGEN_TREE_PLACER :{BLACK}Algartam na gcrann: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Cineál tír-raoin: @@ -2266,7 +2258,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ainm an STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Méid: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Iontráil síol randamach STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Athraigh airde na líne sneachta STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Athraigh an bhliain tosaigh @@ -2434,6 +2425,7 @@ STR_NEWGRF_INVALID_ENGINE : # Placeholders for other invalid stuff, e.g. vehicles that have gone (Game Script). +STR_INVALID_VEHICLE : # NewGRF scanning window @@ -2526,6 +2518,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Cliceáil ar sheirbhís chun an t-amharc a lárú ar thionscal/bhaile. Déantar amharc nua a oscailt ar shuíomh an tionscail/bhaile le Ctrl+Cliceáil # Story book window +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Tagairt neamhbhailí spriocanna # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Ainmneacha na stáisiún - cliceáil ar ainm chun an t-amharc a lárú ar stáisiún. Osclaítear amharc nua ar shuíomh an stáisiúin le Ctrl+Cliceáil @@ -2739,6 +2732,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Scrios a STR_GROUP_RENAME_TOOLTIP :{BLACK}Athainmnigh an grúpa roghnaithe STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Cliceáil chun an grúpa seo a chosaint ón uathionadú uilíoch +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Scrios Grúpa +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Am bhfuil tú cinnte gur mhaith leat an grúpa seo agus aon fhoghrúpaí a scriosadh?? + STR_GROUP_ADD_SHARED_VEHICLE :Cuir le feithiclí comhroinnte STR_GROUP_REMOVE_ALL_VEHICLES :Bain gach feithicil @@ -3225,9 +3221,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Amchlár STR_TIMETABLE_NO_TRAVEL :Ná taisteal STR_TIMETABLE_NOT_TIMETABLEABLE :Taisteal (uathoibríoch; curtha ar an gclár ama ag an chéad ordú de láimh eile) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Taisteal (gan amchlár) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Taisteal le {2:VELOCITY} ar a mhéad (gan amchlár) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Taisteal (gan amchlár) ag {2:VELOCITY} ar a mhéad STR_TIMETABLE_TRAVEL_FOR :Taisteal ar feadh {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Taisteal ar feadh {STRING} le {VELOCITY} ar a mhéad +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Taisteal (ar feadh {STRING}, gan amchlár) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Taisteal (ar feadh {STRING}, gan amchlár) ag {VELOCITY} ar a mhéad +STR_TIMETABLE_STAY_FOR_ESTIMATED :(fan ar feadh {STRING}, gan amchlár) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(taisteal ar feadh {STRING}, gan amchlár) STR_TIMETABLE_STAY_FOR :agus fan ar feadh {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :agus taisteal ar feadh {STRING} STR_TIMETABLE_DAYS :{COMMA} lá{P "" "" "" "" ""} @@ -3338,6 +3338,8 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} léigh mé de {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} loga athruithe de {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} ceadúnas de {STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Timthriall téacs +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Timthriall téacs na fuinneoige sa chaoi go mbeidh sé ar fad ann gan gá duit scrollú STR_TEXTFILE_VIEW_README :{BLACK}Amharc ar léigh mé STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Loga na n-athruithe STR_TEXTFILE_VIEW_LICENCE :{BLACK}Ceadúnas @@ -3645,6 +3647,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... is l STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Ní féidir an grúpa a chruthú... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Ní féidir an grúpa seo a scriosadh... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Ní féidir an grúpa a athainmniú... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Ní féidir máthairghrúpa a shocrú... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Ní féidir gach feithicil a bhaint ón ngrúpa seo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Ní féidir an fheithicil a chur leis an ngrúpa seo... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Ní féidir feithiclí comhroinnte a chur le grúpa... @@ -3700,6 +3703,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Ní féi STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... tá an fheithicil scriosta +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Athraigh do chumraíocht NewGRF # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ní féidir iallach a chur ar thraein dul thar comhartha agus contúirt ann... diff --git a/src/lang/italian.txt b/src/lang/italian.txt index d7976a3568..49ccef2a2e 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -812,13 +812,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} ha raggiunto il deposito STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ha raggiunto l'hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} non ha abbastanza ordini pianificati STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ha un ordine vuoto STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ha alcuni ordini duplicati STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ha una stazione non valida nei suoi ordini -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ha nei suoi ordini un aeroporto con una pista troppo corta STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} sta invecchiando STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} sta invecchiando molto @@ -940,11 +939,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalani STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Salvataggi automatici STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Seleziona l'intervallo fra i salvataggi automatici della partita +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :No STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Ogni mese STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Ogni 3 mesi STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Ogni 6 mesi STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Ogni 12 mesi +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Lingua STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Seleziona la lingua da utilizzare per l'interfaccia @@ -956,9 +957,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formato screenshot -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selezionare il formato da usare per gli screenshot - 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} @@ -1074,7 +1072,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Impostazione de STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoria: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Limita la lista sottostante alle sole impostazioni con valore modificato +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Limita la lista sottostante usando i filtri predefiniti STR_CONFIG_SETTING_RESTRICT_BASIC :Impostazioni di base STR_CONFIG_SETTING_RESTRICT_ADVANCED :Impostazioni avanzate STR_CONFIG_SETTING_RESTRICT_ALL :Tutte le impostazioni (utenti esperti) @@ -1154,8 +1152,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Controlla l'att STR_CONFIG_SETTING_CITY_APPROVAL :Atteggiamento della città in merito alle modifiche: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Seleziona il modo in cui il rumore e i danni all'ambiente da parte delle compagnie possono influenzare la valutazione delle città e le successive operazioni di costruzione nell'area controllata -STR_CONFIG_SETTING_BUILDONSLOPES :Consenti la costruzione su pendii e coste: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Se abilitato, binari e stazioni possono essere costruiti sulla maggior parte dei pendii. Se disabilitato, è permesso costruirli solo su pendii rivolti nella stessa direzione, per i quali non è necessario costruire fondamenta STR_CONFIG_SETTING_AUTOSLOPE :Consenti rimodellazione terreno sotto a edifici, rotaie, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Consente la rimodellazione del terreno sotto edifici e rotaie senza doverli rimuovere STR_CONFIG_SETTING_CATCHMENT :Consenti aree di copertura più realistiche: {STRING} @@ -1180,14 +1176,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Impedisci a tre STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Le curve a 90 gradi avvengono quando un binario orizzontale è seguito direttamente da un binario verticale nel riquadro adiacente, facendo sì che un treno che attraversa il bordo fra i riquadri curvi di 90 gradi invece dei 45 gradi delle altre combinazioni di binari. L'impostazione si applica anche al raggio di virata delle navi STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Consenti di unire stazioni non direttamente adiacenti: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Consente di aggiungere nuove parti a una stazione senza toccare direttamente le parti esistenti. Richiede l'uso di CTRL+clic per posizionare le nuove parti -STR_CONFIG_SETTING_IMPROVEDLOAD :Usa l'algoritmo di caricamento migliorato: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Se abilitato, più veicoli fermi a una stazione sono caricati in modo sequenziale. Il caricamento di un veicolo inizia solo quando è presente in attesa una quantità di carico sufficiente da riempire il veicolo precedente -STR_CONFIG_SETTING_GRADUAL_LOADING :Carica i veicoli gradualmente: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Carica i veicoli gradualmente utilizzando la durata di caricamento specifica del veicoli, invece di caricare tutto insieme con un tempo fisso dipendente solo dalla quantità di carico STR_CONFIG_SETTING_INFLATION :Inflazione: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Abilita l'inflazione nell'economia, facendo crescere i costi leggermente più in fretta dei compensi -STR_CONFIG_SETTING_SELECTGOODS :Scarica il carico in una stazione solo se richiesto: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Consegna i carichi a una stazione in cui ha caricato almeno un veicolo. In questo modo si evita una cattiva valutazione per i carichi che non sono processati a una stazione STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Lunghezza massima dei ponti: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Lunghezza massima per la costruzione dei ponti STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Lunghezza massima dei tunnel: {STRING} @@ -1215,8 +1205,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Seleziona il va STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :all'inizio STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :al centro STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :alla fine -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Accodamento automezzi fuori da una stazione occupata: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Fa attendere gli automezzi davanti alle fermate occupate finché non si liberano STR_CONFIG_SETTING_AUTOSCROLL :Scorri visuali quando il mouse è su un bordo: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Se abilitato, le visuali iniziano a scorrere quando il mouse è vicino al bordo della finestra STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Disabilitato @@ -1247,10 +1235,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Consenti fermat STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Consente la costruzione di fermate stradali passanti sulle strade di proprietà della città STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Consenti fermate passanti sulle strade di proprietà degli avversari: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Consente la costruzione di fermate stradali passanti sulle strade di proprietà delle altre compagnie -STR_CONFIG_SETTING_ADJACENT_STATIONS :Consenti la costruzione di stazioni adiacenti: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Consente a stazioni diverse di toccarsi -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Abilita pacchetti di locomotive NewGRF multipli: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opzione per la compatibilità con i vecchi NewGRF. Si raccomanda di non disabilitarla, a meno di non essere a conoscenza degli effetti STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Non è possibile modificare questa impostazione quando esistono veicoli STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenzione infrastrutture: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Se abilitata, le infrastrutture causano dei costi di manutenzione. I costi crescono in modo più che proporzionale alla dimensione della rete, influenzando maggiormente le compagnie più grandi rispetto alle piccole @@ -1289,27 +1273,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mosta la popola STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Spessore delle linee nei grafici: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Larghezza delle linee nei grafici. Le linee sottili sono più leggibili, quelle più spesse sono più facili da vedere e i colori più facili da distinguere +STR_CONFIG_SETTING_LANDSCAPE :Paesaggio: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :I paesaggi definiscono scenari di gioco di base che differiscono per i carichi disponibili e per i requisiti di crescita delle città. NewGRF e Script offrono tuttavia un controllo più fine su questi aspetti STR_CONFIG_SETTING_LAND_GENERATOR :Generatore terreno: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Il generatore originale dipende dal pacchetto grafico di base e si limita a comporre insieme frammenti di paesaggio di forma fissa. TerraGenesis è un generatore basato sul Rumore di Perlin che offre impostazioni più fini STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Originale STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo di terreno: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Solo TerraGenesis) Tipo di dislivelli presenti nel paesaggio +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densità delle industrie: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Determina quante industrie sono generate e attorno a quale livello sono mantenute nel corso della partita STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Massima distanza delle raffinerie dal bordo della mappa: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Le raffinerie sono costruite solo vicino ai bordi della mappa, ovvero sulla costa nel caso di mappe insulari STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altezza delle nevi perenni: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregolarità del terreno (solo TerraGenesis): {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Determina la quota alla quale appare la neve nei paesaggi sub-artici. La neve ha anche l'effetto di influenzare la generazione delle industrie e i requisiti per la crescita delle città +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregolarità del terreno: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Solo TerraGenesis) Seleziona la frequenza delle colline. I paesaggi morbidi presentano poche colline di forma allargata. I paesaggi accidentati hanno molte colline, che potrebbero apparire ripetitive STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Molto morbido STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Morbido STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Accidentato STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Molto accidentato +STR_CONFIG_SETTING_VARIETY :Varietà del terreno: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Solo TerraGenesis) Determina in quale misura la mappa affianca aree montuose ed aree pianeggianti. Poiché questa impostazione agisce abbassando progressivamente la quota del terreno, le altre impostazioni dovrebbero essere impostate per un terreno montuoso +STR_CONFIG_SETTING_RIVER_AMOUNT :Quantità di fiumi: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Seleziona la quantità di fiumi generati STR_CONFIG_SETTING_TREE_PLACER :Algoritmo di piazzamento degli alberi: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Seleziona la modalità di distribuzione degli alberi sulla mappa: 'Originale' pianta gli alberi spargendoli in modo uniforme, 'Migliorato' li pianta in gruppi STR_CONFIG_SETTING_TREE_PLACER_NONE :Nessuno STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Originale STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Migliorato +STR_CONFIG_SETTING_ROAD_SIDE :Automezzi: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Seleziona il lato di guida STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotazione heightmap: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Antioraria STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Oraria STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Altitudine delle mappe pianeggiante: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Consenti la rimodellazione del riquadri di terreno ai bordi della mappa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Se disabilitato, ai bordi della mappa è sempre presente dell'acqua STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Uno o più riquadri sul lato nord non sono vuoti STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Uno o più riquadri su uno dei bordi non sono d'acqua @@ -1330,7 +1328,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Scorrimento mor STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controlla il modo in cui la visuale principale scorre verso una specifica posizione quando si fa clic sulla minimappa o si ordina di visualizzare un oggetto specifico sulla mappa. Se abilitata, la visuale scorre in modo morbido. Se disabilitata, salta direttamente al punto prescelto STR_CONFIG_SETTING_MEASURE_TOOLTIP :Mostra un tooltip di misura durante la costruzione: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Mostra le distanze in riquadri e le differenze di altezza quando si trascina durante le operazioni di costruzione -STR_CONFIG_SETTING_LIVERIES :Mostra le livree delle compagnie: {STRING} +STR_CONFIG_SETTING_LIVERIES :Mostra le livree specifiche per tipo di veicolo: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controlla l'utilizzo delle livree specifiche per il tipo di veicolo (invece di quelle specifiche della compagnia) STR_CONFIG_SETTING_LIVERIES_NONE :Nessuna STR_CONFIG_SETTING_LIVERIES_OWN :Propria compagnia @@ -1360,17 +1358,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Nessuna STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scorrimento con clic sinistro: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Abilita lo scorrimento della mappa trascinandola con il pulsante sinistro del mouse. Questa impostazione è utile quando si utilizza un touch-screen +STR_CONFIG_SETTING_AUTOSAVE :Salvataggi automatici: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleziona l'intervallo fra i salvataggi automatici della partita + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Formato data nei nomi dei salvataggi: {STRING} STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formato della data nei nomi dei file delle partite salvate STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :Lungo (31 Dic 2008) 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_NEWGRF_DEFAULT_PALETTE :Tavolozza predefinita da utilizzare per i NewGRF che non ne specificano alcuna: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Tavolozza predefinita da utilizzare per i NewGRF che non ne specificano alcuna -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Tavolozza predefinita (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Tavolozza obsoleta (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Metti in pausa all'inizio di una nuova partita: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Se abilitata, il gioco andrà automaticamente in pausa all'inizio di una nuova partita, permettendo di esaminare meglio la mappa STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Azioni consentite durante la pausa: {STRING} @@ -1379,7 +1375,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Nessuna STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Tutte tranne quelle di costruzione STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Tutte tranne quelle di modifica del terreno STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Tutte -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Utilizza la lista veicoli avanzata: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Utilizza i gruppi nella lista veicoli: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Abilita l'utilizzo delle liste veicoli avanzate per raggruppare i veicoli STR_CONFIG_SETTING_LOADING_INDICATORS :Utilizza gli indicatori di caricamento: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Determina se gli indicatori di caricamento sono mostrati sopra i veicoli in caricamento o scaricamento @@ -1394,7 +1390,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo di ferrovi STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :La prima disponibile STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :L'ultima disponibile STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :La più usata -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra i binari riservati: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Mostra i percorsi riservati sui binari: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dà ai binari riservati un colore differente, aiutando a correggere problemi di treni che si rifiutano di entrare in blocchi protetti con segnali a percorso STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Mantieni aperte le finestre di costruzione dopo l'uso: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantiene aperti dopo l'uso gli strumenti di costruzione di ponti, tunnel, etc. @@ -1592,8 +1588,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 su {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nessuna STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Moltiplicatore iniziale dimensioni metropoli: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Dimensione media delle metropoli in rapporto alle normali città all'inizio della partita -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Rimuovi segmenti isolati con la ricostruzione delle strade cittadine: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Rimuove i segmenti di strada abbandonati come parte di una ricostruzione finanziata delle strade STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Aggiorna il grafo di distribuzione ogni {STRING} giorn{P 0:2 o i} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo fra due ricalcoli consecutivi del grafo delle rotte. Ad ogni ricalcolo vengono generati i piani per una sola componente del grafo. Ciò significa che una valore X per questa impostazione non causa il ricalcolo dell'intero grafo ogni X giorni, ma solo di una componente. Più breve l'intervallo impostato, più tempo la CPU consuma per calcolare il grafo. Più lungo l'intervallo, più a lungo bisogna attendere prima che la distribuzione abbia inizio su nuovi percorsi. @@ -1655,27 +1649,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperiali (pied STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metriche (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfaccia STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localizzazione -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Costruzione -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veicoli -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stazioni -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economia -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribuzione dei carichi -STR_CONFIG_SETTING_AI :{ORANGE}Avversari -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Visualizzazione -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interazione +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafica STR_CONFIG_SETTING_SOUND :{ORANGE}Effetti sonori -STR_CONFIG_SETTING_NEWS :{ORANGE}Notizie e messaggi -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Segnali -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Gestione dei carichi -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Giocatori controllati dal computer -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Rinnovo automatico -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Manutenzione +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaccia +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Generale +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Visuali +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Costruzione +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Notizie / consigli +STR_CONFIG_SETTING_COMPANY :{ORANGE}Compagnia +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Economia +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veicoli +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fisica STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Instradamento -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Treni -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Città -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrie +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limiti +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Disastri / incidenti +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generazione del mondo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambiente +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autorià +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Città +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrie +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuzione dei carichi +STR_CONFIG_SETTING_AI :{ORANGE}Avversari +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Giocatori controllati dal computer STR_CONFIG_SETTING_PATHFINDER_OPF :Originale STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1832,6 +1828,7 @@ STR_LIVERY_FREIGHT_TRAM :Tram merci STR_FACE_CAPTION :{WHITE}Seleziona faccia STR_FACE_CANCEL_TOOLTIP :{BLACK}Annulla la selezione della nuova faccia STR_FACE_OK_TOOLTIP :{BLACK}Accetta la selezione della nuova faccia +STR_FACE_RANDOM :{BLACK}Scegli a caso STR_FACE_MALE_BUTTON :{BLACK}Maschio STR_FACE_MALE_TOOLTIP :{BLACK}Seleziona fra volti maschili @@ -2717,10 +2714,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Numero i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Altezza delle nevi: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Sposta in su di uno l'altezza delle nevi perenni STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sposta in giù di uno l'altezza delle nevi perenni -STR_MAPGEN_RANDOM_SEED :{BLACK}Seme casuale: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Fare clic per introdurre un seme casuale -STR_MAPGEN_RANDOM :{BLACK}Scegli a caso -STR_MAPGEN_RANDOM_HELP :{BLACK}Cambia il seme casuale usato per la generazione del terreno STR_MAPGEN_LAND_GENERATOR :{BLACK}Generatore: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritmo alberi: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo di terreno: @@ -2747,7 +2740,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome hei STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Dim.: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Inserire un seme casuale STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambia l'altezza delle nevi perenni STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambia l'anno di inizio @@ -2802,6 +2794,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Sposta s STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Sposta il file NewGRF selezionato più in alto nell'elenco STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Sposta giù STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Sposta il file NewGRF selezionato più in basso nell'elenco +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Aggiorna +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Aggiorna i file NewGRF per i quali è stata installata una versione più recente STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Elenco dei file NewGRF installati. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Imposta parametri @@ -2826,6 +2820,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}File corri STR_NEWGRF_SETTINGS_DISABLED :{RED}Disabilitato STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatibile con questa versione di OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Salva profilo +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista dei profili disponibili, selezionarne uno per copiarlo nella casella del nome del salvataggio +STR_SAVE_PRESET_TITLE :{BLACK}Inserire il nome del profilo +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nome scelto per il profilo da salvare +STR_SAVE_PRESET_CANCEL :{BLACK}Annulla +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Non modifica il profilo +STR_SAVE_PRESET_SAVE :{BLACK}Salva +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Salva il profilo utilizzando il nome inserito + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Cambia parametri NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Chiudi @@ -3327,12 +3331,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Automezzi senza STR_GROUP_DEFAULT_SHIPS :Navi senza gruppo STR_GROUP_DEFAULT_AIRCRAFTS :Aeromobili senza gruppo -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppi - fare clic su un gruppo per elencare tutti i suoi veicoli +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppi - fare clic su un gruppo per elencare tutti i suoi veicoli. Trascinare i gruppi per organizzarli in gerarchia. STR_GROUP_CREATE_TOOLTIP :{BLACK}Fare clic per creare un gruppo STR_GROUP_DELETE_TOOLTIP :{BLACK}Elimina il gruppo selezionato STR_GROUP_RENAME_TOOLTIP :{BLACK}Rinomina il gruppo selezionato STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Fare clic per proteggere questo gruppo dal rimpiazzo automatico +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Elimina Gruppo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Si è sicuri di voler eliminare questo gruppo e tutti i gruppi contenuti? + STR_GROUP_ADD_SHARED_VEHICLE :Aggiungi veicoli condivisi STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i veicoli @@ -3721,8 +3728,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambia l STR_ORDER_REFIT :{BLACK}Riadatta STR_ORDER_REFIT_TOOLTIP :{BLACK}Selezionare il tipo di carico per il quale riadattare in questo ordine. Premere CTRL+clic per rimuovere l'istruzione di riadattamento -STR_ORDER_REFIT_AUTO :{BLACK}Auto-riadatta -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selezionare il tipo di carico per il quale auto-riadattare in questo ordine. Premere CTRL+clic per rimuovere l'istruzione di riadattamento. L'auto-riadattamento sarà eseguito solo se il veicolo lo consente +STR_ORDER_REFIT_AUTO :{BLACK}Riadatta +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Selezionare il tipo di carico per il quale riadattare in questo ordine. Premere CTRL+clic per rimuovere l'istruzione di riadattamento. Il riadattamento presso le stazioni sarà eseguito solo se il veicolo lo consente STR_ORDER_DROP_REFIT_AUTO :Carico prefissato STR_ORDER_DROP_REFIT_AUTO_ANY :Carico in attesa @@ -3813,18 +3820,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Non scaricare STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Non scaricare e attendi qualsiasi pieno carico) STR_ORDER_NO_UNLOAD_NO_LOAD :(Non scaricare e non caricare) -STR_ORDER_AUTO_REFIT :(Auto-riadatta per {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Attendi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Attendi qualsiasi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_UNLOAD_REFIT :(Scarica e carica, auto-riadatta per {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Scarica e attendi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Scarica e attendi qualsiasi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_TRANSFER_REFIT :(Trasferisci e carica, auto-riadatta per {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Trasferisci e attendi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Trasferisci e attendi qualsiasi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Non scaricare e carica, auto-riadatta per {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Non scaricare e attendi pieno carico, auto-riadatta per {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Non scaricare e attendi qualsiasi pieno carico, auto-riadatta per {STRING}) +STR_ORDER_AUTO_REFIT :(Riadatta per {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Attendi pieno carico, riadatta per {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Attendi qualsiasi pieno carico, riadatta per {STRING}) +STR_ORDER_UNLOAD_REFIT :(Scarica e carica, riadatta per {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Scarica e attendi pieno carico, riadatta per {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Scarica e attendi qualsiasi pieno carico, riadatta per {STRING}) +STR_ORDER_TRANSFER_REFIT :(Trasferisci e carica, riadatta per {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Trasferisci e attendi pieno carico, riadatta per {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Trasferisci e attendi qualsiasi pieno carico, riadatta per {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Non scaricare e carica, riadatta per {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Non scaricare e attendi pieno carico, riadatta per {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Non scaricare e attendi qualsiasi pieno carico, riadatta per {STRING}) STR_ORDER_AUTO_REFIT_ANY :il carico in attesa @@ -3850,9 +3857,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Tabella STR_TIMETABLE_NO_TRAVEL :Nessun viaggio STR_TIMETABLE_NOT_TIMETABLEABLE :Viaggia (automatico; orario basato sul successivo ordine manuale) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaggia (senza orario) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viaggia a non più di {2:VELOCITY} (senza orario) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viaggia (senza orario) a non più di {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Viaggia per {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viaggia per {STRING} a non più di {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viaggia (per {STRING}, senza orario) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viaggia (per {STRING}, senza orario) a non più di {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(ferma per {STRING}, senza orario) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viaggia per {STRING}, senza orario) STR_TIMETABLE_STAY_FOR :e sosta per {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaggia per {STRING} STR_TIMETABLE_DAYS :{COMMA} giorn{P o i} @@ -4306,6 +4317,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... già STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Impossibile creare il gruppo... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Impossibile eliminare il gruppo... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Impossibile rinominare il gruppo... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Impossibile impostare il gruppo contenitore... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Impossibile rimuovere tutti i veicoli del gruppo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Impossibile aggiungere il veicolo al gruppo... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Impossibile aggiungere veicoli condivisi al gruppo... diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 02ddf0e95e..2788ca97af 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE}は造船所に停泊しました STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE}は格納庫に駐機しました -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE}に十分な指令がありません STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}に無効な指令があります STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE}に重複した指令があります STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}の指令に無効な停留施設があります -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE}の命令中に滑走路が短すぎる空港が含まれています STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE}は老朽化が進んでいます STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE}はひどく老朽化しています @@ -954,9 +953,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}画面 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}ゲーム画面の解像度を選択します STR_GAME_OPTIONS_RESOLUTION_OTHER :その他 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}スクリーンショットフォーマット -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}スクリーンショットのファイルフォーマットを選択します - STR_GAME_OPTIONS_BASE_GRF :{BLACK}基本グラフィックセット STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}使用するグラフィックセットを選択します STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}見つからないか破損しているファイルが{NUM}個あります @@ -1072,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :会社設定( STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}カテゴリ: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}種類: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}設定のレベルでフィルタリングします。標準の設定と異なるもののみ表示することもできます +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}定義されたフィルタでリストをフィルタリングします。 STR_CONFIG_SETTING_RESTRICT_BASIC :基本設定 STR_CONFIG_SETTING_RESTRICT_ADVANCED :詳細設定 STR_CONFIG_SETTING_RESTRICT_ALL :拡張設定(全設定) @@ -1081,11 +1077,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :新規ゲーム STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}設定のジャンルでフィルタリングします STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :全設定 -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :クライアント設定(変更はセーブされません) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :ゲーム設定(ニューゲーム時に影響) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :ゲーム設定(今のゲームにのみ影響) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :会社設定(ニューゲーム時に影響) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :会社設定(今の会社だけに影響) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :クライアント設定(保存ゲーム内に記録無・全ゲームに影響) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :ゲーム設定(全保存ゲーム内に記録・ニューゲーム時に影響) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :ゲーム設定(保存ゲーム内に記録・今のゲームにのみ影響) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :会社設定(全保存ゲーム内に記録・ニューゲーム時に影響) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :会社設定(保存ゲーム内に記録・今の会社だけに影響) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}設定による検索結果を全て表示{}{SILVER}カテゴリ{BLACK}別{WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}設定による検索結果を全て表示{}{SILVER}種類{BLACK}別{WHITE}All setting types STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}設定による検索結果を全て表示{}{SILVER}カテゴリ{BLACK}別{WHITE}{STRING} {BLACK}and {SILVER}Type {BLACK}to {WHITE}All setting types @@ -1130,8 +1126,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :設定を有効 STR_CONFIG_SETTING_CITY_APPROVAL :地域の再編に対する町の姿勢: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :会社が街域で引き起こした騒音(主に空港)や環境破壊がどの程度、街での評価や同じ地域での更なる建設行為に影響するかを設定します -STR_CONFIG_SETTING_BUILDONSLOPES :傾斜地/海岸での盛土: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :設定を有効にすると、路線や駅の建設をほとんどの斜面で行うことができます。無効にすると盛土が不要な、向きが一致する斜面か平地でしか路線の建設を行うことが出来ません STR_CONFIG_SETTING_AUTOSLOPE :建物/路線の自動地形追従: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :撤去を行わないで建物や路線がある土地の地形を変更することを可能にします。建物/路線は変更された地形に自動で追従します。 STR_CONFIG_SETTING_CATCHMENT :現実的な受入範囲: {STRING} @@ -1156,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :列車/船舶 STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :直角方向への進路変更は(画面から見て)水平方向の線路と垂直方向の線路が隣接したタイルで繋がっていると起こります。(これ以外では、直前から見て左右45°方向までしか線路は繋がりません) この設定は船舶の同様な直角進路変更にも適用されます。 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :非隣接駅の統合許容: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :直接繋がっていない近隣の駅/停留所などを一つとして扱えるかを設定します。有効にした場合、新設する際にCtrl+クリックで統合先の選択が可能になります。 -STR_CONFIG_SETTING_IMPROVEDLOAD :改良積載アルゴリズムを使用: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :有効にすると、同時に同じ貨物を待機している運搬車両への積み込みは振り分けではなく編成順に行われるようになります。最初の編成に十分に積載されるまでは次の編成への積み込みは行われません。 -STR_CONFIG_SETTING_GRADUAL_LOADING :段階的な積載: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :積み降ろしが運搬車両特有の係数によって車両毎、徐々に行われるようになります。設定を無効にすると、積み降ろしは全車一括で瞬間的に行われます。このときの所要時間は総積載量のみに左右されます。 STR_CONFIG_SETTING_INFLATION :インフレ: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :インフレを有効にします。経費の方が収入よりわずかに早く上昇していきます。 -STR_CONFIG_SETTING_SELECTGOODS :必要貨物のみ集荷: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :到着した運搬車両が積み込もうとする貨物のみ停留施設に集荷されるようにします。搬送扱いのない貨物が停留施設で山積みになることでの悪評を防げます。 STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :橋の最大長:{STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :橋の最大長を設定できます STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :トンネルの最大長:{STRING} @@ -1191,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :デフォルト STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :先端 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :中間 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :終端 -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :車両の荷待ち停車(不確定性あり): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :停車予定の停留施設が渋滞している場合、バスやトラックが追い越して一度周回した後戻るよりは渋滞の解消を待つほうを好むようになります STR_CONFIG_SETTING_AUTOSCROLL :エッジスクロール: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :有効にすると、ウィンドウの端にカーソルを持っていくとスクロールするようになります STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :しない @@ -1223,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :街有道路で STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :路側型バス停/荷役所を街が所有する道路上に建設することを可能にします STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :他社の道路上での路側型バス停/荷役所設置: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :路側型バス停/荷役所を他社が所有する道路上に建設することを可能にします -STR_CONFIG_SETTING_ADJACENT_STATIONS :停留施設同士の接合: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :異なる交通機関の停留施設を接合することを可能にします -STR_CONFIG_SETTING_DYNAMIC_ENGINES :複数のNewGRFエンジンセットの有効化: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :古いNewGRFとの互換性を保つためのオプションです。自分が何をしようとしているか判っていない限り、このオプションを無効にしないで下さい! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}この設定の変更は既に輸送車両が存在する時には不可能です STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :インフラ補修: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :有効にすると、インフラ設備にも維持費が発生するようになります。維持費はネットワークのサイズに非線形で比例する為、小さい会社よりも大きい会社の方が影響が大きくなります @@ -1284,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :ハイトマッ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :反時計回り STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :時計回り STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :シナリオマップ生成時の平地高さ: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :マップ外周タイルの地形変更: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :無効にすると、マップの外周は常に全て海になります STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}北端の1箇所以上のタイルが空き地ではありません STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}マップ端の1箇所以上のタイルが水域ではありません @@ -1342,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :長 (2008年12 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :短 (2008-12-31) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO標準 (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :パレット指定のないNewGRFのデフォルトパレット: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :NewGRFに指定されていない場合、使用するデフォルトパレットを設定します -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :DOS版既定パレット -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Windows版既定パレット - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :新規ゲーム開始時に自動ポーズ: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :有効にすると、新規ゲーム開始時に自動的に一時停止状態になります。事業を始める前にマップを精査するのに便利です STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :一時停止時に可能な行動: {STRING} @@ -1568,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :{COMMA}分の1 STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :変化なし STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :初期の都市サイズ乗数: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :ゲーム開始時に都市が普通の町に比べて平均して何倍の人口規模になるかを設定します -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :街路補修時に道路を整理: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :街路補修に出資した際に、先が建物に塞がれた交差点などを整理撤去するようなります STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :分配グラフの更新頻度: {STRING}日 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :リンクグラフを再計算する時間間隔を設定します。それぞれの再計算では、グラフの単一要素に関わる経路計画だけを計算します。つまり、グラフの一部が更新されるだけで、全体が設定した間隔で更新されるという訳ではありません。この間隔を短くすると再計算のためにCPUへの負荷が大きくなります。長くすると、新たなルートが貨物分配に組み込まれるのに時間がかかるようになります。 @@ -1631,27 +1604,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :ヤード・ポ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :メートル法 (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :国際単位系 (m) -STR_CONFIG_SETTING_GUI :{ORANGE}インターフェース STR_CONFIG_SETTING_LOCALISATION :{ORANGE}多国籍対応 -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}建設 -STR_CONFIG_SETTING_VEHICLES :{ORANGE}輸送機器 -STR_CONFIG_SETTING_STATIONS :{ORANGE}停留施設 -STR_CONFIG_SETTING_ECONOMY :{ORANGE}経済 -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}貨物配送先 -STR_CONFIG_SETTING_AI :{ORANGE}競争会社 -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}表示設定 -STR_CONFIG_SETTING_INTERACTION :{ORANGE}インターフェース +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}グラフィック STR_CONFIG_SETTING_SOUND :{ORANGE}効果音 -STR_CONFIG_SETTING_NEWS :{ORANGE}ニュース/メッセージ -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}信号 -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}貨物取扱 -STR_CONFIG_SETTING_AI_NPC :{ORANGE}コンピュータプレイヤー -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}自動更新 -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}点検 +STR_CONFIG_SETTING_INTERFACE :{ORANGE}インターフェース +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}一般 +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}画面表示 +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}建設 +STR_CONFIG_SETTING_ADVISORS :{ORANGE}ニュース/アドバイス +STR_CONFIG_SETTING_COMPANY :{ORANGE}会社 +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}会計 +STR_CONFIG_SETTING_VEHICLES :{ORANGE}輸送機器 +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}物理モデル STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}経路構築 -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}列車 -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}街 -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}産業 +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}制限 +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}災害/事故 +STR_CONFIG_SETTING_GENWORLD :{ORANGE}マップ生成 +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}環境 +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}地方自治体 +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}街 +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}産業 +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}貨物配送先 +STR_CONFIG_SETTING_AI :{ORANGE}競争会社 +STR_CONFIG_SETTING_AI_NPC :{ORANGE}コンピュータプレイヤー STR_CONFIG_SETTING_PATHFINDER_OPF :オリジナル STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1783,7 @@ STR_LIVERY_FREIGHT_TRAM :貨物用路面 STR_FACE_CAPTION :{WHITE}顔の変更 STR_FACE_CANCEL_TOOLTIP :{BLACK}顔の変更をキャンセルします STR_FACE_OK_TOOLTIP :{BLACK}顔の変更を適用します +STR_FACE_RANDOM :{BLACK}ランダム STR_FACE_MALE_BUTTON :{BLACK}男性 STR_FACE_MALE_TOOLTIP :{BLACK}男性顔を表示します @@ -2687,10 +2663,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}産業 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}雪線の位置: STR_MAPGEN_SNOW_LINE_UP :{BLACK}雪線を上げる STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}雪線を下げる -STR_MAPGEN_RANDOM_SEED :{BLACK}乱数種(シード): -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}乱数種を入力するにはクリックします -STR_MAPGEN_RANDOM :{BLACK}ランダム -STR_MAPGEN_RANDOM_HELP :{BLACK}地形作成の乱数種を変更します STR_MAPGEN_LAND_GENERATOR :{BLACK}地形作成: STR_MAPGEN_TREE_PLACER :{BLACK}植林アルゴリズム: STR_MAPGEN_TERRAIN_TYPE :{BLACK}地形種類: @@ -2717,7 +2689,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}ハイ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}サイズ: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}乱数種を入力 STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}雪線の位置を変更 STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}開始年の変更 @@ -2733,13 +2704,13 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}平地 STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}平地高度を変更 # Map generation progress -STR_GENERATION_WORLD :{WHITE}地形作成中 +STR_GENERATION_WORLD :{WHITE}マップ生成中 STR_GENERATION_ABORT :{BLACK}キャンセル -STR_GENERATION_ABORT_CAPTION :{WHITE}地形作成を中止 -STR_GENERATION_ABORT_MESSAGE :{YELLOW}地形作成をキャンセルしてもよろしいですか? +STR_GENERATION_ABORT_CAPTION :{WHITE}マップ生成を中止 +STR_GENERATION_ABORT_MESSAGE :{YELLOW}マップ生成をキャンセルしてもよろしいですか? STR_GENERATION_PROGRESS :{WHITE}{NUM}%完了 STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM}/{NUM} -STR_GENERATION_WORLD_GENERATION :{BLACK}地形作成中 +STR_GENERATION_WORLD_GENERATION :{BLACK}マップ生成 STR_GENERATION_RIVER_GENERATION :{BLACK}河川を生成中 STR_GENERATION_TREE_GENERATION :{BLACK}植林中 STR_GENERATION_OBJECT_GENERATION :{BLACK}灯台/電波塔配置中 @@ -3297,12 +3268,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :グループ化 STR_GROUP_DEFAULT_SHIPS :グループ化されていない船舶 STR_GROUP_DEFAULT_AIRCRAFTS :グループ化されていない航空機 -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}グループ - クリックするとこのグループに所属する全車両一覧を表示します +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}グループ - クリックするとこのグループに所属する全車両一覧を表示します。ドラック&ドロップで順序を並べ替えられます STR_GROUP_CREATE_TOOLTIP :{BLACK}新規のグループを作成します STR_GROUP_DELETE_TOOLTIP :{BLACK}選択したグループを削除します STR_GROUP_RENAME_TOOLTIP :{BLACK}選択したグループの名称を変更します STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}このグループ内の輸送機器を全体を対象とする自動交換の際も交換されないようにします +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}グループを削除 +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}このグループとそれに所属する全てを削除してもよろしいですか? + STR_GROUP_ADD_SHARED_VEHICLE :共有輸送機器を追加 STR_GROUP_REMOVE_ALL_VEHICLES :全輸送機器を削除 @@ -3823,6 +3797,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :該当区間を STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :最高速度{2:VELOCITY}で該当区間を運行 (ダイヤ設定無) STR_TIMETABLE_TRAVEL_FOR :{STRING}で該当区間を運行 STR_TIMETABLE_TRAVEL_FOR_SPEED :{STRING}で該当区間を運行(最高速度{VELOCITY}) +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :運行({0:STRING}・ダイヤ設定無) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :最高速度{1:VELOCITY}で運行({0:STRING}・ダイヤ設定無) +STR_TIMETABLE_STAY_FOR_ESTIMATED :({STRING}停車・ダイヤ設定無) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :({STRING}で運行・ダイヤ設定無) STR_TIMETABLE_STAY_FOR :して{STRING}停車 STR_TIMETABLE_AND_TRAVEL_FOR :して{STRING}運行 STR_TIMETABLE_DAYS :{COMMA}日 @@ -4276,6 +4254,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}すで STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}グループを作成できません STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}グループを削除できません STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}グループ名を変更できません +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}親グループを設定できません STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}グループ内の全車両を移動できません STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}この車両をこのグループに追加できません STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}グループに共有車両を追加できません diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 617d3d304a..d6809bb759 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -598,10 +598,10 @@ STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}종합: STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}작년에 수익을 낸 차량의 수를 나타냅니다. 자동차/전차, 열차, 선박, 항공기를 포함합니다. STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}현재 영업 중인 역사의 수를 나타냅니다. 기차역, 버스 정류장, 공항 등은 같은 역으로 묶여있어도 따로 집계됩니다. STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}가장 낮은 수입을 가진 차량의 이익입니다. (2년 이상된 차량만 계산) -STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}지난 12분기동안 최소 이익을 달성한 차량이 번 돈의 양입니다. -STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}지난 12분기동안 최대 이익을 달성한 차량이 번 돈의 양입니다. -STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}지난 4분기동안 수송한 화물량입니다. -STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}지난 1분기에 수송한 화물의 종류 수입니다. +STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}지난 12분기 동안 최소 이익을 달성한 차량이 벌어들인 돈의 양입니다. +STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}지난 12분기 동안 최대 이익을 달성한 차량이 벌어들인 돈의 양입니다. +STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}지난 4분기 동안 수송한 화물량입니다. +STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}지난 1분기 동안 수송한 화물의 종류 수입니다. STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}회사가 소지한 재정입니다. STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}회사가 대출해간 재정의 양입니다. STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}위 항목들의 총 합계 점수입니다. @@ -811,13 +811,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} : 정박소 안에서 대기 중입니다. STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} : 격납고 안에서 대기 중입니다. -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE}에 경로를 하나 이상 지정해주십시오 STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}에 빈 경로가 지정되어 있습니다 STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE}에 중복된 경로가 지정되어 있습니다 STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}에 잘못된 경로가 지정되어 있습니다 -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE}의 경로 중에 활주로가 너무 짧은 공항이 있습니다. STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} : 차량이 낡았습니다. STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} : 차량이 매우 낡았습니다. @@ -939,11 +938,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :카탈로니아 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 :12개월마다 +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}언어 STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}사용하실 언어를 선택하세요. @@ -955,9 +956,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}화면 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용하실 화면 해상도를 선택하세요. STR_GAME_OPTIONS_RESOLUTION_OTHER :{G=f}기타 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}스크린 샷 파일 형식 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}사용하실 스크린 샷의 파일 형식을 선택하세요. - STR_GAME_OPTIONS_BASE_GRF :{BLACK}기본 그래픽 세트 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}사용하실 기본 그래픽을 선택하세요. STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM}개 파일 손실 @@ -1073,7 +1071,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :회사 설정 ( STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}분류: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}종류: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}설정 값이 변경된 설정만 목록에 표시하도록 할 수 있습니다. +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}미리 지정한 검색어에 해당하는 설정 목록에 표시하도록 할 수 있습니다. STR_CONFIG_SETTING_RESTRICT_BASIC :기본 설정 STR_CONFIG_SETTING_RESTRICT_ADVANCED :고급 설정 STR_CONFIG_SETTING_RESTRICT_ALL :전문가 설정 / 모든 설정 @@ -1128,12 +1126,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :열차가 역 STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 옵션을 켜면 회차했을 때 다음 목적지까지 가는 더 짧은 경로가 있어도 열차가 비두단식 역에서 회차할 수 없게 됩니다. STR_CONFIG_SETTING_DISASTERS :재앙: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :블록이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙 옵션을 켜거나 끕니다. -STR_CONFIG_SETTING_CITY_APPROVAL :지역 개발에 대한 도시 의회의 태도: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :지역 개발에 대한 도시의 태도: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :회사가 유발하는 소음과 환경 파괴가 회사에 대한 도시의 평가치와 향후 해당 지역에서의 건설 행동에 얼마나 영향을 미칠지 선택하십시오. -STR_CONFIG_SETTING_BUILDONSLOPES :경사/해안가 위의 건설을 허용: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :이 옵션을 켜면 도로, 철도, 역 등을 대부분의 경사에 설치할 수 있게 됩니다. 이 옵션을 끄면 오직 트랙의 방향과 일치하는 경사에만 설치가 가능하기 때문에 기반 지형을 만들 필요가 없습니다. -STR_CONFIG_SETTING_AUTOSLOPE :건물, 트랙 등의 하부 지형 편집 허용 (자동 슬로프): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :건물, 트랙 등의 하부 지형 편집 허용: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :건물이나 도로/선로 등을 제거하지 않고도 하부의 지형을 편집할 수 있게 허용합니다. STR_CONFIG_SETTING_CATCHMENT :더 현실적인 역세권 지정: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :역과 공항의 종류에 따라 다른 크기의 역세권을 가지도록 만듭니다. @@ -1157,14 +1153,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :열차/선박 STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :─ 모양의 수평 선로와 │ 모양의 수직 선로가 바로 이어져 만날 때 90도 회전이 발생합니다. 이 옵션을 켜면 열차가 칸 가장자리를 통과할 때 90도로 회전할 수 있도록 허용합니다. 이 옵션은 선박의 회전 반경에도 적용됩니다. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :역이 같은 방향으로 붙어있지 않아도 같은 이름의 역 짓기 허용: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :이미 존재하는 역을 직접 건드리지 않고도 역의 일부분을 새로 추가/확장하는 것을 허용합니다. 인접한 칸에 기존과 다른 새로운 역을 놓을 때에는 CTRL+클릭해야 합니다. -STR_CONFIG_SETTING_IMPROVEDLOAD :향상된 수송 알고리즘 사용: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :이 옵션을 켜면 역에서 차량이 여러 대가 기다리고 있으면 먼저 도착한 순서대로 화물을 싣게 됩니다. 다음에 도착하는 차량은, 이미 화물을 싣고 있는 차량이 화물을 모두 싣고 난 다음에서야 적재를 시작하게 됩니다. -STR_CONFIG_SETTING_GRADUAL_LOADING :화물을 차량에 단계적으로 싣기: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :적재된 화물의 양에 따라 고정된 시간이 지나면 한 번에 모두 적재하는 대신, 차량의 적재 상황을 시간이 지남에 따라 단계별로 표시합니다. STR_CONFIG_SETTING_INFLATION :인플레이션(화폐 가치 하락) 사용: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :비용이 지불하는 것보다 약간 더 빠르게 성장하고 있는 경제가 되면 인플레이션을 활성화합니다. -STR_CONFIG_SETTING_SELECTGOODS :수요가 있을 때만 화물을 역에 옮겨놓음: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :역으로 수송되는 화물만 차량에 적재가 가능해집니다. 이 옵션을 켜면 역에서 수송되지 않는 화물이 낮은 수송등급을 받는 것을 막아줍니다. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :다리의 최대 건설 길이: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :다리의 최대 길이를 제한할 수 있습니다. STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :터널의 최대 길이: {STRING} @@ -1192,8 +1182,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :열차가 기 STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :가까운쪽 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :중간 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :먼쪽 -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :정류장/적치장이 빌 때까지 앞에서 차량을 대기시킴: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :자동차가 정류장이나 적치장이 빌 때까지 그 앞쪽에서 기다리도록 합니다. STR_CONFIG_SETTING_AUTOSCROLL :가장자리에 마우스를 가져가면 화면 움직이기: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :이 옵션을 켜면, 마우스를 게임 및 외부 화면 창의 가장자리에 가까이 가져가면 화면을 이동시킵니다. STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :사용 안 함 @@ -1203,7 +1191,7 @@ STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :모든 화면 STR_CONFIG_SETTING_BRIBE :지역 당국에 뇌물을 주는 행위 허용: {STRING} STR_CONFIG_SETTING_BRIBE_HELPTEXT :회사가 지역 도시 당국에 뇌물을 주는 것을 허용합니다. 뇌물 행위가 적발되는 경우, 회사는 해당 도시에서 6개월간 아무 행동도 할 수 없습니다. STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :독점 운송권 구입 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :한 회사가 어떤 도시의 독점수송권을 구매하면, 그 도시에 있는 상대편의 역에서는 그 해동안 (승객을 포함한) 그 어떠한 화물도 받을 수 없습니다. +STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT :한 회사가 어떤 도시의 독점수송권을 구매하면, 그 도시에 있는 상대편의 역에서는 그 해 동안 (승객을 포함한) 그 어떠한 화물도 받을 수 없습니다. STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS :도시 상업 건물 건설에 투자하는 행위 허용: {STRING} STR_CONFIG_SETTING_ALLOW_FUND_BUILDINGS_HELPTEXT :회사가 도시가 새로운 건물에 투자할 수 있도록 자금을 주는 것을 허용합니다. STR_CONFIG_SETTING_ALLOW_FUND_ROAD :도시 도로 보수공사 시행을 허용: {STRING} @@ -1224,15 +1212,11 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :도시 소유 STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :도시 소유의 도로 위에 버스 정류장 건설을 허용합니다. STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :경쟁자 소유의 도로 위에 버스 정류장 건설 허용: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :다른 회사 소유의 도로 위에 버스 정류장을 건설하는 것을 허용합니다. -STR_CONFIG_SETTING_ADJACENT_STATIONS :역 바로 옆에 다른 이름의 역 건설 허용: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :기존에 존재하는 역 바로 옆에 새로운 역을 붙여서 건설할 수 있도록 허용합니다. -STR_CONFIG_SETTING_DYNAMIC_ENGINES :여러 개의 NewGRF 엔진 세트 허용: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :오래된 NewGRF에 대한 적합 옵션입니다. 정확히 어떤 기능을 하는지 알지 못한다면 절대 이 옵션을 끄지 마십시오! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}이미 차량이 존재하면 이 설정을 변경하실 수 없습니다. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :기반시설 유지비: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 옵션을 활성화하면 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. -STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :옛날 공항이 사라지지 않고 계속 만들 수 있게 함: {STRING} +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :옛날 공항을 사라지지 않고 계속 만들 수 있게 함: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 옵션을 켜면 소형 공항을 포함한 모든 공항 종류를 도입 이후 계속 사용할 수 있게 됩니다. STR_CONFIG_SETTING_WARN_LOST_VEHICLE :차량이 길을 잃으면 경고: {STRING} @@ -1266,27 +1250,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :도시 이름 STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :그래프 선의 두께: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :그래프의 선 두께를 설정합니다. 얇으면 자세히 볼 수 있고, 두꺼우면 눈에 확 들어오며 색상을 분간하기가 편해집니다. +STR_CONFIG_SETTING_LANDSCAPE :지형: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :지형에 따라 화물과 도시 성장 요구 조건이 다른 게임 플레이 시나리오가 만들어집니다. NewGRF과 게임 스크립트를 통해 세밀한 조절이 가능합니다. STR_CONFIG_SETTING_LAND_GENERATOR :지형 만들기: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :오리지널 모드는 기본 그래픽 세트에 따라 다른 지형을 생성하며, 단조로운 지형을 구성합니다. 천지창조는 개선된 제어 설정을 가진 생성기로 만들어진 임의 지형(펄린 노이즈)을 구성합니다. STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :오리지널 STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :천지창조 +STR_CONFIG_SETTING_TERRAIN_TYPE :지형 종류: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(천지창조 전용) 지형의 언덕 모양을 결정합니다. +STR_CONFIG_SETTING_INDUSTRY_DENSITY :산업시설 수: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :게임을 플레이하는 동안 얼마나 많은 산업시설이 생성되고 유지되어야 할 지를 설정합니다. STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :정유 공장의 최대 건설 범위: 지도 맨 끝에서부터 {STRING} 이내 STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :정유 공장은 지도의 동서남북 끝 경계 근처에만 건설할 수 있습니다. STR_CONFIG_SETTING_SNOWLINE_HEIGHT :설선 고도: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :지형의 거친 정도 ('천지창조' 전용): {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :아한대 기후의 설선 고도를 조절합니다. 눈은 산업시설의 생성과 도시 성장에 영향을 미칩니다. +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :지형의 거친 정도: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(천지창조 전용) 언덕의 빈도수를 선택합니다. 평탄한 지형은 개수가 적고 넓게 퍼진 언덕을 만듭니다. 거친 지형은 똑같아 보일 수 있는 많은 언덕이 생기게 됩니다. STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :매우 부드럽게 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :부드럽게 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :거칠게 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :매우 거칠게 +STR_CONFIG_SETTING_VARIETY :산세 험준도: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(천지창조 전용) 지도가 산지와 평지를 모두 갖도록 만들 것인 지를 결정합니다. 이 옵션은 지형을 더 평평하게 만드므로, 다른 옵션은 '산'으로 설정하시기 바랍니다. +STR_CONFIG_SETTING_RIVER_AMOUNT :강의 양: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :강을 얼마나 만들지 선택하십시오. STR_CONFIG_SETTING_TREE_PLACER :나무 배치 알고리즘: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :지도의 나무 분포 형식을 선택하십시오. '오리지널'을 선택하면 나무가 고르게 분포되고, '향상됨'을 선택하면 나무가 군락을 이루게 됩니다. STR_CONFIG_SETTING_TREE_PLACER_NONE :없음 STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :오리지널 STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :향상됨 +STR_CONFIG_SETTING_ROAD_SIDE :자동차/전차: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :통행방향을 선택하세요. STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :높이맵 회전: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :반시계방향 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :시계방향 STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :평지 시나리오의 평지 높이: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :지도 가장자리의 지형 변경을 허용: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :이 옵션을 끄면, 지도의 동서남북 끝이 반드시 모두 물이어야 합니다. STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}지도 북쪽 맨 가장자리에 있는 지형의 칸 한 개 이상이 비어있지 않습니다. STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}지도 맨 가장자리에 있는 칸 한 개 이상이 물이 아닙니다. @@ -1337,17 +1335,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :끄기 STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :마우스 왼쪽 버튼으로 스크롤: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :왼쪽 마우스 버튼을 드래그하여 지도를 스크롤 할 수 있도록 합니다. 터치 스크린 환경에서 이 옵션을 켜면 매우 유용합니다. +STR_CONFIG_SETTING_AUTOSAVE :자동 저장: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :게임을 자동으로 저장할 간격을 선택하십시오. + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :저장 파일의 이름으로 {STRING} 날짜 형식을 사용합니다. STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :게임 저장 파일 이름에 사용할 날짜 형식을 선택합니다. STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :긴 (2012년 1월 1일) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :짧은 (2012.01.01) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :국제표준규격 (2012-01-01) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :기본으로 설정할 NewGRF 색상표: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :어떤 색상표를 사용할지 지정하지 않은 NewGRF에 사용할 기본 색상표를 선택합니다. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :기본(DOS) 색상표 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :기존 (Windows) 색상표 - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시정지: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 옵션을 켜면, 새로은 게임을 시작할 때 지도를 더욱 살펴볼 수 있도록 게임을 자동으로 일시정시시킵니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :일시 정지 상태에서 가능한 행동: {STRING} @@ -1356,7 +1352,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :아무 것도 STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :모든 비건설적인 행동 STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :지형 편집을 제외한 모든 행동 STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :모든 행동 -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :고급화된 차량 목록 사용: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :차량 목록에서 그룹 기능 사용: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :고급화된 차량 목록의 사용 여부를 설정합니다. STR_CONFIG_SETTING_LOADING_INDICATORS :적재율 표시: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :적재나 하차하는 차량 위에 적재/하차율을 표시할지 말지를 선택합니다. @@ -1364,8 +1360,8 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :열차 시간 STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :열차 시간표에서 열차의 운행 시간을 '일'보다 자세한 '틱'으로 표시합니다. 1일은 74틱과 같습니다. STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :시간표에서 출발일과 도착일 표시: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :열차 시간표에서 예상 출발 & 도착 시간을 표시합니다. -STR_CONFIG_SETTING_QUICKGOTO :행선지 설정 후 계속해서 행선지 지정: {STRING} -STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :경로 창을 열었을 때, 자동으로 '행선지' 버튼을 눌러 창을 열면 바로 행선지를 지정할 수 있도록 합니다. +STR_CONFIG_SETTING_QUICKGOTO :빠른 행선지 설정: {STRING} +STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :경로 창을 열면 자동으로 '행선지' 버튼을 선택하여 곧바로 행선지를 지정할 수 있도록 합니다. STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :철도 형식 기본값 설정 (게임 시작/불러온 후): {STRING} STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :게임을 새로 시작하거나 불러온 뒤에 사용할 철도의 종류를 선택합니다. '처음 사용 가능한 것'은 가장 오래된 철도 종류를 선택하고, '최신 기술의 철도'는 가장 최신에 나온 철도 종류를 선택하며 '가장 많이 사용한 것'은 플레이어가 가장 많이 사용한 철도 타입을 선택합니다. STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :처음 사용 가능한 것 @@ -1397,13 +1393,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :주변 풍경 STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :사용 가능한 차량이 없을 경우 해당 기반시설 비활성화: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :이 옵션을 켜면, 불필요하게 시간과 돈을 낭비하지 않도록 차량이 존재하지 않는 기반시설을 설치할 수 없게 됩니다. -STR_CONFIG_SETTING_MAX_TRAINS :최대 열차 수: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :회사당 최대 열차 수: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :한 회사가 소유할 수 있는 열차의 최대 수를 제한합니다. -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :최대 자동차/전차 수: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :회사당 최대 자동차/전차 수: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :한 회사가 소유할 수 있는 자동차/전차의 최대 수를 제한합니다. -STR_CONFIG_SETTING_MAX_AIRCRAFT :최대 항공기 수: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :회사당 최대 항공기 수: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :한 회사가 소유할 수 있는 항공기의 최대 수를 제한합니다. -STR_CONFIG_SETTING_MAX_SHIPS :최대 선박 수: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :회사당 최대 선박 수: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :한 회사가 소유할 수 있는 선박의 최대 수를 제한합니다. STR_CONFIG_SETTING_AI_BUILDS_TRAINS :컴퓨터의 철도 사용을 허가하지 않음: {STRING} @@ -1477,8 +1473,8 @@ STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :일반 정보: STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :도로 재건축 투자나 수송 독점권의 구입 등과 같은 일반적인 사건에 대한 소식을 메시지로 알려줍니다. STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :끄기 -STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :요약 -STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :전체 +STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :상태 표시줄로 알림 +STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :전체 메시지로 알림 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :컬러로 된 뉴스가 시작되는 해: {STRING}년 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다. @@ -1569,8 +1565,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :{COMMA}개 중 STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :없음 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :초기 대도시 크기 비율: 일반 도시보다 {STRING}배 크게 시작 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :게임을 시작했을 때 일반 도시에 대한 대도시의 평균 크기를 설정합니다. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :도로 재건설 중 불필요한 도로 요소를 제거: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :도로 재건설에 투자하였을 때, 재건설 도중에 불필요한 도로를 제거합니다. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :분배 상태를 매 {STRING}일 마다 갱신 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :다음 연결 상태를 재계산하기까지의 시간입니다. 한 번의 재계산할 때마다 그래프의 한 요소를 위한 계획을 계산합니다. 이는 이 설정의 X값에 따라 모든 그래프가 매 X일마다 갱신되는 것이 아니라는 것을 뜻합니다. 일부 요소만 재계산된다는 뜻입니다. 값이 작으면 작을 수록 CPU가 계산해야 할 횟수가 늘어납니다. 값을 크게 설정할 수록 화물 분배 상태가 새롭게 지정되는 데 더 오랜 시간이 걸립니다. @@ -1584,7 +1578,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"균형"은 A STR_CONFIG_SETTING_DISTRIBUTION_MAIL :우편에 대한 분배 형식: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"균형"은 A역에서 B역으로 가려는 우편물의 수가 B에서 A로 가려는 우편물의 수와 비슷하다는 뜻입니다. "불균형"은 우편물이 아무 방향이나 임의의 양만큼 가게 됨을 뜻합니다. "수동"은 자동적인 우편물 분배가 일어나지 않고 기존 방식을 사용하겠음을 뜻합니다. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :장갑 화물에 대한 분배 형식: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :장갑 화물은 온대 기후의 귀금속, 아열대 기후의 다이아몬드 또는 냉대 기후의 금을 말합니다. NewGRF을 사용하면 달라질 수 있습니다. "균형"은 A역에서 B역으로 가려는 화물의 수가 B에서 A로 가려는 화물의 수와 비슷하다는 뜻입니다. "불균형"은 화물이 아무 방향이나 임의의 양만큼 가게 됨을 뜻합니다. "수동"은 자동적인 화물 분배가 일어나지 않고 기존 방식을 사용하겠음을 뜻합니다. 냉대 기후에서는 균형으로 설정하면 은행이 금광으로 금을 보내지 않으려 하기 때문에 불균형이나 수동으로 설정하는 것을 추천합니다. 온대 기후나 아열대 기후에서는 은행이 일부 적재한 귀금속을 원래 은행으로 보내려고 하기 때문에 균형을 선택해도 됩니다. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :장갑 화물은 온대 기후의 귀금속, 아열대 기후의 다이아몬드 또는 아한대 기후의 금을 말합니다. NewGRF을 사용하면 달라질 수 있습니다. "균형"은 A역에서 B역으로 가려는 화물의 수가 B에서 A로 가려는 화물의 수와 비슷하다는 뜻입니다. "불균형"은 화물이 아무 방향이나 임의의 양만큼 가게 됨을 뜻합니다. "수동"은 자동적인 화물 분배가 일어나지 않고 기존 방식을 사용하겠음을 뜻합니다. 아한대 기후에서는 균형으로 설정하면 은행이 금광으로 금을 보내지 않으려 하기 때문에 불균형이나 수동으로 설정하는 것을 추천합니다. 온대 기후나 아열대 기후에서는 은행이 일부 적재한 귀금속을 원래 은행으로 보내려고 하기 때문에 균형을 선택해도 됩니다. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :다른 화물에 대한 분배 형식: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"불균형"은 화물이 아무 방향이나 임의의 양만큼 가게 됨을 뜻합니다. "수동"은 자동적인 화물 분배가 일어나지 않고 기존 방식을 사용하겠음을 뜻합니다. 특별한 이유가 없는 한, "불균형"이나 "수동"으로 설정하십시오. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :분배 정확도: {STRING} @@ -1632,27 +1626,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :임페리얼법 STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :미터법 (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :국제표준규격 (m) -STR_CONFIG_SETTING_GUI :{ORANGE}인터페이스 STR_CONFIG_SETTING_LOCALISATION :{ORANGE}단위 설정 -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}건설 -STR_CONFIG_SETTING_VEHICLES :{ORANGE}차량 -STR_CONFIG_SETTING_STATIONS :{ORANGE}역 -STR_CONFIG_SETTING_ECONOMY :{ORANGE}경제 -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}화물 분배 -STR_CONFIG_SETTING_AI :{ORANGE}경쟁자 -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}디스플레이 옵션 -STR_CONFIG_SETTING_INTERACTION :{ORANGE}조작 옵션 +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}그래픽 STR_CONFIG_SETTING_SOUND :{ORANGE}효과음 -STR_CONFIG_SETTING_NEWS :{ORANGE}뉴스와 메시지 -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}신호기 -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}화물 -STR_CONFIG_SETTING_AI_NPC :{ORANGE}컴퓨터 플레이어 -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}자동 교체 -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}정비 +STR_CONFIG_SETTING_INTERFACE :{ORANGE}인터페이스 +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}일반 +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}게임 화면 +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}건설 +STR_CONFIG_SETTING_ADVISORS :{ORANGE}뉴스 / 정보 +STR_CONFIG_SETTING_COMPANY :{ORANGE}회사 +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}회계 +STR_CONFIG_SETTING_VEHICLES :{ORANGE}차량 +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}물리 STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}경로 -STR_CONFIG_SETTING_VEHICLES_TRAINS :{G=f}{ORANGE}열차 -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}도시 -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}산업시설 +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}제한 +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}재앙 / 사고 +STR_CONFIG_SETTING_GENWORLD :{ORANGE}세계 제작 +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}환경 +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}지역 당국 +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}도시 +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}산업시설 +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}화물 분배 +STR_CONFIG_SETTING_AI :{ORANGE}경쟁자 +STR_CONFIG_SETTING_AI_NPC :{ORANGE}컴퓨터 플레이어 STR_CONFIG_SETTING_PATHFINDER_OPF :오리지널 STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1715,7 +1711,7 @@ STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}사용 STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}멀티 플레이 게임을 시작합니다 STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}온대 기후 선택 -STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}냉대 기후 선택 +STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}아한대 기후 선택 STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}아열대 기후 선택 STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}장난감나라 선택 @@ -1761,10 +1757,10 @@ STR_CHEAT_CHANGE_COMPANY :{LTBLUE}다음 STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}마법 불도저 (산업시설, 움직이지 못하는 건물 제거): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}터널 교차 허용: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}대형 항공기가 소형 공항에서 (자주) 충돌하지 않게 함: {ORANGE}{STRING} -STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :온대 기후 -STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :냉대 기후 -STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :아열대 기후 -STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :장난감 나라 +STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :온대 기후 지형 +STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :아한대 지형 +STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :아열대 기후 지형 +STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :장난감나라 지형 STR_CHEAT_CHANGE_DATE :{LTBLUE}날짜 변경: {ORANGE}{DATE_SHORT} STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}현재의 연도를 변경 STR_CHEAT_SETUP_PROD :{LTBLUE}1차 산업시설 생산량 조절 허용: {ORANGE}{STRING} @@ -1809,6 +1805,7 @@ STR_LIVERY_FREIGHT_TRAM :화물 전차 STR_FACE_CAPTION :{WHITE}얼굴 선택 STR_FACE_CANCEL_TOOLTIP :{BLACK}새 얼굴 선택을 취소합니다. STR_FACE_OK_TOOLTIP :{BLACK}이 얼굴을 선택합니다. +STR_FACE_RANDOM :{BLACK}무작위화 STR_FACE_MALE_BUTTON :{BLACK}남성 STR_FACE_MALE_TOOLTIP :{BLACK}남성 얼굴 선택 @@ -2678,7 +2675,7 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: STR_SAVELOAD_OSKTITLE :{BLACK}게임을 저장할 파일명을 입력하세요 # World generation -STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}세계 창조 +STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}세계 제작 STR_MAPGEN_MAPSIZE :{BLACK}지도 크기: STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}지도의 크기를 칸 수 기준으로 선택하십시오. 사용 가능한 지도의 칸 수는 선택한 값보다 조금 적습니다. STR_MAPGEN_BY :{BLACK}x @@ -2688,10 +2685,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}산업 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}설선 고도: STR_MAPGEN_SNOW_LINE_UP :{BLACK}설선 고도를 1칸 높입니다 STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}설선 고도를 1칸 낮춥니다 -STR_MAPGEN_RANDOM_SEED :{BLACK}무작위수치: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}무작위수치를 입력하세요 -STR_MAPGEN_RANDOM :{BLACK}무작위화 -STR_MAPGEN_RANDOM_HELP :{BLACK}지형 만들기를 위한 무작위수치 변경 STR_MAPGEN_LAND_GENERATOR :{BLACK}지형 만들기: STR_MAPGEN_TREE_PLACER :{BLACK}나무 알고리즘: STR_MAPGEN_TERRAIN_TYPE :{BLACK}지형 종류: @@ -2718,7 +2711,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}높이 STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}크기: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}임의 설정값 입력 STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}설선 고도를 변경 STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}시작 연도를 변경합니다. @@ -2736,7 +2728,7 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}평지 # Map generation progress STR_GENERATION_WORLD :{WHITE}세계 만드는 중.. STR_GENERATION_ABORT :{BLACK}중지 -STR_GENERATION_ABORT_CAPTION :{WHITE}세계 만들기 중지 +STR_GENERATION_ABORT_CAPTION :{WHITE}세계 제작 중지 STR_GENERATION_ABORT_MESSAGE :{YELLOW}세계 만들기를 중지하시겠습니까? STR_GENERATION_PROGRESS :{WHITE}{NUM}% 완료 STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} @@ -2773,6 +2765,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}위로 STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 위로 올립니다. STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}아래로 STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 아래로 내립니다. +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}업데이트 +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}새 버전이 있는 NewGRF 파일을 업데이트합니다. STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}설치된 NewGRF의 목록입니다. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}매개 변수 설정 @@ -2797,6 +2791,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}일치하 STR_NEWGRF_SETTINGS_DISABLED :{RED}사용 안 함 STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}이 OpenTTD 버전과 맞지 않습니다... +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}프리셋 저장 +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}사용 가능한 프리셋 목록입니다. 아래에 같은 이름을 복사하려면 선택하십시오. +STR_SAVE_PRESET_TITLE :{BLACK}프리셋의 이름을 입력하세요 +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}저장할 프리셋에 지정할 이름입니다. +STR_SAVE_PRESET_CANCEL :{BLACK}취소 +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}프리셋을 바꾸지 않습니다. +STR_SAVE_PRESET_SAVE :{BLACK}저장 +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}이 프리셋을 선택한 이름으로 저장합니다. + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF 매개 변숫값 변경 STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}닫기 @@ -3076,9 +3080,9 @@ STR_STATION_VIEW_WAITING_STATION :역: 대기 STR_STATION_VIEW_WAITING_AMOUNT :양: 대기 STR_STATION_VIEW_PLANNED_STATION :역: 계획 STR_STATION_VIEW_PLANNED_AMOUNT :양: 계획 -STR_STATION_VIEW_FROM :{YELLOW}{1:STATION} 출발 {0:CARGO_SHORT} -STR_STATION_VIEW_VIA :{YELLOW}{1:STATION} 경유 {0:CARGO_SHORT} -STR_STATION_VIEW_TO :{YELLOW}{1:STATION} 도착 {0:CARGO_SHORT} +STR_STATION_VIEW_FROM :{YELLOW}{1:STATION} 출발: {0:CARGO_SHORT} +STR_STATION_VIEW_VIA :{YELLOW}{1:STATION} 경유: {0:CARGO_SHORT} +STR_STATION_VIEW_TO :{YELLOW}{1:STATION} 도착: {0:CARGO_SHORT} STR_STATION_VIEW_FROM_ANY :{RED}알 수 없는 역에서 출발한 {CARGO_SHORT} STR_STATION_VIEW_TO_ANY :{RED}아무 역에나 도착하는 {CARGO_SHORT} STR_STATION_VIEW_VIA_ANY :{RED}어디든 경유하는 {CARGO_SHORT} @@ -3298,12 +3302,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :그룹에 속 STR_GROUP_DEFAULT_SHIPS :그룹에 속하지 않은 선박 STR_GROUP_DEFAULT_AIRCRAFTS :그룹에 속하지 않은 항공기 -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}그룹 - 클릭해서 그룹에 속한 차량을 모두 나열합니다. +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}그룹 - 클릭해서 그룹에 속한 차량을 모두 나열합니다. 상하위 그룹을 바꾸려면 드래그 앤 드롭하십시오. STR_GROUP_CREATE_TOOLTIP :{BLACK}그룹 만들기 STR_GROUP_DELETE_TOOLTIP :{BLACK}선택한 그룹 삭제 STR_GROUP_RENAME_TOOLTIP :{BLACK}선택한 그룹 이름 바꾸기 STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}클릭하여 전체 자동 교체로부터 이 그룹을 보호합니다. +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}그룹 삭제 +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}이 그룹과 하위 그룹을 정말 삭제하시겠습니까? + STR_GROUP_ADD_SHARED_VEHICLE :경로를 공유 중인 차량 추가 STR_GROUP_REMOVE_ALL_VEHICLES :모든 차량 제거 @@ -3379,7 +3386,7 @@ STR_DEPOT_RENAME_DEPOT_CAPTION :차량기지 STR_DEPOT_NO_ENGINE :{BLACK}- STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}{STRING} -STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} 차량{STRING} +STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}차량 {NUM}대{STRING} STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}열차 - 열차에 차량을 추가하거나 제거하려면 차량을 왼쪽 클릭으로 드래그하시고, 열차 정보를 보려면 오른쪽 클릭하십시오. 두 기능을 해당 차량 뒤에 딸려오는 차량에 적용하고 싶다면 CTRL 키를 누르고 계십시오. @@ -3477,7 +3484,7 @@ STR_REPLACE_VEHICLES_START :{BLACK}차량 STR_REPLACE_VEHICLES_NOW :모든 차량을 지금 교체 STR_REPLACE_VEHICLES_WHEN_OLD :오래된 차량만 교체 STR_REPLACE_HELP_START_BUTTON :{BLACK}왼쪽에서 선택한 기관차를 오른쪽의 새 기관차로 교체하려면 누르세요 -STR_REPLACE_NOT_REPLACING :{BLACK}교체 안됨 +STR_REPLACE_NOT_REPLACING :{BLACK}교체 안 됨 STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}차량이 선택되지 않았음 STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGINE}(으)로 교체 STR_REPLACE_VEHICLES_STOP :{BLACK}차량 교체 중지 @@ -3491,9 +3498,9 @@ STR_REPLACE_WAGONS :화물차 STR_REPLACE_HELP_RAILTYPE :{BLACK}교체할 기관차의 철도 종류를 고르세요 STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}왼쪽의 선택한 기관차가 어떤 기관차로 교체되고 있는지 표시합니다. STR_REPLACE_RAIL_VEHICLES :철도 차량 -STR_REPLACE_ELRAIL_VEHICLES :전기철도 +STR_REPLACE_ELRAIL_VEHICLES :전기철도 차량 STR_REPLACE_MONORAIL_VEHICLES :모노레일 차량 -STR_REPLACE_MAGLEV_VEHICLES :자기부상 +STR_REPLACE_MAGLEV_VEHICLES :자기부상 차량 STR_REPLACE_REMOVE_WAGON :{BLACK}화물차 제거: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}자동 교체시 열차의 길이가 교체 전보다 길어지면 앞쪽부터 화물칸를 제거하여 열차의 전체 길이가 달라지지 않도록 합니다. @@ -3692,8 +3699,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}선택 STR_ORDER_REFIT :{BLACK}개조 STR_ORDER_REFIT_TOOLTIP :{BLACK}이 경로에서 열차를 어떤 화물을 받을 수 있게 개조할 것인지 선택하십시오. CTRL+클릭하면 개조 설정을 해제합니다. -STR_ORDER_REFIT_AUTO :{G=f}{BLACK}자동 개조 -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}이 단계에서 자동으로 개조할 화물의 종류를 선택하세요. CTRL+클릭하면 개조 설정을 해제합니다. 자동 개조 기능은 개조 가능한 차량에서만 사용할 수 있습니다. +STR_ORDER_REFIT_AUTO :{BLACK}개조 +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}이 경로에서 개조할 화물의 종류를 선택하세요. CTRL+클릭하면 개조 설정을 해제합니다. 개조 기능은 개조 가능한 차량에서만 사용할 수 있습니다. STR_ORDER_DROP_REFIT_AUTO :화물 종류 고정 STR_ORDER_DROP_REFIT_AUTO_ANY :이용가능한 화물 @@ -3760,7 +3767,7 @@ STR_ORDER_SHIP_DEPOT :정박소 STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT} -STR_ORDER_REFIT_ORDER :({STRING}(으)로 개조) +STR_ORDER_REFIT_ORDER :({STRING}{G 0 "으" ""}로 개조) STR_ORDER_REFIT_STOP_ORDER :({STRING}에서 수리 후 멈춤) STR_ORDER_STOP_ORDER :(멈춤) @@ -3768,36 +3775,36 @@ STR_ORDER_GO_TO_STATION :{STRING} {STATI STR_ORDER_IMPLICIT :(자동) -STR_ORDER_FULL_LOAD :(모든 화물을 가득 실음) +STR_ORDER_FULL_LOAD :(모든 화물을 가득 싣기) STR_ORDER_FULL_LOAD_ANY :(아무 화물이나 가득 싣기) STR_ORDER_NO_LOAD :(싣지 않기) STR_ORDER_UNLOAD :(화물 하차 후 적재) -STR_ORDER_UNLOAD_FULL_LOAD :(화물 하차 후 모든 화물을 싣고 출발) +STR_ORDER_UNLOAD_FULL_LOAD :(화물 하차 후 모든 화물을 가득 싣기) STR_ORDER_UNLOAD_FULL_LOAD_ANY :(화물 하차 후 아무 화물이나 가득 싣기) STR_ORDER_UNLOAD_NO_LOAD :(화물 하차 후 빈 차로 출발) -STR_ORDER_TRANSFER :(환승 후 화물 받음) -STR_ORDER_TRANSFER_FULL_LOAD :(환승 후 모든 화물 적재) +STR_ORDER_TRANSFER :(환승 후 화물 적재) +STR_ORDER_TRANSFER_FULL_LOAD :(환승 후 모든 화물을 가득 싣기) STR_ORDER_TRANSFER_FULL_LOAD_ANY :(환승 후 아무 화물이나 가득 싣기) STR_ORDER_TRANSFER_NO_LOAD :(환승 후 빈 차로 출발) -STR_ORDER_NO_UNLOAD :(내리지 않고 화물을 받음) -STR_ORDER_NO_UNLOAD_FULL_LOAD :(내리지 않고 가득 찰 때까지 기다림) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(내리지 않고 아무 화물이나 가득 찰 때까지 기다림) +STR_ORDER_NO_UNLOAD :(내리지 않고 화물 적재) +STR_ORDER_NO_UNLOAD_FULL_LOAD :(내리지 않고 모든 화물을 가득 싣기) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(내리지 않고 아무 화물이나 가득 싣기) STR_ORDER_NO_UNLOAD_NO_LOAD :(적재와 하차 없음) -STR_ORDER_AUTO_REFIT :({STRING}{G 0 "으" ""}로 자동 개조) -STR_ORDER_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 모든 화물을 가득 싣기) -STR_ORDER_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 아무 화물이나 가득 싣기) -STR_ORDER_UNLOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 화물 하차 후 적재) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 화물 하차 후 모든 화물을 싣고 출발) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 화물 하차 후 아무 화물이나 가득 싣기) -STR_ORDER_TRANSFER_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 환승 후 화물 받음) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 환승 후 모든 화물 적재) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 환승 후 아무 화물이나 가득 싣기) -STR_ORDER_NO_UNLOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 내리지 않고 화물을 받음) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 내리지 않고 가득 찰 때까지 기다림) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 자동 개조하면서 내리지 않고 아무 화물이나 가득 찰 때까지 기다림) +STR_ORDER_AUTO_REFIT :({STRING}{G 0 "으" ""}로 개조) +STR_ORDER_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 모든 화물을 가득 싣기) +STR_ORDER_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 개조하며 아무 화물이나 가득 싣기) +STR_ORDER_UNLOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물 하차 후 적재) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물 하차 후 모든 화물을 가득 싣기) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물 하차 후 아무 화물이나 가득 싣기) +STR_ORDER_TRANSFER_REFIT :({STRING}{G 0 "으" ""}로 개조하며 환승 후 화물 적재) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 환승 후 모든 화물을 가득 싣기) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 개조하며 환승 후 아무 화물이나 가득 싣기) +STR_ORDER_NO_UNLOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물을 내리지 않고 적재) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물을 내리지 않고 모든 화물을 가득 싣기) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :({STRING}{G 0 "으" ""}로 개조하며 화물을 내리지 않고 아무 화물이나 가득 싣기) -STR_ORDER_AUTO_REFIT_ANY :{G=m}이용가능한 화물 +STR_ORDER_AUTO_REFIT_ANY :이용 가능한 화물 STR_ORDER_STOP_LOCATION_NEAR_END :[가까운쪽] STR_ORDER_STOP_LOCATION_MIDDLE :[중간] @@ -3821,9 +3828,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}시간 STR_TIMETABLE_NO_TRAVEL :운행정보 없음 STR_TIMETABLE_NOT_TIMETABLEABLE :이동 (자동; 다음 경로에 의해 시간표 작성) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :운행 (시간표가 작성되지 않음) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :최대 {2:VELOCITY}의 속력으로 운행 (시간표 작성 안됨) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :최대 {2:VELOCITY}의 속력으로 운행 (시간표 작성 안 됨) STR_TIMETABLE_TRAVEL_FOR :{STRING}에 걸쳐 운행 -STR_TIMETABLE_TRAVEL_FOR_SPEED :{0:STRING}동안 최대 {1:VELOCITY}의 속력으로 운행 +STR_TIMETABLE_TRAVEL_FOR_SPEED :{0:STRING} 동안 최대 {1:VELOCITY}의 속력으로 운행 +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :운행 ({STRING} 동안, 시간표 작성 안 됨) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :최대 {1:VELOCITY}의 속력으로 운행 ({0:STRING} 동안, 시간표 작성 안 됨) +STR_TIMETABLE_STAY_FOR_ESTIMATED :({STRING} 동안 정차, 시간표 작성 안 됨) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :({STRING} 동안 운행, 시간표 작성 안 됨) STR_TIMETABLE_STAY_FOR :& {STRING} 동안 정차 STR_TIMETABLE_AND_TRAVEL_FOR :& 다음 목적지({STRING})로 이동 STR_TIMETABLE_DAYS :{COMMA}일 @@ -4277,6 +4288,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... 이 STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}그룹을 만들 수 없습니다... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}이 그룹을 지울 수 없습니다... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}그룹의 이름을 바꿀 수 없습니다. +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}상위 그룹으로 설정할 수 없습니다... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}이 그룹의 모든 차량을 제거할 수 없습니다. STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}이 그룹에 차량을 추가할 수 없습니다... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}이 그룹에 공유된 차량을 추가할 수 없습니다... diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 049ab1177e..f978cecc25 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -805,13 +805,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} gaida depo STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} gaida aviācijas angārā -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} sarakstā ir pārāk maz rīkojumu STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ir nederīgs maršruts STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ir divi vienādi maršruti STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} rīkojumā ir nederīga stacija -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} pamazām noveco STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} ir kļuvis ļoti vecs @@ -949,9 +947,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Ekrānuzņēmumu formāts -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Ekrānuzņēmumu formāta izvēle - 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 ""} @@ -1109,8 +1104,6 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Neatļaut vilci STR_CONFIG_SETTING_DISASTERS :Katastrofas: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL :Pilsētu domju attieksme pret platības pārstrukturēšanu: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES :Atļaut būvēt nogāzēs un piekrastēs: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ja ieslēgts, ceļus un stacijas var būvēt uz vairums nogāzēm. Ja izslēgts, tas ir atļauts tikai uz ceļu virzienam atbilstošām nogāzēm un tādēļ nav nepieciešami ieguldījumi STR_CONFIG_SETTING_AUTOSLOPE :Atļaut ainavas veidošanu zem ekām, ceļiem, utt. (automāt. nogāzes): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Atļauj ainavas veidošanu zem ekām un ceļiem bez to nojaukšanas STR_CONFIG_SETTING_CATCHMENT :Atļaut realistiskākas, palielinātas apkalpojamās platības: {STRING} @@ -1135,14 +1128,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Aizliegt vilcie STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 grādu pagriezieni rodas, ja horizontālam sliežu ceļa posmam tieši seko vertikāls sliežu ceļa posms uz blakus esošā lauciņa. Tādējādi vilciens, šķērsojot lauciņu malas, veic 90 grādu pagriezienu, nevis parasto 45 grādu kā citām sliežu ceļu kombinācijām. Tas attiecas arī uz kuģu pagrieziena lenķiem STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Atļaut savienot stacijas, kas neatrodas tieši blakus: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Atļaut pievienot staciju daļas, tām nesaskaroties ar jau esošajām. Novietojot jaunās daļas, ir nepieciešams nospiest Ctrl+klikšķis -STR_CONFIG_SETTING_IMPROVEDLOAD :Lietot uzlabotu piekraušanas algoritmu: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ja ir ieslēgts, vairāki transportlīdzekļi gaida stacijā uz secīgu piekraušanu. Nākamā transportlīdzekļa piekraušana sākas tikai tad, kad ir pietiekami daudz kravas, lai pilnībā piepildītu pirmo transportlīdzekli -STR_CONFIG_SETTING_GRADUAL_LOADING :Transportlīdzekļus piekraut pakāpeniski: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Transportlīdzekļi tiek piekrauti pakāpeniski, izmantojot tam raksturīgos ilgumus. Nevis piekrauj visu uzreiz ar fiksētu laiku, tikai atkarībā no kravas daudzuma STR_CONFIG_SETTING_INFLATION :Inflācija: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Atļaut inflāciju ekonomikā, kur izmaksu celšanās nedaudz apsteidz ienākumus -STR_CONFIG_SETTING_SELECTGOODS :Nogādāt kravu stacijā tikai tad, ja ir pieprasījums: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Tikai nogādā kravu līdz stacijai, kas tika pieprasīts piekraujot transportlīdzekli. Tas novērš sliktus vērtējumus stacijā neapkalpotām kravām STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksimālais tiltu garums: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Būvējamo tiltu maksimālais garums STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksimālais tuneļu garums: {STRING} @@ -1170,8 +1157,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Vieta, kur vilc STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :sākumā STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :vidū STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :beigās -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Autotransporta līdzekļu rindošana (ar daudzuma efektiem): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Autotransporta līdzekļiem likt gaidīt pirms aizņemtas pieturvietas, līdz tā tiek atbrīvota STR_CONFIG_SETTING_AUTOSCROLL :Bīdīt logu, kad peles kursors atrodas tā malā: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ja iespējots, skatvieta sāk ritināties kad peles kursors ir pie loga malas STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :atspējots @@ -1202,10 +1187,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Atļaut caurbra STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Ļauj būvēt caurbraucamas pieturvietas uz pilsētai piederošiem ceļiem STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Atļaut caurbraucamas pieturvietas uz sāncenšu ceļiem: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Ļauj būvēt caurbraucamas pieturvietas uz citiem uzņēmumiem piederošiem ceļiem -STR_CONFIG_SETTING_ADJACENT_STATIONS :Atļaut būvēt vienu otrai piekļautas stacijas: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Ļauj atšķirīgas stacijas piekļaut vienu otrai -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Atļaut vairākus NewGRF transportlīdzekļu komplektus: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Saderības izvēle veciem NewGRF failiem. Neatspējojiet šo, izņemot ja jūs zinat ko darat! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Šo iestatījumu nav iespējams mainīt, kad tur ir transportlīdzekļi STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktūras uzturēšana: {STRING} @@ -1262,8 +1243,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Augstumu kartes STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Pret pulksteņa rādītāja virzienu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Pulksteņa rādītāja virzienā STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Augstuma līmenis līdzenai scenārija kartei: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Atļaut pārveidot lauciņus kas atrodas kartes malās : {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ja izslēgts, kartes malās vienmēr būs okeāns STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Viens vai vairāki lauciņi pie ziemeļu malas nav tukši STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Vienam vai vairākiem lauciņiem kādā malā nav ūdens @@ -1316,11 +1295,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :garu (31. Dec 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :īsu (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :NewGRF noklusējuma palete, kuriem tā nav norādīta: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Noklusējuma palete NewGRF failiem, ja nepieciešamā nav norādīta -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :noklusējuma (D) palete -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :mantota (W) palete - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automātiski pauzēt sākot jaunu spēli: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Ja ir ieslēgts, sākot jaunu spēli, tā tiek automātiski pauzēta. Tas ļauj rūpīgāk izpētīt karti STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Pauzes režīmā atļaut: {STRING} @@ -1535,8 +1509,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 pret {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :neviena STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Lielpilsētu sākuma lieluma reizinātājs: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Lielpilsētu vidējais lielums attiecībā pret parastām pilsētām spēles sākumā -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Ceļu būves laikā novākt bezjēdzīgus ceļu elementus: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Finansētās ceļu rekonstrukcijas laikā noņem vairs neizmantojamos ceļu nobeiguma posmus STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manuāli STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetriska @@ -1582,27 +1554,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :impērijas, bri STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :metriskās (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI, starptautiskās (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Saskarne STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalizēšana -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Būvniecība -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Transportlīdzekļi -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stacijas -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomika -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Kravu sadale -STR_CONFIG_SETTING_AI :{ORANGE}Sāncenši -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Ekrāna opcijas -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Mijiedarbība STR_CONFIG_SETTING_SOUND :{ORANGE}Skaņas efekti -STR_CONFIG_SETTING_NEWS :{ORANGE}Avīžu raksti un ziņojumi -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signāli -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Kravu pārvietošana -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Nespēlētāju tēli (datora vadīti) -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automātiskā atjaunošana -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Apkope +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Saskarne +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Būvniecība +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Transportlīdzekļi STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Pārvietošanās -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vilcieni -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Pilsētas -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Ražotnes +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Pilsētas +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Ražotnes +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Kravu sadale +STR_CONFIG_SETTING_AI :{ORANGE}Sāncenši +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Nespēlētāju tēli (datora vadīti) STR_CONFIG_SETTING_PATHFINDER_OPF :Sākotnējais STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1758,6 +1720,7 @@ STR_LIVERY_FREIGHT_TRAM :Kravas tramvajs STR_FACE_CAPTION :{WHITE}Sejas izvēle STR_FACE_CANCEL_TOOLTIP :{BLACK}Pārtraukt jaunas sejas izvēli STR_FACE_OK_TOOLTIP :{BLACK}Apstiprināt izvēlēto seju +STR_FACE_RANDOM :{BLACK}Nejaušs STR_FACE_MALE_BUTTON :{BLACK}Vīrietis STR_FACE_MALE_TOOLTIP :{BLACK}Izvēlēties vīriešu sejas @@ -2628,10 +2591,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Ražotņ STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Sniega līnijas augstums STR_MAPGEN_SNOW_LINE_UP :{BLACK}Paaugstināt sniega līnijas augstumu STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Pazemināt sniega līnijas augstumu -STR_MAPGEN_RANDOM_SEED :{BLACK}Nejaušs sākums: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikšķināt, lai ievadītu nejaušu sākumu -STR_MAPGEN_RANDOM :{BLACK}Nejaušs -STR_MAPGEN_RANDOM_HELP :{BLACK}Mainīt apvidus radīšanā izmantoto nejaušo sākumu STR_MAPGEN_LAND_GENERATOR :{BLACK}Zemes radītājs: STR_MAPGEN_TREE_PLACER :{BLACK}Koku algoritms: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Apvidus reljefs: @@ -2658,7 +2617,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Augstumu STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Lielums: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Ievadīt nejaušu sākumu STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Mainīt sniega līnijas augstumu STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Mainīt sākuma gadu @@ -3245,6 +3203,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Dzēst i STR_GROUP_RENAME_TOOLTIP :{BLACK}Pārdēvēt izvēlēto grupu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikšķināt, lai pasargātu šo grupu no vispārējās automātiskās aizstāšanas + STR_GROUP_ADD_SHARED_VEHICLE :Pievienot kopīgos transportlīdzekļus STR_GROUP_REMOVE_ALL_VEHICLES :Novākt visus transportlīdzekļus diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 9082cd6265..42f7037a99 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -498,7 +498,7 @@ STR_SORT_BY_RATING :Reitingas # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pristabdyti žaidimą -STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Pagreitinti laiko tekmę +STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Pagreitinti žaidimą STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Parinktys STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Išsaugoti/nutraukti žaidimą arba užverti programą STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Rodyti žemėlapį, papildomą peržiūros langą arba ženklų sąrašą @@ -582,7 +582,7 @@ STR_FILE_MENU_EXIT :Išeiti # map menu STR_MAP_MENU_MAP_OF_WORLD :Žemėlapis STR_MAP_MENU_EXTRA_VIEW_PORT :Papildomas peržiūros langas -STR_MAP_MENU_LINGRAPH_LEGEND :Krovinių Tiekimo Legenda +STR_MAP_MENU_LINGRAPH_LEGEND :Krovinių srautų legenda STR_MAP_MENU_SIGN_LIST :Ženklų sąrašas ############ range for town menu starts @@ -864,25 +864,35 @@ STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{BLAC STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS :{BIG_FONT}{WHITE}{PRESIDENT_NAME} iš {COMPANY} pasiekė „{STRING}“ statusą! # Smallmap window -STR_SMALLMAP_CAPTION :{WHITE}Žemėlapis - {STRING} +STR_SMALLMAP_CAPTION :{WHITE}{STRING.ko} žemėlapis -STR_SMALLMAP_TYPE_CONTOURS :Kontūrai +STR_SMALLMAP_TYPE_CONTOURS :Izohipsės +STR_SMALLMAP_TYPE_CONTOURS.ko :Izohipsių STR_SMALLMAP_TYPE_VEHICLES :Transporto priemonės +STR_SMALLMAP_TYPE_VEHICLES.kas :Transporto priemonės +STR_SMALLMAP_TYPE_VEHICLES.ko :Transporto priemonių STR_SMALLMAP_TYPE_INDUSTRIES :Pramonės įmonės -STR_SMALLMAP_TYPE_ROUTEMAP :Krovinių Tiekimas -STR_SMALLMAP_TYPE_ROUTES :Keliai +STR_SMALLMAP_TYPE_INDUSTRIES.kas :Pramonės įmonės +STR_SMALLMAP_TYPE_INDUSTRIES.ko :Pramonės įmonių +STR_SMALLMAP_TYPE_ROUTEMAP :Krovinių srautai +STR_SMALLMAP_TYPE_ROUTEMAP.ko :Krovinių srautų +STR_SMALLMAP_TYPE_ROUTES :Transporto keliai +STR_SMALLMAP_TYPE_ROUTES.ko :Transporto kelių STR_SMALLMAP_TYPE_VEGETATION :Augalija -STR_SMALLMAP_TYPE_OWNERS :Savininkai -STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Rodyti žemės kontūrus žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Rodyti transporto priemones žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Rodyti gamyklas žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Rodyti krovinių tiekimą žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Rodyti transporto kelius žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Rodyti augmeniją žemėlapyje -STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Rodyti žemės savininkus žemėlapyje -STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Paspaudus ant gamyklos tipo bus perjungiamas to tipo gamyklų rodymas. Ctrl+Paspaudimas neberodys visų išskyrus pasirinktą. Ctrl+Paspaudimas dar kartą rodys visas. -STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Paspaudus ant įmonės perjungs įmonės turto rodymą. Ctrl+Paspaudimas panaikins visas įmones išskyrus pasirinktą. Ctrl+Paspaudimas dar kartą sugrąžins visas įmones. -STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Spauskite ant krovinio, kad rodytų jo savybes. Ctrl+Click išjungia visus krovinius, išskyrus pasirinktus. Ctrl+Click pakartojus - įjungia juos +STR_SMALLMAP_TYPE_VEGETATION.kas :Augalija +STR_SMALLMAP_TYPE_VEGETATION.ko :Augalijos +STR_SMALLMAP_TYPE_OWNERS :Nuosavybė +STR_SMALLMAP_TYPE_OWNERS.ko :Nuosavybės +STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Rodyti izohipsių (vienodo aukščio linijų) žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Rodyti transporto priemonių žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Rodyti pramonės įmonių žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Rodyti krovinių srautų žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Rodyti transporto kelių žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Rodyti augmenijos žemėlapį +STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Rodyti nuosavybės žemėlapį +STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Spragtelėjus bus įjungiamas arba išjungiamas pasirinkto tipo pramonės įmonės atvaizdavimas žemėlapyje. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvaizduojamos/neatvaizduojamos visos kitos pramonės įmonės. +STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Spragtelėjus bus įjungiamas arba išjungiamas pasirinktos kompanijos nuosavybės atvaizdavimas žemėlapyje. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvaizduojama/neatvaizduojama visų kitų kompanijų nuosavybė. +STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Spragtelėjus bus įjungiamas arba išjungiamas pasirinkto krovinio srautų atvaizdavimas žemėlapyje. Spragtelėjus laikant nuspaustą Ctrl klavišą, bus atvaizduojami/neatvaizduojami visų kitų krovinių srautai. STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Keliai STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Geležinkeliai @@ -894,14 +904,14 @@ STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_SHIPS :{TINY_FONT}{BLACK}Laivai STR_SMALLMAP_LEGENDA_AIRCRAFT :{TINY_FONT}{BLACK}Lėktuvai STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES :{TINY_FONT}{BLACK}Keliai -STR_SMALLMAP_LEGENDA_FOREST :{TINY_FONT}{BLACK}Miškas -STR_SMALLMAP_LEGENDA_RAILROAD_STATION :{TINY_FONT}{BLACK}Geležinkelio stotis -STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY :{TINY_FONT}{BLACK}Sunkvežimių pakrovimo aikštelė -STR_SMALLMAP_LEGENDA_BUS_STATION :{TINY_FONT}{BLACK}Autobusų stotis -STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT :{TINY_FONT}{BLACK}Oro uostas/Sraigtasparnių aikštelė -STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLACK}Prieplauka -STR_SMALLMAP_LEGENDA_ROUGH_LAND :{TINY_FONT}{BLACK}Kalnuotas kraštas -STR_SMALLMAP_LEGENDA_GRASS_LAND :{TINY_FONT}{BLACK}Ganykla +STR_SMALLMAP_LEGENDA_FOREST :{TINY_FONT}{BLACK}Miškai +STR_SMALLMAP_LEGENDA_RAILROAD_STATION :{TINY_FONT}{BLACK}Geležinkelio stotys +STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY :{TINY_FONT}{BLACK}Sunkvežimių krovos aikštelės +STR_SMALLMAP_LEGENDA_BUS_STATION :{TINY_FONT}{BLACK}Autobusų stotys +STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT :{TINY_FONT}{BLACK}Oro uostai/sraigtasparnių aikštelės +STR_SMALLMAP_LEGENDA_DOCK :{TINY_FONT}{BLACK}Prieplaukos +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_FIELDS :{TINY_FONT}{BLACK}Laukai STR_SMALLMAP_LEGENDA_TREES :{TINY_FONT}{BLACK}Medžiai @@ -910,25 +920,25 @@ STR_SMALLMAP_LEGENDA_WATER :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_NO_OWNER :{TINY_FONT}{BLACK}Nėra savininko STR_SMALLMAP_LEGENDA_TOWNS :{TINY_FONT}{BLACK}Miestai STR_SMALLMAP_LEGENDA_INDUSTRIES :{TINY_FONT}{BLACK}Pramonės įmonės -STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Dykuma -STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLACK}Sniegas +STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Dykumos +STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLACK}Snieguoti kraštai STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Rodyti/slėpti miestų pavadinimus žemėlapyje -STR_SMALLMAP_CENTER :{BLACK}Centruoti mažą žemėlapį į šitą vietą +STR_SMALLMAP_CENTER :{BLACK}Centruoti žemėlapį esamoje vietoje STR_SMALLMAP_INDUSTRY :{TINY_FONT}{STRING} ({NUM}) STR_SMALLMAP_LINKSTATS :{TINY_FONT}{STRING} STR_SMALLMAP_COMPANY :{TINY_FONT}{COMPANY} STR_SMALLMAP_TOWN :{TINY_FONT}{WHITE}{TOWN} -STR_SMALLMAP_DISABLE_ALL :{BLACK}Išjungti visas -STR_SMALLMAP_ENABLE_ALL :{BLACK}Įjungti visas -STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Sniego aukštis -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}Žemėlapyje nerodyti industrijų -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Žemėlapyje rodyti visas industrijas -STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Rodyti arba slėpti heightmap -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Nerodyti įmonės turto žemėlapyje -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Rodyti visą įmonės turtą žemėlapyje -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Nerodyti krovinių žemėlapyje -STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Rodyti visus krovinius žemėlapyje +STR_SMALLMAP_DISABLE_ALL :{BLACK}Nerodyti nieko +STR_SMALLMAP_ENABLE_ALL :{BLACK}Rodyti viską +STR_SMALLMAP_SHOW_HEIGHT :{BLACK}Rodyti izohipses +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_INDUSTRIES :{BLACK}Nerodyti nei vienos pramonės įmonės +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Rodyti visas pramonės įmones +STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Rodyti/slėpti izohipses +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Nerodyti nei vienos kompanijos nuosavybės +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Rodyti visų kompanijų nuosavybę +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Nerodyti jokių krovinių srautų +STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Rodyti visų krovinių srautus # Status bar messages STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Parodyti paskutinę žinutę ar spaudos pranešimą @@ -1005,13 +1015,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} laukia doke STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} laukia angare -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} turi per mažai užduočių tvarkaraštyje STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} turi blogas užduotis STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} turi pasikartojančias užduotis STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} turi neteisingą stotelę užduotyse -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} turi į maršrutą įtrauktą oro uostą su per trumpu taku STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} paseno STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} labai paseno @@ -1149,9 +1158,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Ekrano vaizdo kopijos tipas -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Pasirinkite ekrano vaizdo kopijos formatą - 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} @@ -1325,8 +1331,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Įgalinti atsit STR_CONFIG_SETTING_CITY_APPROVAL :Miestų gyventojų požiūris į triukšmą ir aplinkos darkymą: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Nustatyti miestų požiūrį į statybas, triukšmą ir kraštovaizdžio keitimą. Nuo to priklauso kompanijos reitingas bei leidimasstatyti įvairius objektus -STR_CONFIG_SETTING_BUILDONSLOPES :Leisti statybas pakrantėse ir ant šlaitų: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Leisti statyti bėgius, stoteles bei kitus objektus ant šlaitų. Priešingu atveju ant šlaito bus galima tiesti tik bėgius ir tik šlaito kryptimi STR_CONFIG_SETTING_AUTOSLOPE :Leisti keisti reljefą po pastatais, bėgiais, ir t.t.. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Leisti keisti reljefą po pastatais ir bėgiais, jų nepašalinant STR_CONFIG_SETTING_CATCHMENT :Aptarnaujamos teritorijos dydis priklauso nuo stotelė tipo: {STRING} @@ -1351,14 +1355,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Drausti traukin STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90° posūkis susidaro, kai horizontalus bėgių elementas yra sujungiamas su gretimame langelyje esančiu vertikaliu elementu. Ši nuostata taip pat galioja ir laivams STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Leisti sujungti stoteles, kurios nėra šalia: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Leisti praplėsti stotelę naujomis krovos aikštelėmis jas statant ne šalia jau esančiųjų, bet tolėliau. Statant reikia laikyti nuspaustą Ctrl klavišą -STR_CONFIG_SETTING_IMPROVEDLOAD :Naudoti patobulintą krovimo algoritmą: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Transporto priemonės, laukiančios stotelėje, bus aptarnaujamos paeiliui: tik prikrovus vieną transporto priemonę bus pradedama krauti kita transporto priemonė -STR_CONFIG_SETTING_GRADUAL_LOADING :Pakrauti transporto priemones palaipsniui: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Transporto priemonę pakrauti, atsižvelgiant į įvairius krovos parametrus, palaipsniui, vietoj to, kad transporto priemonė būtų pakrauta vienu ypu, atsižvegiant tik į krovinio kiekį STR_CONFIG_SETTING_INFLATION :Infliacija: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Įjungti/išjungti infliaciją (išlaidos augs truputį greičiau už atlygius) -STR_CONFIG_SETTING_SELECTGOODS :Pristatyti krovinį stotelei tiktai tuomet, kai yra poreikis: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Pramonės įmonės tieks stotelei tik tuos krovinius, kuriuos mėgins paimti į stotelę atvykstančios transporto priemonės. Tokiu būdu bus išvengta prastų stotelės krovos reitingų tiems kroviniams, kurių žaidėjas net neketino gabenti iš pasirinktos stotelės STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Didžiausias tilto ilgis: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Didžiausias galimas tilto ilgis STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Didžiausias tunelio ilgis: {STRING} @@ -1386,8 +1384,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Numatytoji trau STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :ties artimuoju kraštu STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :viduryje STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ties tolimuoju kraštu -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Automobilių vilkstinė (su kvantavimo efektu): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Jei kelyje pasitaikys kliūtis (ar tiesiog krovos aikštelė bus užimta), automobiliai nebandys grūstis, o stos į tvarkingą eilę STR_CONFIG_SETTING_AUTOSCROLL :Slinkti vaizdą pelei esant prie krašto: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Pelės žymikliui priartėjus prie pagrindinio ar papildomo peržiūros langų krašto, vaizdas jame gali būti slenkamas. STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Neslinkti @@ -1418,10 +1414,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Leisti pravaži STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Leidžia statyti pravažiuojamojo tipo stoteles miestams priklausiančiuose keliuose STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Leisti pravažiuojamąsias stoteles priešininko keliuose: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Leidžia statyti pravažiuojamojo tipo stoteles kitiems priešininkams priklausiančiuose keliuose -STR_CONFIG_SETTING_ADJACENT_STATIONS :Leisti statyti susiliečiančias stoteles: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Leisti skirtingas stoteles liestis viena su kita -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Leisti kelis NewGRF transporto pr. rinkinius vienu metu: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Suderinamumo pasirinktis seniems NewGRFs. Neišjunkite, nebent žinote, ką tiksliai darote! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Neįmanoma pakeisti nuostatos kai yra tr. priemonių. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastruktūros priežiūra reikalauja išlaidų: {STRING} 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 @@ -1479,8 +1471,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Aukščių žem STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Prieš laikrodžio rodyklę STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Pagal laikrodžio rodyklę STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Aukštis skiriamas „lygiaus scenarijaus“ žemėlapiui: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Leisti keisti reljefą žemėlapio kraštuose: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Jeigu išjungta, žemėlapio kraštai visada bus vandenynas STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Vienas ar daugiau blokų šiauriniame krašte yra ne tušti STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Viena ar daugiau plokštumų nėra ant vandens @@ -1537,11 +1527,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :ilgąjį (31 Gr STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :trumpąjį (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Įprastinė paletė taikoma NewGRF, nenurodžius paletės: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Numatytoji spalvų paletė tiems NewGRF objektams, kurie nenurodo, kokios konkrečiai paletės jiems reikia -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Numatytoji (D) paletė -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Pasenusi (W) paletė - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatinė pauzė paleidžiant naują žaidimą: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Pradėjus naują žaidimą, laiko tėkmė bus pristabdyta, taip suteikiant progą atidžiau išstudijuoti žemėlapį STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Kuomet pristabdytas, leisti: {STRING} @@ -1716,7 +1701,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Miestams leidž STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Įjungus šį nustatymą miestams bus galima statyti pervažas STR_CONFIG_SETTING_NOISE_LEVEL :Leisti miestams kontroliuoti oro uostų triukšmo lygį: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Išjungus šį nustatymą, gali būti tik du oro uostai kiekviename mieste. Įjungus šį nustatymą, oro uostų skaičius mieste yra ribojamas pagal miesto triukšmo lygio palankumo, kurį nurodo gyventojų skaičius, oro uosto dydis bei atstumas -STR_CONFIG_SETTING_TOWN_FOUNDING :Naujų miestų kurimas žaidime: {STRING} +STR_CONFIG_SETTING_TOWN_FOUNDING :Naujų miestų kūrimas žaidime: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Įjungiant šį nustatymą, žaidėjai gali įkurti naujus miestus žaidime STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Uždrausta STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Leista @@ -1763,8 +1748,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 iš {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenaudojamas STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Pradinis miestų dydžio daugiklis: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Vidutinis miestų dydis santykiu su normaliais miestais žaidimo pradžioje -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Panaikinti beprasmius kelio elementus kelių statybos metu: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Panaikinti aklavietes po finansuojamų kelių rekonstrukcijos STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Pasiskirstymo grafą atnaujinti kas {STRING} dien{P 0:2 ą as ų} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Laiko trukmė tarp grafo mazgų perskaičiavimo operacijų. Kiekviena operacija perskaičiuoja tik vieną mazgą, o ne visą grafą; tad jei šioje nuostatoje nurodytą, kad, pavyzdžiui, grafas bus atnaujinamas kas 4-ias dienas, tai nereiškia, kad jis visas bus atnaujintas, o atnaujinti bus tik kai kurie mazgai. Kuo trumpesnė trukmė tarp perskaičiavimų, tuo daugiau grafo perskaičiavimas sueikvos procesoriaus išteklių, tačiau pats grafas geriau atspindės realią situaciją. Kita vertus, ilgesnė trukmė mažiau apkraus procesorių, tačiau gali tekti ilgėliau palaukti, kol nauji maršrutai bus įtraukti į grafą. @@ -1840,27 +1823,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :imperiniai (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :metriniai (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Vaizdas STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalizavimas -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstrukcijos -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Tr. priemonės -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stotelės -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomika -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Krovinių pasiskirstymas -STR_CONFIG_SETTING_AI :{ORANGE}Konkurentai -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Vaizdo nustatymai -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Sąveika +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafika STR_CONFIG_SETTING_SOUND :{ORANGE}Garsai -STR_CONFIG_SETTING_NEWS :{ORANGE}Naujienos ir žinutės -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signalai -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Krovinų valdymas -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Kompiuterio žaidėjai -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatiškai atnaujinti -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Techninė apžiūra +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Vaizdas +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Bendros nuostatos +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Papildomi peržiūros langai +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstrukcijos +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Žinios ir patarėjai +STR_CONFIG_SETTING_COMPANY :{ORANGE}Kompanija +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Apskaita +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Transporto priemonės +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Maršrutas -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Traukiniai -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Miestai -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Gamyklos +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ribos +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofos ir incidentai +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Žemėlapio kūrimas +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Aplinka +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Valdžia +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Miestai +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Gamyklos +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Krovinių pasiskirstymas +STR_CONFIG_SETTING_AI :{ORANGE}Konkurentai +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Kompiuterio žaidėjai STR_CONFIG_SETTING_PATHFINDER_OPF :Originalus STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2017,6 +2002,7 @@ STR_LIVERY_FREIGHT_TRAM :Krovininis tram STR_FACE_CAPTION :{WHITE}Veido pasirinkimas STR_FACE_CANCEL_TOOLTIP :{BLACK}Nutraukia veido pasirinkimą STR_FACE_OK_TOOLTIP :{BLACK}Užbaigia veido pasirinkimą +STR_FACE_RANDOM :{BLACK}Atsitiktinai STR_FACE_MALE_BUTTON :{BLACK}Vyras STR_FACE_MALE_TOOLTIP :{BLACK}Pasirink vyro veidą @@ -2449,14 +2435,14 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Perjungt STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Nustatyti objektus nematomais vietoje permatomų # Linkgraph legend window -STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Krovinių paskirstymas +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Krovinių srautai STR_LINKGRAPH_LEGEND_ALL :{BLACK}Visi -STR_LINKGRAPH_LEGEND_NONE :{BLACK}Nieko -STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Pasirinkite vaizduojamas kompanijas +STR_LINKGRAPH_LEGEND_NONE :{BLACK}Joks +STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Pasirinkite kompanijas, kurių krovinių srautus norite matyti # Linkgraph legend window and linkgraph legend in smallmap -STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}nenaudotas -STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}prisotintas +STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}nenaudojamas +STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}optimalus STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}perkrautas # Base for station construction window(s) @@ -2896,10 +2882,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Industri STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Sniego linija: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Paaukštinti sniego liniją STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Pažeminti sniego liniją -STR_MAPGEN_RANDOM_SEED :{BLACK}Atsitiktinė pradžia: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Paspauskite, jeigu norite įvesti atsitiktinę skaičių seką naudojamą pasaulio kūrimui -STR_MAPGEN_RANDOM :{BLACK}Atsitiktinai -STR_MAPGEN_RANDOM_HELP :{BLACK}Parenką naują atsitiktinę skaičių seką naudojamą pasaulio kūrimui STR_MAPGEN_LAND_GENERATOR :{BLACK}Pasaulio kūrimas: STR_MAPGEN_TREE_PLACER :{BLACK}Medžių algoritmas: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Vietovės tipas: @@ -2926,7 +2908,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Žemėla STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Dydis: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Įveskite atsitiktinį skaičių STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Pakeisti sniego linijos aukštį STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Keisti pradžios metus @@ -3512,6 +3493,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Pašalin STR_GROUP_RENAME_TOOLTIP :{BLACK}Pervadinti pasirinktą grupę STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Paspauskite čia, kad apsaugoti grupę nuo bendro auto-pakeitimo +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Pašalinti grupę +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Ar tikrai norite pašalinti šią grupę ir visus jos palikuonis? + STR_GROUP_ADD_SHARED_VEHICLE :Įkelti bendras transporto priemones STR_GROUP_REMOVE_ALL_VEHICLES :Iškelti visas transporto priemones @@ -4082,6 +4066,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Kelionė (nėra STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Vykti ne didesniu, nei {2:VELOCITY} greičiu (kelionės trukmė nenustatyta) STR_TIMETABLE_TRAVEL_FOR :Keliauti {STRING.ka} STR_TIMETABLE_TRAVEL_FOR_SPEED :Vykti {STRING} ne didesniu, nei {VELOCITY} greičiu +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Vykti ({STRING.ka}, neįtraukiant į tvarkaraštį) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Vykti ({STRING.ka}, neįtraukiant į tvarkaraštį) ne greičiau, nei {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stovėti {STRING.ka}, neįtraukti į tvarkaraštį) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(vykti {STRING.ka}, neįtraukiant į tvarkaraštį) STR_TIMETABLE_STAY_FOR :ir pasilikti {STRING.ka} STR_TIMETABLE_AND_TRAVEL_FOR :ir keliauti {STRING.ka} STR_TIMETABLE_DAYS :{G=mot}{COMMA} dien{P a os ų} @@ -4541,6 +4529,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... jis STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Neįmanoma sukurti grupę... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Neįmanoma ištrinti šią grupę... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Neįmanoma pervadinti grupę... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Nepavyksta nustatyti viršgrupės... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Neįmanoma ištrinti visas tr. priemones iš šios grupės... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Neįmanoma įtraukti tr. priemonę į šią grupę... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Negalima pridėti bendrų transporto priemonių į grupę... diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 2b40905b25..b787ccffd8 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -35,10 +35,10 @@ STR_CARGO_PLURAL_LIVESTOCK :Véi STR_CARGO_PLURAL_GOODS :Wueren STR_CARGO_PLURAL_GRAIN :Kaar STR_CARGO_PLURAL_WOOD :Holz -STR_CARGO_PLURAL_IRON_ORE :Eisnenerz +STR_CARGO_PLURAL_IRON_ORE :Eisenäerz STR_CARGO_PLURAL_STEEL :Stol STR_CARGO_PLURAL_VALUABLES :Wäertsaachen -STR_CARGO_PLURAL_COPPER_ORE :Koffererz +STR_CARGO_PLURAL_COPPER_ORE :Kofferäerz STR_CARGO_PLURAL_MAIZE :Mais STR_CARGO_PLURAL_FRUIT :Friichten STR_CARGO_PLURAL_DIAMONDS :Diamanten @@ -54,7 +54,7 @@ STR_CARGO_PLURAL_CANDY :Séissegkeeten STR_CARGO_PLURAL_COLA :Cola STR_CARGO_PLURAL_COTTON_CANDY :Zockerwatt STR_CARGO_PLURAL_BUBBLES :Blosen -STR_CARGO_PLURAL_TOFFEE :Karmell +STR_CARGO_PLURAL_TOFFEE :Karamell STR_CARGO_PLURAL_BATTERIES :Batterien STR_CARGO_PLURAL_PLASTIC :Plastik STR_CARGO_PLURAL_FIZZY_DRINKS :Spruddel-Gedrénks @@ -69,10 +69,10 @@ STR_CARGO_SINGULAR_LIVESTOCK :Véi STR_CARGO_SINGULAR_GOODS :Wueren STR_CARGO_SINGULAR_GRAIN :Kaar STR_CARGO_SINGULAR_WOOD :Holz -STR_CARGO_SINGULAR_IRON_ORE :Eisenerz +STR_CARGO_SINGULAR_IRON_ORE :Eisenäerz STR_CARGO_SINGULAR_STEEL :Stol -STR_CARGO_SINGULAR_VALUABLES :Wertsaach -STR_CARGO_SINGULAR_COPPER_ORE :Koffererz +STR_CARGO_SINGULAR_VALUABLES :Wäertsaachen +STR_CARGO_SINGULAR_COPPER_ORE :Kofferäerz STR_CARGO_SINGULAR_MAIZE :Mais STR_CARGO_SINGULAR_FRUIT :Friichten STR_CARGO_SINGULAR_DIAMOND :Diamanten @@ -103,10 +103,10 @@ STR_QUANTITY_LIVESTOCK :{COMMA} Eenheet STR_QUANTITY_GOODS :{COMMA} Wuerekëscht{P "" en} STR_QUANTITY_GRAIN :{WEIGHT_LONG} Kaar STR_QUANTITY_WOOD :{WEIGHT_LONG} Holz -STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} Eisenerz +STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} Eisenäerz STR_QUANTITY_STEEL :{WEIGHT_LONG} Stol STR_QUANTITY_VALUABLES :{COMMA} S{P aak äck} mat Wäertsaachen -STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} Koffererz +STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} Kofferäerz STR_QUANTITY_MAIZE :{WEIGHT_LONG} Mais STR_QUANTITY_FRUIT :{WEIGHT_LONG} Friichten STR_QUANTITY_DIAMONDS :{COMMA} S{P aak äck} mat Diamanten @@ -122,7 +122,7 @@ STR_QUANTITY_SWEETS :{COMMA} S{P aak STR_QUANTITY_COLA :{VOLUME_LONG} Cola STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} Zockerwatt STR_QUANTITY_BUBBLES :{COMMA} Blos{P "" en} -STR_QUANTITY_TOFFEE :{WEIGHT_LONG} Karmel +STR_QUANTITY_TOFFEE :{WEIGHT_LONG} Karamell STR_QUANTITY_BATTERIES :{COMMA} Batterie{P "" n} STR_QUANTITY_PLASTIC :{VOLUME_LONG} Plastik STR_QUANTITY_FIZZY_DRINKS :{COMMA} Spruddelgedrénks @@ -175,7 +175,7 @@ STR_CRATES :{COMMA} Këscht # Colours, do not shuffle STR_COLOUR_DARK_BLUE :Donkelblo STR_COLOUR_PALE_GREEN :Bleechgréng -STR_COLOUR_PINK :Donkelroud +STR_COLOUR_PINK :Pink STR_COLOUR_YELLOW :Giel STR_COLOUR_RED :Rout STR_COLOUR_LIGHT_BLUE :Hellblo @@ -238,7 +238,7 @@ STR_BUTTON_RENAME :{BLACK}Ëmbenen STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fënster zoumaachen STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Fënstertitel - hei zéien fir d'Fënster ze bewegen -STR_TOOLTIP_SHADE :{BLACK}Shade Fenster - Weis nëmmen Titelbar +STR_TOOLTIP_SHADE :{BLACK}Fenster verklengeren - Weis nëmmen Titelbar STR_TOOLTIP_DEBUG :{BLACK}Weis NewGRF Debug Informatioun STR_TOOLTIP_DEFSIZE :{BLACK}Änner d'Fënster op d'Standardgréisst. Ctrl+Klick fir déi aktuell Gréisst als Standard ze späichern STR_TOOLTIP_STICKY :{BLACK}Markéier dës Fënster fir net zougemeet ze ginn vun dem "All Fënsteren zoumaachen" Knäppchen. Ctrl+Klick speichert déi Actioun als Standard @@ -277,7 +277,7 @@ STR_SORT_BY_PROFIT_LAST_YEAR :Profit am lesch STR_SORT_BY_PROFIT_THIS_YEAR :Profit dëst Joer STR_SORT_BY_AGE :Alter STR_SORT_BY_RELIABILITY :Zouverlässegkeet -STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Total Luedplaatz no Luedungstyp +STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Total Kapazitéit pro Luedungstyp STR_SORT_BY_MAX_SPEED :Maximal Geschwindegkeet STR_SORT_BY_MODEL :Model STR_SORT_BY_VALUE :Wäert @@ -285,8 +285,8 @@ STR_SORT_BY_LENGTH :Längt STR_SORT_BY_LIFE_TIME :Reschtlaafzäit STR_SORT_BY_TIMETABLE_DELAY :Zäitplang Verspéidung STR_SORT_BY_FACILITY :Statiounstyp -STR_SORT_BY_WAITING_TOTAL :Gesamt wardend Güter -STR_SORT_BY_WAITING_AVAILABLE :Verfügbar wardend Güter +STR_SORT_BY_WAITING_TOTAL :Gesamt waardend Gidder +STR_SORT_BY_WAITING_AVAILABLE :Verfügbar waardend Gidder STR_SORT_BY_RATING_MAX :Héchsten Luedungsbewertung STR_SORT_BY_RATING_MIN :Nidregsten Luedungsbewertung STR_SORT_BY_ENGINE_ID :ID (klassësch Sortéierung) @@ -318,7 +318,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Weis Gra STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Weis d'Firmen-Ranglëscht STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finanzéiert den Bau vun enger neier Industrie oder lëscht all d'Industrien op STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Lëscht vun den Firmenzich. Ctrl+Klick wiesselt tescht Grupp/Zuch Lëscht -STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Lëscht vun den Storssengefierer vun der Firma. Ctrl+Klick wiesselt tëscht Gruppe/Stroossengefiererlescht +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Lëscht vun den Stroossegefierer vun der Firma. Ctrl+Klick wiesselt tëscht Gruppe/Stroossegefiererlescht STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Lëscht vun den Firmenschëffer. Ctrl+Klick wiesselt tëscht Gruppen/Schëfflëscht. STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Lëscht vun den Firmenfligeren. Ctrl+Klick wiesselt tëscht Gruppen/Fligerlëscht. STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Vergréisser d'Sicht @@ -344,7 +344,7 @@ STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Weis d'K STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Landschaftserstellung STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Staderstellung STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industrieerstellung -STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Stroossenbau +STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Stroossebau STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Beem planzen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Schëld opstellen STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Objekt plazéiren. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen @@ -421,14 +421,14 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Finanzéiert en ############ range ends here ############ range for railway construction menu starts -STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Schinnenbau -STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Elektrëschen Schinnenbau +STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Schinnebau +STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Elektrësche Schinnebau STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Monorailbau STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Magnéitbunnbau ############ range ends here ############ range for road construction menu starts -STR_ROAD_MENU_ROAD_CONSTRUCTION :Stroossenbau +STR_ROAD_MENU_ROAD_CONSTRUCTION :Stroossebau STR_ROAD_MENU_TRAM_CONSTRUCTION :Trambau ############ range ends here @@ -581,7 +581,7 @@ STR_PERFORMANCE_DETAIL_KEY :{BLACK}Detail STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY :{BLACK}({CURRENCY_SHORT}/{CURRENCY_SHORT}) STR_PERFORMANCE_DETAIL_AMOUNT_INT :{BLACK}({COMMA}/{COMMA}) STR_PERFORMANCE_DETAIL_PERCENT :{WHITE}{NUM}% -STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Detailler fir des Firma uweisen +STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Detailler fir dës Firma uweisen ############ Those following lines need to be in this order!! STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Gefierer: STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Statiounen: @@ -594,14 +594,14 @@ STR_PERFORMANCE_DETAIL_MONEY :{BLACK}Suen: STR_PERFORMANCE_DETAIL_LOAN :{BLACK}Kredit: STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}Total: ############ End of order list -STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Unzuel Gefierer déi lescht Joer Profit gemeet hunn; dëst betrëfft Stroossengefierer, Zich, Schëffer an Fligeren. +STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}Unzuel Gefierer déi lescht Joer Profit gemeet hunn; dëst betrëfft Stroossegefierer, Zich, Schëffer a Fligeren. STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}Unzuel un kierzlechservéiert Statiounsdeeler. All Deel vun enger Statioun (z.B. Gare, Busarret, Fluchhafen) gëtt gezielt,och wann déi als eng Statioun connectéiert sinn. -STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Profit vum Gefiert mam mannsten Akommes (vun allen Gefierter déi méi wéi 2 Joer aal sin) +STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}Profit vum Gefier mam mannsten Akommes (vun allen Gefierer déi méi wéi 2 Joer aal sinn) STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}Betrag un Geld den am Mount mam mansten Profit gemeet gouf an den leschten 12 Quartaler STR_PERFORMANCE_DETAIL_MAX_INCOME_TOOLTIP :{BLACK}Betrag un Geld den am Mount mam héchsten Profit gemeet gouf an den leschten 12 Quartaler STR_PERFORMANCE_DETAIL_DELIVERED_TOOLTIP :{BLACK}Unzuel un Typen Wueren déi déi 4 lescht Quartaler geliwwert goufen STR_PERFORMANCE_DETAIL_CARGO_TOOLTIP :{BLACK}Unzuel un Typen Wueren déi lescht Quartal geliwwert goufen -STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Betrag un Suen den des Firma op der Bank huet +STR_PERFORMANCE_DETAIL_MONEY_TOOLTIP :{BLACK}Betrag un Suen den dës Firma op der Bank huet STR_PERFORMANCE_DETAIL_LOAN_TOOLTIP :{BLACK}Betrag un Geld den dës Firma geléint huet STR_PERFORMANCE_DETAIL_TOTAL_TOOLTIP :{BLACK}Total Punkte vun méiglechen Punkten @@ -613,8 +613,8 @@ STR_MUSIC_PLAYLIST_NEW_STYLE :{TINY_FONT}{BLA STR_MUSIC_PLAYLIST_EZY_STREET :{TINY_FONT}{BLACK}Ezy Street STR_MUSIC_PLAYLIST_CUSTOM_1 :{TINY_FONT}{BLACK}Benotzerdéf. 1 STR_MUSIC_PLAYLIST_CUSTOM_2 :{TINY_FONT}{BLACK}Benotzerdéf. 2 -STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musik Lautstärkt -STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Lautstärkt vun den Effekter +STR_MUSIC_MUSIC_VOLUME :{TINY_FONT}{BLACK}Musik Lautstäerkt +STR_MUSIC_EFFECTS_VOLUME :{TINY_FONT}{BLACK}Lautstäerkt vun den Effekter STR_MUSIC_RULER_MIN :{TINY_FONT}{BLACK}MIN STR_MUSIC_RULER_MAX :{TINY_FONT}{BLACK}MAX STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLACK}' @@ -630,24 +630,24 @@ STR_MUSIC_TOOLTIP_SKIP_TO_PREVIOUS_TRACK :{BLACK}Sprang o STR_MUSIC_TOOLTIP_SKIP_TO_NEXT_TRACK_IN_SELECTION :{BLACK}Sprang op dat nächst Stéck vun der Selektioun STR_MUSIC_TOOLTIP_STOP_PLAYING_MUSIC :{BLACK}Stop d'Musik STR_MUSIC_TOOLTIP_START_PLAYING_MUSIC :{BLACK}Start d'Musik -STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Zéi den Regler fir d'Lautstärkt vun der Musik an den Effekter anzestellen -STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Selectionéier 'all Lidder' Programm -STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Selectionéier 'aalen Style' Programm -STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Selectionéier 'neien Style' Programm -STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Wielt 'Ezy Street Musik' Programm -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Selectionéier 'Benotzerdéf. 1' Programm -STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Selectionéier 'Benotzerdéf. 2' Programm +STR_MUSIC_TOOLTIP_DRAG_SLIDERS_TO_SET_MUSIC :{BLACK}Zéi den Regler fir d'Lautstäerkt vun der Musik an den Effekter anzestellen +STR_MUSIC_TOOLTIP_SELECT_ALL_TRACKS_PROGRAM :{BLACK}Wielt 'all Lidder' Programm +STR_MUSIC_TOOLTIP_SELECT_OLD_STYLE_MUSIC :{BLACK}Wielt den 'aalen Style' Musiksprogramm +STR_MUSIC_TOOLTIP_SELECT_NEW_STYLE_MUSIC :{BLACK}Wielt den 'neien Style' Musiksprogramm +STR_MUSIC_TOOLTIP_SELECT_EZY_STREET_STYLE :{BLACK}Wielt den 'Ezy Street style music' Programm +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_1_USER_DEFINED :{BLACK}Wielt den 'Benotzerdéf. 1' Programm +STR_MUSIC_TOOLTIP_SELECT_CUSTOM_2_USER_DEFINED :{BLACK}Wielt den 'Benotzerdéf. 2' Programm STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Schalt den "shuffle" un/aus STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Weis d'Fënster fir Musik ze wielen STR_ERROR_NO_SONGS :{WHITE}E Music Set ouni Lidder gouf gewielt. Et wärten keng Lidder gespillt gin # Playlist window -STR_PLAYLIST_MUSIC_PROGRAM_SELECTION :{WHITE}Musikprogramm Selectioun +STR_PLAYLIST_MUSIC_PROGRAM_SELECTION :{WHITE}Musiksprogramm Auswiel STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}" STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Lidder Index STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programm - '{STRING}' -STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Leschen +STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Läschen STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Den gewielten Program reseten (nëmmen Benotzerdéf.1 oder Benotzerdéf.2) STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klick op d'Lidd fir et zum aktuellen Program dobäi zesetzen (nëmmen Benotzerdéf.1 oder Benotzerdéf.2) STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klick op d'Lidd fir et vum aktuellen Programm ze läschen (Benotzerdefinéiert 1 an 2 nëmmen) @@ -693,9 +693,9 @@ STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLA STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}Schinnen STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS :{TINY_FONT}{BLACK}Statiounen/Fluchhafen/Hafen STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES :{TINY_FONT}{BLACK}Gebaier/Industrien -STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Gefierter +STR_SMALLMAP_LEGENDA_VEHICLES :{TINY_FONT}{BLACK}Gefierer STR_SMALLMAP_LEGENDA_TRAINS :{TINY_FONT}{BLACK}Zich -STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Stroosengefierer +STR_SMALLMAP_LEGENDA_ROAD_VEHICLES :{TINY_FONT}{BLACK}Stroosegefierer STR_SMALLMAP_LEGENDA_SHIPS :{TINY_FONT}{BLACK}Schëffer STR_SMALLMAP_LEGENDA_AIRCRAFT :{TINY_FONT}{BLACK}Fligeren STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES :{TINY_FONT}{BLACK}Transport Routen @@ -759,13 +759,13 @@ STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLAC STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Bierger feieren . . .{}Éischten Fliger kënnt bei {STATION} un! STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Zuchaccident!{}{COMMA} Leit stiewen an der Explosioun nom Accident -STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Stroossengefiert onfall!{}Fuerer stieft an der Explosioun no Onfall mam Zuch -STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Stroossengefiertaccident!{}{COMMA} Leit stiewen an der Explosioun no Onfall mam Zuch +STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Stroossegefier Accident!{}Fuerer stierft an der Explosioun no Accident mat Zuch +STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Stroossegefieraccident!{}{COMMA} Leit stiewen an der Explosioun no Accident mam Zuch STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Fligeraccident!{}{COMMA} Leit stiewen an der Explosioun bei {STATION} STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Fligeraccident!{}Fliger hat keen Bensin méi, {COMMA} Leit stiewen an Explosioun! STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Zeppelinkatastroph bei {STATION}! -STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Stroossengefiehr bei 'UFO'-Zesummenstouss zerstéiert ginn! +STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Stroossegefier bei 'UFO'-Zesummenstouss zerstéiert! STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}Uelegraffinerie bei {TOWN} explodéiert! STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}Fabrik ass zu {TOWN} ënner verdächtegen Ëmmstänn zerstéiert ginn! STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}'UFO' bei {TOWN} geland! @@ -780,7 +780,7 @@ STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLAC STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} ass zougemaach ginn, an all Reschtposten sinn verkaaf! STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Nei Transportfirma gegrënnt! STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} baut bei {TOWN}! -STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} ass vun {STRING} iwerholl ginn! +STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} ass vun {STRING} iwwerholl ginn! STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} huet Contructioun vun der Stad {TOWN} gesponsort! @@ -794,7 +794,7 @@ STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLAC STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}Europäesch Währungsunioun!{}{}Den Euro ass als nei Währung am Land angefouert ginn! STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}Wirtschaftsréckgang!{}{}Finanzexperten rechnen mat schlëmmsten Abrëch! -STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Wirtschaftsflaut eriwwer!{}{}Verbesserung am Handel bréngt Hoffnung fir Industrien an d'Economie gëtt gestärkt! +STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Wirtschaftsflaut eriwwer!{}{}Verbesserung am Handel bréngt Hoffnung fir Industrien an d'Economie gëtt gestäerkt! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}{INDUSTRY} erhéicht d'Produktioun! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Nei Kuelenflöz bei {INDUSTRY} font!{}Verdueblung vun der Produktioun erwart! @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} waard am Schapp STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} waard am Hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} huet ze wéinech Opträg am Plang STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} huet en eidelen Optrag STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} huet duebel Opträg STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} huet eng falsch Statioun an den Opträg -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} huet an séngen Opträg en Fluchhafen dem séng Landebunn ze kuerz ass STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} gëtt aal STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} gëtt ganz aal @@ -903,7 +902,7 @@ STR_GAME_OPTIONS_CURRENCY_IRR :Iranëschen Ria ############ start of measuring units region ############ end of measuring units region -STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Stroossengefierer +STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Stroossegefierer STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP :{BLACK}Wéi eng Stroossensäit sollen d'Gefierer fueren STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Lenks fueren STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :Riets fueren @@ -954,20 +953,17 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Bildopl STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Wielt d'Bildopléisung STR_GAME_OPTIONS_RESOLUTION_OTHER :Aaneres -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Screenshotformat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Wielt de Screenshotformat deen benotzt sollt ginn - STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis Grafikset -STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wielt den Basis Grafikset fir ze benotzen +STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wielt de Basis Grafikset den soll benotzt ginn STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fehlend/korrupt Datei{P "" en} STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Méi Infos iwwert den Basis Grafikset STR_GAME_OPTIONS_BASE_SFX :{BLACK}Basis sounds set -STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Selectéiert Basis Sound Sets +STR_GAME_OPTIONS_BASE_SFX_TOOLTIP :{BLACK}Wiel de Basis Sound Set den soll benotzt ginn STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Méi Informatiounen iwwer d'Basis Sound Set STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Basis Music Set -STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Selectéiert Basis Musik Set +STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Wiel de Basis Sound Set den soll benotzt ginn STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} korrupt Datei{P "" en} STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Méi Informatiounen iwwer d'Basis Musik Set @@ -1072,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Firmenastellung STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategorie: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Typ: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Limitéiert d'Lëscht dass nëmmen geännert Astellungen gewisen ginn +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Limitéiert d'Lëscht mat virdefinéierten Filter STR_CONFIG_SETTING_RESTRICT_BASIC :Basic Astellungen STR_CONFIG_SETTING_RESTRICT_ADVANCED :Erweidert Astellungen STR_CONFIG_SETTING_RESTRICT_ALL :Expertenastellungen / All Astellungen @@ -1083,9 +1079,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Beschrä STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :All Astellungen STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Clientastellung (net am Save gespäichert; betrëfft all Spiller) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Spillastellungen (am Save gespäichert; betrëfft just nei Spiller) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spillastellungen (am Save gespäichert; betrëfft just nei Spiller) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spillastellungen (am Save gespäichert; betrëfft just aktuellt Spill) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firmenastellungen (am Save gespäichert; betrëfft just nei Spiller) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Firmenastellung (am Save gespäichert; betrëfft just déi aktuell Firma) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Firmenastellungen (am Save gespäichert; betrëfft just déi aktuell Firma) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Weis all Sich-Resultater no der Astellung{}{SILVER}Kategorie {BLACK}bis {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :Weis all Sich-Resultater no der Astellung{}{SILVER}Typ {BLACK}bis {WHITE}All Astellungstypen STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Weis all Sich-Resultater no der Astellung{}{SILVER}Kategorie {BLACK}bis {WHITE}{STRING} {BLACK}an {SILVER}Typ {BLACK}bis {WHITE}All Astellungstypen @@ -1130,9 +1126,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Stelle Katastro STR_CONFIG_SETTING_CITY_APPROVAL :Dem Stadrot seng Astellung zum Embauen vun der Landschaft: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Wielt aus, wéivill vun der Firma verursachten Kaméidi an Emweltschiedegung sech op d'Stadbewertung auswierkt an op weider Bauaktiounen -STR_CONFIG_SETTING_BUILDONSLOPES :Erlaabt d'Bauen op Küsten an op Ofhäng: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Wann ugeschalt, kënnen Schinnen an Statiounen op den meeschten Häng gebaut ginn. Wann ausgeschalt, kënnen se just an der Richtung vum Hang gebaut ginn an brauchen dann keen Fundament -STR_CONFIG_SETTING_AUTOSLOPE :Erlaabt Landforumung ënnert Gebaier, Stroossen, etc. (autoslope): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Erlaabt Landforumung ënnert Gebaier, Stroossen, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaabt Terraintransformatioun ënnert Gebaier an Schinnen ouni dës ewechzehuelen STR_CONFIG_SETTING_CATCHMENT :Erlaabt méi realistësch Staugréisstplazen: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Statiounen an Fluchhäfen hunn verschidden grouss Opfanggebidder @@ -1144,9 +1138,9 @@ STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} Feld{P STR_CONFIG_SETTING_SMOKE_AMOUNT :Unzuel vun Gefiererdamp/partikel: {STRING} STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Fixéiert wéivill Damp oder Funken vun Gefierer ausgestouss ginn STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Zuchbeschleunegung: {STRING} -STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Wielt de physësche Modell fir d'Zuchbeschleunegung. Den "Orginalmodell" bestroft Häng fir all Gefierer d'selwëscht. Den "realistëschen" bestroft Häng an Kéiren ofhängeg vun verschiddenen Eegenschaften, wéi Längt an Stärkt vum Gefiert -STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Stroossengefier Beschleunigungsmodell: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Wielt de physësche Modell fir d'Stroossegefiertbeschleunegung. Den "Orginalmodell" bestroft Häng fir all Gefierer d'selwëscht. Den "realistëschen" bestroft Häng an Kéiren ofhängeg vun verschiddenen Eegenschaften, wéi Längt an Stärkt vum Gefiert +STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :Wielt de physësche Modell fir d'Zuchbeschleunegung. Den "Orginalmodell" bestroft Häng fir all Gefierer d'selwëscht. Den "realistëschen" bestroft Häng an Kéiren ofhängeg vun verschiddenen Eegenschaften, wéi Längt an Stäerkt vum Gefier +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :Stroossegefier Beschleunigungsmodell: {STRING} +STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :Wielt de physësche Modell fir d'Stroossegefierbeschleunegung. Den "Orginalmodell" bestroft Häng fir all Gefierer d'selwëscht. Den "realistëschen" bestroft Häng an Kéiren ofhängeg vun verschiddenen Eegenschaften, wéi Längt an Stäerkt vum Gefier STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :Hangsteigung fir Zich: {STRING} STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Steigung vun engem Hang fir Zich. Méi grouss Wäerter mëscht et méi schwéier den Hang ropzefueren STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% @@ -1156,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Verbidd Zich an STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90gradkéiren entstinn wann eng horizontal Spur direkt op eng vertikal trëfft, sou dass den Zuch misst ëm 90 Grad dréinen fir op dat nächst Stéck ze kommen, amplaz vun den üblechen 45 Grad. Dëst zielt och fir d'Weeër vun Schëffer STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Erlaabt Statiounen zesummen ze setzen och wann se net direkt uneneen leien: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Erlaabt Statiounsdeeler un eng Statioun unzehenken ouni déi existéiernd Statioun ze beréiren. Ctr+Klick fir déi nei Deeler unzehenken -STR_CONFIG_SETTING_IMPROVEDLOAD :Benotz verbesserten Luedalgorithmus: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Wann ugeschalt, ginn Gefierter déi op enger Statioun warden een nom aneren belueden. D'Belueden fänkt just un, wann genuch Wueren verfügbar sinn fir dat éischt Gefiert ganz ze belueden -STR_CONFIG_SETTING_GRADUAL_LOADING :Lued d'Gefierer schrëttweis: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gefierter ginn regelméisseg belueden während enger spezifëscher Dauer, amplaz alles beieneen ze lueden mat enger fixer Wardezäit déi vun der Unzuel Wueren ofhänkt STR_CONFIG_SETTING_INFLATION :Inflatioun: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Erlab Inflatioun an der Economie, wou d'Käschten méi séier klammen wéi d'Bezuelungen -STR_CONFIG_SETTING_SELECTGOODS :Luedung nëmmen ofliwweren wann et gebraucht gëtt: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Liwwer nëmmen Wueren op eng Statioun déi ugefrot gouf vun engem ze beluedenen Gefiert. Dëst verhënnert schlecht Bewertungen fir Wueren déi net vun der Statioun ungeholl ginn STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximal Bréckelängt: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximal Längt déi eng Bréck dierf hunn STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximal Tunnellängt: {STRING} @@ -1185,14 +1173,12 @@ STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :Riets STR_CONFIG_SETTING_SHOWFINANCES :Weis d'Finanzen um Ënn vum Joër: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Wann ugeschalt, gëtt eng Fënster um Enn vum Joer gewisen, déi eng einfach Iwwersicht iwwert d'Finanzen vun der Firma erlaabt STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nei Opträg sinn 'non-stop' par defaut: {STRING} -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalerweis stoppt en Gefier op all Statioun op sengem Wee. Wann des Astellung ageschalt ass, bleift et op kenger Statioun stoen bis op seng final Statioun +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalerweis stoppt en Gefier op all Statioun op sengem Wee. Wann dës Astellung ageschalt ass, bleift et op kenger Statioun stoen bis op seng final Statioun STR_CONFIG_SETTING_STOP_LOCATION :Nei Zichuerder stoppen par defaut um {STRING} vun der Plate-Form STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plaz wou en Zuch par Defaut op enger Gare stoen bleift. 'No um Ufank' bedeit no beim Agangspunkt, 'an der Mëtt' bedeit an der Mëtt vun der Plattform, 'wäit Enn' bedeit wäit ewech vum Agangspunkt. Dëst gëllt fir Standardopträg, individuell Opträg kënnen explizit gesat ginn STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :no um Enn STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :an der Mëtt STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :um Enn -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Stroossengefiererschlaang (mat Quanteneffekter): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Looss Stroossgefierer am Ufank vun engem besaten Stroossestopp waarden, bis se eidel sinn. STR_CONFIG_SETTING_AUTOSCROLL :D'Fënster schwenken wann d'Maus um Rand ass: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Wann ugeschalt, scrollt d'Usiicht wann d'Maus no um Rand vun der Fënster ass STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Ausgeschalt @@ -1223,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Erlaabt d'Iwwer STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Erlaabt d'Bauen vun säitlechen Busarrêten op Stroossen déi der Stad gehéieren STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Erlaabt d'Iwwerfueren vun Stopschëlder op Stroossen vun der Konkurrenz: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Erlaabt d'Bauen vun säitlechen Busarrêten op Stroossen déi enger anerer Firma gehéieren -STR_CONFIG_SETTING_ADJACENT_STATIONS :Erlaabt ugrenzent Statiounen: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Erlaabt verschiddenen Statiounen sech ze beréiren -STR_CONFIG_SETTING_DYNAMIC_ENGINES :E puer NewGRF-Päk aktivéiren: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompabilitéitsoptioun fir al NewGRFen. Net ausschalten, et sief et weess een genau wat een mëscht STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Déi Astellung kann net geännert ginn wann et Gefierer gëtt STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastrukturënnerhalt {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wann ugeschalt, kaschten Infrastrukturen Ennerhaltskäschten. D'Käschten wuessen iwwerproportional zu der Netzwierkgréisst, an treffen sou grouss Firmen méi wéi klenger @@ -1241,11 +1223,11 @@ STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Wann ugeschalt, STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Nee STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Jo, mee net déi gestoppten Gefierer STR_CONFIG_SETTING_ORDER_REVIEW_ON :Vun allen Gefierer -STR_CONFIG_SETTING_WARN_INCOME_LESS :Warnen wann en Gefiert en negativen Akommes huet: {STRING} +STR_CONFIG_SETTING_WARN_INCOME_LESS :Warnen wann en Gefier en negativen Akommes huet: {STRING} STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Wann ugeschalt, gëtt eng Noorichtenmessage gesent , wann en Gefier een Joer laang keen Profit gemeet huet STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Gefierer lafen nie of: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Wann ugeschalt, bleiwen all Modeller vun Gefierer éiweg verfügbar -STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Gefiert automatesch ernéieren wann ët aal gët: {STRING} +STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Gefier automatesch ernéieren wann ët aal gët: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Wann ugeschalt, gëtt e Gefier wat un säin Lafzäitenn kënnt, automatesch ausgetosch STR_CONFIG_SETTING_AUTORENEW_MONTHS :Automatesch erneieren wann d'Gefier maximal {STRING} Joer al ass STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relativen Alter wann en Gefier an Fro kennt fir auto-erneiert ze ginn @@ -1284,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Héichtenkaartr STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Géint d'Auer STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Matt der Auer STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Héichtenintervall den eng flaach Szenariokaart kritt: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Erdëmformung vun Felder um Kaartenrand erlaaben: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Wann ausgeschalt, sinn d'Ränner ëmmer Ozean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Een oder méi Felder um nördlechsten Rand sinn net eidel STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Een oder méi Felder op engem Eck sinn keen Waasser @@ -1293,7 +1273,7 @@ STR_CONFIG_SETTING_STATION_SPREAD :Maximal Ausdehn STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Maximal Distanz déi eenzel Statiounsdeeler dierfen auseneenleien. Méi héich Wäerter maachen d'Spill méi lues STR_CONFIG_SETTING_SERVICEATHELIPAD :Automatesch Maintenance vun Helicopteren: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Schéck Helikopter no all Landung an d'Revisioun, och wann keen Schapp um Fluchhafen ass -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Landschaft-Toolbar op Zuch/Stroos/Schëff/Fluchhafen-Toolbar linken: {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Landschaft-Toolbar op Zuch/Strooss/Schëff/Fluchhafen-Toolbar linken: {STRING} STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Wann eng Toolbar fir Konstruktiounen opgemeet gëtt, gëtt och d'Toolbar fir d'Terrainverännerung opgemeet STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Landfaarf déi op der klénger Kaart benotzt get: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Faarf vum Terrain vun der klenger Kaart @@ -1306,7 +1286,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Feinen Scrollin STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontrolléiert wéi d'Haptusiicht op eng bestëmmten Positioun scrollt, wann een op déi kléng Kaart klickt oder en Befehl fir ob en spezifescht Objet ze scrollen gëtt. Wann ugeschalt, gëtt bis dohin gescrollt, wann ausgeschalt, spréngt d'Vue op den Zielobjet STR_CONFIG_SETTING_MEASURE_TOOLTIP :Weis en Mooss-Tooltip wann verschidden Bau-Tools benotzt ginn: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Weis Felderdistanzen an Héichtenënnerscheed beim Zéien während dem Bauen un -STR_CONFIG_SETTING_LIVERIES :Weis Firmentracht: {STRING} +STR_CONFIG_SETTING_LIVERIES :Weis Farwen je no Gefiertyp: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Definéiert de Gebrauch vun gefierspezifesch Lackéiren fir Gefierer (am Géigensaz zu firmenspezifëschen Lackéiren) STR_CONFIG_SETTING_LIVERIES_NONE :Keng STR_CONFIG_SETTING_LIVERIES_OWN :Eegen Firma @@ -1342,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :laang (31ten De STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kuerz (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standard Palette fir NewGRFen déi keng spezifësch Palette hunn: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standardpalette fir NewGRFen déi net definéiert hunn wéi eng se brauchen -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standard (D) Palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Aal (W) Palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatesch Pausen beim Start vun enger neier Partie: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Wann ugeschalt, pauséiert d'Spill automatesch wann en neit Spill gestart gëtt, wat erlaabt d'Kaart besser ze studéieren STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Wann Paus ass, erlab: {STRING} @@ -1355,7 +1330,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Keng Aktiounen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :All Net-Bauaktiounen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :All ausser Landëmformungen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :All Aktiounen -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Benotzt d'erweidert Gefiererlëscht: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Benotz Gruppen an der Gefierlëscht: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Schalt d'erweidert Gefiererlëscht un fir Gefierer ze gruppéieren STR_CONFIG_SETTING_LOADING_INDICATORS :Weist den Luedstatus un: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Wielt aus, ob Luedindikatoren iwwert engem Gefier ugewisen ginn oder net, wann et belueden gëtt @@ -1370,7 +1345,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Schinnentyp den STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Ëischt verfügbar STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Läscht verfügbar STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Meescht benotzten -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Weis reservéiert Strecken: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Weis de reservéierte Wee op de Schinnen: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Fierf reservéiert Schinnen an enger anerer Faarf fir engem ze hëllefen wann Zich refuséieren fir an Wee-baséiert Bléck ze fueren STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Bau-Tools nom Gebrauch aktiv loossen: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Looss d'Bauoptiounen fir Brécken, Tunnelen etc. nom Gebrauch op @@ -1396,18 +1371,18 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Spillt Ambience STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Gebai ausschalten wann keng passend Gefierer verfügbar sinn: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Wann ugeschalt, ass d'Infrastruktur just verfügbar, wann och Gefierer verfügbar sinn, fir dass keen Geld an keng Zäit verschwend gëtt, sënnlos Infrastrukturen ze bauen -STR_CONFIG_SETTING_MAX_TRAINS :Max Zich pro Firma: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximum Zich pro Firma: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximal Unzuel un Zich déi eng Firma kann hunn -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Max Stroossengefierer pro Firma: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximum Stroossegefierer pro Firma: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximal Unzuel un Gefierer déi eng Firma kann hunn -STR_CONFIG_SETTING_MAX_AIRCRAFT :Max Fligeren pro Firma: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximum Fligeren pro Firma: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximal Unzuel un Fligeren déi eng Firma kann hunn -STR_CONFIG_SETTING_MAX_SHIPS :Max Schëffer pro Firma: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maximum Schëffer pro Firma: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximal Unzuel un Schëffer déi eng Firma kann hunn STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Zich fir den Computer ausschalten: {STRING} STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Wann dës Astellung ugeschalt ass, kann en Computergéigner keng Zich bauen -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Stroossengefierer fir den Computer ausschalten: {STRING} +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Stroossegefierer fir den Computer ausschalten: {STRING} STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Wann dës Astellung ugeschalt ass, kann en Computergéigner keng Gefierer bauen STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Fligeren fir den Computer ausschalten: {STRING} STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Wann dës Astellung ugeschalt ass, kann en Computergéigner keng Fligeren bauen @@ -1444,9 +1419,9 @@ STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :Wann ugeschalt, STR_CONFIG_SETTING_DISABLE_ELRAILS :Elecktreschschinnen ausschalten: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Wann dës Astellung ugeschalt ass, ginn keng elektresch Schinnen gebrauch fir mat elektreschen Zich ze fueren -STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Ukonft vum éischten Gefiert op enger Spillerstatioun: {STRING} +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Ukonft vum éischten Gefier op enger Spillerstatioun: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger eegener Statioun ukënnt -STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ukonft vum éischten Gefiert op enger Géigenspillerstatioun: {STRING} +STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ukonft vum éischten Gefier op enger Géigenspillerstatioun: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger géignerescher Statioun ukënnt STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidenter / Katastrophen: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Weis d'Zeitung wann Accidenter oder Katastrophen passéiren @@ -1469,7 +1444,7 @@ STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Weis Messagen w STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nei Gefierer: {STRING} STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Weis d'Zeitung wann en neit Gefier rauskënnt STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Ännerungen vun acceptéiert Luedungen: {STRING} -STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Weis Messagen wann Statiounen Güter acceptéiren / net méi akzeptéiren +STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Weis Messagen wann Statiounen Gidder akzeptéiren / net méi akzeptéiren STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subventiounen: {STRING} STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Weis d'Zeitung an Relatioun mat Subsiden STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Generel Informatiounen: {STRING} @@ -1518,7 +1493,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Zoufälleg STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Stied därfen Stroossen bauen: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Erlaabt Stied Stroossen ze bauen fir ze wuessen. Ausschalten fir d'Stiedréid dorun ze hënneren fir Stroossen selwer ze bauen STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Stied dierfen héich Kräizungen bauen: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Wann dës Astellung ugeschalt ass, kënnen Stied Strossen iwwert Schinnen bauen +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Wann dës Astellung ugeschalt ass, kënnen Stied Stroossen iwwert Schinnen bauen STR_CONFIG_SETTING_NOISE_LEVEL :Erlaab stadkontrolléiert Kaméidisniveau fir Fluchhäfen: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Wann dës Astellung ausgeschalt ass, kënnen zwee Fluchhäfen an all Stad gebaut ginn. Wann dës Astellung ugeschalt ass, henkt et vun der Fluchhafengréisst, Distanz, Kaméidisniveau of wéivill Fluchhäfen kënnen gebaut ginn STR_CONFIG_SETTING_TOWN_FOUNDING :Stiedgrënnung am Spill: {STRING} @@ -1555,7 +1530,7 @@ 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_TOWN_GROWTH :Stad-Wuestum: {STRING} +STR_CONFIG_SETTING_TOWN_GROWTH :Stad-Wuesstem: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Geschwindegkeet mat däer Stied wuessen STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Keen STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Lues @@ -1568,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 zu {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Keng STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Ufangs-Gréisst vun Stied mulitiplizéiren mat: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Duerchschnëttsgréisst vun Stied an Proportioun zu normalen Dierfer um Spillstart -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Beim Stroossebau absurd Stroossenelementer ofrappen: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Huel Sakgaassen ewech wann d'Stroossen renovéiert ginn STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Aktualiséier d'Distributiounsgrafik all {STRING} D{P 0:2 ag eeg} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Zäit tëscht nofolgenden Neiberechnungen vun der Linkgrafik. All Neiberechnung rechent d'Pläng fir eng Komponent vun der Grafik. Dat heescht dass en Wert X fir dës Astellung net all X Deeg aktualiséiert gëtt. Nëmmen een Komponent gëtt aktualiséiert. Wat méi kuerz gesat, wat méi CPU Rechenzäit gebraucht gëtt. Wat se méi laang gesat gëtt, wat méi Zäit vergeet bis Wuerendistributioun op enger neier Route gestart gëtt. @@ -1583,7 +1556,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"symmetrësch" STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Distributiounsmodus fir Post: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"symmetrësch" heescht, dass ongeféier d'selwecht vill vun A op B wéi vun B op A geschéckt ginn. "asymmetrësch" heescht, dass eng arbiträr Unzuel un Wueren an d'jeweileg Richtung geschéckt ginn. "manuell" heescht dass keng automatësch Distributioun stattfënnt fir Post STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Distributiounsmodus fir d'GEPANZERT Wuereklass: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :D'GEPANZERT Wuereklass huet Wertsaachen am geméissegte Klima, Diamanten am Sub-Tropenklima an Gold am sub-arktësche Klima. NewGRFen kënnen dat änneren. "symmetrësch" heescht, dass ongeféier d'selwecht vill vun A op B wéi vun B op A geschéckt ginn. "asymmetrësch" heescht, dass eng arbiträr Unzuel un Wueren an d'jeweileg Richtung geschéckt ginn. "manuell" heescht dass keng automatësch Distributioun stattfënnt. Et gëtt emfuelen dëst op asymmetrësch oder manuell ze loossen wann een sub-arktësch spillt, well Banken keen Gold zréck an d’Minen liwweren. Fir geméissegt Klima an sub-tropësch Klima kann eng Bank mat der anerer Wertsachen zréckschécken. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :D'GEPANZERT Wuereklass huet Wäertsaachen am geméissegte Klima, Diamanten am Sub-Tropenklima an Gold am sub-arktësche Klima. NewGRFen kënnen dat änneren. "symmetrësch" heescht, dass ongeféier d'selwecht vill vun A op B wéi vun B op A geschéckt ginn. "asymmetrësch" heescht, dass eng arbiträr Unzuel un Wueren an d'jeweileg Richtung geschéckt ginn. "manuell" heescht dass keng automatësch Distributioun stattfënnt. Et gëtt emfuelen dëst op asymmetrësch oder manuell ze loossen wann een sub-arktësch spillt, well Banken keen Gold zréck an d’Minen liwweren. Fir geméissegt Klima an sub-tropësch Klima kann eng Bank mat der anerer Wertsachen zréckschécken. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Distributiounsmodus fir aner Wuerenklassen: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymmetrësch" heescht dass eng beléiweg Unzuel un Wueren an béid Richtungen verschéckt ginn. "manuell" heescht dass keng automatësch Distributioun stattfënnt. Meeschtens gëtt "asymmetrësch" oder manuell gewielt. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Distributiounsgenauegkeet: {STRING} @@ -1593,7 +1566,7 @@ STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Wann'sde en mé STR_CONFIG_SETTING_DEMAND_SIZE :Unzuel vun zréckgeschéckten Wueren fir den symmetrëschen Modus: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Wann een dëst op manner wéi 100% setzt, gëtt déi symmetrësch Distributioun méi wéi eng asymmetrësch behandelt. Manner Wueren ginn zréckgeschéckt wann en bestëmmten Wert op eng Statioun geschéckt gouf. Bei 0% verhält sech d'symmetrësch Distributioun wéi eng asymmetrësch STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Sättegung vun kuerzen Weeër befier grouss Weeër benotzt ginn: {STRING} -STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Oft gëtt et e puer Weeër tëscht zwou Statiounen. Cargodist sättegt fir d'éischt den kierzten, dann den zweetkierzten a.s.w. Sättegung gëtt bestemmt durch Kapazitéit an geplangten Notzung. Wann all Wee gesiedegt ass, an nach emmer eng Nofro do ass, ginn all d'Weeër iwwersiedegt, mat Präferenz déi mat grousser Kapazitéit. Gréissten Deel vun der Zäit rechent den Algorithmus d'Kapazitéit allerdéngs net richteg. Des Astellung erlabt engem en Prozentsaz ze bestëmmen fir den éischten Wee befier en zweeten Wee benotzt gëtt. Setz en enner 100% fir iwwerfëllten Statiounen ze vermeiden wann d'Kapazitéit iwwerschad gouf. +STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Oft gëtt et e puer Weeër tëscht zwou Statiounen. Cargodist siedegt fir d'éischt den kierzten, dann den zweetkierzten a.s.w. Siedegung gëtt bestemmt durch Kapazitéit an geplangten Notzung. Wann all Wee gesiedegt ass, an nach emmer eng Nofro do ass, ginn all d'Weeër iwwersiedegt, mat Präferenz déi mat grousser Kapazitéit. Gréissten Deel vun der Zäit rechent den Algorithmus d'Kapazitéit allerdéngs net richteg. Des Astellung erlabt engem en Prozentsaz ze bestëmmen fir den éischten Wee befier en zweeten Wee benotzt gëtt. Setz en enner 100% fir iwwerfëllten Statiounen ze vermeiden wann d'Kapazitéit iwwerschad gouf. STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Geschwindegkeetseenheeten: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Emmer wann eng Geschwindegkeet am Userinterface ugewisen gëtt, weis se an den ausgewielten Eenheeten un @@ -1631,27 +1604,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Britësch (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrësch (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokaliséirung -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruktioun -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Gefierer -STR_CONFIG_SETTING_STATIONS :{ORANGE}Statiounen -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economie -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Wuerendistributioun -STR_CONFIG_SETTING_AI :{ORANGE}Géigner -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Displayoptiounen -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaktioun +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graphik STR_CONFIG_SETTING_SOUND :{ORANGE}Soundeffekter -STR_CONFIG_SETTING_NEWS :{ORANGE}News an Messagen -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaler -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Luedungshandhabung -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspiller -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autoerneieren -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Revisiounen +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Generell +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Usiicht +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruktioun +STR_CONFIG_SETTING_ADVISORS :{ORANGE}News / Meldungen +STR_CONFIG_SETTING_COMPANY :{ORANGE}Firma +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Compta +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Gefierer +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physik STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routenplangung -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Zich -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Stied -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrien +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitatiounen +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrophen / Accidenter +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Welt Generatioun +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Emwelt +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoritéiten +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Stied +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrien +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Wuerenverdeelung +STR_CONFIG_SETTING_AI :{ORANGE}Géigner +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computerspiller STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1659,7 +1634,7 @@ STR_CONFIG_SETTING_PATHFINDER_YAPF_RECOMMENDED :YAPF {BLUE}(rec STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS :Pfadfinder fir Zich: {STRING} STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT :Pfadfinder den fir Zich benotzt gëtt -STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Pfadfinder fir Stroossengefierer: {STRING} +STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES :Pfadfinder fir Stroossegefierer: {STRING} STR_CONFIG_SETTING_PATHFINDER_FOR_ROAD_VEHICLES_HELPTEXT :Pfadfinder den fir Gefierer benotzt gëtt STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS :Pfadfinder fir Schëffer: {STRING} STR_CONFIG_SETTING_PATHFINDER_FOR_SHIPS_HELPTEXT :Pfadfinder den fir Schëffer benotzt gëtt @@ -1713,10 +1688,10 @@ STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Start en STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Erstell eng eegen Spillwelt/Szenario STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Start en Multiplayer-Spill -STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Wielt den Landschaftsstil 'temperéiert' -STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Wielt den Landschaftsstil 'sub-arktësch' -STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Wielt den Landschaftsstil 'sub-tropësch' -STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Wielt den Landschaftsstil 'Spillsaachenland' +STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Wielt de Landschaftsstil 'temperéiert' +STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Wielt de Landschaftsstil 'sub-arktësch' +STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Wielt de Landschaftsstil 'sub-tropësch' +STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Wielt de Landschaftsstil 'Spillsaachenland' STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Spilloptiounen STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Beschtenlëscht uweisen @@ -1726,7 +1701,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check op STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Weis KI an Spill-Script-Astellungen STR_INTRO_TOOLTIP_QUIT :{BLACK}Aus 'OpenTTD' eraus goen -STR_INTRO_TRANSLATION :{BLACK}Des Iwwersetzung huet {NUM} String{P "" s}. Hëlleft OpenTTD besser ze man andem der ierch als Iwwersetzer mellt!. Liest readme.txt fir d'Detailer. +STR_INTRO_TRANSLATION :{BLACK}Dës Iwwersetzung huet {NUM} String{P "" s}. Hëllef OpenTTD besser ze man andems du dech als Iwwersetzer mells! Lies readme.txt fir d'Detailer. # Quit window STR_QUIT_CAPTION :{WHITE}Eraus @@ -1773,7 +1748,7 @@ STR_LIVERY_CAPTION :{WHITE}Neien Fa STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Weis generell Faarfschemen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Weis Zuch Faarfschemen -STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Weis Stroossengefierer Faarfschemen +STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Weis Stroossegefierer Faarfschemen STR_LIVERY_SHIP_TOOLTIP :{BLACK}Weis d'Schëff Faarfschemen STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Weis Fliger Faarfschemen STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Wiel d'Primärfaarf fir den ausgewieltenen Schema. Ctrl+Klick wielt dës Faarf fir all Schema @@ -1808,6 +1783,7 @@ STR_LIVERY_FREIGHT_TRAM :Wuerentram STR_FACE_CAPTION :{WHITE}Gesiichtsauswiel STR_FACE_CANCEL_TOOLTIP :{BLACK}Briech d'Auswiel vum Gesiicht of STR_FACE_OK_TOOLTIP :{BLACK}Accépteier néit Gesiicht +STR_FACE_RANDOM :{BLACK}Duercherneen wierfelen STR_FACE_MALE_BUTTON :{BLACK}Männlech STR_FACE_MALE_TOOLTIP :{BLACK}Wielt männlech Gesiichter @@ -1928,13 +1904,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}En Passw STR_NETWORK_START_SERVER_UNADVERTISED :Nee STR_NETWORK_START_SERVER_ADVERTISED :Jo STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} Spiller -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Max Spiller: -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Maximal Unzuel vun den Clients. Et muss net all Slot gefëllt sin. +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximal Spiller: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Maximal Unzuel vun den Clients. Et muss net all Slot gefëllt sinn. STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} Firm{P a en} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max Firmen: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximal Firmen: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}D'Unzuel vun den Firmen limitéieren STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} Zuschauer -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max Zuschauer: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximal Zuschauer: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}D'Unzuel vun den Zuschauer limitéiren STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Geschwaaten Sprooch: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Aaner Leit gesinn wéi eng Sprooch um Server geschwaat gëtt @@ -2088,7 +2064,7 @@ STR_NETWORK_ERROR_SERVER_START :{WHITE}Konnt de STR_NETWORK_ERROR_CLIENT_START :{WHITE}Konnt sëch net connectéieren STR_NETWORK_ERROR_TIMEOUT :{WHITE}Connectioun #{NUM} ofgelaaf STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}En Protokolfehler ass entstaanen an d'Connectioun ass getrennt ginn -STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}D'Versioun vum Client stëmmt net mat där vum Server iwerëneen +STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}D'Versioun vum Client stëmmt net mat där vum Server iwwereneen STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Falscht Passwuert STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Den Server ass voll STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Du bass vun dësem Server gebannt @@ -2154,7 +2130,7 @@ STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Den Serv STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Den Server gëtt nei gestart...{}Weg. waarden... # Content downloading window -STR_CONTENT_TITLE :{WHITE}Downloaden Inhalt +STR_CONTENT_TITLE :{WHITE}Inhalt Download STR_CONTENT_TYPE_CAPTION :{BLACK}Typ STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Typ vum Inhalt STR_CONTENT_NAME_CAPTION :{BLACK}Numm @@ -2222,7 +2198,7 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... Date STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Konnt den downgeload net dekompriméiren STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Fehlend Grafiken -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTDbrauch Grafiken fir ze funktionéiren, mee et konnten keng fond ginn. Wëllsde OpenTTD se downloaden an installéiren loossen ? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD brauch Grafiken fir ze funktionéiren, mee et konnten keng fond ginn. Wëllsde OpenTTD se downloaden an installéiren loossen ? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jo, download d'Grafiken STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, verlooss OpenTTD @@ -2235,7 +2211,7 @@ STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}Wiesselt STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Firmengebaier. Ctrl+Klick fir festzesetzen STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Brécken. Ctrl+Klick fir festzesetzen STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Gebaier wei d'Liichttiirm oder Transmitter. Ctrl+Klick fir festzesetzen -STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Iwerleitung. Ctrl+Klick fir festzesetzen +STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Catenaire. Ctrl+Klick fir festzesetzen STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Wiesselt d'Transparenz fir d'Luedungsindikatoren. Ctrl+Klick fir festzesetzen STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Setzt d'Objeten op onsichtbar amplaz transparent @@ -2267,17 +2243,17 @@ STR_JOIN_WAYPOINT_CAPTION :{WHITE}Weepunkt STR_JOIN_WAYPOINT_CREATE_SPLITTED_WAYPOINT :{YELLOW}Separaten Weepunkt bauen # Rail construction toolbar -STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Schinnenbau -STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :Elektrëschen Schinnenbau +STR_RAIL_TOOLBAR_RAILROAD_CONSTRUCTION_CAPTION :Schinnebau +STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :Elektrësche Schinnebau STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :Monorailbau STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Magnéitbahnbau STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Schinnen bauen. Ctrl wiesselt tëscht bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Schinnen am automateschen Modus bauen. Ctrl wiesselt tëscht bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Schinnen am automatesche Modus bauen. Ctrl wiesselt tëscht bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Zuchschapp bauen (fir Zich ze kafen an ze flécken). Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Konvertéiert d'Schinnen zum Weepunkt. Ctrl aktivéiert Weepunkter ze verbannen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Gare bauen. Ctrl aktivéiert fir d'Statioun unzebauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Zuchsignaler bauen. Ctrl wiesselt tëscht Diks/Luuten{}Zéien baut Signaler laanscht eng Zuchstreck. Ctrl baut Signaler bis déi nächst Weich{}Ctrl+Klick mécht Selectiounsfënster op.Shift wiesselt tëscht bauen/ongeféier Käschten uweisen +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Zuchsignaler bauen. Ctrl wiesselt tëscht Diks/Luuten{}Zéien baut Signaler laanscht eng Zuchstreck. Ctrl baut Signaler bis déi nächst Weich{}Ctrl+Klick mécht Auswielfënster op.Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Zuchbréck bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Zuchtunnel bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Wiesselt tëscht bauen/ofrappen vun Schinnen, Signaler an Statiounen. Ctrl unhalen rappt och Schinnen vun Weepunkter an Statiounen of @@ -2297,7 +2273,7 @@ STR_WAYPOINT_CAPTION :{WHITE}Weepunkt STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Wielt den Weepunktyp # Rail station construction window -STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Gare Selectioun +STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Gare Auswiel STR_STATION_BUILD_ORIENTATION :{BLACK}Richtung STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}Wielt Gare Richtung STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}Unzuel vun Schinnen @@ -2316,7 +2292,7 @@ STR_STATION_CLASS_WAYP :Weepunkten # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}Signalauswiel STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Block Signal (Diks){} Dëst ass em Basis-Signal, wat nëmmen engem Zuch zur selwechter Zait erlaabt an engem Block ze sinn -STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Agangs-Signal (Diks){}Gréng soulaang een oder méi gréng Ausgangs-Signaler op nächsten Streckenabschnitt sin. Anescht ass et roud. +STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Agangs-Signal (Diks){}Gréng soulaang een oder méi gréng Ausgangs-Signaler op nächsten Streckenabschnitt sinn. Anescht ass et roud. STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Ausgangs-Signal (Diks){}Verhält sech wéi en Block-Signal mee gëtt gebraucht fir déi korrekt Faarf ob Agangs- an Combo-Pre-Signaler ze setzen STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Combo-Signal (Diks){}En Combo-Signal agéiert wéi en Agangs- an wéi en Ausgangs-Signal. Dëst erlaabt engem vill "Beem" vun Pre-Signaler ze bauen STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Wee-Signal (Diks){}E Wee-Signal erlaabt méi wéi engem Zuch an en Block ze fueren zur selweschter Zäit, wann den Zuch en Wee op en sécheren Stop-Punkt kann reservéiren. Standard Wee-Signaler kënne vun béiden Säiten duerchfuer ginn @@ -2333,8 +2309,8 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Setzt Si STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Setzt Signaldensitéit rop # Bridge selection window -STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Wiel d'Schinnenbréck -STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Wielt d'Stroossenbréck +STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Wiel d'Schinnebréck +STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Wielt d'Stroossebréck STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Bréckenauswiel - Wiel deng Bréck aus STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} @@ -2349,12 +2325,12 @@ STR_BRIDGE_TUBULAR_SILICON :Rouer, Silikon # Road construction toolbar -STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Stroossenbau +STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Stroossebau STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Tramkonstruktioun STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Baut Stroossen.Ctrl+Klick wiësselt tëscht Stroossen bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Tramschinnen bauen. Ctrl+Klick wiësselt tëscht Tramschinnen bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Tramschinne bauen. Ctrl+Klick wiësselt tëscht Tramschinne bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}D'Strooss mat der Bau-Automatik bauen. Ctrl wiësselt tëscht Stroossen bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Tramschinnen mam "Autotram" Modus bauen. Ctrl wiesselt tëscht Tramschinnen bauen/ofrappen. Shift wiesselt tëschtbauen/ongeféier Käschten uweisen +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Tramschinne mam "Autotram" Modus bauen. Ctrl wiesselt tëscht Tramschinne bauen/ofrappen. Shift wiesselt tëschtbauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Baut Stroossendepot (fir Gefierer ze kafen an ze flécken). Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Tramschapp bauen (fir Gefierer ze kafen an d'Revisioun). Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Baut Busarrêt. Ctrl aktivéiert ubauen vun Statiounen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen @@ -2362,7 +2338,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Passagé STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Baut Camionsgare. Ctrl aktivéiert ubauen vun Statiounen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Wueren-Tramstatioun bauen. Ctrl aktivéiert ubauen vun Statiounen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Strooss an eng Richtung aktivéieren/déaktivéieren -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Baut Stroossenbréck. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Baut Stroossebréck. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Tramsbréck bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Baut Stroosentunnel. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramtunnel bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen @@ -2394,7 +2370,7 @@ STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Schëffs STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Schëffdock bauen. Ctrl aktivéiert ubauen vun Statiounen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Plazéiert eng Boje, déi als Weepunkt kann benotzt ginn. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Aquadukt bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen -STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Waasser definéieren.{}Mécht en Kanal. Mat CTRL gedréckt halen um Mieresspigel klicken, iwerflut d'Géigent +STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Waasser definéieren.{}Mécht en Kanal. Mat CTRL gedréckt halen um Mieresspigel klicken, iwwerflut d'Géigent STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Plazéier Flëss # Ship depot construction window @@ -2409,7 +2385,7 @@ STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}Fluchhä STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Fluchhafen bauen. Ctrl aktivéiert ubauen vun Statiounen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen # Airport construction window -STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Fluchhafen Selectioun +STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Fluchhafen Auswiel STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Wielt Gréisst/Typ vum Fluchhafen STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Fluchhafenklass STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Layout {NUM} @@ -2450,7 +2426,7 @@ STR_OBJECT_CLASS_TRNS :Transmitter # Tree planting window (last two for SE only) STR_PLANT_TREE_CAPTION :{WHITE}Beem -STR_PLANT_TREE_TOOLTIP :{BLACK}Wielt den Baamtyp. Wann d'Feld schons en Baam huet, gin méi Beem vun verschiddenen Arten gesat +STR_PLANT_TREE_TOOLTIP :{BLACK}Wielt den Baamtyp. Wann d'Feld schons en Baam huet, ginn méi Beem vun verschiddenen Arten gesat STR_TREES_RANDOM_TYPE :{BLACK}Zoufälleg Beem STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Zoufälleg Beem planzen. Shift wiesselt tëscht bauen an ongeféier Käschten uweisen STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Zoufälleg Beem @@ -2459,7 +2435,7 @@ STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Beem zou # Land generation window (SE) STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Landerstellung STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Fielsen iwwert d'Landschaft setzen -STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Zone fir Wüst défineieren.{}CTRL unhaalen fir se ze leschen +STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Zone fir Wüst défineieren.{}CTRL unhalen fir se ze läschen STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}Vergréisser d'Zone fir d'Land unzehiewen/erofzesetzen STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Verklenger d'Zone fir d'Land unzehiewen/erofzesetzen STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}Generéier en Zoufallsland @@ -2536,9 +2512,9 @@ STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Käschte STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Akommes wann ofgerappt: {LTBLUE}{CURRENCY_LONG} STR_LAND_AREA_INFORMATION_OWNER_N_A :N/A STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Besëtzer: {LTBLUE}{STRING} -STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Stroossenbesëtzer: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Stroossebesëtzer: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Trambunnbesëtzer: {LTBLUE}{STRING} -STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Schinnenbesëtzer: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Schinnebesëtzer: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Lokal Autoritéit: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Keng STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Koordinaten: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING}) @@ -2552,7 +2528,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Luedung: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinnen Geschw.-Limit: {LTBLUE}{VELOCITY} -STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Strossen Geschw. Limitatioun: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Stroossen Geschw. Limitatioun: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Fielsen @@ -2658,11 +2634,11 @@ STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Szenario STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Szenario lueden STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Lued Héichtenkaart STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Héichtenkaart späichern -STR_SAVELOAD_HOME_BUTTON :{BLACK}Klick hei fir op d'Standard Späicher-/Luedeverzeeschnis ze goen +STR_SAVELOAD_HOME_BUTTON :{BLACK}Klick hei fir op d'Standard Späicher-/Luedverzeeschnis ze goen STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} fräi STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Lëscht vun den Laafwierker, Dossieren an Späicherstänn STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Momentan gewielten Numm fir den Spillstand -STR_SAVELOAD_DELETE_BUTTON :{BLACK}Leschen +STR_SAVELOAD_DELETE_BUTTON :{BLACK}Läschen STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Lescht den momentan gewielten Spillstand STR_SAVELOAD_SAVE_BUTTON :{BLACK}Späicheren STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Späichert dei aktuell Partie ënnert dem gewielten Numm @@ -2687,10 +2663,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Unz. Ind STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Weis d'Schnéilinnhéicht STR_MAPGEN_SNOW_LINE_UP :{BLACK}Beweg Schnéilinnhéicht rop STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Beweg Schnéilinnhéicht rof -STR_MAPGEN_RANDOM_SEED :{BLACK}Zoufalls-Zuel: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klick fir eng Zoufalls-Zuel anzegin -STR_MAPGEN_RANDOM :{BLACK}Duerchenen würfeln -STR_MAPGEN_RANDOM_HELP :{BLACK}Zoufallszuel änneren fir den Terrain-Generator STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Baam Algorithmus: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain Typ: @@ -2701,7 +2673,7 @@ STR_MAPGEN_VARIETY :{BLACK}Vielfalt STR_MAPGEN_GENERATE :{WHITE}Generéiren # Strings for map borders at game generation -STR_MAPGEN_BORDER_TYPE :{BLACK}Kartenenner: +STR_MAPGEN_BORDER_TYPE :{BLACK}Kaartenenner: STR_MAPGEN_NORTHWEST :{BLACK}Nordwest STR_MAPGEN_NORTHEAST :{BLACK}Nordost STR_MAPGEN_SOUTHEAST :{BLACK}Südost @@ -2717,7 +2689,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Héichte STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Gréisst: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Gëff eng zoufälleg Zuel an STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ännert d'Schnéilinnhéicht STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Änner d'Startjoer @@ -2756,18 +2727,18 @@ STR_NEWGRF_SETTINGS_ACTIVE_LIST :{WHITE}Aktiv Ne STR_NEWGRF_SETTINGS_INACTIVE_LIST :{WHITE}Inaktiv NewGRF Dateien STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}Wiel Preset: STR_NEWGRF_FILTER_TITLE :{ORANGE}Filter string: -STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Selectéierten Preset lueden +STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}Gewielten Preset lueden STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Preset späichern STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Aktuell Lëscht als Preset späichern STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Presetnumm ugin -STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Preset leschen -STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Selectéierten Preset leschen +STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Preset läschen +STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Gewielten Preset läschen STR_NEWGRF_SETTINGS_ADD :{BLACK}Baifügen -STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Selectionéiert NewGRF an der Config baisetzen +STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Ausgewielten NewGRF an d'Config bäisetzen STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Dateien nei scannen STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}Update d'Lëscht vun verfügbaren NewGRF Dateien. STR_NEWGRF_SETTINGS_REMOVE :{BLACK}Wechhhuelen -STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Selectéiert NewGRF aus der Lëscht huelen +STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}Ausgewielten NewGRF aus der Lëscht huelen STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Rop STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Setzt d'NewGRF an der Lëscht erop STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Rof @@ -2777,7 +2748,7 @@ STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Eng Lës STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Set parameters STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Weis d'Parameter STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Palette wiesselen -STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Wiessel Palette vun den selectéierten NewGRF.{} Maach dat wann d'Grafiken vun deser NewGRF rosa am Spill ausgesin +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Wiessel Palette vun den ausgewielten NewGRF.{} Maach dat wann d'Grafiken vun dëser NewGRF rosa am Spill ausgesin STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Ännerungen unhuelen STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Feelenden Inhalt online downloaden @@ -2819,11 +2790,11 @@ STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF V # Sprite aligner window STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alignéiren d'Sprite {COMMA} ({STRING}) STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nächst Sprite -STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwersprang all pseudo/recolour/font Sprite an emsprangen um Ufank +STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an emsprangen um Ufank STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Géi op Sprite STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Géi op d'Sprite. Wann d'Sprite keng normal Sprite ass, géi op déi nächst normal Sprite STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Fiirescht Sprite -STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwersprang all pseudo/recolour/font Sprite an emsprangen um Ufank +STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an emsprangen um Ufank STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representatioun vun der grad gewielter Sprite. Den Alignement gëtt ignoréiert wann d'Sprite gezun gëtt STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweg Sprite, X an Y offsets enneren sech STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM} @@ -2835,7 +2806,7 @@ STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Géi op # NewGRF (self) generated warnings/errors STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} STR_NEWGRF_ERROR_MSG_WARNING :{RED}Warnung: {SILVER}{STRING} -STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING} +STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fehler: {SILVER}{STRING} STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING} STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}E fatalen NewGRF Fehler ass geschitt: {}{STRING} STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} wärt net mat der TTDPatch vun OpenTTD versioun funktionéiren @@ -2932,15 +2903,15 @@ STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} ( STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Awunner: {ORANGE}{COMMA}{BLACK} Haiser: {ORANGE}{COMMA} STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Passagéier leschten Mount: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Post leschten Mount: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} -STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Luedungen gebraucht fir Stadwuestum: +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Gidder gebraucht fir Stadwuesstem: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} gebraucht STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} gebraucht am Wanter STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} geliwwert STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (nach gebraucht) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (geliwwert) -STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Stat wiisst all {ORANGE}{COMMA}{BLACK} D{P aag eeg} -STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Stat wiisst all {ORANGE}{COMMA}{BLACK} D{P aag eeg} (finanzéiert) -STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Stat wiisst{RED} net{BLACK} +STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Stad wiisst all {ORANGE}{COMMA}{BLACK} D{P aag eeg} +STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Stad wiisst all {ORANGE}{COMMA}{BLACK} D{P aag eeg} (finanzéiert) +STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Stad wiisst{RED} net{BLACK} STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Kaméidislimit an der Stad: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Zentréiert d'Usiicht op d'Stad. Ctrl+Klick erstellt eng nei Usiicht op d'Stad STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Gemeng @@ -2949,8 +2920,8 @@ STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}Wiesselt STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}Erweideren STR_TOWN_VIEW_EXPAND_TOOLTIP :{BLACK}Stad méi grouss maachen -STR_TOWN_VIEW_DELETE_BUTTON :{BLACK}Leschen -STR_TOWN_VIEW_DELETE_TOOLTIP :{BLACK}Dës Stad ganz leschen +STR_TOWN_VIEW_DELETE_BUTTON :{BLACK}Läschen +STR_TOWN_VIEW_DELETE_TOOLTIP :{BLACK}Dës Stad ganz läschen STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stad ëmbenennen @@ -2966,7 +2937,7 @@ STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Féiert STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Kleng Marketingaktioun STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Mëttel Marketingsaktioun STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Grouss Marketingsaktioun -STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Strossenneibau finanzéieren +STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Stroossenneibau finanzéieren STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Statu vum Firmenbesëtzer bauen STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Nei Gebaier finanzéieren STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Exklusiv Transportrechter kafen @@ -2977,7 +2948,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Eng më STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Eng grouss Marketingaktioun starten, fir méi Passagéier an Wueren ze gewannen.{} Käschten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Stroossenneibau an der Stad finanzéieren. Stéiert den Traffic op den Stroossen fir dei nächst 6 Méint.{} Käschten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Eng Statu zur Éier vun der Firma bauen.{} Käschten: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Den Bau vun neien Kommerzgebaier finanzéieren.{} Käschten: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Den Bau vun neie Kommerzgebaier finanzéieren.{} Käschten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kaft fir 1 Joer exklusiv Transportrechter an dëser Stad. D'Gemeng erlaabt den Transport vun Passagéier an Wueren nëmmen ärer Firma.{} Käschten: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}D'Gemeng bestiechen fir d'Bewäertung ze erhéijen, mam Risiko fir eng grouss Bestrofung, falls der erwëscht gitt.{} Käschten: {CURRENCY_LONG} @@ -3015,7 +2986,7 @@ STR_GOAL_QUESTION_BUTTON_START :Start STR_GOAL_QUESTION_BUTTON_GO :Lass STR_GOAL_QUESTION_BUTTON_CONTINUE :Weiderman STR_GOAL_QUESTION_BUTTON_RESTART :Nei man -STR_GOAL_QUESTION_BUTTON_POSTPONE :Ofwarden +STR_GOAL_QUESTION_BUTTON_POSTPONE :Ofwaarden STR_GOAL_QUESTION_BUTTON_SURRENDER :Opginn STR_GOAL_QUESTION_BUTTON_CLOSE :Zouman @@ -3047,7 +3018,7 @@ STR_STATION_LIST_CAPTION :{WHITE}{COMPANY STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES} STR_STATION_LIST_WAYPOINT :{YELLOW}{WAYPOINT} STR_STATION_LIST_NONE :{YELLOW}- Näischt - -STR_STATION_LIST_SELECT_ALL_FACILITIES :{BLACK}Selectéier all d'Fabriken +STR_STATION_LIST_SELECT_ALL_FACILITIES :{BLACK}Wiel all d'Fabriken STR_STATION_LIST_SELECT_ALL_TYPES :{BLACK}Wielt all Luedungstyp (ouni Luedung déi waard) STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Kéng Luedung @@ -3071,8 +3042,8 @@ STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Lokal Be STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) STR_STATION_VIEW_GROUP :{BLACK}Gruppéier no -STR_STATION_VIEW_WAITING_STATION :Statioun: wardend -STR_STATION_VIEW_WAITING_AMOUNT :Unzuel: Wardend +STR_STATION_VIEW_WAITING_STATION :Statioun: waardend +STR_STATION_VIEW_WAITING_AMOUNT :Unzuel: Waardend STR_STATION_VIEW_PLANNED_STATION :Statioun: geplangt STR_STATION_VIEW_PLANNED_AMOUNT :Unzuel: geplangt STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} vun {STATION} @@ -3083,7 +3054,7 @@ STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHO STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} via iergendeng Statioun STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} vun dëser Statioun STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} stoppt op dëser Statioun -STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} op des Statioun +STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} op dës Statioun STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} non-stop STR_STATION_VIEW_GROUP_S_V_D :Quell-Via-Destinatioun @@ -3107,10 +3078,10 @@ STR_CARGO_RATING_OUTSTANDING :Perfekt STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}Zentréiert d'Usiicht op d'Statioun. Ctrl+Klick erstellt eng nei Usiicht op d'Statioun STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}Den Numm vun der Statioun änneren -STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}Weis all Zich déi des Statioun an hierem Zaitplang hun -STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}Weis all Stroossengefierer déi des Statioun an hierem Zäitplang hunn -STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}Weis all Fliger den des Statioun an sengem Zaitplang huet -STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Weis all Schëffer déi des Statioun an hierem Zaitplang hun +STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}Weis all Zich déi dës Statioun an hierem Zaitplang hunn +STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}Weis all Stroossegefierer déi dës Statioun an hierem Zäitplang hunn +STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}Weis all Fliger den dës Statioun an sengem Zaitplang huet +STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Weis all Schëffer déi dës Statioun an hierem Zaitplang hunn STR_STATION_VIEW_RENAME_STATION_CAPTION :D'Gare ëmbenennen @@ -3133,12 +3104,12 @@ STR_FINANCES_YEAR :{WHITE}{NUM} STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Konstruktioun STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nei Gefierer STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Zuch Betriebskäschten -STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Stroossengefierer Betriebskäschten +STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Stroossegefierer Betriebskäschten STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Fliger Betriebskäschten STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Schëff Betriebskäschten STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Besëtz Ennerhalt STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Zuch Akommes -STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Stroossengefierer Akommes +STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Stroossegefierer Akommes STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Fliger Akommes STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Schëff Akommes STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Zënssaz @@ -3148,7 +3119,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Kontostand STR_FINANCES_LOAN_TITLE :{WHITE}Kredit -STR_FINANCES_MAX_LOAN :{WHITE}Max Kredit: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximale Kredit: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}{CURRENCY_LONG} léinen STR_FINANCES_BORROW_TOOLTIP :{BLACK}Erhéicht den Kredit. Ctrl+Klick léint den Maximum @@ -3164,7 +3135,7 @@ STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Agefouert STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Faarfschema: STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Gefierer: STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} Z{P uch ich} -STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} Stroossengefier{P t ter} +STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} Stroossegefier{P "" er} STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} Fliger STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} Schëff{P "" er} STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Keng @@ -3204,13 +3175,13 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Verkaaft STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Firmennumm STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Numm vum Manager -STR_BUY_COMPANY_MESSAGE :{WHITE}Mir sichen eng Transportfirma déi eis Firma iwerhuelen wëll.{}{}Wëlls du {COMPANY} fir {CURRENCY_LONG} kafen? +STR_BUY_COMPANY_MESSAGE :{WHITE}Mir sichen eng Transportfirma déi eis Firma iwwerhuelen wëll.{}{}Wëlls du {COMPANY} fir {CURRENCY_LONG} kafen? # Company infrastructure window STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastruktur vun {COMPANY} -STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Schinnenstécker: +STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Schinnestécker: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signaler -STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stroossenstécker: +STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stroossestécker: STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Strooss STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tram STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Waasserfelder: @@ -3259,7 +3230,7 @@ STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Fliger STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Zich - klick op den Zuch fir Informatiounen -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Stroossengefierer - klick op en Gefier fir Informatiounen +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Stroossegefierer - klick op en Gefier fir Informatiounen STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Schëffer - Klick op d'Schëff fir Informatiounen STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Fliger - Klick op den Fliger fir Informatiounen @@ -3288,21 +3259,24 @@ STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Gedeelte # Group window STR_GROUP_ALL_TRAINS :All Zich -STR_GROUP_ALL_ROAD_VEHICLES :All Stroossengefierer +STR_GROUP_ALL_ROAD_VEHICLES :All Stroossegefierer STR_GROUP_ALL_SHIPS :All Schëffer STR_GROUP_ALL_AIRCRAFTS :All Fligeren STR_GROUP_DEFAULT_TRAINS :Ongruppéiert Zich -STR_GROUP_DEFAULT_ROAD_VEHICLES :Ongruppéiert Stroossengefierer +STR_GROUP_DEFAULT_ROAD_VEHICLES :Ongruppéiert Stroossegefierer STR_GROUP_DEFAULT_SHIPS :Ongruppéiert Schëffer STR_GROUP_DEFAULT_AIRCRAFTS :Ongruppéiert Fligeren -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen - klick op eng Grupp fir d'Gefierer aus där Grupp ze gesinn +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen - klick op eng Grupp fir d'Gefierer aus der Grupp ze gesinn. Per Drag and Drop d'Hierarchie änneren. STR_GROUP_CREATE_TOOLTIP :{BLACK}Klick fir eng Grupp ze maachen STR_GROUP_DELETE_TOOLTIP :{BLACK}Déi ungewielten Grupp läschen STR_GROUP_RENAME_TOOLTIP :{BLACK}Déi ungewielten Grupp ëmbenennen STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klick fir déi Grupp vum globalen "Autoersetzen" auszeschléissen +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Grupp läschen +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Bassde sécher, dass du dës Grupp an all Ennergruppen läschen wëlls? + STR_GROUP_ADD_SHARED_VEHICLE :Gedeelten Gefierer bäisetzen STR_GROUP_REMOVE_ALL_VEHICLES :All Gefierer wechhuelen @@ -3315,7 +3289,7 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nei Monorailgef STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nei Magnéitbunngefierer STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Zich -STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nei Stroossengefierer +STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nei Stroossegefierer STR_BUY_VEHICLE_SHIP_CAPTION :Nei Schëffer STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neien Fliger @@ -3341,17 +3315,17 @@ STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zé STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Distanz: {GOLD}{COMMA} Felder STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Zuchlëscht - klick op en Zuch fir Informatiounen -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Stroossengefierlëscht - klick op en Gefier fir Informatiounen +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Stroossegefierlëscht - klick op en Gefier fir Informatiounen STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Schëffslëscht - Klick op d'Schëff fir Informatiounen STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Fligerlëscht - Klick op den Fliger fir Informatiounen -STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Gefiert kafen -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Gefiert kafen +STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Gefier kafen +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Gefier kafen STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Schëff kafen STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Fliger kafen STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft den ungewielten Zuch. Shift+Klick weist ongeféier Käschten ouni Kaf -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft dat ugewielten Stroossengefiert. Shift+Klick weist ongeféier Käschten ouni Kaf +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft dat ugewielte Stroossegefier. Shift+Klick weist ongeféier Käschten ouni Kaf STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft dat ugewielten Schëff. Shift+Klick weist ongeféier Käschten ouni Kaf STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft den ungewielten Fliger. Shift+Klick weist ongeféier Käschten ouni Kaf @@ -3360,13 +3334,13 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Ëmbenen STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}Ëmbenennen STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}Ëmbenennen -STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Gefierttyp ëmbenennen -STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Gefierttyp ëmbenennen +STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}Gefiertyp ëmbenennen +STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Gefiertyp ëmbenennen STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Schëffstyp ëmbenennen STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Fligertyp ëmbenennen -STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Zuchgefierttyp ëmbenennen -STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Gefiertentyp ëmbenennen +STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Zuchgefiertyp ëmbenennen +STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Gefierertyp ëmbenennen STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}Schëffstyp ëmbenennen STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}Fligertyp ëmbenennen @@ -3381,20 +3355,20 @@ STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE} STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} Gefier{P t er}{STRING} STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) -STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Zich - zidd d'Gefiert fir en unzehänken/wechzehuelen, Rietsklick fir Informatiounen. Ctrl unhalen dass béid Fonktiounen fir déi nächst Ketten gëllen +STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Zich - zidd d'Gefier fir en unzehänken/wechzehuelen, Rietsklick fir Informatiounen. Ctrl unhalen dass béid Fonktiounen fir déi nächst Ketten gëllen STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Gefierer - Rietsklick op en Gefier fir Informatiounen STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Schëffer - Rietsklick op d'Schëff fir Informatiounen STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Fliger - Rietsklick op den Fliger fir Informatiounen STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Zitt den Zuch heihin fir en ze verkafen -STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Zitt d'Stroossengefier heihin fir et ze verkafen +STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Zéi d'Stroossegefier heihin fir et ze verkafen STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Zitt Schëff heihin fir et ze verkafen STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Zitt den Fliger heihin fir en ze verkafen STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}Lokomotiv heihinner zéien fir de ganzen Zuch ze läschen STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}All Zich am Schapp verkafen -STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}All Gefiert am Depot verkafen +STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}All Gefier am Depot verkafen STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}All Schëff am Schapp verkafen STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}All Fliger am Hangar verkafen @@ -3409,17 +3383,17 @@ STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Nei Sch STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Neien Fliger STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Keeft neien Zuch -STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Neit Stroossengefiert kafen +STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Neit Stroossegefier kafen STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Neit Schëff kafen STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Neien Fliger kafen STR_DEPOT_CLONE_TRAIN :{BLACK}Zuch klonen -STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Gefiert klonen +STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Gefier klonen STR_DEPOT_CLONE_SHIP :{BLACK}Schëff klonen STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Fliger klonen STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Dëst baut eng Kopie vun engem Zuch mat all den Waggonen. Klick op dësen Knäppchen an dann op en Zuch am Schapp oder baussen. Ctrl+Klick fir Opträg ze deelen. Shift+Klick weist ongeféier Käschten ouni Kaf -STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Keeft eng Kopie vum Stroossengefier. Klick dësen Kneppchen an dann op en Stroossengefier am oder baussent dem Depot. Ctrl+Klick deelt och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf +STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Keeft eng Kopie vum Stroossegefier. Klick dësen Kneppchen an dann op e Stroossegefier am oder baussent dem Depot. Ctrl+Klick deelt och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}Dëst baut eng Kopie vum Schëff. Klick op dësen Knäppchen an dann op en Schëff am Schapp oder baussen.Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Dëst baut eng Kopie vun engem Fliger. Klick op dësen Knäppchen, an dann op en Fliger am Hangar oder baussen. Ctrl+Klick fir Uerder ze deelen. Shift+Klick weist ongeféier Käschten ouni Kaf @@ -3446,10 +3420,10 @@ STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Klick fi STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du verkeefs grad all Gefierer am Schapp. Bass du sécher ? # Engine preview window -STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meldung vum Gefiertenhiersteller -STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mir hunn elo en neien {STRING} gebaut - bass du dorun interesséiert dëst Gefiert 1 Joer exklusiv ze notzen, fir ze testen op et komplett maarträif ass? +STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meldung vum Gefiererkonstrukteur +STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mir hunn elo en neien {STRING} gebaut - bass du dorun interesséiert dëst Gefier 1 Joer exklusiv ze notzen, fir ze testen op et komplett maarträif ass? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :Lokomotiv -STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossengefier +STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier STR_ENGINE_PREVIEW_AIRCRAFT :Fliger STR_ENGINE_PREVIEW_SHIP :Schëff STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv @@ -3465,7 +3439,7 @@ STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Käschte # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} STR_REPLACE_VEHICLE_TRAIN :Zuch -STR_REPLACE_VEHICLE_ROAD_VEHICLE :Stroossengefier +STR_REPLACE_VEHICLE_ROAD_VEHICLE :Stroossegefier STR_REPLACE_VEHICLE_SHIP :Schëff STR_REPLACE_VEHICLE_AIRCRAFT :Fliger @@ -3488,7 +3462,7 @@ STR_REPLACE_ENGINES :Motoren STR_REPLACE_WAGONS :Waggonen STR_REPLACE_HELP_RAILTYPE :{BLACK}Wielt den Schinnentyp fir den Maschinen ausgetosch ginn -STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Maschin vun der lénks selectéierter Maschin ausgetosch soll ginn, wann et zoutrëfft +STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Maschin vun der lénks ugewielter Maschin ausgetosch soll ginn, wann et zoutrëfft STR_REPLACE_RAIL_VEHICLES :Zich STR_REPLACE_ELRAIL_VEHICLES :Elektresch Zich STR_REPLACE_MONORAIL_VEHICLES :Monorail Gefierer @@ -3501,37 +3475,37 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Mëscht STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Usiicht op den Zuch. Ctrl+Klick follegt dem Zuch an der Haaptusiicht -STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Usiicht op d'Gefiert. Ctrl+Klick follegt dem Gefiert an der Haaptusiicht +STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Usiicht op d'Gefier. Ctrl+Klick follegt dem Gefier an der Haaptusiicht STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Usiicht op d'Schëff. Ctrl+Klick follegt dem Schëff an der Haaptusiicht STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Zentréiert d'Usiicht op den Fliger. Ctrl+Klick follegt dem Fliger an der Haaptusiicht STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Schéckt den Zuch an den Schapp. Ctrl+Klick fir nëmmen Revisoun -STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Schéckt d'Gefiert an den Depot. CTRL+Klick fir nëmmen Revisoun +STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Schéckt d'Gefier an den Depot. Ctrl+Klick fir nëmmen Revisoun STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}Schéck d'Schëff an den Schapp. Ctrl+Klick fir nëmmen Revisoun STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Schéckt den Fliger an den Hangar. CTRL+Klick mëscht nëmmen Revisioun STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}Dëst baut eng Kopie vun engem Zuch mat all den Waggonen. Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf -STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}Baut eng Kopie vum Stroossengefiert. Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf +STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}Baut eng Kopie vum Stroossegefier. Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf STR_VEHICLE_VIEW_CLONE_SHIP_INFO :{BLACK}Dëst baut eng Kopie vum Schëff. Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}Dëst baut eng Kopie vum Fliger. Ctrl+Klick kopéiert och d'Opträg. Shift+Klick weist ongeféier Käschten ouni Kaf STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}Forcéiert den Zuch durch d'Signal ze fueren STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Den Zuch upassen fir aaner Luedungen ze transportéieren -STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Stroossengefiert ëmbauen fir eng aner Wuer ze transportéiren +STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Stroossegefier ëmbauen fir eng aner Wuer ze transportéiren STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Schëffslager ëmbauen fir aaner Luedungen ze transportéieren STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Fliger ëmbauen fir aaner Wueren ze transportéieren STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Richtung vum Zuch wiesselen -STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}Forcéiert d'Gefiert fir ze dréien +STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}Forcéiert d'Gefier fir ze dréien STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}Weist d'Opträg vum Zuch. Ctrl+Klick weist den Zäitplang -STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Weist d'Opträg vum Gefiert. Ctrl+Klick weist den Zäitplang +STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Weist d'Opträg vum Gefier. Ctrl+Klick weist den Zäitplang STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Weist d'Opträg vum Schëff. Ctrl+Klick weist den Zäitplang STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Weist d'Opträg vum Fliger. Ctrl+Klick weist den Zäitplang STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Weist d'Detailer vum Zuch -STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Weist Stroosengefiert Detailer +STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Weist Stroosengefier Detailer STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Weist Schëffdetailer STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Weist d'Fligerdetailer @@ -3568,7 +3542,7 @@ STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE STR_VEHICLE_NAME_BUTTON :{BLACK}Numm STR_VEHICLE_DETAILS_TRAIN_RENAME :{BLACK}Zuch benennen -STR_VEHICLE_DETAILS_ROAD_VEHICLE_RENAME :{BLACK}Stroossengefiert benennen +STR_VEHICLE_DETAILS_ROAD_VEHICLE_RENAME :{BLACK}Stroossegefier benennen STR_VEHICLE_DETAILS_SHIP_RENAME :{BLACK}Schëff benennen STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}Fliger benennen @@ -3604,7 +3578,7 @@ STR_VEHICLE_DETAILS_DAYS :Deeg STR_VEHICLE_DETAILS_PERCENT :Prozent STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Zuch benennen -STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Stroossengefiert benennen +STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Stroossegefier benennen STR_QUERY_RENAME_SHIP_CAPTION :{WHITE}Schëff benennen STR_QUERY_RENAME_AIRCRAFT_CAPTION :{WHITE}Fliger benennen @@ -3638,20 +3612,20 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nei Kapa STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Nei Kapazitéit: {GOLD}{CARGO_LONG}{}{BLACK}Akommes vum Embau: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nei Kapazitéit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Käschten fir den Embau: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nei Kapazitéit: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Akommes vum Embau: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Wiel d'Gefierer fir den Embau. Mat der Maus zéien erlaabt den Embau vun méi Gefierer. Op eng eidel Plaz klicken wielt d'ganzt Gefiert. Ctrl+Klick wielt e Gefiert an de Rescht vun der Ketten +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Wiel d'Gefierer fir den Embau. Mat der Maus zéien erlaabt den Embau vun méi Gefierer. Op eng eidel Plaz klicken wielt d'ganzt Gefier. Ctrl+Klick wielt e Gefier an de Rescht vun der Ketten -STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Selectéiert d'Luedung déi transportéiert soll ginn -STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wielt den Typ vun Wueren fir Stroossengefiert -STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Selèctéiert den Luedungstyp fir d'Schëff +STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Wielt d'Luedung déi transportéiert soll ginn +STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wielt den Typ vun Wueren fir Stroossegefier +STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Wielt den Luedungstyp fir d'Schëff STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Wielt den Luedungstyp aus STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Zuch upassen -STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Stroossengefiert ëmbauen +STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Stroossegefier ëmbauen STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Schëff ëmbauen STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Fliger ëmbauen STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Passt den Zuch un fir den ugewielten Luedungstyp -STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Stroosengefiert embauen fir gewielten Wuer ze transportéiren +STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Stroosengefier embauen fir gewielten Wuer ze transportéiren STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Schëff op dei ugewielten Luedung ëmbauen STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Baut den Fliger fir den ugewieltenen Luedungstyp ëm @@ -3660,7 +3634,7 @@ STR_ORDERS_CAPTION :{WHITE}{VEHICLE STR_ORDERS_TIMETABLE_VIEW :{BLACK}Zäitplang STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Wiesselt op d'Zäitplangunzeig -STR_ORDERS_LIST_TOOLTIP :{BLACK}Optragslëscht - Klick op en Optrag fir en ze selectéieren. Ctrl+Klick scrollt op d'Optragdestinatioun +STR_ORDERS_LIST_TOOLTIP :{BLACK}Optragslëscht - Klick op en Optrag fir en ze wielen. Ctrl+Klick scrollt op d'Optragdestinatioun STR_ORDER_INDEX :{COMMA}:{NBSP} STR_ORDER_TEXT :{STRING} {STRING} {STRING} @@ -3690,9 +3664,9 @@ STR_ORDER_DROP_NO_UNLOADING :Net entlueden STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Wiesselt Entlueden vun dem ungewielten Optrag STR_ORDER_REFIT :{BLACK}Ëmbauen -STR_ORDER_REFIT_TOOLTIP :{BLACK}Wielt wéi een Luedungstyp du wëlls. Ctrl+Klick fir den Ëmbau ze leschen -STR_ORDER_REFIT_AUTO :{BLACK}Auto-Erneiern -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Wiel wellëch Wuerentypen sollen auto-ersat ginn an dësem Ueder. Ctrl+Klick fir all Auto-Erneierungen wechzehuelen. Auto-Erneiern geht just wann d'Gefiert ët erlaabt +STR_ORDER_REFIT_TOOLTIP :{BLACK}Wielt an wéi een Luedungstyp sollt emgebaut ginn. Ctrl+Klick fir den Ëmbau ze läschen +STR_ORDER_REFIT_AUTO :{BLACK}Embauen an der Statioun +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Wiel wellëch Wuerentypen sollen auto-ersat ginn an dësem Optrag. Ctrl+Klick fir all Auto-Erneierungen wechzehuelen. Auto-Erneiern geht just wann d'Gefier ët erlaabt STR_ORDER_DROP_REFIT_AUTO :Festgelueten Wuer STR_ORDER_DROP_REFIT_AUTO_ANY :Verfügbar Wueren @@ -3702,7 +3676,7 @@ STR_ORDER_DROP_SERVICE_DEPOT :Revisioun falls STR_ORDER_DROP_HALT_DEPOT :Stop STR_ORDER_SERVICE_TOOLTIP :{BLACK}Iwwersprang dësen Optrag wann keng Revisioun néideg ass -STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Gefiertsdaten als Basis fir den Optragssprong +STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Gefierdaten als Basis fir den Optragssprong # Conditional order variables, must follow order of OrderConditionVariable enum STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Prozent gelueden @@ -3713,7 +3687,7 @@ STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Brauch eng Revi STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Ëmmer STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Reschtlaafzäit (Joer) -STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Wéi Gefiertsdaten verglach sollen ginn +STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Wéi Gefierdaten verglach sollen ginn STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :ass gläich STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :ass net gläich STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :ass manner wéi @@ -3723,24 +3697,24 @@ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :ass méi oder g STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :ass wouer(true) STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :ass falsch(false) -STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Den Wäert deen mat den Gefiertsdaten verglach gëtt +STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Den Wäert deen mat den Gefierdaten verglach gëtt STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Wäert anginn fir ze vergläichen -STR_ORDERS_SKIP_BUTTON :{BLACK}Iwersprangen -STR_ORDERS_SKIP_TOOLTIP :{BLACK}Iwersprang den momentanen Optrag. CTRL+Klick iwerspréngt op den ungewieltenen Optrag +STR_ORDERS_SKIP_BUTTON :{BLACK}Iwwersprangen +STR_ORDERS_SKIP_TOOLTIP :{BLACK}Iwwersprang den momentanen Optrag. CTRL+Klick iwwerspréngt op den ungewieltenen Optrag -STR_ORDERS_DELETE_BUTTON :{BLACK}Leschen +STR_ORDERS_DELETE_BUTTON :{BLACK}Läschen STR_ORDERS_DELETE_TOOLTIP :{BLACK}Lescht den ungewieltenen Optrag -STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}All Opträg leschen +STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}All Opträg läschen STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Deelen stoppen -STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Stop d'Deelen vun der Optragslëscht. Ctrl+Klick lescht ausserdem all Opträg vun dësem Gefiert +STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Stop d'Deelen vun der Optragslëscht. Ctrl+Klick lescht ausserdem all Opträg vun dësem Gefier STR_ORDERS_GO_TO_BUTTON :{BLACK}Géi op STR_ORDER_GO_TO_NEAREST_DEPOT :Géi an den noosten Schapp STR_ORDER_GO_TO_NEAREST_HANGAR :Géi bei den noosten Hangar STR_ORDER_CONDITIONAL :Bedéngten Optragssprong STR_ORDER_SHARE :Opträg deelen -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Setzt en neien Optrag firun den ungewielten Optrag, oder un d'Enn vun der Lëscht. Ctrl setzt Statioun Opträg op voll lueden, Weepunkter op 'non-stop', an Schapp Opträg 'Revisioun'. Op en Gefiert klicken, kopéiert d'Opträg vun dem Gefiert +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Setzt en neien Optrag firun den ungewielten Optrag, oder un d'Enn vun der Lëscht. Ctrl setzt Statioun Opträg op voll lueden, Weepunkter op 'non-stop', an Schapp Opträg 'Revisioun'. Op en Gefier klicken, kopéiert d'Opträg vun dem Gefier STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Weis all Gefierer déi dësen Plang deelen @@ -3754,7 +3728,7 @@ STR_ORDER_SERVICE_NON_STOP_AT :Revisioun non-s STR_ORDER_NEAREST_DEPOT :den noosten STR_ORDER_NEAREST_HANGAR :den noosten Hangar STR_ORDER_TRAIN_DEPOT :Zuchschapp -STR_ORDER_ROAD_VEHICLE_DEPOT :Stroossengefierer-Depot +STR_ORDER_ROAD_VEHICLE_DEPOT :Stroossegefierer-Depot STR_ORDER_SHIP_DEPOT :Schëffsschapp STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING} STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT} @@ -3779,16 +3753,16 @@ STR_ORDER_TRANSFER_FULL_LOAD :(Transferéiere STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferéieren an mat all Wuer voll lueden) STR_ORDER_TRANSFER_NO_LOAD :(Transferéieren an eidel loosen) STR_ORDER_NO_UNLOAD :(Net entlueden an Wueren lueden) -STR_ORDER_NO_UNLOAD_FULL_LOAD :(Net entlueden an op voll Beluedung warden) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Net entlueden an op iergendeng voll Beluedung warden) +STR_ORDER_NO_UNLOAD_FULL_LOAD :(Net entlueden an op voll Beluedung waarden) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Net entlueden an op iergendeng voll Beluedung waarden) STR_ORDER_NO_UNLOAD_NO_LOAD :(Keen Ent- an Belueden) -STR_ORDER_AUTO_REFIT :(Auto-Embauen zu {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Vollueden mat Auto-Embauen zu {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Vollueden mat all Wueren mat Auto-Embauen zu {STRING}) -STR_ORDER_UNLOAD_REFIT :(Entlueden an Wueren lueden mat Auto-Embauen zu {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Entlueden an op voll Luedung warden mat Auto-Embauen zu {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Entlueden an warden op iergendeng Volluedung mat Auto-Embauen zu {STRING}) +STR_ORDER_AUTO_REFIT :(Embauen zu {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Vollueden mat Embauen zu {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Vollueden mat all Wueren mat Embauen zu {STRING}) +STR_ORDER_UNLOAD_REFIT :(Entlueden an Wueren lueden mat Embauen zu {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Entlueden an op voll Luedung waarden mat Embauen zu {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Entlueden an ward op iergendeng Volluedung mat Embauen zu {STRING}) STR_ORDER_TRANSFER_REFIT :(Transfer an lued Wueren mat Auto-Embauen zu {STRING}) STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transfer an ward op Vollueden mat Auto-Embauen zu {STRING}) STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transfer an ward op iergendeng Volluedung mat Auto-Embauen zu {STRING}) @@ -3820,9 +3794,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Zäitpla STR_TIMETABLE_NO_TRAVEL :Net ënnerwee STR_TIMETABLE_NOT_TIMETABLEABLE :Rees(automatesch; Zaitplang durch manuell Opträg) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Ënnerwee (ouni Zäitplang) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Fiert maximal {2:VELOCITY} (ouni Stonneplang) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Fuer maximal {2:VELOCITY} (ouni Zäitplang) STR_TIMETABLE_TRAVEL_FOR :Ënnerwee fir {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Fiert fir {STRING} mat maximal {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Fuer (während {STRING}, ouni Zäitplang) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Fuer (während {STRING}, ouni Zäitplang) mat maximal {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(bleif während {STRING}, ouni Zäitplang) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(fuer während {STRING}, ouni Zäitplang) STR_TIMETABLE_STAY_FOR :an bleif fir {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :an ënnerwee op {STRING} STR_TIMETABLE_DAYS :{COMMA} D{P ag eeg} @@ -3831,14 +3809,14 @@ STR_TIMETABLE_TICKS :{COMMA} Interva STR_TIMETABLE_TOTAL_TIME :{BLACK}Dësen Zäitplang brauch {STRING} fir faërdeg ze gin STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Dësen Zäitplang brauch op manst {STRING} (net all geplangt) -STR_TIMETABLE_STATUS_ON_TIME :{BLACK}D'Gefiert ass mat Zäit -STR_TIMETABLE_STATUS_LATE :{BLACK}D'Gefiert ass grad {STRING} ze spéit -STR_TIMETABLE_STATUS_EARLY :{BLACK}D'Gefiert ass grad {STRING} ze fréi +STR_TIMETABLE_STATUS_ON_TIME :{BLACK}D'Gefier ass mat Zäit +STR_TIMETABLE_STATUS_LATE :{BLACK}D'Gefier ass grad {STRING} ze spéit +STR_TIMETABLE_STATUS_EARLY :{BLACK}D'Gefier ass grad {STRING} ze fréi STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}Dësen Zäitplang gouf nach net gestart STR_TIMETABLE_STATUS_START_AT :{BLACK}Dësen Zäitplang start um {STRING} STR_TIMETABLE_STARTING_DATE :{BLACK}Start Datum -STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Wiel en Datum als Startpunkt fir dësen Zäitplang. Ctrl+Klick setzt den Startpunkt vun dësem Zäitplang an verdeelt et en gläichméisseg op all Gefierer déi dësen Ueder hunn, wann den Ueder komplett mat engem Zäitplang versinn ass +STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Wiel en Datum als Startpunkt fir dësen Zäitplang. Ctrl+Klick setzt den Startpunkt vun dësem Zäitplang an verdeelt et en gläichméisseg op all Gefierer déi dësen Optrag hunn, wann den Optrag komplett mat engem Zäitplang versinn ass STR_TIMETABLE_CHANGE_TIME :{BLACK}Zäit wiesselen STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Änner Zäit déi den ugewielten Optrag brauchen soll @@ -3849,11 +3827,11 @@ STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Lesch Z STR_TIMETABLE_CHANGE_SPEED :{BLACK}Änner de Geschwindegkeetslimit STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Änner d'maximal Reesgeschwindëgkeet fir den gewielten Optrag -STR_TIMETABLE_CLEAR_SPEED :{BLACK}Geschwindegkeetslimit leschen -STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Maximal Reesgeschwindegkeet vum gewielten Optrag leschen +STR_TIMETABLE_CLEAR_SPEED :{BLACK}Geschwindegkeetslimit läschen +STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Maximal Reesgeschwindegkeet vum gewielten Optrag läschen STR_TIMETABLE_RESET_LATENESS :{BLACK}Verspeidungszieler zerécksetzen -STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Setzt den Verspéidungszieler zréck, sou dass d'Gefiert mat Zäit ukënnt +STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Setzt den Verspéidungszieler zréck, sou dass d'Gefier mat Zäit ukënnt STR_TIMETABLE_AUTOFILL :{BLACK}Autofëllen STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Fëll den Zäitplang automatesch mat den Wäerter vum nächsten Trajet (Ctrl+Klick fir Wardzäiten probéiren bäizehalen) @@ -3895,8 +3873,8 @@ STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Debug-ou STR_AI_GAME_SCRIPT :{BLACK}Spill-Script STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Check den Spill-Scipt-Log -STR_ERROR_AI_NO_AI_FOUND :Keng passend KI fonnt fir ze lueden.{}Dës KI ass en Dummy an wäert näischt maachen.{}KI'en kënnen iwwert den 'Online Content' System downgeload gin. -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}En Script ass ofgestierzt. W.e.g mellt des dem Autor mat engem Screenshot vun der KI/Spill-Script Debugfënster +STR_ERROR_AI_NO_AI_FOUND :Keng passend KI fonnt fir ze lueden.{}Dës KI ass en Dummy an wäert näischt maachen.{}KI'en kënnen iwwert den 'Online Content' System downgeload ginn. +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}En Script ass ofgestierzt. W.e.g mellt dës dem Autor mat engem Screenshot vun der KI/Spill-Script Debugfënster STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}KI / Spill-Script Debugfënster ass nëmmen fir Serveren verfügbar # AI configuration window @@ -3915,7 +3893,7 @@ STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Gewielte STR_AI_CONFIG_GAMESCRIPT :{SILVER}Spill-Script STR_AI_CONFIG_AI :{SILVER}KIën -STR_AI_CONFIG_CHANGE :{BLACK}Selectéier {STRING} +STR_AI_CONFIG_CHANGE :{BLACK}Wiel {STRING} aus STR_AI_CONFIG_CHANGE_NONE : STR_AI_CONFIG_CHANGE_AI :KI STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spill-Script @@ -3934,7 +3912,7 @@ STR_AI_LIST_VERSION :{LTBLUE}Versiou STR_AI_LIST_URL :{LTBLUE}URL: {ORANGE}{STRING} STR_AI_LIST_ACCEPT :{BLACK}Acceptéiert -STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Selectéiert ungewielte Script +STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Wiel den markéierten Script STR_AI_LIST_CANCEL :{BLACK}Ofbriechen STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script net änneren @@ -3988,7 +3966,7 @@ STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Nach umg STR_ERROR_AUTOSAVE_FAILED :{WHITE}Fehler beim Autospäicheren STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Kann net um Laafwierk liesen STR_ERROR_GAME_SAVE_FAILED :{WHITE}Fehler beim Späicheren{}{STRING} -STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kann d'Datei net leschen +STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kann d'Datei net läschen STR_ERROR_GAME_LOAD_FAILED :{WHITE}Fehler beim Lueden{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Internen Fehler: {STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Futtissen Spillstand - {STRING} @@ -4092,7 +4070,7 @@ STR_ERROR_TOO_MANY_TOWNS :{WHITE}... ze v STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... et ass keng Plaz méi op der Kaart STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Stied bauen keng Stroossen. Du kanns den Bau iwwert Erweidert Astellungen->Economie->Stied anschalten STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Stroossenarbeschten umgaangen -STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kann des Stad net leschen...{}Eng Statioun oder Schapp huet den Numm vun dëser Stad oder en Stéck dat der Stad gehéiert kann net ewechgeholl ginn +STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kann dës Stad net läschen...{}Eng Statioun oder Schapp huet den Numm vun dëser Stad oder en Stéck dat der Stad gehéiert kann net ewechgeholl ginn STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... et gëtt keng Gëeegent Plaz fir eng Statue am Stadzentrum # Industry related errors @@ -4184,11 +4162,11 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... muss STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Zich kënnen nëmmen an engem Schapp verännert ginn STR_ERROR_TRAIN_TOO_LONG :{WHITE}Zuch ze laang -STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Kann d'Gefiert hei net ëmdréinen... +STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Kann d'Gefier hei net ëmdréinen... STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... ass aus e puer Eenheeten zesummengesat -STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Onkompatibel Schinnen Typen +STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Onkompatibel Schinnentypen -STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Kann d'Gefiert net réckelen... +STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Kann d'Gefier net réckelen... STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}D'hënnescht Maschinn geet ëmmer der viischter no. STR_ERROR_UNABLE_TO_FIND_ROUTE_TO :{WHITE}Kann den Wee an den Schapp net fannen STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}Kann den Schapp net fannen @@ -4204,7 +4182,7 @@ STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(Geldlimit) STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Onméiglech Streckenkombinatioun STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Signaler mussen fir d'éischt wechgeholl ginn STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Keng gëeegent Schinnen -STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}D'Schinnen mussen fir d'éischt ewech +STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}D'Schinne musse fir d'éischt ewech STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}D'Strooss ass eng Richtung oder blockéiert STR_ERROR_CROSSING_DISALLOWED :{WHITE}Héich Kräizungen sinn fir dësen Schinnentyp net erlaabt STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kann d'Signaler hei net bauen... @@ -4276,60 +4254,61 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... scho STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kann d'Grupp net erstellen... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kann d'Grupp net läschen... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kann d'Grupp net ëmbenennen... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kann iwwergeuerdent Grupp net setzen... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Kann net all d'Gefierer aus der Grupp läschen... -STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kann d'Gefiert net bei d'Grupp bäisetzen... +STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kann d'Gefier net bei d'Grupp bäisetzen... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Kann dei gedeelten Gefierer net bei d'Grupp bäisetzen... # Generic vehicle errors STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Zuch am Wee -STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Stroossengefiert am Wee +STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Stroossegefier am Wee STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Schëff am Wee STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Fliger am Wee STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}Kann den Zuch net unpassen... -STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}Kann Stroossengefiert net ëmbauen... +STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}Kann Stroossegefier net ëmbauen... STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}Kann d'Schëff net ëmbauen... STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}Kann den Fliger net ëmbauen... STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}Kann den Zuch net benennen... -STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kann d'Stroossengefiert net benennen... +STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kann d'Stroossegefier net benennen... STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}Kann d'Schëff net benennen... STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}Kann den Fliger net benennen... STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}Kann den Zuch net starten/stopen... -STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}Kann d'Stroossengefiert net stoppen/starten... +STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}Kann d'Stroossegefier net stoppen/starten... STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}Kann d'Schëff net stoppen/starten... STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}Kann den Fliger net stoppen/starten... STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Kann den Zuch net an den Schapp schécken... -STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}Kann d'Gefiert net an den Depot schécken... +STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}Kann d'Gefier net an den Depot schécken... STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Kann d'Schëff net an den Schapp schécken... STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Kann den Fliger net an den Hangar schécken... STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Kann den Zuch net bauen... -STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}Kann d'Stroossengefiert net kafen... +STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}Kann d'Stroossegefier net kafen... STR_ERROR_CAN_T_BUY_SHIP :{WHITE}Kann Schëff net kafen... STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Kann den Fliger net kafen... -STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}Kann den Zuchgefierttyp net ëmbenennen... -STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Kann den Gefierttyp net ëmbenennen... +STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}Kann den Zuchgefiertyp net ëmbenennen... +STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Kann den Gefiertyp net ëmbenennen... STR_ERROR_CAN_T_RENAME_SHIP_TYPE :{WHITE}Kann den Schëffstyp net ëmbenennen... STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Kann den Fligertyp net ëmbenennen... STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}Kann den Zuch net verkafen... -STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Kann d'Stroossengefiert net verkafen... +STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Kann d'Stroossegefier net verkafen... STR_ERROR_CAN_T_SELL_SHIP :{WHITE}Kann Schëff net verkafen... STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Kann dën Fliger net verkafen... -STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Gefiert net verfügbar -STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Stroossengefiert net verfügbar +STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Gefier net verfügbar +STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Stroossegefier net verfügbar STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Schëff net verfügbar STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Fliger net verfügbar STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Ze vill Gefierer am Spill STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Den Service-Intervall kann net geännert ginn... -STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... Gefiert ass zerstéiert +STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... Gefier ass zerstéiert STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Keng Gefierer verfügbar STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Änner d'NewGRF Konfiguratioun @@ -4341,7 +4320,7 @@ STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kann den STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kann d'Richtung vum Zuch net änneren... STR_ERROR_TRAIN_START_NO_POWER :Zuch huet keng Kraaft -STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}Kann d'Stroossengefiert net ëmdréinen... +STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}Kann d'Stroossegefier net ëmdréinen... STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Fliger ass um Fluch @@ -4352,11 +4331,11 @@ STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}Kann kee STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Kann den Optrag net läschen... STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}Kann den Optrag net änneren... STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Kann den Optraag net réckelen... -STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Kann den Optrag net iwersprangen... -STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Kann net op den ugewieltenen Optrag iwersprangen... +STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Kann den Optrag net iwwersprangen... +STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Kann net op den ugewieltenen Optrag iwwersprangen... STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... Gefier kann net op all Statioun goen -STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... Gefiert kann nët op déi Statioun goen -STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... en Gefiert dat dësen Optrag deelt kann net op déi Statioun goen +STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... Gefier kann net op déi Statioun goen +STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... en Gefier dat dësen Optrag deelt kann net op déi Statioun goen STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Kann d'Optragslëscht net deelen... STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Kann d'Deelen vun der Optragslëscht net stoppen... @@ -4365,9 +4344,9 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... ze w STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... Fliger huet net genuch Distanz # Timetable related errors -STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Kann dem Gefiert keen Zäitplang gin. -STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Gefierter kënnen nëmmen op Statiounen halen. -STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Dëst Gefiert bleift net op dëser Statioun stoën. +STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Kann dem Gefier keen Zäitplang ginn... +STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Gefierer kënnen nëmmen op Statiounen halen. +STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Dëst Gefier bleift net op dëser Statioun stoën. # Sign related errors STR_ERROR_TOO_MANY_SIGNS :{WHITE}... ze vill Schëlder @@ -4436,7 +4415,7 @@ STR_INDUSTRY_NAME_FACTORY :Fabrik STR_INDUSTRY_NAME_PRINTING_WORKS :Dréckerei STR_INDUSTRY_NAME_STEEL_MILL :Stolwierk STR_INDUSTRY_NAME_FARM :Bauerenhaff -STR_INDUSTRY_NAME_COPPER_ORE_MINE :Koffererzstollen +STR_INDUSTRY_NAME_COPPER_ORE_MINE :Kofferäerzstollen STR_INDUSTRY_NAME_OIL_WELLS :Uelegquellen STR_INDUSTRY_NAME_BANK :Bank STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT :Iessensverarbeschtungsfabrik @@ -4444,7 +4423,7 @@ STR_INDUSTRY_NAME_PAPER_MILL :Pabeierfabrik STR_INDUSTRY_NAME_GOLD_MINE :Goldstollen STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC :Bank STR_INDUSTRY_NAME_DIAMOND_MINE :Diamantstollen -STR_INDUSTRY_NAME_IRON_ORE_MINE :Eisenerzstollen +STR_INDUSTRY_NAME_IRON_ORE_MINE :Eisenäerzstollen STR_INDUSTRY_NAME_FRUIT_PLANTATION :Uebstplantage STR_INDUSTRY_NAME_RUBBER_PLANTATION :Kautschuckplantage STR_INDUSTRY_NAME_WATER_SUPPLY :Waasserwierk @@ -4470,7 +4449,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :Zockerminn STR_SV_EMPTY : STR_SV_UNNAMED :Onbenannt STR_SV_TRAIN_NAME :Zuch {COMMA} -STR_SV_ROAD_VEHICLE_NAME :Stroossengefiert {COMMA} +STR_SV_ROAD_VEHICLE_NAME :Stroossegefier {COMMA} STR_SV_SHIP_NAME :Schëff {COMMA} STR_SV_AIRCRAFT_NAME :Fliger {COMMA} @@ -4541,12 +4520,12 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :Véiwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :Wuerewaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GRAIN_HOPPER :Kaarwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :Holzwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :Eisenerzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :Eisenäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :Stolwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Gepanzerten Waggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Iesswuerenwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :Pabeierwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Koffererzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Kofferäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WATER_TANKER :Waasserwaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FRUIT_TRUCK :Friichtewaggon STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_RUBBER_TRUCK :Kautschuckwaggon @@ -4571,12 +4550,12 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :Véiwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :Wuerewaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GRAIN_HOPPER :Kaarwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :Holzwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :Eisenerzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :Eisenäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :Stolwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Gepanzerten Waggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Iesswuerewaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :Pabeierwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Koffererzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Kofferäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WATER_TANKER :Waasserwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FRUIT_TRUCK :Friichtenwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_RUBBER_TRUCK :Kautschuckwaggon @@ -4603,12 +4582,12 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :Véiwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :Wuerewaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GRAIN_HOPPER :Kaarwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :Holzwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :Eisenerzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :Eisenäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :Stolwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Gepanzerten Waggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Iesswuerewaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :Pabeierwaggon -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Koffererzwaggon +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Kofferäerzwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WATER_TANKER :Waasserwaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FRUIT_TRUCK :Friichtewaggon STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_RUBBER_TRUCK :Kautschuckwaggon @@ -4653,9 +4632,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_GRAIN_TRUCK :Goss Kaarcamion STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_WOOD_TRUCK :Witcombe Holzcamion STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_WOOD_TRUCK :Foster Holzcamion STR_VEHICLE_NAME_ROAD_VEHICLE_MORELAND_WOOD_TRUCK :Moreland Holzcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_IRON_ORE_TRUCK :MPS Eisenerzcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_IRON_ORE_TRUCK :Uhl Eisenerzcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_IRON_ORE_TRUCK :Chippy Eisenerzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_IRON_ORE_TRUCK :MPS Eisenäerzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_IRON_ORE_TRUCK :Uhl Eisenäerzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_IRON_ORE_TRUCK :Chippy Eisenäerzcamion STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_STEEL_TRUCK :Balogh Stolcamion STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_STEEL_TRUCK :Uhl Stolcamion STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_STEEL_TRUCK :Kelling Stolcamion @@ -4668,9 +4647,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_FOOD_VAN :Chippy Iesensca STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_PAPER_TRUCK :Uhl Pabeiercamion STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_PAPER_TRUCK :Balogh Pabeiercamion STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_PAPER_TRUCK :MPS Pabeiercamion -STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_COPPER_ORE_TRUCK :MPS Koffererzcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COPPER_ORE_TRUCK :Uhl Koffererzcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_COPPER_ORE_TRUCK :Goss Koffererzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_COPPER_ORE_TRUCK :MPS Kofferäerzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COPPER_ORE_TRUCK :Uhl Kofferäerzcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_COPPER_ORE_TRUCK :Goss Kofferäerzcamion STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_WATER_TANKER :Uhl Waassercamion STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_WATER_TANKER :Balogh Waassercamion STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_WATER_TANKER :MPS Waassercamion @@ -4689,9 +4668,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COLA_TRUCK :Wizzowow Colaca STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COTTON_CANDY :MightyMover Zockerwattcamion STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COTTON_CANDY :Powernaught Zockerwattcamion STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COTTON_CANDY_TRUCK :Wizzowow Zockerwattcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOFFEE_TRUCK :MightyMover Karmelcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOFFEE_TRUCK :Powernaught Karmelcamion -STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOFFEE_TRUCK :Wizzowow Karmelcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOFFEE_TRUCK :MightyMover Karamellcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOFFEE_TRUCK :Powernaught Karamellcamion +STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOFFEE_TRUCK :Wizzowow Karamellcamion STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_TOY_VAN :MightyMover Spillsaachencamion STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_TOY_VAN :Powernaught Spillsaachencamion STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_TOY_VAN :Wizzowow Spillsaachencamion @@ -4780,7 +4759,7 @@ STR_FORMAT_WAYPOINT_NAME_SERIAL :Weepunkt {TOWN} STR_FORMAT_DEPOT_NAME_TRAIN :Zuchschapp vun {TOWN} STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :{TOWN} Zuchschapp #{COMMA} -STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Stroossengefierdepot vun{TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Stroossegefierdepot vun {TOWN} STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :{TOWN} Stroossendepot #{COMMA} STR_FORMAT_DEPOT_NAME_SHIP :Schëffsschapp vun {TOWN} STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} Schëffsschapp #{COMMA} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 84a3fa803c..05fde86428 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -789,13 +789,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} sedang menunggu di depoh STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} sedang menunggu di hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} mempunyai terlalu sedikit arahan dalam jadual STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} mempunyai arahan yang tidak sah STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} mempunyai arahan berganda STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} mempunyai stesen yang tidak sah dalam arahannya -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} semakin usang STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} terlalu usang @@ -931,9 +929,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format tangkapan skrin -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Pilih format tangkapan skrin untuk digunakan - 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 @@ -1094,8 +1089,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Jika kereta api STR_CONFIG_SETTING_CITY_APPROVAL :Sikap majlis bandaraya terhadap penyusunan semula kawasan: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih tahap kebisingan dan kerosakan persekitaran -STR_CONFIG_SETTING_BUILDONSLOPES :Benarkan pembinaan di tepi pantai dan cerun bukit: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Jika diupayakan, trek dan stesen boleh membina pada yang paling cerun. Jika dilumpuhkan, mereka hanya dibenarkan di cerun yang sepadan arah trek dan dengan itu tidak memerlukan asas STR_CONFIG_SETTING_AUTOSLOPE :Benarkan pengubahsuaian tanah di bawah bangunan, landasan, dan sebagainya (autocerun): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Benarkan landskap di arah bangunan dan trek tanpa memusnahkannya STR_CONFIG_SETTING_CATCHMENT :Benarkan kawasan tangkapan yang lebih realistik: {STRING} @@ -1120,14 +1113,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Halangkan keret STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Pusingan 90 darjah apabila trek yang mendatar secara langsung diikuti oleh suatu trek menegak pada laluan bersebelahan sekeligus menjadikan keretapi kearah 90 darjah apabila melalui laluan 45 darjah untuk kombilasa trek lain. Ini juga berlaku kepada laluan membelok kapal STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Benarkan penyambungan stesen yang tidak bersebelahan: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Benarkan menambah bahagian untuk stesen tanpa menyentuh bahagian yang sedia ada. Perlu Ctrl + Klik sambil meletakkan bahagian-bahagian baru -STR_CONFIG_SETTING_IMPROVEDLOAD :Gunakan algoritma muatan yang diperbaiki: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Jika dibolehkan, pelbagai kenderaan menunggu di stesen dimuatkan berurutan.Pemuatan kenderaan seterusnya hanya bermula apabila terdapat kargo yang mencukupi menunggu untuk mengisi kenderaan pertama sepenuhnya -STR_CONFIG_SETTING_GRADUAL_LOADING :Muatkan kenderaan sedikit demi sedikit: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Secara beransur-ansur muatan kenderaan akan menggunakan jangka masa tertentu, bukannya memuatkan sekaligus dengan masa yang tetap bergantung pada jumlah muatan dimuatkan STR_CONFIG_SETTING_INFLATION :Inflasi: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Mengupayakan inflasi kepada ekonomi, di mana kos adalah sedikit lebih cepat meningkat daripada pembayaran -STR_CONFIG_SETTING_SELECTGOODS :Hantarkan kargo ke stesen hanya jika ada permintaan: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Hanya menghantar muatan ke stesen yang telah diminta daripada kenderaan pemuat. Ini menghalang nilai yang buruk bagi kargo yang tidak diservis di stesen STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Panjang maksimum jambatan: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Panjang maksimum untuk binaan jambatan STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Panjang maksimum terowong: {STRING} @@ -1148,7 +1135,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :Arahan keretapi STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :berhampiran hujung STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :tengah-tengah STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :hujung sekali -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Perbarisan kenderaan jalanraya (dengan kesan kuantum): {STRING} STR_CONFIG_SETTING_AUTOSCROLL :Gerakkan pemandangan apabila tetikus di sempadan: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Dinyah-upayakan STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Dinyah-upayakan @@ -1178,10 +1164,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Benarkan hentia STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Benarkan pembinaan untuk jalan pemanduan berhenti di jalan milik bandaran STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Benarkan hentian pandu-lalu di jalanraya yang dimiliki oleh pesaing: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Benarkan pembinaan untuk jalan pemanduan berhenti di jalan milik bandaran -STR_CONFIG_SETTING_ADJACENT_STATIONS :Benarkan membina stesen yang bersebelahan stesen lain: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Benarkan stesen yang berbeza untuk berdekatan dengan lain -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Benarkan berbilang set enjin NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Pilihan keserasian untuk NewGRFs lama. Jangan melumpuhkan ini, melainkan jika anda tahu apa yang anda lakukan! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Menukar tetapan ini adalah mustahil apabila terdapat kenderaan. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Penyelenggaraan Infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Apabila diupayakan,infrastuktur menyebabkan kos penyelenggaraan. Kadar kos tumbuh berdasarkan saiz rangkaian, sekaligus menjejaskan syarikat yang lebih besar daripada yang kecil @@ -1218,8 +1200,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Putaran heightm STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Lawan jam STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Pusingan jam STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Tahap ketinggian peta senario rata: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Benarkan pengubahsuaian tanah di petak di sempadan peta: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Jika dilumpuhkan, sempadan peta akan sentiasa sebagai lautan STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Satu atau lebih petak di bucu utara tidak kosong STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Satu atau lebih petak di salah satu bucu bukan air @@ -1261,8 +1241,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :panjang (31hb D STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :pendek (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Palet asal untuk mengambil alih bagi NewGRFs yang tidak menyatakan palet: {STRING} - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Berhenti automatik ketika memulakan permainan yang baru: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Semasa dihentikan, dibenarkan: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Tiada tindakan @@ -1380,7 +1358,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Biasa STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Pantas STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Sangat pantas STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Pengganda awal saiz bandar: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Buang elemen jalanraya yang tidak masuk akal daripada pembinaan jalanraya: {STRING} @@ -1389,23 +1366,14 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Buang elemen ja -STR_CONFIG_SETTING_GUI :{ORANGE}Antaramuka (Interface) -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Pembinaan +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Antaramuka (Interface) +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Pembinaan STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kenderaan -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stesen -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomi -STR_CONFIG_SETTING_AI :{ORANGE}Pesaing -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Pilihan paparan -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaksi -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Isyarat -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Pengendalian kargo -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain komputer -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Pembaharuan Automatik -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servis STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Laluan -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Keretapi -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Bandar-bandar -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industri-industri +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Bandar-bandar +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industri-industri +STR_CONFIG_SETTING_AI :{ORANGE}Pesaing +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Pemain komputer STR_CONFIG_SETTING_PATHFINDER_OPF :Asal STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1556,6 +1524,7 @@ STR_LIVERY_FREIGHT_TRAM :Trem Tambang Mu STR_FACE_CAPTION :{WHITE}Pilihan Wajah STR_FACE_CANCEL_TOOLTIP :{BLACK}Batal pilihan wajah baru STR_FACE_OK_TOOLTIP :{BLACK}Terima pilihan wajah baru +STR_FACE_RANDOM :{BLACK}Rambangkan STR_FACE_MALE_BUTTON :{BLACK}Lelaki STR_FACE_MALE_TOOLTIP :{BLACK}Pilih wajah lelaki @@ -2415,10 +2384,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Jumlah i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Paras ketinggian garis salji: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Tinggikan paras garis salji satu petak STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Rendahkan paras garis salji satu petak -STR_MAPGEN_RANDOM_SEED :{BLACK}Benihkan secara rambang: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik untuk memasukkan benih rambang -STR_MAPGEN_RANDOM :{BLACK}Rambangkan -STR_MAPGEN_RANDOM_HELP :{BLACK}Tukarkan benih rambang yang digunakan untuk Penjanaan Rupa Bumi STR_MAPGEN_LAND_GENERATOR :{BLACK}Janaan tanah: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritma pokok: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Jenis rupa bumi: @@ -2445,7 +2410,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nama hei STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Saiz: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Masukkan benih rambang STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Tukarkan paras garis salji STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Tukar tahun permulaan @@ -2984,6 +2948,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Padamkan STR_GROUP_RENAME_TOOLTIP :{BLACK}Tukar nama kumpulan yang terpilih STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klik untuk menghalang daripada kumpulan ini digantikan secara automatik + STR_GROUP_ADD_SHARED_VEHICLE :Tambah kenderaan berkongsi STR_GROUP_REMOVE_ALL_VEHICLES :Buang semua kenderaan diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index ddd03d9b16..61e92241df 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -812,13 +812,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} venter i skipsdokken STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} venter i hangaren -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} har for få ordre på ruteplanen STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} har en tom ordre STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} har doble ordre STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} har en ugyldig stasjon i ordrelisten -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} har i sine ordrer en flyplass der rullebanen er for kort STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} begynner å bli gammel STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} er veldig gammel @@ -956,9 +955,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Filformat for skjermbilde -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Velg hvilket format skjermbildet skal lagres i - 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} @@ -1074,7 +1070,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Selskapet innst STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Type: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Viser kun endrede innstillinger i listen nedenfor +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Begrenser listen nedenfor ved hjelp av forhåndsdefinerte filtre STR_CONFIG_SETTING_RESTRICT_BASIC :Grunnleggende innstillinger STR_CONFIG_SETTING_RESTRICT_ADVANCED :Avanserte innstillinger STR_CONFIG_SETTING_RESTRICT_ALL :Avanserte innstillinger / alle innstillinger @@ -1132,8 +1128,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Aktiver/inaktiv STR_CONFIG_SETTING_CITY_APPROVAL :Byrådets holdning til restrukturering i nærområdet: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Velg hvor mye støy og miljøskader forårsaket av selskaper påvirker deres anseelse i byen og muligheter for ytterligere utbygging i nærområdet -STR_CONFIG_SETTING_BUILDONSLOPES :Tillat bygging på skråninger og i vannkanten: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Om dette slås på kan spor og stasjoner bygges på de fleste hellninger. Om slått av, vil de kun tillates på hellninger med samme retning som sporet, og vil da ikke trenge fundamenter. STR_CONFIG_SETTING_AUTOSLOPE :Tillat landskapsendring under bygninger, spor, osv.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tillat endring av landskapet under bygninger og spor uten å fjerne dem STR_CONFIG_SETTING_CATCHMENT :Mer realistisk størrelse på oppfangingsområder: {STRING} @@ -1158,14 +1152,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Forby tog og sk STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-graders svinger oppstår når et horisontalt spor etterfølges av et vertikalt spor på tilstøtende kartelement, som dermed fører til at toget må snu 90 grader når det krysser kartelementet, istedenfor de vanlige 45 grader for andre spor-kombinasjoner. Dette gjelder også for båters svingradius STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Tillat sammenslåing av stasjoner som ikke ligger inntil hverandre: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Gjør det mulig å legge til deler til en stasjon uten at de er direkte ved siden av hverandre. Bruk Ctrl+klikk for å bygge slike stasjoner. -STR_CONFIG_SETTING_IMPROVEDLOAD :Bruk forbedret lastealgoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Hvis aktivert, vil flere kjøretøy som venter på en stasjon lastes sekvensielt. Lasting av neste kjøretøy begynner først når det er nok last tilgjengelig for å fylle opp det første kjøretøyet -STR_CONFIG_SETTING_GRADUAL_LOADING :Last kjøretøy gradvis: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Gradvis laste kjøretøy ved å bruke kjøretøyenes spesifikke lastetider, i stedet for å laste alt på én gang med en fast varighet som bare avhenger av mengden gods lastet STR_CONFIG_SETTING_INFLATION :Inflasjon: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Aktiver inflasjon i økonomien, der kostnader stiger litt raskere enn betalinger -STR_CONFIG_SETTING_SELECTGOODS :Lever varer til en stasjon kun hvis det er etterspørsel: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Bare levere gods til en stasjon som som har blitt forespurt fra et lastende kjøretøy. Dette forhindrer dårlige karakterer for gods som ikke betjenes på en stasjon STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksimal brolengde: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimal lengde for broer STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksimal tunnellengde: {STRING} @@ -1193,8 +1181,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plass hvor toge STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :nær slutten STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :midten STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :enden -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Kjøretøykø (med kvantumseffekter): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Gjør at veikjøretøy må vente foran okkuperte veihindringer inntil de er fjernet STR_CONFIG_SETTING_AUTOSCROLL :Flytt på bildet hvis pilen er nær ytterkantene av skjermen: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Når aktivert, vil synsfeltet begynne å rulle når musen er nær kanten av vinduet STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Deaktivert @@ -1225,10 +1211,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillat stoppest STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillat bygging av stoppesteder med gjennomkjøring på by-eide veier STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Tillat stoppesteder med gjennomkjøring på motstander-eide veier: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillat bygging av gjennomkjørbare lastestasjoner på veier eid av andre selskaper -STR_CONFIG_SETTING_ADJACENT_STATIONS :Tillat bygging av nærliggende stasjoner: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Tillat forskjellige stasjoner å være i hverandre -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Aktiver flere NewGRF-kjernesett: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompatibilitets-valg for gamle NewGRF-filer. Ikke deaktivér dette med mindre du vet nøyaktig hva du gjør! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Det er ikke mulig å endre denne innstillingen når det allerede finnes kjøretøy. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Vedlikehold av infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Når aktivert, medfører infrastruktur vedlikeholdskostnader. Kostnadene vokser over-proporsjonalt med nettverkets størrelse, og påvirker dermed større selskaper mer enn de små @@ -1286,8 +1268,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Høydekartroter STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Mot klokka STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Med klokka STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Høydenivå et flatt scenariokart får: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Tillat landskapsendring av ruter ved endene på kartet: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Når deaktivert, kartets kanter vil altid være hav STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}En eller flere ruter ved den nordlige kanten av kartet er ikke tom(me) STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}En eller flere ruter ved en av kantene på kartet er ikke vann @@ -1344,11 +1324,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :langt (31. Des STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Antatt palett for NewGRFer uten spesifisert palett: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standardpalett å bruke for NewGRF filer som ikke angir hvilken palett de trenger -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standard (D) palett -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Tradisjonell (W) palett - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pause automatisk ved start av nytt spill: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Når aktivert, vil spillet automatisk pause når du starter et nytt spill, for å tillate nærmere studie av kartet STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Når spillet er på pause, tillat: {STRING} @@ -1570,8 +1545,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 av {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :ingen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Innledende bystørrelsesmultiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Gjennomsnittsstørrelse på (stor)byer i forhold til vanlige byer ved begynnelsen av spillet -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Fjern absurde veielementer under veikonstruksjon: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Fjern blindveier under finansiert veikonstruksjon STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Oppdater distribusjonsgraf hver {STRING} dag{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tid mellom påfølgende reberegning av koblingsgrafen. Hver reberegning beregner planene for en del av grafen. Det betyr at en verdi X for denne innstillingen ikke betyr at hele grafen vil bli oppdatert for hver X. dag. Bare noen komponenter vil. Jo kortere du setter det, dess mer CPU tid bil være nødvendig for å beregne det. Jo lenger du setter den, dess lenger vil det ta før last-distribusjonen begynner på nye ruter. @@ -1633,27 +1606,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Det britiske im STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisk (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Grensesnitt STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisering -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruksjon -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kjøretøy -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stasjoner -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Økonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Gods-distribusjon -STR_CONFIG_SETTING_AI :{ORANGE}Motstandere -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Visningsinnstillinger -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Samhandling +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafikk STR_CONFIG_SETTING_SOUND :{ORANGE}Lydeffekter -STR_CONFIG_SETTING_NEWS :{ORANGE}Nyheter og meldinger -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaler -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Varehåndtering -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datamaskinstyrte spillere -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autoforny -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Vedlikehold +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Grensesnitt +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Generelt +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Synsfelt +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruksjon +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Nyheter / Rådgivere +STR_CONFIG_SETTING_COMPANY :{ORANGE}Firma +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Regnskap +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Kjøretøy +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fysikk STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Ruting -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tog -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Byer -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Begrensninger +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofer / Ulykker +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Verdensgenerering +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Miljø +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Myndigheter +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Byer +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Gods-distribusjon +STR_CONFIG_SETTING_AI :{ORANGE}Motstandere +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datamaskinstyrte spillere STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1810,6 +1785,7 @@ STR_LIVERY_FREIGHT_TRAM :Varetrikk STR_FACE_CAPTION :{WHITE}Velg ansikt STR_FACE_CANCEL_TOOLTIP :{BLACK}Avbryt ansiktsvalg STR_FACE_OK_TOOLTIP :{BLACK}Godta nytt ansikt +STR_FACE_RANDOM :{BLACK}Tilfeldiggjør STR_FACE_MALE_BUTTON :{BLACK}Mann STR_FACE_MALE_TOOLTIP :{BLACK}Velg mannsansikter @@ -2689,10 +2665,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Antall i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Høyde på snøgrensen: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flytt høyden på snøgrensen ett hakk opp STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flytt høyden på snøgrensen ett hakk ned -STR_MAPGEN_RANDOM_SEED :{BLACK}Såtall: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikk her for å taste inn et såtall -STR_MAPGEN_RANDOM :{BLACK}Tilfeldiggjør -STR_MAPGEN_RANDOM_HELP :{BLACK}Endre såtall som brukes for terreng-generering STR_MAPGEN_LAND_GENERATOR :{BLACK}Landskapsgenerator STR_MAPGEN_TREE_PLACER :{BLACK}Trealgoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrengtype: @@ -2719,7 +2691,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Høydeka STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Størrelse: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Skriv inn et såtall STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Endre høyden på snøgrensen STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Endre startår @@ -3305,6 +3276,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Fjern de STR_GROUP_RENAME_TOOLTIP :{BLACK}Gi nytt navn på den valgte gruppen STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikk for å beskytte denne gruppen fra global autoerstatning +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Slette gruppe +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Er du sikker på at du vil slette denne gruppen og eventuelle etterkommere? + STR_GROUP_ADD_SHARED_VEHICLE :Legg til delte kjøretøy STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kjøretøy @@ -3825,6 +3799,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reise (uten rut STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Reis med maks {2:VELOCITY} (uten rutetabell) STR_TIMETABLE_TRAVEL_FOR :Reise i {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Reis i {STRING} med maks {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Reise (i {STRING}, ikke oppsatt i rutetabell) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Reise (i {STRING}, ikke oppsatt i rutetabell) med høyst {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(opphold i {STRING}, ikke oppsatt i rutetabell) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reise for {STRING}, ikke oppsatt med rutetabell) STR_TIMETABLE_STAY_FOR :og bli værende i {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :og reis i {STRING} STR_TIMETABLE_DAYS :{COMMA} dag{P "" er} @@ -4278,6 +4256,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... du e STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan ikke opprette gruppe... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan ikke slette denne gruppen... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan ikke gi nytt navn på denne gruppen... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan ikke sette foreldregruppe... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Kan ikke fjerne alle kjøretøy fra denne gruppen... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kan ikke legge til kjøretøyet i denne gruppen... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Kan ikke legge til delte kjøretøyer i gruppen... diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 61777154bd..9a601f217c 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -812,13 +812,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} ventar i skipsdokken STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ventar i hangaren -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} har for få ordrar på ruteplanen STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} har ein ugyldig ordre STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} har to like ordrar STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} har ein ugyldig stasjon i sine ordre -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} er gammal STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} er veldig gammal @@ -956,9 +954,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Filformat for skjermdump -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Vel kva format skjermdumpen skal lagrast i - 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} @@ -1132,8 +1127,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Skru av/på kat STR_CONFIG_SETTING_CITY_APPROVAL :Haldninga til bystyra når det gjeld ombygging: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vel kor mykje vurderinga frå bystyra og høvet for meir bygging i området vert påverka av støy og øydelegging frå eit firma. -STR_CONFIG_SETTING_BUILDONSLOPES :Tillet bygging på skråningar og i vasskanten: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Tillet bygging av vegar, jernbanespor og stasjonar i bakkar, med hjelp av ekstra fundament. Skru av for å gjere at all bygging i bakkar må passe med kva retning terrenget skrånar STR_CONFIG_SETTING_AUTOSLOPE :Tillet landskapsendringar under bygningar, spor o.s.b.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tillet å endre landskapet under bygningar, vegar og jernbanespor, utan å måtte fjerne dei fyrst. STR_CONFIG_SETTING_CATCHMENT :Meir realistisk storleik på oppfangingsområde: {STRING} @@ -1156,12 +1149,8 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Kor bratt ei he STR_CONFIG_SETTING_FORBID_90_DEG :Forby tog og skip å gjere 90-graderssvingar: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Tillet samanbygging av ikkje direkte tilstøtande stasjonar: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Tillat å bygge stasjonar som ikkje heng saman. (Ctrl+klikk for å bygge åtskilte delar av stasjonen ) -STR_CONFIG_SETTING_IMPROVEDLOAD :Bruk forbetra lastingsalgoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Fyll opp køyretøy etter kvarandre, så eitt køyretøy er fullt før det neste vert lasta. Når det er nok varer på stasjonen blir fleire køyretøy lasta samtidig -STR_CONFIG_SETTING_GRADUAL_LOADING :Last køyretøy gradvis: {STRING} STR_CONFIG_SETTING_INFLATION :Inflasjon: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Skrur på inflasjon, kor kostnader aukar noko fortare enn innbetalingar -STR_CONFIG_SETTING_SELECTGOODS :Lever varer til ein stasjon kun hvis det er etterspørjing: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Største brolengde: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimal lengde for brubygging STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Største tunnellengde: {STRING} @@ -1186,8 +1175,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :Nye togordrar s STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :starten STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :midten STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :i andre enden -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Køyretøykøar (med kvantumseffektar): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Gjer at køyretøy stoppar foran vegsperringar til dei vert fjerna. Alternativet er at dei snur for å finne ein annan veg STR_CONFIG_SETTING_AUTOSCROLL :Flytt på vindauget dersom pila er nær ytterkantane på skjermen: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Deaktivert STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hovudvindauge @@ -1211,9 +1198,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillet stoppest STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillat bygging av stoppestadar med gjennomkøyring på vegar eigd av byen STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Tillet stoppestadar med gjennomkøyring på konkurent-eigde vegar: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillatt bygging av stopp med gjennomkøyring på vegar eigd av andre firma -STR_CONFIG_SETTING_ADJACENT_STATIONS :Tillet å byggje stasjonar inntil andre: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Tillat forskjellige stasjonar å berøra kvarandre -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Aktiver fleire NewGRF-kjernesett: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Endring av denne instillinga er ikkje mogleg når det finst køyretøy STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Vedlikehald av infrastruktur: {STRING} @@ -1259,8 +1243,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Høgdekartroter STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Mot klokka STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Med klokka STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Høgdenivå eit flatt scenariokart får: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Tillat endring av landskapsruter på kanten av kartet: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Om deaktivert, vil kartkantene alltid være hav STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ei eller fleire ruter på nordkanten er ikkje tomme STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Ei eller fleire ruter på ein av kantane inneheld ikkje vatn @@ -1308,10 +1290,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :langt (31. des STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Anteke standardpalett for NewGRFer utan spesifisert palett: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standard (D) palett -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Tradisjonell (W) palett - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatisk pause når ein startar nytt spel: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Når spelet er pausa, tillet: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Vel kva handlingar som kan gjerast når spelet er pausa @@ -1499,8 +1477,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 av {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ingen STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Innleiande bystorleiksmultiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Storleiken til byar på starten av spelet, jamført med tettstader -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Fjern absurde vegelement under vegkonstruksjon: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Fjern blindvegar under finansiering av vegutbygging STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asymmetrisk STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :symmetrisk @@ -1551,27 +1527,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Britisk eining STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisk (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Grensesnitt STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Plassering -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruksjon -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Køyretøy -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stasjonar -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Økonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Varefordeling -STR_CONFIG_SETTING_AI :{ORANGE}Motstandarar -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Syne innstillingar -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Samhandling STR_CONFIG_SETTING_SOUND :{ORANGE}Lydar -STR_CONFIG_SETTING_NEWS :{ORANGE}Nyheiter og meldingar -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaler -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Varehantering -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datamaskinspelarar -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autoforny -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Vedlikehald +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Grensesnitt +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruksjon +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Køyretøy STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Ruting -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tog -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Byar -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industriar +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Byar +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industriar +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Varefordeling +STR_CONFIG_SETTING_AI :{ORANGE}Motstandarar +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datamaskinspelarar STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1728,6 +1694,7 @@ STR_LIVERY_FREIGHT_TRAM :Varetrikk STR_FACE_CAPTION :{WHITE}Vel utsjånad STR_FACE_CANCEL_TOOLTIP :{BLACK}Avbryt val av utsjånad STR_FACE_OK_TOOLTIP :{BLACK}Godta ny utsjånad +STR_FACE_RANDOM :{BLACK}Tilferdiggjer STR_FACE_MALE_BUTTON :{BLACK}Mann STR_FACE_MALE_TOOLTIP :{BLACK}Vel mannsandlet @@ -2606,10 +2573,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Antal in STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Høgd på snøgrensa: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flytt høgda på snøgrensa eitt hakk opp STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flytt høgda på snøgrensa eitt hakk ned -STR_MAPGEN_RANDOM_SEED :{BLACK}Såtal: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikk her for å taste inn eit såtal -STR_MAPGEN_RANDOM :{BLACK}Tilferdiggjer -STR_MAPGEN_RANDOM_HELP :{BLACK}Endre såtal som nyttast for terreng-generering STR_MAPGEN_LAND_GENERATOR :{BLACK}Landskapsgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Trealgoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrengtype @@ -2636,7 +2599,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Høgdeka STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Storleik: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Skriv inn eit såtal STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Byt høgda på snøgrensa STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Byt startår @@ -3222,6 +3184,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Slett de STR_GROUP_RENAME_TOOLTIP :{BLACK}Gje den valde gruppa nytt namn STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikk for å beskytte denne gruppa frå å global automatisk erstatning + STR_GROUP_ADD_SHARED_VEHICLE :Legg til delte køyretøy STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køyretøy diff --git a/src/lang/polish.txt b/src/lang/polish.txt index b26801a78e..3e654886c6 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -1190,13 +1190,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} czeka w stoczni STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} czeka w hangarze -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ma za mało poleceń w rozkładzie STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ma nieważne polecenie STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ma zdublowane polecenia STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ma nieprawiodłową stację w poleceniach -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ma w poleceniach lotnisko ze zbyt krótkim pasem startowym STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} starzeje się STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} bardzo się starzeje @@ -1334,9 +1333,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozdziel STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Wybierz rozdzielczość ekranu STR_GAME_OPTIONS_RESOLUTION_OTHER :inna -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Format zrzutu ekranu -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Wybierz format zrzutu ekranu - 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} @@ -1452,7 +1448,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Ustawienie firm STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategoria: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Typ: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Ogranicza poniższą listę tylko do modyfikowanych ustawień +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Ogranicza poniższą listę używając zdefiniowanych filtrów STR_CONFIG_SETTING_RESTRICT_BASIC :Ustawienia podstawowe STR_CONFIG_SETTING_RESTRICT_ADVANCED :Ustawienia zaawansowane STR_CONFIG_SETTING_RESTRICT_ALL :Ustawienia eksperta / wszystkie ustawienia @@ -1462,10 +1458,10 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Ustawienia z wa STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Ogranicza poniższą listę do pewnych typów ustawień STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Wszystkie typy ustawień STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Ustawienia klienta (nie przechowywane w plikach zapisu; wpływa na wszystkie gry) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Ustawienia gry (przechowywane w pliku zapisu; wpływa tylko na nowe gry) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Ustawienia gry (przechowywane w pliku zapisu; wpływa tylko na nowo rozpoczęte gry) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Ustawienia gry (przechowywane w pliku zapisu; wpływa tylko na aktualną grę) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Ustawienia firmy (przechowywane w pliku zapisu; mają wpływ tylko w nowo rozpoczętych grach) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Ustawienia firmy (przechowywane w pliku zapisu; mają wpływ tylko na aktualnie aktywną firmę) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Ustawienia firmy (przechowywane w pliku zapisu; wpływa tylko na nowo rozpoczęte gry) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Ustawienia firmy (przechowywane w pliku zapisu; wpływa tylko na aktualną firmę) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Pokaż wszystkie wyniki wyszukiwania według ustawień{}{SILVER}Kategoria {BLACK}do {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Pokaż wszystkie wyniki wyszukiwania według ustawień{}{SILVER}Typ {BLACK}do {WHITE}Wszystkie typy ustawień STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Pokaż wszystkie wyniki według ustawień{}{SILVER}Kategorii {BLACK} {WHITE}{STRING} {BLACK}i {SILVER} Typu {BLACK} {WHITE}Wszystkie typy ustawień @@ -1510,8 +1506,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ustaw katastrof STR_CONFIG_SETTING_CITY_APPROVAL :Nastawienie władz miasta do przekształcania terenu: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Wybierz jak bardzo hałas i niszczenie środowiska przez firmy wpływa na ich ocenę przez miasto i dalsze konstrukcje na ich obszarze -STR_CONFIG_SETTING_BUILDONSLOPES :Pozwól budować na pochyłym terenie i wybrzeżach: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Jeśli włączone, to tory i stacje można budować na większości stoków. Jeśli wyłączone, można je budować tylko na stokach w tym samym kierunku, co tory, tak, że nie potrzeba fundamentów STR_CONFIG_SETTING_AUTOSLOPE :Pozwól na zmiany terenu pod budynkami, torami itp. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Pozwalaj na modyfikowanie terenu pod budynkami i torami bez usuwania ich STR_CONFIG_SETTING_CATCHMENT :Pozwól na bardziej realistyczny zasięg obejmowania: {STRING} @@ -1536,14 +1530,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zabroń pociąg STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-stopniowy zakręt występuje wtedy, gdy bezpośrednio po poziomym odcinku toru występuje odcinek pionowy na sąsiadującym polu zmuszając pociąg do skrętu o 90 stopni pokonując krawędź pola zamiast normalnego, 45-stopniowego skrętu w innych kombinacjach torów. Dotyczy to również kąta skrętu dla statków STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Pozwól na łączenie stacji nie sąsiadujących bezpośrednio: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Pozwalaj na dodawanie części stacji nie stykających się ze sobą. Naciśnij Ctrl przed postawieniem nowej części -STR_CONFIG_SETTING_IMPROVEDLOAD :Użyj ulepszonego algorytmu załadunku: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Gdy włączone, wiele pojazdów czekających na stacji jest ładowanych po kolei. Ładowanie następnego pojazdu rozpocznie się, jeśli jest wystarczająco dużo towaru do uzupełnienia pierwszego pojazdu -STR_CONFIG_SETTING_GRADUAL_LOADING :Stopniowy załadunek pojazdów: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Załadunek pojazdów odbywa się stopniowo przy użyciu specyficznych czasów ładowania zamiast ładowania wszystkiego naraz w określonym czasie w zależności tylko od ilości załadowanego towaru STR_CONFIG_SETTING_INFLATION :Inflacja: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Włącz inflację w ekonomii, gdzie koszty rosną nieco szybciej niż zapłaty -STR_CONFIG_SETTING_SELECTGOODS :Dostarcz ładunek na stację tylko jeśli jest zapotrzebowanie: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Dostarczaj towar tylko do tej stacji, która została zlecona dla załadowanego pojazdu. To zapobiega złym notowaniom dla towarów, które nie są obsługiwane na stacji STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksymalna długość mostu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksymalna długość budowanych mostów STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksymalna długość tunelu: {STRING} @@ -1571,8 +1559,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Miejsce, w któ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :początku STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :środku STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :końcu -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Ustawianie się samochodów w kolejkach (z efektem quantum): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Każ pojazdom drogowych czekać przed zajętymi przystankami dopóki nie zostaną zwolnione STR_CONFIG_SETTING_AUTOSCROLL :Przesuń okno, kiedy kursor jest przy krawędzi: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Kiedy włączone, okna podglądu będą się przewijać, gdy kursor znajdzie się przy krańcu okna STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Wyłączone @@ -1603,10 +1589,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Pozwól na budo STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach własnościowych miast STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Pozwól na przejazd przez przystanki należące do przeciwników: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach własnościowych innych graczy -STR_CONFIG_SETTING_ADJACENT_STATIONS :Pozwól na budowę przylegających stacji: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Pozwalaj, by różne stacje stykały się ze sobą -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Zezwól na wiele zestawów NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opcja kompatybilności dla starych NewGRFów. Nie wyłączaj jej, chyba, że wiesz, co robisz STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmiana tego ustawienia nie jest możliwa, gdy znajdują się tutaj pojazdy STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Utrzymywanie infrastruktury: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kiedy włączone, utrzymanie infrastruktury jest naliczane w kosztach. Koszty wzrastają nadproporcjonalnie do rozmiarów sieci połączeń, a więc dotykają bardziej duże niż małe firmy @@ -1664,8 +1646,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Obrót mapy wys STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Przeciwnie do wsk. zegara STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Zgodnie ze wsk. zegara STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Wysokość jaką dostaje płaska mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Włącz kształtowanie krajobrazu pól przy krawędzi mapy: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Jeśli wyłączone, to krawędzie map będą pokryte oceanem STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Jedno lub więcej pól na północnej krawędzi nie jest puste STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedno lub więcej pól na krawędzi nie jest wodą @@ -1694,7 +1674,7 @@ STR_CONFIG_SETTING_LIVERIES_ALL :wszystkich firm STR_CONFIG_SETTING_PREFER_TEAMCHAT :Preferuj czat drużynowy po użyciu lub : {STRING} STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Przypisz przyciski i odpowiednio do czatu firmowego i czatu publicznego STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Funkcja rolki myszy: {STRING} -STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Włączenie przewijania z użyciem dwu-wymiarowych rolek myszy +STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Włączenie przewijania z użyciem dwuwymiarowych rolek myszy STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :powiększ widok STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :przesuń widok STR_CONFIG_SETTING_SCROLLWHEEL_OFF :wył. @@ -1722,11 +1702,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :długiego (31 g STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :krótkiego (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Domyślna paleta dla NewGRF, które nie posiadają zdefiniowanej palety: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Domyślna paleta dla NewGRF'ów, które nie określają, jakich palet potrzebują -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :standardowa paleta (DOS) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :dawna paleta (Win) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatycznie włącz pauzę przy rozpoczęciu nowej gry: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Kiedy włączone, gra zostanie automatycznie zatrzymana na samym początku, pozwalając na lepsze rozpoznanie mapy STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Zezwól w czasie wstrzymania gry na: {STRING} @@ -1900,7 +1875,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Pozwalaj miasto STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Miasta, które mogą budować przejazdy kolejowe: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Aktywacja tej opcji pozwala miastom budować przejazdy kolejowe STR_CONFIG_SETTING_NOISE_LEVEL :Pozwól miastom kontrolować poziom hałasu dla lotnisk: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kiedy ta opcja jest wyłączona, w miastach można zbudować 2 lotniska. Kiedy opcja jest włączona, dopuszczalna liczba lotnisk jest określana przez tolerancję hałasu w mieście, która zależy od populacji oraz rozmiaru i odległości od lotniska +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kiedy ta opcja jest wyłączona, w miastach można zbudować 2 lotniska. Kiedy ta opcja jest włączona, liczba lotnisk jest ograniczona przez tolerancję hałasu tego miasta, która zależna jest od populacji oraz rozmiaru lotniska i jego odległości STR_CONFIG_SETTING_TOWN_FOUNDING :Zakładanie miast w grze: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Aktywacja tej opcji umożliwia graczom zakładanie nowych miast w grze STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Zabronione @@ -1948,8 +1923,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 z {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Żadne STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Początkowy mnożnik rozmiarów metropolii: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Średni rozmiar dużych miast w porównaniu do normalnych miast na początku gry -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Usuwaj absurdalne fragmenty ulicy podczas rekonstrukcji dróg: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Usuń ślepe zaułki podczas sponsorowanych remontów dróg STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Aktualizuj wykres dystrybucji co {STRING} {P dzień dni dni} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Czas pomiędzy kolejnymi rekalkulacjami komonentów wykresu połączeń. Każda rekalkulacja oblicza plany dla jednego komponentu wykresu. To oznacza, że wartość X dla tego ustawienia nie oznacza, że cały wykres będzie aktualizowany co X dni, tylko że niektóre komponenty będą. Im krótszy czas ustawisz, tym więcej czasu obliczeniowego (CPU) będzie potrzebne na te obliczenia. Im dłuższy czas ustawisz, tym więcej czasu minie zanim dystrybucja towarów rozpocznie się na nowych trasach. @@ -2011,27 +1984,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperialne (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metryczne (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfejs STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalizacja -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstrukcje -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Pojazdy -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stacje -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomia -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Dystrybucja Ładunku (Cargo Distribution) -STR_CONFIG_SETTING_AI :{ORANGE}Rywale -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Opcje wyświetlania -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interakcja +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafika STR_CONFIG_SETTING_SOUND :{ORANGE}Efekty dźwiękowe -STR_CONFIG_SETTING_NEWS :{ORANGE}Wiadomości -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sygnały -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Obsługa ładunków -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Gracze komputerowi -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autoodnowa -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Serwisowanie +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfejs +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Ogólne +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Widok +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstrukcje +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Wiadomości i porady +STR_CONFIG_SETTING_COMPANY :{ORANGE}Firma +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Finanse +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Pojazdy +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizyka STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Wyznaczanie trasy -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Pociągi -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Miasta -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Przedsiębiorstwa +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ograniczenia +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Awarie i katastrofy +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Tworzenie mapy +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Środowisko +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Władze lokalne +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Miasta +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Przedsiębiorstwa +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Dystrybucja Ładunku (Cargo Distribution) +STR_CONFIG_SETTING_AI :{ORANGE}Rywale +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Gracze komputerowi STR_CONFIG_SETTING_PATHFINDER_OPF :Oryginalne STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2188,6 +2163,7 @@ STR_LIVERY_FREIGHT_TRAM :Tramwaj towarow STR_FACE_CAPTION :{WHITE}Wybór twarzy STR_FACE_CANCEL_TOOLTIP :{BLACK}Anuluj wybór nowej twarzy STR_FACE_OK_TOOLTIP :{BLACK}Zatwierdź wybór nowej twarzy +STR_FACE_RANDOM :{BLACK}Losuj STR_FACE_MALE_BUTTON :{BLACK}Mężczyzna STR_FACE_MALE_TOOLTIP :{BLACK}Wybierz męską twarz @@ -3067,10 +3043,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Ilość STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Śnieg od wysokości: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Podnieś wysokość śniegu o jeden w górę STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Obniż wysokość śniegu o jeden w dół -STR_MAPGEN_RANDOM_SEED :{BLACK}Losowy numer: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Kliknij aby wpisać losowy numer -STR_MAPGEN_RANDOM :{BLACK}Losuj -STR_MAPGEN_RANDOM_HELP :{BLACK}Zmień losowy numer używany przy tworzeniu terenu STR_MAPGEN_LAND_GENERATOR :{BLACK}Generator terenu: STR_MAPGEN_TREE_PLACER :{BLACK}Algorytm drzew: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Typ terenu: @@ -3097,7 +3069,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nazwa ma STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Rozmiar: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Wprowadź losowe ziarno STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Zmień wysokość linii śniegowej STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Zmień datę rozpoczęcia @@ -3335,7 +3306,7 @@ STR_TOWN_VIEW_DELETE_TOOLTIP :{BLACK}Skasuj t STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Zmień nazwę miasta # Town local authority window -STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} lokalne władze +STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Lokalne władze m. {TOWN} STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ocena transportu firmy: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Możliwe działania: @@ -3677,12 +3648,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Pojazdy bez gru STR_GROUP_DEFAULT_SHIPS :Statki bez grupy STR_GROUP_DEFAULT_AIRCRAFTS :Samoloty bez grupy -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupy - Kliknij na grupie aby wyświetlić wszystkie pojazdy z grupy +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupy - kliknij na grupę, aby wyświetlić wszystkie pojazdy z grupy. Przeciągnij i upuść grupy, aby dostosować hierarchię. STR_GROUP_CREATE_TOOLTIP :{BLACK}Kliknij aby stworzyć grupę STR_GROUP_DELETE_TOOLTIP :{BLACK}Usuń zaznaczoną grupę STR_GROUP_RENAME_TOOLTIP :{BLACK}Zmień nazwę zaznaczonej grupy STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Kliknij, aby ochronić tę grupę przed globalną zamianą pojazdów +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Skasuj Grupę +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Jesteś pewien, że chcesz skasować tą grupę i wszytskich jej członków? + STR_GROUP_ADD_SHARED_VEHICLE :Dodaj poj. współdzielące STR_GROUP_REMOVE_ALL_VEHICLES :Usuń wszystkie pojazdy @@ -4209,6 +4183,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Przejazd (bez u STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Podróżuj z maksymalną prędkością {2:VELOCITY} (poza rozkładem) STR_TIMETABLE_TRAVEL_FOR :Przejazd przez {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Podróżuj przez {STRING} z maksymalną prędkością {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Przejazd przez {STRING} (poza rozkładem) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Podróżuj przez {STRING} z prędkością {VELOCITY} maks. (poza rozkładem) +STR_TIMETABLE_STAY_FOR_ESTIMATED :(postój w {STRING} poza rozkładem) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(przejazd przez {STRING} poza rozkładem) STR_TIMETABLE_STAY_FOR :i zostań tam przez {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :i podróżuje przez{STRING} STR_TIMETABLE_DAYS :{COMMA} d{P zień ni ni} @@ -4662,6 +4640,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... to j STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Nie można stworzyć grupy... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Nie można usunąć tej grupy... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Nie można zmienić nazwy grupy... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Nie można ustawić grupy nadrzędnej... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nie można usunąć wszystkich pojazdów z tej grupy... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nie można dodać pojazdu do tej grupy... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Nie można dodać pojazdów współdzielących polecenia do grupy... @@ -5193,18 +5172,18 @@ STR_FORMAT_DATE_SHORT :{STRING} {NUM} STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM} STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING} -STR_FORMAT_BUOY_NAME :{TOWN} Boja -STR_FORMAT_BUOY_NAME_SERIAL :{TOWN} Boja #{COMMA} +STR_FORMAT_BUOY_NAME :Boja {TOWN} +STR_FORMAT_BUOY_NAME_SERIAL :Boja {TOWN} #{COMMA} STR_FORMAT_COMPANY_NUM :(Firma {COMMA}) STR_FORMAT_GROUP_NAME :Grupa {COMMA} -STR_FORMAT_INDUSTRY_NAME :{TOWN} {STRING} +STR_FORMAT_INDUSTRY_NAME :{1:STRING} {0:TOWN} STR_FORMAT_WAYPOINT_NAME :Pkt. orientacyjny {TOWN} STR_FORMAT_WAYPOINT_NAME_SERIAL :Pkt. orientacyjny {TOWN} #{COMMA} -STR_FORMAT_DEPOT_NAME_TRAIN :Warsztaty w {TOWN} -STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Warsztaty w {TOWN} #{COMMA} -STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Zajezdnia samochodowa w {TOWN} -STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Zajezdnia samochodowa w {TOWN} #{COMMA} +STR_FORMAT_DEPOT_NAME_TRAIN :Warsztaty {TOWN} +STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Warsztaty {TOWN} #{COMMA} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Zajezdnia samochodowa {TOWN} +STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Zajezdnia samochodowa {TOWN} #{COMMA} STR_FORMAT_DEPOT_NAME_SHIP :Stocznia {TOWN} STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :Stocznia {TOWN} #{COMMA} STR_FORMAT_DEPOT_NAME_AIRCRAFT :Hangar {STATION} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 2b0193e383..47437999f0 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -811,13 +811,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} está a aguardar no depósito STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} está a aguardar no hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} tem poucas ordens no horário STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tem uma ordem nula STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tem ordens duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tem uma ordem inválida no seu horário -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} está a ficar velho STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} está a ficar muito velho @@ -955,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formato da captura de ecrã -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Seleccione o formato de captura de ecrã que deseja utilizar - 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} @@ -1131,8 +1126,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa desastre STR_CONFIG_SETTING_CITY_APPROVAL :Atitude da do Concelho Municipal em relação a reestruturação de áreas: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolha quanto ruído e estragos ambientais causados pelas empresas afecta o rating da povoação e futuras acções de construção na área -STR_CONFIG_SETTING_BUILDONSLOPES :Permitir a construção em declives e encostas: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Se ligado, linhas de comboio e estações podem ser construídas na maior parte das inclinações. Se desligado, só são permitidos em inclinações com a mesma direção não necessitando de alicerces STR_CONFIG_SETTING_AUTOSLOPE :Permitir formação de terra sob os edifícios, vias, etc. (auto-declive): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permitir formação de terras debaixo de edifícios e linhas sem os remover STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista de áreas de abrangência: {STRING} @@ -1157,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Proibir comboio STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Curvas de 90 graus ocorrem quando uma pista horizontal é directamente seguida por outra vertical num quadrado adjacente, fazendo com que o combóio vire 90 graus quando atravessa a fronteira dos quadrados, ao invés dos habituais 45 graus para outras combinações de pistas. Também se aplica ao raio de curvatura dos navios STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permitir juntar estações não adjacentes: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permitir adicionar novas partes a uma estação sem tocar nas partes já existentes. Requer pressionar CTRL+click para adicionar as novas partes -STR_CONFIG_SETTING_IMPROVEDLOAD :Usar algoritmo de carregamento melhorado: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Se activo, veículos múltiplos à espera em estações são carregados sequencialmente. O carregamento do veículo seguinte só começa quando existe mercadoria suficiente para encher o primeiro veículo -STR_CONFIG_SETTING_GRADUAL_LOADING :Carregar veículos gradualmente: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Carrega os veículos gradualmente utilizando durações específicas por veículo, em vez de carregar tudo de uma só vez com um tempo fixo que depende apenas da quantidade de mercadoria a carregar STR_CONFIG_SETTING_INFLATION :Inflação: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Ativar inflação na economia, para que os preços subam ligeiramente mais rápido do que os pagamentos -STR_CONFIG_SETTING_SELECTGOODS :Entregar carga a uma estação só quando houver procura: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Apenas entrega mercadoria a uma estação que foi pedida a um veículo em carga. Previne ratings negativos para mercadorias que não são entregues numa estação STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Tamanho máximo de ponte: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Tamanho máximo para construção de pontes STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Tamanho máximo de túneis: {STRING} @@ -1192,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Local onde um c STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :no extremo perto STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :no meio STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :no extremo longe -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Fila de veículos rodoviários (com efeitos de quantidade): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Fazer com que os veículos rodoviários esperem até que as estradas bloqueadas sejam desocupadas STR_CONFIG_SETTING_AUTOSCROLL :Deslocar janela quando o rato está na borda do mapa: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quando activo, os visualizadores começam a deslocar-se logo que o rato esteja no extremo da janela STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desligado @@ -1224,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permitir estaç STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade das povoações STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permitir estações de passagem em estradas do adversário: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construção de paragens drive-through em ruas que são prorpiedade de outras companhias -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permitir construção de estações adjacentes: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permitir que estações diferentes se toquem -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Utilizar múltiplos conjuntos NewGRF de veículos: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opção de compatibilidade com NewGRFs antigos. Não desactive se não sabe exactamente o que está a fazer. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Não é possível mudar quando já existem veículos. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de infraestruturas: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quando activo, as infraestruturas têm custos de manutenção. O custo cresce mais do que proporcionalmente com o tamanho da rede e com isso afecta mais as companhias maiores comparado com as mais pequeneas @@ -1285,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotação mapa STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sentido anti-horário STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Sentido horário STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Altura com que um cenário plano fica: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Activar formação de terra nas bordas do mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Se desligado, as bordas do mapa serão sempre oceano STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Um ou mais quadrados no canto norte não estão vazios STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Um ou mais quadrados num dos cantos não é água @@ -1343,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :longo (31 Dez 2 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curto (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paleta predefinida para NewGRFs que não especificam paleta: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Palete a usar por omissão para NewGRFs que não especifiquem qual necessitam -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Paleta (D) por defeito -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Paleta (W) legada - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausa automática ao iniciar um novo jogo: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quando activo, o jogo ficará em pausa automaticamente num novo jogo, permitindo o estudo ao pormenor do mapa STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Durante pausa permitir: {STRING} @@ -1569,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 em {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nenhum STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial para dimensão da metrópole: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Tamanho relativo das cidades em relação ao tamanho normal das mesmas aquando o inicio do jogo -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Remover partes absurdas durante a constr. de estradas: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Remover blocos de estrada sem ligação aquando do financiamento de reconstrução STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar gráfico de distribuição a cada {STRING} dia{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo entre recalculos subsequentes de cada gráfico. Cada recalculo calcula os planos para cada componente do gráfico. Isto significa que um valor X para essa configuração não indica que o gráfico será todo actualizado a cada X dias. Apenas alguns componentes serão. Quanto mais curto o definir, mais tempo será necessário ao CPU para o calcular. Quanto mais longo, mais tempo levará até que a distribuição da carga inicie em novas rotas. @@ -1632,27 +1604,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft/p STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localização -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construção -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veículos -STR_CONFIG_SETTING_STATIONS :{ORANGE}Estações -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economia -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribuição de Carga -STR_CONFIG_SETTING_AI :{ORANGE}Oponentes -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Opções de visualização -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interacção STR_CONFIG_SETTING_SOUND :{ORANGE}Efeitos sonoros -STR_CONFIG_SETTING_NEWS :{ORANGE}Notícias e mensagens -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinais -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Manipulação de carga -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jogadores computador -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Auto-renovação -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Em serviço +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construção +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Veículos STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Em rota -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Comboios -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Cidades -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuição de Carga +STR_CONFIG_SETTING_AI :{ORANGE}Oponentes +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jogadores computador STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1771,7 @@ STR_LIVERY_FREIGHT_TRAM :Eléctrico de M STR_FACE_CAPTION :{WHITE}Selecção de Cara STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancelar selecção da nova cara STR_FACE_OK_TOOLTIP :{BLACK}Aceitar selecção da nova cara +STR_FACE_RANDOM :{BLACK}Gerar aleatório STR_FACE_MALE_BUTTON :{BLACK}Masculino STR_FACE_MALE_TOOLTIP :{BLACK}Seleccionar caras masculinas @@ -2687,10 +2650,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Num. de STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Altura linha neve: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mover a linha de neve um nível acima STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mover a linha de neve um nível abaixo -STR_MAPGEN_RANDOM_SEED :{BLACK}Semente aleatória: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Clique para inserir uma semente aleatória -STR_MAPGEN_RANDOM :{BLACK}Gerar aleatório -STR_MAPGEN_RANDOM_HELP :{BLACK}Mudar a semente aleatória para a criação do terreno STR_MAPGEN_LAND_GENERATOR :{BLACK}Criação do terreno: STR_MAPGEN_TREE_PLACER :{BLACK}Alg. de colocação de árvores: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno: @@ -2717,7 +2676,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome map STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamanho: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Insira um número aleatório de base STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Mudar a altura da linha de neve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Mudar ano de início @@ -3303,6 +3261,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Remover STR_GROUP_RENAME_TOOLTIP :{BLACK}Mudar o nome do grupo seleccionado STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para proteger este grupo da autosubstituição global + STR_GROUP_ADD_SHARED_VEHICLE :Adic. veíc. partilh. STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos os veículos diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 40d77e865f..ca0c15464d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} aşteaptă în depou STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} aşteaptă în hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} are prea puţine ordine în program STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} nu are nici un ordin STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} are ordine duplicate STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} are o staţie invalidă în ordine -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} este vechi STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} este foarte vechi @@ -954,9 +952,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Formatul capturii de ecran -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Alege tipul fişierului în care se salvează captura de ecran (screenshot) - 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} @@ -1124,8 +1119,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Comută dezastr STR_CONFIG_SETTING_CITY_APPROVAL :Atitudinea consiliului orașului cu privire la restructurarea zonei: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Alege în ce măsură poluarea fonică si deranjamentul local provocat de o companie va afecta impresia orașului despre aceasta, si viitoarele planuri de construcție in zonă -STR_CONFIG_SETTING_BUILDONSLOPES :Permite construirea pe coastă şi în pantă: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Dacă este activat, şinele şi staţiile pot fi construite pe majoritatea pantelor. Dacă este dezactivat, acestea pot fi construite doar pe pante care coincid cu direcţia şinelor şi astfel nu necesită fundaţie STR_CONFIG_SETTING_AUTOSLOPE :Permite terra-formarea sub clădiri, şine, etc. (auto-pante): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite terraformarea sub clădiri şi şine fără eliminarea acestora STR_CONFIG_SETTING_CATCHMENT :Permite arii de cuprindere mai realiste: {STRING} @@ -1150,14 +1143,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Interzice trenu STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Întoarcerile la 90 de grade au loc atunci când o bucată orizontală de şină este urmată imediat de o bucată verticală, astfel făcând trenul să întoarcă la 90 de grade când traversează muchia unui pătrăţel faţă de întoarcerile obişnuite de la 45 de grade pentru alte combinaţii de şină. Aceasta se aplică şi unghiului de întoarcere al navelor STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Permite unirea staţiilor neînvecinate: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Permite adăugarea de elemente unei staţii fără a atinge direct elemente existente. Necesită Ctrl+Click pentru adăugărea elementelor noi -STR_CONFIG_SETTING_IMPROVEDLOAD :Foloseşte algoritm de încărcare îmbunătăţit: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Dacă este activată, încărcarea vehiculelor care aşteaptă în aceeaşi staţie se va face în secvenţă. Încărcarea următorului vehicul începe doar dacă există destul cargo pentru a umple complet primul vehicul -STR_CONFIG_SETTING_GRADUAL_LOADING :Încarcă vehiculele gradual: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Încarcă vehiculele gradual folosind duratele de încarcare specifice fiecărui vehicul, în loc să se încarce totul dintr-o dată folosind o durată fixată în funcţie de cantitatea de cargo încărcată STR_CONFIG_SETTING_INFLATION :Inflaţia: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Activează inflaţia în economie, unde costurile cresc ceva mai rapid decât plăţile -STR_CONFIG_SETTING_SELECTGOODS :Livrează marfa doar în staţiile unde aceasta este cerută: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Livrează cargo doar către o staţie unde există cereri de la vehicule pentru încărcare. Aceasta previne rating-uri slabe pentru cargo care nu este ridicat din staţie STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Lungimea maximă a podurilor: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Lungimea maximă pentru construcţia de poduri STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Lungimea maximă a tunelurilor: {STRING} @@ -1185,8 +1172,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Locul unde un t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :capătul apropiat al STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :mijlocul STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :capătul îndepartat al -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Autovehiculele pot forma cozi (cu efecte cuantice): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Vehiculele așteptă în fața stației pînă se eliberează STR_CONFIG_SETTING_AUTOSCROLL :Mută imaginea când mouse-ul este la marginea ecranului: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Cand este activată, ecranele se vor deplasa cînd mouse-ul este aproape de margine STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :dezactivat @@ -1217,10 +1202,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permite constru STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construcția stațiilor pe drumurile construite de un oraș STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Permite construirea staţiilor pe drumurile competitorilor: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Permite construcția stațiilor pe drumurile construite de altă companie -STR_CONFIG_SETTING_ADJACENT_STATIONS :Permite construirea de staţii adiacente: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permite staților diferite sa se atingă -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Permite mai multe seturi NewGRF simultan: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Optiune de compatibilitate pentru vechile fișiere NewGRF. Nu dezactiva asta, decât dacă știi exact ce faci! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Schimbarea acestei setări nu este permisă când există vehicule în joc STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Mentenanță infrastructură: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Cand este activă, infrastructura necesita cheltuieli cu intreținerea. Costurile cresc proporțional cu rețeaua de transport, afectând companiile mari mai mult decât companiile mici @@ -1278,8 +1259,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotaţie hartă STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Spre stânga STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Spre dreapta STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Nivelul înălţimii pentru hărţile plane: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Permite terraformarea suprafeţelor din marginea hărţii: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Dacă este dezactivat, marginile hărţii vor fi întotdeauna ocean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una sau mai multe suprafeţe din marginea nordică nu sunt goale STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una sau mai multe suprafeţe din marginea hărţii nu contin apă @@ -1336,11 +1315,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lung (31 Dec 20 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :scurt (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Paleta implicită pentru NewGRF-uri care nu specifică o paletă: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Paleta implicită care va fi folosită cu un NewGRF, dacă acesta nu specifică o anume paletă -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Paletă (D) implicită -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Paletă (W) veche - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :La pornirea unui joc nou, pune-l pe pauză: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Când este activată, jocul se va comuta automat in mod pauză la pornirea unui nou joc, permițând astfel un studiu mai atent al hărții STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Când jocul este în pauză permite: {STRING} @@ -1557,8 +1531,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 din {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :deloc STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicator iniţial dimensiune oraş: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Dimensiunea medie a oraşelor mari relativ la oraşele normale, la începutul jocului -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Elimină elementele de drum absurde pe durata construcţiei drumului: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Elimină capatul drumurilor înfundate în timpul reconstrucţiei finanţată a drumurilor STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizează graficul de distribuţie la fiecare {STRING} zi{P 0:2 "" le} STR_CONFIG_SETTING_LINKGRAPH_TIME :Acordă {STRING} zi{P 0:2 "" le} pentru recalcularea graficului de distribuţie @@ -1610,27 +1582,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfaţă STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localizare -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construcţie -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule -STR_CONFIG_SETTING_STATIONS :{ORANGE}Staţii -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economie -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribuţie cargo -STR_CONFIG_SETTING_AI :{ORANGE}Concurenţi -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Setări vizuale -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interacţiune STR_CONFIG_SETTING_SOUND :{ORANGE}Efecte sonore -STR_CONFIG_SETTING_NEWS :{ORANGE}Știri și mesaje -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Semnale (semafoare) -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Operare marfă -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jucători virtuali -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Reînnoire automată -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Service +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaţă +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcţie +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trenuri -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Oraşe -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrii +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Oraşe +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrii +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuţie cargo +STR_CONFIG_SETTING_AI :{ORANGE}Concurenţi +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jucători virtuali STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1787,6 +1749,7 @@ STR_LIVERY_FREIGHT_TRAM :Tramvai marfă STR_FACE_CAPTION :{WHITE}Alegerea pozei STR_FACE_CANCEL_TOOLTIP :{BLACK}Anulează alegerea unei poze noi STR_FACE_OK_TOOLTIP :{BLACK}Acceptă poza selectată +STR_FACE_RANDOM :{BLACK}Aleator STR_FACE_MALE_BUTTON :{BLACK}Bărbat STR_FACE_MALE_TOOLTIP :{BLACK}Alege figură masculină @@ -2664,10 +2627,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nr. de i STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Înălţimea zăpezii: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mută linia zăpezii cu un punct în sus STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mută linia zăpezii cu un punct în jos -STR_MAPGEN_RANDOM_SEED :{BLACK}Parametru aleator: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Click pt introducerea unui parametru aleator -STR_MAPGEN_RANDOM :{BLACK}Aleator -STR_MAPGEN_RANDOM_HELP :{BLACK}Modifică parametrul aleator folosit pentru Generarea Terenului STR_MAPGEN_LAND_GENERATOR :{BLACK}Generator de teren: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritm arbore: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tip teren: @@ -2694,7 +2653,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nume har STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Dimensiune: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Introduceţi o valoare de pornire pentru numerele aleatoare STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Modifică înălţimea zăpezii STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Modifică anul de început @@ -3278,6 +3236,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Şterge STR_GROUP_RENAME_TOOLTIP :{BLACK}Redenumeşte grupul selectat STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click aici pentru a proteja acest grup de la înlocuirile automate globale + STR_GROUP_ADD_SHARED_VEHICLE :Adaugă vehicule partajate STR_GROUP_REMOVE_ALL_VEHICLES :Elimină toate vehiculele diff --git a/src/lang/russian.txt b/src/lang/russian.txt index bb2acb9f20..f6211e339e 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -955,13 +955,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}ТС «{ STR_NEWS_SHIP_IS_WAITING :{WHITE}ТС «{VEHICLE}» ждёт в доке STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}ТС «{VEHICLE}» ждёт в ангаре -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}У ТС «{VEHICLE}» мало заданий STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}У ТС «{VEHICLE}» недействительное задание STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}У ТС «{VEHICLE}» повторяющиеся задания STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}У ТС «{VEHICLE}» некорректный пункт назначения -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} направлен{G 0 "" а о ы} в аэропорт со слишком короткой полосой STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}ТС «{VEHICLE}» устарело STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}ТС «{VEHICLE}» сильно устарело @@ -1050,8 +1049,8 @@ STR_GAME_OPTIONS_CURRENCY_IRR :Ирански STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Направление движения STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP :{BLACK}По какой стороне дороги ездит автотранспорт -STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Левостороннее -STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :Правостороннее +STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :левостороннее +STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :правостороннее STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Названия городов STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}На каком языке будут названы населённые пункты @@ -1083,11 +1082,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Каталан 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 :Каждый год +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Язык STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Язык пользовательского интерфейса @@ -1099,9 +1100,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разр STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбор разрешения экрана STR_GAME_OPTIONS_RESOLUTION_OTHER :Другое -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Формат снимков экрана -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_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 "" а ов} @@ -1186,9 +1184,9 @@ STR_RIVERS_FEW :Малое STR_RIVERS_MODERATE :Среднее STR_RIVERS_LOT :Большое -STR_DISASTER_NONE :Выключено -STR_DISASTER_REDUCED :Умеренная -STR_DISASTER_NORMAL :Обычная +STR_DISASTER_NONE :нет +STR_DISASTER_REDUCED :сниженная +STR_DISASTER_NORMAL :обычная STR_SUBSIDY_X1_5 :x1.5 STR_SUBSIDY_X2 :x2 @@ -1198,11 +1196,11 @@ STR_SUBSIDY_X4 :x4 STR_TERRAIN_TYPE_VERY_FLAT :Очень плоский STR_TERRAIN_TYPE_FLAT :Плоский STR_TERRAIN_TYPE_HILLY :Холмистый -STR_TERRAIN_TYPE_MOUNTAINOUS :Гористый +STR_TERRAIN_TYPE_MOUNTAINOUS :Горный -STR_CITY_APPROVAL_PERMISSIVE :Дозволяющее -STR_CITY_APPROVAL_TOLERANT :Терпимое -STR_CITY_APPROVAL_HOSTILE :Враждебное +STR_CITY_APPROVAL_PERMISSIVE :дозволяющее +STR_CITY_APPROVAL_TOLERANT :терпимое +STR_CITY_APPROVAL_HOSTILE :отрицательное STR_WARNING_NO_SUITABLE_AI :{WHITE}Модули ИИ отсутствуют.{}Их можно скачать через систему проверки онлайн-контента. @@ -1222,7 +1220,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Настрой STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Категория: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Тип: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Отображать в списке только изменённые настройки +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Отображать в списке только настройки, соответствующие выбранной категории STR_CONFIG_SETTING_RESTRICT_BASIC :Основные настройки STR_CONFIG_SETTING_RESTRICT_ADVANCED :Расширенные настройки STR_CONFIG_SETTING_RESTRICT_ALL :Специальные настройки / все настройки @@ -1267,8 +1265,8 @@ STR_CONFIG_SETTING_RUNNING_COSTS :Эксплуа STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Установите уровень стоимости обслуживания и эксплуатации транспорта и инфраструктуры STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Скорость строительства: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Ограничьте количество строительных мероприятий для ИИ -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Поломки транспорта: {STRING} -STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Задайте частоту поломок недостаточно качественно обслуженного транспорта +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Вероятность поломки транспорта: {STRING} +STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Частота поломок недостаточно качественно обслуживаемого транспорта STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Множитель субсидий: {STRING} STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Установите множитель оплаты за субсидируемые перевозки STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Затраты на строительство: {STRING} @@ -1282,8 +1280,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Включен STR_CONFIG_SETTING_CITY_APPROVAL :Отношение городского совета к реструктуризации окрестностей: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Выберите уровень влияния шума и загрязнения окружающей среды компаниями на их рейтинг в городах и возможность дальнейшего строительства около городов -STR_CONFIG_SETTING_BUILDONSLOPES :Разрешить строительство на склонах и берегах: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :При включении пути и станции можно строить на склонах с использованием насыпей. При отключении пути можно строить только на склонах, ориентация которых совпадает с направлением дороги. STR_CONFIG_SETTING_AUTOSLOPE :Разрешить изм. ландшафта под зданиями, дорогами и т. д. (автоспуски): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Разрешить изменение ландшафта под домами и дорогами, не требуя их сноса STR_CONFIG_SETTING_CATCHMENT :Зона покрытия зависит от типа станции: {STRING} @@ -1308,14 +1304,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Запрети STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Поворот на 90° происходит, когда к горизонтальному участку рельсов примыкает вертикальный. В остальных случаях поезда поворачивают на 45°. Запрет поворота на 90° относится также и к кораблям. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Разрешить объединение не примыкающих друг к другу станций: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Разрешить объединять несколько станций в одну, даже если они не примыкают друг к другу. Требуется нажать Ctrl+щелчок при расширении станции. -STR_CONFIG_SETTING_IMPROVEDLOAD :Использовать улучшенный алгоритм загрузки: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :При включении транспортные средства загружаются последовательно одно за другим. Только тот груз, который не поместится на первый транспорт, будет погружен на следующий в очереди на станции. -STR_CONFIG_SETTING_GRADUAL_LOADING :Постепенная загрузка транспорта: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Если включено - транспорт загружается постепенно; время погрузки зависит от типа транспорта.{}Если отключено - весь доступный груз перемещается на транспорт; время погрузки зависит от количества груза. STR_CONFIG_SETTING_INFLATION :Включить инфляцию: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Включить инфляцию, при которой затраты растут немного быстрее, чем доходы -STR_CONFIG_SETTING_SELECTGOODS :Поставлять груз на станцию, только если на него был спрос: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Доставлять на станцию только тот груз, за которым хоть раз пришёл транспорт. Это позволяет избежать плохих рейтингов доставки для грузов, перевозка которых не осуществляется. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Максимальная длина моста: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Ограничение на длину строящихся мостов STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Максимальная длина туннеля: {STRING} @@ -1343,8 +1333,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Укажите, STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :в начале STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :в середине STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :в конце -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Автотранспорт строится в очередь у станции: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Если остановка или грузовой терминал заняты, то автотранспорт будет ждать своей очереди у въезда на станцию. STR_CONFIG_SETTING_AUTOSCROLL :Смещать обзор, когда курсор находится у края экрана: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Включает смещение обзора при приближении указателя мыши к краю экрана STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :нет @@ -1375,10 +1363,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Позволя STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Разрешить компаниям строить сквозные остановки на муниципальных дорогах STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Разрешить проезд через остановки соперников по их дорогам: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Разрешить компаниям строить сквозные остановки на дорогах, принадлежащих другим транспортным компаниям -STR_CONFIG_SETTING_ADJACENT_STATIONS :Разрешить строительство смежных станций: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Разрешить размещение различных станций на соседних клетках -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Включить поддержку нескольких наборов NewGRF с транспортом: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Эта настройка требуется для совместимости со старыми модулями NewGRF. Не отключайте её без необходимости. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Изменение этого параметра невозможно, если в игре есть транспортные средства. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Обслуживание инфраструктуры: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Включает затраты на содержание инфраструктуры. Стоимость непропорционально увеличивается с ростом транспортной сети, оказывая, таким образом, большее влияние на крупные компании, чем на малые. @@ -1417,27 +1401,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Показыв STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Толщина линий графиков: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Толщина линий графиков. Тонкие линии более точны; толстые линии лучше видны и их цвета лучше различимы. +STR_CONFIG_SETTING_LANDSCAPE :Тип карты: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Выбор типа карты определяет основу игрового процесса, например, доступные типы транспорта и грузов, различные условия роста городов. Всё это также может быть изменено с помощью модулей NewGRF и игровых скриптов. STR_CONFIG_SETTING_LAND_GENERATOR :Генератор ландшафта: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Оригинальный генератор рассчитан на базовый графический набор и создаёт ландшафт из типовых элементов.{}TerraGenesis использует для создания ландшафта шум Перлина и более тонко настраивается. STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Оригинальный STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Тип ландшафта: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Только для TerraGenesis){}Выберите тип ландшафта +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Количество предприятий: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Выберите, сколько предприятий создавать в начале и на каком уровне поддерживать их количество в процессе игры. STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Максимальное расстояние от края карты до нефтезаводов: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Нефтеперерабатывающие заводы всегда строятся у краёв карты или на берегах островов, находящихся недалеко от края STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Высота снеговой линии: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Неровность земли (только для TerraGenesis): {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Укажите, на какой высоте в субарктическом климате устанавливается снеговой покров. Наличие снега влияет на расстановку предприятий и на условия роста городов. +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Неровность ландшафта: {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Только для TerraGenesis){}Выберите количество гор и холмов на карте. На гладком ландшафте холмов немного и они более пологие. На грубом - много гор, и ландшафт может показаться слишком однообразным. STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Очень гладкий STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Гладкий STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Грубый STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Очень грубый +STR_CONFIG_SETTING_VARIETY :Разнообразие ландшафта: {STRING} +STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Только для TerraGenesis){}Выберите, должны ли на карте встречаться горные и равнинные области. Однако так как применение этих настроек влияет только на сглаживание карты, разница будет видна только при выборе горного ландшафта. +STR_CONFIG_SETTING_RIVER_AMOUNT :Количество рек: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Выберите количество рек на карте STR_CONFIG_SETTING_TREE_PLACER :Алгоритм рассадки деревьев: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Выберите способ распределения деревьев на карте: «оригинальный» алгоритм высаживает их равномерно по всей карте; «улучшенный» - группами. STR_CONFIG_SETTING_TREE_PLACER_NONE :Нет STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Оригинальный STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Улучшенный +STR_CONFIG_SETTING_ROAD_SIDE :Движение автотранспорта: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Выберите сторону дороги, по которой движется автотранспорт STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Вращение карты высот: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Против часовой стрелки STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :По часовой стрелке STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Уровень высоты для карт с плоским рельефом: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Разрешить изменение ландшафта на краю карты: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :При отключении края карты всегда будут водными STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Одна или несколько клеток в северном углу не пусты STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Одна или несколько клеток берега без воды @@ -1474,10 +1472,10 @@ STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Скорост STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Настройка скорости смещения обзора с помощью колеса прокрутки STR_CONFIG_SETTING_OSK_ACTIVATION :Экранная клавиатура: {STRING} STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Выберите способ открытия экранной клавиатуры для ввода текста с помощью указателя. Эта настройка предназначена для мобильных устройств, не имеющих клавиатуры. -STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Отключено -STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Двойной щелчок -STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Одиночный щелчок (когда выделено) -STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :Одиночный щелчок (немедленно) +STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :отключена +STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :двойной щелчок +STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :одиночный щелчок (когда фокус в поле ввода) +STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :одиночный щелчок (немедленно) STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Эмуляция нажатия правой кнопки мыши: {STRING} STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Выбор способа эмуляции нажатия правой кнопки мыши @@ -1488,17 +1486,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Выкл. STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Смещение обзора по нажатию левой кнопки мыши: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Смещение обзора левой кнопкой мыши. Это удобно при использовании сенсорного экрана. +STR_CONFIG_SETTING_AUTOSAVE :Автосохранения: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Укажите интервал между автоматическими сохранениями + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Использовать {STRING} формат даты для имён сохранений STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Формат даты, использующийся в названиях сохранённых игр STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :длинный (31-е дек 2008 г.) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :короткий (31.12.2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Если в NewGRF не указана палитра, использовать: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Палитра по умолчанию для модулей NewGRF, в которых не указана требуемая палитра -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Палитра по умолчанию (DOS) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Устаревший формат палитры (Win) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Автопауза в начале игры: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Включение паузы при старте новой игры, чтобы лучше изучить карту STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Во время паузы разрешить: {STRING} @@ -1507,7 +1503,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :ничего STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :все действия, кроме строительства STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :все действия, кроме изменения ландшафта STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :все действия -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Использовать расширенный список транспорта: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Показывать группы в списке транспорта: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Включить расширенный список транспорта, позволяющий объединять транспортные средства в группы STR_CONFIG_SETTING_LOADING_INDICATORS :Показывать индикатор загрузки: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Отображение индикаторов загрузки над загружающимся и разгружающимся транспортом @@ -1539,7 +1535,7 @@ STR_CONFIG_SETTING_SOUND_CONFIRM :Строите STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Воспроизводить звуковые эффекты при строительстве и других действиях STR_CONFIG_SETTING_SOUND_CLICK :Нажатия кнопок: {STRING} STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Воспроизводить звук нажатий на кнопки -STR_CONFIG_SETTING_SOUND_DISASTER :Аварии/катастрофы: {STRING} +STR_CONFIG_SETTING_SOUND_DISASTER :Аварии и катастрофы: {STRING} STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Воспроизводить звук аварий и катастроф STR_CONFIG_SETTING_SOUND_VEHICLE :Транспорт: {STRING} STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Воспроизводить звук, издаваемый транспортом @@ -1616,7 +1612,7 @@ STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Изм. про STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Показывать новости об изменении производительности предприятий, обслуживаемых конкурентами STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Изм. производительности предпр., никем не обслуживаемых: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Показывать новости об изменении производительности никем не обслуживаемых предприятий -STR_CONFIG_SETTING_NEWS_ADVICE :Советы/сведения по транспорту компании: {STRING} +STR_CONFIG_SETTING_NEWS_ADVICE :Советы и сведения, касающиеся транспорта компании: {STRING} STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Показывать сообщения о транспортных средствах, на которые следует обратить внимание STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Новый транспорт: {STRING} STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Показывать новости о новых моделях транспортных средств @@ -1627,9 +1623,9 @@ STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Показыв STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Общая информация: {STRING} STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Показывать общие новости, вроде покупки эксклюзивных транспортных прав или проведения реконструкции дорог -STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Выкл -STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Кратко -STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Полно +STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :отключено +STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :кратко +STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :полностью STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Цветные газеты появляются в {STRING} году STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Обычно в газетах печатают чёрно-белые изображения, а начиная с указанного года - цветные @@ -1662,11 +1658,11 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :все STR_CONFIG_SETTING_TOWN_LAYOUT :Тип дорожной сети для новых городов: {STRING} STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Тип дорожной сети в новых городах -STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :старый алгоритм +STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :классический алгоритм STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :улучшенный алгоритм STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :решёткой 2x2 STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :решёткой 3x3 -STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :случайно +STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :выбирается случайно STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Городам разрешено строить дороги: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Разрешить администрации городов расширять дорожную сеть. При отключенной настройке города самостоятельно расти не будут. STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Города могут создавать ж/д переезды: {STRING} @@ -1674,7 +1670,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Разреши STR_CONFIG_SETTING_NOISE_LEVEL :Разрешить городам контролировать уровень шума аэропортов: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :При выключенной настройке количество аэропортов ограничено двумя на каждый город. При включенной - администрация города ограничивает только уровень допустимого шума (он зависит от количества жителей). Уровень шума, производимого аэропортом, зависит от его типа и расстояния от центра города. STR_CONFIG_SETTING_TOWN_FOUNDING :Строительство городов в игре: {STRING} -STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Разрешить игрокам создавать новые города +STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Включение данной настройки позволяет игрокам основывать новые города STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :запрещено STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :разрешено STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :разрешено с выбором сети дорог @@ -1720,8 +1716,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 из {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :нет STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Стартовый множитель размера мегаполисов: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Средний размер мегаполисов по сравнению с остальными городами в начале игры -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Удалять бесполезные элементы дорог во время реконструкции: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Удалять тупиковые элементы дорог при реконструкции STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Обновлять граф распределения раз в {STRING} д{P 0:2 ень ня ней} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Период перерасчёта графов распределения. В каждом цикле рассчитывается не граф полностью, а только один из его компонентов. Чем меньше это значение, тем больше будет нагрузка на процессор. Чем больше значение, тем больше времени пройдёт перед началом расчёта графов для новых маршрутов. @@ -1783,27 +1777,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :английс STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :метрическая (м) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :СИ (м) -STR_CONFIG_SETTING_GUI :{ORANGE}Интерфейс STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Локализация -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Строительство -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспорт -STR_CONFIG_SETTING_STATIONS :{ORANGE}Станции -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Экономика -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Распределение грузов -STR_CONFIG_SETTING_AI :{ORANGE}Конкуренты -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Настройки экрана -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Взаимодействие +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Графика STR_CONFIG_SETTING_SOUND :{ORANGE}Звуковые эффекты -STR_CONFIG_SETTING_NEWS :{ORANGE}Новости и сообщения -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Сигналы -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Перемещение грузов -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Искусственный интеллект -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Автообновление -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Обслуживание +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Интерфейс +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Общие настройки +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Окна просмотра +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Строительство +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Новости и информация +STR_CONFIG_SETTING_COMPANY :{ORANGE}Компания +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Финансы +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспорт +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Физическая модель STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршруты -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Поезда -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Города -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Предприятия +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ограничения +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Аварии и катастрофы +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Создание карты +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Окружающая среда +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Городская администрация +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Города +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Предприятия +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Распределение грузов +STR_CONFIG_SETTING_AI :{ORANGE}Конкуренты +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Искусственный интеллект STR_CONFIG_SETTING_PATHFINDER_OPF :оригинальный STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1960,6 +1956,7 @@ STR_LIVERY_FREIGHT_TRAM :Грузово STR_FACE_CAPTION :{WHITE}Внешний вид STR_FACE_CANCEL_TOOLTIP :{BLACK}Не менять внешность STR_FACE_OK_TOOLTIP :{BLACK}Применить новую внешность +STR_FACE_RANDOM :{BLACK}Случайное STR_FACE_MALE_BUTTON :{BLACK}Мужское STR_FACE_MALE_TOOLTIP :{BLACK}Выбор мужских лиц @@ -2080,13 +2077,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Защи STR_NETWORK_START_SERVER_UNADVERTISED :Нет STR_NETWORK_START_SERVER_ADVERTISED :Да STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} клиент{P "" а ов} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Макс. клиентов: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Макс. количество клиентов: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Выбор максимального числа клиентов. Не все места должны быть заняты STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} компани{P я и й} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Макс. компаний: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Макс. количество компаний: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Ограничить максимальное количество компаний на сервере STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} наблюдател{P ь я ей} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Макс. наблюдателей: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Макс. количество наблюдателей: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Ограничить максимальное количество наблюдателей на сервере STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Язык общения: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Другие игроки будут знать, на каком языке общаются на сервере @@ -2344,7 +2341,7 @@ STR_CONTENT_DETAIL_FILESIZE :{SILVER}Раз STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Выбрано вместе с {WHITE}{STRING} STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Зависимости: {WHITE}{STRING} STR_CONTENT_DETAIL_TAGS :{SILVER}Теги: {WHITE}{STRING} -STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD собрана без поддержки библиотеки «zlib»... +STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD скомпилирован без поддержки библиотеки «zlib»... STR_CONTENT_NO_ZLIB_SUB :{WHITE}... загрузка контента невозможна! # Order of these is important! @@ -2838,7 +2835,7 @@ STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Сохр STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Загрузить сценарий STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Загрузить карту STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Сохранить карту высот -STR_SAVELOAD_HOME_BUTTON :{BLACK}Щёлкните, чтобы перейти к текущей папке загрузки/сохранения по умолчанию +STR_SAVELOAD_HOME_BUTTON :{BLACK}Переход в каталог загрузки и сохранения, установленный по умолчанию STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} свободно STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Список дисков, папок и сохранённых игр STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Выбранное название для сохранения игры @@ -2867,10 +2864,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Кол- STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Снеговая линия: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Поднять снеговую линию STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Опустить снеговую линию -STR_MAPGEN_RANDOM_SEED :{BLACK}Начальное число: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Ландшафт генерируется псевдослучайно, число - опорная точка в последовательности случайных чисел. -STR_MAPGEN_RANDOM :{BLACK}Случайное -STR_MAPGEN_RANDOM_HELP :{BLACK}Изменить случайный номер, используемый генератором ландшафта STR_MAPGEN_LAND_GENERATOR :{BLACK}Генератор ландшафта: STR_MAPGEN_TREE_PLACER :{BLACK}Генератор лесов: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тип ландшафта: @@ -2897,7 +2890,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Назв STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Размер: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Введите случайное число STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Изменить высоту снеговой линии STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Изменить год начала игры @@ -2952,6 +2944,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Ввер STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Переместить выбранный файл NewGRF выше по списку STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Вниз STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Переместить выбранный файл NewGRF ниже по списку +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Обновить +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Обновить файлы модулей NewGRF, если есть такая возможность STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Список используемых файлов NewGRF STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Параметры @@ -2976,6 +2970,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Файл STR_NEWGRF_SETTINGS_DISABLED :{RED}Отключено STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Несовместимо с данной версией OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}Сохранение набора +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Список доступных наборов. Выберите один из них, чтобы скопировать его название в строку имени. +STR_SAVE_PRESET_TITLE :{BLACK}Введите имя набора +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Имя для сохранения набора +STR_SAVE_PRESET_CANCEL :{BLACK}Отмена +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Не делать никаких изменений +STR_SAVE_PRESET_SAVE :{BLACK}Сохранить +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Сохранить набор под выбранным именем + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Изменить параметры NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Закрыть @@ -3328,7 +3332,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}ИТОГО: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Баланс: STR_FINANCES_LOAN_TITLE :{WHITE}Заём -STR_FINANCES_MAX_LOAN :{WHITE}Максимальный заём: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Макс. сумма займа: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Занять {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Взять деньги взаймы. Ctrl+щелчок - увеличить заём до максимума. @@ -3477,12 +3481,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Без груп STR_GROUP_DEFAULT_SHIPS :Без группы STR_GROUP_DEFAULT_AIRCRAFTS :Без группы -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Щёлкните по имени группы для отображения списка транспорта +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Щёлкните по имени группы для отображения списка транспорта. Можно создавать вложенные группы с помощью перетаскивания. STR_GROUP_CREATE_TOOLTIP :{BLACK}Создать группу STR_GROUP_DELETE_TOOLTIP :{BLACK}Удалить выбранную группу STR_GROUP_RENAME_TOOLTIP :{BLACK}Переименовать выбранную группу STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Защита транспорта в группе от глобальной автозамены +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Удаление группы +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Удалить эту и все вложенные группы? + STR_GROUP_ADD_SHARED_VEHICLE :Добавить транспорт с общим маршрутом STR_GROUP_REMOVE_ALL_VEHICLES :Удалить все @@ -4009,10 +4016,14 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Граф STR_TIMETABLE_NO_TRAVEL :Нет назначения STR_TIMETABLE_NOT_TIMETABLEABLE :В пути (время учтено в ближайшем не автоматическом задании) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :В пути (время не задано) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :В пути со скоростью не более {2:VELOCITY} (время не задано) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :В пути (график не составлен) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Идти со скоростью не более {2:VELOCITY} (график не составлен) STR_TIMETABLE_TRAVEL_FOR :В пути {STRING} -STR_TIMETABLE_TRAVEL_FOR_SPEED :В пути {STRING} со скоростью не более {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_SPEED :Идти {STRING} со скоростью не более {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :В пути примерно {STRING} (график не составлен) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Идти примерно {STRING} со скоростью не более {VELOCITY} (график не составлен) +STR_TIMETABLE_STAY_FOR_ESTIMATED :(ждать {STRING}, график не составлен) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(в пути {STRING}, график не составлен) STR_TIMETABLE_STAY_FOR :и ждать {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :и идти в {STRING} STR_TIMETABLE_DAYS :{COMMA} д{P ень ня ней} @@ -4466,6 +4477,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... вы STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Не удалось создать группу... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Не удалось удалить группу... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Не удалось переименовать группу... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Не удалось установить корректное вложение групп... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Не удалось удалить весь транспорт из группы... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Не удалось добавить транспорт в группу... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Не удалось добавить транспорт с общим маршрутом в группу... diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 76c33c9654..588dba5ca8 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -1001,13 +1001,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} čeka u depou STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} čeka u hangaru -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ima premalo naredbi u voznom redu STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ima neodređenu naredbu STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ima dupliciranu naredbu STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ima neodgovarajuću stanicu u naredbi -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} zastareva STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} previše zastareva @@ -1145,9 +1143,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format slike ekrana -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Odaberite željeni format slike ekrana - 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} @@ -1315,8 +1310,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Uključuje i is STR_CONFIG_SETTING_CITY_APPROVAL :Stav gradskog odbora u pogledu restrukturiranja zone: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Izbor koliko će buka i zagađenje koje proizvode kompanije uticati na njihov gradski rejting i dalje građevinske akcije u toj zoni -STR_CONFIG_SETTING_BUILDONSLOPES :Dozvoljena gradnja na kosinama i obalama: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ako je uključeno, rute i stanice mogu se graditi na većini strmina. Ako je isključeno, mogu se graditi samo na strminama koje odgovaraju smeru rute i ne traže posebnu osnovu STR_CONFIG_SETTING_AUTOSLOPE :Dozvoljena izmena nagiba ispod zgrada, koloseka, itd. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dozvoli iskopavanja ispod građevina i pruge bez da se uklone STR_CONFIG_SETTING_CATCHMENT :Realističnije veličine prihvatnih površina: {STRING} @@ -1341,14 +1334,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zabranjeno okre STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Okretanje za 90 stepeni se dešava kada se uspravna pruga nalazi odmah posle vodoravne pruge na susednoj pločici i time čini da voz skreće pod 90 stepeni kad prelazi sa pločice na pločicu, umesto uobičajenih 45 stepeni kod drugih kombinacija pruge. Ovo takođe važi i za radijus zaokreta brodova STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Dozvoljeno sjedinjavanje udaljenih stanica: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Dozvoljava dodavanje delova stanici bez da oni dodiruju postojeće delove stanice. Zahteva Ctrl+Klik kod postavljanja novih delova -STR_CONFIG_SETTING_IMPROVEDLOAD :Koristiti poboljšan algoritam utovara: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ako je omogućen, više vozila koja čekaju u stanici će se utovarivati jedno za drugim. Sledeće vozilo će početi sa utovarom kada čeka dovoljno tereta da napuni prethodno vozilo -STR_CONFIG_SETTING_GRADUAL_LOADING :Postepeno utovarivanje u vozilo: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Postupno utovaruj vozila koristeći različito vreme utovara za svako vozilo, umesto utovara odjednom za fiksno vreme koje zavisi samo od količine tovara STR_CONFIG_SETTING_INFLATION :Inflacija: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Omogućuje inflaciju tako da troškovi rastu malo brže od isplata -STR_CONFIG_SETTING_SELECTGOODS :Dostavljanje tovara na stanicu samo ako ima potražnje: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Dostavlja na stanicu samo onaj tovar koji je potreban vozilu koje se utovaruje. Ovo onemogućava loš rejting za one vrste tovara koji ne mogu da se iskoriste u stanici STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Najveća dužina mosta: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimalna dužina za podizanje mostova STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Najveća dužina tunela: {STRING} @@ -1376,8 +1363,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Mesto gde će s STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :početak STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :sredina STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :kraj -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Vozila čekaju u koloni (na zauzetim stanicama): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Čini da drumsko vozilo čeka ispred zauzetih stanica dok se ne raščiste STR_CONFIG_SETTING_AUTOSCROLL :Pomeranje prozora kada miš priđe ivicama: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ako je omogućeno, prikaz će početi da skroluje kada je kursor miša blizu ivice prozora STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Isključeno @@ -1408,9 +1393,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Dozvoljene uli STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Dozvoljava izgradnju protočnih drumskih stanica na putevima čiji je vlasnik naselje STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Dozvoljene ulične stanice na kolovozima u vlasništvu drugih preduzeća: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Dozvoljava izgradnju protočnih drumskih stanica na putevima čiji je vlasnik drugo preduzeće -STR_CONFIG_SETTING_ADJACENT_STATIONS :Dozvoljena gradnja stanica jedne pored druge: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Dozvoljava da se različite stanice dodiruju -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Dozvoljeno više NewGRF kolekcija mašina: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Promena ovog podešavanja nije moguća dok postoje vozila STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Održavanje infrastrukture: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Ako je omogućeno, infrastruktura će imati troškove održavanja. Trošak raste brže sa porastom veličine putne mreže i time više pogađa veća preduzeća od manjih @@ -1442,7 +1424,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trajanje prikaz STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund{P a e i} STR_CONFIG_SETTING_HOVER_DELAY :Prikaži poruke u balončićima: {STRING} STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Desni klik -STR_CONFIG_SETTING_POPULATION_IN_LABEL :Prikazivanje broja populacije pored naziva naselja: {STRING} +STR_CONFIG_SETTING_POPULATION_IN_LABEL :Prikazivati br. stanovnika pored naziva naselja: {STRING} STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Prikazuje broj stanovnika naselja na njihovoj oznaci na karti STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Debljina linija u grafikonima: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Širina linije na grafiku. Tanka linija je preciznija a debelu je lakše videti i lakše je razlikovati boje @@ -1465,8 +1447,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Orijentacija el STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Nalevo STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Nadesno STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Visina ravnog terena je: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Dozvoljeno oblikovanje reljefa na ivicama terena: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ako je onemogućeno, na ivicama karte će uvek biti okean STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Jedan ili više sektora na severnoj ivici nije prazan STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedan ili više sektora na jednoj od ivica nije voda @@ -1512,8 +1492,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dugačak (31st STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kratak (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Podrazumevana paleta za NewGRF: {STRING} - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pauzirati odmah po pokretanju nove partije : {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Tokom pauze dozvoljene su: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :nikakve aktivnosti @@ -1529,7 +1507,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Podešena vrsta STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Prva dostupna STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Zadnja dostupna STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Najčešće korišćena -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Prikazati rezervisane pruge: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Prikazivati rezervisane pruge: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Zadržati aktivne alate za gradnju posle upotrebe: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Ostavi alate za gradnju mostova, tunela itd. otvorene nakon korišćenja STR_CONFIG_SETTING_EXPENSES_LAYOUT :Grupisati troškove u finansijskom prozoru preduzeća: {STRING} @@ -1604,31 +1582,32 @@ STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Prikazuje novin STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Otvaranje nove fabrike: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Prikazuje novinske naslove kada se otvori nova fabrika STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Zatvaranje fabrike: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Prikaži novinske naslove o zatvaranju fabrika +STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Prikazuje novinske naslove o zatvaranju fabrika STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Promene u ekonomiji: {STRING} -STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Prikaži novinske naslove o globalnim ekonomskim promenama +STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Prikazuje novinske naslove o globalnim ekonomskim promenama STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Promene u proizvodnji usluženih industrija: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Prikaži novinske naslove kada se promeni nivo proizvodnje u industriji koja je pokrivena od strane naše kompanije +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Prikazuje novinske naslove kada se promeni nivo proizvodnje u industriji koju naša kompanija pokriva STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Promene u proizvodnji industrija usluženih konkurencijom: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Prikaži novinske naslove kada se promeni nivo proizvodnje u industriji koja jeste pokrivena od strane konkurencije +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Prikazuje novinske naslove kada se promeni nivo proizvodnje u industriji koju konkurencija pokriva STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Promene u proizvodnji ostalih industrija: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Prikaži novinske naslove kada se promeni nivo proizvodnje u industriji koja nije pokrivena ni od strane kompanije, ni od strane konkurencije +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Prikazuje novinske naslove kada se promeni nivo proizvodnje u industriji koju ne pokriva ni naša kompanija, ni konkurencija STR_CONFIG_SETTING_NEWS_ADVICE :Savet / Izveštaji o vozilima preduzeća: {STRING} STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Prikaži poruke o događajima na vozilima koji zahtevaju intervenciju STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nova vozila: {STRING} -STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Prikaži novinske naslove kada postane dostupan novi tip vozila +STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Prikazuje novinske naslove kada postane dostupan novi tip vozila STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Promene u prihvatanju tovara: {STRING} STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Prikaži poruke kada stanice promene tip prijema robe i putnika STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subvencije: {STRING} -STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Prikaži novinske naslove o događajima u vezi sa subvencijama +STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Prikazuje novinske naslove o događajima u vezi sa subvencijama STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Opšta obaveštenja: {STRING} -STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Prikaži novinske naslove o opštim događajima, kao što kupovina ekskluzivnih prava ili finansiranje rekonstrukcije puteva +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Prikazuje novinske naslove o opštim događajima, kao što su kupovina ekskluzivnih prava ili finansiranje rekonstrukcije puteva STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Isključeno STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Sažeto STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Potpuno -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Vesti u boji se objavljuju od: {STRING} +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Vesti u boji se objavljuju počev od godine: {STRING} +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Godina počev od koje se vesti objavljuju u boji. Pre ove godine se objavljuju u crno/beloj tehnici. STR_CONFIG_SETTING_STARTING_YEAR :Početna godina: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Uključena glatka ekonomija (više, manjih promena): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Ako je omogućeno, industrijska proizvodnja se češće menja u manjim koracima. Ako se vrste industrija učitavaju preko NewGRF dodataka ovo podešavanje uglavnom nema efekta @@ -1660,7 +1639,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Naseljima je do STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Naseljima je dozvoljeno da grade putne prelaze: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Omogućava naseljima da grade prelaz pruge preko puta STR_CONFIG_SETTING_NOISE_LEVEL :Naseljima je dozvoljeno da kontrolišu nivo buke aerodroma: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Ako je ovo podešavanje onemogućeno mogu postojati 2 aerodroma u svakom naselju. Ako je podešavanje omogućeno, broj aerodroma u gradu je ograničen dozvoljenim nivoom buke u gradu koji zavisi od populacije te veličine i udaljenosti aerodroma +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Ako je ovo podešavanje onemogućeno mogu postojati 2 aerodroma u svakom naselju. Ako je podešavanje omogućeno, broj aerodroma u gradu je ograničen dozvoljenim nivoom buke u gradu koji zavisi od populacije i od veličine i udaljenosti aerodroma STR_CONFIG_SETTING_TOWN_FOUNDING :Osnivanje naselja u toku partije: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Dozvoljava igračima osnivanje novih naselja u toku igre STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :zabranjeno @@ -1676,6 +1655,7 @@ STR_CONFIG_SETTING_TOOLBAR_POS :Lokacija glavne STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Horizontalna pozicija glavne trake s alatkama na vrhu ekrana STR_CONFIG_SETTING_STATUSBAR_POS :Položaj statusne linije: {STRING} STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horizontalna pozicija statusne linije na dnu ekrana +STR_CONFIG_SETTING_SNAP_RADIUS :Udaljenost na kojoj će prozor da se prilepi uz susedni: {STRING} STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piksel{P 0 "" a a} STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Isključeno STR_CONFIG_SETTING_SOFT_LIMIT :Najviše nepridenutih prozora: {STRING} @@ -1701,8 +1681,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 u {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Nijedan STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Inicijalni množilac razvoja gradova: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Prosečna veličina naselja relativno u odnosu na gradove na početku partije -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Uklanjati besmislene kolovoze u naseljima: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Ukloni slepe ulice tokom plaćene rekonstrukcije puteva STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :ručno STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetrično @@ -1716,52 +1694,44 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperijalne mer STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metričke mere (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Jedinice za snagu kod vozila: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Mere za snagu vozila: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperijalne mere (hp) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metričke mere (hp) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW) -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Mera težine: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Mere težine: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :Kad težine budu pokazane u interfejsu, pokazi u željenoj meri STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperijalne (short t/ton) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Metričke mere (t/toni) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :Mere zapremine: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperijalne mere (gal) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Metričke mere (l) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Mere za silu trenja: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperijalne mere (lbf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Metričke mere (kgf) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN) -STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Mera visine: {STRING} +STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Mere visine: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Kad visine budu pokazane u interfejsu, pokazi u željenoj meri STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperijalne mere (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metričke mere (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Okruženje STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Prevod -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Izgradnja -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stanice -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomija -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribucija Tovara -STR_CONFIG_SETTING_AI :{ORANGE}Suparnici -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Prikazivanje -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interakcija STR_CONFIG_SETTING_SOUND :{ORANGE}Zvučni efekti -STR_CONFIG_SETTING_NEWS :{ORANGE}Vesti i poruke -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signali -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Baratanje teretom -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računar -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatska zamena -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servisiranje +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Okruženje +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Izgradnja +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Rutiranje -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vozovi -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Naselja -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Naselja +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribucija Tovara +STR_CONFIG_SETTING_AI :{ORANGE}Suparnici +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računar STR_CONFIG_SETTING_PATHFINDER_OPF :Originalno STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1914,6 +1884,7 @@ STR_LIVERY_FREIGHT_TRAM :Teretni Tramvaj STR_FACE_CAPTION :{WHITE}Izbor lica STR_FACE_CANCEL_TOOLTIP :{BLACK}Poništi ovo lice STR_FACE_OK_TOOLTIP :{BLACK}Prihvati ovo lice +STR_FACE_RANDOM :{BLACK}Proizvoljno STR_FACE_MALE_BUTTON :{BLACK}Muško STR_FACE_MALE_TOOLTIP :{BLACK}Izbor muškog lica @@ -2778,10 +2749,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Broj fab STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Nivo snežnog pokrivača: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Sužava snežni pokrivač naviše za jedan STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Proširuje snežni pojas naniže za jedan -STR_MAPGEN_RANDOM_SEED :{BLACK}Klica proizvoljnosti: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Kliknite za unos klice proizvoljnosti -STR_MAPGEN_RANDOM :{BLACK}Proizvoljno -STR_MAPGEN_RANDOM_HELP :{BLACK}Promena klice proizvoljnosti za Oblikovanje Reljefa STR_MAPGEN_LAND_GENERATOR :{BLACK}Oblikovanje reljefa: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritam za drveća: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Vrsta terena: @@ -2808,7 +2775,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Naziv el STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Veličina: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Unos nove vrednosti klice STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Promena donjeg nivoa snežnog pojasa STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Promena početne godine @@ -3383,12 +3349,13 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Negrupisana dru STR_GROUP_DEFAULT_SHIPS :Negrupisani brodovi STR_GROUP_DEFAULT_AIRCRAFTS :Negrupisane letilice -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupe - klikom na grupu se prikazuje spisak vozila u grupi +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupe - klikom na grupu se prikazuje spisak vozila u grupi. Hijerarhija grupa se uređuje metodom "prevuci i pusti" STR_GROUP_CREATE_TOOLTIP :{BLACK}Klikom se pravi nova grupa STR_GROUP_DELETE_TOOLTIP :{BLACK}Briše se označena grupa STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenovanje označene grupe STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikom se ova grupa štiti od globalne automatske zamene + STR_GROUP_ADD_SHARED_VEHICLE :Dodaj deljeno vozilo STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozila diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 7c9ad0ecc4..98c4d5e19f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -57,7 +57,7 @@ STR_CARGO_PLURAL_BUBBLES :泡泡 STR_CARGO_PLURAL_TOFFEE :太妃糖 STR_CARGO_PLURAL_BATTERIES :电池 STR_CARGO_PLURAL_PLASTIC :塑料块 -STR_CARGO_PLURAL_FIZZY_DRINKS :跳跳水 +STR_CARGO_PLURAL_FIZZY_DRINKS :汽水 # Singular cargo name STR_CARGO_SINGULAR_NOTHING : @@ -91,7 +91,7 @@ STR_CARGO_SINGULAR_BUBBLE :泡泡 STR_CARGO_SINGULAR_TOFFEE :太妃糖 STR_CARGO_SINGULAR_BATTERY :电池 STR_CARGO_SINGULAR_PLASTIC :塑料 -STR_CARGO_SINGULAR_FIZZY_DRINK :跳跳水 +STR_CARGO_SINGULAR_FIZZY_DRINK :汽水 # Quantity of cargo STR_QUANTITY_NOTHING : @@ -125,7 +125,7 @@ STR_QUANTITY_BUBBLES :{COMMA} 个泡 STR_QUANTITY_TOFFEE :{WEIGHT_LONG} 太妃糖 STR_QUANTITY_BATTERIES :{COMMA} 箱电池 STR_QUANTITY_PLASTIC :{VOLUME_LONG} 塑料 -STR_QUANTITY_FIZZY_DRINKS :{COMMA} 瓶跳跳水 +STR_QUANTITY_FIZZY_DRINKS :{COMMA} 瓶汽水 STR_QUANTITY_N_A :N/A # Two letter abbreviation of cargo name @@ -160,7 +160,7 @@ STR_ABBREV_BUBBLES :{TINY_FONT}泡 STR_ABBREV_TOFFEE :{TINY_FONT}太 STR_ABBREV_BATTERIES :{TINY_FONT}电 STR_ABBREV_PLASTIC :{TINY_FONT}塑 -STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}跳 +STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}汽 STR_ABBREV_NONE :{TINY_FONT}无 STR_ABBREV_ALL :{TINY_FONT}全 @@ -176,7 +176,7 @@ STR_CRATES :{COMMA} 件 STR_COLOUR_DARK_BLUE :深蓝色 STR_COLOUR_PALE_GREEN :浅绿色 STR_COLOUR_PINK :粉红色 -STR_COLOUR_YELLOW :明黄色 +STR_COLOUR_YELLOW :黄 色 STR_COLOUR_RED :红 色 STR_COLOUR_LIGHT_BLUE :淡蓝色 STR_COLOUR_GREEN :绿 色 @@ -195,33 +195,33 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA} 英里/ STR_UNITS_VELOCITY_METRIC :{COMMA} 千米/小时 STR_UNITS_VELOCITY_SI :{COMMA} 米/秒 -STR_UNITS_POWER_IMPERIAL :{COMMA} 马力 -STR_UNITS_POWER_METRIC :{COMMA} 马力 -STR_UNITS_POWER_SI :{COMMA} 千瓦 +STR_UNITS_POWER_IMPERIAL :{COMMA}马力 +STR_UNITS_POWER_METRIC :{COMMA}马力 +STR_UNITS_POWER_SI :{COMMA}千瓦 -STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA} 短吨 -STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA} 吨 -STR_UNITS_WEIGHT_SHORT_SI :{COMMA} 千克 +STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}英吨 +STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}吨 +STR_UNITS_WEIGHT_SHORT_SI :{COMMA}千克 -STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA} 短吨 -STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} 公吨 -STR_UNITS_WEIGHT_LONG_SI :{COMMA} 千克 +STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}英吨 +STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} 吨 +STR_UNITS_WEIGHT_LONG_SI :{COMMA}千克 -STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA} 加仑 -STR_UNITS_VOLUME_SHORT_METRIC :{COMMA} 升 -STR_UNITS_VOLUME_SHORT_SI :{COMMA} 立方米 +STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}加仑 +STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}升 +STR_UNITS_VOLUME_SHORT_SI :{COMMA}立方米 -STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA} 加仑 -STR_UNITS_VOLUME_LONG_METRIC :{COMMA} 升 -STR_UNITS_VOLUME_LONG_SI :{COMMA} 立方米 +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}加仑 +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}升 +STR_UNITS_VOLUME_LONG_SI :{COMMA}立方米 -STR_UNITS_FORCE_IMPERIAL :{COMMA} 磅力 -STR_UNITS_FORCE_METRIC :{COMMA} 千克力 -STR_UNITS_FORCE_SI :{COMMA} 千牛顿 +STR_UNITS_FORCE_IMPERIAL :{COMMA}磅力 +STR_UNITS_FORCE_METRIC :{COMMA}千克力 +STR_UNITS_FORCE_SI :{COMMA}千牛 -STR_UNITS_HEIGHT_IMPERIAL :{COMMA} 英呎 -STR_UNITS_HEIGHT_METRIC :{COMMA} 米 -STR_UNITS_HEIGHT_SI :{COMMA} 公尺 +STR_UNITS_HEIGHT_IMPERIAL :{COMMA}英尺 +STR_UNITS_HEIGHT_METRIC :{COMMA}米 +STR_UNITS_HEIGHT_SI :{COMMA}米 # Common window strings STR_LIST_FILTER_TITLE :{BLACK}过滤字串: @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} 正在船坞待命 STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} 正在机库待命 -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} 的调度计划太少 STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}的调度计划中有无效调度命令 STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} 有重复调度命令 STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}的调度计划有无效的车站 -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有机场跑道太短不足及起降 STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} 即将达到报废年限 STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} 已经达到报废年限 @@ -938,11 +937,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :加泰罗尼亚 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 :每 12 个月 +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}语言 STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}选择界面语言 @@ -954,9 +955,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}屏幕 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}选择要使用的屏幕分辨率 STR_GAME_OPTIONS_RESOLUTION_OTHER :其他 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}屏幕截图类型 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}选择屏幕截图类型 - STR_GAME_OPTIONS_BASE_GRF :{BLACK}基础图形组 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}选择要使用的基础图形组 STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} 文件{}未找到或不正确 @@ -1130,8 +1128,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :灾难可能引 STR_CONFIG_SETTING_CITY_APPROVAL :地区政府对区域改造的态度: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :设置相关参数以决定各公司造成的噪音及环境破坏时,各城镇对该公司的评价及未来区域建设的影响。 -STR_CONFIG_SETTING_BUILDONSLOPES :允许在斜坡和河岸上建设:{STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :启用时轨道和站台能够建造在斜坡上,禁止时只能建设与斜坡方向相同的轨道,因而不需要改变地形 STR_CONFIG_SETTING_AUTOSLOPE :允许在建筑、轨道等下方改变地形(自动斜坡): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :允许在建筑和轨道下方改变地形而不需要拆除他们 STR_CONFIG_SETTING_CATCHMENT :允许更真实的客源范围:{STRING} @@ -1148,22 +1144,16 @@ STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL_HELPTEXT :选择列车加 STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :汽车加速模型: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL_HELPTEXT :选择汽车加速度模型,选“原版”时斜坡对所有汽车影响相同,选“真实”时依赖引擎性能,比如“牵引力” STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS :斜坡对火车的影响率:{STRING} -STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :每一格斜坡对火车速度的影响率,数值越大,火车越难爬上山 +STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :每一格斜坡对火车速度的影响率,数值越大,火车越难爬上斜坡 STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :斜坡对汽车速度影响率: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :每一格斜坡对汽车速度的影响率,数值越大,汽车越难爬上山 +STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :每一格斜坡对汽车速度的影响率,数值越大,汽车越难爬上斜坡 STR_CONFIG_SETTING_FORBID_90_DEG :禁止列车和轮船 90 度转弯:{STRING} STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :当水平方向轨道与垂直方向轨道交叉时,没有采用45度的轨道组合连接,而是采用轨道90度直接连接时,列车通过时需要90度转弯,当本设置”打开“时,将禁止火车90度转弯,本设置同样影响船只转弯时的航线。 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :允许非毗邻站台合并:{STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :“打开”时允许为已经存在的车站添加不相邻的站台,建造新的部分时需要按住Ctrl键 -STR_CONFIG_SETTING_IMPROVEDLOAD :使用进阶的装货算法:{STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :“打开”时,多辆车在一个车站依次排队装货,只有当货物足够装满第一列车时才同时为下一列车装货 -STR_CONFIG_SETTING_GRADUAL_LOADING :装货时循序渐进:{STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :根据车辆的特定装货时间来逐渐装货, 而不要根据货物量在一定时间内一次装满全部货物 STR_CONFIG_SETTING_INFLATION :通货膨胀:{STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :“打开”通货膨胀时,支出比收入增长得稍快 -STR_CONFIG_SETTING_SELECTGOODS :仅在车站接受此货物时卸货:{STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :“打开”时只有车站接收此货物时才卸载 STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :桥梁的最大长度: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :建设桥梁时允许的最大长度 STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :隧道最大长度: {STRING} @@ -1186,13 +1176,11 @@ STR_CONFIG_SETTING_SHOWFINANCES :在年终显示 STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :“打开”时,在年底显示财务报表窗口,方便查看公司财务状况 STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :新的调度命令默认为“不停车”: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :通常,车辆在它经过的每一个车站都会停车。“打开”本选项时,车辆会不停车的通过所有中间车站前往最终目的地。注意:这只是为每一条新调度命令设置一个默认信息,仍然可以为每条调度命令设置明确的信息 -STR_CONFIG_SETTING_STOP_LOCATION :新列车调度计划中默认命令为停靠车站月台 {STRING} 位置 -STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :设置车辆在站台的默认停靠位置,“近端”是靠近车辆进入月台的那一端,“中间”是月台中间位置,“远端”是原理车辆进入月台的那一端 +STR_CONFIG_SETTING_STOP_LOCATION :新列车调度计划中默认命令为停靠在站台{STRING} 位置 +STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :设置车辆在站台的默认停靠位置,“近端”是靠近车辆进入的那一端,“中间”是站台中间位置,“远端”是远离车辆进入的那一端 STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :近端 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :中间 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :远端 -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :汽车自动排队 (有量子效应): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :“打开”时汽车在堵车的道路上排队等候,直到道路畅通 STR_CONFIG_SETTING_AUTOSCROLL :当鼠标移动到屏幕边缘时移动屏幕:{STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :启用后,鼠标移动到视点窗口边缘时,视点窗口自动滚动 STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :禁用 @@ -1223,10 +1211,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :允许在城镇 STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :“打开”时允许在城市所属的道路上建设通过式车站 STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :允许在竞争对手所属的道路上建通过式车站: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :“打开”时,允许在其它公司所属的道路上建设通过式车站 -STR_CONFIG_SETTING_ADJACENT_STATIONS :允许建设临近站台: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :“打开”时,允许不同车站相邻 -STR_CONFIG_SETTING_DYNAMIC_ENGINES :允许使用多GRF运输工具: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :为旧版本的NewGRF准备的兼容性选项,不要禁止本选项,除非你明白你在做什么! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}当有车辆时,不可能更改此设定。 STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :加强版固定资产维护: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :固定资产会发生维护费用,“打开”本选项时,维护费用的增长会超过交通网络的增长规模,因而,对大公司影响更大。 @@ -1265,31 +1249,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :在地图城镇 STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :图表曲线宽度: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :图表中曲线的宽度,细线清晰易读,粗线容易分辨颜色 +STR_CONFIG_SETTING_LANDSCAPE :景观: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR :生成地形:{STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :原始算法 STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :新算法 +STR_CONFIG_SETTING_TERRAIN_TYPE :地貌类型: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(仅限生成地图时) 多丘陵地形 +STR_CONFIG_SETTING_INDUSTRY_DENSITY :工业布局: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :设置地图生成过程中,工业数量及一、二级工业比例。 STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :炼油厂距地图边缘的最大距离:{STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :炼油厂只能在地图边缘建设或者海岛海岸。 STR_CONFIG_SETTING_SNOWLINE_HEIGHT :雪线高度:{STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :地面粗糙度 (仅限 TerraGenesis):{STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :控制在寒带气候中雪线高度.大雪会影响工业和城镇发展需求. +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :地面粗糙度 (仅限生成地图时):{STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :非常光滑 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :光滑 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :粗糙 STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :非常粗糙 +STR_CONFIG_SETTING_VARIETY :多样的分发: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT :河流数量: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :选择生成河流的数量 STR_CONFIG_SETTING_TREE_PLACER :森林算法:{STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :选择地图上树木的分布方式:“原版”树木各处一致分布,“改良”各类树木成片分布 STR_CONFIG_SETTING_TREE_PLACER_NONE :没有 STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :原始的 STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :增强的 +STR_CONFIG_SETTING_ROAD_SIDE :道路车辆: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :选择道路通行方向 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :高度图旋转:{STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :逆时针 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :顺时针 STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :由水面场景得到的高度:{STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :允许调整地图边缘的地块地形:{STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :禁用后,地图边缘将变成海洋 STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}一个或多个北边的地块不是闲置的 STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}一个或多个地图某边的地块不是水域 -STR_CONFIG_SETTING_STATION_SPREAD :车站最大占地: {STRING} +STR_CONFIG_SETTING_STATION_SPREAD :车站占地上限格数: {STRING} STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :设置车站最大占地面积,注意:太大影响游戏速度 STR_CONFIG_SETTING_SERVICEATHELIPAD :直升机在降落平台自动保养:{STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :直升飞机在降落平台自动保养,即使机场没有机库 @@ -1336,17 +1330,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :关闭 STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :左击滚动: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :可用按住鼠标左键再拖拉的方法来进行屏幕滚动. 这对于触摸屏设备特别有用 +STR_CONFIG_SETTING_AUTOSAVE :自动保存: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :选择自动存档时间间隔 + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :使用 {STRING} 形式的文件名存档 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :游戏存档文件名中日期的格式 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :完整时间 (2008年12月31日) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :英式时间 (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :简短形式 (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :当NewGRF没有指定调色板时,使用: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :设置当NewGRF没有指定时的默认调色板 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :默认使用 (D) 色板 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :旧有 (W) 色板 - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :开始新游戏时自动暂停: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :“打开”时,为了让玩家有时间研究地图,开启新游戏自动暂停游戏 STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :暂停时允许: {STRING} @@ -1499,13 +1491,13 @@ STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :使用信号GUI STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :显示一个供选择信号灯的窗口,取代用Ctrl加点击的方式在各种形式信号灯之间切换的方法 STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :默认建造的信号灯类型: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :默认信号灯类型 -STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :普通 -STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :高级 -STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :高级单向 +STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :通过信号灯 +STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :路径信号灯 +STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :单向路径信号灯 STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :在以下信号类型中循环: {STRING} STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :选择用Ctrl+点击的方式切换信号灯时的切换类型 -STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :仅有普通 -STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :仅有高级 +STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :仅有通过信号灯 +STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :仅有路径信号灯 STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :全部 STR_CONFIG_SETTING_TOWN_LAYOUT :新建城镇道路自动延伸: {STRING} @@ -1568,8 +1560,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 / {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :没有 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :初始城市规模因子:{STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :游戏开局时,城市的平均规模相对于普通城镇的比值 -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :在道路建设过程中移除荒废的道路元素:{STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :在道路重建改造过程中,移除荒废的道路元素 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :每 {STRING} 天更新一次统计图 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :指定每次计算货物分配图之间的时间。由于每次重新计算只会处理一个货物分配图元件,因此本设定不代表“每若干日重新计算整个货物分配图”。{}如果此设定赋值越小,則系统需要使用更多处理器时间计算货物分配图。相反,如果此设定赋值越大,則货物被派往新路线所需的时间越长。 @@ -1585,7 +1575,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :假设有交通 STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :装甲货物分配方式:{STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :依原有设定,“装甲货物”包括溫带景观的“贵重品”、寒带景观的“金块”及沙漠景观的“钻石”。一些NewGRF可能有不同设置。{} 假设有交通路线连接甲、乙两站。“对称”指甲站往乙站的货物数量與乙站往甲站的装甲货物数量大致相同。“不对称”指任何一站往另一站的装甲货物数量皆由系统随意决定。“手动”指系统不会自动分配装甲货物的目的地。{} 建议的设定:在溫带景观应使用“对称”,因为银行会互相运送贵重品;而在寒带及沙漠景观应使用“不对称”,因为银行不会把金块或钻石送回矿场。 STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :其他货物分配方式:{STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :假设有交通路线连接甲、乙两站。“对称”指甲站往乙站的货物数量與乙站往甲站的货物数量大致相同。“不对称”指任何一站往另一站的货物数量皆由系统随意决定。“手动”指系统不会自动分配货物的目的地。{}由於货物一般只会被单方向运输,此设定应赋值为“不对称”或“手动”。 +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :如为此设置赋值“不对称”,则任何一站往另一站的货物数量皆由系统随意决定。如为此设置赋值“手动”,则系统不会依据交通路线分配货物的目的地。 STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :分配精确度:{STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :此设定赋值越大,則运算连结图所需的处理器时间越长,您可能会因此见到游戏运行延迟。如果此设定赋值越小,则货物分配的准确度越低,而您可能会发现部份货物沒有被送往您预期它们会到达的目的地。 STR_CONFIG_SETTING_DEMAND_DISTANCE :距离对需求的影晌:{STRING} @@ -1599,19 +1589,19 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :速度单位: STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :在界面上以所选择的单位表示速度 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :英制(英里/小时) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :公制(千米/小时) -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :国际单位(米/秒) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :国际单位制(米/秒) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :运输工具功率单位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :在界面上以所选择的单位表示运输工具的功率 STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :英制(马力) STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :公制(马力) -STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :国际单位(千瓦) +STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :国际单位制(千瓦) STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :重量单位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :在界面上以所选择的单位表示重量 -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :英制(短吨) -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :米制(公吨) -STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :国际单位(千克) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :英制(英吨) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :公制(吨) +STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :国际单位制(千克) STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :体积单位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :在界面上以所选择的单位表示体积 @@ -1623,7 +1613,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :牵引力单位 STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :在界面上以所选择的单位表示牵引力 STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :英制(磅力) STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :公制(千克力) -STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :国际单位(千牛顿) +STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :国际单位制(千牛顿) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :高度单位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :在界面上以所选择的单位表示高度 @@ -1631,27 +1621,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :英制(呎) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :公制(米) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :国际单位制(米) -STR_CONFIG_SETTING_GUI :{ORANGE}界面 STR_CONFIG_SETTING_LOCALISATION :{ORANGE}本地化 -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}建设 +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}图形 +STR_CONFIG_SETTING_SOUND :{ORANGE}音效 +STR_CONFIG_SETTING_INTERFACE :{ORANGE}界面 +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}通用 +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}视点 +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}建设 +STR_CONFIG_SETTING_ADVISORS :{ORANGE}消息/新闻 +STR_CONFIG_SETTING_COMPANY :{ORANGE}公司 +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}财务管理 STR_CONFIG_SETTING_VEHICLES :{ORANGE}车辆 -STR_CONFIG_SETTING_STATIONS :{ORANGE}车站 -STR_CONFIG_SETTING_ECONOMY :{ORANGE}经济 -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}货物分配 -STR_CONFIG_SETTING_AI :{ORANGE}竞争 -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}显示选项 -STR_CONFIG_SETTING_INTERACTION :{ORANGE}互动 -STR_CONFIG_SETTING_SOUND :{ORANGE}音响效果 -STR_CONFIG_SETTING_NEWS :{ORANGE}新闻和消息 -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}信号灯 -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}货物处理 -STR_CONFIG_SETTING_AI_NPC :{ORANGE}电脑玩家 -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}自动更新 -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}维修 +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}物理 STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}经由 -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}列车 -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}城镇 -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}工业设施 +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}限制 +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}灾难/事故 +STR_CONFIG_SETTING_GENWORLD :{ORANGE}生成地图 +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}环境保护 +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}政府监管 +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}城镇 +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}工业设施 +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}货物分配 +STR_CONFIG_SETTING_AI :{ORANGE}竞争 +STR_CONFIG_SETTING_AI_NPC :{ORANGE}电脑玩家 STR_CONFIG_SETTING_PATHFINDER_OPF :原始的 STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1800,7 @@ STR_LIVERY_FREIGHT_TRAM :货运电车 STR_FACE_CAPTION :{WHITE}选择头像 STR_FACE_CANCEL_TOOLTIP :{BLACK}放弃新的头像 STR_FACE_OK_TOOLTIP :{BLACK}使用新的头像 +STR_FACE_RANDOM :{BLACK}随机种子 STR_FACE_MALE_BUTTON :{BLACK}男性 STR_FACE_MALE_TOOLTIP :{BLACK}选择男性的头像 @@ -1863,8 +1856,8 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}选择 # Network server list STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}联机游戏 -STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}已啟用宣传 -STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}选择是否在互联网上宣传此游戏 +STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}发布到互联网 +STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}选择是否将游戏发布到官方服务器列表。发布的话,可以让互联网上的玩家找到你的服务器并加入游戏,否则进行局域网内的游戏。 STR_NETWORK_SERVER_LIST_ADVERTISED_NO :否 STR_NETWORK_SERVER_LIST_ADVERTISED_YES :是 STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}玩家名称: @@ -2272,15 +2265,15 @@ STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :电气化铁路 STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :单轨铁路建设 STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :磁悬浮铁路建设 -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}建设铁轨。按住 Ctrl 键切换建设/移除铁轨。按住 Shift 键显示预计费用。 -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}使用多向路轨工具铺设铁轨。按住 Ctrl 键切换建设/移除铁轨。按住 Shift 键显示预计费用。 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}建设轨道。按住 Ctrl 键切换建设/移除轨道。按住 Shift 键显示预计费用。 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}使用多向路轨工具铺设轨道。按住 Ctrl 键切换建设/移除轨道。按住 Shift 键显示预计费用。 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}建设列车车库(可以购买或维护列车)按住 Shift 键显示预计费用。 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}将铁路变为路点。按住 Ctrl 键允许合并路点。按住 Shift 键显示预计费用。 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}建设火车站。按住 Ctrl 键允许合并站台。按住 Shift 键显示预计费用。 -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}设置铁路信号。按住 Ctrl 键可以切换悬臂式/光板式信号灯{}拖拽可以沿此分支建立信号灯。按住 Ctrl 键可以建立到下一个联结点。{}按住 Ctrl 键单击此按钮可以开关信号灯选择窗口{}按住 Shift 键显示预计费用 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}设置铁路信号。按住 Ctrl 键可以切换悬臂式/电子式信号灯{}拖拽可以沿此分支建立信号灯。按住 Ctrl 键可以建立到下一个联结点。{}按住 Ctrl 键单击此按钮可以开关信号灯选择窗口{}按住 Shift 键显示预计费用 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}建设铁路桥梁。按住 Shift 键显示预计费用。 STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}建设铁路隧道。按住 Shift 键显示预计费用。 -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}切换建设/拆除铁轨、信号灯、路点和车站。按住 Ctrl 键可在移除路点和车站时同时移除铁轨。 +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}切换建设/拆除轨道、信号灯、路点和车站。按住 Ctrl 键可在移除路点和车站时同时移除轨道。 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}转换/升级 铁路类型。按住 Shift 键显示预计费用。 STR_RAIL_NAME_RAILROAD :铁路 @@ -2301,9 +2294,9 @@ STR_STATION_BUILD_RAIL_CAPTION :{WHITE}火车 STR_STATION_BUILD_ORIENTATION :{BLACK}方向 STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}选择火车站的方向 STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}轨道数量 -STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}选择车站月台的数量 -STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}月台长度 -STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}选择车站月台的长度 +STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}选择车站站台的数量 +STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}站台长度 +STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}选择车站站台的长度 STR_STATION_BUILD_DRAG_DROP :{BLACK}拖动模式 STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}使用拖动模式建设车站 @@ -2315,19 +2308,19 @@ STR_STATION_CLASS_WAYP :路标 # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}信号灯 -STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}标准信号(悬臂){}信号灯是多列车铁路系统的必备设施 -STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}入口信号(悬臂){}在下一轨道区间上{}当至少有一个出口信号是绿色时{}此信号亮绿灯 否则亮红灯 -STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}出口信号(悬臂){}运作等同与普通信号{}但是对于触发入口及复合信号灯{}来说是必要的 -STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}复合信号(悬臂){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立树状预警信号灯系统 -STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}双向高级信号(悬臂){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间 -STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}单向高级信号(悬臂){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间 -STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}标准信号(电子){}信号灯是多列车铁路系统的必备设施 -STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}入口信号(电子){}在下一轨道区间上{}当至少有一个出口信号是绿色时{}此信号亮绿灯 否则亮红灯 -STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}出口信号(电子){}运作等同与普通信号{}但是对于触发入口及复合信号灯{}来说是必要的 -STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}复合信号(电子){}复合信号灯可完全担当{}入口信号灯和出口信号灯的功能{}并可建立树状预警信号灯系统 -STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}双向高级信号(电子){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间 -STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}单向高级信号(电子){}高级信号允许列车在一个信号区间内{}预留一条到安全停止位的路径{}因此高级信号可以允许一列以上列车{}同时进入和通过一个信号区间 -STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}信号灯转换工具{}当此按钮按下时再选择信号灯种类{}就可以转换信号灯为选择的种类{}CTRL+点击{}可以把现有信号灯在电子和旗帜间转换 +STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}通过信号灯(悬臂){}是最基本的信号灯,只允许一列车进入该信号灯以后的区间 +STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}入口信号灯(悬臂){}在下一轨道区间上至少有一个出口信号灯是绿色时此信号亮绿灯,否则亮红灯 +STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}出口信号灯(悬臂){}信号显示条件与通过信号灯相同,但是它的状态可以触发入口及复合信号灯 +STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}复合信号灯(悬臂){}复合信号灯是入口和出口信号灯的组合,这样允许建立大型“树状”预警信号灯系统 +STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}路径信号灯(悬臂){}路径信号灯为列车预留一条到安全停车位的路径,而其它路径仍然可以使用,从而允许一列以上的列车同时进入一个信号区间 +STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}单向路径信号灯(悬臂){}路径信号灯为列车预留一条到安全停车位的路径,而其它路径仍然可以使用,从而允许一列以上的列车同时进入一个信号区间 +STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}通过信号灯(电子){}是最基本的信号灯,只允许一列车进入该信号灯以后的区间 +STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}入口信号灯(电子){}当下一轨道区间至少有一个出口信号灯是绿色时,此信号灯亮绿灯,否则亮红灯 +STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}出口信号灯(电子){}信号显示条件与通过信号灯相同,但是它的状态可以触发入口及复合信号灯 +STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}复合信号(电子){}复合信号灯是入口和出口信号灯的组合,这样允许建立大型“树状”预警信号灯系统 +STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}路径信号灯(电子){}路径信号灯为列车预留一条到安全停车位的路径,而其它路径仍然可以使用,从而允许一列以上的列车同时进入一个信号区间 +STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}单向路径信号灯(电子){}路径信号灯为列车预留一条到安全停车位的路径,而其它路径仍然可以使用,从而允许一列以上的列车同时进入一个信号区间 +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}信号灯转换工具{}按下此按钮,可以将已经存在的信号灯转化为选择的信号灯类型,按下CTRL键盘再点击,可以在电子和悬臂型之间转换 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}拖拽布置信号灯的间隔距离 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}减少拖拽布置信号灯的间隔距离 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}增加拖拽布置信号灯的间隔距离 @@ -2564,27 +2557,27 @@ STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :雪地 STR_LAI_CLEAR_DESCRIPTION_DESERT :沙漠 STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :有信号灯的{STRING}铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} 预信号灯轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} 出口信号灯轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} 复合信号灯轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} 普通信号灯轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} 单向信号灯轨道 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} 具有入口信号灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} 具有出口信号灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} 具有组合信号灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} 具有高级信号灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} 具有高级单向信号灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} 同时有入口灯和出口灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} 同时有入口灯和组合灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} 同时有入口灯和高级灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} 同时有入口灯和单向高级灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} 同时有出口灯和组合灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} 同时有出口灯和高级灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} 同时有出口灯和单向高级灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} 同时有组合灯和高级灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} 同时有组合灯和高级单向灯的铁轨 -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} 同时有高级灯和单向高级灯的铁轨 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :有通过信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :有入口信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :有出口信号灯的{STRING} 轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :有复合信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :有路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} 有单向路径信号灯的轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :有通过信号灯和入口信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :有通过信号灯和出口信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :有通过信号灯和复合信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :有通过信号灯和路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :有通过信号灯和单向路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :有入口信号灯和出口信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :有入口信号灯和复合信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :有入口信号灯和路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :有入口信号灯和单向路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :有出口信号灯和复合信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :有出口信号灯和路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :有出口信号灯和单向路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :有复合信号灯和路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :有复合信号灯和单向路径信号灯的{STRING}轨道 +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :有路径信号灯和单向路径信号灯的{STRING}轨道 STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 列车车库 STR_LAI_ROAD_DESCRIPTION_ROAD :公路 @@ -2668,6 +2661,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}保存 STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}以选定的名字保存当前游戏 STR_SAVELOAD_LOAD_BUTTON :{BLACK}载入 STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}载入所选 +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}载入选定的高度图 STR_SAVELOAD_DETAIL_CAPTION :{BLACK}游戏详情 STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}无可用信息 STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2686,10 +2680,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}工业 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}雪线高度: STR_MAPGEN_SNOW_LINE_UP :{BLACK}提高雪线高度 STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}降低雪线高度 -STR_MAPGEN_RANDOM_SEED :{BLACK}随机种子: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}点志这里可以输入一个随机种子 -STR_MAPGEN_RANDOM :{BLACK}随机种子 -STR_MAPGEN_RANDOM_HELP :{BLACK}改变生成地形所用的随机种子 STR_MAPGEN_LAND_GENERATOR :{BLACK}生成地形: STR_MAPGEN_TREE_PLACER :{BLACK}生成树木: STR_MAPGEN_TERRAIN_TYPE :{BLACK}地形特点: @@ -2716,7 +2706,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}高度 STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}地图尺寸: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}请输入随机种子 STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}改变雪线高度 STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}改变游戏开始的日期 @@ -2771,6 +2760,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}上移 STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}将选定的 NewGRF 文件向上移动 STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}下移 STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}将选定的 NewGRF 文件向下移动 +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}更新 +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}更新当前已安装的扩展包 STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}已经安装的 NewGRF 文件列表{}点击可以改变参数 STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}设置参数 @@ -2795,6 +2786,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}没有找 STR_NEWGRF_SETTINGS_DISABLED :{RED}禁用 STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}与此版本OpenTTD不兼容 +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}保存预设值 +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}可用的预设名称,请选择一个来复制到存档列表中 +STR_SAVE_PRESET_TITLE :{BLACK}输入预设名称 +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}保存预设值到当前选定的名称 +STR_SAVE_PRESET_CANCEL :{BLACK}取消 +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}不修改默认设置 +STR_SAVE_PRESET_SAVE :{BLACK}保存 +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}以当前选定的名称保存预设值 + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}调整 NewGRF 参数 STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}关闭 @@ -2853,7 +2854,7 @@ STR_NEWGRF_ERROR_INVALID_ID :尝试使用非 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 含有损坏的图形元素{}所有损坏的图形元素{}将显示为红色的问号(?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :具有多个Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :图像读取时发生越界错误 (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}当前基础图组缺失参数.{}请进行修正 +STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}当前基础图形组缺失部分图片。{}请升级图形组。 STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}当前使用的基础图形包参数有误。{}请更新基础图形包。{}如果你正在使用 {YELLOW}OPENTTD的开发测试版{WHITE},你需要 {YELLOW}相应配套的基础图形包。{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :GRF源文件不可访问 (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} 被 {STRING} 禁用 @@ -3296,16 +3297,19 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :未分组汽车 STR_GROUP_DEFAULT_SHIPS :未分组船只 STR_GROUP_DEFAULT_AIRCRAFTS :未分组飞机 -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}组 - 点击以列出本组所有车辆 +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}组 - 点击一个组别以显示所有隶属此组的车辆。拖曳组别标签以重新排列组别的次序和层级。 STR_GROUP_CREATE_TOOLTIP :{BLACK}创建分组 STR_GROUP_DELETE_TOOLTIP :{BLACK}删除分组 STR_GROUP_RENAME_TOOLTIP :{BLACK}重命名该分组 STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}点击以停止本组自动更新功能的使用 +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}删除分组 +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}确定要删除这个分组及其下级分组么? + STR_GROUP_ADD_SHARED_VEHICLE :添加共享车辆 STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车辆 -STR_GROUP_RENAME_CAPTION :{BLACK}移除分组 +STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组 # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :购买普通列车 @@ -3797,9 +3801,9 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(不卸货且 STR_ORDER_AUTO_REFIT_ANY :可用类型 -STR_ORDER_STOP_LOCATION_NEAR_END :[月台近端] -STR_ORDER_STOP_LOCATION_MIDDLE :[月台中间] -STR_ORDER_STOP_LOCATION_FAR_END :[月台远端] +STR_ORDER_STOP_LOCATION_NEAR_END :[近端] +STR_ORDER_STOP_LOCATION_MIDDLE :[中间] +STR_ORDER_STOP_LOCATION_FAR_END :[远端] STR_ORDER_OUT_OF_RANGE :{RED} (下一个目的地距离过远) @@ -3822,6 +3826,9 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :行驶 (无时 STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :限速 {2:VELOCITY} (无时间表) STR_TIMETABLE_TRAVEL_FOR :途中行驶 {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :开往{STRING} ,限速为 {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :前往 {STRING},以最大速度 {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(停靠 {STRING}, 无时间表) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(驶往 {STRING}, 无时间表) STR_TIMETABLE_STAY_FOR :并且停留 {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :并行驶{STRING} STR_TIMETABLE_DAYS :{COMMA} 天 @@ -4200,15 +4207,15 @@ STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}当前 STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(现金不够) # Rail construction errors -STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}不可能的铁轨组合 +STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}不可能的轨道组合 STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}必须先拆除信号灯 -STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}没有合适的铁轨 -STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}必须先拆除铁轨 +STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}没有合适的轨道 +STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}必须先拆除轨道 STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}这是单行道或这条路被堵死了 STR_ERROR_CROSSING_DISALLOWED :{WHITE}该轨道类型不允许建设平交道 STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}不能在这里设置信号灯…… -STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}不能在这里铺设铁轨…… -STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}不能从这里拆除铁轨…… +STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}不能在这里铺设轨道…… +STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}不能从这里拆除轨道…… STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}不能从这里拆除信号灯…… STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}无法转换此处的信号灯… STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... 这里没有铁路 @@ -4275,6 +4282,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}你已 STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}无法新建分组…… STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}无法删除分组…… STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}无法重命名分组…… +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}无法移动分组... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}无法从该组移除所有运输工具 STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}无法添加运输工具到该组…… STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}无法添加共享指令的运输工具到该组…… @@ -4458,7 +4466,7 @@ STR_INDUSTRY_NAME_COLA_WELLS :可乐泉 STR_INDUSTRY_NAME_TOY_SHOP :玩具店 STR_INDUSTRY_NAME_TOY_FACTORY :玩具工厂 STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :塑料喷泉 -STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :跳跳水工厂 +STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :汽水工厂 STR_INDUSTRY_NAME_BUBBLE_GENERATOR :泡泡小屋 STR_INDUSTRY_NAME_TOFFEE_QUARRY :太妃场 STR_INDUSTRY_NAME_SUGAR_MINE :蔗糖矿 @@ -4557,7 +4565,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COLA_TANKER :可乐罐车 STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_CANDY_VAN :糖果篷车 STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_TOY_VAN :玩具篷车 STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_BATTERY_TRUCK :电池挂车 -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :跳跳汁挂车 +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FIZZY_DRINK_TRUCK :汽水挂车 STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :塑料挂车 STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (电力) STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (电力) diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 5b13f02fc7..efeb9bd02e 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -878,13 +878,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} čaká v depe STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} čaká v leteckom hangári -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} má veľmi málo príkazov v poriadku STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} má neplatný príkaz STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} má dvojité príkazy STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} má nesprávnu stanicu v zozname -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} má v zozname príkazov letisko, ktorého dráha je príliš krátka STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} zastaralo STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} je veľmi zastaralé @@ -1006,11 +1005,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Katalanske STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Automatické ukladanie STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Vyber interval automatickeho ukladania +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Vypnuté STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Každý mesiac STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Každé 3 mesiace STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Každých 6 mesiacov STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Každých 12 mesiacov +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}Jazyk STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Výber jazyka rozhrania @@ -1022,9 +1023,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozlíš STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Voľba rozlíšenia obrazovky STR_GAME_OPTIONS_RESOLUTION_OTHER :iné -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Formát screenshotov -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Zvoľte formát screenshotov - STR_GAME_OPTIONS_BASE_GRF :{BLACK}Základná sada grafiky STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zvoľte sadu grafiky, ktorá má byť použitá STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} chýbajúci/poškodený súbor{P "" "y" "ov"} @@ -1198,9 +1196,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Vypne alebo zap STR_CONFIG_SETTING_CITY_APPROVAL :Postoj mestskej správy k zmenám v ich oblasti: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Zvoľte ako veľmi ovplyvňuje hluk a poškodzovanie prostredia spoločnosťami ich hodnotenie v meste a ich budúce možnosti výstavby v oblasti vlastnenej mestom -STR_CONFIG_SETTING_BUILDONSLOPES :Umožniť výstavbu na svahoch a na pobreží: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Ak je zapnuté, trate a stanice môžu byť stavané na svahoch. Ak je vypnuté, stavanie je možné len na svahoch ktoré su rovnakého smeru ako trate čiže nepotrebujú podporu -STR_CONFIG_SETTING_AUTOSLOPE :Povoliť úpravy terénu pod budovami, koľajami, a pod.: {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Povoliť úpravy terénu pod budovami, koľajami, atď.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Umožňuje úpravy terénu pod budovami a traťami bez potreby ich odstránenia STR_CONFIG_SETTING_CATCHMENT :Povoliť realistickejšiu veľkosť oblasti pokrytia: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Má úchytné plochy rôznych veľkostí pre rôzne typy staníc a letísk @@ -1224,14 +1220,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Zakázať vlako STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 stupňové zákruty vznikajú keď sa spojí horizontálna a vertikálna dráha. Týmto vznikne potreba vlaku "otočiť sa" o 90 stupňov pri prechode touto zákrutou namiesto 45 stupňovího prejazdu ako pri ostatných kombináciách trate. Toto isté platí aj pre lode. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Povoliť spájať stanice nepriamo hraničiace: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Povoluje pridanie časti stanice bez priamej manipulácie s existujúcimi časťami. Použite CTRL+CLICK na položenie novej časti. -STR_CONFIG_SETTING_IMPROVEDLOAD :Použiť vylepšený algoritmus nakladania: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Ak je zapnuté, viaceré vozidlá budú nakladané na na nakládke postupne. Nakládka daľšieho vozidla začne len ak je na nakládke dostatok nákladu pre predošlé vozidlo. -STR_CONFIG_SETTING_GRADUAL_LOADING :Postupné nakladanie vozidiel: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Postupne nakladaj vozidlá s použitím špecifických nakladacích časov, namiesto nakladania všetkého naraz s fixným časom. Čas zavysí od množstva nakladaného nákladu. STR_CONFIG_SETTING_INFLATION :Inflácia: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Povoluje infláciu v ekonomike, kedy náklady stúpaju rýchlejšie ako platby za prepravy. -STR_CONFIG_SETTING_SELECTGOODS :Vykladať náklad len v stanici kde je dopyt: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Dovezie len náklad pre stanicu ktorý bol vyžadovaný na dovezenie. Tým sa predíde zlému hodnoteniu prepravy pre stanice. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximálna dĺžka mosta: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximálna dĺžka na budovanie mostov STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximálna dĺžka tunela: {STRING} @@ -1259,8 +1249,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Zvoľte kde zas STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :na začiatku STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :v strede STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :na konci -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Cestné vozidlá stoja v rade (podľa množstva nákladu): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Prikáže cestnému vozidlu čakať pred obsadeným nákladiskom dokiaľ nie je voľné miesto na nakládku. STR_CONFIG_SETTING_AUTOSCROLL :Posúvať pohľad, keď je kurzor myši na okraji okna: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Ak je povolené, zobrazenia sa budú meniť keď je myš pri okraji okna STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Vypnuté @@ -1291,10 +1279,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Povoliť prejaz STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Povoliť budovanie "prejazdných" nakládok a zastávok na cestách vlastnených mestom. STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Výstavba zastávok na cestách vlastnených konkurenciou: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Povoliť budovanie "prejazdných" nakládok a zastávok na cestách vlastnených iným hráčom. -STR_CONFIG_SETTING_ADJACENT_STATIONS :Povoliť stavbu oddelených staníc: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Povoliť aby sa rozdielne typy staníc mohli dotýkať jedna druhej. -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Povoliť viaceré NewGRF sety s rušňami: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompaktibilita so starými NewGRF. Vypnite len v prípade že viete čo robíte. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmena nastavenia nie je možná, pokiaľ sa tu nachádzajú vozidlá STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Správa infraštruktúry: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Ak je zapnuté, infraštruktúra generuje výdavky na údržbu. Poplatky rastú proporcionálne s veľkosťou spoločnosti, čo ovplyvňuje viac veľké spoločnosti ako malé. @@ -1315,10 +1299,10 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Nikdy nepresta STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Ak je zapnuté, všetky vozidlá zostanú k dispozícii navždy. STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Automatická obnova dopravných prostriedkov, keď sú staré: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Ak je zapnuté, vozidlá blížiace sa ku koncu svojej životnosti budú automaticky vymenené ak sú splnené podmienky na výmenu. -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Automatická obnova ak je vozidlo {STRING} maximálnej zivotnosti +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Automatická obnova ak je vozidlo {STRING} maximálnej životnosti STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relatívny vek kedy je vozidlo považované za staré a preto je potrebná automatická obnova STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mesiac pred -STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mesiac po +STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mesiac{P "" "e" "ov"} po STR_CONFIG_SETTING_AUTORENEW_MONEY :Potrebné financie pre automatickú obnovu vozidiel: {STRING} STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimálna suma ktorá musí zostať na účte pred plánovanou automatickou výmenou vozidiel. STR_CONFIG_SETTING_ERRMSG_DURATION :Trvanie zobrazenia chybovej hlášky: {STRING} @@ -1333,27 +1317,35 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Zobrazí popul STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Hrúbka čiar v grafe: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Hrúbka čiar v grafe. Tenké čiary sú presnejšie, hrubšie zase lepšie viditeľné. +STR_CONFIG_SETTING_LANDSCAPE :Krajina: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR :Generátor uzemia: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Pôvodný STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximálna vzdialenosť rafinérií od okrajov mapy: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE :Typ terénu: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Hustota priemyslu: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Nastavte, koľko má byť vygenerovaného priemyslu a aká úroveň by mala byť zachovaná v priebehu hry +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximálna vzdialenosť od okrajov mapy pre rafinérie: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinérie ropy sú vybudované len na okrajoch mapy, tzn na pobreží pri ostrovných mapách STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Úroveň čiary snehu: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Určuje v akej výške začína sneh v subarktickej krajine. Sneh tiež ovplyvňuje generáciu priemyslu a požiadaviek rastu mesta STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Členitosť terénu (len pre TerraGenesis) : {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Veľmi rovný STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Rovný STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Členitý STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Veľmi členitý +STR_CONFIG_SETTING_RIVER_AMOUNT :Množstvo riek: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Vyberte koľko riek sa má generovať STR_CONFIG_SETTING_TREE_PLACER :Algoritmus umiestňovania stromov: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Vyberte rozloženie stromov na mape: 'Pôvodné' - stromy budú rovnomerne rozptýlené, 'Zdokonalené' - budú v skupinách STR_CONFIG_SETTING_TREE_PLACER_NONE :Žiadny STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Pôvodný STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Vylepšený +STR_CONFIG_SETTING_ROAD_SIDE :Cestné vozidlá: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Vyberte jazdnú stranu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Orientácia výškovej mapy: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Proti smeru hodinových ručičiek STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :V smere hodinových ručičiek STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Výšková uroveň pre rovinatý scenár: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Povoliť formovanie povrchu kociek na okrajoch mapy: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Ak je vypnuté, okraje mapy budú vždy oceán STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Jedna alebo viacero kociek na severnom okraji nie sú prázdne STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedna alebo viacero kociek na jedom z okrajov nie je voda @@ -1404,17 +1396,15 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Žiadna STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Posúvať pohľad ľavým tlačidlom myši: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Povolí posúvanie mapy ĽAVÝM tlačítkom myši. Toto je obzvlášť užitočné pri použití dotykového displeja. +STR_CONFIG_SETTING_AUTOSAVE :Automatické ukladanie: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Vyberte interval pre automatické ukladanie hry + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Použiť {STRING} dátum v názve uloženej hry STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formát dátumov v názvoch uložených hier. STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dlhý (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :krátky (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Štandardná paleta predpokladá pre NewGRFy paletu neuvedenú: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Pôvodná paleta nastavenia pre NewGRF keď nie je zadané ktoré NewGRF je potrebné -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Základná (D) paleta -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Dedená (W) paleta - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatická pauza pri štarte novej hry: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Ak je zapnuté, hra sa automaticky zapauzuje ked začne nová hra. Toto umožňuje lepšie preskúmanie mapy hry pred začatím. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Ak je hra pozastavená povol: {STRING} @@ -1423,7 +1413,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :žiadne akcie STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :všetky nekonštrukčné akcie STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :všetky akcie okrem úpravy terénu STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :všetky činnosti -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Použit vylepšený zoznam vozidiel: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Použit skupiny v zozname vozidiel: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Povolí použitie rozšíreného zoznamu vozidiel pre skupiny STR_CONFIG_SETTING_LOADING_INDICATORS :Zobraziť ukazovatele nakladania/vykladania: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Zvoľte či indikátory nakladania/vykladania budú zobrazené nad vozidlom. @@ -1438,7 +1428,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Typ železnice STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :prvé dostupné STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :posledné dostupné STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :najpoužívanejšie -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Zobraziť rezervované trate: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Zobraziť rezervovácia pre trate: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Dajte obsadenej trati inú farbu na pomoc pri problémoch s vlakmi odmietajúcimi vstúpiť na časť danej trate STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Zachovať stavebné nástroje aktívne aj po použití: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Zachovaj okno s nástrojmi na stavbu mostov/tunelov otvorené aj po použití @@ -1464,13 +1454,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Prehrávať zuk STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Zakázať výstavbu infraštruktúry ak nieje dostupné žiadne vhodné vozidlo: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Ak je zapnuté, infraštruktúra je k dispozícii len ak su k nej pripojené vozidlá. Toto predchádza plýtvaniu peniazmi a časom pri nepoužiteľnej infraštruktúre. -STR_CONFIG_SETTING_MAX_TRAINS :Maximálny počet vlakov hráča: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Maximálny počet vlakov na spoločnosť: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Maximálny počet vlakov ktorý môže spoločnosť vlastniť. -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximálny počet automobilov hráča: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maximálny počet automobilov na spoločnosť: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Maximálny počet automobilov ktorý môže spoločnosť vlastniť. -STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximálny počet lietadiel hráča: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Maximálny počet lietadiel na spoločnosť: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Maximálny počet lietadiel ktorý môže spoločnosť vlastniť. -STR_CONFIG_SETTING_MAX_SHIPS :Maximálny počet lodí hráča: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Maximálny počet lodí na spoločnosť: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maximálny počet lodí ktorý môže spoločnosť vlastniť. STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Zakázať vlaky pre počítač: {STRING} @@ -1562,7 +1552,7 @@ STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} diel(ov STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Pri ťahaní, zachovaj fixnú medzeru medzi semafórmi: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Zvoľte ako sa zachová umiestňovanie semafórov pri CTRL+posun. Ak je vypnuté, semafóry sú umiestnené okolo tunelov alebo mostov aby sa zabránilo dlhým úsekom bez signalizácie. Ak je zapnuité, semafóry sú umiestňované každých N dielov čím sa umožní lepšie rozloženie na paralelných tratiach. STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Automaticky stavať semafóry namiesto signálov pred rokom: {STRING} -STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Zvoľte rk o ktorého sa budú používať elekrické semafór na tratach. Pred týmto rokom sa budú používať staré ne-elektrické návestidlá. Funkcionalita je ale stále rovnaká len vzhľad je iný. +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Zvoľte rok od ktorého sa budú používať elekrické semafóry na tratiach. Pred týmto rokom sa budú používať staré ne-elektrické návestidlá. Funkcionalita je ale stále rovnaká len vzhľad je iný. STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Zapnúť grafické rozhranie stavby signálov: {STRING} STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Zobrazí okno s možnosťou výberu semafóru namiesto rotačnej voľby klikaním pomocou CTRL. STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Štandardne budovaný typ signálov: {STRING} @@ -1636,8 +1626,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 z {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :žiadne STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Násobok pociatocnej velkosti mesta: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Priemerná veľkosť veľkomiest v porovnaní k mestám na začiatku hry. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Pri rekonštrukcii ciest odstrániť nezmyselné časti: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Odstráň "mŕtve" konce ciest počas financovanej rekonštrukcie ciest. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Aktualizovať distribučný graf každ{P 0:2 "ý" "é" "ých"} {STRING} {P 0:2 "deň" "dni" "dní"} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Čas medzi nasledujúcimi prepočtami grafu spojení. Každý prepočet počíta plány pre jednu súčasť grafu. To znamená, že hodnota X pre toto nastavenie neznamená sa celý graf aktualizuje každých X dní, ale iba jedna súčasť. Čím menej nastavíte, tým viac procesorového času bude potrebného na výpočet. Čím viac nastavíte, tým dlhšie bude trvať, kým sa začne distribuovať na nové trasy. @@ -1699,27 +1687,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperialne (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrické (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Rozhranie STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalizácia -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Výstavba +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafika +STR_CONFIG_SETTING_SOUND :{ORANGE}Zvuk +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Rozhranie +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Všeobecné +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Náhľady +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Výstavba +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novinky / Varovania +STR_CONFIG_SETTING_COMPANY :{ORANGE}Spoločnosť +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Účtovníctvo STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozidlá -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stanice -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomika -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribúcia nákladu -STR_CONFIG_SETTING_AI :{ORANGE}Konkurenti -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Možnosti zobrazenia -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Chovanie -STR_CONFIG_SETTING_SOUND :{ORANGE}Zvukové efekty -STR_CONFIG_SETTING_NEWS :{ORANGE}Novinky a správy -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signály -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Manipulácia s tovarom -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Počítačový hráči -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatická obnova -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servis +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fyzika STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Smerovanie -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vlaky -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Mestá -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Priemysel +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Obmedzenia +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofy / Nehody +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generovanie sveta +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Prostredie +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Miestne správy +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Mestá +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Priemysel +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribúcia nákladu +STR_CONFIG_SETTING_AI :{ORANGE}Konkurenti +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Počítačový hráči STR_CONFIG_SETTING_PATHFINDER_OPF :Pôvodný STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1876,6 +1866,7 @@ STR_LIVERY_FREIGHT_TRAM :Nákladná elek STR_FACE_CAPTION :{WHITE}Výber tváre STR_FACE_CANCEL_TOOLTIP :{BLACK}Zrušiť výber novej tváre STR_FACE_OK_TOOLTIP :{BLACK}Potvrdiť výber tváre +STR_FACE_RANDOM :{BLACK}Nový kód STR_FACE_MALE_BUTTON :{BLACK}Muž STR_FACE_MALE_TOOLTIP :{BLACK}Výber mužských tvárí @@ -1990,24 +1981,24 @@ STR_NETWORK_START_SERVER_CAPTION :{WHITE}Spustiť STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Názov hry: STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}Názov hry, ktorý uvidia ostatní v zozname sieťovych hier -STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Nastavit heslo +STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Nastaviť heslo STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Zabezpeč hru heslom, ak nechceš povoliť verejný prístup STR_NETWORK_START_SERVER_UNADVERTISED :Nie STR_NETWORK_START_SERVER_ADVERTISED :Áno STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klient{P "" i ov} -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximálny pocet klientov: -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Zvol maximalny pocet klientov. Moze sa ich pripojit aj menej. -STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} spolocnost{P "" i í} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Max. pocet spolocnosti: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maximálny počet klientov: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Zvoľ maximálny počet klientov. Môže sa ich pripojiť aj menej. +STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} spoločnost{P "" i í} +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maximálny počet spoločností: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Obmedzenie servera na maximálny počet spoločností -STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} pozorovatel{P "" ia ov} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Max. pocet divakov: +STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} pozorovate{P "ľ" lia ľov} +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maximálny počet divákov: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Obmedzenie servera na maximálny počet divákov -STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Jazyk hracov: -STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Aby ostatni hraci vedeli, akym jazykom sa bude hovorit na serveri. +STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Jazyk, ktorým sa hovorí: +STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Aby ostatní hráči vedeli, akým jazykom sa bude hovoriť na serveri. -STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}Zadajte názov sietovej hry +STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}Zadajte názov sieťovej hry # Network game languages ############ Leave those lines in this order!! @@ -2755,10 +2746,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Počet p STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Výška línie snehu: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Zvýšiť výšku snehovej čiary STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Znížiť výšku snehovej čiary -STR_MAPGEN_RANDOM_SEED :{BLACK}Náhodný kód: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikni pre zadanie náhodného kódu -STR_MAPGEN_RANDOM :{BLACK}Nový kód -STR_MAPGEN_RANDOM_HELP :{BLACK}Zmeniť náhodný kód pre generovanie terénu STR_MAPGEN_LAND_GENERATOR :{BLACK}Generátor krajiny: STR_MAPGEN_TREE_PLACER :{BLACK}Generátor stromov: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Typ terénu: @@ -2785,7 +2772,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Názov v STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Velkost: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Zadajte náhodný kód STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Zmeniť výšku línie snehu STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Zmenit rok zaciatku hry @@ -2840,6 +2826,7 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Vyššie STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Posunút vybraný NewGRF súbor v zozname vyššie STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Nižšie STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Posunút vybraný NewGRF súbor v zozname nižšie +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Aktualizovať STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Zoznam inštalovaných NewGRF súborov. STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Nastavit parametre @@ -2864,6 +2851,10 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Príslušn STR_NEWGRF_SETTINGS_DISABLED :{RED}Nedostupný STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Nekompatibilné s touto verziou OpenTTD +# NewGRF save preset window +STR_SAVE_PRESET_CANCEL :{BLACK}Zrušiť +STR_SAVE_PRESET_SAVE :{BLACK}Uložiť + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Zmeniť NewGRF parametre STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Zatvoriť @@ -3216,7 +3207,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Spolu: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Zostatok na účte v banke STR_FINANCES_LOAN_TITLE :{WHITE}Úver -STR_FINANCES_MAX_LOAN :{WHITE}Úverový limit: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Maximálny úver: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Požičať {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Zvýšiť veľkosť úveru. Crtl+klik požičia koľko sa dá @@ -3371,6 +3362,9 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Zrušiť STR_GROUP_RENAME_TOOLTIP :{BLACK}Premenovať vybranú skupinu STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni pre znemožnenie automatického nahradzovania v skupine +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Vymazať skupinu +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Ste si istý, že chcete vymazať túto skupinu a jej podskupiny? + STR_GROUP_ADD_SHARED_VEHICLE :Pridat zdielané vozidlá STR_GROUP_REMOVE_ALL_VEHICLES :Odstrániť všetky vozidlá @@ -3851,7 +3845,7 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Nevykladaj a STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Nevykladaj a čakaj na plné naloženie akéhokoľvek nákladu) STR_ORDER_NO_UNLOAD_NO_LOAD :(Žiadné vykládanie a nakládanie) -STR_ORDER_AUTO_REFIT :(Automaticky naplň do {STRING}) +STR_ORDER_AUTO_REFIT :(Upraviť na {STRING}) STR_ORDER_FULL_LOAD_REFIT :(Plné naloženie s automatickým nakladaním do {STRING}) STR_ORDER_FULL_LOAD_ANY_REFIT :(Plné naloženie akéhokoľvek nákladu s automatickým nakladaním do {STRING}) STR_ORDER_UNLOAD_REFIT :(Vyložiť a zobrať náklad s automatickým nakladaním do {STRING}) @@ -3891,6 +3885,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Cesta (neurcen STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Cestovanie nanajvýš s {2:VELOCITY} (bez cestovného plánu) STR_TIMETABLE_TRAVEL_FOR :Cesta do {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Cestovanie na {STRING} s {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Cesta ({STRING}, nerozvrhnuté) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Cesta (for {STRING}, nerozvrhnuté) pri najviac {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(prestávka {STRING}, nerozvrhnuté) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(cesta {STRING}, nerozvrhnuté) STR_TIMETABLE_STAY_FOR :prestávka {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :a cestuj {STRING} STR_TIMETABLE_DAYS :{COMMA} d{P en ni ní} @@ -4344,6 +4342,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... už STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Nie je možné vytvoriť skupinu... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Nie je možné zrušiť túto skupinu... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Nie je možné premenovať skupinu... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Nie je možné nastaviť rodičovskú skupinu... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nie je možné odstrániť všetky vozidlá z tejto skupiny... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nie je možné pridať vozidlo do tejto skupiny STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Nie je možné pridať zdielané vozidlo do skupiny diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 193b937706..386c647c85 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -963,13 +963,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} čaka v ladjedelnici STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} čaka v letališkem hangarju -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} ima premalo ukazov na urniku STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} ima prazen ukaz STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} ima podvojene ukaze STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} ima eno neveljavno postajo na urniku -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} se stara STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} podlega iztrošenosti @@ -1107,9 +1105,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Format zajema slike -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Izberi format zajema slike - 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 ""} @@ -1277,8 +1272,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Preklop med poj STR_CONFIG_SETTING_CITY_APPROVAL :Odnos mestnega sveta do prestrukturiranja površine: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Nastavitev nivoja hrupa in posameznih posegov podjetja na oceno v mestu in nadaljnjo gradnjo -STR_CONFIG_SETTING_BUILDONSLOPES :Dovoli gradnjo hiš na nagibih ali obali: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Če je omogočeno, so lahko tračnice in postaje zgradjene na večini pobočij. Če je onemogočeno, so dovoljene le na pobočjih, ki ustrezajo smeri tračnic in zato ne zahtevajo temelje. STR_CONFIG_SETTING_AUTOSLOPE :Dovoli oblikovanje terena pod objekti, tiri, ipd. (samonaklon): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dovoli spremembo terena pod zgradbami in tiri brez odstranitve STR_CONFIG_SETTING_CATCHMENT :Dovoli bolj resnični območni zajem postaj: {STRING} @@ -1303,14 +1296,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Prepreči vlako STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 stopinjski zavoj se izvrši, ko je vodoravni odsek proge tik pred navpičnim, tako da vlak, ko prevozi rob plošče zavije za 90 namesto klasičnih 45 stopinj. To vpliva tudi na zavoje ladij. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Dovoli združevanje postaj, ki niso v dotiku: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Dovoli dograjevanje postaje brez direktnega dotika obstoječih delov. Ctrl+klik za postavitev novih delov. -STR_CONFIG_SETTING_IMPROVEDLOAD :Uporabi izboljšan algoritem polnjenja: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Če je omogočeno, se vozila polnijo sekvenčno. Drugo se začne polniti, ko je prvo polno, v kolikor sta dve ali več hkrati na postaji. -STR_CONFIG_SETTING_GRADUAL_LOADING :Postopno polni vozila: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Postopno polnjenje vozil s specifičnim časom polnjenja, namesto vseh enako hitro in odvisno le od količine tovora STR_CONFIG_SETTING_INFLATION :Inflacija: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Omogoči inflacijo ekonomije, kjer se stroški zvišajo rahlo hitreje kot plačila -STR_CONFIG_SETTING_SELECTGOODS :Dostavi tovor postaji le ob povpraševanju: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Dostavi postaji le tovor, ki je zahtevan od vozila. To prepreči slabe ocene za tovore, ki niso prevažani STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Največja dolžina mostov: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Največja dolžina gradnje mostov STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Največja dolžina predorov: {STRING} @@ -1338,8 +1325,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Mesto ustavljan STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :začetni strani STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :sredini STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :koncu -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Cestna vozila v vrsti (s quantum efekti): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Cestno vozila naj čaka pred zasedenim postankom/oviro dokler ni odstranjena. STR_CONFIG_SETTING_AUTOSCROLL :Premakni okno, ko je miška na robu: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Če je omogočeno, bo miška na robu slike sama premikala pogled naprej STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Onemogočeno @@ -1370,10 +1355,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Dovoli prehodne STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Dovoli gradnjo pretočnih postaj na cesti, ki je v lasti mesta. STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Dovoli prevoženja postaj na tekmečevih cestah: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Dovoli gradnjo pretočnih postaj na cesti, ki je v lasti druge družbe. -STR_CONFIG_SETTING_ADJACENT_STATIONS :Dovoli gradnjo združljivih postaj: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Dovoli stikanje različnih postaj. -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Omogoči večkratni set NewGRF pogona: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Skladna možnost za stare NewGRF-je. Ne izklopi, razen če točno veš kaj delaš. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Sprememba teh nastavitev ni mogoča, ko so tam vozila STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Vzdrževanje infrastrukture: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Če je omogočeno, infrastruktura upošteva vzdrževalne stroške, ki rastejo skozi čas proporcionalno z velikostjo omrežja. @@ -1431,8 +1412,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Zasuk višinske STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Nasprotno urini smeri STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Urina smer STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Višina, do katere sega raven tip terena: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Omogoči oblikovanje terena na robovih ozemlja: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Če je onemogočeno, bodo na robu ozemlja vedno oceani STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Eno ali več polj na severnem robu ni praznih STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Eno ali več polj na robu ni vodnatih @@ -1489,11 +1468,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :dolg (31st Dec STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kratek (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Privzeti nabor za NewGRF-je brez izbranega nabora: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Privzeta paleta za uporabo z NewGRF-ji, kateri ne zahevajo specifične. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Privzeta (D) paleta -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Stara (W) paleta - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Avtomatsko pavziraj ob zagonu nove igre: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Če je omogočeno, se igra avtomatsko pavzira ob zagonu nove igre, za preučitev ozemlja. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Med pavzo dovoli: {STRING} @@ -1715,8 +1689,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 na {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Noben STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Začetni faktor rasti mesta: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Povprečna velikost mest relativno gledano na normalna naselja na začetku igre. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Odstrani absurdne cestne elemente med gradnjo cest: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Odstrani slepe odseke cest med financirano obnovo cest. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Posodobi graf razporeda v razmaku {STRING} d{P 0:2 an neva ni ni} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Čas med ponovnimi izračuni za L-G. Vsak preračun izračuna načrte ene komponente grafa. To pomeni da vrednost X za to nastavitev ne pomeni, da bo celotni graf posodobljen vsakih X dni ampak samo nekatere komponente bodo. Krajša nastavitev pomeni več moči za izračun. Daljša pomeni, da bo pozneje tovor razporejen na nove poti. @@ -1778,27 +1750,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperične (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrične (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Vmesnik STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalno -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Gradnja -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila -STR_CONFIG_SETTING_STATIONS :{ORANGE}Postaje -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomija -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Razpored tovora -STR_CONFIG_SETTING_AI :{ORANGE}Tekmeci -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Prikaži možnosti -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaktivnost STR_CONFIG_SETTING_SOUND :{ORANGE}Zvočni učinki -STR_CONFIG_SETTING_NEWS :{ORANGE}Novice in sporočila -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signali -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Upravljanje tovora -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računalniški igralci -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Samoobnova -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servisiranje +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Vmesnik +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Gradnja +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vozila STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Usmerjanje -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Vlaki -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Mesta -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Mesta +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrije +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Razpored tovora +STR_CONFIG_SETTING_AI :{ORANGE}Tekmeci +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Računalniški igralci STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1955,6 +1917,7 @@ STR_LIVERY_FREIGHT_TRAM :Tovorni tramvaj STR_FACE_CAPTION :{WHITE}Izbira obraza STR_FACE_CANCEL_TOOLTIP :{BLACK}Prekliči izbiro novega obraza STR_FACE_OK_TOOLTIP :{BLACK}Sprejmi nov obraz +STR_FACE_RANDOM :{BLACK}Naključno STR_FACE_MALE_BUTTON :{BLACK}Moški STR_FACE_MALE_TOOLTIP :{BLACK}Izberi moške slike @@ -2833,10 +2796,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Število STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Višina snežne meje: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Premik snežne meje eno enoto višje STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Premik snežne meje eno enoto nižje -STR_MAPGEN_RANDOM_SEED :{BLACK}Naključno seme: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klikni za vnos naključnega semena -STR_MAPGEN_RANDOM :{BLACK}Naključno -STR_MAPGEN_RANDOM_HELP :{BLACK}Spremeni naključno seme za ustvarjanje terena STR_MAPGEN_LAND_GENERATOR :{BLACK}Ustvarjalec terena: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritem dreves: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tip terena: @@ -2863,7 +2822,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ime viš STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Velikost: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Vpiši naključno seme STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Spremeni višino snežne meje STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Spremeni začetno leto @@ -3448,6 +3406,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Izbriši STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenuj izbrano skupino STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni za zaščito skupine pred splošno samoobnovo + STR_GROUP_ADD_SHARED_VEHICLE :Vsa izmenljiva vozila STR_GROUP_REMOVE_ALL_VEHICLES :Odstrani vsa vozila diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index f31ec46477..c2b76035ac 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -811,13 +811,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} está esperando en el astillero STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} está esperando en el hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} tiene muy pocas órdenes en la lista STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tiene una orden vacía STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tiene órdenes duplicadas STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tiene una estación inválida en sus órdenes -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} tiene en sus órdenes un aeropuerto con una pista demasiado corta STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} se está volviendo viejo STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} se está volviendo muy viejo @@ -939,11 +938,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :Catalán STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Autoguardado STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Selección del intervalo entre guardados automáticos del juego +############ start of autosave dropdown STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF :Desactivado STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Cada mes STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_3_MONTHS :Cada 3 meses STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :Cada 6 meses 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 @@ -955,9 +956,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleccione la resolución de pantalla a usar STR_GAME_OPTIONS_RESOLUTION_OTHER :Otras -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Formato de captura de pantalla -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Seleccione el formato de captura de pantalla a utilizar - 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} fichero{P "" s} perdido{P "" s} o corrupto{P "" s} @@ -1131,9 +1129,7 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa desastre STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de los pueblos frente a reestructuraciones en su zona: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Permite elegir la medida en la que el ruido y el daño ambiental causado por las compañías afecta a su calificación local en los pueblos -STR_CONFIG_SETTING_BUILDONSLOPES :Permitir la construcción en cuestas y orillas: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Si se habilita, las vías y estaciones pueden construirse sobre pendiente. Si se deshabilita, las vías solamente pueden construirse sobre pendientes que sigan la misma dirección -STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificar terreno bajo carreteras, raíles, etc.: {STRING} +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 @@ -1157,14 +1153,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Prohibir a tren 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. Esto también se aplica al radio de giro de los barcos 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+Click al añadir las nuevas partes -STR_CONFIG_SETTING_IMPROVEDLOAD :Usar algoritmo mejorado de carga: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Si se activa, cuando haya múltiples vehículos en una estación se cargarán secuencialmente. Los vehículos solamente empezarán a cargar cuando haya suficiente carga esperando como para llenar por completo al vehículo anterior -STR_CONFIG_SETTING_GRADUAL_LOADING :Cargar vehículos gradualmente: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Carga los vehículos de forma gradual usando duraciones específicas de cada tipo de vehículo, en lugar de cargar todo a la vez en un tiempo fijo que depende solamente de la cantidad de carga a tomar 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_SELECTGOODS :Entregar mercancía a una estación sólo si hay demanda: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Solamente se lleva carga a las estaciones cuando un vehículo la haya solicitado. Esto evita malos rendimientos para las cargas que no tienen servicio cada una estación STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Longitud máxima de puentes: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Máxima longitud permitida para puentes STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Longitud máxima de túneles: {STRING} @@ -1192,8 +1182,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Permite selecci STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :principio STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :centro STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :lejos del fin -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Cola de vehículos de carretera (con efecto cuantificador): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Hace que los vehículos de carretera esperen en frente de las paradas ocupadas hasta que queden libres STR_CONFIG_SETTING_AUTOSCROLL :Desplazar ventana mediante el cursor en los bordes: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Cuando esta opción está activa, las vistas empezarán a desplazarse cuando el ratón esté cerca del borde de la ventana STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Desactivado @@ -1224,10 +1212,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Permite constru STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Permite construir estaciones de carretera de paso en carreteras que sean propiedad de pueblos 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_ADJACENT_STATIONS :Permitir construcción de estaciones contiguas : {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Permite que diferentes estaciones estén en contacto -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Permitir múltiples NewGRFs de vehículos: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Opción de compatibilidad para NewGRFs antiguos. No debe de desactivarse, ¡a menos que sepas exactamente lo que estás haciendo! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Cambiar esta opción no es posible cuando ya 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 @@ -1248,7 +1232,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Los vehículos 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 que se acerquen al final de su vida útil serán reemplazados automáticamente cuando las condiciones de renovación se cumplan -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Renovar automáticamente cuando el vehículo tenga {STRING} años como máximo +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_MONTHS_VALUE_BEFORE :{COMMA} mes{P 0 "" es} antes STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mes{P 0 "" es} después @@ -1266,27 +1250,41 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Muestra el núm STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosor de las líneas en los gráficos: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosor de las líneas en los gráficos. Una línea fina es más precisa, una línea más gruesa es más fácil de distinguir +STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Los terrenos definen escenarios con diferentes tipos de carga y requisitos de crecimiento de pueblos. Es posible modificarlos empleando NewGRF y scripts de juego STR_CONFIG_SETTING_LAND_GENERATOR :Generador terreno: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :El generador original depende del tipo de gráficos base, y crea formas de terreno fijas. TerraGenesis es un generador basado en ruido Perlin que permite un mayor control de configuración STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original 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 de industria: {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_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_ROUGHNESS_OF_TERRAIN :Aspereza del terreno (Sólo TerraGenesis) : {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 pueblos +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 colinas: los terrenos más planos tienen un número menor de colinas, agrupadas. 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_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_TREE_PLACER :Algoritmo de colocación de árboles: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Permite escoger la distribución de árboles en el mapa. 'Original' coloca los árboles distribuidos de forma uniforme, 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_HEIGHTMAP_ROTATION :Rotación de Mapa de altura: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :A la izquierda STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Sentido horario STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :El nivel de la altura del mapa plano tiene: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Habilitar la modificación del terreno en los bordes del mapa: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Si se deshabilita, los bordes del mapa siempre serán océano STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Una o más casillas del borde norte no están vacías STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Una o más casillas en uno de los bordes no son agua @@ -1307,7 +1305,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Desplazamiento STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controla la forma en la que la vista principal se mueve a una posición específica como resultado de hacer click en el mapa o al enviar la orden de moverse a un objeto determinado del mapa. Si se activa, la vista se mueve de forma suave. Si se desactiva, la vista se mueve directamente al destino STR_CONFIG_SETTING_MEASURE_TOOLTIP :Mostrar medidas usando las herramientas de construcción: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Muestra distancias en número de casillas y las diferencias de altura al arrastrar durante operaciones de construcción -STR_CONFIG_SETTING_LIVERIES :Ver estaciones de la empresa: {STRING} +STR_CONFIG_SETTING_LIVERIES :Ver tipos específicos para cada vehículo: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Controla el uso de esquemas de color específicos para vehículos (en oposición a los específicos para compañías) STR_CONFIG_SETTING_LIVERIES_NONE :Ninguno STR_CONFIG_SETTING_LIVERIES_OWN :Propia empresa @@ -1337,17 +1335,13 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desactivado STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activa el deslizamiento del mapa al arrastrarlo con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Usar formato de fecha {STRING} para los nombres de partidas guardadas STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formato de la fecha en el nombre de partidas guardadas STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :largo (31 Dic 2008) 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_NEWGRF_DEFAULT_PALETTE :Paleta por defecto a asumir para NewGRF que no especifiquen una paleta: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Paleta a usar por defecto para NewGRFs que no especifican la paleta que necesitan -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Paleta por defecto (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Paleta antigua (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausar automáticamente al comenzar un juego nuevo: {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} @@ -1356,7 +1350,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Ninguna acción STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas las acciones salvo las de construcción 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 lista avanzada de vehículos: {STRING} +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_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 @@ -1371,7 +1365,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de ferroca 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: {STRING} +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_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 @@ -1399,7 +1393,7 @@ STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Deshabilitar co STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Cuando se activa, solamente se pueden construir infraestructuras si hay vehículos disponibles para ellas, previniendo 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 vehículos por empresa: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Número máximo de automóviles 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 @@ -1569,8 +1563,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 de cada {COMM STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ninguna STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Multiplicador inicial tamaño de ciudad: {STRING} 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_MODIFIED_ROAD_REBUILD :Quitar absurdos de la carretera durante su construcción: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Elimina carreteras sin salida durante la reconstrucción de carreteras de los pueblos STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Actualizar el grafo de distribución cada {STRING} día{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Periodo de tiempo entre cálculos del grafo de distribución consecutivos. Esta opción se refiere a los cálculos para cada uno de los componentes del grafo, por lo cual fijar un valor no quiere decir que el grafo completo se actualizará tras ese número de días. Cuanto menor sea, mayor tiempo de CPU será necesario para calcular el grafo de distribución. Cuanto mayor sea, más tardará el grafo de distribución en adaptarse a nuevas rutas @@ -1586,7 +1578,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :En una distribu 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 los objetos de valor del clima templado, los diamantes del clima subtropical o el oro del clima subártico. Los NewGRFs pueden modificar las cargas BLINDADAS presentes en una partida. 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 a asimétrica o manual al jugar en subártico o subtropical. En el clima templado es posible escoger simétrica ya que los bancos pueden enviar de vuelta objetos de valor STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modo de distribución para otras clases de carga: {STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :La clase de carga BLINDADA contiene los objetos de valor del clima templado, los diamantes del clima subtropical o el oro del clima subártico. Los NewGRFs pueden modificar las cargas BLINDADAS presentes en una partida. 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 a asimétrica o manual al jugar en subártico o subtropical. En el clima templado es posible escoger simétrica ya que los bancos pueden enviar de vuelta objetos de valor +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 grafo 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_DEMAND_DISTANCE :Efecto de la distancia en la demanda: {STRING} @@ -1632,27 +1624,29 @@ 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) -STR_CONFIG_SETTING_GUI :{ORANGE}Interfaz STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localización -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Construcción -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos -STR_CONFIG_SETTING_STATIONS :{ORANGE}Estaciones -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economía -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Distribución de Carga -STR_CONFIG_SETTING_AI :{ORANGE}Competidores -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Opciones de visualización -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interacción +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos STR_CONFIG_SETTING_SOUND :{ORANGE}Efectos de sonido -STR_CONFIG_SETTING_NEWS :{ORANGE}Noticias y mensajes -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Señales -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Manejo de carga -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Jugadores de la CPU (IAs) -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Renovación automática -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Servicio +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaz +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Ventanas de visualización +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcción +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Noticias / Consejos +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_TRAINS :{ORANGE}Trenes -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Pueblos -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrias +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitaciones +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Accidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generación de mundo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Ambiente +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Pueblos +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 (IAs) STR_CONFIG_SETTING_PATHFINDER_OPF :Original STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1803,7 @@ STR_LIVERY_FREIGHT_TRAM :Tranvía de Car STR_FACE_CAPTION :{WHITE}Selección de cara STR_FACE_CANCEL_TOOLTIP :{BLACK}Cancelar selección de nueva cara STR_FACE_OK_TOOLTIP :{BLACK}Aceptar selección de nueva cara +STR_FACE_RANDOM :{BLACK}Aleatorio STR_FACE_MALE_BUTTON :{BLACK}Hombre STR_FACE_MALE_TOOLTIP :{BLACK}Selecciona cara masculina @@ -1929,13 +1924,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Protege 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}Máximo de clientes: +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_COMPANIES_SELECT :{BLACK}{NUM} empresa{P "" s} -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Máximo de empresas: +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_SPECTATORS_SELECT :{BLACK}{NUM} espectador{P "" es} -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Espectadores máximos: +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_LANGUAGE_SPOKEN :{BLACK}Idioma hablado: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Otros jugadores sabrán cual es el idioma hablado en este servidor @@ -2669,6 +2664,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Guardar STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Guarda el juego 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 STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalles de la Partida STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No hay información disponible STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2687,10 +2683,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. de i 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_RANDOM_SEED :{BLACK}Semilla Aleatoria: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Pulsa para introducir la semilla aleatoria -STR_MAPGEN_RANDOM :{BLACK}Aleatorio -STR_MAPGEN_RANDOM_HELP :{BLACK}Cambiar la semilla aleatoria usada por el Generador de Terrenos STR_MAPGEN_LAND_GENERATOR :{BLACK}Generador terreno: STR_MAPGEN_TREE_PLACER :{BLACK}Algoritmo árboles: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno @@ -2717,7 +2709,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nombre d STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Introducir una semilla aleatoria STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar altura de la línea de nieve STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambiar año de inicio @@ -2796,6 +2787,8 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Fichero no STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivado STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatible con esta versión de OpenTTD +# NewGRF save preset window + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Cambiar parámetros NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Cerrar @@ -3148,7 +3141,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN STR_FINANCES_TOTAL_CAPTION :{WHITE}Total: STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Saldo en Banco STR_FINANCES_LOAN_TITLE :{WHITE}Préstamo -STR_FINANCES_MAX_LOAN :{WHITE}Préstamo Máx: {BLACK}{CURRENCY_LONG} +STR_FINANCES_MAX_LOAN :{WHITE}Préstamo Máximo: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}Pedir Préstamo {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Incrementar préstamo. Ctrl+Click solicita todo el préstamo posible @@ -3297,12 +3290,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Vehículos de c STR_GROUP_DEFAULT_SHIPS :Barcos sin agrupar STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sin agrupar -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos - Click en un grupo para ver la lista de sus vehículos +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos - Click 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}Click para crear un grupo STR_GROUP_DELETE_TOOLTIP :{BLACK}Borrar el grupo seleccionado STR_GROUP_RENAME_TOOLTIP :{BLACK}Renombrar el grupo seleccionado STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click 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_ADD_SHARED_VEHICLE :Añadir vehículos con órdenes compartidas STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos los vehículos @@ -3691,8 +3687,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar STR_ORDER_REFIT :{BLACK}Reformar STR_ORDER_REFIT_TOOLTIP :{BLACK}Selecciona el tipo de carga a reformar en esta orden. Ctrl+Click para eliminar la orden de reforma -STR_ORDER_REFIT_AUTO :{BLACK}Auto-reforma -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Seleccionar el tipo de carga con el que emplear auto-reforma para esta orden. Ctrl+Click elimina la orden de reforma. La auto-reforma solamente puede llevarse a cabo si el vehículo lo permite +STR_ORDER_REFIT_AUTO :{BLACK}Reforma en la estación +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Seleccionar el tipo de carga a la que reformar en esta orden. Ctrl+Click elimina la orden de reforma. La reforma solamente puede llevarse a cabo si el vehículo lo permite STR_ORDER_DROP_REFIT_AUTO :Carga fijada STR_ORDER_DROP_REFIT_AUTO_ANY :Carga disponible @@ -3783,18 +3779,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descargar y STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descargar y esperar a cualquier carga completa) STR_ORDER_NO_UNLOAD_NO_LOAD :(No descargar y no cargar) -STR_ORDER_AUTO_REFIT :(Auto-reforma a {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Carga completa con auto-reforma a {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Cualquier carga completa con auto-reforma a {STRING}) -STR_ORDER_UNLOAD_REFIT :(Descargar y tomar carga con auto-reforma a {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descargar y esperar carga completa con auto-reforma a {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descargar y esperar a cualquier carga completa con auto-reforma a {STRING}) -STR_ORDER_TRANSFER_REFIT :(Transferir y tomar carga con auto-reforma a {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir y esperar a carga completa con auto-reforma a {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir y esperar a cualquier carga completa con auto-reforma a {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(No descargar y tomar carga con auto-reforma a {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descargar y esperar a carga completa con auto-reforma a {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descargar y esperar a cualquier carga completa con auto-reforma a {STRING}) +STR_ORDER_AUTO_REFIT :(Reforma a {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Carga completa con reforma a {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Cualquier carga completa con reforma a {STRING}) +STR_ORDER_UNLOAD_REFIT :(Descargar y tomar carga con reforma a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descargar y esperar carga completa con reforma a {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descargar y esperar a cualquier carga completa con reforma a {STRING}) +STR_ORDER_TRANSFER_REFIT :(Transferir y tomar carga con reforma a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir y esperar a carga completa con reforma a {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir y esperar a cualquier carga completa con reforma a {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(No descargar y tomar carga con reforma a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descargar y esperar a carga completa con reforma a {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descargar y esperar a cualquier carga completa con reforma a {STRING}) STR_ORDER_AUTO_REFIT_ANY :carga disponible @@ -3820,9 +3816,13 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Horarios STR_TIMETABLE_NO_TRAVEL :Sin viaje STR_TIMETABLE_NOT_TIMETABLEABLE :Viajar (automático; programado por la próxima orden manual) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaje (sin horarios) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viajar a como máximo {2:VELOCITY} (sin horarios) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viajar (sin horarios) a como máximo {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Viajar durante {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viajar a {STRING} con un límite de velocidad de {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viajando (a {STRING}, sin horarios) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viajando (a {STRING}, sin horario) a como máximo {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(permaneciendo por {STRING}, sin horarios) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viajando a {STRING}, sin horarios) STR_TIMETABLE_STAY_FOR :y esperar {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :y viajar durante {STRING} STR_TIMETABLE_DAYS :{COMMA} día{P "" s} @@ -4276,6 +4276,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_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... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}No se pueden añadir vehículos compartidos al grupo... diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index c8347fbb65..27bc518eb0 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} väntar i depån STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} väntar i hangaren -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} har för få ordrar i schemat STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} har en ogiltig order STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} har dubblerade destinationer STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} har en felaktig station bland destinationerna -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} börjar bli gammal STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} börjar bli mycket gammal @@ -954,9 +952,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skärmup STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Välj skärmupplösning att använda STR_GAME_OPTIONS_RESOLUTION_OTHER :annan -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Skärmdumpsformat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Välj filformat för skärmdump - 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} @@ -1130,8 +1125,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Slår av/på ka STR_CONFIG_SETTING_CITY_APPROVAL :Stadsfullmäktiges attityd mot ombyggantion av områden: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Välj hur mycket ett företags oväsen och miljöpåverkan ska påverka dess anseende och möjlighet till vidare byggnationer i området -STR_CONFIG_SETTING_BUILDONSLOPES :Tillåt konstruktion på sluttningar och kuster: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Om det är aktiverat kan räls och stationer byggas på de flesta sluttningar. Om det är inaktiverat är de bara tillåtna att bygga på sluttningar som motsvarar spårens riktning och därför inte kräver någon grund STR_CONFIG_SETTING_AUTOSLOPE :Tillåt landskapsarkitektur under byggnader, spår, etc. (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tillåt landskapsarkitektur under byggnader och spår utan att ta bort dem STR_CONFIG_SETTING_CATCHMENT :Tillåt mer realistiska uppsamlingsområden för stationer: {STRING} @@ -1156,14 +1149,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Förbjud tåg o STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-graderssvängar inträffar då ett horisontellt spår följs direkt av ett vertikalt spår på angränsande ruta och därmed gör så att tåget svänger 90-grader om de kör längs med spåret. Detta i motsats till andra kombinationer av spårbitar där tåget svänger 45 grader i taget. Denna inställning påverkar även svängradien för fartyg STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Tillåt att stationer som inte är byggda direkt brevid varandra slås ihop: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Tillåt att lägga till delar till en station utan att de är i direktkontakt med existerande delar. Kräver Ctrl+klick vid placering av nya stationsdelar. -STR_CONFIG_SETTING_IMPROVEDLOAD :Använd förbättrad algoritm: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Om aktiverad och flera fordon befinner sig på stationen, kommer de att lastas på en efter en. Lastning av nästa fordon startar först när det finns tillräckligt med gods för att fylla det första fordonet. -STR_CONFIG_SETTING_GRADUAL_LOADING :Lasta fordon gradvis: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Lasta på fordon gradvis genom att använda fordonsspecifika tider för lastning istället för att lasta på allt samtidigt med en fast tid som endast beror på mängden gods att lasta på. STR_CONFIG_SETTING_INFLATION :Inflation: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Aktivera inflation i ekonomin. Kostnaderna stiger något fortare än inkomsterna. -STR_CONFIG_SETTING_SELECTGOODS :Leverera gods till en station enbart om någon frågar efter det: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Leverera endast gods till en station där godstypen har efterfrågats av ett fordon genom att försöka lasta på gods. Detta förhindrar dåliga värderingar för godstyper som inte betjänas på en station. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maximal brolängd: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maximal längd för broar STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maximal tunnellängd: {STRING} @@ -1191,8 +1178,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Grundinställni STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :början STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :mitten STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :slutet -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Vägfordonsköer (med kvanteffekter): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Gör så att vägfordon väntar framför ett upptaget genomfarts-stopp tills dess att det är ledigt. STR_CONFIG_SETTING_AUTOSCROLL :Scrolla vyn när musen är vid kanten: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :När det är aktiverat börjar vyer scrolla när muspekaren är nära fönstrets kant STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Avstängd @@ -1223,10 +1208,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfa STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillåt konstruktion av genomfarts-stopp på stadsägda vägar STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Tillåt dina fordon att köra genom motståndarens hållplatser: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillåt konstruktion av genomfarts-stopp på vägar som ägs av andra företag -STR_CONFIG_SETTING_ADJACENT_STATIONS :Tillåt konstruktion av närliggande stationer: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Tillåt att olika stationer rör vid varandra -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Tillåt flera NewGRF-set: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompabilitetsinställning för gamla NewGRFer. Inaktivera inte detta såvida du inte vet exakt vad du håller på med! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Det är inte möjligt att ändra denna inställning när det finns fordon STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Underhåll av infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Om det är aktiverat så kostar underhåll av infrastruktur. Kostnaden ökar mer än proportionellt mot nätverkets storlek, vilket innebär att större företag drabbas hårdare än små företag av underhållskostnader. @@ -1284,8 +1265,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Höjkartans rot STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Motsols STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Medsols STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Vilken nivåhöjd en platt scenario-karta får: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Tillåt landskapsarkitektur på rutorna vid kartans kanter: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Om det är inaktiverat kommer kartans kanter alltid att vara hav STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}En eller fler rutor vid den norra gränsen är inte tomma STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}En eller fler rutor vid en av gränserna är inte vatten @@ -1342,11 +1321,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lång (31st Dec STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kort (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standardpalett för NewGRF när ingen annan palett är angiven: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standardpalett att använda med NewGRFer som inte anger vilken palett de behöver -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standardpalett (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Tidigare versions (W) palett - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Pausa automatiskt vid start av nytt spel: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Om det är aktiverat kommer OpenTTD automatiskt att pausa vid start av ett nytt spel, så att kartan kan studeras noggrannare STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :När spelet är pausat, tillåt: {STRING} @@ -1568,8 +1542,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 av {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Inga STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Initial stadsstorleks-multiplikator: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Storstäders genomsnittliga storlek i relation till vanliga städers vid spelets början -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Ta bort absurda väg-element under vägkonstruktion: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Ta bort återvändsgränder vid bekostad vägombyggnad STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Uppdatera distributionsgrafen var {STRING}:e dag{P 0:2 "" s} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tid mellan efterföljande omräkningar av länkgrafen. Varje omräkning beräknar planer för en komponent i grafen. Det medför att ett värde X för den här inställningen inte innebär att hela grafen uppdateras var X:e dag, bara vissa komponenter. Ju lägre värde du ställer in desto mer processorkraft kommer att behövas för beräkningarna. Ju högre värde du ställer in desto längre tid kommer det att ta innan distributionen av last börjar använda nya rutter. @@ -1631,27 +1603,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Brittisk (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrisk (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Gränssnitt STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisering -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Konstruktion -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Fordon -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stationer -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Godsdistribution -STR_CONFIG_SETTING_AI :{ORANGE}Motståndare -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Skärminställningar -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interagera STR_CONFIG_SETTING_SOUND :{ORANGE}Ljudeffekter -STR_CONFIG_SETTING_NEWS :{ORANGE}Nyheter och meddelanden -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signaler -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Frakthantering -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datorspelare -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Autoförnya -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Service +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Gränssnitt +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Konstruktion +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Fordon STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Planering av resrutt -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tåg -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Städer -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Städer +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrier +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Godsdistribution +STR_CONFIG_SETTING_AI :{ORANGE}Motståndare +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Datorspelare STR_CONFIG_SETTING_PATHFINDER_OPF :Standard STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1770,7 @@ STR_LIVERY_FREIGHT_TRAM :Fraktspårvagn STR_FACE_CAPTION :{WHITE}Välj ansikte STR_FACE_CANCEL_TOOLTIP :{BLACK}Avbryt val av ansikte STR_FACE_OK_TOOLTIP :{BLACK}Acceptera nytt ansikte +STR_FACE_RANDOM :{BLACK}Slumpa STR_FACE_MALE_BUTTON :{BLACK}Man STR_FACE_MALE_TOOLTIP :{BLACK}Välj manliga ansikten @@ -2687,10 +2650,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Antal in STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snögränsens höjd: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Höj snögränsens höjd ett upp STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sänk snögränsens höjd ett ner -STR_MAPGEN_RANDOM_SEED :{BLACK}Slumpnummer: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klicka för att mata in ett slump-nummer -STR_MAPGEN_RANDOM :{BLACK}Slumpa -STR_MAPGEN_RANDOM_HELP :{BLACK}Ändra slumpnummer som används för terräng-generering STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Trädalgoritm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrängtyp: @@ -2717,7 +2676,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Namn på STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Storlek: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Mata in ett slumpmässigt frö STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ändra snögränsens höjd STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ändra Startår @@ -3297,12 +3255,14 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ogrupperade vä STR_GROUP_DEFAULT_SHIPS :Ogrupperade skepp STR_GROUP_DEFAULT_AIRCRAFTS :Ogrupperade flygmaskiner -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupper - klicka på en grupp för att lista alla fordon i gruppen +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupper - klicka på en grupp för att lista alla fordon i gruppen. Dra och släpp grupper för att ordna hierarkin. STR_GROUP_CREATE_TOOLTIP :{BLACK}Klicka för att skapa en grupp STR_GROUP_DELETE_TOOLTIP :{BLACK}Ta bort vald grupp STR_GROUP_RENAME_TOOLTIP :{BLACK}Byt namn på vald grupp STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klicka för att skydda denna grupp mot allmän autoreplace +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Ta bort grupp + STR_GROUP_ADD_SHARED_VEHICLE :Lägg till delade fordon STR_GROUP_REMOVE_ALL_VEHICLES :Ta bort alla fordon diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index ab4509e5bb..7a5bd8481b 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -791,13 +791,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} பணிமனையில் காத்துக்கொண்டிருக்கிறது STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} பணிமனையில் காத்துக்கொண்டிருக்கிறது -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} அட்டவனையில் மிக குறைவாக கட்டளைகளைக் கொண்டுள்ளது STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} பிழையான கட்டளையைக் கொண்டுள்ளது STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} இரட்டடிப்பு கட்டளைகளைக் கொண்டுள்ளது STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} பிழையான நிலையத்தினை கட்டளைகளில் கொண்டுள்ளது -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} பழையதாகிறது STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} பழையதாகிறது @@ -922,8 +920,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}தி STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}திரை அளவினைத் தேர்ந்தெடுக்கவும் STR_GAME_OPTIONS_RESOLUTION_OTHER :மற்றவை -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}திரைப்பிடிப்பு ஃபார்மேட் - STR_GAME_OPTIONS_BASE_GRF :{BLACK}அடிப்படை அசைவூட்டம் STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}பயன்படுத்தப்போகும் அடிப்படை அசைவூட்டத்தினை தேர்ந்தெடுக்கவும் STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} இல்லாத/பிழையான கோப்பு{P "" கள்} @@ -1086,7 +1082,6 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :நிலைய STR_CONFIG_SETTING_DISASTERS :பேரழிவுகள்: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL :நகர மறு அமைப்பின் மீது நகராட்சியின் நிலை: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES :கரைகளிலும் சரிவுகளிலும் கட்ட அனுமதி: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :நகரத்தின் சாலைகள், பாலங்கள் மற்றும் சுரங்கங்களை நீக்க அனுமதிக்கவும்: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :நகராட்சியின் கட்டடங்கள் நீக்குவதை எளிதாக்கவும் STR_CONFIG_SETTING_TRAIN_LENGTH :இரயில்களின் அதிகபட்ச நீளம்: {STRING} @@ -1101,11 +1096,8 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :சாலை வாகங்களின் மலையேறுதல் வேகத்தடை: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG :இரயில் மற்றும் கப்பல்களை 90° வளைவுகள் எடுப்பதை அனுமதிக்காதே: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :நேரடியாக இணைக்கப்படாத நிலையங்களை இணைக்க அனுமதி: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :புதிய சீரமைக்கப்பட்ட சரக்கேற்றுதலினைப் பயன்படுத்தவும்: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :பொறுமையாக வாகனங்களை ஏற்று: {STRING} STR_CONFIG_SETTING_INFLATION :விலைவாசி ஏற்றம்: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :பண வீக்கத்தினை செயல்படுத்து, இதனால் செலவுகள் வளர்ச்சி வரவுகளின் வளர்ச்சியைவிட அதிகமாகும் -STR_CONFIG_SETTING_SELECTGOODS :தேவை இருந்தால் மட்டுமே அச்சரக்குகளை நிலையத்தில் இறக்கு: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :அதிகபட்ச பால நீளம்: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :கட்டப்படும் பாலங்களின் அதிகபட்ச நீளம் STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :அதிகபட்ச சுரங்க நீளம்: {STRING} @@ -1127,7 +1119,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :பிளாட STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :அருகே உள்ள முடிவில் STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :நடு STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :தொலைவில் உள்ள முடிவில் -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :சாலை வாகன வரிசைப்படுத்துதல் (with quantum effects): {STRING} STR_CONFIG_SETTING_AUTOSCROLL :ஒட்டில் எலி இருக்கும்பொழுது திரையினை நகர்த்தவும் : {STRING} STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :செயலிழக்க செய்யப்பட்டது STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :முக்கிய திரைபார்வை, முழுத்திரையில் மட்டும் @@ -1148,9 +1139,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_NONE :ஒன்று STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :குறைக்கப்பட்ட STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :இயல்பான STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :வழிசெல்லக்கூடிய சாலை நிறுத்தங்களை நகராட்சியின் சாலைகளில் அமைக்க அனுமதி: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :நிலையங்களை ஒட்டி கட்ட அனுமதி: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :வெவ்வேறு நிலையங்கள் ஒட்டி கட்டுவதற்கு அனுமதிக்கவும் -STR_CONFIG_SETTING_DYNAMIC_ENGINES :பல்வேறு NewGRF பொறிகளை செயற்படுத்தவும்: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}வாகனங்கள் இருக்கும் பொது இந்த அமைப்பினை மாற்ற இயலாது STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :கட்டட பராமரிப்பு: {STRING} @@ -1197,8 +1185,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :உயர்ப STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :வலமிருந்து இடமாக செல் STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :இடமிலிருந்து வலஞ்செல் STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :சமமான சித்திரக்காட்சியின் உயர அளவு: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :வரைபட எல்லைகளில் நில மாற்றங்களை செயற்படுத்தவும்: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :முடக்கப்பட்டால், வரைபடத்தின் எல்லைகள் கடலாகவே இருக்கும் STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}வடதுருவத்தில் ஒன்று அல்லது அதற்கு மேற்பட்ட கட்டங்கள் காலியாக இல்லை STR_CONFIG_SETTING_STATION_SPREAD :அதிக. நிலைய விரிப்பு: {STRING} @@ -1236,7 +1222,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :நீளமா STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :சுருக்கமான (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :புதிய ஆட்டத்தினை தொடங்கும்போது தானாக நிறுத்தவும்: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :ஆட்டம் நிருத்தபட்டிருக்கம்போது அனுமதிக்கவும்: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :ஆட்டம் நிறுத்தப்பட்டிருக்கும்போது செய்யக்கூடிய செயல்களைத் தேர்ந்தெடுக்கவும் @@ -1426,26 +1411,16 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :இம்பீ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :மெட்ரிக் (மீ) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (மீ) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}கட்டுமானம் -STR_CONFIG_SETTING_VEHICLES :{ORANGE}வாகனங்கள் -STR_CONFIG_SETTING_STATIONS :{ORANGE}நிலையங்கள் -STR_CONFIG_SETTING_ECONOMY :{ORANGE}பொருளாதாரம் -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}சரக்கு பரிமாற்றம் -STR_CONFIG_SETTING_AI :{ORANGE}போட்டியாளர்கள் -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}திரை அமைப்புகள் -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaction STR_CONFIG_SETTING_SOUND :{ORANGE}ஒலிகள் -STR_CONFIG_SETTING_NEWS :{ORANGE}செய்திகள் மற்றும் தகவல்கள் -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}சிக்னல்கள் -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}சரக்கு பரிமாற்றம் -STR_CONFIG_SETTING_AI_NPC :{ORANGE}கணினி வீரர்கள் -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}தானியங்கி புதுப்பித்தல் -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}பராமரிப்பு +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}கட்டுமானம் +STR_CONFIG_SETTING_VEHICLES :{ORANGE}வாகனங்கள் STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}வழி மாற்றல் -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}இரயில் வண்டிகள் -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}நகரங்கள் -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}தொழிற்சாலைகள் +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}நகரங்கள் +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}தொழிற்சாலைகள் +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}சரக்கு பரிமாற்றம் +STR_CONFIG_SETTING_AI :{ORANGE}போட்டியாளர்கள் +STR_CONFIG_SETTING_AI_NPC :{ORANGE}கணினி வீரர்கள் STR_CONFIG_SETTING_PATHFINDER_OPF :அசல் STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1583,6 +1558,7 @@ STR_LIVERY_FREIGHT_TRAM :சரக்க STR_FACE_CAPTION :{WHITE}முகம் தேர்ந்தெடுத்தல் STR_FACE_CANCEL_TOOLTIP :{BLACK}புதிய முக தேர்ந்தெடுத்தலை இரத்து செய் STR_FACE_OK_TOOLTIP :{BLACK}புதிய முக தேந்தெடுத்தலை ஏற்றுக்கொள் +STR_FACE_RANDOM :{BLACK}ஏதோவொன்று STR_FACE_MALE_BUTTON :{BLACK}ஆண் STR_FACE_MALE_TOOLTIP :{BLACK}ஆண் முகங்களை தேர்ந்தெடு @@ -2386,8 +2362,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}தொ STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}பனிக் கோடின் உயரம்: STR_MAPGEN_SNOW_LINE_UP :{BLACK}பனி கோடின் உயரத்தை ஒரு அடி உயர்த்து STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}பனி கோடின் உயரத்தை ஒரு அடி இறக்கு -STR_MAPGEN_RANDOM_SEED :{BLACK}ஏதோவொன்று: -STR_MAPGEN_RANDOM :{BLACK}ஏதோவொன்று STR_MAPGEN_LAND_GENERATOR :{BLACK}பூமி உருவாக்குனர்: STR_MAPGEN_TREE_PLACER :{BLACK}மரம் நடுதல்: STR_MAPGEN_TERRAIN_TYPE :{BLACK}நிலவகை: @@ -2942,6 +2916,7 @@ STR_GROUP_CREATE_TOOLTIP :{BLACK}ஓர STR_GROUP_DELETE_TOOLTIP :{BLACK}தேர்ந்தெடுக்கப்பட்ட குழுவின் பெயரினை நீக்கவும் STR_GROUP_RENAME_TOOLTIP :{BLACK}தேர்ந்தெடுக்கப்பட்ட குழுவின் பெயரினை மாற்றவும் + STR_GROUP_ADD_SHARED_VEHICLE :பகிர்ந்த வாகனங்களை சேர்க்கவும் STR_GROUP_REMOVE_ALL_VEHICLES :அனைத்து வாகனங்களையும் நீக்கு diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 14bcca3098..5aaffb14b0 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} กำลังรออยู่ในอู่ STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} กำลังรออยู่ในโรงจอด -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} มีคำสั่งน้อยเกินไปในกำหนดการเดินทาง STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} มีคำสั่งว่าง STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} มีคำสั่งซ้ำซ้อน STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} มีสถานีที่ใช้ไม่ได้ในคำสั่ง -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} เริ่มเก่าแล้ว STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} เก่ามากแล้ว @@ -954,9 +952,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}คว STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}เลือกความละเอียดของหน้าจอที่จะใช้ STR_GAME_OPTIONS_RESOLUTION_OTHER :อื่นๆ -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}สกุลไฟล์ของ Screenshot -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}เลือกรูปแบบหน้าจอที่จะใช้ - STR_GAME_OPTIONS_BASE_GRF :{BLACK}ตั้งค่า Graphic พื้นฐาน STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}เลือกและตั้งค่าฐานกราฟิกที่จะใช้ STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ไฟล์สูญหายหรือไม่สมบูรณ์ @@ -1124,8 +1119,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :ภัยพิ STR_CONFIG_SETTING_CITY_APPROVAL :ทัศนคติสภาเทศบาลเมืองที่มีต่อการปรับโครงสร้างพื้นที่: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :เลือกความรุนแรงของการทำลายสิ่งแวดล้อมและเสียงรบกวนจากบริษัทที่ส่งผลต่อความนิยมในเมืองและการก่อสร้างของพวกเขา -STR_CONFIG_SETTING_BUILDONSLOPES :อนุญาตให้สร้างบนทางลาดและตลิ่งชายฝั่ง: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :เมื่อเปิดใช้งาน จะทำให้สามารถสร้างเส้นทางหรือสถานีบนพื้นที่ลาดเอียงได้ STR_CONFIG_SETTING_AUTOSLOPE :อนุญาตให้เปลี่ยนสภาพพื้นผิวใต้สิ่งก่อสร้าง, ราง, ฯลฯ (ปรับความชันอัตโนมัติ): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :อนุญาตให้ปรับสภาพพื้นที่ได้โดยไม่ต้องรื้อถอนสาธารณูปโภค STR_CONFIG_SETTING_CATCHMENT :อนุญาตให้มีขนาดของพื้นที่บริการของสถานีที่สมเหตุสมผลมากขึ้น: {STRING} @@ -1150,14 +1143,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :ห้ามร STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :ไม่อนุญาตให้รถไฟเลี้ยวโค้งแบบ 90 องศาได้ STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :อนุญาตให้เป็นสถานีเดียวกันแม้ไม่ได้ติดกัน: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :อนุญาตให้มีการสร้างชิ้นส่วนที่เป็นของสถานีให้แยกออกจากกันโดยไม่ต้องมีชิ้นส่วนอื่นๆที่เชื่อมต่อถึงกันได้ ต้องกด Ctrl+Click ในการใช้งาน -STR_CONFIG_SETTING_IMPROVEDLOAD :ใช้รูปแบบการขนถ่ายสินค้าที่มีการปรับปรุงประสิทธิภาพแล้ว: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :โดยปกติ หากมียานพาหนะ 2 คัน/ลำ เทียบอยู่เพื่อขนถ่ายสินค้า ระบบจะให้สิืทธิ์ผู้ที่มาก่อนเสมอ แต่หากเปิดใช้งานส่วนนี้ระบบจะทำการกระจายสินค้าออกไปอย่างเหมาะสม -STR_CONFIG_SETTING_GRADUAL_LOADING :บรรจุเข้าไปในพาหนะทีละน้อยๆ: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :ยานพาหนะจะใช้เวลาในการโหลดสินค้าและสัมภาระมากขึ้นเพื่อความสมจริง สำหรับรถไฟหากชานชาลามีความยาวไม่เพียงพอจะทำให้ระยะเวลาในการโหลดสินค้าเพิ่มมากขึ้น STR_CONFIG_SETTING_INFLATION :ภาวะเงินเฟ้อ: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :เมื่อเปิดการใช้งานอัตราเงินเฟ้อ ค่าเงินจะถูกลงและต้องใช้เงินมากขึ้นในการซื้อหรือสร้าง แต่ผลตอบแทนจากการขนส่งก็จะเพิ่มขึ้นด้วยเช่นกัน -STR_CONFIG_SETTING_SELECTGOODS :ส่งสินค้าที่บรรทุกลงที่สถานีที่มีความต้องการเท่านั้น: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :จะสามารถขนส่งสินค้าไปยังสถานีได้ต่อเมื่อมีการเรียกจากยานพาหนะที่ขนส่ง การที่มีความนิยมต่ำจะทำให้สินค้าไม่ใช้บริการที่สถานี STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :ความยาวสูงสุดของสะพาน: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :ปรับความยาวสูงสุดสำหรับการสร้างสะพาน STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :ความยาวสูงสุดของอุโมงค์: {STRING} @@ -1185,8 +1172,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :เลือก STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :ฝั่งใกล้ STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :ตรงกลาง STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ฝั่งไกล -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :การเข้าคิวรถ (มี quantum effects): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :ทำให้รถ รออยู่ที่ทางแยกจนกว่าถนนข้างหน้าที่การจราจรจะโล่ง STR_CONFIG_SETTING_AUTOSCROLL :เลื่อนหน้าต่างเมื่อเม้าส์อยู่ใกล้ขอบหน้าจอ: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :เมื่อเปิดใช้งานจะสามารถเลื่อนหน้าจอโดยการใช้เมาส์ไปแตะที่ขอบจอได้ STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :ไม่ใช้งาน @@ -1217,10 +1202,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :อนุญา STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :สามารถสร้างป้ายหยุดรถบนถนนของเมืองได้ STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :อนุญาตให้มีที่หยุดรถแบบขับผ่านบนถนนของบริษัทอื่นๆ: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :สามารถสร้างป้ายหยุดรถบนถนนที่สร้างโดยบริษัทอื่นได้ -STR_CONFIG_SETTING_ADJACENT_STATIONS :อนุญาตให้สร้างสถานีที่ไม่มีส่วนที่ติดกันได้: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :สามารถสร้างสถานีรับส่งประเภทอื่นๆติดกันได้ -STR_CONFIG_SETTING_DYNAMIC_ENGINES :เปิดใช้งาน NewGRF ประเภทเดียวกัน หลายชุดพร้อมกัน: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :ความเข้ากันได้ของ NewGRFs เก่าๆ ไม่ควรทำการปิดระบบนี้ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}ไม่สามารถเปลี่ยนการตั้งค่านี้ได้เมื่อมียานพาหนะ STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :ค่าบำรุงรักษาโครงสร้างพื้นฐาน: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :เมื่อเปิดใช้งาน สาธารณูประโภคที่สร้างโดยบริษัทจะมีค่าบำรุงรักษา ยิ่งเครือข่ายยิ่งมากจะยิ่งเสียค่าใช้จ่ายมากขึ้น @@ -1278,8 +1259,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :ทิศกา STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :ทวนเข็มนาฬิกา STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :ตามเข็มนาฬิกา STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :ค่าระดับความสูงต่ำสุดของพื้นราบ: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :ยอมให้เปลี่ยนสภาพพื้นผิวบริเวณช่องริมขอบแผนที่: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :ถ้าปิด ขอบแผนที่จะเป็นน้ำเสมอ STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}ขอบทางเหนือมีอย่างน้อยหนึ่งช่องหรือมากกว่านั้นที่ไม่ว่าง STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}หนึ่งช่องหรือมากกว่านั้นที่ขอบด้านในด้านหนึ่งไม่ใช่น้ำ @@ -1336,11 +1315,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :ยาว (31 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :สั้น (31-12-2013) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :มาตรฐาน (2013-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :เลือกใช้ Palette ของ NewGRFs ที่ไม่สามารถระบุประเภทได้ (Dos/Windows): {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :จะมี NewGRFs บางตัวที่ไม่สามารถระบุประเภทว่าใช้ Pelette ของ Dos หรือของ Windows การเลือกตัวเลือกนี้จะเป็นการเลือกค้าแรกเริ่มให้กับ NewGRFs เหล่านั้น -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :มาตรฐาน (D) ชุดสี -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :เลกาซี่ (W) ชุดสี - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :หยุดเกมอัตโนมัติเมื่อเริ่มเกมใหม่: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :เมื่อเปิดใช้งาน เกมจะหยุดอัตโนมัติเมื่อมีการเริ่มเกมใหม่ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :อนุญาตให้ทำสิ่งเหล่านี้เมื่อหยุดเกม: {STRING} @@ -1562,8 +1536,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 ใน {COMMA STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :ไม่มี STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :ตัวคูณขนาดเมืองเริ่มต้น: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :ขนาดโดยเฉลี่ยของเมืองใหญ่ที่สัมพันธ์กับเมืองปกติ -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :นำสิ่งที่เป็นอุปสรรคของถนนออกระหว่างการก่อสร้างถนน: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :ลบทางตันของถนนระหว่างการใช้งานการปรับปรุงถนนในท้องถิ่น STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :อัพเดทกราฟการกระจายสินค้าทุกๆ {STRING} วัน STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :เวลาระหว่างการคำนวณหาเส้นทางการเชื่อมต่อของกราฟ. ทุกครั้งที่มีำการคำนวณใหม่ มีการวางแผนสำหรับหนึ่งชิ้นส่วนในกราฟ ค่าที่ตั้งไว้นี้ คือค่าที่จะให้มีการอัพเดททุกๆเวลากี่วัน การตั้งให้คำนวณถี่มากๆจะกินทรัพยากรเครื่องของท่าน @@ -1625,27 +1597,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :อิมพี STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :เมตริก (เมตร) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :มาตรฐานสากล (เมตร) -STR_CONFIG_SETTING_GUI :{ORANGE}ส่วนเชื่อมต่อผู้ใช้ STR_CONFIG_SETTING_LOCALISATION :{ORANGE}มาตราวัดต่างๆ -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}การก่อสร้าง -STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ -STR_CONFIG_SETTING_STATIONS :{ORANGE}สถานี -STR_CONFIG_SETTING_ECONOMY :{ORANGE}เศรฐกิจ -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}การกระจายสินค้า -STR_CONFIG_SETTING_AI :{ORANGE}คู่แข่ง -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}ตัวเลือกการแสดงผล -STR_CONFIG_SETTING_INTERACTION :{ORANGE}การโต้ตอบ STR_CONFIG_SETTING_SOUND :{ORANGE}เสียงเอฟเฟกต์ -STR_CONFIG_SETTING_NEWS :{ORANGE}ข่าวสารและข้อความ -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}อาณัติสัญญาณ -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}การขนถ่าย -STR_CONFIG_SETTING_AI_NPC :{ORANGE}ผู้เล่นคอมพิวเตอร์ -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}การแทนที่อัตโนมัติ -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}เกี่ยวกับการซ่อมบำรุง +STR_CONFIG_SETTING_INTERFACE :{ORANGE}ส่วนเชื่อมต่อผู้ใช้ +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}การก่อสร้าง +STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}การค้นหาเส้นทางของพาหนะ -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}รถไฟ -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}เมือง -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}อุตสาหกรรม +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}เมือง +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}อุตสาหกรรม +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}การกระจายสินค้า +STR_CONFIG_SETTING_AI :{ORANGE}คู่แข่ง +STR_CONFIG_SETTING_AI_NPC :{ORANGE}ผู้เล่นคอมพิวเตอร์ STR_CONFIG_SETTING_PATHFINDER_OPF :ดั้งเดิม STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1802,6 +1764,7 @@ STR_LIVERY_FREIGHT_TRAM :รถราง STR_FACE_CAPTION :{WHITE}เลือกใบหน้า STR_FACE_CANCEL_TOOLTIP :{BLACK}ยกเลิการเลือกใบหน้าใหม่ STR_FACE_OK_TOOLTIP :{BLACK}ยอมรับการเลือกใบหน้าใหม่ +STR_FACE_RANDOM :{BLACK}สุ่ม STR_FACE_MALE_BUTTON :{BLACK}ผู้ชาย STR_FACE_MALE_TOOLTIP :{BLACK}เลือกใบหน้าผู้ชาย @@ -2679,10 +2642,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}จำ STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}เส้นความสูงเขตหิมะ: STR_MAPGEN_SNOW_LINE_UP :{BLACK}ปรับเปลี่ยนความสูงของหิมะขึ้นไป 1 ระดับ STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}ปรับเปลี่ยนความสูงของหิมะลงมา 1 ระดับ -STR_MAPGEN_RANDOM_SEED :{BLACK}Random seed: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}คลิ๊กเมาส์เพื่อ random seed -STR_MAPGEN_RANDOM :{BLACK}สุ่ม -STR_MAPGEN_RANDOM_HELP :{BLACK}เปลี่ยนการ random seed สำหรับการสร้างพื้นดิน STR_MAPGEN_LAND_GENERATOR :{BLACK}เครื่องมือสร้างสภาพพื้นดิน: STR_MAPGEN_TREE_PLACER :{BLACK}Tอัลกอริธึมต้นไม้: STR_MAPGEN_TERRAIN_TYPE :{BLACK}ประเภทภูมิประเทศ: @@ -2709,7 +2668,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}ชื STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}ขนาด: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}ป้อนค่า random seed STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}ปรับเปลี่ยนความสูงของระดับหิมะ STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}เปลี่ยนปีที่เริ่มต้นเกม @@ -3294,6 +3252,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}ลบ STR_GROUP_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อกลุ่มที่เลือก STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}กดเพื่อป้องกันกลุ่มนี้จากการใช้งาน แทนที่ใหม่อัตโนมัติ + STR_GROUP_ADD_SHARED_VEHICLE :เพิ่มยานพาหนะที่ใช้รายการคำสั่งเดียวกัน STR_GROUP_REMOVE_ALL_VEHICLES :ลบยานพาหนะทั้งหมด diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 098de1e106..c6d46e817f 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} 正在船塢待命 STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} 正在機棚待命 -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} 的調度任務太少 STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} 有錯誤的計劃指令 STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} 有重複的指令 STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} 有無法到達的車站 -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE}之計劃中有機場跑道太短無法起降 STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} 即將退役 STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} 應當馬上退役 @@ -954,9 +953,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}螢幕 STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}選擇螢幕解析度 STR_GAME_OPTIONS_RESOLUTION_OTHER :其它 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}畫面擷取檔案格式 -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}選擇畫面擷取檔案格式 - STR_GAME_OPTIONS_BASE_GRF :{BLACK}基本圖形集 STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}選擇要使用的基本圖形集 STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} 檔案遺失/損毀 @@ -1130,8 +1126,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :切換那些有 STR_CONFIG_SETTING_CITY_APPROVAL :地方政府對地區結構重組的態度: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :選擇公司所製造的噪音和環境傷害對其在市鎮的評比及未來的建設行動會造成多大影響 -STR_CONFIG_SETTING_BUILDONSLOPES :可在斜坡及岸邊興建:{STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :如果啟用此選項,路軌和車站都可在大部份斜坡上建造。如果停用此選項,則只能在符合其方向的斜坡上建造路軌,且不能在斜坡上建造車站,但這樣它們就毋需額外的地基 STR_CONFIG_SETTING_AUTOSLOPE :允許在建築物或軌道底下改變地形斜度 (autoslope):{STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :可以在建築物或軌道底下改變地形而不需移除它們 STR_CONFIG_SETTING_CATCHMENT :容許更真實的服務範圍設定:{STRING} @@ -1156,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :禁止列車及 STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :列車於縱向路軌與橫向路軌交接之處轉向稱為「直角轉向」;列車於其他的路軌配置上轉向稱為「45度轉向」。如啟用此設定,所有列車皆不會進行直角轉向。除列車外,此設定同樣適用於船舶 STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :允許將不相鄰的車站與附近的車站結合:{STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :容許以「CTRL 鍵 + 點選」的方式,加入與現有部份不相連接的車站部件。 -STR_CONFIG_SETTING_IMPROVEDLOAD :使用改善後的裝載演算法:{STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :如啟用此設定,在車站內等候的多部運輸工具會依其進站次序裝載:只有當站內的乘客或貨物足夠令第一部運輸工具滿載時,下一部運輸工具才會開始裝載 -STR_CONFIG_SETTING_GRADUAL_LOADING :運輸工具逐步裝載貨物:{STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :如啟用此設定,運輸工具會根據其裝載設定逐步裝載貨物。否則,所有運輸工具都會在特定時間內裝載所有乘客或貨物,而裝載所用的時間則取決於所裝載的乘客或貨物之數量 STR_CONFIG_SETTING_INFLATION :通貨膨脹:{STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :啟用通貨膨脹,而且成本的增長會稍為比收入的增長快 -STR_CONFIG_SETTING_SELECTGOODS :有需求才向車站供貨:{STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :車站只會在能運送有關乘客或貨物的運輸工具停靠後,才開始接收附近建築物供應的乘客或貨物。這樣可避免車站評價因為未有運輸工具使用而下降 STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :橋樑長度上限: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :建造橋樑長度的上限 STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :隧道長度上限: {STRING} @@ -1191,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :預設列車在 STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :近端 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :中間 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :遠端 -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :車輛排隊 (量子效應):{STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :強制進入站點的公路車輛在未有空位時停在站前排隊等候,而非調頭離開。請注意:過多車輛等候會造成交通擠塞(此即設定標籤中所指的「量子效應」) STR_CONFIG_SETTING_AUTOSCROLL :滑鼠在視窗邊緣時移動視窗:{STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :如啟用此選項,額外視野的畫面會在游標接近其視窗邊緣時捲動 STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :停用 @@ -1223,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :可在市鎮所 STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :容許在市鎮擁有的道路上建造直通型車站 STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :可在競爭對手所有的道路上建設路邊車站:{STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :容許在其他公司擁有的道路上建造直通型車站 -STR_CONFIG_SETTING_ADJACENT_STATIONS :允許按 Ctrl 鍵興建相鄰車站: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :容許不同車站相互鄰接 -STR_CONFIG_SETTING_DYNAMIC_ENGINES :允許載入多個 NewGRF 車輛組:{STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :此為對舊版 NewGRF 包的相容設定。如果您並非完全清楚其功用,請勿停用。 STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}當有運輸工具運轉時不能修改此設定 STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :基礎建設維護: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :如啟用此選項,基礎建設會產生維護成本。該成本的增長會根據公司基礎建設的規模而加倍增大,因此該設定對大公司的影響比對小公司更大 @@ -1284,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :旋轉高度圖 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :逆時針 STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :順時針 STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :平面地圖高度:{STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :啟用地圖邊緣區塊平整化:{STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :如果停用此選項,地圖的邊緣必然是海洋 STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}北邊的地圖邊緣有一格以上的區塊非空地 STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}邊緣有一格以上的區塊非水域 @@ -1342,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :長格式 (31st STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :短格式 (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :國際格式 (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :當 NewGRF 套包沒有指定配色時,使用的預設配色: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :為沒有指定配色的 NewGRF 套包設定預設配色 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :預設的 (D) 色盤 -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :原裝 (W) 色盤 - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :自動在開始新遊戲時暫停:{STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :如啟用此選項,遊戲在開始時會自動暫停,方便玩家詳細觀察地圖 STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :當暫停時允許: {STRING} @@ -1370,7 +1345,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :設定開始新 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :最先可用的軌道 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :最新可用的軌道 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :最常用的軌道 -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :顯示列車佔用的路徑:{STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :顯示列車預留佔用的路徑:{STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :設定是否在有列車預留的軌道著色,使玩家更清楚觀察到列車經過路徑號誌時預留的路徑 STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :使建設工具在建造後仍保持啟用狀態:{STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :設定是否在完成建造橋樑、隧道或其他基礎建設後保持點選有關的工具按鈕 @@ -1568,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :每 {COMMA} 座 STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :無 STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :初始城市規模倍率:{STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :設定遊戲開始時城市的大小 (相對於一般市鎮而言) -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :鋪設道路時移除不合理的路面:{STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :設定是否在資助市鎮重建道路時移除死路 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :每{STRING}日更新貨物分配圖 STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :指定每次計算貨物分配圖之間的時間。由於每次重新計算只會處理一個貨物分配圖元件,因此本設定不代表「每若干日重新計算整個貨物分配圖」。{}如果此設定賦值越小,則系統需要使用更多處理器時間計算貨物分配圖。相反,如果此設定賦值越大,則貨物被派往新路線所需的時間越長。 @@ -1585,7 +1558,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :設使有交通 STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :裝甲貨物分配方式:{STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :依原有設定,「裝甲貨物」包括溫帶場景的「貴重物品」、寒帶場景的「金塊」及亞熱帶場景的「鑽石」。一些 NewGRF 可能有不同設定。{} 設使有交通路線連接甲、乙兩站。「對稱」指甲站往乙站的郵件數量與乙站往甲站的裝甲貨物數量大致相同。「不對稱」指任何一站往另一站的裝甲貨物數量皆由系統隨意決定。「手動」指系統不會自動分配裝甲貨物的目的地。{} 建議的設定:在溫帶場景應使用「對稱」,因為銀行會互相運送貴重物品;而在寒帶場景及亞熱帶場景應使用「不對稱」,因為銀行不會把金塊或鑽石送回礦場。 STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :其他貨物分配方式:{STRING} -STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :設使有交通路線連接甲、乙兩站。「對稱」指甲站往乙站的貨物數量與乙站往甲站的貨物數量大致相同。「不對稱」指任何一站往另一站的貨物數量皆由系統隨意決定。「手動」指系統不會自動分配貨物的目的地。{}由於貨物一般只會被單方向運輸,此設定應被賦值為「不對稱」或「手動」。 +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :如設定此值為「不對稱」,則任何一站往另一站的貨物數量皆由系統隨意決定。如設定此值為「手動」,則系統不會自動分配貨物的目的地。 STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :分配精確度:{STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :此設定賦值越大,則運算連結圖所需的處理器時間越長,您可能會因此見到遊戲運行延遲。如果此設定賦值越小,則貨物分配的準確度越低,而您可能會發現部份貨物沒有被送往您預期它們會到達的目的地。 STR_CONFIG_SETTING_DEMAND_DISTANCE :距離對需求的影響:{STRING} @@ -1631,27 +1604,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :英制(英呎 STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :米制(米) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :國際單位(米) -STR_CONFIG_SETTING_GUI :{ORANGE}介面 STR_CONFIG_SETTING_LOCALISATION :{ORANGE}本地化 -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}建造 -STR_CONFIG_SETTING_VEHICLES :{ORANGE}運輸工具 -STR_CONFIG_SETTING_STATIONS :{ORANGE}車站 -STR_CONFIG_SETTING_ECONOMY :{ORANGE}經濟 -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}貨物分配 -STR_CONFIG_SETTING_AI :{ORANGE}競爭對手 -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}顯示選項 -STR_CONFIG_SETTING_INTERACTION :{ORANGE}互動 STR_CONFIG_SETTING_SOUND :{ORANGE}音效 -STR_CONFIG_SETTING_NEWS :{ORANGE}新聞與訊息 -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}號誌 -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}貨物裝載 -STR_CONFIG_SETTING_AI_NPC :{ORANGE}電腦玩家 -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}自動更新 -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}維修 +STR_CONFIG_SETTING_INTERFACE :{ORANGE}介面 +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}建造 +STR_CONFIG_SETTING_VEHICLES :{ORANGE}運輸工具 STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}路線 -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}列車 -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}市鎮 -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}工業 +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}市鎮 +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}工業 +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}貨物分配 +STR_CONFIG_SETTING_AI :{ORANGE}競爭對手 +STR_CONFIG_SETTING_AI_NPC :{ORANGE}電腦玩家 STR_CONFIG_SETTING_PATHFINDER_OPF :預設 STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1771,7 @@ STR_LIVERY_FREIGHT_TRAM :載貨電車 STR_FACE_CAPTION :{WHITE}選擇臉孔 STR_FACE_CANCEL_TOOLTIP :{BLACK}取消選擇新臉孔 STR_FACE_OK_TOOLTIP :{BLACK}接受新臉孔 +STR_FACE_RANDOM :{BLACK}亂數化 STR_FACE_MALE_BUTTON :{BLACK}男性 STR_FACE_MALE_TOOLTIP :{BLACK}選擇男性臉孔 @@ -2668,6 +2632,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}儲存 STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}以選定的名稱儲存目前遊戲 STR_SAVELOAD_LOAD_BUTTON :{BLACK}載入 STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}載入所選的遊戲 +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}載入所選的高度圖 STR_SAVELOAD_DETAIL_CAPTION :{BLACK}遊戲詳細資料 STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}沒有可用的資訊 STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2686,10 +2651,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}工業 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}雪線高度: STR_MAPGEN_SNOW_LINE_UP :{BLACK}將雪線高度上移一層 STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}將雪線高度下移一層 -STR_MAPGEN_RANDOM_SEED :{BLACK}亂數種子: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}點選可輸入亂數種子 -STR_MAPGEN_RANDOM :{BLACK}亂數化 -STR_MAPGEN_RANDOM_HELP :{BLACK}改變地形產生的亂數種子 STR_MAPGEN_LAND_GENERATOR :{BLACK}地形產生器: STR_MAPGEN_TREE_PLACER :{BLACK}植樹演算法: STR_MAPGEN_TERRAIN_TYPE :{BLACK}地形種類: @@ -2716,7 +2677,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}高度 STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}大小: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}輸入亂數種子 STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}修改雪線高度 STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}修改開始年份 @@ -3296,12 +3256,13 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :未分組的車 STR_GROUP_DEFAULT_SHIPS :未分組的船舶 STR_GROUP_DEFAULT_AIRCRAFTS :未分組的飛機 -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}群組 - 點選群組以顯示其中的運輸工具清單 +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}群組 - 點選群組以顯示其中的運輸工具清單。拖曳群組標籤以排列群組的次序和層級。 STR_GROUP_CREATE_TOOLTIP :{BLACK}點選可建立群組 STR_GROUP_DELETE_TOOLTIP :{BLACK}移除所選群組 STR_GROUP_RENAME_TOOLTIP :{BLACK}重新命名群組 STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}點選可保護此群組排除在全域自動替換設定之外 + STR_GROUP_ADD_SHARED_VEHICLE :加入共享指令的運具 STR_GROUP_REMOVE_ALL_VEHICLES :移去所有運具 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 57fc7c2637..9b39aa045c 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -811,13 +811,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} tersanede bekliyor STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} hangarda bekliyor -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} aracının programında çok az talimat var STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} aracının boş bir emri var STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} talimatları arasında tekrarlanmış olanlar var STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} aracının geçersiz talimatları var -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} eskiyor STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} çok eskidi @@ -955,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Ekran görüntüsü biçimi -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Kullanılacak ekran görüntüsü biçimini seçin - 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 @@ -1073,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Şirket ayarlar STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tür: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Aşağıdaki listeyi yalnızca değişen ayarları göstererek sınırlandırır +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Aşağıdaki listeyi önceden tanımlı filtreler kullanarak sınırlandırır STR_CONFIG_SETTING_RESTRICT_BASIC :Temel ayarlar STR_CONFIG_SETTING_RESTRICT_ADVANCED :Gelişmiş ayarlar STR_CONFIG_SETTING_RESTRICT_ALL :Uzman ayarları / tüm ayarlar @@ -1082,11 +1077,11 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Yeni oyun ayarl STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Aşağıdaki liste belirli bir ayar türüne göre kısıtlanır STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Tüm ayar türleri -STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kullanıcı ayarları (kayıtlı dosyada saklanmaz; tüm oyunları etkilemektedir) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Oyun ayarları (kayıtlı dosyada saklanır; sadece yeni oyunu etkilemektedir) -STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Oyun ayarları (kayıtlı dosyada saklanır; sadece yeni oyunu etkilemektedir) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Şirket ayarları (kayıtlı dosyada saklanır; sadece yeni oyunu etkilemektedir) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Şirket ayarları (kayıtlı dosyada saklanır; sadece yeni oyunu etkilemektedir) +STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :İstemci ayarları (kayıtlı dosyada saklanmaz; tüm oyunları etkilemektedir) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Oyun ayarları (kayıtlı dosyada saklanır; sadece yeni oyunları etkilemektedir) +STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Oyun ayarları (kayıtlı dosyada saklanır; sadece geçerli oyunu etkilemektedir) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Şirket ayarları (kayıtlı dosyada saklanır; sadece yeni oyunları etkilemektedir) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Şirket ayarları (kayıtlı dosyada saklanır; sadece geçerli şirketi etkilemektedir) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Tüm arama sonuçlarını{}{SILVER}Kategoriyi {BLACK}{WHITE}{STRING} ayarlayarak göster STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Tüm arama sonuçlarını{}{SILVER}Türü {BLACK} {WHITE}Tüm ayar türleri olarak ayarlayarak göster STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Tüm arama sonuçlarını{}{SILVER}Kategoriyi {BLACK} {WHITE}{STRING} {BLACK}ve {SILVER}Türü {BLACK} {WHITE}Tüm ayar türleri olarak ayarlayarak göster @@ -1131,8 +1126,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Araçları ya d STR_CONFIG_SETTING_CITY_APPROVAL :Arazi şekillendirmeye karşı belediye meclisinin tavrı: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Şirketlerin sebep olduğu gürültü ve çevreye zararın kasaba beğenilerini ve ilerideki inşaatlarını nasıl etkileyeceğini seçin -STR_CONFIG_SETTING_BUILDONSLOPES :Kıyılara ve eğimli araziye inşaat izni: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Etkinleştirilirse raylar ve istasyonlar çoğu zaman eğimlerin üzerine inşa edilebilir. Etkinliği kaldırılırsa raylar ve istasyonlar sadece raylarla aynı doğrultuda olan eğimlerin üzerine inşa edilebilir, böylelikle altyapı gerektirmez STR_CONFIG_SETTING_AUTOSLOPE :Binaların, yolların, rayların v.b. altındaki araziyi değiştirmeye izin ver (otomatik eğim): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Binaları ve yolları kaldırmaksızın altlarında yeryüzü şekillendirmesi yapılmasına izin ver STR_CONFIG_SETTING_CATCHMENT :İstasyon kapsama alanlarının daha gerçeğe yakın ölçülerde olmasına izin ver: {STRING} @@ -1157,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Tren ve gemiler STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90 derece dönüşler yatay bir rayı bitişik karede dikey bir ray parçası takip ettiği zaman gerçekleşir, böylelikle trenin diğer ray kombinasyonlarındaki alışılagelmiş 45 derecelik dönüşü yerine karenin kenarından geçerken 90 derecelik dönüş yapmasını sağlar. Bu aynı zamanda gemilerin dönme açısına da uygulanır STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Doğrudan bitişik olmayan istasyonları birleştirme izni: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Mevcut parçalarına doğrudan temas etmeksizin bir istasyona parçalar eklenmesine müsaade et. Yeni parçalar eklenirken Ctrl+Tıklama gerekir -STR_CONFIG_SETTING_IMPROVEDLOAD :Geliştirilmiş yükleme algoritması kullan: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Etkinleştirilirse istasyonda bekleyen araçlar sırayla yüklenecektir. Bir sonraki aracın yüklenmesi ancak istasyonda bekleyen ilk aracı tamamen doldurmaya yetecek kadar kargo olduğunda başlar -STR_CONFIG_SETTING_GRADUAL_LOADING :Araçlar yavaş yavaş dolsun: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Sadece yüklenen kargo miktarına bağlı olarak belirli bir zaman içerisinde her şeyin tek seferde yüklenmesi yerine, araçları kendilerine özel yükleme sürelerini kullanarak teker teker yükle STR_CONFIG_SETTING_INFLATION :Enflasyon: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Maliyetlerin ödemelerden biraz daha hızlı arttığı ekonomide enflasyonu etkinleştir -STR_CONFIG_SETTING_SELECTGOODS :Sadece istek varsa kargo kabul edilsin: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Bir istasyona sadece bir yükleme aracından talep edilen kargoyu ulaştır. Bu ayarlama bir istasyona getirilmeyen kargolar yüzünden kötü derecelendirmeyi önler STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Azami köprü uzunluğu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Köprü inşası için azami uzunluk STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Azami tünel uzunluğu: {STRING} @@ -1192,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Bir trenin plat STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :yakın uç STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :orta STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :uzak uç -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Karayolu taşıtları kuyruğa girsin (iç içe geçerek): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Kara taşıtlarını meşgul olan duraklar boşalana kadar önlerinde bekleyecek şekilde ayarlayın STR_CONFIG_SETTING_AUTOSCROLL :Fare kenardayken pencere etkin: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Etkinleştirilirse fare pencerenin kenarına yaklaştığında görüş alanı kaymaya başlayacaktır STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Kapalı @@ -1224,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Şehiriçi yoll STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Kasabanın sahip olduğu yollarda yol üstü durakların inşasına izin verir STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Rakiplerin yolu üzerinde durak yapmaya izin ver: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Başka şirketlerin sahip olduğu yollarda yol üstü durakların inşasına izin verir -STR_CONFIG_SETTING_ADJACENT_STATIONS :Bitişik istasyonlar izinli: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Farklı istasyonların birbirine değmesine izin verir -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Birden çok NewGRF lokomotif setini etkinleştir: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Eski NewGRF'ler için uyumluluk seçeneği. Ne yaptığınızı kesin olarak bilmiyorsanız, bu seçeneği kapatmayın! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Araçlar varken bu ayarı değiştirmezsiniz STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Altyapı bakımları: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Etkinleştirildiğinde; altyapı, bakım giderine neden olur. Maliyet ağ büyüklüğüne göre daha hızlı yükselir, dolayısıyla büyük şirketleri küçüklere göre daha çok etkiler @@ -1285,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Yükseklik hari STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Saat yönünün tersi STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Saat yönü STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Düzlük bir senaryonun yükseklik seviyesi: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Harita kenarlarındaki karelerde bulunan araziyi şekillendirmeye izin ver: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Kapatıldığı takdirde haritanın kenarları daima okyanusla çevrili olur. STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Kuzey kenarda bir veya daha fazla kare boş değil STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Kenarlardan birinde bir veya daha fazla kare su değil @@ -1343,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :uzun (31 Ara 20 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :kısa (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Palet belirtmeyen NewGRF'ler için varsayılan palet: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Hangi paleti kullandığını belirtmeyen NewGRF dosyaları için kullanılacak varsayılan palet. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Öntanımlı (D) palet -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Eski (W) palet - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Yeni bir oyun başlatırken zamanı duraklat: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Etkinleştirildiğinde, haritaya ayrıntılı bir bakış atabilmek için yeni oyuna başlarken otomatik olarak oyun duraklatılır. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Oyun durakladığında izin verilenler: {STRING} @@ -1569,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :{COMMA}'de 1 STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Hiçbiri STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Birincil şehir büyüklüğü çarpanı: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Oyun başlangıcında şehirlerin normal kasabalara kıyasla ortalama büyüklüğü -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Yol yapımı sırasında gerçekçi olmayan yerleri kaldır: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Yolların yeniden yapılmasını finanse ederken çıkmaz sokakları kaldır STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Dağıtım grafiğini her {STRING} günde bir güncelle STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Bağlantı grafiğinin tekrar hesaplamaları arasında geçen süre. Her tekrar hesaplama grafiğin öğelerinden biri için planları hesaplar. Yani bu ayar için girdiğiniz X değeri tüm grafiğin her X günde bir güncelleneceği manasına gelmez; sadece grafiğin öğelerinden biri güncellenir. Daha kısa sürelere ayarladıkça hesaplamalar için daha fazla işlemci süresi gerekir. Daha uzun süreler seçtikçe yeni güzergahlardaki kargo dağıtımının başlaması da daha uzun sürer. @@ -1632,27 +1604,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (Ingil STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrik (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (Uluslararası Ölçüm Sistemi) (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Arayüz STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Yerelleştirme -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}İnşaat -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Araçlar -STR_CONFIG_SETTING_STATIONS :{ORANGE}İstasyonlar -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Kargo Dağılımı -STR_CONFIG_SETTING_AI :{ORANGE}Rakipler -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Görüntü seçenekleri -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Etkileşim STR_CONFIG_SETTING_SOUND :{ORANGE}Ses efektleri -STR_CONFIG_SETTING_NEWS :{ORANGE}Haberler ve mesajlar -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Sinyaller -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Kargo idaresi -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Bilgisayar oyuncuları -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Otomatik yenileme -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Bakımlar +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Arayüz +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}İnşaat +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Araçlar STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Yönlenme -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trenler -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Şehirler -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Endüstri +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Şehirler +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Endüstri +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Kargo Dağılımı +STR_CONFIG_SETTING_AI :{ORANGE}Rakipler +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Bilgisayar oyuncuları STR_CONFIG_SETTING_PATHFINDER_OPF :Özgün STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1809,6 +1771,7 @@ STR_LIVERY_FREIGHT_TRAM :Yük Tramvayı STR_FACE_CAPTION :{WHITE}Surat Seçimi STR_FACE_CANCEL_TOOLTIP :{BLACK}Seçimi iptal et STR_FACE_OK_TOOLTIP :{BLACK}Seçimi Kabul et +STR_FACE_RANDOM :{BLACK}Rastgele STR_FACE_MALE_BUTTON :{BLACK}Erkek STR_FACE_MALE_TOOLTIP :{BLACK}Erkek suratlarıni seç @@ -2669,6 +2632,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Kaydet STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Oyunu seçilen isimle kaydet STR_SAVELOAD_LOAD_BUTTON :{BLACK}Yükle STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Seçili oyunu yükle +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Seçili yükseklik haritasını yükle STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Oyun Ayrıntıları STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Mevcut bilgi yok STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2687,10 +2651,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Fabrika STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Kar yüksekliği: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Kar yüksekliğini bir arttır STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Kar yüksekliğini bir azalt -STR_MAPGEN_RANDOM_SEED :{BLACK}Rastgele sayı: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Rastgele bir sayı girmek için tıklayın -STR_MAPGEN_RANDOM :{BLACK}Rastgele -STR_MAPGEN_RANDOM_HELP :{BLACK}Harita yapımı için kullanılan rastgele sayıyı değiştir STR_MAPGEN_LAND_GENERATOR :{BLACK}Harita üretici: STR_MAPGEN_TREE_PLACER :{BLACK}Ağaç algoritması: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Arazi türü: @@ -2717,7 +2677,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Yüksekl STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Boyut: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Rastgele bir tohum girin STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Kar yüksekliğini değiştir STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Başlangıç yılını değiştir @@ -3297,12 +3256,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Gruplanmamış STR_GROUP_DEFAULT_SHIPS :Gruplanmamış gemiler STR_GROUP_DEFAULT_AIRCRAFTS :Gruplanmamış uçaklar -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruplar - gruba ait araçları listelemek için grubun üzerine tıklayın +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruplar - gruba ait araçları listelemek için grubun üzerine tıklayın. Hiyerarşiyi düzenlemek için grupları sürükleyip bırakın. STR_GROUP_CREATE_TOOLTIP :{BLACK}Grup oluşturmak için tıklayın STR_GROUP_DELETE_TOOLTIP :{BLACK}Seçili grubu sil STR_GROUP_RENAME_TOOLTIP :{BLACK}Seçili grubun ismini değiştir STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Bu grubu otomatik yenilemeden ayrı tutmak için tıklayın +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Grubu Sil +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Bu ve alt gruplarını silmek istediğinizden emin misiniz? + STR_GROUP_ADD_SHARED_VEHICLE :Bütün paylaşılan araçlar STR_GROUP_REMOVE_ALL_VEHICLES :Bütün araçları çıkar @@ -4276,6 +4238,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... zate STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Grup oluşturulamıyor... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Bu grup silinemiyor... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Grubun ismi değiştirilemiyor... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Üst grup ayarlanamıyor... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Bu gruptaki bütün araçlar çıkartılamıyor... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Araç bu gruba eklenemiyor... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Paylaşılan araçlar bu gruba eklenemiyor... diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 1ae1f1202a..28e74dc4e1 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -938,13 +938,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} чекає в депо STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} чекає в ангарі -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} має замало завдань STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} має недійсне завдання STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} має подвоєння завдань STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} має невірну станцію в завданнях -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} застарів STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} дуже застарів @@ -1082,9 +1080,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Розд STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Виберіть роздільну здатність екрану STR_GAME_OPTIONS_RESOLUTION_OTHER :інша -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Формат знімків екрану -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_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 "" а ів} @@ -1255,8 +1250,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Перемкн STR_CONFIG_SETTING_CITY_APPROVAL :Ставлення ради міста до реструктуризації його території: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Виберіть, який рівень шуму та руйнування довкілля компаніями впливає на їх рейтинг для міст та подальші будівельні дії в їх межах -STR_CONFIG_SETTING_BUILDONSLOPES :Дозволити будівництво на схилах та узбережжях: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :При включенні шляхи та станції можна будувати на більшості схилів. При відключенні допускається лише будівництво, що не потребує добудови фундаментів (шляхи за напрямом схилу, станції на повністю рівній землі) STR_CONFIG_SETTING_AUTOSLOPE :Дозволити зміну схилів під будівлями, дорогами тощо: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Можливість змінювати ландшафт під будівлями та дорогами без необхідності їх зносу STR_CONFIG_SETTING_CATCHMENT :Більш реалістічні зони покриття станцій: {STRING} @@ -1281,14 +1274,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Заборон STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :При включенні прямокутні перетини шляхів не будуть вважатися поворотами. Для повороту необходно прокладати шляхи під кутом 45°. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Станції можуть складатися з не суміжних частин: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Дозволяє об'єднання в одну станцію частин, що не примикають одна до одної. Щоб приєднати нову станцію до існуючої необхідно використовувати Ctrl+Click при будівництві. -STR_CONFIG_SETTING_IMPROVEDLOAD :Використовувати поліпшений алгоритм вантаження: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :При включенні вантаження декількох транспортних засобів на станції здійснюється по черзі. Вантаження наступного транспортного засобу починається тільки після завантаження попереднього. -STR_CONFIG_SETTING_GRADUAL_LOADING :Поступове вантаження: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :При включенні транспортні засоби завантажуються поступово, а час вантаження залежить від типу транспорту. Інакше весь вантаж переміщується одразу за час, що залежить від його кількості. STR_CONFIG_SETTING_INFLATION :Інфляція: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Дозволяє інфляцію в економіці. При цьому витрати з часом зростають дещо швидше за прибутки -STR_CONFIG_SETTING_SELECTGOODS :Постачати вантаж на станцію тільки якщо на нього був попит: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Дозволити постачання на станцію тільки тих вантажів, які можуть перевозити транспортні засоби, що прибували до цієї станції. Це запобігає низькому рейтингу відносно вантажів, що не обслуговуються. STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Максимальна довжина мостів: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Максимально допустима довжина мостів STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Максимальна довжина тунелів: {STRING} @@ -1316,8 +1303,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Задайте, STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :на початку STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :посередині STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :наприкінці -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Автотранспорт шикується в чергу на зупинках: {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :При включенні дорожній транспорт буде очікувати в черзі перед зайнятими зупинками. STR_CONFIG_SETTING_AUTOSCROLL :Прокручувати вікно, коли курсор з краю: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :При включенні вміст вікон огляду буде прокручуватись при підведенні курсора до краю вікна STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Вимкнено @@ -1348,10 +1333,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Дозволи STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Дозволяє встановлення зупинок на дорогах, якими володіє місто. STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Дозволити встановлення зупинок на дорогах конкурентів: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Дозволяє встановлення зупинок на дорогах, якими володіють конкуренти. -STR_CONFIG_SETTING_ADJACENT_STATIONS :Різні станції можуть примикати одна до одної: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Різні станції можуть примикати одна до одної -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Дозволити декілька NewGRF наборів транспорту: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Налаштування для сумісності зі старими файлами NewGRF. Не відключайте, якщо не впевнені в необхідності цього! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Цю настройку не можливо змінити при наявності транспорту у грі STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Витрати на утримання інфраструктури: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :При включенні інфраструктура потребує коштів для утримання. Витрати збільшуються не пропорційно з ростом розміру мережі, більше впливаючи на великі компанії ніж на малі. @@ -1409,8 +1390,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Поворот STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :проти годинникової стрілки STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :за годинниковою стрілкою STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Основний рівень суші плаского рельєфу: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Дозволити зміну рельєфу на краю карти: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :В разі відключення краї карти завжди будуть водними STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Одна або більше клітинок з північного краю не є вільними STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Одна або більше клітинок на одному з країв не є водними @@ -1467,11 +1446,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :довгий (3 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :короткий (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Стандартна палітра файлів NewGRF: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Налаштування палітри для файлів NewGRF, в яких вона не вказана. -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Визначена палітра (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Стара палітра (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Пауза на початку нової гри: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :При включенні на початку гри автоматично вмикається пауза. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Дозволити в режимі паузи: {STRING} @@ -1693,8 +1667,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 з {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Жодного STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Множник розміру мегаполісів: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Середньостатистичне відношення початкового розміру мегаполісів порівняно зі звичайними містами. -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Прибрати безглузді елементи доріг під час їх будівництва: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Дозволяє видаляти тупіки на дорогах міста під час рекострукції доріг. STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Оновлювати графік доставки раз на {STRING} д{P 0:2 "ень" "ні" "нів"} STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Час між послідовними обрахунками зв'язків на графіку. Кожен обрахунок здійснюється для одного параметра графіку. Тобто значення Х у налаштуваннях не означає, що графік оновлюється кожні Х днів. Лише деякі складові. При виборі параметру "часто" ЦП потрібно більше часу для обрахунку. При виборі параметру "рідко" наступний обрахунок почнеться після запуску доставки за новим маршрутом. @@ -1753,27 +1725,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Імперсь STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Метричні (м) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :СІ (м) -STR_CONFIG_SETTING_GUI :{ORANGE}Інтерфейс STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Локалізація -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Будівництво -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспорт -STR_CONFIG_SETTING_STATIONS :{ORANGE}Станції -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Економіка -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Розподіл вантажів -STR_CONFIG_SETTING_AI :{ORANGE}Конкуренти -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Параметри відображення -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Параметри взаємодії STR_CONFIG_SETTING_SOUND :{ORANGE}Звукові ефекти -STR_CONFIG_SETTING_NEWS :{ORANGE}Новини та повідомлення -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Сигнали -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Обробка вантажів -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Віртуальні гравці -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Автозаміна -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Техогляд +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Інтерфейс +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Будівництво +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Транспорт STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршрути -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Поїзди -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Міста -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Підприємства +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Міста +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Підприємства +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Розподіл вантажів +STR_CONFIG_SETTING_AI :{ORANGE}Конкуренти +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Віртуальні гравці STR_CONFIG_SETTING_PATHFINDER_OPF :стандартний STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1929,6 +1891,7 @@ STR_LIVERY_FREIGHT_TRAM :Вантажн STR_FACE_CAPTION :{WHITE}Вибір обличчя STR_FACE_CANCEL_TOOLTIP :{BLACK}Відмінити вибір нового обличчя STR_FACE_OK_TOOLTIP :{BLACK}Підтвердити вибір нового обличчя +STR_FACE_RANDOM :{BLACK}Випадково STR_FACE_MALE_BUTTON :{BLACK}Чоловік STR_FACE_MALE_TOOLTIP :{BLACK}Вибрати чоловіче обличчя @@ -2803,10 +2766,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Кіль STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Висота лінії снігу: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Підвищити лінію снігу STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Понизити лінію снігу -STR_MAPGEN_RANDOM_SEED :{BLACK}Випадкове число: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Клік для вводу значення -STR_MAPGEN_RANDOM :{BLACK}Випадково -STR_MAPGEN_RANDOM_HELP :{BLACK}Змінити початкове значення для генератора STR_MAPGEN_LAND_GENERATOR :{BLACK}Ландшафт: STR_MAPGEN_TREE_PLACER :{BLACK}Насадження дерев: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тип ландшафту: @@ -2833,7 +2792,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Назв STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Розмір: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Введіть випадкове число STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Змінити висоту лінії снігу STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Змінити рік початку гри @@ -3402,6 +3360,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Стер STR_GROUP_RENAME_TOOLTIP :{BLACK}Перейменувати вибрану групу STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Клікніть, щоб захистити групу від глобальної автозаміни + STR_GROUP_ADD_SHARED_VEHICLE :Додати спільний транспорт STR_GROUP_REMOVE_ALL_VEHICLES :Позбутися всього транспорту diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index b8e2c62dd7..9074acd6ef 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -440,9 +440,7 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Пӗлт -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE -# end of order system +# Order review system / warnings @@ -497,8 +495,6 @@ STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Тулл STR_GAME_OPTIONS_RESOLUTION :{BLACK}Экрана сӑнарлама пултарни STR_GAME_OPTIONS_RESOLUTION_OTHER :расна -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}Формат экран сӑнӗ - @@ -583,7 +579,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31 - STR_CONFIG_SETTING_NEWS_SUBSIDIES :Грантсем: {STRING} STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Сӳнтер @@ -611,14 +606,11 @@ STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Питӗ хӑв -STR_CONFIG_SETTING_GUI :{ORANGE}Интерфейс -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Лартӑм +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Интерфейс +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Лартӑм STR_CONFIG_SETTING_VEHICLES :{ORANGE}Ҫул-йӗр: -STR_CONFIG_SETTING_STATIONS :{ORANGE}Станцисем: +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Хуласем STR_CONFIG_SETTING_AI :{ORANGE}Ӑмӑртуҫӑсем -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Автоҫӗнет -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Пуйӑссем -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Хуласем STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1114,6 +1106,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу + # Build vehicle window diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 4b27de62aa..f203b1f14e 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} stiet opsteld yn depot STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} stiet opsteld yn hangar -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} hat te min opdrachten yn it skema stean STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} hat in leeche opdracht STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} hat dûbele opdrachten STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} hat in in ûnjildich stasjon yn syn opdrachten -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} begjint âld te wurden STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} begjint tige âld te wurden @@ -954,9 +952,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Skermôfbyldingsformaat -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Selektearje it skermôfbyldingsformaat om te brûken - 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 @@ -1130,8 +1125,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Skeakel rampen STR_CONFIG_SETTING_CITY_APPROVAL :Hâlding gemeenten tsjinoer werstrukturearring: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoe grut ympact fan lûdsoerlêst en omwrâldskea toch bedriuwen is op har reputaasje by de lokale bestjoeren en takomstige konstruksje yn harren mêd -STR_CONFIG_SETTING_BUILDONSLOPES :It boue op in helling tastean: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :By ynskeakeljen kinne spoarbanen en stasjon op de measte skeantes bout wurde. Oars meie sy allinich bout wurde op skeantes dy't in oerienkommende rjochting hawwe en dêrtroch gjin fûndearrings nedich binne STR_CONFIG_SETTING_AUTOSLOPE :Omkriten oanpasse under gebouen, spoaren, ensafuorthinne tastean (autoslope): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Stean lânskipsbewurkings ûnder gebouwen en spoarbanen ta sûnder dat dizze ferwidere wurde STR_CONFIG_SETTING_CATCHMENT :Gebrûk meer realistyske hannelsgebieten: {STRING} @@ -1156,14 +1149,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Ferbied treinen STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Bochten fan 90 graden komme foar op it spoar at in horizontale spoarwei folge wurdt troch in fertikaal stik sparwei. In trein soe yn dizze sitewaasje in bocht fan 90 graden meitsje yn stee fan de normale 45 graden. Dizze opsje hat ek effect op de swaaisirkel fan skippen STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Stean it gearfoegjen fan stasjon dy't elkoar net reitsje ta: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Stean it ta nije parten oan in stasjon ta foegjen sûnder dat dizze in besteand diel fan it stasjon oanrekje. Brûk Ctrl+Klik om dizze parten de pleatsen -STR_CONFIG_SETTING_IMPROVEDLOAD :Brûk in ferbetterd laadalgoritme: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :By ynskeakeljen wurde meardere fiertugen op ien stasjon efter elkoar laden yn stee fan tagelyk. It laden fan de oare fiertugen begjint pas at der genôch fracht is om it earste fiertúch fol te laden -STR_CONFIG_SETTING_GRADUAL_LOADING :Fiertúgen stadich lade: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Laad fiertugen stadich en op basis fan hja spesifyke eigenskippen yn stee fan allinich op basis fan de hoemannichte fracht dy't oerset wurdt STR_CONFIG_SETTING_INFLATION :Ynflaasje: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Skeakel ynflaasje foar de ekonomy yn, hjirby gean de kosten justjes hurder omheech as de ynkomsten -STR_CONFIG_SETTING_SELECTGOODS :Fracht allinnich ôflevere op in stasjon at dêr in fraach foar bestiet: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Fracht allinnich oant it stasjon levere at der in oer fiertúch deselde fracht oan it laden is. Dit foarkomt minne wurdearrings foar frachten dy't net troch it stasjon sels ôfhannele wurde STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksimale brêgelingte: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksimumlingte wêroerst brêgen oanlizze kinst STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksimale tunnellingte: {STRING} @@ -1191,8 +1178,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Plak wêr't tre STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :oan it ein STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :yn it midden STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :oan it ein -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Wachtrijfoarming foar dykfiertugen (mei bywurkingen): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Lit dykfiertugen wachtsje by besette haltes oant dizze wer frijkomme STR_CONFIG_SETTING_AUTOSCROLL :Ferskow it skerm at de mûs op de râne is: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :By ynskeakeljen sil it loaitsfinster scrolle at de mûs by de râne fan it finster komt STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Utskeakele @@ -1223,10 +1208,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Stean it bouwen STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Stean it bouwen fan haltes op troch de stêd behearde diken ta STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Stean it bouwen fan haltes op troch in tsjinstanner behearde diken ta {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Stiet it bouwen fan haltes op troch in tsjinstanner behearde diken ta -STR_CONFIG_SETTING_ADJACENT_STATIONS :Bouwe fan oanbuorjende stasjons tastean: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Stean ta dat ûnderkate stasjons harren oanreitsje -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Meitsje it mooglik meardere NewGRF-fiertúchsets te brûken: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Kompatibiliteitsopsje foar âlde NewGRF's. Feroarje dizze opsje net at jo net witte wat jo dogge! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}At der fiertugen yn it spul binne kin dizze ynstelling net feroare wurde STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Ynfrastruktuerûnderhâld: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :By ynskeakeljen binne der koster ferbûn oan it ûnderhâld fan ynfrastruktuer. De kosten wurde heger by gruttere netwurken wêrtoch gruttere bedriuwen hjir mear lêst fan hawwe @@ -1284,8 +1265,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Hichtekaartrota STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Tsjin de klok yn STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Mei de klok mei STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :De hichte fan in plat senario wurdt: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Stean it bewurkjen fan de teilen oan de râne fan 'e kaart ta: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :By útskeakeljen sille de de rânen fan de kaart altyd oseaan wêze STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Ien as meardere teilen oan de noardkant binne net leech STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Ien as meardere teilen oan de kant binne gjin wetter @@ -1342,11 +1321,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :lang (31 Dec 20 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :koart (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Standerdpalet dy't brûkt wurde moat foar NewGRF's dy't sels gjin palet spesifisearre: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Standerdpalet dy't brûkt wurde moat foar NewGRF's dy't sels gjin palet spesifisearre -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Standerdpalet (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Erfskippalet (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatysk skoftsje by de start fan in nij spul: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :By ynskeakeljen sil it spul autmatysk skofte wurde at der in nij spul starte wurdt. Dit jout tiid om earst de kaart te besjen STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Under skoft tastean: {STRING} @@ -1518,7 +1492,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :gewoan STR_CONFIG_SETTING_TOWN_GROWTH_FAST :snel STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Hiel snel STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Begjin stêdgrutte fermenigfuldiger: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Helje frjemde stikken dyk fourt by it bouen fan nije routes: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :hânmjittich STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asymmetrysk @@ -1565,25 +1538,16 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Ymperiaal (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrysk (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Interface STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Lokalisaasje -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}konstruksje +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}konstruksje STR_CONFIG_SETTING_VEHICLES :{ORANGE}Auto's -STR_CONFIG_SETTING_STATIONS :{ORANGE}Stasjons -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Ekonomy -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Frachtdistribusje -STR_CONFIG_SETTING_AI :{ORANGE}Tsjinstânners -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Lit moglikheden sjen -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Interaksje -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Seinen -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Fracht ôfhanneling -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer spilers -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Automatysk fernije -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Ûnderhâld STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Route -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Treinen -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Stêd -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}yndustryen +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Stêd +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}yndustryen +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Frachtdistribusje +STR_CONFIG_SETTING_AI :{ORANGE}Tsjinstânners +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Computer spilers STR_CONFIG_SETTING_PATHFINDER_OPF :Orizjiniel STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2272,10 +2236,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Oantal y STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hichte sniegrins: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Sniegrins ien omheech ferpleatsje: STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sniegrins ien nei beneden ferpleatsje: -STR_MAPGEN_RANDOM_SEED :{BLACK}Samar in getal: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Klik om sels in getal yn te fieren -STR_MAPGEN_RANDOM :{BLACK}Meitsje eigenwillich -STR_MAPGEN_RANDOM_HELP :{BLACK}Feroarje it getal hokker brûkt wurdt foar de terreingeneraasje STR_MAPGEN_LAND_GENERATOR :{BLACK}Lângenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Boskalgoritme: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terreintype: @@ -2302,7 +2262,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Namme hi STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grutte: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Samar in getal ynfiere STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{BLACK}Sniehichte oanpasse STR_MAPGEN_START_DATE_QUERY_CAPT :{BLACK}Startjier oanpasse @@ -2753,6 +2712,7 @@ STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Stjoer nei hang + # Build vehicle window diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index d2f5df3269..46bdf0bb1a 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -441,9 +441,7 @@ STR_NEWS_MESSAGE_CAPTION :{WHITE}Sendajo -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE -# end of order system +# Order review system / warnings @@ -478,7 +476,6 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :altra - # Custom currency window @@ -549,7 +546,6 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora - STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :omnube @@ -960,6 +956,7 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Negrupigita aer + # Build vehicle window diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 917509e464..193f94a752 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -752,9 +752,7 @@ STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLAC -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE -# end of order system +# Order review system / warnings STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} не може да се стигне до следната дестинација, бидејќи тоа е надвор од опсегот @@ -790,7 +788,6 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Секој ме - # Custom currency window @@ -837,7 +834,6 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Дебелин - STR_CONFIG_SETTING_SOUND_NEW_YEAR :Крај на година: {STRING} STR_CONFIG_SETTING_SOUND_CONFIRM :Изградба: {STRING} STR_CONFIG_SETTING_SOUND_VEHICLE :Возила: {STRING} @@ -1428,6 +1424,7 @@ STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Испрати + # Build vehicle window STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Шински возила diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 89dbed57c1..76e46ac409 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -374,9 +374,7 @@ STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {C -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE -# end of order system +# Order review system / warnings STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} mitluf @@ -411,7 +409,6 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn - # Custom currency window @@ -465,7 +462,6 @@ STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avza jekk jinti - STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :L-ebda azzjoni STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :L-azzjonijiet kollha STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Uza l-lista avvanzata tal-vetturi: {STRING} @@ -831,6 +827,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN + # Build vehicle window diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index d4e80d9ae1..1a84043c54 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -658,9 +658,7 @@ STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDE -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE -# end of order system +# Order review system / warnings STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} जुनी होत आहे STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} खूप जुनी होत आहे @@ -744,7 +742,6 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :अन्य - # Custom currency window @@ -789,7 +786,6 @@ STR_CONFIG_SETTING_WARN_LOST_VEHICLE : वाहन - STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :कोणतीही कृती नाही STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व कृत्या @@ -1286,6 +1282,7 @@ STR_GROUP_ALL_AIRCRAFTS :सर्व + STR_GROUP_REMOVE_ALL_VEHICLES :सगळे वाहने काढा diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 4818aa2a50..97677068d7 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -800,13 +800,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} در گاراژ منتظر است STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE}در آشیانه در حال انتظار است -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :تعداد دستورهای نسبت داده ی {WHITE}{VEHICLE} کم تر از حد می باشد STR_NEWS_VEHICLE_HAS_VOID_ORDER :برنامه حرکت {WHITE}{VEHICLE} باطل شده است STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :برنامه جابجایی {WHITE}{VEHICLE} دستور تکراری دارد STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} یک ایستگاه نا معتبر در برنامه جابجایی خود دارد -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} قدیمی شده است STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} بسیار قدیمی شده است @@ -928,11 +926,13 @@ STR_GAME_OPTIONS_TOWN_NAME_CATALAN :کاتالان 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 :هر ۳ ماه STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_6_MONTHS :هر ۶ ماه STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :هر ۱۲ ماه +############ end of autosave dropdown STR_GAME_OPTIONS_LANGUAGE :{BLACK}زبان STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}زبان واسط کاربری را برای استفاده انتخاب کنید @@ -944,9 +944,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}وضوح STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}وضوح تصویر دلخواه را انتخاب کنید STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}قالب ذخیره تصویر بازی -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}قالب ذخیره تصویر بازی را انتخاب نمایید - STR_GAME_OPTIONS_BASE_GRF :{BLACK}بسته گرافیک پایه STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بسته گرافیک پایه را انتخاب کنید STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} فایل وجود ندارد یا خراب است @@ -1097,7 +1094,6 @@ STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :خرابی وس STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :ضریب سوبسید: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS :هزینه های ساخت و ساز: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES :اجازه ساخت در دامنه ها و سواحل: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :اجازه محوطه سازی در زیر ساختمان ، ریلها، و غیره (شیب خودکار): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :اجازه محوطه سازی در زیر ساختمان ، ریلها، و غیره بدون نیاز به تخریب STR_CONFIG_SETTING_CATCHMENT :واقع بینانه تر شدن اندازه حوضه آبریز: {STRING} @@ -1110,10 +1106,7 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :روش سرعت STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_FORBID_90_DEG :غیر قابل پیچیدن سر پیچ های ۹۰° برای قطار و کشتی ها: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :قابلیت اتصال ایستگاه هایی که مستقیما به هم وصل نیستند: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :استفاده از الگوریتم بهبود یافته برای بارگذاری : {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :بارگیری وسایل نقلیه به تدریج: {STRING} STR_CONFIG_SETTING_INFLATION :تورم: {STRING} -STR_CONFIG_SETTING_SELECTGOODS :بار را فقط زمانی به ایستگاه تحویل بده که درخواستی برای آن باشد: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :حداکثر طول پل: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :حداکثر طول تونل: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :روش ساخت و ساز اولیه صنعت توسط کاربر: {STRING} @@ -1132,7 +1125,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :توقف قطا STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :ابتدا STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :میانه STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :انتها -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :جاده صف‌بندی خودروی جاده‌ای (با اثرات کوانتومی): {STRING} STR_CONFIG_SETTING_AUTOSCROLL :جابجا‌شدن نمایش هنگام نزدیک شدن نشانگر موس به لبه ها: {STRING} STR_CONFIG_SETTING_BRIBE :قابلیت رشوه دادن به مقامات محلی: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :قابلیت انحصاری کردن حقوق حمل و نقل: {STRING} @@ -1147,8 +1139,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :کاهش STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :عادی STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :اجازه رانندگی در خیابان‌های شهر{STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :اجازه استفاده از جاده یک بازیکن توسط دیگر رقیبان: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :قابلیت ساخت ایستگاه‌های متصل به هم: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES :قابلیت استفاده از چندین بسته NewGRF: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}تغییر دادن این تنظیم هنگامی که خودرو وجود دارد ممکن نیست STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :تعمیر و نگهداری زیرساخت ها: {STRING} @@ -1171,21 +1161,23 @@ STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :اصلی STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :پیدایش زمین STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :تمام پالایشگاه ها در لبه های تقشه ساخته می شوند که ساحل جزیره است STR_CONFIG_SETTING_SNOWLINE_HEIGHT :ارتفاع خط برف: {STRING} -STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :پستی و بلندی های شدید (فقط در حالت «پیدایش زمین») : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :پستی و بلندی های زمین: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :بسیار هموار STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :هموار STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :ناهموار STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :بسیار ناهموار +STR_CONFIG_SETTING_RIVER_AMOUNT :تعداد رودخانه ها: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :تعداد رودخانه ها برای ساخت را مشخص نمایید STR_CONFIG_SETTING_TREE_PLACER :الگوریتم قرار دهنده مکان درخت‌ها: {STRING} STR_CONFIG_SETTING_TREE_PLACER_NONE :هیچکدام STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :اصلی STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :بهبودیافته +STR_CONFIG_SETTING_ROAD_SIDE :خودروهای جاده ای: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :انتخاب جهت رانندگی STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :جهت چرخش نقشه بلندی: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :پادساعت‌گرد STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :ساعت‌گرد STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :سطح ارتفاعی که نقشه‌ی سناریو می‌تواند داشته باشد: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :فعال کردن محوطه سازی با قطعه‌ها در مرزهای نقشه: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :در صورت غیر فعال شدن، تمامی لبه های نقشه دریا خواهد بود STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}یک یا چند قطعه در لبه شمالی که خالی نیست STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}یک یا چند قطعه در لبه شمالی که آب نیست @@ -1198,11 +1190,12 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :بنفش STR_CONFIG_SETTING_REVERSE_SCROLLING :برعکس کردن جهت حرکت کردن صفحه: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING :تصویر صاف در نمای اضافه: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP :نمایش متن کمکی وقتی از چندین ابزار استفاده می شود: {STRING} -STR_CONFIG_SETTING_LIVERIES :نمایش دخل و خرج شرکت: {STRING} +STR_CONFIG_SETTING_LIVERIES :نمایش طراحی مخصوص وسیله نقلیه : {STRING} +STR_CONFIG_SETTING_LIVERIES_HELPTEXT :کنترل موارد قابل استفاده برای طراحی مخصوص ماشین‌های جاده‌ای (در مقابل طراحی شرکت) STR_CONFIG_SETTING_LIVERIES_NONE :هیچکدام STR_CONFIG_SETTING_LIVERIES_OWN :شرکت خود STR_CONFIG_SETTING_LIVERIES_ALL :همه شرکت‌ها -STR_CONFIG_SETTING_PREFER_TEAMCHAT :چت با تیم با دکمه «Enter»: {STRING} +STR_CONFIG_SETTING_PREFER_TEAMCHAT :ترجیح برای چت با تیمِ «Enter»: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :عمل غلطک ماوس: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :بزرگنمایی نقشه STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :جابجا کردن نقشه @@ -1216,22 +1209,22 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :خاموش STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :حرکت در نقشه با کلیک چپ:: {STRING} +STR_CONFIG_SETTING_AUTOSAVE :ذخیره خودکار: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :انتخاب فاصله زمانی بین ذخیره کردن های خودکار + STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :از این {STRING} برای نام فایل‌های ذخیره استفاده کن STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :طولانی (31st Dec 2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :کوتاه(31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :پالت پیش فرض برای NewGRF هایی که پالتی برایشان مشخص نگردیده: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :پالت سیستم عامل داس -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :پالت ویندوز - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :توقف خودکار هنگام آغاز بازی جدید: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :قابلیت ها در زمان متوقف بودن بازی: {STRING} +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :انتخاب کارکرد مورد نظر در هنگام متوقف کردن بازی STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :هیچ کار STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :همه کارها غیر از ساخت و ساز STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :همه کارها به جز تغییر پستی/بلندی زمین STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :همه کارها -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :اسنفاده از لیست پیشرفته خودرو: {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :اسنفاده گروهی از لیست خودرو: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS :استفاده از نشانه‌های بارگیری/بارگذاری: {STRING} STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :استفاده از تیک(هزارم ثانیه) به جای روز در برنامه ساعتی: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :نشان دادن ورود و خروج در جدول زمانی: {STRING} @@ -1337,7 +1330,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :عادی STR_CONFIG_SETTING_TOWN_GROWTH_FAST :تند STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :بسیار تند STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :مضرب ابتدایی اندازه شهرستان: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :حذف عناصر پوچ جاده در طول ساخت و ساز جاده: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :واحدهای سرعت: {STRING} @@ -1371,25 +1363,16 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :امپریال STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :متریک (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :متر (m) -STR_CONFIG_SETTING_GUI :{ORANGE}واسط کاربری STR_CONFIG_SETTING_LOCALISATION :{ORANGE}بومی سازی -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}ساخت و ساز +STR_CONFIG_SETTING_INTERFACE :{ORANGE}واسط کاربری +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}ساخت و ساز STR_CONFIG_SETTING_VEHICLES :{ORANGE}وسایل نقلیه -STR_CONFIG_SETTING_STATIONS :{ORANGE}ایستگاه ها -STR_CONFIG_SETTING_ECONOMY :{ORANGE}اقتصاد -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}توزیع محموله -STR_CONFIG_SETTING_AI :{ORANGE}رقیبان -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}نمایش گزینه ها -STR_CONFIG_SETTING_INTERACTION :{ORANGE}اثرمتقابل -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}نشانگرها -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}مدیریت محموله -STR_CONFIG_SETTING_AI_NPC :{ORANGE}بازیگران رایانه -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}نوسازی خودکار -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}تعمیر و بازبینی STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}مسیریابی -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}قطارها -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}شهرها -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}صنایع +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}شهرها +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}صنایع +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}توزیع محموله +STR_CONFIG_SETTING_AI :{ORANGE}رقیبان +STR_CONFIG_SETTING_AI_NPC :{ORANGE}بازیگران رایانه STR_CONFIG_SETTING_PATHFINDER_OPF :اصلی STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2402,10 +2385,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}تعدا STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}ارتفاع خط برف: STR_MAPGEN_SNOW_LINE_UP :{BLACK}اضافه کردن یک واحد به ارتفاع خط برف STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}کم کردن یک واحد از ارتفاع خط برف -STR_MAPGEN_RANDOM_SEED :{BLACK}شماره ساخت تصادفی: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}برای وارد کردن شماره تصادفی کلیک کنید -STR_MAPGEN_RANDOM :{BLACK}انتخاب تصادفی -STR_MAPGEN_RANDOM_HELP :{BLACK}شماره ساخت تصادفی برای ساخت زمین و پستی و بلندی ها به کار می رود STR_MAPGEN_LAND_GENERATOR :{BLACK}سازنده زمین: STR_MAPGEN_TREE_PLACER :{BLACK}الگوریتم درخت ها: STR_MAPGEN_TERRAIN_TYPE :{BLACK}نوع پستی/بلندی: @@ -2432,7 +2411,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}نام STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}اندازه: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}یک عدد تصادفی وارد کنید STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}تغییر ارتفاع خط برف STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}تغییر سال آغاز @@ -2487,6 +2465,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}حرکت STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}NewGRF انتخاب شده را به بالا می فرستد STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}حرکت به پایین STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}NewGRF انتخاب شده را به پایین می فرستد +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}بروزرسانی +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}NewGRF هایی که ویرایش جدیدترشان را دارید به روزرسانی کنید STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}یک لیست از فایلهای NewGRF که نصب شده است STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}ثبت پارامترها @@ -2511,6 +2491,16 @@ STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}فایل STR_NEWGRF_SETTINGS_DISABLED :{RED}غیرفعال STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}با این ورژن از OpenTTD همخوانی ندارد +# NewGRF save preset window +STR_SAVE_PRESET_CAPTION :{WHITE}ذخیره لیست +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}لیست های موجود،برای کپی یکی را انتخاب کنید +STR_SAVE_PRESET_TITLE :{BLACK}یک نام برای لیست وارد کنید +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}لیست انتخاب شده برای ذخیره +STR_SAVE_PRESET_CANCEL :{BLACK}لغو +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}تغییر ندادن لیست +STR_SAVE_PRESET_SAVE :{BLACK}ذخیره +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}ذخیره لیست در نام انتخاب شده + # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}تغییر پارامترهای NewGRF STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}بسته @@ -2919,6 +2909,7 @@ STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :فرستادن + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :قطار جدید STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :قطار جدید مونوریل diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 3bae28dce7..541171f97e 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -783,13 +783,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} اڈے میں انتظار کر رہا یے STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ہوائی یینگر میں انتظار کر رہا یے -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} کے پاس اوقات کے جدول کے مطابق احکامات بہت کم ہیں STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} کے پاس غلط (بے کار) حکم ہے STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} کے پاس ایسا ہی حکم پہلے سے ہے STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} کے پاس احکامات میں ایک ختم شدہ اسٹیشن ہے -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} پرانا ہو رہا ہے STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} بہت پرانا ہو رہا ہے @@ -923,9 +921,6 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}اسکر STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اسکرین کی resolution اختیار کریں STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر -STR_GAME_OPTIONS_SCREENSHOT_FORMAT :{BLACK}اسکرین کی تصویر کا فارمیٹ -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}اسکرین کی تصویر کے استعال کے لئے فارمیٹ اختیار کریں - 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} @@ -1047,7 +1042,6 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :درمیان STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :دائیں -STR_CONFIG_SETTING_BUILDONSLOPES :ڈھلان اور ساحل پر تعمیر کی اجازت: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :تعمیرات کے نیچے منظر کشی کی اجازت: {STRING} STR_CONFIG_SETTING_CATCHMENT :کوریج کے علاقے کے حقیقت پسندانہ سائز کی اجازت: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :شہروں کی ملکیت زیادہ سڑکوں، پلوں اور سرنگوں کو توڑنے کی اجازت: {STRING} @@ -1060,10 +1054,7 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_ACCELERATION_MODEL :گاڑی کو STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_FORBID_90_DEG :ریل گاڑیوں اور بحری جہازوں کو 90° مڑنے سے روکیں: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :اسٹیشنوں کو جوڑنے کی اجازت: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD :سامان لوڈ کرنے کا بہتر طریقہ استعمال کریں: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING :گاڑیوں کو آہستہ آہستہ بھریں: {STRING} STR_CONFIG_SETTING_INFLATION :افراط زر: {STRING} -STR_CONFIG_SETTING_SELECTGOODS :سامان صرف اُسی صورت میں کسی اسٹیشن تک پہنچایا جب وہ اُسے قبول کرتا ہو: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :پل کی زیادہ سے زیادہ لمبائی: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :پل بنانے کی زیادہ سے زیادہ لمبائی STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :سرنگ کی زیادہ سے زیادہ لمبائی: {STRING} @@ -1081,7 +1072,6 @@ STR_CONFIG_SETTING_STOP_LOCATION :نئے احکا STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :شروع میں STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :درمیان میں STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :آخر میں -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :گاڑیوں کی قطار: {STRING} STR_CONFIG_SETTING_AUTOSCROLL :ونڈو کو پین کرو جب ماؤس کنارے پر ہو: {STRING} STR_CONFIG_SETTING_BRIBE :مقامی اتھارٹی کی رشوت کی اجازت دیں: {STRING} STR_CONFIG_SETTING_ALLOW_EXCLUSIVE :خصوصی نقل و حمل کے حقوق کو خریدنے کی اجازت: {STRING} @@ -1095,8 +1085,6 @@ STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :کم STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :نارمل STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :شہر کی ملکیت سڑکوں پر ڈرائیو تھرو اڈے بنانے کی اجازت: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :مد مقابلوں کی ملکیت سڑکوں پر ڈرائیو تھرو اڈے بنانے کی اجازت: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS :اسٹیشن کے ساتھ اسٹیشں بنانے کی اجازت: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES :ایک سے زیادہ NewGRF انجن سیٹوں کو فعال کریں: {STRING} STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}جب گاڑیاں موجود ہوں تو یہ سیٹنگ بدلنا ممکن نہیں STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :انفراسٹرکچر کی بحالی: {STRING} @@ -1132,8 +1120,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :اونچائی STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :الٹی گھڑی وار STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :گھڑی وار STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :ایک سیدھے scenario والا نقشہ کتنا اونچا ہو گا: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :نقشے کے کناروں پر منظر کشی فعال کریں: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :اگر منع کر دیا، تو نقسے کی حدود ہمیشہ سمندر ہوں گی STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}جنوبی کنارے پر ایک یا ایک سے زیادہ ٹائلیں خالی نہیں ہیں STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}کسی کنارے پر ایک یا ایک سے زیادہ ٹائلیں پانی کی نہیں ہیں @@ -1165,9 +1151,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :long (31st Dec STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :short (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :DOS palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Windows palette - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :نیا کھیل شروع کرنے پر خودکار توقف: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :توقف کے دوران اجازت دیں: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :کوئی فعل نہیں @@ -1279,7 +1262,6 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :نارمل STR_CONFIG_SETTING_TOWN_GROWTH_FAST :تیز STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :بہت تیز STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :شہر کا شروعاتی ضارب: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :سڑک کی تعمیر کے دوران غلط تعمیر شدہ حصوں کو ہٹا دے: {STRING} @@ -1288,23 +1270,14 @@ STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :سڑک کی ت -STR_CONFIG_SETTING_GUI :{ORANGE}انٹرفیس -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}تعمیرات +STR_CONFIG_SETTING_INTERFACE :{ORANGE}انٹرفیس +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}تعمیرات STR_CONFIG_SETTING_VEHICLES :{ORANGE}گاڑیاں -STR_CONFIG_SETTING_STATIONS :{ORANGE} اسٹیشن -STR_CONFIG_SETTING_ECONOMY :{ORANGE}معیشت -STR_CONFIG_SETTING_AI :{ORANGE}مد مقابل -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}ڈسپلے کے اختیارات -STR_CONFIG_SETTING_INTERACTION :{ORANGE}چوراہا -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}اشعارے -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}سامان کو سنبھالنا -STR_CONFIG_SETTING_AI_NPC :{ORANGE}کمپیوٹر کے کھلاڑی -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}خودکار تبدیلی -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}مرمت STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}روٹنگ -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}ریل گاڑیاں -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}شہر -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}صنعتیں +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}شہر +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}صنعتیں +STR_CONFIG_SETTING_AI :{ORANGE}مد مقابل +STR_CONFIG_SETTING_AI_NPC :{ORANGE}کمپیوٹر کے کھلاڑی STR_CONFIG_SETTING_PATHFINDER_OPF :اصلی STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -2332,6 +2305,7 @@ STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}فہرس + # Build vehicle window diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 599f8d7eb7..80f7202586 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -28,9 +28,9 @@ STR_JUST_NOTHING :Rỗng # Plural cargo name STR_CARGO_PLURAL_NOTHING : STR_CARGO_PLURAL_PASSENGERS :Hành khách -STR_CARGO_PLURAL_COAL :Than +STR_CARGO_PLURAL_COAL :Than đá STR_CARGO_PLURAL_MAIL :Bưu kiện -STR_CARGO_PLURAL_OIL :Dầu +STR_CARGO_PLURAL_OIL :Dầu thô STR_CARGO_PLURAL_LIVESTOCK :Gia súc STR_CARGO_PLURAL_GOODS :Hàng tiêu dùng STR_CARGO_PLURAL_GRAIN :Ngũ cốc @@ -62,9 +62,9 @@ STR_CARGO_PLURAL_FIZZY_DRINKS :Đồ uống c # Singular cargo name STR_CARGO_SINGULAR_NOTHING : STR_CARGO_SINGULAR_PASSENGER :Hành khách -STR_CARGO_SINGULAR_COAL :Than +STR_CARGO_SINGULAR_COAL :Than đá STR_CARGO_SINGULAR_MAIL :Bưu kiện -STR_CARGO_SINGULAR_OIL :Dầu +STR_CARGO_SINGULAR_OIL :Dầu thô STR_CARGO_SINGULAR_LIVESTOCK :Gia súc STR_CARGO_SINGULAR_GOODS :Hàng tiêu dùng STR_CARGO_SINGULAR_GRAIN :Ngũ cốc @@ -96,9 +96,9 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :Đồ uống c # Quantity of cargo STR_QUANTITY_NOTHING : STR_QUANTITY_PASSENGERS :{COMMA} hành khách -STR_QUANTITY_COAL :{WEIGHT_LONG} than +STR_QUANTITY_COAL :{WEIGHT_LONG} than đá STR_QUANTITY_MAIL :{COMMA} túi bưu kiện -STR_QUANTITY_OIL :{VOLUME_LONG} dầu +STR_QUANTITY_OIL :{VOLUME_LONG} dầu thô STR_QUANTITY_LIVESTOCK :{COMMA} đầu gia súc STR_QUANTITY_GOODS :{COMMA} thùng hàng tiêu dùng STR_QUANTITY_GRAIN :{WEIGHT_LONG} ngũ cốc @@ -123,7 +123,7 @@ STR_QUANTITY_COLA :{VOLUME_LONG} n STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} kẹo bông STR_QUANTITY_BUBBLES :{COMMA} bong bóng STR_QUANTITY_TOFFEE :{WEIGHT_LONG} kẹo bơ cứng -STR_QUANTITY_BATTERIES :{COMMA} cái pin +STR_QUANTITY_BATTERIES :{COMMA} viên pin STR_QUANTITY_PLASTIC :{VOLUME_LONG} chất dẻo STR_QUANTITY_FIZZY_DRINKS :{COMMA} chai đồ uống có ga STR_QUANTITY_N_A :N/A @@ -294,8 +294,8 @@ STR_SORT_BY_COST :Chi phí STR_SORT_BY_POWER :Lực STR_SORT_BY_TRACTIVE_EFFORT :Lực kéo STR_SORT_BY_INTRO_DATE :Ngày ra mắt -STR_SORT_BY_RUNNING_COST :Chi phí chạy -STR_SORT_BY_POWER_VS_RUNNING_COST :Năng lượng/Chi phí chạy +STR_SORT_BY_RUNNING_COST :Phí hoạt động +STR_SORT_BY_POWER_VS_RUNNING_COST :Năng lượng/Phí hoạt động STR_SORT_BY_CARGO_CAPACITY :Tải trọng STR_SORT_BY_RANGE :Tầm xa STR_SORT_BY_POPULATION :Dân số @@ -304,7 +304,7 @@ STR_SORT_BY_RATING :Đánh giá # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Tạm dừng trò chơi STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Tua nhanh trò chơi -STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Tuỳ chọn +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Tùy chọn STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Lưu, bỏ ván chơi, thoát chương trình STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Hiển thị bản đồ STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Hiển thị danh sách đô thị @@ -317,10 +317,10 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Hiển t STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Hiển thị biểu đồ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Hiện bảng tầm cỡ các công ty STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Bỏ vốn cho những ngành mới hoặc hiện tất cả các ngành -STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Hiện danh sách tàu hoả của công ty.Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện -STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Hiện danh sách xe cộ của công ty.Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện -STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Hiện danh sách tàu thủy của công ty.Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện -STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Hiện danh sách máy bay của công ty.Ctrl+Click vào chốt néo để mở dạnh sách nhóm/phương tiện +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Hiện danh sách tàu hỏa của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Hiện danh sách xe cộ của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Hiện danh sách tàu thủy của công ty. Ctrl+Click vào chốt néo để mở danh sách nhóm/phương tiện +STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_AIRCRAFT :{BLACK}Hiện danh sách máy bay của công ty. Ctrl+Click vào chốt néo để mở dạnh sách nhóm/phương tiện STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Thu nhỏ tầm nhìn STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Nới rộng tầm nhìn STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Lắp đường ray @@ -464,7 +464,7 @@ STR_ABOUT_MENU_SCREENSHOT :Ảnh chụp m STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Phóng to đầy đủ ảnh chụp màn hình STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Phóng to mặc định ảnh chụp màn hình STR_ABOUT_MENU_GIANT_SCREENSHOT :Ảnh màn hình toàn bản đồ -STR_ABOUT_MENU_ABOUT_OPENTTD :Về 'OpenTTD' +STR_ABOUT_MENU_ABOUT_OPENTTD :Giới thiệu 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Trình điều chỉnh sprite STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Bật/tắt hiển thị khối nhà STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Bật/tắt màu sắc trên các ô 'bẩn' @@ -758,7 +758,7 @@ STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLAC STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Tàu thủy đầu tiên đến {STATION}! STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Người dân chào đón . . .{}Máy bay đầu tiên đến {STATION}! -STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Tàu hoả bị đụng nhau!{}{COMMA} người chết sau tai nạn đáng tiếc này +STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Tàu hỏa bị đụng nhau!{}{COMMA} người chết sau tai nạn đáng tiếc này STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Ôtô bị tàu hoả đụng!{}Người lái xe đã tử nạn sau tai nạn này. STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Ôtô bị tàu hoả đụng!{}{COMMA} người đã tử nạn sau tai nạn đáng tiếc này STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Tai Nạn Máy Bay!{}{COMMA} người chết tại {STATION} @@ -810,13 +810,11 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} đang chờ tại xưởng STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} đang chờ tại sân bay -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} có quá ít lệnh trong lộ trình STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} chưa có lệnh STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} có các lệnh trùng lặp STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} có trạm bất hợp lệ trong lệnh -# end of order system STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} đang cũ đi STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} đang xuống cấp @@ -954,9 +952,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Định dạng ảnh màn hình -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Chọn định dạng ảnh màn hình để sử dụng - 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 @@ -1130,8 +1125,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Thay đổi tù STR_CONFIG_SETTING_CITY_APPROVAL :Thái độ của hội đồng thành phố với việc xây dựng lại địa phương: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Lựa chọn mức độ ảnh hưởng môi trường và tiếng ồn gây ra bởi các công ty sẽ ảnh hưởng uy tín của công ty đối với chính quyền địa phương và các hoạt động xây dựng của họ trong địa bàn -STR_CONFIG_SETTING_BUILDONSLOPES :Cho phép xây dựng trên dốc và bờ biển: {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Nếu bật, đường đi và trạm có thể được xây trên hầu hết các loại dốc. Nếu tắt, chúng chỉ có thể được xây trên đoạn dốc có cùng chiều với đường đi STR_CONFIG_SETTING_AUTOSLOPE :Cho phép thay đổi nền đất dưới công trình, đường.. (tự làm dốc): {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Cho phép thay đổi nền đất dưới công trình và đường mà không cần phá hủy chúng STR_CONFIG_SETTING_CATCHMENT :Mô phỏng thực tế diện tích khu vực đón hàng: {STRING} @@ -1156,14 +1149,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Ngăn tàu hỏ STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :quay 90 độ chỉ xảy ra khi một ray ngang nối với một ray dọc ở 2 ô liền kề, khiến cho tàu hỏa cua 90 khi đến ô rẽ thay vì 45 độ như bình thường. Việc này cũng áp dụng với tàu thủy. STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Cho phép gộp ga, bến, cảng không sát nhau: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Cho phép thêm đoạn vào ga mà không phải sửa cái hiện có. Phải bấm Ctrl+Click để thêm đoạn vào ga -STR_CONFIG_SETTING_IMPROVEDLOAD :Sử dụng thuật toán bốc/dỡ hàng cải tiến: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Nếu mở, các toa xe ở ga được bốc xếp tuần tự. Toa xe tiếp theo chỉ được bốc hàng khi tòa đầu tiên đã đầy hàng hóa -STR_CONFIG_SETTING_GRADUAL_LOADING :Bốc/dỡ hàng lên phương tiện dần dần: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Bốc xết tuần tự lên toa xe với thời gian được chỉ ra, thay vì bốc xếp tất cả mọi thứ một lúc thì thời gian bốc xếp định sẵn theo khối lượng hàng hóa mang theo STR_CONFIG_SETTING_INFLATION :Lạm phát: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Cho phép lạm phát đối với kinh tế, khi mà chi phí tăng nhanh hơn một chút so với khoản thu -STR_CONFIG_SETTING_SELECTGOODS :Dỡ hàng hóa tại ga, bến, cảng chỉ khi nơi đó có nhu cầu: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Chỉ có hàng hóa chỉ định cho ga/bến mới được bốc xếp. Tùy chọn này ngăn việc đặt tỉ lệ xấu cho hàng hóa không phục vụ tại ga/bến đó STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Độ dài tối đa của cầu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Độ dài tối đa khi xây cầu STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Độ dài tối đa của hầm: {STRING} @@ -1176,7 +1163,7 @@ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :hứa hẹn STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Vùng đất phẳng xung quanh nhà máy: {STRING} STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Khoảng không gian bằng phẳng quanh nhà máy. Điều này đảm bảo rằng không gian trống quanh nhà máy để xây đường ray và công trình STR_CONFIG_SETTING_MULTIPINDTOWN :Cho phép nhiều nhà máy tương tự nhau trong mỗi đô thị: {STRING} -STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Bình thường mỗi đo thị không có quá một nhà máy mỗi loại. Tùy chọn này cho phép nhiều nhà máy cùng một loại trong phạm vi mỗi đô thị +STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Bình thường mỗi đô thị không có quá một nhà máy mỗi loại. Tùy chọn này cho phép nhiều nhà máy cùng một loại trong phạm vi mỗi đô thị STR_CONFIG_SETTING_SIGNALSIDE :Hiện đèn báo: {STRING} STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :Chọn bên của đường ray để đặt đèn tín hiệu STR_CONFIG_SETTING_SIGNALSIDE_LEFT :Phía bên trái @@ -1191,8 +1178,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Vị trí mà t STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :đầu gần STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :giữa STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :đầu xa -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Xe ôtô xếp hàng (với hiệu ứng quantum): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Tùy chọn sẽ khiến ôtô đứng đợi ở trước điểm dừng cho tới khi có chỗ vào STR_CONFIG_SETTING_AUTOSCROLL :Cuộn cửa sổ chính khi con trỏ gần mép: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Khi bật, vùng nhìn sẽ cuộn khi con trỏ đến cạnh cửa sổ STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Tắt @@ -1215,7 +1200,7 @@ STR_CONFIG_SETTING_PLANE_SPEED :Tỉ lệ tốc STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Thiết lập tốc độ tương đối của máy bay với phương tiện khác, nhằm giảm thu nhập của việc vận chuyển đường hàng không STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} STR_CONFIG_SETTING_PLANE_CRASHES :Số vụ tai nạn máy bay: {STRING} -STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Tỉ lệ xác suất xảy ra tai nạn máy bay +STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Tỉ lệ / xác suất xảy ra tai nạn máy bay STR_CONFIG_SETTING_PLANE_CRASHES_NONE :không STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :giảm bớt STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :bình thường @@ -1223,10 +1208,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Cho phép xây STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe bus trên đường sở hữu bởi địa phương STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Cho phép xây điểm dừng xe buýt trên đường của đối thủ: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Cho phép xây dựng điểm dừng xe bus trên đường sở hữu bởi công ty khác -STR_CONFIG_SETTING_ADJACENT_STATIONS :Cho phép xây ga, bến, cảng sát nhau: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Cho phép các ga bến khác nhau có thể chạm vào nhau -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Bật chạy nhiều gói NewGRF cho phương tiện: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Tùy chọn tương thích với NewGRFs cũ. Không nên tắt tùy chọn này trừ khi bạn hiểu vấn đề là gì! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Không thể đổi thiết đặt này khi vẫn còn các phương tiện giao thông. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Phí bảo trì cơ sở hạ tầng: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Khi mở, thì hạ tầng công ty sẽ sinh ra chi phí bảo trì. Chi phí sẽ tăng theo mạng lưới giao thông bạn xây dựng, và sẽ tiêu tốn của công ty lớn nhiều hơn công ty nhỏ @@ -1245,7 +1226,7 @@ STR_CONFIG_SETTING_WARN_INCOME_LESS :Cảnh báo n STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :Nếu bật, sẽ có một thông báo nếu một phương tiện nào đó không có lãi trong một năm STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Phương tiện không bao giờ thành đồ cổ: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Nếu bật, tất cả các model phương tiện sẽ không bị lỗi thời -STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Tự thay mới phương tiện nếu nó hết tuổi: {STRING} +STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Tự thay mới phương tiện nếu hết hạn sử dụng: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Nếu bật, phương tiện gần hết hạn sẽ được tự động thay mới và điều kiện thay mới được thỏa mãn STR_CONFIG_SETTING_AUTORENEW_MONTHS :Tự động thay mới nếu phương tiện đạt {STRING} tuổi STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Tuổi tương đối để coi như phương tiện hết hạn sử dụng và được thay mới @@ -1284,8 +1265,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Xoay bản đ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Ngược chiều đồng hồ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Xuôi chiều đồng hồ STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Độ cao của một màn chơi đồng bằng là: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Có thể tôn hạ nền đất ở mép bản đồ: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Nếu tắt, rìa bản đồ sẽ luôn là biển STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Một hoặc nhiều ô đất ở mép bản đồ phía bắc không được trống STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Một hoặc nhiều ô đất ở mép bản không phải là biển @@ -1293,7 +1272,7 @@ STR_CONFIG_SETTING_STATION_SPREAD :Độ trải r STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Khoảng diện tích tối đa mà mỗi ga/bến đơn có thể trả rộng. Giá trị cao quá sẽ làm chậm trò chơi STR_CONFIG_SETTING_SERVICEATHELIPAD :Bảo trì trực thăng ở sân bay trực thăng một cách tự động: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Bảo trì máy bay trực thăng mỗi khi hạ cánh, thậm chí là không có nhà sửc máy bay ở sân bay đó -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Neo c.cụ tôn tạo nền đất vào c.cụ tàu hoả/xe/tàu thủy/máy bay: {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Neo công cụ tôn tạo nền đất vào công cụ tàu hoả/xe/tàu thủy/máy bay: {STRING} STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Khi mở thanh công cụ xây dựng một loại đường nào đó, thì mở luôn thanh công cụ nâng hạ đất nền STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Màu đất hiển thị tại bản đồ nhỏ: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Màu sắc của các dạng đất trên bản đồ nhỏ @@ -1301,7 +1280,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Lục STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Lục tối STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Tím STR_CONFIG_SETTING_REVERSE_SCROLLING :Đảo ngược hướng cuộn: {STRING} -STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Phản ứng khi cuộc bản đồ bằng nút chuột phải. Nếu tắt, thì chuột di chuyển theo vùng nhìn. Nếu bật thì chuột di chuyển theo bản đồ +STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Phản ứng khi cuộn bản đồ bằng nút chuột phải. Nếu tắt, thì chuột di chuyển theo vùng nhìn. Nếu bật thì chuột di chuyển theo bản đồ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Cuộn uyển chuyển cửa sổ: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Điều khiển cách màn hình chính cuộn tới vị trí cụ thể khi nháy chuột vào bản đồ nhỏ hoặc khi gõ lệnh cuộn tới đối tượng trên bản đồ. Nếu bật, thì sẽ cuộn trượt, nếu tắt thì nhảy thẳng tới vị trí đó. STR_CONFIG_SETTING_MEASURE_TOOLTIP :Hiện bảng chú giải đo lường khi dùng các công cụ xây dựng: {STRING} @@ -1312,7 +1291,7 @@ STR_CONFIG_SETTING_LIVERIES_NONE :Không STR_CONFIG_SETTING_LIVERIES_OWN :Công ty đang giữ STR_CONFIG_SETTING_LIVERIES_ALL :Tất cả công ty STR_CONFIG_SETTING_PREFER_TEAMCHAT :Bắt đầu tán gẫu nội nhóm với phím : {STRING} -STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Chuyển đổi chế đố chát nội bộ trong công ty (nhiều người chơi) thay vì công cộng bằng nút +STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :Chuyển đổi chế độ 'tám' nội bộ trong công ty (nhiều người chơi) thay vì công cộng bằng nút STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :Chức năng nút cuộn trên chuột: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :Cho phép cuộc bằng chuột có bánh xe cuộn hai chiều STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :Phóng to bản đồ @@ -1342,11 +1321,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :đầy đủ (3 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :ngắn (31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Bảng màu mặc định cho những NewGRF chưa đặt sẵn bảng màu: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Bảng palette mặc định cho NewGRF với NewGRF không chỉ rõ palette -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Bảng màu (D) mặc định -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Bảng màu (W) hệ thống - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Tự động tạm dừng khi bắt đầu game mới: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Khi bật, ván chơi sẽ tự động tạm dừng khi bắt đầu ván chơi, cho phép xem xét trước bản đồ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Khi tạm dừng thì cho phép: {STRING} @@ -1487,17 +1461,17 @@ STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Nếu bật, s STR_CONFIG_SETTING_ALLOW_SHARES :Cho phép mua cổ phần của các công ty khác: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Nếu bật, cho phép mua và bán cổ phần công ty. Cổ phần chỉ có thể mua bán nếu công ty đã tồn tại một thời gian nhất định nào đó STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Tỉ lệ lợi tức cổ phiếu chi trả cho môi giới: {STRING} -STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Tỉ lệ phân trăm thu nhập cho mỗi trung gian trên hệ thống vận tải, cho phép điều chỉnh thu nhập +STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Tỉ lệ thu nhập cho mỗi trung gian trên hệ thống vận tải, cho phép điều chỉnh thu nhập STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Khi kéo, đặt đèn tín hiệu mỗi: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Đặt khoảng cách để xây liên tiếp các đèn tín hiệu khi được kéo +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Đặt khoảng cách giữa các đèn tín hiệu khi được kéo STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} ô STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Khi kéo-thả, giữ khoảng cách cố định giữa các đèn tín hiệu: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Lựa chọn cách đặt đèn hiệu khi bấm Ctrl+kéo thả đèn hiệu, nếu tắt, đèn hiệu đặt ngay trước và sau cầu, hầm để tránh bị quãng kéo dài không có đèn. Nếu bật, đèn hiệu sẽ được đặt sau mỗi n ô, tạo ra việc căn đèn đối với các ray song song dễ dàng hơn STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Xây cờ hiệu thay vì đèn trước năm: {STRING} -STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Thiết lập năm mà đèn hiệu điện sẽ được sử dụng. Trước năm này chỉ có cờ hiệu được sử dụng (chúng cùng chức năng, chỉ khác hình thức) +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Thiết lập thời điểm đèn hiệu điện sẽ được sử dụng. Trước thời điểm này chỉ có cờ hiệu được sử dụng (chúng cùng chức năng, chỉ khác hình thức) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Bật GUI đèn tín hiệu : {STRING} STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Hiện một cửa sổ chọn kiểu đèn hiệu khi xây dựng, thay vì phải đổi kiểu bằng cách bấm Ctrl+click trên công cụ xây dựng đèn hiệu -STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Kiểu đèn tín hiệu đc xây mặc định: {STRING} +STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Kiểu đèn tín hiệu mặc định: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Kiểu đèn tín hiệu mặc định để sử dụng STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Đèn hiệu khóa STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Đèn dẫn đường @@ -1563,13 +1537,11 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Bình thường STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Nhanh STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Cực nhanh STR_CONFIG_SETTING_LARGER_TOWNS :Tỷ lệ đô thị sẽ trở nên thành phố: {STRING} -STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Số lượng đô thị sẽ trở nên thành phố, đô thị đó sẽ rộng hơn và phát triển nhanh hơn +STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Số lượng đô thị sẽ trở thành thành phố, đô thị đó sẽ rộng hơn và phát triển nhanh hơn STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 trong {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Không STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Hệ số quy mô đô thị coi là thành phố: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Kích thước trung bình của thành phố tỉ lệ với đô thị lúc bắt đầu trò chơi -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Bỏ đi những khúc đường ngớ ngẩn khi xây dựng đường: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Xóa bỏ những khúc đường cụt trong khi đầu tư cải tạo lại đường STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Cập nhật đồ thị phân phối mỗi {STRING} ngày STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Thời gian giữa các lần tính toán đồ thị. Mỗi lần tính sẽ tính một phần của đồ thị. Nhưng không có nghĩa là giá trị X này sẽ khiến việc tính toán toàn bộ xảy ra sau X ngày, chỉ có một phần thôi. Nếu nhỏ thì CPU cần để tính sẽ nhiều hơn, lớn thì việc tính toán lại phân phối hàng hóa mỗi khi có đường mới sẽ chậm hơn. @@ -1592,7 +1564,7 @@ STR_CONFIG_SETTING_DEMAND_DISTANCE :Ảnh hưởng STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Nếu bạn đặt giá trị này lớn hơn 0, thì khoảng chênh lượng hàng hóa gửi từ ga A đến B sẽ ảnh hưởng bởi khoảng cách, giá trị càng cao thì càng ít hàng gửi đến ga xa và nhiều hàng gửi đến ga gần và ngược lại. STR_CONFIG_SETTING_DEMAND_SIZE :Khối lượng hàng hóa trả về đối với chế độ đối xứng: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Thiết lập giá trị này ít hơn 100% sẽ khiến vận tải hai chiều đối xứng sẽ giống như bất đối xứng. Sẽ có ít hàng hóa hơn chuyển ngược lại nếu như số lượng hàng chuyển tới vượt ngưỡng nào đó. Nếu đặt là 0% thì là bất đối xứng hoàn toàn. -STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Tỉ lệ bão hòa (hết tải) của đường tắt trước khi chuyển sang đường khác dài hơn: {STRING} +STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Tỉ lệ bảo hòa (hết tải) của đường tắt trước khi chuyển sang đường khác dài hơn: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Thường sẽ có nhiều con đường giữa 2 ga/bến. Việc vận tải hàng hóa sẽ chọn con đường ngắn nhất trước cho đến khi hết tải. Sau đó chọn con đường ngắn thứ 2, 3... cho đến khi hết tải. Việc hết tải được tính toán bằng khối lượng vận chuyển thực tế so với dự tính. Khi hết tải tất cả các con đường, nếu vẫn còn hàng hóa cần chuyển, thì nó có thể gây quá tải. Dầu vậy thuật toán này không phải lúc nào cũng chính xác trong việc tính toán năng lực vận tải. Thiết lập này cho phép bạn tinh chỉnh tỉ lệ mà một con đường sẽ hết tải trước khi chọn con đường kế tiếp. Nhỏ hơn 100% sẽ giúp tránh việc một ga bến quá đông đúc và bù trừ việc tính toán sai lệch này. STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Đơn vị tốc độ: {STRING} @@ -1631,27 +1603,17 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Hoàng Gia (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Giao Diện STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Tiêu Chuẩn Đo Lường -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Xây Dựng -STR_CONFIG_SETTING_VEHICLES :{ORANGE}Phương Tiện -STR_CONFIG_SETTING_STATIONS :{ORANGE}Ga, Bến, Cảng -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Kinh Tế -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Phân Bổ Hàng Hóa -STR_CONFIG_SETTING_AI :{ORANGE}Đối Thủ -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Tùy chỉnh hiển thị -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Tương tác STR_CONFIG_SETTING_SOUND :{ORANGE}Hiệu ứng âm thanh -STR_CONFIG_SETTING_NEWS :{ORANGE}Tin tức -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Đèn báo -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Bốc/dỡ hàng -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Nhân vật máy -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Tự thay mới -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Bảo trì +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Giao Diện +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Xây Dựng +STR_CONFIG_SETTING_VEHICLES :{ORANGE}Phương Tiện STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Tìm đường -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Tàu hoả -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Đô thị -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Nhà máy +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Đô thị +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Nhà máy +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Phân Bổ Hàng Hóa +STR_CONFIG_SETTING_AI :{ORANGE}Đối Thủ +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Nhân vật máy STR_CONFIG_SETTING_PATHFINDER_OPF :Nguyên bản STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1677,7 +1639,7 @@ STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... bỏ STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... bỏ qua NewGRF '{STRING}' không hợp lệ: {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :không tìm thấy STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :không an toàn để dùng tĩnh -STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF hệ thống +STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :Hệ thống NewGRF STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :không tương thích phiên bản với OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :không rõ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... mức độ nén '{STRING}' không hợp lệ @@ -1765,7 +1727,7 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Địa hình gi STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Địa hình cận nhiệt đới STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Địa hình đồ chơi STR_CHEAT_CHANGE_DATE :{LTBLUE}Sửa thời gian: {ORANGE}{DATE_SHORT} -STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Thay đổi năm hiện tại +STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Thay đổi thời gian hiện tại STR_CHEAT_SETUP_PROD :{LTBLUE}Cho phép khả năng sửa giá trị sản xuất: {ORANGE}{STRING} # Livery window @@ -1805,14 +1767,15 @@ STR_LIVERY_PASSENGER_TRAM :Xe khách đi STR_LIVERY_FREIGHT_TRAM :Tàu Hàng Điện # Face selection window -STR_FACE_CAPTION :{WHITE}Chọn Vẻ Mặt +STR_FACE_CAPTION :{WHITE}Chọn Khuôn Mặt STR_FACE_CANCEL_TOOLTIP :{BLACK}Bỏ qua lựa chọn vẻ mặt STR_FACE_OK_TOOLTIP :{BLACK}Lựa chọn vẻ mặt mới +STR_FACE_RANDOM :{BLACK}Sinh Ngẫu Nhiên STR_FACE_MALE_BUTTON :{BLACK}Nam -STR_FACE_MALE_TOOLTIP :{BLACK}Chọn vẻ mặt nam +STR_FACE_MALE_TOOLTIP :{BLACK}Chọn khuôn mặt nam STR_FACE_FEMALE_BUTTON :{BLACK}Nữ -STR_FACE_FEMALE_TOOLTIP :{BLACK}Chọn vẻ mặt nữ +STR_FACE_FEMALE_TOOLTIP :{BLACK}Chọn khuôn mặt nữ STR_FACE_NEW_FACE_BUTTON :{BLACK}Vẻ Mặt Mới STR_FACE_NEW_FACE_TOOLTIP :{BLACK}Chọn ngẫu nhiên vẻ mặt mới STR_FACE_ADVANCED :{BLACK}Nâng cao @@ -1822,7 +1785,7 @@ STR_FACE_SIMPLE_TOOLTIP :{BLACK}Trình c STR_FACE_LOAD :{BLACK}Nạp STR_FACE_LOAD_TOOLTIP :{BLACK}Chọn vẻ mặt ưa thích STR_FACE_LOAD_DONE :{WHITE}Vẻ mặt ưa thích đã được nạp từ file thiết lập của OpenTTD. -STR_FACE_FACECODE :{BLACK}Vẻ mặt thứ. +STR_FACE_FACECODE :{BLACK}Khuôn mặt thứ. STR_FACE_FACECODE_TOOLTIP :{BLACK}Xem và/hoặc sửa số vẻ mặt của chủ tịch công ty STR_FACE_FACECODE_CAPTION :{WHITE}Xem và/hoặc chọn số bộ mặt người chơi STR_FACE_FACECODE_SET :{WHITE}Mã số gương mặt mới được thiết lập. @@ -1831,9 +1794,9 @@ STR_FACE_SAVE :{BLACK}Lưu STR_FACE_SAVE_TOOLTIP :{BLACK}Lưu gương mặt yêu thích STR_FACE_SAVE_DONE :{WHITE}Gương mặt yêu thích này sẽ được lưu lại trong tập tin cấu hình OpenTTD . STR_FACE_EUROPEAN :{BLACK}Châu Âu -STR_FACE_SELECT_EUROPEAN :{BLACK}Chọn gương mặt Châu Âu +STR_FACE_SELECT_EUROPEAN :{BLACK}Chọn khuôn mặt Châu Âu STR_FACE_AFRICAN :{BLACK}Châu Phi -STR_FACE_SELECT_AFRICAN :{BLACK}Chọn gương mặt Châu Phi +STR_FACE_SELECT_AFRICAN :{BLACK}Chọn khuôn mặt Châu Phi STR_FACE_YES :Đồng ý STR_FACE_NO :Không STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Chọn ria mép hoặc bông tai @@ -2686,10 +2649,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Số lư STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Độ cao tuyết phủ: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Di chuyển độ cao tuyết phủ lên cao STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Di chuyển độ cao tuyết phủ xuống thấp -STR_MAPGEN_RANDOM_SEED :{BLACK}Số ngẫu nhiên: -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Chọn để nhập con số ngẫu nhiên khi tạo bản đồ -STR_MAPGEN_RANDOM :{BLACK}Sinh Ngẫu Nhiên -STR_MAPGEN_RANDOM_HELP :{BLACK}Thay đổi con số ngẫu nhiên để khởi tạo địa hình ngẫu nhiên STR_MAPGEN_LAND_GENERATOR :{BLACK}Tạo nền đất: STR_MAPGEN_TREE_PLACER :{BLACK}Cơ chế trồng cây: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Kiểu nền đất: @@ -2716,9 +2675,8 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Tên b STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Cỡ: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Nhập một số ngẫu nhiên STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Thay đổi độ cao tuyết phủ -STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Thay đổi năm khởi đầu +STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Thay đổi thời điểm bắt đầu # SE Map generation STR_SE_MAPGEN_CAPTION :{WHITE}Kiểu Màn Chơi @@ -2734,8 +2692,8 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Thay đ # Map generation progress STR_GENERATION_WORLD :{WHITE}Đang tạo màn... STR_GENERATION_ABORT :{BLACK}Huỷ bỏ -STR_GENERATION_ABORT_CAPTION :{WHITE}Huỷ Việc Tạo Màn -STR_GENERATION_ABORT_MESSAGE :{YELLOW}Bạn có chắc là huỷ việc tạo màn chơi? +STR_GENERATION_ABORT_CAPTION :{WHITE}Ngưng Tạo Màn +STR_GENERATION_ABORT_MESSAGE :{YELLOW}Bạn có chắc ngưng tạo màn chơi? STR_GENERATION_PROGRESS :{WHITE}{NUM}% hoàn thành STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} STR_GENERATION_WORLD_GENERATION :{BLACK}Tạo màn @@ -2966,7 +2924,7 @@ STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Chiến dịch STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Chiến dịch quảng cáo trung bình STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Chiến dịch quảng cáo lớn STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Tài trợ cải tạo đường phố nội thị -STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Xây tượng đài ông chủ công ty +STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Xây tượng đài công ty STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Tài trợ xây nhà cửa STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Mua độc quyền kinh doanh vận tải STR_LOCAL_AUTHORITY_ACTION_BRIBE :Hối lộ quan chức địa phương @@ -2974,7 +2932,7 @@ STR_LOCAL_AUTHORITY_ACTION_BRIBE :Hối lộ quan STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Thực hiện chiến dịch quảng cáo nhỏ để thu hút khách và hàng hoá vận chuyển.{}Chi phí: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Thực hiện chiến dịch quảng cáo trung bình để thu hút khách và hàng hoá vận chuyển.{}Chi phí: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Thực hiện chiến dịch quảng cáo lớn để thu hút khách và hàng hoá vận chuyển.{}Chi phí: {CURRENCY_LONG} -STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Tài trợ xây dựng lại đường xá của đô thị. Sẽ gây ách tắc giao thông đường bộ trong 6 tháng.{}Chi phí: {CURRENCY_LONG} +STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Tài trợ xây dựng lại đường sá của đô thị. Sẽ gây ách tắc giao thông đường bộ trong 6 tháng.{}Chi phí: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Dựng tượng đài tôn vinh ông chủ công ty để quảng bá hình ảnh công ty.{}Chi phí: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Tài trợ xây dựng các toà nhà thương mại để thúc đẩy phát triển đô thị.{}Chi phí: {CURRENCY_LONG} STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Mua độc quyền kinh doanh vận tải của đô thị. Chính quyền địa phương sẽ ra luật chỉ cho phép hành khách và hàng hoá vào nhà ga, bến, cảng của công ty.{}Chi phí: {CURRENCY_LONG} @@ -3131,10 +3089,10 @@ STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Thu nh STR_FINANCES_YEAR :{WHITE}{NUM} STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Xây dựng STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Mua phương tiện -STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Chi phí h.động của tàu hoả +STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Chi phí hoạt động của tàu hoả STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Chi phí hoạt động của ôtô -STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Chi phí h.động của máy bay -STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Chi phí h.động của tàu thuỷ +STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Chi phí hoạt động của máy bay +STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Chi phí hoạt động của tàu thuỷ STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Phí bảo trì tài sản STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Thu từ tàu hoả STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Thu từ ôtô @@ -3172,7 +3130,7 @@ STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA} STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}Hạ tầng: STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} ô đường ray STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} ô đường bộ -STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} ô nước +STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} ô đường thủy STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} ô ga, bến STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} sân bay STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Không @@ -3186,8 +3144,8 @@ STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Chuyển STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Chi tiết STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Xem chi tiết thống kê hạ tầng -STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Vẻ mặt mới -STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Chọn vẻ mặt của giám đốc +STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Chọn khuôn mặt khác +STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Chọn khuôn mặt của người điều hành STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Phối màu sắc STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Thay đổi màu sắc của phương tiện STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Tên công ty @@ -3302,6 +3260,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Xoá nh STR_GROUP_RENAME_TOOLTIP :{BLACK}Đổi tên nhóm STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Không để nhóm này tự thay thế (thiết lập chung) khi hết hạn + STR_GROUP_ADD_SHARED_VEHICLE :Thêm phương tiện được chia sẻ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả phương tiện @@ -4425,7 +4384,7 @@ STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Nhà băng heo ##id 0x4800 # industry names -STR_INDUSTRY_NAME_COAL_MINE :Mỏ than +STR_INDUSTRY_NAME_COAL_MINE :Mỏ than đá STR_INDUSTRY_NAME_POWER_STATION :Nhà máy nhiệt điện STR_INDUSTRY_NAME_SAWMILL :Nhà máy chế biến gỗ STR_INDUSTRY_NAME_FOREST :Rừng @@ -4532,9 +4491,9 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_30_ELECTRIC :SH '30' (Điệ STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_SH_40_ELECTRIC :SH '40' (Điện) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_T_I_M_ELECTRIC :'T.I.M.' (Điện) STR_VEHICLE_NAME_TRAIN_ENGINE_RAIL_ASIASTAR_ELECTRIC :'AsiaStar' (Điện) -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :Toa xe hành khách +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PASSENGER_CAR :Toa chở khách STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_MAIL_VAN :Toa bưu kiện -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Toa chở than +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COAL_CAR :Toa chở than đá STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_OIL_TANKER :Toa chở dầu STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_LIVESTOCK_VAN :Toa chở gia súc STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GOODS_VAN :Toa hàng tiêu dùng @@ -4542,7 +4501,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_GRAIN_HOPPER :Toa ngũ cốc STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_WOOD_TRUCK :Toa chở gỗ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_IRON_ORE_HOPPER :Toa chở quặng sắt STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_STEEL_TRUCK :Toa chở thép -STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Toa thiết giáp +STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_ARMORED_VAN :Toa bọc thép STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_FOOD_VAN :Toa chở thực phẩm STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PAPER_TRUCK :Toa chở giấy STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_COPPER_ORE_HOPPER :Toa chở quặng đồng @@ -4564,7 +4523,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99 STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :Toa hành khách STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :Toa bưu kiện -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Toa than +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :Toa than đá STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :Toa chở dầu STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_LIVESTOCK_VAN :Toa chở gia súc STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GOODS_VAN :Toa hàng tiêu dùng @@ -4572,7 +4531,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_GRAIN_HOPPER :Toa ngũ cốc STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_WOOD_TRUCK :Toa chở gỗ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_IRON_ORE_HOPPER :Toa chở quặng sắt STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_STEEL_TRUCK :Toa chở thép -STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Toa thiết giáp +STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_ARMORED_VAN :Toa bọc thép STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FOOD_VAN :Toa thực phẩm STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PAPER_TRUCK :Toa chở giấy STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COPPER_ORE_HOPPER :Toa chở quặng đồng @@ -4604,7 +4563,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GRAIN_HOPPER :Toa chở ngũ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_WOOD_TRUCK :Toa chở gỗ STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_IRON_ORE_HOPPER :Toa chở quặng sắt STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_STEEL_TRUCK :Toa chở thép -STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Toa thiết giáp +STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_ARMORED_VAN :Toa bọc thép STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_FOOD_VAN :Toa thực phẩm STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PAPER_TRUCK :Toa chở giấy STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COPPER_ORE_HOPPER :Toa chở quặng đồng @@ -4638,8 +4597,8 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_MAIL_TRUCK :Xe bưu kiện STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_MAIL_TRUCK :Xe bưu kiện Powernaught STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_MAIL_TRUCK :Xe bưu kiện Wizzowow STR_VEHICLE_NAME_ROAD_VEHICLE_WITCOMBE_OIL_TANKER :Xe bồn dầu Witcombe -STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_OIL_TANKER :Xe bồn dầu Foster -STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_OIL_TANKER :Xe bồn dầu Perry +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_OIL_TANKER :Xe dầu Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_OIL_TANKER :Xe dầu Perry STR_VEHICLE_NAME_ROAD_VEHICLE_TALBOTT_LIVESTOCK_VAN :Xe gia súc Talbott STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_LIVESTOCK_VAN :Xe gia súc Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_LIVESTOCK_VAN :Xe gia súc Foster @@ -4658,9 +4617,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_IRON_ORE_TRUCK :Xe quặng sắ STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_STEEL_TRUCK :Xe tải thép Balogh STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_STEEL_TRUCK :Xe tải thép Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_STEEL_TRUCK :Xe tải thép Kelling -STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_ARMORED_TRUCK :Xe thiết giáp Balogh -STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_ARMORED_TRUCK :Xe thiết giáp Uhl -STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_ARMORED_TRUCK :Xe thiết giáp Foster +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_ARMORED_TRUCK :Xe bọc thép Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_ARMORED_TRUCK :Xe bọc thép Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_ARMORED_TRUCK :Xe bọc thép Foster STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_FOOD_VAN :Xe thực phẩm Foster STR_VEHICLE_NAME_ROAD_VEHICLE_PERRY_FOOD_VAN :Xe thực phẩm Perry STR_VEHICLE_NAME_ROAD_VEHICLE_CHIPPY_FOOD_VAN :Xe thực phẩm Chippy @@ -4670,9 +4629,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_PAPER_TRUCK :Xe tải giấy STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_COPPER_ORE_TRUCK :Xe quặng đồng MPS STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COPPER_ORE_TRUCK :Xe quặng đồng Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_GOSS_COPPER_ORE_TRUCK :Xe quặng đồng Goss -STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_WATER_TANKER :Xe bồn nước Uhl -STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_WATER_TANKER :Xe bồn nước Balogh -STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_WATER_TANKER :Xe bồn nước MPS +STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_WATER_TANKER :Xe nước Uhl +STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_WATER_TANKER :Xe nước Balogh +STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_WATER_TANKER :Xe nước MPS STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_FRUIT_TRUCK :Xe hoa quả Balogh STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_FRUIT_TRUCK :Xe hoa quả Uhl STR_VEHICLE_NAME_ROAD_VEHICLE_KELLING_FRUIT_TRUCK :Xe hoa quả Kelling diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index aefb758720..fddadc8bcd 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -810,13 +810,12 @@ STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}Mae {VEH STR_NEWS_SHIP_IS_WAITING :{WHITE}Mae {VEHICLE} yn aros yn y depo STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}Mae {VEHICLE} yn aros yn yr awrendy -# Start of order review system -# DON'T ADD OR REMOVE LINES HERE +# Order review system / warnings STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Mae gan {VEHICLE} rhy ddiffyg gorchmynion yn ei amserlen STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}Mae gan {VEHICLE} orchymyn gwallus STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Mae gan {VEHICLE} orchmynion dyblyg STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}Mae gan {VEHICLE} orsaf annilys yn ei orchmynion -# end of order system +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}Mae gan {VEHICLE}o fewn ei orchmynion faes awyr sydd â llwybr glanio sy'n rhy fyr STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}Mae {VEHICLE} yn heneiddio STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}Mae {VEHICLE} yn hynod o hen @@ -954,9 +953,6 @@ 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_SCREENSHOT_FORMAT :{BLACK}Fformat Ciplun -STR_GAME_OPTIONS_SCREENSHOT_FORMAT_TOOLTIP :{BLACK}Dewiswch y fformat ciplun i'w ddefnyddio - 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 @@ -1072,7 +1068,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Gosodiad cwmni STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categori: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Math: -STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Yn cyfyngu'r rhestr isod gan ddangos gosodiadau sydd wedi newid yn unig +STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Yn cyfyngu'r rhestr isod drwy hidlau rhagosodedig STR_CONFIG_SETTING_RESTRICT_BASIC :Gosodiadau sylfaenol STR_CONFIG_SETTING_RESTRICT_ADVANCED :Gosodiadau uwch STR_CONFIG_SETTING_RESTRICT_ALL :Gosodiadau arbenigwyr / pob gosodiad @@ -1084,7 +1080,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Pob math o osod STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Gosodiadau gwestai (cedwir yn y ffeiliau cadw; yn effeithio ar pob gêm) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Gosodiadau gêm (cedwir yn y ffeiliau cadw, gan effeithio ar gemau newydd yn unig) STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Gosodiadau gêm (cedwir yn y ffeil cadw, gan effeithio ar y gêm bresennol yn unig) -STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Gosodiadau cwmni (cedwir yn y ffeiliau cadw, gan effeithio ar y gemau newydd yn unig) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Gosodiadau cwmni (cedwir yn y ffeiliau cadw, gan effeithio ar gemau newydd yn unig) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Gosodiadau cwmni (cedwir yn y ffeil cadw, gan effeithio ar y cwmni presennol yn unig) STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Dangosir holl ganlyniadau chwilio drwy osod{}{SILVER}Categori {BLACK}i {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Dangosir holl ganlyniadau chwilio drwy osod{}{SILVER}Math {BLACK}i {WHITE}Pob math o osodiad @@ -1127,12 +1123,10 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :Rhwystro trenau STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Os y galluogir, ni fydd trenau yn gwrthdroi mewn gorsafoedd nad ydynt yn derfynfeydd, hyd yn oed os oes llwybr byrach i'w cyrchfan drwy wrthdroi STR_CONFIG_SETTING_DISASTERS :Trychinebau: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toglo trychinebau a all rhwystro neu ddinistrio cerbydau neu tanadeiledd -STR_CONFIG_SETTING_CITY_APPROVAL :Agwedd cyngor dinas at ailstrwythuro'r ardal: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL :Agwedd y cyngor tref at ailstrwythuro'r ardal: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Dewis faint y mae sŵn a niewd amgycheddol gan gwmnïau yn effeithio ar eu graddio trefol a gweithredoedd adeiladu pellach yn eu hardal -STR_CONFIG_SETTING_BUILDONSLOPES :Caniatáu adeiladu a'r lethrau ac arfordiroedd {STRING} -STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT :Os y galluogir, gellir adeiladu traciau a gorsafoedd ar y rhan helaeth o lethrau. Os yr analluogir, feu caniateir ar lethrau sy'n gweddu at lwybr y trac yn unig (h.y. heb angen eu tanseilio) -STR_CONFIG_SETTING_AUTOSLOPE :Caniatáu tirffurfio o dan adeiladau, traciau, etc. (awtolethru): {STRING} +STR_CONFIG_SETTING_AUTOSLOPE :Caniatáu tirffurfio o dan adeiladau, traciau, ayyb.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Caniatáu tirffurfio o dan adeiladau a thraciau heb eu chwalu STR_CONFIG_SETTING_CATCHMENT :Caniatáu ardaloedd dalgylch mwy realistig eu maint: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Defnyddio dalgylchoedd o feintiau gwahanol ar gyfer gwahanol fathau o orsafoedd a meysydd awyr @@ -1156,14 +1150,8 @@ STR_CONFIG_SETTING_FORBID_90_DEG :Rhwystro trenau STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Tro 90 gradd yw pan fo trac llorweddol yn cael ei ddilyn yn syth gan drac fertigol at y teil cyfagos, gan wneud i'r trên droi 90 gradd wrth groesi ochr y teil yn hytrach na'r 45 gradd sydd i'w gael gyda chyfuniadau trac eraill. Mae hyn hefyd yn effeithio ar gylch troi llongau STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Caniatáu cyfuno gorsafoedd nad ydynt yn union gyfochrog: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Caniatáu ychwanegu rhannau at orsaf heb gyffwrdd yn uniongyrchol a'r rhai sydd eisioes yn bodoli. -STR_CONFIG_SETTING_IMPROVEDLOAD :Defnyddio'r algorithm llwytho gwell: {STRING} -STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT :Os y galluogir, caiff amryw gerbydau sy'n aros mewn gorsaf eu llwytho fesul un. Ni ddechreuir llwytho'r ail gerbyd nes y bydd digon o nwyddau i lenwi'r cerbyd gyntaf yn llwyr -STR_CONFIG_SETTING_GRADUAL_LOADING :Llwytho cerbydau'n raddol: {STRING} -STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT :Llwytho cerbydau'n raddol gan ddefnyddio ystodau cerbyd-benodol, yn hytrach na llwytho pob dim ar unwaith gydag amser penodedig yn dibynnu ar faint y llwyth yn unig STR_CONFIG_SETTING_INFLATION :Chwyddiant: {STRING} STR_CONFIG_SETTING_INFLATION_HELPTEXT :Galluogi chwyddiant yn yr economi, lle y bydd costau'n codi ychydig yn gyflymach na thaliadau -STR_CONFIG_SETTING_SELECTGOODS :Danfon llwyth i orsaf dim ond pan fo galw amdano: {STRING} -STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT :Dim ond danfon llwyth i orsaf lle y bu cais gan cerbyd i'w lwytho. Mae hyn yn osgoi creu graddfa cludiant gwael ar gyfer llwythi nas gwasanaethir mewn gorsaf STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Hyd pont uchafsymol: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Hyd uchafsymol ar gyfer adeiladu pontydd STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Hyd twnel uchafsymol: {STRING} @@ -1191,8 +1179,6 @@ STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Y man lle y daw STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :ochr agos STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :canol STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :ochr bell -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING :Ciwio cerbydau ffordd (gyda effeithiau cwantwm): {STRING} -STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT :Gorfodi i gerbydau ffordd aros o flaen arosfannau llawn nes eu bod yn glir STR_CONFIG_SETTING_AUTOSCROLL :Tremio'r ffenestr pan fydd y llygoden ar ymyl y sgrin: {STRING} STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Pan y galluogir, bydd ffenestri golwg yn dechrau sgrolio pan fo'r llygoden yn agos at ochr y ffenest STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Analluogwyd @@ -1223,10 +1209,6 @@ STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Caniatáu arosf STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Caniatáu adeiladu arosfannau gyrru-trwodd ar ffyrdd sy'n eiddo i drefi STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Caniatáu arosfannau gyrru-trwodd ar ffyrdd sy'n eiddo i gystadleuwyr: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Caniatáu adeiladu arosfannau gyrru-trwodd ar ffyrth sy'n eiddo i gwmnïau eraill -STR_CONFIG_SETTING_ADJACENT_STATIONS :Caniatáu adeiladu gorsafoedd cyfochrog: {STRING} -STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT :Caniatáu i orsafoedd gwahanol gyffwrdd eu gilydd -STR_CONFIG_SETTING_DYNAMIC_ENGINES :Galluogi defnyddio mwy nag un o setiau injian NewGRF: {STRING} -STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT :Dewis cydweddu ar gyfer hen NewGRFau. Peidiwch ac analluogi, oni bai eich bod yn gwybod yn union yr hyn yr ydych yn ei wneud! STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Nid yw'n bosib newid y gosodiad yma pan fo cerbydau'n bodoli STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Cynnal a chadw tanadeiledd: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Pan fo wedi'i alluogi, mae tanadeiledd yn creu costau cynnal a chadw. Mae'r cost yn codi'n gyflymach na'i gyfradd gyda thŵf y rhwydwaith, gan effeithio'n fwy ar gwmniau mawr na rhai bychan @@ -1247,7 +1229,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Nid yw cerbydau STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Pan fo wedi'i alluogi, bydd bob math o gerbyd yn aros ar gael am byth wedi eu cyflwyniad gyntaf STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Awtoadnewyddu cerbyd pan aiff yn hen: {STRING} STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Pan fo wedi'i alluogi, bydd cerbyd sy'n agos at ddiwedd ei oes yn cael ei ddisodli'n ddiofyn pan y caiff yr amodau adnewyddu eu cyflawni -STR_CONFIG_SETTING_AUTORENEW_MONTHS :Awtoadnewyddu pan fo'r cerbyd {STRING} ei oed uchafsymol +STR_CONFIG_SETTING_AUTORENEW_MONTHS :Awtoadnewyddu pan fo cerbyd {STRING} ei oed uchafsymol STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Oed cymharol pan y dylid ystyried awtoadnewyddu cerbyd STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mis cyn STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mis wedi @@ -1268,7 +1250,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Lled y linell m STR_CONFIG_SETTING_LAND_GENERATOR :Cynhyrchydd Tir: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Gwreiddiol STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis -STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Pellter uchafsymol o'r ochr ar gyfer Purfeydd Olew: {STRING} +STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Pellter uchafsymol o'r ochr ar gyfer Purfeydd olew: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Codir purfeydd olew ger ymylon y map yn unig, h.y. ar yr arfordir mewn mapiau ynys STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Uchder Llinell Eira: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Garwder y tirwedd (TerraGenesis yn unig) : {STRING} @@ -1284,8 +1266,6 @@ STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Tro Map Uchder: STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Gwrthglocwedd STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Clocwedd STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Y lefel map uchder mae map senario fflat yn ei dderbyn: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES :Galluogi tirffurfio'r teiliau ar ymylon y map: {STRING} -STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT :Os analluogir, cefnfor fydd ar ymylon y map bob tro STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Nid yw un neu fwy o'r teiliau ar ymyl gogleddol y map yn wag STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Nid yw un neu fwy o'r teiliau ar un o'r ymylon yn ddŵr @@ -1306,7 +1286,7 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Sgrolio prif ff STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Rheoli syt y mae'r prif olygfa'n sgrolio at leoliad penodol pan yn clicio ar y map bychan neu yn rhoi gorchymyn i sgrolio at wrthrych penodol STR_CONFIG_SETTING_MEASURE_TOOLTIP :Dangos cymorth mesur wrth ddefnyddio'r offer adeiladu amrywiol: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Dangos pellterau teil a gwahaniaethau uchder wrth lusgo tra'n adeiladu -STR_CONFIG_SETTING_LIVERIES :Dangos lifrau cwmnïau: {STRING} +STR_CONFIG_SETTING_LIVERIES :Defnyddio lifrau cerbyd-benodol: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Rheoli defnydd o lifrau cerbyd-benodol ar gyfer cerbydau (yn hytrach na lliwiau'r cwmni) STR_CONFIG_SETTING_LIVERIES_NONE :Dim STR_CONFIG_SETTING_LIVERIES_OWN :Eich Cwmni @@ -1342,11 +1322,6 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :hir (31ain Rhag STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :byr(31-12-2008) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE :Palet rhagosodedig ar gyfer NewGRFau nad yw'n dynodi un: {STRING} -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT :Palet rhagosodedig i'w ddefnyddio ar gyfer NewGRFau nad ydynt yn dynodi'r un y maent eu hangen -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS :Palet rhagosodedig (D) -STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_WIN :Palet hanesyddol (W) - STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Oedi'n awtomatig wrth gychwyn gêm newydd: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Pan y galluogir, bydd yn gêm yn oedi ar ddechrau gêm newydd, er mwyn astudio'r map STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Tra fo wedi'i oedi, caniatáu: {STRING} @@ -1355,7 +1330,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Dim gweithredoe STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Pob gweithred ac eithro adeiladu STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Pob gweithred ac eithro addasu tirwedd STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Pob gweithred -STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Defnyddio'r rhestr cerbydau uwch {STRING} +STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Defnyddio grwpiau yn y rhestr cerbydau: {STRING} STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Galluogi defnydd o'r rhestrau cerbyd uwch ar gyfer grwpio cerbydau STR_CONFIG_SETTING_LOADING_INDICATORS :Dangos llwytho: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Dewis a fydd dangosyddion llwytho'n cael eu dangos uwch cerbydau sy'n llwytho neu dadlwytho @@ -1370,7 +1345,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Math o gledrau STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Y cyntaf sydd ar gael STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Yr olaf sydd ar gael STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Defnydd mwyaf -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Dangos traciau wedi'u cadw: {STRING} +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Dangos llwybrau traciau wedi'u cadw: {STRING} STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :Rhoi lliw gwahanol ar gledrau lliw gwahanol i gynorthwyo datrys problemau gyda threnau sy'n gwrthod myned blociau llwybro STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Cadw'r offer adeiladu yn weithredol wedi ei ddefnydd: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Cadw'r offer adeiladu pontydd, twneli, a.y.y.b. ar agor wedi eu defnydd @@ -1396,13 +1371,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Chwarae synau c STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Analluogi adeiladu tanadeiledd pan nad oes cerbydau addas ar gael: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Pan y galluogir, nid yw tanadeiledd ar gael nes fod cerbydau ar gael iddo, gan osgoi gwastraff arian ac amser ar danadeiledd na ellir ei ddefnyddio -STR_CONFIG_SETTING_MAX_TRAINS :Uchafswm nifer trenau cwmni: {STRING} +STR_CONFIG_SETTING_MAX_TRAINS :Uchafswm nifer y trenau i bob cwmni: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Nifer uchafsymol y trenau y gall cwmni fod yn berchen arnynt -STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Uchafswm cerbydau ffordd cwmni: {STRING} +STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Uchafswm nifer y cerbydau ffordd i bob cwmni: {STRING} STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Nifer uchafsymol y cerbydau ffordd y gall cwmni fod yn berchen arnynt -STR_CONFIG_SETTING_MAX_AIRCRAFT :Uchafswm awyrennau cwmni: {STRING} +STR_CONFIG_SETTING_MAX_AIRCRAFT :Uchafswm nifer yr awyrennau i bob cwmni: {STRING} STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Nifer uchafsymol yr awyrennau y gall cwmni fod yn berchen arnynt -STR_CONFIG_SETTING_MAX_SHIPS :Uchafswm llongau cwmni: {STRING} +STR_CONFIG_SETTING_MAX_SHIPS :Uchafswm nifer y llongau i bob cwmni: {STRING} STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Nifer uchafsymol y llongau y gall cwmni fod yn berchen arnynt STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Analluogi trenau ar gyfer y cyfrifiadur: {STRING} @@ -1520,7 +1495,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Caniatáu i dre STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Caniatáu i drefi adeiladau croesfannau rheilffordd: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Galluogwch y gosodiad yma i ganiatáu i drefi adeiladu croesfannau rheilffordd STR_CONFIG_SETTING_NOISE_LEVEL :Caniatáu i drefi reoli lefel swn meysydd awyrenau: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Os analluogir y gosodiad yma, gellir cael dwy faes awyr ymhob tref. Os y galluogir, fe gyfyngir y nifer o feysydd awyr gan dderbyniath sŵn y dref, sydd yn dibynnu ar y boblogaeth, ynghŷd â maint a phellter maes awyr +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Os analluogir y gosodiad yma, gellir cael dau faes awyr ymhob tref. Os y galluogir, fe gyfyngir y nifer o feysydd awyr gan y lefel sŵn mae'r dref am dderbyn, sydd yn dibynnu ar y boblogaeth a maint a phellter y maes awyr STR_CONFIG_SETTING_TOWN_FOUNDING :Sefydlu trefi mewn gêm: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Mae galluogi'r gosodiad yma'n caniatáu i chwaraewyr sefydlu trefi newydd yn y gêm STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Gwahardd @@ -1568,8 +1543,6 @@ STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 mewn {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Dim STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Lluosydd cychwynol maint dinas: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Maint cymhedrol dinasoedd o gymharu â threfi arferol ar ddechrau'r gêm -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD :Dileu ffyrdd disynnwyr wrth adeiladu ffyrdd: {STRING} -STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT :Tynnu pytiau ffyrdd diddefnydd yn ystod ailadeiladu ffyrdd noddedig STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Diweddaru'r graff dosraniad bob {STRING} diwrnod STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Amser rhwng pob ailgifrifiad o'r graff cyswllt. Bydd pob ailgyfrifiad yn cyfrifio'r cynllun ar gyfer un cydran o'r graff. O ganlyn ni fydd dwis gwerth o X yn golygu y bydd y graff cyfan yn cael ei ddiweddaru bob X diwrnod, ond y bydd rhai cydrannau. Bydd ystod byr yn defnyddio mwy o amser y prosesydd yn ailgyfrio graffiau. Bydd ystor hir yn cynyddu'r amser cyn y daw'r dosraniad i ryn ar lwybrau newydd. @@ -1582,7 +1555,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX :Dull dosrannu a STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :Mae "cymesur" yn golygu y bydd tua'r un faint o deithwyr yn mynd o orsaf A i orsaf B ac yr aiff o B i A. Mae "anghymesur" yn golygu y gall niferoedd mympwyol fynd yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer teithwyr. STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Dull dosrannu ar gyfer post: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :Mae "cymesur" yn golygu y bydd tua'r un faint o bost yn cael ei yrru o orsaf A i orsaf B ac y gyrrir o B i A. Mae "anghymesur" yn golygu y gall llwythi mympwyol eu gyrru yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer post. -STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Dull dosrannu ar gyfer llwythi ARGOF: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Dull dosrannu ar gyfer llwythi ARFOG: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :Mae llwythi ARFOG yn cynnwys trysorau mewn ardaloedd tymherus, diemwntau yn y trofannau, ac aur yn yr is-arctig. Mae modd y bydd NewGRFau yn newid hyn, Mae "cymesur" yn golygu y bydd tua'r un faint o lwythi'n cael eu gyrru o orsaf A i orsaf B ac y gyrrir o B i A. Mae "anghymesur" yn golygu y gall llwythi mympwyol eu gyrru yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer y llwythi yma. Fe argymhellir eich bod yn dewis anghymesur neu â llaw pan yn chwarae mewn ardal is-arctig, gan na fydd banciau'n gyrru aur yn ôl i gloddfeydd aur. Ar gyfer ardaloedd tymherus neu trofannol gallwch hefyd ddewis cymesur gan y bydd banciau'n gyrru trysorau'n ôl i'r banciau tardd. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Dull dosrannu ar gyfer llwythi eraill: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :Mae "anghymesur" yn golygu y gall llwythi mympwyol eu gyrru yn y naill cyfeiriad neu'r llall. Mae "â llaw" yn golygu ni fydd dosrannu diofyn yn digwydd ar gyfer y llwythi hyn. @@ -1631,27 +1604,29 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :Imperial (ft) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metrig (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) -STR_CONFIG_SETTING_GUI :{ORANGE}Rhyngwyneb STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Unedau Lleol -STR_CONFIG_SETTING_CONSTRUCTION :{ORANGE}Adeiladu +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Graffeg +STR_CONFIG_SETTING_SOUND :{ORANGE}Sain +STR_CONFIG_SETTING_INTERFACE :{ORANGE}Rhyngwyneb +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Cyffredinol +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Ffenestri Golygfa +STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Adeiladu +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Newyddion a Chyngor +STR_CONFIG_SETTING_COMPANY :{ORANGE}Cwmni +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Cyfrifo STR_CONFIG_SETTING_VEHICLES :{ORANGE}Cerbydau -STR_CONFIG_SETTING_STATIONS :{ORANGE}Gorsafoedd -STR_CONFIG_SETTING_ECONOMY :{ORANGE}Economi -STR_CONFIG_SETTING_LINKGRAPH :{ORANGE}Dosraniad Cargo -STR_CONFIG_SETTING_AI :{ORANGE}Cystadleuwyr -STR_CONFIG_SETTING_DISPLAY_OPTIONS :{ORANGE}Dewisiadau dangos -STR_CONFIG_SETTING_INTERACTION :{ORANGE}Rhyngweithio -STR_CONFIG_SETTING_SOUND :{ORANGE}Effeithiau sŵn -STR_CONFIG_SETTING_NEWS :{ORANGE}Newyddion a negeseuon -STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS :{ORANGE}Signalau -STR_CONFIG_SETTING_STATIONS_CARGOHANDLING :{ORANGE}Trin llwyth -STR_CONFIG_SETTING_AI_NPC :{ORANGE}Chwaraewyr Cyfrifiadurol -STR_CONFIG_SETTING_VEHICLES_AUTORENEW :{ORANGE}Awtoadnewyddu -STR_CONFIG_SETTING_VEHICLES_SERVICING :{ORANGE}Wrthi'n gwasanaethu +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Ffiseg STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Llwybro -STR_CONFIG_SETTING_VEHICLES_TRAINS :{ORANGE}Trenau -STR_CONFIG_SETTING_ECONOMY_TOWNS :{ORANGE}Trefi -STR_CONFIG_SETTING_ECONOMY_INDUSTRIES :{ORANGE}Diwydiannau +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Cyfyngiadau +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Trychinebau a Damweiniau +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Cread byd +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Amgylchedd +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Awdurdodau +STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Trefi +STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Diwydiannau +STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Dosraniad cargo +STR_CONFIG_SETTING_AI :{ORANGE}Cystadleuwyr +STR_CONFIG_SETTING_AI_NPC :{ORANGE}Chwaraewyr Cyfrifiadurol STR_CONFIG_SETTING_PATHFINDER_OPF :Gwreiddiol STR_CONFIG_SETTING_PATHFINDER_NPF :NPF @@ -1808,6 +1783,7 @@ STR_LIVERY_FREIGHT_TRAM :Tram Nwyddau STR_FACE_CAPTION :{WHITE}Dewiswch Wyneb STR_FACE_CANCEL_TOOLTIP :{BLACK}Diddymu dewis wyneb STR_FACE_OK_TOOLTIP :{BLACK}Derbyn y dewis newydd o wyneb +STR_FACE_RANDOM :{BLACK}Ar hap STR_FACE_MALE_BUTTON :{BLACK}Gwrywaidd STR_FACE_MALE_TOOLTIP :{BLACK}Dewis gwyneb gwrywaidd @@ -1928,13 +1904,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Diogelwc STR_NETWORK_START_SERVER_UNADVERTISED :Na STR_NETWORK_START_SERVER_ADVERTISED :Ia STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} gwestai -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Uchafswm gwesteion: +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Uchafswm nifer gwesteion: STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Dewiswch uchafswm y gwesteion. Does dim rhaid llanw pob slot STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} cwmni -STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Uchafswm cwmnïau: +STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Uchafswm nifer cwmnïau: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}rhoi cyfyngiad penodol ar sawl cwmni mae'r gweinydd yn ei ganiatáu STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} gwyliwr -STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Uchafswm gwylwyr: +STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Uchafswm nifer gwylwyr: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}rhoi cyfyngiad penodol ar sawl gwyliwr mae'r gweinydd yn ei ganiatáu STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Iaith i'w siarad: STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Rhoi gwybod i'r chwaraewyr pa iaith y dylid ei siarad ar y gweinydd @@ -2687,10 +2663,6 @@ STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nifer di STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Uchder Llinell Eira: STR_MAPGEN_SNOW_LINE_UP :{BLACK}Symud y llinell eira un yn uwch STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Symud y llinell eira un yn is -STR_MAPGEN_RANDOM_SEED :{BLACK}Hedyn Hap -STR_MAPGEN_RANDOM_SEED_HELP :{BLACK}Cliciwch i fewnbynnu hedyn hap -STR_MAPGEN_RANDOM :{BLACK}Ar hap -STR_MAPGEN_RANDOM_HELP :{BLACK}Newid yr hedyn hap syn cael ei ddefnyddio ar gyfer Cynhyrchu Tirwedd STR_MAPGEN_LAND_GENERATOR :{BLACK}Cynhyrchydd Tir: STR_MAPGEN_TREE_PLACER :{BLACK}Algorithm Coed: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Math Tirwedd: @@ -2717,7 +2689,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Enw'r Ma STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Maint: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} -STR_MAPGEN_RANDOM_SEED_OSKTITLE :{BLACK}Rhowch hedyn hap STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Newid uchder Llinell Eira STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Newid y flwyddyn gychwyn @@ -3297,12 +3268,15 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Cerbydau ffordd STR_GROUP_DEFAULT_SHIPS :Llongau heb eu grwpio STR_GROUP_DEFAULT_AIRCRAFTS :Awyrenau heb eu grwpio -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grŵp - cliciwch ar rŵp i restru pob cerbyd yn y grŵp hwn +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grŵp - cliciwch ar grŵp i restru pob cerbyd yn y grŵp hwn. Gallwch glico a llusgo grwpiau i drefnu'r hierarchaeth. STR_GROUP_CREATE_TOOLTIP :{BLACK}Cliciwch i greu grŵp STR_GROUP_DELETE_TOOLTIP :{BLACK}Dileu'r grŵp a ddewiswyd STR_GROUP_RENAME_TOOLTIP :{BLACK}Ailenwi'r grŵp a ddewiswyd STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Cliciwch i amddiffyn y grŵp rhag awtoddisodli gêm-eang +STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Dileu Grŵp +STR_GROUP_DELETE_QUERY_TEXT :{WHITE} Ydych chi'n siwer eich bod am ddileu'r grŵp yma ac unrhyw ddisgynyddion? + STR_GROUP_ADD_SHARED_VEHICLE :Ychwanegu cerbyd a rennir STR_GROUP_REMOVE_ALL_VEHICLES :Dileu pob cerbyd @@ -3691,8 +3665,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Newid ym STR_ORDER_REFIT :{BLACK}Ailffitio STR_ORDER_REFIT_TOOLTIP :{BLACK}Dewiswch y math o lwyth yr hoffech chi ailffitio gyda'r gorchymyn hwn. Cliciwch Ctrl-clic er mwyn diddymu'r cyfarwyddyd hwn. -STR_ORDER_REFIT_AUTO :{BLACK}Awto-ailffitio -STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Dewis y math o lwyth i awto-ailffitio ar ei gyfer yn y gorchymyn yma. Mae Ctrl+Clic yn tynnu'r gorchymyn. Bydd awto-ailffitio ond yn digwydd os yw'r cerbyd yn caniatáu hynny +STR_ORDER_REFIT_AUTO :{BLACK}Ailffitio mewn gorsaf +STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Dewis y math o lwyth i ailffitio ar ei gyfer yn y gorchymyn yma. Mae Ctrl+Clic yn tynnu'r gorchymyn. Bydd ailffitio ond yn digwydd os yw'r cerbyd yn caniatáu hynny STR_ORDER_DROP_REFIT_AUTO :Llwyth gosodedig STR_ORDER_DROP_REFIT_AUTO_ANY :Llwythi ar gael @@ -3783,18 +3757,18 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Dim dadlwytho, STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Dim dadlwytho, aros am unrhyw lwyth llawn) STR_ORDER_NO_UNLOAD_NO_LOAD :(Dim llwytho na dadlwytho) -STR_ORDER_AUTO_REFIT :(Awto-ailffitio i {STRING}) -STR_ORDER_FULL_LOAD_REFIT :(Llwyth llawn gan awto-ailffitio i {STRING}) -STR_ORDER_FULL_LOAD_ANY_REFIT :(Llwyth llawn o unrhyw gargo gan awto-ailffitio i {STRING}) -STR_ORDER_UNLOAD_REFIT :(Dadlwytho a llwytho gan awto-ailffitio i {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Dadlwytho ac aros am lwyth llawn o gargo gan awto-ailffitio i {STRING}) -STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Dadlwytho ac aros am unrhyw lwyth llawn gan awto-ailffitio o {STRING}) -STR_ORDER_TRANSFER_REFIT :(Trosglwyddo a llwytho gan awto-ailffitio i {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Trosglwyddo ac aros am lwyth llawn gan awto-ailffitio i {STRING}) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Trosglwyddo ac aros am unrhyw lwyth llawn gan awto-ailffitio i {STRING}) -STR_ORDER_NO_UNLOAD_REFIT :(Dim dadlwytho ond llwytho gan awto-ailffitio i {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Dim dadlwytho ac aros am lwyth llawn gan awto-ailffitio i {STRING}) -STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Dim dadlwytho ac aros am unrhyw lwyth llawn gan awto-ailffitio i {STRING}) +STR_ORDER_AUTO_REFIT :(Ailffitio i {STRING}) +STR_ORDER_FULL_LOAD_REFIT :(Llwyth llawn gan ailffitio i {STRING}) +STR_ORDER_FULL_LOAD_ANY_REFIT :(Llwyth llawn o unrhyw gargo gan ailffitio i {STRING}) +STR_ORDER_UNLOAD_REFIT :(Dadlwytho a llwytho gan ailffitio i {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Dadlwytho ac aros am lwyth llawn o gargo gan ailffitio i {STRING}) +STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Dadlwytho ac aros am unrhyw lwyth llawn gan ailffitio o {STRING}) +STR_ORDER_TRANSFER_REFIT :(Trosglwyddo a llwytho gan ailffitio i {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Trosglwyddo ac aros am lwyth llawn gan ailffitio i {STRING}) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Trosglwyddo ac aros am unrhyw lwyth llawn gan ailffitio i {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Dim dadlwytho ond llwytho gan ailffitio i {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Dim dadlwytho ac aros am lwyth llawn gan ailffitio i {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Dim dadlwytho ac aros am unrhyw lwyth llawn gan ailffitio i {STRING}) STR_ORDER_AUTO_REFIT_ANY :llwythi ar gael @@ -3823,6 +3797,10 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Teithio (heb ei STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Teithio heb oresgyn {2:VELOCITY} (heb ei amserlenu) STR_TIMETABLE_TRAVEL_FOR :Teithio am{STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Teithio am {STRING} heb oresgyn {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Teithio (am {STRING}, heb ei amserlennu) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Teitho (am {STRING}, heb ei amserlennu) dim cyflymach na {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(aros am {STRING}, heb ei amserlennu) +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(teitiho am {STRING}, heb ei amserlennu) STR_TIMETABLE_STAY_FOR :aros am {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :a theithio am {STRING} STR_TIMETABLE_DAYS :{COMMA} diwrnod @@ -4276,6 +4254,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... rydy STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Methu creu grŵp STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Methu dileu'r grŵp hwn... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Methu ailenwi'r grŵp... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Methu gosod grŵp rhiant... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Methu dileu pob cerbyd o'r grŵp hwn... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Methu ychawnegu'r cerbyd i'r grŵp hwn... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Methu ychwanegu cerbyd a rennir i'r grŵp... diff --git a/src/linkgraph/demands.cpp b/src/linkgraph/demands.cpp index 80a0f56772..c16288123c 100644 --- a/src/linkgraph/demands.cpp +++ b/src/linkgraph/demands.cpp @@ -4,6 +4,8 @@ #include "demands.h" #include +#include "../safeguards.h" + typedef std::list NodeList; /** @@ -11,15 +13,7 @@ typedef std::list NodeList; */ class Scaler { public: - /** - * Constructor. - */ - Scaler() : demand_per_node(0) {} - void SetDemands(LinkGraphJob &job, NodeID from, NodeID to, uint demand_forw); - -protected: - uint demand_per_node; ///< Mean demand associated with each node. }; /** @@ -32,7 +26,8 @@ public: * @param mod_size Size modifier to be used. Determines how much demands * increase with the supply of the remote station. */ - inline SymmetricScaler(uint mod_size) : mod_size(mod_size), supply_sum(0) + inline SymmetricScaler(uint mod_size) : mod_size(mod_size), supply_sum(0), + demand_per_node(0) {} /** @@ -80,8 +75,9 @@ public: void SetDemands(LinkGraphJob &job, NodeID from, NodeID to, uint demand_forw); private: - uint mod_size; ///< Size modifier. Determines how much demands increase with the supply of the remote station. - uint supply_sum; ///< Sum of all supplies in the component. + uint mod_size; ///< Size modifier. Determines how much demands increase with the supply of the remote station. + uint supply_sum; ///< Sum of all supplies in the component. + uint demand_per_node; ///< Mean demand associated with each node. }; /** @@ -90,37 +86,29 @@ private: class AsymmetricScaler : public Scaler { public: /** - * Constructor. + * Nothing to do here. + * @param unused. */ - inline AsymmetricScaler() : demand_sum(0) {} - - /** - * Count a node's demand into the sum of demands. - * @param node The node to be counted. - */ - inline void AddNode(const Node &node) + inline void AddNode(const Node &) { - this->demand_sum += node.Demand(); } /** - * Calculate the mean demand per node using the sum of demands. - * @param num_demands Number of accepting nodes. + * Nothing to do here. + * @param unused. */ - inline void SetDemandPerNode(uint num_demands) + inline void SetDemandPerNode(uint) { - this->demand_per_node = max(this->demand_sum / num_demands, (uint)1); } /** - * Get the effective supply of one node towards another one. In asymmetric - * distribution the demand of the other node is weighed in. + * Get the effective supply of one node towards another one. * @param from The supplying node. - * @param to The receiving node. + * @param unused. */ - inline uint EffectiveSupply(const Node &from, const Node &to) + inline uint EffectiveSupply(const Node &from, const Node &) { - return max(from.Supply() * to.Demand() / this->demand_per_node, (uint)1); + return from.Supply(); } /** @@ -130,9 +118,6 @@ public: * @param to_anno Unused. */ inline bool HasDemandLeft(const Node &to) { return to.Demand() > 0; } - -private: - uint demand_sum; ///< Sum of all demands in the component. }; /** diff --git a/src/linkgraph/flowmapper.cpp b/src/linkgraph/flowmapper.cpp index 79e0f09f3f..4b974a809e 100644 --- a/src/linkgraph/flowmapper.cpp +++ b/src/linkgraph/flowmapper.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "flowmapper.h" +#include "../safeguards.h" + /** * Map the paths generated by the MCF solver into flows associated with nodes. * @param component the link graph component to be used. @@ -49,8 +51,10 @@ void FlowMapper::Run(LinkGraphJob &job) const FlowStatMap &flows = node.Flows(); flows.FinalizeLocalConsumption(node.Station()); if (this->scale) { - /* Scale by time the graph has been running without being compressed. */ - uint runtime = job.JoinDate() - job.Settings().recalc_time - job.LastCompression(); + /* Scale by time the graph has been running without being compressed. Add 1 to avoid + * division by 0 if spawn date == last compression date. This matches + * LinkGraph::Monthly(). */ + uint runtime = job.JoinDate() - job.Settings().recalc_time - job.LastCompression() + 1; for (FlowStatMap::iterator i = flows.begin(); i != flows.end(); ++i) { i->second.ScaleToMonthly(runtime); } diff --git a/src/linkgraph/linkgraph.cpp b/src/linkgraph/linkgraph.cpp index d41c3494d1..01b3d1ee2f 100644 --- a/src/linkgraph/linkgraph.cpp +++ b/src/linkgraph/linkgraph.cpp @@ -13,6 +13,8 @@ #include "../core/pool_func.hpp" #include "linkgraph.h" +#include "../safeguards.h" + /* Initialize the link-graph-pool */ LinkGraphPool _link_graph_pool("LinkGraph"); INSTANTIATE_POOL_METHODS(LinkGraph) @@ -179,7 +181,7 @@ NodeID LinkGraph::AddNode(const Station *st) max(new_node + 1U, this->edges.Height())); this->nodes[new_node].Init(st->index, - HasBit(good.acceptance_pickup, GoodsEntry::GES_ACCEPTANCE)); + HasBit(good.status, GoodsEntry::GES_ACCEPTANCE)); BaseEdge *new_edges = this->edges[new_node]; @@ -195,47 +197,41 @@ NodeID LinkGraph::AddNode(const Station *st) } /** - * Fill an edge with values from a link. If usage < capacity set the usage, - * otherwise set the restricted or unrestricted update timestamp. + * Fill an edge with values from a link. Set the restricted or unrestricted + * update timestamp according to the given update mode. * @param to Destination node of the link. * @param capacity Capacity of the link. - * @param usage Usage to be added or REFRESH_UNRESTRICTED or REFRESH_RESTRICTED. + * @param usage Usage to be added. + * @param mode Update mode to be used. */ -void LinkGraph::Node::AddEdge(NodeID to, uint capacity, uint usage) +void LinkGraph::Node::AddEdge(NodeID to, uint capacity, uint usage, EdgeUpdateMode mode) { assert(this->index != to); BaseEdge &edge = this->edges[to]; BaseEdge &first = this->edges[this->index]; edge.capacity = capacity; + edge.usage = usage; edge.next_edge = first.next_edge; first.next_edge = to; - switch (usage) { - case REFRESH_UNRESTRICTED: - edge.last_unrestricted_update = _date; - break; - case REFRESH_RESTRICTED: - edge.last_restricted_update = _date; - break; - default: - edge.usage = usage; - break; - } + if (mode & EUM_UNRESTRICTED) edge.last_unrestricted_update = _date; + if (mode & EUM_RESTRICTED) edge.last_restricted_update = _date; } /** * Creates an edge if none exists yet or updates an existing edge. * @param to Target node. * @param capacity Capacity of the link. - * @param usage Usage to be added or REFRESH_UNRESTRICTED or REFRESH_RESTRICTED. + * @param usage Usage to be added. + * @param mode Update mode to be used. */ -void LinkGraph::Node::UpdateEdge(NodeID to, uint capacity, uint usage) +void LinkGraph::Node::UpdateEdge(NodeID to, uint capacity, uint usage, EdgeUpdateMode mode) { assert(capacity > 0); - assert(usage <= capacity || usage == REFRESH_RESTRICTED || usage == REFRESH_UNRESTRICTED); + assert(usage <= capacity); if (this->edges[to].capacity == 0) { - this->AddEdge(to, capacity, usage); + this->AddEdge(to, capacity, usage, mode); } else { - (*this)[to].Update(capacity, usage); + (*this)[to].Update(capacity, usage, mode); } } @@ -268,34 +264,30 @@ void LinkGraph::Node::RemoveEdge(NodeID to) } /** - * Create a new edge or update an existing one. If usage is REFRESH_UNRESTRICTED - * or REFRESH_RESTRICTED refresh the edge to have at least the given capacity - * and also update the respective update timestamp, otherwise add the capacity. + * Update an edge. If mode contains UM_REFRESH refresh the edge to have at + * least the given capacity and usage, otherwise add the capacity and usage. + * In any case set the respective update timestamp(s), according to the given + * mode. * @param from Start node of the edge. * @param to End node of the edge. * @param capacity Capacity to be added/updated. - * @param usage Usage to be added or REFRESH_UNRESTRICTED or REFRESH_RESTRICTED. + * @param usage Usage to be added. + * @param mode Update mode to be applied. */ -void LinkGraph::Edge::Update(uint capacity, uint usage) +void LinkGraph::Edge::Update(uint capacity, uint usage, EdgeUpdateMode mode) { assert(this->edge.capacity > 0); - if (usage > capacity) { - this->edge.capacity = max(this->edge.capacity, capacity); - switch (usage) { - case REFRESH_UNRESTRICTED: - this->edge.last_unrestricted_update = _date; - break; - case REFRESH_RESTRICTED: - this->edge.last_restricted_update = _date; - break; - default: - NOT_REACHED(); - break; - } - } else { + assert(capacity >= usage); + + if (mode & EUM_INCREASE) { this->edge.capacity += capacity; this->edge.usage += usage; + } else if (mode & EUM_REFRESH) { + this->edge.capacity = max(this->edge.capacity, capacity); + this->edge.usage = max(this->edge.usage, usage); } + if (mode & EUM_UNRESTRICTED) this->edge.last_unrestricted_update = _date; + if (mode & EUM_RESTRICTED) this->edge.last_restricted_update = _date; } /** diff --git a/src/linkgraph/linkgraph.h b/src/linkgraph/linkgraph.h index 4306ad2b3d..7aaa1901de 100644 --- a/src/linkgraph/linkgraph.h +++ b/src/linkgraph/linkgraph.h @@ -40,22 +40,6 @@ extern LinkGraphPool _link_graph_pool; class LinkGraph : public LinkGraphPool::PoolItem<&_link_graph_pool> { public: - /** - * Special modes for updating links. 'Restricted' means that vehicles with - * 'no loading' orders are serving the link. If a link is only served by - * such vehicles it's 'fully restricted'. This means the link can be used - * by cargo arriving in such vehicles, but not by cargo generated or - * transferring at the source station of the link. In order to find out - * about this condition we keep two update timestamps in each link, one for - * the restricted and one for the unrestricted part of it. If either one - * times out while the other is still valid the link becomes fully - * restricted or fully unrestricted, respectively. - */ - enum UpdateMode { - REFRESH_RESTRICTED = UINT_MAX - 1, ///< Refresh restricted link. - REFRESH_UNRESTRICTED = UINT_MAX ///< Refresh unrestricted link. - }; - /** * Node of the link graph. contains all relevant information from the associated * station. It's copied so that the link graph job can work on its own data set @@ -313,7 +297,7 @@ public: * @param edge Edge to be wrapped. */ Edge(BaseEdge &edge) : EdgeWrapper(edge) {} - void Update(uint capacity, uint usage); + void Update(uint capacity, uint usage, EdgeUpdateMode mode); void Restrict() { this->edge.last_unrestricted_update = INVALID_DATE; } void Release() { this->edge.last_restricted_update = INVALID_DATE; } }; @@ -437,8 +421,8 @@ public: this->node.demand = demand; } - void AddEdge(NodeID to, uint capacity, uint usage = 0); - void UpdateEdge(NodeID to, uint capacity, uint usage = 0); + void AddEdge(NodeID to, uint capacity, uint usage, EdgeUpdateMode mode); + void UpdateEdge(NodeID to, uint capacity, uint usage, EdgeUpdateMode mode); void RemoveEdge(NodeID to); }; diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index 9889ad87ae..269ca8fa08 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" +#include "../safeguards.h" + /** * Colours for the various "load" states of links. Ordered from "unused" to * "overloaded". @@ -220,11 +222,12 @@ void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &c /* Move line a bit 90° against its dominant direction to prevent it from * being hidden below the grey line. */ + int side = _settings_game.vehicle.road_side ? 1 : -1; if (abs(pta.x - ptb.x) < abs(pta.y - ptb.y)) { - int offset_x = (pta.y > ptb.y ? 1 : -1) * this->scale; + int offset_x = (pta.y > ptb.y ? 1 : -1) * side * this->scale; GfxDrawLine(pta.x + offset_x, pta.y, ptb.x + offset_x, ptb.y, colour, this->scale, dash); } else { - int offset_y = (pta.x < ptb.x ? 1 : -1) * this->scale; + int offset_y = (pta.x < ptb.x ? 1 : -1) * side * this->scale; GfxDrawLine(pta.x, pta.y + offset_y, ptb.x, ptb.y + offset_y, colour, this->scale, dash); } diff --git a/src/linkgraph/linkgraph_type.h b/src/linkgraph/linkgraph_type.h index 3304618410..6a3239b089 100644 --- a/src/linkgraph/linkgraph_type.h +++ b/src/linkgraph/linkgraph_type.h @@ -39,4 +39,26 @@ enum DistributionType { template <> struct EnumPropsT : MakeEnumPropsT {}; typedef TinyEnumT DistributionTypeByte; // typedefing-enumification of DistributionType +/** + * Special modes for updating links. 'Restricted' means that vehicles with + * 'no loading' orders are serving the link. If a link is only served by + * such vehicles it's 'fully restricted'. This means the link can be used + * by cargo arriving in such vehicles, but not by cargo generated or + * transferring at the source station of the link. In order to find out + * about this condition we keep two update timestamps in each link, one for + * the restricted and one for the unrestricted part of it. If either one + * times out while the other is still valid the link becomes fully + * restricted or fully unrestricted, respectively. + * Refreshing a link makes just sure a minimum capacity is kept. Increasing + * actually adds the given capacity. + */ +enum EdgeUpdateMode { + EUM_INCREASE = 1, ///< Increase capacity. + EUM_REFRESH = 1 << 1, ///< Refresh capacity. + EUM_RESTRICTED = 1 << 2, ///< Use restricted link. + EUM_UNRESTRICTED = 1 << 3, ///< Use unrestricted link. +}; + +DECLARE_ENUM_AS_BIT_SET(EdgeUpdateMode) + #endif /* LINKGRAPH_TYPE_H */ diff --git a/src/linkgraph/linkgraphjob.cpp b/src/linkgraph/linkgraphjob.cpp index 61e3136167..30d68e4d89 100644 --- a/src/linkgraph/linkgraphjob.cpp +++ b/src/linkgraph/linkgraphjob.cpp @@ -15,6 +15,8 @@ #include "linkgraphjob.h" #include "linkgraphschedule.h" +#include "../safeguards.h" + /* Initialize the link-graph-job-pool */ LinkGraphJobPool _link_graph_job_pool("LinkGraphJob"); INSTANTIATE_POOL_METHODS(LinkGraphJob) diff --git a/src/linkgraph/linkgraphschedule.cpp b/src/linkgraph/linkgraphschedule.cpp index 4e6f332662..30ad20d4d5 100644 --- a/src/linkgraph/linkgraphschedule.cpp +++ b/src/linkgraph/linkgraphschedule.cpp @@ -16,6 +16,8 @@ #include "mcf.h" #include "flowmapper.h" +#include "../safeguards.h" + /** * Start the next job in the schedule. */ diff --git a/src/linkgraph/mcf.cpp b/src/linkgraph/mcf.cpp index af9f6ce5fb..3163ec9e39 100644 --- a/src/linkgraph/mcf.cpp +++ b/src/linkgraph/mcf.cpp @@ -5,6 +5,8 @@ #include "mcf.h" #include +#include "../safeguards.h" + typedef std::map PathViaMap; /** diff --git a/src/linkgraph/refresh.cpp b/src/linkgraph/refresh.cpp index 921f5d7b8d..d2a3bdda15 100644 --- a/src/linkgraph/refresh.cpp +++ b/src/linkgraph/refresh.cpp @@ -17,12 +17,15 @@ #include "refresh.h" #include "linkgraph.h" +#include "../safeguards.h" + /** * Refresh all links the given vehicle will visit. * @param v Vehicle to refresh links for. * @param allow_merge If the refresher is allowed to merge or extend link graphs. + * @param is_full_loading If the vehicle is full loading. */ -/* static */ void LinkRefresher::Run(Vehicle *v, bool allow_merge) +/* static */ void LinkRefresher::Run(Vehicle *v, bool allow_merge, bool is_full_loading) { /* If there are no orders we can't predict anything.*/ if (v->orders.list == NULL) return; @@ -32,7 +35,7 @@ if (first == NULL) return; HopSet seen_hops; - LinkRefresher refresher(v, &seen_hops, allow_merge); + LinkRefresher refresher(v, &seen_hops, allow_merge, is_full_loading); refresher.RefreshLinks(first, first, v->last_loading_station != INVALID_STATION ? 1 << HAS_CARGO : 0); } @@ -63,9 +66,11 @@ bool LinkRefresher::Hop::operator<(const Hop &other) const * @param seen_hops Set of hops already seen. This is shared between this * refresher and all its children. * @param allow_merge If the refresher is allowed to merge or extend link graphs. + * @param is_full_loading If the vehicle is full loading. */ -LinkRefresher::LinkRefresher(Vehicle *vehicle, HopSet *seen_hops, bool allow_merge) : - vehicle(vehicle), seen_hops(seen_hops), cargo(CT_INVALID), allow_merge(allow_merge) +LinkRefresher::LinkRefresher(Vehicle *vehicle, HopSet *seen_hops, bool allow_merge, bool is_full_loading) : + vehicle(vehicle), seen_hops(seen_hops), cargo(CT_INVALID), allow_merge(allow_merge), + is_full_loading(is_full_loading) { /* Assemble list of capacities and set last loading stations to 0. */ for (Vehicle *v = this->vehicle; v != NULL; v = v->Next()) { @@ -203,10 +208,32 @@ void LinkRefresher::RefreshStats(const Order *cur, const Order *next) continue; } - /* A link is at least partly restricted if a - * vehicle can't load at its source. */ - IncreaseStats(st, c, next_station, i->second, - (cur->GetLoadType() & OLFB_NO_LOAD) == 0 ? LinkGraph::REFRESH_UNRESTRICTED : LinkGraph::REFRESH_RESTRICTED); + /* A link is at least partly restricted if a vehicle can't load at its source. */ + EdgeUpdateMode restricted_mode = (cur->GetLoadType() & OLFB_NO_LOAD) == 0 ? + EUM_UNRESTRICTED : EUM_RESTRICTED; + + /* If the vehicle is currently full loading, increase the capacities at the station + * where it is loading by an estimate of what it would have transported if it wasn't + * loading. Don't do that if the vehicle has been waiting for longer than the entire + * order list is supposed to take, though. If that is the case the total duration is + * probably far off and we'd greatly overestimate the capacity by increasing.*/ + if (this->is_full_loading && this->vehicle->orders.list != NULL && + st->index == vehicle->last_station_visited && + this->vehicle->orders.list->GetTotalDuration() > + (Ticks)this->vehicle->current_order_time) { + uint effective_capacity = i->second * this->vehicle->load_unload_ticks; + if (effective_capacity > (uint)this->vehicle->orders.list->GetTotalDuration()) { + IncreaseStats(st, c, next_station, effective_capacity / + this->vehicle->orders.list->GetTotalDuration(), 0, + EUM_INCREASE | restricted_mode); + } else if (RandomRange(this->vehicle->orders.list->GetTotalDuration()) < effective_capacity) { + IncreaseStats(st, c, next_station, 1, 0, EUM_INCREASE | restricted_mode); + } else { + IncreaseStats(st, c, next_station, i->second, 0, EUM_REFRESH | restricted_mode); + } + } else { + IncreaseStats(st, c, next_station, i->second, 0, EUM_REFRESH | restricted_mode); + } } } } diff --git a/src/linkgraph/refresh.h b/src/linkgraph/refresh.h index 6f3f8f9b65..eac34266d7 100644 --- a/src/linkgraph/refresh.h +++ b/src/linkgraph/refresh.h @@ -23,7 +23,7 @@ */ class LinkRefresher { public: - static void Run(Vehicle *v, bool allow_merge = true); + static void Run(Vehicle *v, bool allow_merge = true, bool is_full_loading = false); protected: /** @@ -88,8 +88,9 @@ protected: HopSet *seen_hops; ///< Hops already seen. If the same hop is seen twice we stop the algorithm. This is shared between all Refreshers of the same run. CargoID cargo; ///< Cargo given in last refit order. bool allow_merge; ///< If the refresher is allowed to merge or extend link graphs. + bool is_full_loading; ///< If the vehicle is full loading. - LinkRefresher(Vehicle *v, HopSet *seen_hops, bool allow_merge); + LinkRefresher(Vehicle *v, HopSet *seen_hops, bool allow_merge, bool is_full_loading); void HandleRefit(const Order *next); void ResetRefit(); diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 113ce8a864..4df8fe7ca5 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -45,6 +45,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + static int _rename_id = 1; static int _rename_what = -1; diff --git a/src/map.cpp b/src/map.cpp index 1ee0ba247c..252f20b607 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -13,6 +13,9 @@ #include "debug.h" #include "core/alloc_func.hpp" #include "water_map.h" +#include "string_func.h" + +#include "safeguards.h" #if defined(_MSC_VER) /* Why the hell is that not in all MSVC headers?? */ @@ -82,7 +85,7 @@ TileIndex TileAdd(TileIndex tile, TileIndexDiff add, if (x >= MapSizeX() || y >= MapSizeY()) { char buf[512]; - snprintf(buf, lengthof(buf), "TILE_ADD(%s) when adding 0x%.4X and 0x%.4X failed", + seprintf(buf, lastof(buf), "TILE_ADD(%s) when adding 0x%.4X and 0x%.4X failed", exp, tile, add); #if !defined(_MSC_VER) || defined(WINCE) fprintf(stderr, "%s:%d %s\n", file, line, buf); diff --git a/src/misc.cpp b/src/misc.cpp index 11607a5f1d..d9d506993f 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -29,6 +29,8 @@ #include "game/game.hpp" #include "linkgraph/linkgraphschedule.h" +#include "safeguards.h" + extern TileIndex _cur_tileloop_tile; extern void MakeNewgameSettingsLive(); diff --git a/src/misc/countedobj.cpp b/src/misc/countedobj.cpp index 228b35e82a..28f614afab 100644 --- a/src/misc/countedobj.cpp +++ b/src/misc/countedobj.cpp @@ -13,6 +13,8 @@ #include "countedptr.hpp" +#include "../safeguards.h" + int32 SimpleCountedObject::AddRef() { return ++m_ref_cnt; diff --git a/src/misc/dbg_helpers.cpp b/src/misc/dbg_helpers.cpp index f87070fa0d..a80230de1c 100644 --- a/src/misc/dbg_helpers.cpp +++ b/src/misc/dbg_helpers.cpp @@ -13,6 +13,8 @@ #include "../rail_map.h" #include "dbg_helpers.h" +#include "../safeguards.h" + /** Trackdir & TrackdirBits short names. */ static const char * const trackdir_names[] = { "NE", "SE", "UE", "LE", "LS", "RS", "rne", "rse", diff --git a/src/misc/getoptdata.cpp b/src/misc/getoptdata.cpp index 6ca9a1bfc6..7859594dd9 100644 --- a/src/misc/getoptdata.cpp +++ b/src/misc/getoptdata.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "getoptdata.h" +#include "../safeguards.h" + /** * Find the next option. * @return Function returns one diff --git a/src/misc/str.hpp b/src/misc/str.hpp index b109b4e82f..b982913fc2 100644 --- a/src/misc/str.hpp +++ b/src/misc/str.hpp @@ -100,7 +100,7 @@ struct CStrA : public CBlobT int err = 0; for (;;) { char *buf = MakeFreeSpace(addSize); - ret = vsnprintf(buf, base::GetReserve(), format, args); + ret = vseprintf(buf, buf + base::GetReserve() - 1, format, args); if (ret >= (int)base::GetReserve()) { /* Greater return than given count means needed buffer size. */ addSize = ret + 1; diff --git a/src/misc_cmd.cpp b/src/misc_cmd.cpp index c35ccc8f82..e7da13c7aa 100644 --- a/src/misc_cmd.cpp +++ b/src/misc_cmd.cpp @@ -25,6 +25,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Increase the loan of your company. * @param tile unused diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 4092dcb6dc..8d9a66ac9d 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -30,6 +30,8 @@ #include "table/strings.h" +#include "safeguards.h" + #ifdef __ANDROID__ #include #endif @@ -213,7 +215,7 @@ public: /* Location */ char tmp[16]; - snprintf(tmp, lengthof(tmp), "0x%.4X", tile); + seprintf(tmp, lastof(tmp), "0x%.4X", tile); SetDParam(0, TileX(tile)); SetDParam(1, TileY(tile)); SetDParam(2, GetTileZ(tile)); @@ -930,8 +932,7 @@ void QueryString::ClickEditBox(Window *w, Point pt, int wid, int click_count, bo } #ifdef __ANDROID__ char text[512]; - strncpy(text, this->text.buf, sizeof(text) - 1); - text[sizeof(text) - 1] = 0; + strecpy(text, this->text.buf, lastof(text)); this->text.DeleteAll(); SDL_ANDROID_GetScreenKeyboardTextInput(text, sizeof(text) - 1); /* Invoke Android built-in screen keyboard */ this->text.Assign(text); @@ -960,7 +961,7 @@ struct QueryStringWindow : public Window this->editbox.text.UpdateSize(); - if ((flags & QSF_ACCEPT_UNCHANGED) == 0) this->editbox.orig = strdup(this->editbox.text.buf); + if ((flags & QSF_ACCEPT_UNCHANGED) == 0) this->editbox.orig = stredup(this->editbox.text.buf); this->querystrings[WID_QS_TEXT] = &this->editbox; this->editbox.caption = caption; diff --git a/src/mixer.cpp b/src/mixer.cpp index 401a9c0ba2..5945bd235a 100644 --- a/src/mixer.cpp +++ b/src/mixer.cpp @@ -13,6 +13,8 @@ #include #include "core/math_func.hpp" +#include "safeguards.h" + struct MixerChannel { bool active; diff --git a/src/music.cpp b/src/music.cpp index 55599a947b..4001e621e1 100644 --- a/src/music.cpp +++ b/src/music.cpp @@ -15,6 +15,8 @@ #define SET_TYPE "music" #include "base_media_func.h" +#include "safeguards.h" + INSTANTIATE_BASE_MEDIA_METHODS(BaseMedia, MusicSet) /** Names corresponding to the music set's files */ diff --git a/src/music/allegro_m.cpp b/src/music/allegro_m.cpp index 9551825905..77b488186a 100644 --- a/src/music/allegro_m.cpp +++ b/src/music/allegro_m.cpp @@ -16,6 +16,8 @@ #include "allegro_m.h" #include +#include "../safeguards.h" + static FMusicDriver_Allegro iFMusicDriver_Allegro; static MIDI *_midi = NULL; diff --git a/src/music/bemidi.cpp b/src/music/bemidi.cpp index 5ee62dfe51..2bc2074763 100644 --- a/src/music/bemidi.cpp +++ b/src/music/bemidi.cpp @@ -16,6 +16,8 @@ /* BeOS System Includes */ #include +#include "../safeguards.h" + /** The file we're playing. */ static BMidiSynthFile midiSynthFile; diff --git a/src/music/cocoa_m.cpp b/src/music/cocoa_m.cpp index e7c7d6b752..a201984ae1 100644 --- a/src/music/cocoa_m.cpp +++ b/src/music/cocoa_m.cpp @@ -28,6 +28,8 @@ #undef Rect #undef Point +#include "../safeguards.h" + static FMusicDriver_Cocoa iFMusicDriver_Cocoa; diff --git a/src/music/dmusic.cpp b/src/music/dmusic.cpp index 185d66a769..40ce69d1a0 100644 --- a/src/music/dmusic.cpp +++ b/src/music/dmusic.cpp @@ -27,6 +27,8 @@ #include #include +#include "../safeguards.h" + static FMusicDriver_DMusic iFMusicDriver_DMusic; /** the direct music object manages buffers and ports */ diff --git a/src/music/extmidi.cpp b/src/music/extmidi.cpp index 93492aa996..f4a35360c0 100644 --- a/src/music/extmidi.cpp +++ b/src/music/extmidi.cpp @@ -9,7 +9,6 @@ /** @file extmidi.cpp Playing music via an external player. */ -#ifndef __MORPHOS__ #include "../stdafx.h" #include "../debug.h" #include "../string_func.h" @@ -25,6 +24,8 @@ #include #include +#include "../safeguards.h" + #ifndef EXTERNAL_PLAYER /** The default external midi player. */ #define EXTERNAL_PLAYER "timidity" @@ -35,15 +36,15 @@ static FMusicDriver_ExtMidi iFMusicDriver_ExtMidi; const char *MusicDriver_ExtMidi::Start(const char * const * parm) { - if (strcmp(_video_driver->GetName(), "allegro") == 0 || - strcmp(_sound_driver->GetName(), "allegro") == 0) { + if (strcmp(VideoDriver::GetInstance()->GetName(), "allegro") == 0 || + strcmp(SoundDriver::GetInstance()->GetName(), "allegro") == 0) { return "the extmidi driver does not work when Allegro is loaded."; } const char *command = GetDriverParam(parm, "cmd"); if (StrEmpty(command)) command = EXTERNAL_PLAYER; - this->command = strdup(command); + this->command = stredup(command); this->song[0] = '\0'; this->pid = -1; return NULL; @@ -133,5 +134,3 @@ void MusicDriver_ExtMidi::DoStop() waitpid(this->pid, NULL, 0); this->pid = -1; } - -#endif /* __MORPHOS__ */ diff --git a/src/music/libtimidity.cpp b/src/music/libtimidity.cpp index 6377507d2e..798f02dda4 100644 --- a/src/music/libtimidity.cpp +++ b/src/music/libtimidity.cpp @@ -28,6 +28,8 @@ #include #endif /* PSP */ +#include "../safeguards.h" + /** The state of playing. */ enum MidiState { MIDI_STOPPED = 0, diff --git a/src/music/music_driver.hpp b/src/music/music_driver.hpp index 03c70d5691..be09d3ea2b 100644 --- a/src/music/music_driver.hpp +++ b/src/music/music_driver.hpp @@ -39,9 +39,15 @@ public: * @param vol The new volume. */ virtual void SetVolume(byte vol) = 0; + + /** + * Get the currently active instance of the music driver. + */ + static MusicDriver *GetInstance() { + return static_cast(*DriverFactoryBase::GetActiveDriver(Driver::DT_MUSIC)); + } }; -extern MusicDriver *_music_driver; extern char *_ini_musicdriver; #endif /* MUSIC_MUSIC_DRIVER_HPP */ diff --git a/src/music/null_m.cpp b/src/music/null_m.cpp index cb42a906a5..90d08d04a1 100644 --- a/src/music/null_m.cpp +++ b/src/music/null_m.cpp @@ -12,5 +12,7 @@ #include "../stdafx.h" #include "null_m.h" +#include "../safeguards.h" + /** The factory for the music player that does nothing. */ static FMusicDriver_Null iFMusicDriver_Null; diff --git a/src/music/os2_m.cpp b/src/music/os2_m.cpp index ec1fca2645..d7fb97d2d3 100644 --- a/src/music/os2_m.cpp +++ b/src/music/os2_m.cpp @@ -21,6 +21,8 @@ #include #include +#include "../safeguards.h" + /********************** * OS/2 MIDI PLAYER **********************/ diff --git a/src/music/qtmidi.cpp b/src/music/qtmidi.cpp index 0cfe318e7b..dfd6f16eb3 100644 --- a/src/music/qtmidi.cpp +++ b/src/music/qtmidi.cpp @@ -38,6 +38,8 @@ #undef Rect #undef Point +#include "../safeguards.h" + static FMusicDriver_QtMidi iFMusicDriver_QtMidi; diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp index 65ffbbc6b3..d3a7019a0f 100644 --- a/src/music/win32_m.cpp +++ b/src/music/win32_m.cpp @@ -15,6 +15,8 @@ #include #include +#include "../safeguards.h" + static struct { bool stop_song; bool terminate; diff --git a/src/music_gui.cpp b/src/music_gui.cpp index 307ad0c6c7..a899b55ab0 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -29,6 +29,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + /** * Get the name of the song. * @param index of the song. @@ -174,22 +176,22 @@ static void SkipToNextSong() static void MusicVolumeChanged(byte new_vol) { - _music_driver->SetVolume(new_vol); + MusicDriver::GetInstance()->SetVolume(new_vol); } static void DoPlaySong() { char filename[MAX_PATH]; - if (FioFindFullPath(filename, lengthof(filename), BASESET_DIR, BaseMusic::GetUsedSet()->files[_music_wnd_cursong - 1].filename) == NULL) { - FioFindFullPath(filename, lengthof(filename), OLD_GM_DIR, BaseMusic::GetUsedSet()->files[_music_wnd_cursong - 1].filename); + if (FioFindFullPath(filename, lastof(filename), BASESET_DIR, BaseMusic::GetUsedSet()->files[_music_wnd_cursong - 1].filename) == NULL) { + FioFindFullPath(filename, lastof(filename), OLD_GM_DIR, BaseMusic::GetUsedSet()->files[_music_wnd_cursong - 1].filename); } - _music_driver->PlaySong(filename); + MusicDriver::GetInstance()->PlaySong(filename); SetWindowDirty(WC_MUSIC_WINDOW, 0); } static void DoStopMusic() { - _music_driver->StopSong(); + MusicDriver::GetInstance()->StopSong(); SetWindowDirty(WC_MUSIC_WINDOW, 0); } @@ -271,7 +273,7 @@ void MusicLoop() if (!_song_is_active) return; - if (!_music_driver->IsSongPlaying()) { + if (!MusicDriver::GetInstance()->IsSongPlaying()) { if (_game_mode != GM_MENU) { StopMusic(); SkipToNextSong(); diff --git a/src/network/core/address.cpp b/src/network/core/address.cpp index d8c990e240..d25ade4a3a 100644 --- a/src/network/core/address.cpp +++ b/src/network/core/address.cpp @@ -16,6 +16,8 @@ #include "address.h" #include "../../debug.h" +#include "../../safeguards.h" + /** * Get the hostname; in case it wasn't given the * IPv4 dotted representation is given. diff --git a/src/network/core/core.cpp b/src/network/core/core.cpp index 867bb4bb98..7a2ad92a29 100644 --- a/src/network/core/core.cpp +++ b/src/network/core/core.cpp @@ -18,6 +18,8 @@ #include "os_abstraction.h" #include "packet.h" +#include "../../safeguards.h" + #ifdef __MORPHOS__ /* the library base is required here */ diff --git a/src/network/core/host.cpp b/src/network/core/host.cpp index 0af0f7992c..cf98239f86 100644 --- a/src/network/core/host.cpp +++ b/src/network/core/host.cpp @@ -15,6 +15,8 @@ #include "../../debug.h" #include "address.h" +#include "../../safeguards.h" + /** * Internal implementation for finding the broadcast IPs. * This function is implemented multiple times for multiple targets. diff --git a/src/network/core/packet.cpp b/src/network/core/packet.cpp index 4d9345e824..7548132e0b 100644 --- a/src/network/core/packet.cpp +++ b/src/network/core/packet.cpp @@ -18,6 +18,8 @@ #include "packet.h" +#include "../../safeguards.h" + /** * Create a packet that is used to read from a network socket * @param cs the socket handler associated with the socket we are reading from diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp index e68c354fc6..790941fc01 100644 --- a/src/network/core/tcp.cpp +++ b/src/network/core/tcp.cpp @@ -18,6 +18,8 @@ #include "tcp.h" +#include "../../safeguards.h" + /** * Construct a socket handler for a TCP connection. * @param s The just opened TCP connection. diff --git a/src/network/core/tcp_admin.cpp b/src/network/core/tcp_admin.cpp index 636696e2cb..284ceda9b1 100644 --- a/src/network/core/tcp_admin.cpp +++ b/src/network/core/tcp_admin.cpp @@ -19,6 +19,8 @@ #include "tcp_admin.h" #include "../../debug.h" +#include "../../safeguards.h" + /* Make sure that these enums match. */ assert_compile((int)CRR_MANUAL == (int)ADMIN_CRR_MANUAL); assert_compile((int)CRR_AUTOCLEAN == (int)ADMIN_CRR_AUTOCLEAN); diff --git a/src/network/core/tcp_connect.cpp b/src/network/core/tcp_connect.cpp index ed2885b0ed..ccbf93f3c3 100644 --- a/src/network/core/tcp_connect.cpp +++ b/src/network/core/tcp_connect.cpp @@ -18,6 +18,8 @@ #include "tcp.h" +#include "../../safeguards.h" + /** List of connections that are currently being created */ static SmallVector _tcp_connecters; diff --git a/src/network/core/tcp_content.cpp b/src/network/core/tcp_content.cpp index 8a4604feb0..fc22c4491f 100644 --- a/src/network/core/tcp_content.cpp +++ b/src/network/core/tcp_content.cpp @@ -24,6 +24,8 @@ #endif /* OPENTTD_MSU */ #include "tcp_content.h" +#include "../../safeguards.h" + /** Clear everything in the struct */ ContentInfo::ContentInfo() { diff --git a/src/network/core/tcp_game.cpp b/src/network/core/tcp_game.cpp index d263b28e4a..9b3f7b5ef3 100644 --- a/src/network/core/tcp_game.cpp +++ b/src/network/core/tcp_game.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" +#include "../../safeguards.h" + /** * Create a new socket for the game connection. * @param s The socket to connect with. diff --git a/src/network/core/tcp_http.cpp b/src/network/core/tcp_http.cpp index a9829d5604..a8bb64080a 100644 --- a/src/network/core/tcp_http.cpp +++ b/src/network/core/tcp_http.cpp @@ -20,6 +20,8 @@ #include "tcp_http.h" +#include "../../safeguards.h" + /** List of open HTTP connections. */ static SmallVector _http_connections; diff --git a/src/network/core/tcp_http.h b/src/network/core/tcp_http.h index 6222c76951..36520f1364 100644 --- a/src/network/core/tcp_http.h +++ b/src/network/core/tcp_http.h @@ -96,7 +96,7 @@ public: const char *data = NULL, int depth = 0) : TCPConnecter(address), callback(callback), - url(strdup(url)), + url(stredup(url)), data(data), depth(depth) { diff --git a/src/network/core/udp.cpp b/src/network/core/udp.cpp index f7abc7e35a..ce5f06b1f2 100644 --- a/src/network/core/udp.cpp +++ b/src/network/core/udp.cpp @@ -18,6 +18,8 @@ #include "../../debug.h" #include "udp.h" +#include "../../safeguards.h" + /** * Create an UDP socket but don't listen yet. * @param bind the addresses to bind to. diff --git a/src/network/network.cpp b/src/network/network.cpp index 57a6412c62..662f49d176 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -38,6 +38,8 @@ #include "../gfx_func.h" #include "../error.h" +#include "../safeguards.h" + #ifdef DEBUG_DUMP_COMMANDS #include "../fileio_func.h" /** When running the server till the wait point, run as fast as we can! */ @@ -96,6 +98,18 @@ byte _network_clients_connected = 0; /* Some externs / forwards */ extern void StateGameLoop(); +/** + * Return whether there is any client connected or trying to connect at all. + * @return whether we have any client activity + */ +bool HasClients() +{ + NetworkClientSocket *cs; + FOR_ALL_CLIENT_SOCKETS(cs) return true; + + return false; +} + /** * Basically a client is leaving us right now. */ @@ -185,7 +199,7 @@ const char *GenerateCompanyPasswordHash(const char *password, const char *passwo char salted_password[NETWORK_SERVER_ID_LENGTH]; memset(salted_password, 0, sizeof(salted_password)); - snprintf(salted_password, sizeof(salted_password), "%s", password); + seprintf(salted_password, lastof(salted_password), "%s", password); /* Add the game seed and the server's ID as the salt. */ for (uint i = 0; i < NETWORK_SERVER_ID_LENGTH - 1; i++) { salted_password[i] ^= password_server_id[i] ^ (password_game_seed >> (i % 32)); @@ -199,8 +213,7 @@ const char *GenerateCompanyPasswordHash(const char *password, const char *passwo checksum.Append(salted_password, sizeof(salted_password) - 1); checksum.Finish(digest); - for (int di = 0; di < 16; di++) sprintf(hashed_password + di * 2, "%02x", digest[di]); - hashed_password[lengthof(hashed_password) - 1] = '\0'; + for (int di = 0; di < 16; di++) seprintf(hashed_password + di * 2, lastof(hashed_password), "%02x", digest[di]); return hashed_password; } @@ -640,7 +653,7 @@ void NetworkRebuildHostList() _network_host_list.Clear(); for (NetworkGameList *item = _network_game_list; item != NULL; item = item->next) { - if (item->manually) *_network_host_list.Append() = strdup(item->address.GetAddressAsString(false)); + if (item->manually) *_network_host_list.Append() = stredup(item->address.GetAddressAsString(false)); } } @@ -689,7 +702,7 @@ void NetworkClientConnectGame(NetworkAddress address, CompanyID join_as, const c static void NetworkInitGameInfo() { if (StrEmpty(_settings_client.network.server_name)) { - snprintf(_settings_client.network.server_name, sizeof(_settings_client.network.server_name), "Unnamed Server"); + seprintf(_settings_client.network.server_name, lastof(_settings_client.network.server_name), "Unnamed Server"); } /* The server is a client too */ @@ -698,7 +711,7 @@ static void NetworkInitGameInfo() /* There should be always space for the server. */ assert(NetworkClientInfo::CanAllocateItem()); NetworkClientInfo *ci = new NetworkClientInfo(CLIENT_ID_SERVER); - ci->client_playas = _network_dedicated ? COMPANY_SPECTATOR : _local_company; + ci->client_playas = _network_dedicated ? COMPANY_SPECTATOR : COMPANY_FIRST; strecpy(ci->client_name, _settings_client.network.client_name, lastof(ci->client_name)); } @@ -1014,18 +1027,18 @@ static void NetworkGenerateServerId() char coding_string[NETWORK_NAME_LENGTH]; int di; - snprintf(coding_string, sizeof(coding_string), "%d%s", (uint)Random(), "OpenTTD Server ID"); + seprintf(coding_string, lastof(coding_string), "%d%s", (uint)Random(), "OpenTTD Server ID"); /* Generate the MD5 hash */ checksum.Append((const uint8*)coding_string, strlen(coding_string)); checksum.Finish(digest); for (di = 0; di < 16; ++di) { - sprintf(hex_output + di * 2, "%02x", digest[di]); + seprintf(hex_output + di * 2, lastof(hex_output), "%02x", digest[di]); } /* _settings_client.network.network_id is our id */ - snprintf(_settings_client.network.network_id, sizeof(_settings_client.network.network_id), "%s", hex_output); + seprintf(_settings_client.network.network_id, lastof(_settings_client.network.network_id), "%s", hex_output); } void NetworkStartDebugLog(NetworkAddress address) diff --git a/src/network/network.h b/src/network/network.h index 3dd63d03cb..26f94482ec 100644 --- a/src/network/network.h +++ b/src/network/network.h @@ -18,6 +18,7 @@ void NetworkStartUp(); void NetworkShutDown(); void NetworkDrawChatMessage(); +bool HasClients(); extern bool _networking; ///< are we in networking mode? extern bool _network_server; ///< network-server is active @@ -31,6 +32,7 @@ extern bool _is_network_server; ///< Does this client wants to be a network-ser static inline void NetworkStartUp() {} static inline void NetworkShutDown() {} static inline void NetworkDrawChatMessage() {} +static inline bool HasClients() { return false; } #define _networking 0 #define _network_server 0 diff --git a/src/network/network_admin.cpp b/src/network/network_admin.cpp index 0327bf3666..c1ca3d3bb2 100644 --- a/src/network/network_admin.cpp +++ b/src/network/network_admin.cpp @@ -25,6 +25,8 @@ #include "../rev.h" #include "../game/game.hpp" +#include "../safeguards.h" + /* This file handles all the admin network commands. */ diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 4791a51a38..46c0c80f9d 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -30,6 +30,8 @@ #include "table/strings.h" +#include "../safeguards.h" + /** The draw buffer must be able to contain the chat message, client name and the "[All]" message, * some spaces and possible translations of [All] to other languages. */ assert_compile((int)DRAW_STRING_BUFFER >= (int)NETWORK_CHAT_LENGTH + NETWORK_NAME_LENGTH + 40); @@ -84,7 +86,7 @@ void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const char *m va_list va; va_start(va, message); - vsnprintf(buf, lengthof(buf), message, va); + vseprintf(buf, lastof(buf), message, va); va_end(va); Utf8TrimString(buf, DRAW_STRING_BUFFER); @@ -167,7 +169,7 @@ void NetworkUndrawChatMessage() /* Put our 'shot' back to the screen */ blitter->CopyFromBuffer(blitter->MoveTo(_screen.dst_ptr, x, y), _chatmessage_backup, width, height); /* And make sure it is updated next time */ - _video_driver->MakeDirty(x, y, width, height); + VideoDriver::GetInstance()->MakeDirty(x, y, width, height); _chatmessage_dirty = true; } @@ -254,7 +256,7 @@ void NetworkDrawChatMessage() } /* Make sure the data is updated next flush */ - _video_driver->MakeDirty(x, y, width, height); + VideoDriver::GetInstance()->MakeDirty(x, y, width, height); _chatmessage_visible = true; _chatmessage_dirty = false; @@ -389,7 +391,7 @@ struct NetworkChatWindow : public Window { item = 0; /* Copy the buffer so we can modify it without damaging the real data */ - pre_buf = (_chat_tab_completion_active) ? strdup(_chat_tab_completion_buf) : strdup(tb->buf); + pre_buf = (_chat_tab_completion_active) ? stredup(_chat_tab_completion_buf) : stredup(tb->buf); tb_buf = ChatTabCompletionFindText(pre_buf); tb_len = strlen(tb_buf); @@ -426,7 +428,7 @@ struct NetworkChatWindow : public Window { len = strlen(cur_name); if (tb_len < len && strncasecmp(cur_name, tb_buf, tb_len) == 0) { /* Save the data it was before completion */ - if (!second_scan) snprintf(_chat_tab_completion_buf, lengthof(_chat_tab_completion_buf), "%s", tb->buf); + if (!second_scan) seprintf(_chat_tab_completion_buf, lastof(_chat_tab_completion_buf), "%s", tb->buf); _chat_tab_completion_active = true; /* Change to the found name. Add ': ' if we are at the start of the line (pretty) */ diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 44c13fbc8b..326af65d79 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -34,6 +34,8 @@ #include "table/strings.h" +#include "../safeguards.h" + /* This file handles all the client-commands */ @@ -956,7 +958,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(Packet *p) switch (action) { case NETWORK_ACTION_CHAT_CLIENT: /* For speaking to client we need the client-name */ - snprintf(name, sizeof(name), "%s", ci_to->client_name); + seprintf(name, lastof(name), "%s", ci_to->client_name); ci = NetworkClientInfo::GetByClientID(_network_own_client_id); break; @@ -977,7 +979,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(Packet *p) } } else { /* Display message from somebody else */ - snprintf(name, sizeof(name), "%s", ci_to->client_name); + seprintf(name, lastof(name), "%s", ci_to->client_name); ci = ci_to; } @@ -1229,7 +1231,7 @@ void NetworkUpdateClientName() if (!_network_server) { MyClient::SendSetName(_settings_client.network.client_name); } else { - if (NetworkFindName(_settings_client.network.client_name)) { + if (NetworkFindName(_settings_client.network.client_name, lastof(_settings_client.network.client_name))) { NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, _settings_client.network.client_name); strecpy(ci->client_name, _settings_client.network.client_name, lastof(ci->client_name)); NetworkUpdateClientInfo(CLIENT_ID_SERVER); diff --git a/src/network/network_command.cpp b/src/network/network_command.cpp index 7ba26041cc..6e5458fd86 100644 --- a/src/network/network_command.cpp +++ b/src/network/network_command.cpp @@ -19,6 +19,8 @@ #include "../company_func.h" #include "../settings_type.h" +#include "../safeguards.h" + /** Table with all the callbacks we'll use for conversion*/ static CommandCallback * const _callback_table[] = { /* 0x00 */ NULL, diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 8677a81042..174dbdafe6 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -27,6 +27,8 @@ #include #endif +#include "../safeguards.h" + extern bool HasScenario(const ContentInfo *ci, bool md5sum); /** The client we use to connect to the server. */ @@ -388,7 +390,7 @@ static char *GetFullFilename(const ContentInfo *ci, bool compressed) if (dir == NO_DIRECTORY) return NULL; static char buf[MAX_PATH]; - FioGetFullPath(buf, lengthof(buf), SP_AUTODOWNLOAD_DIR, dir, ci->filename); + FioGetFullPath(buf, lastof(buf), SP_AUTODOWNLOAD_DIR, dir, ci->filename); strecat(buf, compressed ? ".tar.gz" : ".tar", lastof(buf)); return buf; diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 77ab4cfa5d..0556e43ed8 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -30,6 +30,8 @@ #include "table/strings.h" #include "../table/sprites.h" +#include "../safeguards.h" + /** Whether the user accepted to enter external websites during this session. */ static bool _accepted_external_search = false; diff --git a/src/network/network_func.h b/src/network/network_func.h index defa1cc70f..67d4c8d488 100644 --- a/src/network/network_func.h +++ b/src/network/network_func.h @@ -71,7 +71,7 @@ void NetworkServerYearlyLoop(); void NetworkServerSendConfigUpdate(); void NetworkServerShowStatusToConsole(); bool NetworkServerStart(); -void NetworkServerUpdateCompanyPassworded(CompanyID company_id, bool passworded); +void NetworkServerNewCompany(const Company *company, NetworkClientInfo *ci); bool NetworkServerChangeClientName(ClientID client_id, const char *new_name); diff --git a/src/network/network_gamelist.cpp b/src/network/network_gamelist.cpp index 9496362137..e5d80630e1 100644 --- a/src/network/network_gamelist.cpp +++ b/src/network/network_gamelist.cpp @@ -22,6 +22,8 @@ #include "network_udp.h" #include "network_gamelist.h" +#include "../safeguards.h" + NetworkGameList *_network_game_list = NULL; /** Mutex for handling delayed insertion/querying of servers. */ diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index ac0ac94626..0e8763edc9 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -39,6 +39,8 @@ #include "../stringfilter_type.h" +#include "../safeguards.h" + static void ShowNetworkStartServerWindow(); static void ShowNetworkLobbyWindow(NetworkGameList *ngl); @@ -754,7 +756,7 @@ public: case WID_NG_JOIN: // Join Game if (this->server != NULL) { - snprintf(_settings_client.network.last_host, sizeof(_settings_client.network.last_host), "%s", this->server->address.GetHostname()); + seprintf(_settings_client.network.last_host, lastof(_settings_client.network.last_host), "%s", this->server->address.GetHostname()); _settings_client.network.last_port = this->server->address.GetPort(); ShowNetworkLobbyWindow(this->server); } diff --git a/src/network/network_internal.h b/src/network/network_internal.h index 60862dd7fa..ed9a8de6f6 100644 --- a/src/network/network_internal.h +++ b/src/network/network_internal.h @@ -168,7 +168,7 @@ void NetworkError(StringID error_string); void NetworkTextMessage(NetworkAction action, TextColour colour, bool self_send, const char *name, const char *str = "", int64 data = 0); uint NetworkCalculateLag(const NetworkClientSocket *cs); StringID GetNetworkErrorMsg(NetworkErrorCode err); -bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]); +bool NetworkFindName(char *new_name, const char *last); const char *GenerateCompanyPasswordHash(const char *password, const char *password_server_id, uint32 password_game_seed); #endif /* ENABLE_NETWORK */ diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index fcaad19ab0..dc18658a99 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -33,6 +33,8 @@ #include "../core/random_func.hpp" #include "../rev.h" +#include "../safeguards.h" + /* This file handles all the server-commands */ @@ -274,7 +276,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::CloseConnection(NetworkRecvSta char client_name[NETWORK_CLIENT_NAME_LENGTH]; NetworkClientSocket *new_cs; - this->GetClientName(client_name, sizeof(client_name)); + this->GetClientName(client_name, lastof(client_name)); NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, STR_NETWORK_ERROR_CLIENT_CONNECTION_LOST); @@ -380,7 +382,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendCompanyInfo() FOR_ALL_CLIENT_SOCKETS(csi) { char client_name[NETWORK_CLIENT_NAME_LENGTH]; - ((ServerNetworkGameSocketHandler*)csi)->GetClientName(client_name, sizeof(client_name)); + ((ServerNetworkGameSocketHandler*)csi)->GetClientName(client_name, lastof(client_name)); ci = csi->GetInfo(); if (ci != NULL && Company::IsValidID(ci->client_playas)) { @@ -442,7 +444,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendError(NetworkErrorCode err NetworkClientSocket *new_cs; char client_name[NETWORK_CLIENT_NAME_LENGTH]; - this->GetClientName(client_name, sizeof(client_name)); + this->GetClientName(client_name, lastof(client_name)); DEBUG(net, 1, "'%s' made an error and has been disconnected. Reason: '%s'", client_name, str); @@ -939,7 +941,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_JOIN(Packet *p) /* We need a valid name.. make it Player */ if (StrEmpty(name)) strecpy(name, "Player", lastof(name)); - if (!NetworkFindName(name)) { // Change name if duplicate + if (!NetworkFindName(name, lastof(name))) { // Change name if duplicate /* We could not create a name for this client */ return this->SendError(NETWORK_ERROR_NAME_IN_USE); } @@ -1042,7 +1044,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_MAP_OK(Packet * char client_name[NETWORK_CLIENT_NAME_LENGTH]; NetworkClientSocket *new_cs; - this->GetClientName(client_name, sizeof(client_name)); + this->GetClientName(client_name, lastof(client_name)); NetworkTextMessage(NETWORK_ACTION_JOIN, CC_DEFAULT, false, client_name, NULL, this->client_id); @@ -1160,7 +1162,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_ERROR(Packet *p return this->CloseConnection(NETWORK_RECV_STATUS_CONN_LOST); } - this->GetClientName(client_name, sizeof(client_name)); + this->GetClientName(client_name, lastof(client_name)); StringID strid = GetNetworkErrorMsg(errorno); GetString(str, strid, lastof(str)); @@ -1192,7 +1194,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_QUIT(Packet *p) return this->CloseConnection(NETWORK_RECV_STATUS_CONN_LOST); } - this->GetClientName(client_name, sizeof(client_name)); + this->GetClientName(client_name, lastof(client_name)); NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, STR_NETWORK_MESSAGE_CLIENT_LEAVING); @@ -1441,7 +1443,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::Receive_CLIENT_SET_NAME(Packet if (ci != NULL) { /* Display change */ - if (NetworkFindName(client_name)) { + if (NetworkFindName(client_name, lastof(client_name))) { NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, client_name); strecpy(ci->client_name, client_name, lastof(ci->client_name)); NetworkUpdateClientInfo(ci->client_id); @@ -1699,16 +1701,16 @@ static void NetworkAutoCleanCompanies() /** * Check whether a name is unique, and otherwise try to make it unique. * @param new_name The name to check/modify. + * @param last The last writeable element of the buffer. * @return True if an unique name was achieved. */ -bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]) +bool NetworkFindName(char *new_name, const char *last) { bool found_name = false; uint number = 0; char original_name[NETWORK_CLIENT_NAME_LENGTH]; - /* We use NETWORK_CLIENT_NAME_LENGTH in here, because new_name is really a pointer */ - ttd_strlcpy(original_name, new_name, NETWORK_CLIENT_NAME_LENGTH); + strecpy(original_name, new_name, lastof(original_name)); while (!found_name) { const NetworkClientInfo *ci; @@ -1732,7 +1734,7 @@ bool NetworkFindName(char new_name[NETWORK_CLIENT_NAME_LENGTH]) /* Something's really wrong when there're more names than clients */ if (number++ > MAX_CLIENTS) break; - snprintf(new_name, NETWORK_CLIENT_NAME_LENGTH, "%s #%d", original_name, number); + seprintf(new_name, last, "%s #%d", original_name, number); } } @@ -2100,7 +2102,7 @@ uint NetworkServerKickOrBanIP(const char *ip, bool ban) break; } } - if (!contains) *_network_ban_list.Append() = strdup(ip); + if (!contains) *_network_ban_list.Append() = stredup(ip); } uint n = 0; @@ -2136,16 +2138,16 @@ bool NetworkCompanyHasClients(CompanyID company) /** * Get the name of the client, if the user did not send it yet, Client # is used. * @param client_name The variable to write the name to. - * @param size The amount of bytes we can write. + * @param last The pointer to the last element of the destination buffer */ -void ServerNetworkGameSocketHandler::GetClientName(char *client_name, size_t size) const +void ServerNetworkGameSocketHandler::GetClientName(char *client_name, const char *last) const { const NetworkClientInfo *ci = this->GetInfo(); if (ci == NULL || StrEmpty(ci->client_name)) { - snprintf(client_name, size, "Client #%4d", this->client_id); + seprintf(client_name, last, "Client #%4d", this->client_id); } else { - ttd_strlcpy(client_name, ci->client_name, size); + strecpy(client_name, ci->client_name, last); } } @@ -2171,4 +2173,37 @@ void NetworkPrintClients() } } +/** + * Perform all the server specific administration of a new company. + * @param c The newly created company; can't be NULL. + * @param ci The client information of the client that made the company; can be NULL. + */ +void NetworkServerNewCompany(const Company *c, NetworkClientInfo *ci) +{ + assert(c != NULL); + + if (!_network_server) return; + + _network_company_states[c->index].months_empty = 0; + _network_company_states[c->index].password[0] = '\0'; + NetworkServerUpdateCompanyPassworded(c->index, false); + + if (ci != NULL) { + /* ci is NULL when replaying, or for AIs. In neither case there is a client. */ + ci->client_playas = c->index; + NetworkUpdateClientInfo(ci->client_id); + NetworkSendCommand(0, 0, 0, CMD_RENAME_PRESIDENT, NULL, ci->client_name, c->index); + } + + /* Announce new company on network. */ + NetworkAdminCompanyInfo(c, true); + + if (ci != NULL) { + /* ci is NULL when replaying, or for AIs. In neither case there is a client. + We need to send Admin port update here so that they first know about the new company + and then learn about a possibly joining client (see FS#6025) */ + NetworkServerSendChat(NETWORK_ACTION_COMPANY_NEW, DESTTYPE_BROADCAST, 0, "", ci->client_id, c->index + 1); + } +} + #endif /* ENABLE_NETWORK */ diff --git a/src/network/network_server.h b/src/network/network_server.h index b0a2ec461f..a52b2c9366 100644 --- a/src/network/network_server.h +++ b/src/network/network_server.h @@ -83,7 +83,7 @@ public: virtual Packet *ReceivePacket(); NetworkRecvStatus CloseConnection(NetworkRecvStatus status); - void GetClientName(char *client_name, size_t size) const; + void GetClientName(char *client_name, const char *last) const; NetworkRecvStatus SendMap(); NetworkRecvStatus SendErrorQuit(ClientID client_id, NetworkErrorCode errorno); @@ -123,6 +123,7 @@ public: void NetworkServer_Tick(bool send_frame); void NetworkServerSetCompanyPassword(CompanyID company_id, const char *password, bool already_hashed = true); +void NetworkServerUpdateCompanyPassworded(CompanyID company_id, bool passworded); /** * Iterate over all the sockets from a given starting point. diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index cde2994f70..731d51ca05 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -34,6 +34,8 @@ #include "core/udp.h" +#include "../safeguards.h" + /** Mutex for all out threaded udp resolution and such. */ static ThreadMutex *_network_udp_mutex = ThreadMutex::New(); @@ -382,7 +384,7 @@ void ClientNetworkUDPSocketHandler::Receive_SERVER_RESPONSE(Packet *p, NetworkAd } if (item->info.hostname[0] == '\0') { - snprintf(item->info.hostname, sizeof(item->info.hostname), "%s", client_addr->GetHostname()); + seprintf(item->info.hostname, lastof(item->info.hostname), "%s", client_addr->GetHostname()); } if (client_addr->GetAddress()->ss_family == AF_INET6) { diff --git a/src/newgrf.cpp b/src/newgrf.cpp index b736d9c7ae..b1b6f5ff14 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -52,6 +52,8 @@ #include "table/strings.h" #include "table/build_industry.h" +#include "safeguards.h" + /* TTDPatch extended GRF format codec * (c) Petr Baudis 2004 (GPL'd) * Changes by Florian octo Forster are (c) by the OpenTTD development team. @@ -375,7 +377,7 @@ void CDECL grfmsg(int severity, const char *str, ...) va_list va; va_start(va, str); - vsnprintf(buf, sizeof(buf), str, va); + vseprintf(buf, lastof(buf), str, va); va_end(va); DEBUG(grf, severity, "[%s:%d] %s", _cur.grfconfig->filename, _cur.nfo_line, buf); @@ -6004,7 +6006,7 @@ static void CfgApply(ByteReader *buf) static void DisableStaticNewGRFInfluencingNonStaticNewGRFs(GRFConfig *c) { GRFError *error = DisableGrf(STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC, c); - error->data = strdup(_cur.grfconfig->GetName()); + error->data = stredup(_cur.grfconfig->GetName()); } /* Action 0x07 @@ -6367,7 +6369,7 @@ static void GRFLoadError(ByteReader *buf) error->custom_message = TranslateTTDPatchCodes(_cur.grffile->grfid, lang, true, message, NULL, SCC_RAW_STRING_POINTER); } else { grfmsg(7, "GRFLoadError: No custom message supplied."); - error->custom_message = strdup(""); + error->custom_message = stredup(""); } } else { error->message = msgstr[message_id]; @@ -6379,7 +6381,7 @@ static void GRFLoadError(ByteReader *buf) error->data = TranslateTTDPatchCodes(_cur.grffile->grfid, lang, true, data); } else { grfmsg(7, "GRFLoadError: No message data supplied."); - error->data = strdup(""); + error->data = stredup(""); } /* Only two parameter numbers can be used in the string. */ @@ -6736,7 +6738,7 @@ static void ParamSet(ByteReader *buf) if ((int32)src2 < 0) { res = src1 >> -(int32)src2; } else { - res = src1 << src2; + res = src1 << (src2 & 0x1F); // Same behaviour as in EvalAdjustT, mask 'value' to 5 bits, which should behave the same on all architectures. } break; @@ -6744,7 +6746,7 @@ static void ParamSet(ByteReader *buf) if ((int32)src2 < 0) { res = (int32)src1 >> -(int32)src2; } else { - res = (int32)src1 << src2; + res = (int32)src1 << (src2 & 0x1F); // Same behaviour as in EvalAdjustT, mask 'value' to 5 bits, which should behave the same on all architectures. } break; @@ -6888,7 +6890,7 @@ static void GRFInhibit(ByteReader *buf) if (file != NULL && file != _cur.grfconfig) { grfmsg(2, "GRFInhibit: Deactivating file '%s'", file->filename); GRFError *error = DisableGrf(STR_NEWGRF_ERROR_FORCEFULLY_DISABLED, file); - error->data = strdup(_cur.grfconfig->GetName()); + error->data = stredup(_cur.grfconfig->GetName()); } } } @@ -7239,7 +7241,7 @@ static void TranslateGRFStrings(ByteReader *buf) char tmp[256]; GetString(tmp, STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE, lastof(tmp)); - error->data = strdup(tmp); + error->data = stredup(tmp); return; } @@ -7659,7 +7661,7 @@ AllowedSubtags _tags_root[] = { * Try to skip the current node and all subnodes (if it's a branch node). * @param buf Buffer. * @param type The node type to skip. - * @return True if we could skip the node, false if an error occured. + * @return True if we could skip the node, false if an error occurred. */ static bool SkipUnknownInfo(ByteReader *buf, byte type) { @@ -8180,7 +8182,7 @@ static void InitNewGRFFile(const GRFConfig *config) */ GRFFile::GRFFile(const GRFConfig *config) { - this->filename = strdup(config->filename); + this->filename = stredup(config->filename); this->grfid = config->ident.grfid; /* Initialise local settings to defaults */ diff --git a/src/newgrf_airport.cpp b/src/newgrf_airport.cpp index 4201fc6221..6db12f7373 100644 --- a/src/newgrf_airport.cpp +++ b/src/newgrf_airport.cpp @@ -17,6 +17,8 @@ #include "station_base.h" #include "newgrf_class_func.h" +#include "safeguards.h" + /** Resolver for the airport scope. */ struct AirportScopeResolver : public ScopeResolver { struct Station *st; ///< Station of the airport for which the callback is run, or \c NULL for build gui. diff --git a/src/newgrf_airporttiles.cpp b/src/newgrf_airporttiles.cpp index 323fb6cc16..5eb24f670f 100644 --- a/src/newgrf_airporttiles.cpp +++ b/src/newgrf_airporttiles.cpp @@ -23,6 +23,8 @@ #include "table/airporttiles.h" #include "newgrf_animation_base.h" +#include "safeguards.h" + AirportTileSpec AirportTileSpec::tiles[NUM_AIRPORTTILES]; diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp index 8f81fd0d8a..cba19cbdba 100644 --- a/src/newgrf_canal.cpp +++ b/src/newgrf_canal.cpp @@ -16,6 +16,8 @@ #include "water.h" #include "water_map.h" +#include "safeguards.h" + /** Table of canal 'feature' sprite groups */ WaterFeature _water_feature[CF_END]; diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp index 0166985233..7d830c5730 100644 --- a/src/newgrf_cargo.cpp +++ b/src/newgrf_cargo.cpp @@ -13,6 +13,8 @@ #include "debug.h" #include "newgrf_spritegroup.h" +#include "safeguards.h" + /** Resolver of cargo. */ struct CargoResolverObject : public ResolverObject { CargoResolverObject(const CargoSpec *cs, CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0); diff --git a/src/newgrf_commons.cpp b/src/newgrf_commons.cpp index ef75be5d8c..4caf3a5d47 100644 --- a/src/newgrf_commons.cpp +++ b/src/newgrf_commons.cpp @@ -32,6 +32,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Constructor of generic class * @param offset end of original data for this entity. i.e: houses = 110 diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 337b3edd11..6b7b8c3775 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -25,6 +25,8 @@ #include "fileio_func.h" #include "fios.h" +#include "safeguards.h" + /** Create a new GRFTextWrapper. */ GRFTextWrapper::GRFTextWrapper() : text(NULL) @@ -48,7 +50,7 @@ GRFConfig::GRFConfig(const char *filename) : url(new GRFTextWrapper()), num_valid_params(lengthof(param)) { - if (filename != NULL) this->filename = strdup(filename); + if (filename != NULL) this->filename = stredup(filename); this->name->AddRef(); this->info->AddRef(); this->url->AddRef(); @@ -76,11 +78,11 @@ GRFConfig::GRFConfig(const GRFConfig &config) : { MemCpyT(this->original_md5sum, config.original_md5sum, lengthof(this->original_md5sum)); MemCpyT(this->param, config.param, lengthof(this->param)); - if (config.filename != NULL) this->filename = strdup(config.filename); + if (config.filename != NULL) this->filename = stredup(config.filename); this->name->AddRef(); this->info->AddRef(); this->url->AddRef(); - if (config.error != NULL) this->error = new GRFError(*config.error); + if (config.error != NULL) this->error = new GRFError(*config.error); for (uint i = 0; i < config.param_info.Length(); i++) { if (config.param_info[i] == NULL) { *this->param_info.Append() = NULL; @@ -93,7 +95,7 @@ GRFConfig::GRFConfig(const GRFConfig &config) : /** Cleanup a GRFConfig object. */ GRFConfig::~GRFConfig() { - /* GCF_COPY as in NOT strdupped/alloced the filename */ + /* GCF_COPY as in NOT stredupped/alloced the filename */ if (!HasBit(this->flags, GCF_COPY)) { free(this->filename); delete this->error; @@ -105,6 +107,17 @@ GRFConfig::~GRFConfig() for (uint i = 0; i < this->param_info.Length(); i++) delete this->param_info[i]; } +/** + * Copy the parameter information from the \a src config. + * @param src Source config. + */ +void GRFConfig::CopyParams(const GRFConfig &src) +{ + this->num_params = src.num_params; + this->num_valid_params = src.num_valid_params; + MemCpyT(this->param, src.param, lengthof(this->param)); +} + /** * Get the name of this grf. In case the name isn't known * the filename is returned. @@ -202,8 +215,8 @@ GRFError::GRFError(const GRFError &error) : message(error.message), severity(error.severity) { - if (error.custom_message != NULL) this->custom_message = strdup(error.custom_message); - if (error.data != NULL) this->data = strdup(error.data); + if (error.custom_message != NULL) this->custom_message = stredup(error.custom_message); + if (error.data != NULL) this->data = stredup(error.data); memcpy(this->param_value, error.param_value, sizeof(this->param_value)); } @@ -582,7 +595,7 @@ compatible_grf: * already a local one, so there is no need to replace it. */ if (!HasBit(c->flags, GCF_COPY)) { free(c->filename); - c->filename = strdup(f->filename); + c->filename = stredup(f->filename); memcpy(c->ident.md5sum, f->ident.md5sum, sizeof(c->ident.md5sum)); c->name->Release(); c->name = f->name; @@ -773,7 +786,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 (!_video_driver->HasGUI() || !ThreadObject::New(&DoScanNewGRFFiles, callback, NULL)) { + if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&DoScanNewGRFFiles, callback, NULL)) { _modal_progress_work_mutex->EndCritical(); _modal_progress_paint_mutex->EndCritical(); DoScanNewGRFFiles(callback); diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 906f9620d1..e19d8d6085 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -177,6 +177,8 @@ struct GRFConfig : ZeroedMemoryAllocator { struct GRFConfig *next; ///< NOSAVE: Next item in the linked list + void CopyParams(const GRFConfig &src); + bool IsOpenTTDBaseGRF() const; const char *GetTextfile(TextfileType type) const; diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp index 2f14e6c518..35a6b3b225 100644 --- a/src/newgrf_debug_gui.cpp +++ b/src/newgrf_debug_gui.cpp @@ -43,6 +43,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** The sprite picker. */ NewGrfDebugSpritePicker _newgrf_debug_sprite_picker = { SPM_NONE, NULL, 0, SmallVector() }; @@ -398,7 +400,7 @@ struct NewGRFInspectWindow : Window { va_list va; va_start(va, format); - vsnprintf(buf, lengthof(buf), format, va); + vseprintf(buf, lastof(buf), format, va); va_end(va); offset -= this->vscroll->GetPosition(); diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index b5fe5d711e..cdd62b7aef 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -25,6 +25,8 @@ #include "newgrf_railtype.h" #include "ship.h" +#include "safeguards.h" + struct WagonOverride { EngineID *train_id; uint trains; diff --git a/src/newgrf_generic.cpp b/src/newgrf_generic.cpp index 55eee6d23e..9bd77239aa 100644 --- a/src/newgrf_generic.cpp +++ b/src/newgrf_generic.cpp @@ -18,6 +18,8 @@ #include "water_map.h" #include +#include "safeguards.h" + /** Scope resolver for generic objects and properties. */ struct GenericScopeResolver : public ScopeResolver { CargoID cargo_type; diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 5aa3211aed..c75fa2ce2a 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -36,6 +36,9 @@ #include "table/sprites.h" +#include +#include "safeguards.h" + /* Maximum number of NewGRFs that may be loaded. Six reserved slots are: * 0 - config, 1 - sound, 2 - base, 3 - logos, 4 - climate, 5 - extra */ static const int MAX_NEWGRFS = MAX_FILE_SLOTS - 6; @@ -88,7 +91,7 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint right, uint /* Prepare and draw GRF ID */ char buff[256]; - snprintf(buff, lengthof(buff), "%08X", BSWAP32(c->ident.grfid)); + seprintf(buff, lastof(buff), "%08X", BSWAP32(c->ident.grfid)); SetDParamStr(0, buff); y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_GRF_ID); @@ -565,7 +568,7 @@ void ShowNewGRFTextfileWindow(TextfileType file_type, const GRFConfig *c) new NewGRFTextfileWindow(file_type, c); } -static GRFPresetList _grf_preset_list; +static GRFPresetList _grf_preset_list; ///< List of known NewGRF presets. @see GetGRFPresetList class DropDownListPresetItem : public DropDownListItem { public: @@ -584,7 +587,25 @@ public: } }; + +typedef std::map GrfIdMap; ///< Map of grfid to the grf config. + +/** + * Add all grf configs from \a c into the map. + * @param c Grf list to add. + * @param grfid_map Map to add them to. + */ +static void FillGrfidMap(const GRFConfig *c, GrfIdMap *grfid_map) +{ + while (c != NULL) { + std::pair p(c->ident.grfid, c); + grfid_map->insert(p); + c = c->next; + } +} + static void NewGRFConfirmationCallback(Window *w, bool confirmed); +static void ShowSavePresetWindow(const char *initial_text); /** * Window for showing NewGRF files @@ -612,7 +633,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { bool editable; ///< Is the window editable? bool show_params; ///< Are the grf-parameters shown in the info-panel? bool execute; ///< On pressing 'apply changes' are grf changes applied immediately, or only list is updated. - int preset; ///< Selected preset. + int preset; ///< Selected preset or \c -1 if none selected. int active_over; ///< Active GRF item over which another one is dragged, \c -1 if none. Scrollbar *vscroll; @@ -662,6 +683,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { { DeleteWindowByClass(WC_GRF_PARAMETERS); DeleteWindowByClass(WC_TEXTFILE); + DeleteWindowByClass(WC_SAVE_PRESET); if (this->editable && !this->execute) { CopyGRFConfigList(this->orig_list, this->actives, true); @@ -674,6 +696,44 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { _grf_preset_list.Clear(); } + /** + * Test whether the currently active set of NewGRFs can be upgraded with the available NewGRFs. + * @return Whether an upgrade is possible. + */ + bool CanUpgradeCurrent() + { + GrfIdMap grfid_map; + FillGrfidMap(this->actives, &grfid_map); + + for (const GRFConfig *a = _all_grfs; a != NULL; a = a->next) { + GrfIdMap::const_iterator iter = grfid_map.find(a->ident.grfid); + if (iter != grfid_map.end() && a->version > iter->second->version) return true; + } + return false; + } + + /** Upgrade the currently active set of NewGRFs. */ + void UpgradeCurrent() + { + GrfIdMap grfid_map; + FillGrfidMap(this->actives, &grfid_map); + + for (const GRFConfig *a = _all_grfs; a != NULL; a = a->next) { + GrfIdMap::iterator iter = grfid_map.find(a->ident.grfid); + if (iter == grfid_map.end() || iter->second->version >= a->version) continue; + + GRFConfig **c = &this->actives; + while (*c != iter->second) c = &(*c)->next; + GRFConfig *d = new GRFConfig(*a); + d->next = (*c)->next; + d->CopyParams(**c); + if (this->active_sel == *c) this->active_sel = NULL; + delete *c; + *c = d; + iter->second = d; + } + } + virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) { switch (widget) { @@ -907,7 +967,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { } case WID_NS_PRESET_SAVE: - ShowQueryString(STR_EMPTY, STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY, 32, this, CS_ALPHANUMERAL, QSF_NONE); + ShowSavePresetWindow((this->preset == -1) ? NULL : _grf_preset_list[this->preset]); break; case WID_NS_PRESET_DELETE: @@ -1009,6 +1069,13 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { break; } + case WID_NS_UPGRADE: { // Upgrade GRF. + if (!this->editable || this->actives == NULL) break; + UpgradeCurrent(); + this->InvalidateData(GOID_NEWGRF_LIST_EDITED); + break; + } + case WID_NS_AVAIL_LIST: { // Select a non-active GRF. ResetObjectToPlace(); @@ -1187,6 +1254,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { WIDGET_LIST_END ); this->SetWidgetDisabledState(WID_NS_ADD, !this->editable || this->avail_sel == NULL || HasBit(this->avail_sel->flags, GCF_INVALID)); + this->SetWidgetDisabledState(WID_NS_UPGRADE, !this->editable || this->actives == NULL || !this->CanUpgradeCurrent()); bool disable_all = this->active_sel == NULL || !this->editable; this->SetWidgetsDisabledState(disable_all, @@ -1496,7 +1564,7 @@ void ShowMissingContentWindow(const GRFConfig *list) ContentInfo *ci = new ContentInfo(); ci->type = CONTENT_TYPE_NEWGRF; ci->state = ContentInfo::DOES_NOT_EXIST; - ttd_strlcpy(ci->name, c->GetName(), lengthof(ci->name)); + strecpy(ci->name, c->GetName(), lastof(ci->name)); ci->unique_id = BSWAP32(c->ident.grfid); memcpy(ci->md5sum, HasBit(c->flags, GCF_COMPATIBLE) ? c->original_md5sum : c->ident.md5sum, sizeof(ci->md5sum)); *cv.Append() = ci; @@ -1771,6 +1839,8 @@ static const NWidgetPart _nested_newgrf_actives_widgets[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_NS_MOVE_DOWN), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_NEWGRF_SETTINGS_MOVEDOWN, STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP), EndContainer(), + NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_NS_UPGRADE), SetFill(1, 0), SetResize(1, 0), + SetDataTip(STR_NEWGRF_SETTINGS_UPGRADE, STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP), EndContainer(), NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPadding(2, 2, 2, 2), @@ -2020,6 +2090,162 @@ void ShowNewGRFSettings(bool editable, bool show_params, bool exec_changes, GRFC new NewGRFWindow(&_newgrf_desc, editable, show_params, exec_changes, config); } +/** Widget parts of the save preset window. */ +static const NWidgetPart _nested_save_preset_widgets[] = { + NWidget(NWID_HORIZONTAL), + NWidget(WWT_CLOSEBOX, COLOUR_GREY), + NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_SAVE_PRESET_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), + NWidget(WWT_DEFSIZEBOX, COLOUR_GREY), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_INSET, COLOUR_GREY, WID_SVP_PRESET_LIST), SetPadding(2, 1, 0, 2), + SetDataTip(0x0, STR_SAVE_PRESET_LIST_TOOLTIP), SetResize(1, 10), SetScrollbar(WID_SVP_SCROLLBAR), EndContainer(), + NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_SVP_SCROLLBAR), + EndContainer(), + NWidget(WWT_EDITBOX, COLOUR_GREY, WID_SVP_EDITBOX), SetPadding(3, 2, 2, 2), SetFill(1, 0), SetResize(1, 0), + SetDataTip(STR_SAVE_PRESET_TITLE, STR_SAVE_PRESET_EDITBOX_TOOLTIP), + EndContainer(), + NWidget(NWID_HORIZONTAL), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SVP_CANCEL), SetDataTip(STR_SAVE_PRESET_CANCEL, STR_SAVE_PRESET_CANCEL_TOOLTIP), SetFill(1, 0), SetResize(1, 0), + NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SVP_SAVE), SetDataTip(STR_SAVE_PRESET_SAVE, STR_SAVE_PRESET_SAVE_TOOLTIP), SetFill(1, 0), SetResize(1, 0), + NWidget(WWT_RESIZEBOX, COLOUR_GREY), + EndContainer(), +}; + +/** Window description of the preset save window. */ +static WindowDesc _save_preset_desc( + WDP_CENTER, "save_preset", 140, 110, + WC_SAVE_PRESET, WC_GAME_OPTIONS, + WDF_MODAL, + _nested_save_preset_widgets, lengthof(_nested_save_preset_widgets) +); + +/** Class for the save preset window. */ +struct SavePresetWindow : public Window { + QueryString presetname_editbox; ///< Edit box of the save preset. + GRFPresetList presets; ///< Available presets. + Scrollbar *vscroll; ///< Pointer to the scrollbar widget. + int selected; ///< Selected entry in the preset list, or \c -1 if none selected. + + /** + * Constructor of the save preset window. + * @param initial_text Initial text to display in the edit box, or \c NULL. + */ + SavePresetWindow(const char *initial_text) : Window(&_save_preset_desc), presetname_editbox(32) + { + GetGRFPresetList(&this->presets); + this->selected = -1; + if (initial_text != NULL) { + for (uint i = 0; i < this->presets.Length(); i++) { + if (!strcmp(initial_text, this->presets[i])) { + this->selected = i; + break; + } + } + } + + this->querystrings[WID_SVP_EDITBOX] = &this->presetname_editbox; + this->presetname_editbox.ok_button = WID_SVP_SAVE; + this->presetname_editbox.cancel_button = WID_SVP_CANCEL; + + this->CreateNestedTree(); + this->vscroll = this->GetScrollbar(WID_SVP_SCROLLBAR); + this->FinishInitNested(0); + + this->vscroll->SetCount(this->presets.Length()); + this->SetFocusedWidget(WID_SVP_EDITBOX); + if (initial_text != NULL) this->presetname_editbox.text.Assign(initial_text); + } + + ~SavePresetWindow() + { + } + + virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) + { + switch (widget) { + case WID_SVP_PRESET_LIST: { + resize->height = FONT_HEIGHT_NORMAL + 2U; + size->height = 0; + for (uint i = 0; i < this->presets.Length(); i++) { + Dimension d = GetStringBoundingBox(this->presets[i]); + size->width = max(size->width, d.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); + resize->height = max(resize->height, d.height); + } + size->height = ClampU(this->presets.Length(), 5, 20) * resize->height + 1; + break; + } + } + } + + virtual void DrawWidget(const Rect &r, int widget) const + { + switch (widget) { + case WID_SVP_PRESET_LIST: { + GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, PC_BLACK); + + uint step_height = this->GetWidget(WID_SVP_PRESET_LIST)->resize_y; + int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; + uint y = r.top + WD_FRAMERECT_TOP; + uint min_index = this->vscroll->GetPosition(); + uint max_index = min(min_index + this->vscroll->GetCapacity(), this->presets.Length()); + + for (uint i = min_index; i < max_index; i++) { + if ((int)i == this->selected) GfxFillRect(r.left + 1, y, r.right - 1, y + step_height - 2, PC_DARK_BLUE); + + const char *text = this->presets[i]; + DrawString(r.left + WD_FRAMERECT_LEFT, r.right, y + offset_y, text, ((int)i == this->selected) ? TC_WHITE : TC_SILVER); + y += step_height; + } + break; + } + } + } + + virtual void OnClick(Point pt, int widget, int click_count) + { + switch (widget) { + case WID_SVP_PRESET_LIST: { + uint row = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_SVP_PRESET_LIST); + if (row < this->presets.Length()) { + this->selected = row; + this->presetname_editbox.text.Assign(this->presets[row]); + this->SetWidgetDirty(WID_SVP_PRESET_LIST); + this->SetWidgetDirty(WID_SVP_EDITBOX); + } + break; + } + + case WID_SVP_CANCEL: + delete this; + break; + + case WID_SVP_SAVE: { + Window *w = FindWindowById(WC_GAME_OPTIONS, WN_GAME_OPTIONS_NEWGRF_STATE); + if (w != NULL && !StrEmpty(this->presetname_editbox.text.buf)) w->OnQueryTextFinished(this->presetname_editbox.text.buf); + delete this; + break; + } + } + } + + virtual void OnResize() + { + this->vscroll->SetCapacityFromWidget(this, WID_SVP_PRESET_LIST); + } +}; + +/** + * Open the window for saving a preset. + * @param initial_text Initial text to display in the edit box, or \c NULL. + */ +static void ShowSavePresetWindow(const char *initial_text) +{ + DeleteWindowByClass(WC_SAVE_PRESET); + new SavePresetWindow(initial_text); +} + /** Widgets for the progress window. */ static const NWidgetPart _nested_scan_progress_widgets[] = { NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_NEWGRF_SCAN_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), @@ -2117,9 +2343,9 @@ struct ScanProgressWindow : public Window { if (name == NULL) { char buf[256]; GetString(buf, STR_NEWGRF_SCAN_ARCHIVES, lastof(buf)); - this->last_name = strdup(buf); + this->last_name = stredup(buf); } else { - this->last_name = strdup(name); + this->last_name = stredup(name); } this->scanned = num; if (num > _settings_client.gui.last_newgrf_count) _settings_client.gui.last_newgrf_count = num; diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index c660fe3ab7..6c9c614af9 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -24,6 +24,8 @@ #include "newgrf_cargo.h" #include "station_base.h" +#include "safeguards.h" + static BuildingCounts _building_counts; static HouseClassMapping _class_mapping[HOUSE_CLASS_MAX]; @@ -378,10 +380,10 @@ static uint32 GetDistanceFromNearbyHouse(uint8 parameter, TileIndex tile, HouseI uint32 res = 0; for (Station * const * st_iter = sl->Begin(); st_iter != sl->End(); st_iter++) { const Station *st = *st_iter; - if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_EVER_ACCEPTED)) SetBit(res, 0); - if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_LAST_MONTH)) SetBit(res, 1); - if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_CURRENT_MONTH)) SetBit(res, 2); - if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_ACCEPTED_BIGTICK)) SetBit(res, 3); + if (HasBit(st->goods[cid].status, GoodsEntry::GES_EVER_ACCEPTED)) SetBit(res, 0); + if (HasBit(st->goods[cid].status, GoodsEntry::GES_LAST_MONTH)) SetBit(res, 1); + if (HasBit(st->goods[cid].status, GoodsEntry::GES_CURRENT_MONTH)) SetBit(res, 2); + if (HasBit(st->goods[cid].status, GoodsEntry::GES_ACCEPTED_BIGTICK)) SetBit(res, 3); } /* Cargo triggered CB 148? */ diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 725373d105..a7ae4c01fb 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -24,6 +24,8 @@ #include "table/strings.h" +#include "safeguards.h" + /* Since the industry IDs defined by the GRF file don't necessarily correlate * to those used by the game, the IDs used for overriding old industries must be * translated when the idustry spec is set. */ diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp index f22514a03f..90a17550d0 100644 --- a/src/newgrf_industrytiles.cpp +++ b/src/newgrf_industrytiles.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Based on newhouses equivalent, but adapted for newindustries * @param parameter from callback. It's in fact a pair of coordinates diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 6f7e3f0ff8..3f48a819f5 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -24,6 +24,8 @@ #include "water.h" #include "newgrf_animation_base.h" +#include "safeguards.h" + /** The override manager for our objects. */ ObjectOverrideManager _object_mngr(NEW_OBJECT_OFFSET, NUM_OBJECTS, INVALID_OBJECT_TYPE); diff --git a/src/newgrf_railtype.cpp b/src/newgrf_railtype.cpp index f43689698e..872a3a7f66 100644 --- a/src/newgrf_railtype.cpp +++ b/src/newgrf_railtype.cpp @@ -16,6 +16,8 @@ #include "depot_base.h" #include "town.h" +#include "safeguards.h" + /* virtual */ uint32 RailTypeScopeResolver::GetRandomBits() const { uint tmp = CountBits(this->tile + (TileX(this->tile) + TileY(this->tile)) * TILE_SIZE); diff --git a/src/newgrf_sound.cpp b/src/newgrf_sound.cpp index c7739558fd..60ee609165 100644 --- a/src/newgrf_sound.cpp +++ b/src/newgrf_sound.cpp @@ -20,6 +20,8 @@ #include "debug.h" #include "settings_type.h" +#include "safeguards.h" + static SmallVector _sounds; diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index 59fc70fe45..624b4d5474 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -14,6 +14,8 @@ #include "newgrf_spritegroup.h" #include "core/pool_func.hpp" +#include "safeguards.h" + SpriteGroupPool _spritegroup_pool("SpriteGroup"); INSTANTIATE_POOL_METHODS(SpriteGroup) @@ -228,9 +230,9 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver case DSGA_OP_ROR: return RotateRight(last_value, value); case DSGA_OP_SCMP: return ((S)last_value == (S)value) ? 1 : ((S)last_value < (S)value ? 0 : 2); case DSGA_OP_UCMP: return ((U)last_value == (U)value) ? 1 : ((U)last_value < (U)value ? 0 : 2); - case DSGA_OP_SHL: return (U)last_value << ((U)value & 0x1F); // mask 'value' to 5 bits, which should behave the same on all architectures. - case DSGA_OP_SHR: return (U)last_value >> ((U)value & 0x1F); - case DSGA_OP_SAR: return (S)last_value >> ((U)value & 0x1F); + case DSGA_OP_SHL: return (uint32)(U)last_value << ((U)value & 0x1F); // Same behaviour as in ParamSet, mask 'value' to 5 bits, which should behave the same on all architectures. + case DSGA_OP_SHR: return (uint32)(U)last_value >> ((U)value & 0x1F); + case DSGA_OP_SAR: return (int32)(S)last_value >> ((U)value & 0x1F); default: return value; } } diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index 647e8781aa..cd5dad7b47 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -26,6 +26,8 @@ #include "newgrf_animation_base.h" #include "newgrf_class_func.h" +#include "safeguards.h" + template /* static */ void NewGRFClass::InsertDefaults() @@ -394,7 +396,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b uint32 value = 0; for (cargo_type = 0; cargo_type < NUM_CARGO; cargo_type++) { - if (HasBit(this->goods[cargo_type].acceptance_pickup, GoodsEntry::GES_ACCEPTANCE)) SetBit(value, cargo_type); + if (HasBit(this->goods[cargo_type].status, GoodsEntry::GES_ACCEPTANCE)) SetBit(value, cargo_type); } return value; } @@ -426,12 +428,12 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF; case 0x63: return ge->cargo.DaysInTransit(); case 0x64: return ge->HasVehicleEverTriedLoading() ? ge->last_speed | (ge->last_age << 8) : 0xFF00; - case 0x65: return GB(ge->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE, 1) << 3; + case 0x65: return GB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1) << 3; case 0x69: { assert_compile((int)GoodsEntry::GES_EVER_ACCEPTED + 1 == (int)GoodsEntry::GES_LAST_MONTH); assert_compile((int)GoodsEntry::GES_EVER_ACCEPTED + 2 == (int)GoodsEntry::GES_CURRENT_MONTH); assert_compile((int)GoodsEntry::GES_EVER_ACCEPTED + 3 == (int)GoodsEntry::GES_ACCEPTED_BIGTICK); - return GB(ge->acceptance_pickup, GoodsEntry::GES_EVER_ACCEPTED, 4); + return GB(ge->status, GoodsEntry::GES_EVER_ACCEPTED, 4); } } } @@ -441,7 +443,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b const GoodsEntry *g = &this->goods[GB(variable - 0x8C, 3, 4)]; switch (GB(variable - 0x8C, 0, 3)) { case 0: return g->cargo.TotalCount(); - case 1: return GB(min(g->cargo.TotalCount(), 4095), 0, 4) | (GB(g->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE, 1) << 7); + case 1: return GB(min(g->cargo.TotalCount(), 4095), 0, 4) | (GB(g->status, GoodsEntry::GES_ACCEPTANCE, 1) << 7); case 2: return g->time_since_pickup; case 3: return g->rating; case 4: return g->cargo.Source(); @@ -545,7 +547,7 @@ uint32 Waypoint::GetNewGRFVariable(const ResolverObject &object, byte variable, */ StationResolverObject::StationResolverObject(const StationSpec *statspec, BaseStation *st, TileIndex tile, CallbackID callback, uint32 callback_param1, uint32 callback_param2) - : ResolverObject((statspec != NULL ? statspec->grf_prop.grffile : NULL), callback, callback_param1, callback_param2), + : ResolverObject(statspec->grf_prop.grffile, callback, callback_param1, callback_param2), station_scope(*this, statspec, st, tile), town_scope(NULL) { /* Invalidate all cached vars */ diff --git a/src/newgrf_storage.cpp b/src/newgrf_storage.cpp index 7e8b9d8d07..e91e1f90c8 100644 --- a/src/newgrf_storage.cpp +++ b/src/newgrf_storage.cpp @@ -16,6 +16,8 @@ #include "debug.h" #include +#include "safeguards.h" + PersistentStoragePool _persistent_storage_pool("PersistentStorage"); INSTANTIATE_POOL_METHODS(PersistentStorage) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 439a8d57fd..5493531227 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -33,6 +33,8 @@ #include "table/strings.h" #include "table/control_codes.h" +#include "safeguards.h" + #define GRFTAB 28 #define TABSIZE 11 @@ -229,7 +231,7 @@ struct UnmappedChoiceList : ZeroedMemoryAllocator { /* In case of a (broken) NewGRF without a default, * assume an empty string. */ grfmsg(1, "choice list misses default value"); - this->strings[0] = strdup(""); + this->strings[0] = stredup(""); } char *d = old_d; diff --git a/src/newgrf_town.cpp b/src/newgrf_town.cpp index c807e77a84..2f48eb757d 100644 --- a/src/newgrf_town.cpp +++ b/src/newgrf_town.cpp @@ -14,6 +14,8 @@ #include "town.h" #include "newgrf_town.h" +#include "safeguards.h" + /** * Resolver of a town scope. * @param ro Surrounding resolver. diff --git a/src/newgrf_townname.cpp b/src/newgrf_townname.cpp index 29ca068172..42aae3f147 100644 --- a/src/newgrf_townname.cpp +++ b/src/newgrf_townname.cpp @@ -19,6 +19,8 @@ #include "core/alloc_func.hpp" #include "string_func.h" +#include "safeguards.h" + static GRFTownName *_grf_townnames = NULL; GRFTownName *GetGRFTownName(uint32 grfid) diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 9760ac8021..0cca8496f1 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -38,6 +38,8 @@ #include "table/strings.h" +#include "safeguards.h" + const NewsItem *_statusbar_news_item = NULL; static uint MIN_NEWS_AMOUNT = 30; ///< preferred minimum amount of news messages @@ -725,7 +727,7 @@ CommandCost CmdCustomNewsItem(TileIndex tile, DoCommandFlag flags, uint32 p1, ui if (company != INVALID_OWNER && company != _local_company) return CommandCost(); if (flags & DC_EXEC) { - char *news = strdup(text); + char *news = stredup(text); SetDParamStr(0, news); AddNewsItem(STR_NEWS_CUSTOM_ITEM, type, NF_NORMAL, reftype1, p2, NR_NONE, UINT32_MAX, news); } diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 05efae0a21..4038288d09 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -38,6 +38,8 @@ #include "table/strings.h" #include "table/object_land.h" +#include "safeguards.h" + ObjectPool _object_pool("Object"); INSTANTIATE_POOL_METHODS(Object) uint16 Object::counts[NUM_OBJECTS]; diff --git a/src/object_gui.cpp b/src/object_gui.cpp index 29a9d0d5ef..f0dbd0dc25 100644 --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -23,6 +23,8 @@ #include "table/strings.h" +#include "safeguards.h" + static ObjectClassID _selected_object_class; ///< the currently visible object class static int _selected_object_index; ///< the index of the selected object in the current class or -1 static uint8 _selected_object_view; ///< the view of the selected object diff --git a/src/openttd.cpp b/src/openttd.cpp index c901272c57..f289545ec7 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -68,6 +68,8 @@ #include +#include "safeguards.h" + void CallLandscapeTick(); void IncreaseDate(); void DoPaletteAnimations(); @@ -91,11 +93,11 @@ void CDECL usererror(const char *s, ...) char buf[512]; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); ShowOSErrorBox(buf, false); - if (_video_driver != NULL) _video_driver->Stop(); + if (VideoDriver::GetInstance() != NULL) VideoDriver::GetInstance()->Stop(); exit(1); } @@ -111,7 +113,7 @@ void CDECL error(const char *s, ...) char buf[512]; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); ShowOSErrorBox(buf, true); @@ -130,7 +132,7 @@ void CDECL ShowInfoF(const char *str, ...) va_list va; char buf[1024]; va_start(va, str); - vsnprintf(buf, lengthof(buf), str, va); + vseprintf(buf, lastof(buf), str, va); va_end(va); ShowInfo(buf); } @@ -341,7 +343,7 @@ static void LoadIntroGame(bool load_newgrfs = true) CheckForMissingGlyphs(); /* Play main theme */ - if (_music_driver->IsSongPlaying()) ResetMusic(); + if (MusicDriver::GetInstance()->IsSongPlaying()) ResetMusic(); } void MakeNewgameSettingsLive() @@ -434,7 +436,7 @@ struct AfterNewGRFScan : NewGRFScanCallback { *save_config_ptr = save_config; /* restore saved music volume */ - _music_driver->SetVolume(_settings_client.music.music_vol); + MusicDriver::GetInstance()->SetVolume(_settings_client.music.music_vol); if (startyear != INVALID_YEAR) _settings_newgame.game_creation.starting_year = startyear; if (generation_seed != GENERATE_NEW_SEED) _settings_newgame.game_creation.generation_seed = generation_seed; @@ -442,7 +444,7 @@ struct AfterNewGRFScan : NewGRFScanCallback { #if defined(ENABLE_NETWORK) if (dedicated_host != NULL) { _network_bind_list.Clear(); - *_network_bind_list.Append() = strdup(dedicated_host); + *_network_bind_list.Append() = stredup(dedicated_host); } if (dedicated_port != 0) _settings_client.network.server_port = dedicated_port; #endif /* ENABLE_NETWORK */ @@ -561,23 +563,23 @@ int openttd_main(int argc, char *argv[]) int i; while ((i = mgo.GetOpt()) != -1) { switch (i) { - case 'I': free(graphics_set); graphics_set = strdup(mgo.opt); break; - case 'S': free(sounds_set); sounds_set = strdup(mgo.opt); break; - case 'M': free(music_set); music_set = strdup(mgo.opt); break; - case 'm': free(musicdriver); musicdriver = strdup(mgo.opt); break; - case 's': free(sounddriver); sounddriver = strdup(mgo.opt); break; - case 'v': free(videodriver); videodriver = strdup(mgo.opt); break; - case 'b': free(blitter); blitter = strdup(mgo.opt); break; + case 'I': free(graphics_set); graphics_set = stredup(mgo.opt); break; + case 'S': free(sounds_set); sounds_set = stredup(mgo.opt); break; + case 'M': free(music_set); music_set = stredup(mgo.opt); break; + case 'm': free(musicdriver); musicdriver = stredup(mgo.opt); break; + case 's': free(sounddriver); sounddriver = stredup(mgo.opt); break; + case 'v': free(videodriver); videodriver = stredup(mgo.opt); break; + case 'b': free(blitter); blitter = stredup(mgo.opt); break; #if defined(ENABLE_NETWORK) case 'D': free(musicdriver); free(sounddriver); free(videodriver); free(blitter); - musicdriver = strdup("null"); - sounddriver = strdup("null"); - videodriver = strdup("dedicated"); - blitter = strdup("null"); + musicdriver = stredup("null"); + sounddriver = stredup("null"); + videodriver = stredup("dedicated"); + blitter = stredup("null"); dedicated = true; SetDebugString("net=6"); if (mgo.opt != NULL) { @@ -665,7 +667,7 @@ int openttd_main(int argc, char *argv[]) goto exit_noshutdown; } case 'G': scanner->generation_seed = atoi(mgo.opt); break; - case 'c': _config_file = strdup(mgo.opt); break; + case 'c': _config_file = stredup(mgo.opt); break; case 'x': scanner->save_config = false; break; case 'h': i = -2; // Force printing of help. @@ -737,7 +739,7 @@ int openttd_main(int argc, char *argv[]) InitWindowSystem(); BaseGraphics::FindSets(); - if (graphics_set == NULL && BaseGraphics::ini_set != NULL) graphics_set = strdup(BaseGraphics::ini_set); + if (graphics_set == NULL && BaseGraphics::ini_set != NULL) graphics_set = stredup(BaseGraphics::ini_set); if (!BaseGraphics::SetSet(graphics_set)) { if (!StrEmpty(graphics_set)) { BaseGraphics::SetSet(NULL); @@ -753,10 +755,17 @@ int openttd_main(int argc, char *argv[]) GfxInitPalettes(); DEBUG(misc, 1, "Loading blitter..."); - if (blitter == NULL && _ini_blitter != NULL) blitter = strdup(_ini_blitter); + if (blitter == NULL && _ini_blitter != NULL) blitter = stredup(_ini_blitter); _blitter_autodetected = StrEmpty(blitter); - /* If we have a 32 bpp base set, try to select the 32 bpp blitter first, but only if we autoprobe the blitter. */ - if (!_blitter_autodetected || BaseGraphics::GetUsedSet() == NULL || BaseGraphics::GetUsedSet()->blitter == BLT_8BPP || BlitterFactory::SelectBlitter("32bpp-anim") == NULL) { + /* Activate the initial blitter. + * This is only some initial guess, after NewGRFs have been loaded SwitchNewGRFBlitter may switch to a different one. + * - Never guess anything, if the user specified a blitter. (_blitter_autodetected) + * - Use 32bpp blitter if baseset or 8bpp-support settings says so. + * - Use 8bpp blitter otherwise. + */ + if (!_blitter_autodetected || + (_support8bpp != S8BPP_NONE && (BaseGraphics::GetUsedSet() == NULL || BaseGraphics::GetUsedSet()->blitter == BLT_8BPP)) || + BlitterFactory::SelectBlitter("32bpp-anim") == NULL) { if (BlitterFactory::SelectBlitter(blitter) == NULL) { StrEmpty(blitter) ? usererror("Failed to autoprobe blitter") : @@ -765,13 +774,8 @@ int openttd_main(int argc, char *argv[]) } free(blitter); - if (videodriver == NULL && _ini_videodriver != NULL) videodriver = strdup(_ini_videodriver); - _video_driver = (VideoDriver*)DriverFactoryBase::SelectDriver(videodriver, Driver::DT_VIDEO); - if (_video_driver == NULL) { - StrEmpty(videodriver) ? - usererror("Failed to autoprobe video driver") : - usererror("Failed to select requested video driver '%s'", videodriver); - } + if (videodriver == NULL && _ini_videodriver != NULL) videodriver = stredup(_ini_videodriver); + DriverFactoryBase::SelectDriver(videodriver, Driver::DT_VIDEO); free(videodriver); InitializeSpriteSorter(); @@ -802,13 +806,13 @@ int openttd_main(int argc, char *argv[]) goto exit_bootstrap; } - _video_driver->ClaimMousePointer(); + VideoDriver::GetInstance()->ClaimMousePointer(); /* initialize screenshot formats */ InitializeScreenshotFormats(); BaseSounds::FindSets(); - if (sounds_set == NULL && BaseSounds::ini_set != NULL) sounds_set = strdup(BaseSounds::ini_set); + if (sounds_set == NULL && BaseSounds::ini_set != NULL) sounds_set = stredup(BaseSounds::ini_set); if (!BaseSounds::SetSet(sounds_set)) { if (StrEmpty(sounds_set) || !BaseSounds::SetSet(NULL)) { usererror("Failed to find a sounds set. Please acquire a sounds set for OpenTTD. See section 4.1 of readme.txt."); @@ -821,7 +825,7 @@ int openttd_main(int argc, char *argv[]) free(sounds_set); BaseMusic::FindSets(); - if (music_set == NULL && BaseMusic::ini_set != NULL) music_set = strdup(BaseMusic::ini_set); + if (music_set == NULL && BaseMusic::ini_set != NULL) music_set = stredup(BaseMusic::ini_set); if (!BaseMusic::SetSet(music_set)) { if (StrEmpty(music_set) || !BaseMusic::SetSet(NULL)) { usererror("Failed to find a music set. Please acquire a music set for OpenTTD. See section 4.1 of readme.txt."); @@ -833,22 +837,12 @@ int openttd_main(int argc, char *argv[]) } free(music_set); - if (sounddriver == NULL && _ini_sounddriver != NULL) sounddriver = strdup(_ini_sounddriver); - _sound_driver = (SoundDriver*)DriverFactoryBase::SelectDriver(sounddriver, Driver::DT_SOUND); - if (_sound_driver == NULL) { - StrEmpty(sounddriver) ? - usererror("Failed to autoprobe sound driver") : - usererror("Failed to select requested sound driver '%s'", sounddriver); - } + if (sounddriver == NULL && _ini_sounddriver != NULL) sounddriver = stredup(_ini_sounddriver); + DriverFactoryBase::SelectDriver(sounddriver, Driver::DT_SOUND); free(sounddriver); - if (musicdriver == NULL && _ini_musicdriver != NULL) musicdriver = strdup(_ini_musicdriver); - _music_driver = (MusicDriver*)DriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC); - if (_music_driver == NULL) { - StrEmpty(musicdriver) ? - usererror("Failed to autoprobe music driver") : - usererror("Failed to select requested music driver '%s'", musicdriver); - } + if (musicdriver == NULL && _ini_musicdriver != NULL) musicdriver = stredup(_ini_musicdriver); + DriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC); free(musicdriver); /* Take our initial lock on whatever we might want to do! */ @@ -866,7 +860,7 @@ int openttd_main(int argc, char *argv[]) ScanNewGRFFiles(scanner); scanner = NULL; - _video_driver->MainLoop(); + VideoDriver::GetInstance()->MainLoop(); WaitTillSaved(); @@ -934,7 +928,7 @@ static void MakeNewGameDone() SettingsDisableElrail(_settings_game.vehicle.disable_elrails); /* In a dedicated server, the server does not play */ - if (!_video_driver->HasGUI()) { + if (!VideoDriver::GetInstance()->HasGUI()) { SetLocalCompany(COMPANY_SPECTATOR); if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE); IConsoleCmdExec("exec scripts/game_start.scr 0"); @@ -1088,7 +1082,7 @@ void SwitchToMode(SwitchMode new_mode) case SM_NEWGAME: // New Game --> 'Random game' #ifdef ENABLE_NETWORK if (_network_server) { - snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "Random Map"); + seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "Random Map"); } #endif /* ENABLE_NETWORK */ MakeNewGame(false, new_mode == SM_NEWGAME); @@ -1115,7 +1109,7 @@ void SwitchToMode(SwitchMode new_mode) DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE); #ifdef ENABLE_NETWORK if (_network_server) { - snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "%s (Loaded game)", _file_to_saveload.title); + seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "%s (Loaded game)", _file_to_saveload.title); } #endif /* ENABLE_NETWORK */ } @@ -1125,7 +1119,7 @@ void SwitchToMode(SwitchMode new_mode) case SM_START_HEIGHTMAP: // Load a heightmap and start a new game from it #ifdef ENABLE_NETWORK if (_network_server) { - snprintf(_network_game_info.map_name, lengthof(_network_game_info.map_name), "%s (Heightmap)", _file_to_saveload.title); + seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "%s (Heightmap)", _file_to_saveload.title); } #endif /* ENABLE_NETWORK */ MakeNewGame(true, true); @@ -1155,7 +1149,7 @@ void SwitchToMode(SwitchMode new_mode) LoadIntroGame(); if (BaseSounds::ini_set == NULL && BaseSounds::GetUsedSet()->fallback) { ShowErrorMessage(STR_WARNING_FALLBACK_SOUNDSET, INVALID_STRING_ID, WL_CRITICAL); - BaseSounds::ini_set = strdup(BaseSounds::GetUsedSet()->name); + BaseSounds::ini_set = stredup(BaseSounds::GetUsedSet()->name); } break; @@ -1371,7 +1365,7 @@ void StateGameLoop() if (_debug_desync_level > 2 && _date_fract == 0 && (_date & 0x1F) == 0) { /* Save the desync savegame if needed. */ char name[MAX_PATH]; - snprintf(name, lengthof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); + seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date); SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false); } @@ -1423,7 +1417,7 @@ static void DoAutosave() static int _autosave_ctr = 0; /* generate a savegame name and number according to _settings_client.gui.max_num_autosaves */ - snprintf(buf, sizeof(buf), "autosave%d.sav", _autosave_ctr); + seprintf(buf, lastof(buf), "autosave%d.sav", _autosave_ctr); if (++_autosave_ctr >= _settings_client.gui.max_num_autosaves) _autosave_ctr = 0; } @@ -1500,6 +1494,6 @@ void GameLoop() InputLoop(); - _sound_driver->MainLoop(); + SoundDriver::GetInstance()->MainLoop(); MusicLoop(); } diff --git a/src/order_backup.cpp b/src/order_backup.cpp index 100348f8ab..597ad13bba 100644 --- a/src/order_backup.cpp +++ b/src/order_backup.cpp @@ -19,6 +19,8 @@ #include "window_func.h" #include "station_map.h" +#include "safeguards.h" + OrderBackupPool _order_backup_pool("BackupOrder"); INSTANTIATE_POOL_METHODS(OrderBackup) diff --git a/src/order_base.h b/src/order_base.h index ff08136138..a67cf69bb4 100644 --- a/src/order_base.h +++ b/src/order_base.h @@ -43,13 +43,13 @@ private: CargoID refit_cargo; ///< Refit CargoID -public: - Order *next; ///< Pointer to next order. If NULL, end of list - uint16 wait_time; ///< How long in ticks to wait at the destination. uint16 travel_time; ///< How long in ticks the journey to this destination should take. uint16 max_speed; ///< How fast the vehicle may go on the way to the destination. +public: + Order *next; ///< Pointer to next order. If NULL, end of list + Order() : refit_cargo(CT_NO_REFIT), max_speed(UINT16_MAX) {} ~Order(); @@ -126,17 +126,17 @@ public: void SetRefit(CargoID cargo); /** How must the consist be loaded? */ - inline OrderLoadFlags GetLoadType() const { return (OrderLoadFlags)GB(this->flags, 4, 4); } + inline OrderLoadFlags GetLoadType() const { return (OrderLoadFlags)GB(this->flags, 4, 3); } /** How must the consist be unloaded? */ - inline OrderUnloadFlags GetUnloadType() const { return (OrderUnloadFlags)GB(this->flags, 0, 4); } + inline OrderUnloadFlags GetUnloadType() const { return (OrderUnloadFlags)GB(this->flags, 0, 3); } /** At which stations must we stop? */ inline OrderNonStopFlags GetNonStopType() const { return (OrderNonStopFlags)GB(this->type, 6, 2); } /** Where must we stop at the platform? */ inline OrderStopLocation GetStopLocation() const { return (OrderStopLocation)GB(this->type, 4, 2); } /** What caused us going to the depot? */ - inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)GB(this->flags, 0, 4); } + inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)GB(this->flags, 0, 3); } /** What are we going to do when in the depot. */ - inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)GB(this->flags, 4, 4); } + inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)GB(this->flags, 4, 3); } /** What variable do we have to compare? */ inline OrderConditionVariable GetConditionVariable() const { return (OrderConditionVariable)GB(this->dest, 11, 5); } /** What is the comparator to use? */ @@ -147,17 +147,17 @@ public: inline uint16 GetConditionValue() const { return GB(this->dest, 0, 11); } /** Set how the consist must be loaded. */ - inline void SetLoadType(OrderLoadFlags load_type) { SB(this->flags, 4, 4, load_type); } + inline void SetLoadType(OrderLoadFlags load_type) { SB(this->flags, 4, 3, load_type); } /** Set how the consist must be unloaded. */ - inline void SetUnloadType(OrderUnloadFlags unload_type) { SB(this->flags, 0, 4, unload_type); } + inline void SetUnloadType(OrderUnloadFlags unload_type) { SB(this->flags, 0, 3, unload_type); } /** Set whether we must stop at stations or not. */ inline void SetNonStopType(OrderNonStopFlags non_stop_type) { SB(this->type, 6, 2, non_stop_type); } /** Set where we must stop at the platform. */ inline void SetStopLocation(OrderStopLocation stop_location) { SB(this->type, 4, 2, stop_location); } /** Set the cause to go to the depot. */ - inline void SetDepotOrderType(OrderDepotTypeFlags depot_order_type) { SB(this->flags, 0, 4, depot_order_type); } + inline void SetDepotOrderType(OrderDepotTypeFlags depot_order_type) { SB(this->flags, 0, 3, depot_order_type); } /** Set what we are going to do in the depot. */ - inline void SetDepotActionType(OrderDepotActionFlags depot_service_type) { SB(this->flags, 4, 4, depot_service_type); } + inline void SetDepotActionType(OrderDepotActionFlags depot_service_type) { SB(this->flags, 4, 3, depot_service_type); } /** Set variable we have to compare. */ inline void SetConditionVariable(OrderConditionVariable condition_variable) { SB(this->dest, 11, 5, condition_variable); } /** Set the comparator to use. */ @@ -167,17 +167,70 @@ public: /** Set the value to base the skip on. */ inline void SetConditionValue(uint16 value) { SB(this->dest, 0, 11, value); } + /* As conditional orders write their "skip to" order all over the flags, we cannot check the + * flags to find out if timetabling is enabled. However, as conditional orders are never + * autofilled we can be sure that any non-zero values for their wait_time and travel_time are + * explicitly set (but travel_time is actually unused for conditionals). */ + + /** Does this order have an explicit wait time set? */ + inline bool IsWaitTimetabled() const { return this->IsType(OT_CONDITIONAL) ? this->wait_time > 0 : HasBit(this->flags, 3); } + /** Does this order have an explicit travel time set? */ + inline bool IsTravelTimetabled() const { return this->IsType(OT_CONDITIONAL) ? this->travel_time > 0 : HasBit(this->flags, 7); } + + /** Get the time in ticks a vehicle should wait at the destination or 0 if it's not timetabled. */ + inline uint16 GetTimetabledWait() const { return this->IsWaitTimetabled() ? this->wait_time : 0; } + /** Get the time in ticks a vehicle should take to reach the destination or 0 if it's not timetabled. */ + inline uint16 GetTimetabledTravel() const { return this->IsTravelTimetabled() ? this->travel_time : 0; } + /** Get the time in ticks a vehicle will probably wait at the destination (timetabled or not). */ + inline uint16 GetWaitTime() const { return this->wait_time; } + /** Get the time in ticks a vehicle will probably take to reach the destination (timetabled or not). */ + inline uint16 GetTravelTime() const { return this->travel_time; } + + /** + * Get the maxmimum speed in km-ish/h a vehicle is allowed to reach on the way to the + * destination. + * @return maximum speed. + */ + inline uint16 GetMaxSpeed() const { return this->max_speed; } + + /** Set if the wait time is explicitly timetabled (unless the order is conditional). */ + inline void SetWaitTimetabled(bool timetabled) { if (!this->IsType(OT_CONDITIONAL)) SB(this->flags, 3, 1, timetabled ? 1 : 0); } + /** Set if the travel time is explicitly timetabled (unless the order is conditional). */ + inline void SetTravelTimetabled(bool timetabled) { if (!this->IsType(OT_CONDITIONAL)) SB(this->flags, 7, 1, timetabled ? 1 : 0); } + + /** + * Set the time in ticks to wait at the destination. + * @param time Time to set as wait time. + */ + inline void SetWaitTime(uint16 time) { this->wait_time = time; } + + /** + * Set the time in ticks to take for travelling to the destination. + * @param time Time to set as travel time. + */ + inline void SetTravelTime(uint16 time) { this->travel_time = time; } + + /** + * Set the maxmimum speed in km-ish/h a vehicle is allowed to reach on the way to the + * destination. + * @param speed Speed to be set. + */ + inline void SetMaxSpeed(uint16 speed) { this->max_speed = speed; } + bool ShouldStopAtStation(const Vehicle *v, StationID station) const; bool CanLoadOrUnload() const; bool CanLeaveWithCargo(bool has_cargo) const; TileIndex GetLocation(const Vehicle *v, bool airport = false) const; - /** Checks if this order has travel_time and if needed wait_time set. */ + /** Checks if travel_time and wait_time apply to this order and if they are timetabled. */ inline bool IsCompletelyTimetabled() const { - if (this->travel_time == 0 && !this->IsType(OT_CONDITIONAL)) return false; - if (this->wait_time == 0 && this->IsType(OT_GOTO_STATION) && !(this->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION)) return false; + if (!this->IsTravelTimetabled() && !this->IsType(OT_CONDITIONAL)) return false; + if (!this->IsWaitTimetabled() && this->IsType(OT_GOTO_STATION) && + !(this->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION)) { + return false; + } return true; } @@ -209,13 +262,14 @@ private: uint num_vehicles; ///< NOSAVE: Number of vehicles that share this order list. Vehicle *first_shared; ///< NOSAVE: pointer to the first vehicle in the shared order chain. - Ticks timetable_duration; ///< NOSAVE: Total duration of the order list + Ticks timetable_duration; ///< NOSAVE: Total timetabled duration of the order list. + Ticks total_duration; ///< NOSAVE: Total (timetabled or not) duration of the order list. public: /** Default constructor producing an invalid order list. */ OrderList(VehicleOrderID num_orders = INVALID_VEH_ORDER_ID) : first(NULL), num_orders(num_orders), num_manual_orders(0), num_vehicles(0), first_shared(NULL), - timetable_duration(0) { } + timetable_duration(0), total_duration(0) { } /** * Create an order list with the given order chain for the given vehicle. @@ -315,11 +369,23 @@ public: */ inline Ticks GetTimetableDurationIncomplete() const { return this->timetable_duration; } + /** + * Gets the known duration of the vehicles orders, timetabled or not. + * @return known order duration. + */ + inline Ticks GetTotalDuration() const { return this->total_duration; } + /** * Must be called if an order's timetable is changed to update internal book keeping. * @param delta By how many ticks has the timetable duration changed */ - void UpdateOrderTimetable(Ticks delta) { this->timetable_duration += delta; } + void UpdateTimetableDuration(Ticks delta) { this->timetable_duration += delta; } + + /** + * Must be called if an order's timetable is changed to update internal book keeping. + * @param delta By how many ticks has the total duration changed + */ + void UpdateTotalDuration(Ticks delta) { this->total_duration += delta; } void FreeChain(bool keep_orderlist = false); diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index 70ab702a58..f3a6d91d66 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -27,9 +27,12 @@ #include "waypoint_base.h" #include "company_base.h" #include "order_backup.h" +#include "cheat_type.h" #include "table/strings.h" +#include "safeguards.h" + /* DestinationID must be at least as large as every these below, because it can * be any of them */ @@ -295,11 +298,13 @@ void OrderList::Initialize(Order *chain, Vehicle *v) this->num_manual_orders = 0; this->num_vehicles = 1; this->timetable_duration = 0; + this->total_duration = 0; for (Order *o = this->first; o != NULL; o = o->next) { ++this->num_orders; if (!o->IsType(OT_IMPLICIT)) ++this->num_manual_orders; - this->timetable_duration += o->wait_time + o->travel_time; + this->timetable_duration += o->GetTimetabledWait() + o->GetTimetabledTravel(); + this->total_duration += o->GetWaitTime() + o->GetTravelTime(); } for (Vehicle *u = this->first_shared->PreviousShared(); u != NULL; u = u->PreviousShared()) { @@ -474,7 +479,8 @@ void OrderList::InsertOrderAt(Order *new_order, int index) } ++this->num_orders; if (!new_order->IsType(OT_IMPLICIT)) ++this->num_manual_orders; - this->timetable_duration += new_order->wait_time + new_order->travel_time; + this->timetable_duration += new_order->GetTimetabledWait() + new_order->GetTimetabledTravel(); + this->total_duration += new_order->GetWaitTime() + new_order->GetTravelTime(); /* We can visit oil rigs and buoys that are not our own. They will be shown in * the list of stations. So, we need to invalidate that window if needed. */ @@ -506,7 +512,8 @@ void OrderList::DeleteOrderAt(int index) } --this->num_orders; if (!to_remove->IsType(OT_IMPLICIT)) --this->num_manual_orders; - this->timetable_duration -= (to_remove->wait_time + to_remove->travel_time); + this->timetable_duration -= (to_remove->GetTimetabledWait() + to_remove->GetTimetabledTravel()); + this->total_duration -= (to_remove->GetWaitTime() + to_remove->GetTravelTime()); delete to_remove; } @@ -601,26 +608,29 @@ void OrderList::DebugCheckSanity() const VehicleOrderID check_num_manual_orders = 0; uint check_num_vehicles = 0; Ticks check_timetable_duration = 0; + Ticks check_total_duration = 0; DEBUG(misc, 6, "Checking OrderList %hu for sanity...", this->index); for (const Order *o = this->first; o != NULL; o = o->next) { ++check_num_orders; if (!o->IsType(OT_IMPLICIT)) ++check_num_manual_orders; - check_timetable_duration += o->wait_time + o->travel_time; + check_timetable_duration += o->GetTimetabledWait() + o->GetTimetabledTravel(); + check_total_duration += o->GetWaitTime() + o->GetTravelTime(); } assert(this->num_orders == check_num_orders); assert(this->num_manual_orders == check_num_manual_orders); assert(this->timetable_duration == check_timetable_duration); + assert(this->total_duration == check_total_duration); for (const Vehicle *v = this->first_shared; v != NULL; v = v->NextShared()) { ++check_num_vehicles; assert(v->orders.list == this); } assert(this->num_vehicles == check_num_vehicles); - DEBUG(misc, 6, "... detected %u orders (%u manual), %u vehicles, %i ticks", + DEBUG(misc, 6, "... detected %u orders (%u manual), %u vehicles, %i timetabled, %i total", (uint)this->num_orders, (uint)this->num_manual_orders, - this->num_vehicles, this->timetable_duration); + this->num_vehicles, this->timetable_duration, this->total_duration); } /** @@ -648,6 +658,7 @@ static void DeleteOrderWarnings(const Vehicle *v) DeleteVehicleNews(v->index, STR_NEWS_VEHICLE_HAS_VOID_ORDER); DeleteVehicleNews(v->index, STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY); DeleteVehicleNews(v->index, STR_NEWS_VEHICLE_HAS_INVALID_ENTRY); + DeleteVehicleNews(v->index, STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY); } /** @@ -1761,17 +1772,16 @@ void CheckOrders(const Vehicle *v) /* Only check every 20 days, so that we don't flood the message log */ if (v->owner == _local_company && v->day_counter % 20 == 0) { - int n_st, problem_type = -1; const Order *order; - int message = 0; + StringID message = INVALID_STRING_ID; /* Check the order list */ - n_st = 0; + int n_st = 0; FOR_VEHICLE_ORDERS(v, order) { /* Dummy order? */ if (order->IsType(OT_DUMMY)) { - problem_type = 1; + message = STR_NEWS_VEHICLE_HAS_VOID_ORDER; break; } /* Does station have a load-bay for this vehicle? */ @@ -1779,7 +1789,16 @@ void CheckOrders(const Vehicle *v) const Station *st = Station::Get(order->GetDestination()); n_st++; - if (!CanVehicleUseStation(v, st)) problem_type = 3; + if (!CanVehicleUseStation(v, st)) { + message = STR_NEWS_VEHICLE_HAS_INVALID_ENTRY; + } else if (v->type == VEH_AIRCRAFT && + (AircraftVehInfo(v->engine_type)->subtype & AIR_FAST) && + (st->airport.GetFTA()->flags & AirportFTAClass::SHORT_STRIP) && + _settings_game.vehicle.plane_crashes != 0 && + !_cheats.no_jetcrash.value && + message == INVALID_STRING_ID) { + message = STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY; + } } } @@ -1788,22 +1807,19 @@ void CheckOrders(const Vehicle *v) const Order *last = v->GetLastOrder(); if (v->orders.list->GetFirstOrder()->Equals(*last)) { - problem_type = 2; + message = STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY; } } /* Do we only have 1 station in our order list? */ - if (n_st < 2 && problem_type == -1) problem_type = 0; + if (n_st < 2 && message == INVALID_STRING_ID) message = STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS; #ifndef NDEBUG if (v->orders.list != NULL) v->orders.list->DebugCheckSanity(); #endif /* We don't have a problem */ - if (problem_type < 0) return; - - message = STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS + problem_type; - //DEBUG(misc, 3, "Triggered News Item for vehicle %d", v->index); + if (message == INVALID_STRING_ID) return; SetDParam(0, v->index); AddVehicleAdviceNewsItem(message, v->index); @@ -2079,7 +2095,7 @@ bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth, bool UpdateVehicleTimetable(v, false); v->cur_implicit_order_index = v->cur_real_order_index = next_order; v->UpdateRealOrderIndex(); - v->current_order_time += v->GetOrder(v->cur_real_order_index)->travel_time; + v->current_order_time += v->GetOrder(v->cur_real_order_index)->GetTimetabledTravel(); /* Disable creation of implicit orders. * When inserting them we do not know that we would have to make the conditional orders point to them. */ diff --git a/src/order_gui.cpp b/src/order_gui.cpp index e62cf595f9..e69f229f02 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -32,6 +32,8 @@ #include "widgets/order_widget.h" +#include "safeguards.h" + /** Order load types that could be given to station orders. */ static const StringID _station_load_types[][5][5] = { @@ -264,9 +266,9 @@ void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int if (timetable) { SetDParam(3, STR_EMPTY); - if (order->wait_time > 0) { - SetDParam(5, STR_TIMETABLE_STAY_FOR); - SetTimetableParams(6, 7, order->wait_time); + if (order->GetWaitTime() > 0) { + SetDParam(5, order->IsWaitTimetabled() ? STR_TIMETABLE_STAY_FOR : STR_TIMETABLE_STAY_FOR_ESTIMATED); + SetTimetableParams(6, 7, order->GetWaitTime()); } } else { SetDParam(3, (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) ? STR_EMPTY : _station_load_types[order->IsRefit()][unload][load]); @@ -332,9 +334,9 @@ void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int SetDParam(4, value); } - if (timetable && order->wait_time > 0) { - SetDParam(5, STR_TIMETABLE_AND_TRAVEL_FOR); - SetTimetableParams(6, 7, order->wait_time); + if (timetable && order->GetWaitTime() > 0) { + SetDParam(5, order->IsWaitTimetabled() ? STR_TIMETABLE_AND_TRAVEL_FOR : STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED); + SetTimetableParams(6, 7, order->GetWaitTime()); } else { SetDParam(5, STR_EMPTY); } diff --git a/src/os/macosx/crashlog_osx.cpp b/src/os/macosx/crashlog_osx.cpp index 109b3e5fe2..05816c67e9 100644 --- a/src/os/macosx/crashlog_osx.cpp +++ b/src/os/macosx/crashlog_osx.cpp @@ -22,6 +22,8 @@ #include #include +#include "../../safeguards.h" + /* Macro testing a stack address for valid alignment. */ #if defined(__i386__) diff --git a/src/os/macosx/macos.mm b/src/os/macosx/macos.mm index 1b1a1d5a7a..8d34cda58a 100644 --- a/src/os/macosx/macos.mm +++ b/src/os/macosx/macos.mm @@ -155,11 +155,11 @@ const char *GetCurrentLocale(const char *) /** * Return the contents of the clipboard (COCOA). * - * @param buffer Clipboard content.. - * @param buff_len Length of the clipboard content.. + * @param buffer Clipboard content. + * @param last The pointer to the last element of the destination buffer * @return Whether clipboard is empty or not. */ -bool GetClipboardContents(char *buffer, size_t buff_len) +bool GetClipboardContents(char *buffer, const char *last) { NSPasteboard *pb = [ NSPasteboard generalPasteboard ]; NSArray *types = [ NSArray arrayWithObject:NSStringPboardType ]; @@ -171,7 +171,7 @@ bool GetClipboardContents(char *buffer, size_t buff_len) NSString *string = [ pb stringForType:NSStringPboardType ]; if (string == nil || [ string length ] == 0) return false; - ttd_strlcpy(buffer, [ string UTF8String ], buff_len); + strecpy(buffer, [ string UTF8String ], last); return true; } diff --git a/src/os/macosx/splash.cpp b/src/os/macosx/splash.cpp index bc1cd2dbf3..eadb785101 100644 --- a/src/os/macosx/splash.cpp +++ b/src/os/macosx/splash.cpp @@ -23,6 +23,8 @@ #include +#include "../../safeguards.h" + /** * Handle pnglib error. * diff --git a/src/os/os2/os2.cpp b/src/os/os2/os2.cpp index 82ba19924f..e62b968509 100644 --- a/src/os/os2/os2.cpp +++ b/src/os/os2/os2.cpp @@ -30,6 +30,8 @@ #include #endif +#include "../../safeguards.h" + #define INCL_WIN #define INCL_WINCLIPBOARD @@ -175,7 +177,7 @@ int CDECL main(int argc, char *argv[]) return openttd_main(argc, argv); } -bool GetClipboardContents(char *buffer, size_t buff_len) +bool GetClipboardContents(char *buffer, const char *last) { /* XXX -- Currently no clipboard support implemented with GCC */ #ifndef __INNOTEK_LIBC__ @@ -187,7 +189,7 @@ bool GetClipboardContents(char *buffer, size_t buff_len) if (text != NULL) { - ttd_strlcpy(buffer, text, buff_len); + strecpy(buffer, text, last); WinCloseClipbrd(hab); return true; } diff --git a/src/os/unix/crashlog_unix.cpp b/src/os/unix/crashlog_unix.cpp index b417bf2102..c0663a6b06 100644 --- a/src/os/unix/crashlog_unix.cpp +++ b/src/os/unix/crashlog_unix.cpp @@ -31,6 +31,8 @@ #include #endif +#include "../../safeguards.h" + /** * Unix implementation for the crash logger. */ diff --git a/src/os/unix/unix.cpp b/src/os/unix/unix.cpp index 6899b16f35..ac1d406d0c 100644 --- a/src/os/unix/unix.cpp +++ b/src/os/unix/unix.cpp @@ -15,6 +15,7 @@ #include "../../crashlog.h" #include "../../core/random_func.hpp" #include "../../debug.h" +#include "../../string_func.h" #include @@ -63,6 +64,8 @@ ULONG __stack = (1024*1024)*2; // maybe not that much is needed actually ;) #endif #endif +#include "../../safeguards.h" + bool FiosIsRoot(const char *path) { #if !defined(__MORPHOS__) && !defined(__AMIGAOS__) @@ -105,13 +108,13 @@ bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb #if defined(__MORPHOS__) || defined(__AMIGAOS__) /* On MorphOS or AmigaOS paths look like: "Volume:directory/subdirectory" */ if (FiosIsRoot(path)) { - res = snprintf(filename, lengthof(filename), "%s:%s", path, ent->d_name); + res = seprintf(filename, lastof(filename), "%s:%s", path, ent->d_name); } else // XXX - only next line! #else assert(path[strlen(path) - 1] == PATHSEPCHAR); if (strlen(path) > 2) assert(path[strlen(path) - 2] != PATHSEPCHAR); #endif - res = snprintf(filename, lengthof(filename), "%s%s", path, ent->d_name); + res = seprintf(filename, lastof(filename), "%s%s", path, ent->d_name); /* Could we fully concatenate the path and filename? */ if (res >= (int)lengthof(filename) || res < 0) return false; @@ -287,7 +290,7 @@ int CDECL main(int argc, char *argv[]) } #ifndef WITH_COCOA -bool GetClipboardContents(char *buffer, size_t buff_len) +bool GetClipboardContents(char *buffer, const char *last) { return false; } @@ -342,9 +345,18 @@ uint GetCPUCoreCount() int ncpu = 0; size_t len = sizeof(ncpu); +#ifdef OPENBSD + int name[2]; + name[0] = CTL_HW; + name[1] = HW_NCPU; + if (sysctl(name, 2, &ncpu, &len, NULL, 0) < 0) { + ncpu = 0; + } +#else if (sysctlbyname("hw.availcpu", &ncpu, &len, NULL, 0) < 0) { sysctlbyname("hw.ncpu", &ncpu, &len, NULL, 0); } +#endif /* #ifdef OPENBSD */ if (ncpu > 0) count = ncpu; #elif defined(_SC_NPROCESSORS_ONLN) diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index 41f83b60ba..6e28cdba62 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -24,6 +24,8 @@ #include #include +#include "../../safeguards.h" + static const uint MAX_SYMBOL_LEN = 512; static const uint MAX_FRAMES = 64; @@ -521,7 +523,7 @@ static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep) /* Close any possible log files */ CloseConsoleLogIfActive(); - if ((_video_driver == NULL || _video_driver->HasGUI()) && _safe_esp != NULL) { + if ((VideoDriver::GetInstance() == NULL || VideoDriver::GetInstance()->HasGUI()) && _safe_esp != NULL) { #ifdef _M_AMD64 ep->ContextRecord->Rip = (DWORD64)ShowCrashlogWindow; ep->ContextRecord->Rsp = (DWORD64)_safe_esp; @@ -611,6 +613,10 @@ static void SetWndSize(HWND wnd, int mode) } } +/* When TCHAR is char, then _sntprintf becomes snprintf. When TCHAR is wchar it doesn't. Likewise for strcat. */ +#undef snprintf +#undef strcat + static INT_PTR CALLBACK CrashDialogFunc(HWND wnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { diff --git a/src/os/windows/win32.cpp b/src/os/windows/win32.cpp index d7ea4ab356..3d5f0ebde5 100644 --- a/src/os/windows/win32.cpp +++ b/src/os/windows/win32.cpp @@ -19,7 +19,7 @@ #include #include #include /* SHGetFolderPath */ -#include +#include #include "win32.h" #include "../../core/alloc_func.hpp" #include "../../openttd.h" @@ -29,6 +29,11 @@ #include #include +/* Due to TCHAR, strncat and strncpy have to remain (for a while). */ +#include "../../safeguards.h" +#undef strncat +#undef strncpy + static bool _has_console; static bool _cursor_disable = true; static bool _cursor_visible = true; @@ -210,7 +215,7 @@ void FiosGetDrives() FiosItem *fios = _fios_items.Append(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; - snprintf(fios->name, lengthof(fios->name), PATHSEP ""); + seprintf(fios->name, lastof(fios->name), PATHSEP ""); strecpy(fios->title, fios->name, lastof(fios->title)); #else TCHAR drives[256]; @@ -221,7 +226,7 @@ void FiosGetDrives() FiosItem *fios = _fios_items.Append(); fios->type = FIOS_TYPE_DRIVE; fios->mtime = 0; - snprintf(fios->name, lengthof(fios->name), "%c:", s[0] & 0xFF); + seprintf(fios->name, lastof(fios->name), "%c:", s[0] & 0xFF); strecpy(fios->title, fios->name, lastof(fios->title)); while (*s++ != '\0') { /* Nothing */ } } @@ -433,7 +438,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi /* Convert the command line to UTF-8. We need a dedicated buffer * for this because argv[] points into this buffer and this needs to * be available between subsequent calls to FS2OTTD(). */ - char *cmdline = strdup(FS2OTTD(GetCommandLine())); + char *cmdline = stredup(FS2OTTD(GetCommandLine())); #if defined(_DEBUG) CreateConsole(); @@ -493,20 +498,20 @@ void DetermineBasePaths(const char *exe) #ifdef WITH_PERSONAL_DIR if (SUCCEEDED(OTTDSHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, path))) { strecpy(tmp, FS2OTTD(path), lastof(tmp)); - AppendPathSeparator(tmp, MAX_PATH); - ttd_strlcat(tmp, PERSONAL_DIR, MAX_PATH); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_PERSONAL_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + strecat(tmp, PERSONAL_DIR, lastof(tmp)); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_PERSONAL_DIR] = stredup(tmp); } else { _searchpaths[SP_PERSONAL_DIR] = NULL; } if (SUCCEEDED(OTTDSHGetFolderPath(NULL, CSIDL_COMMON_DOCUMENTS, NULL, SHGFP_TYPE_CURRENT, path))) { strecpy(tmp, FS2OTTD(path), lastof(tmp)); - AppendPathSeparator(tmp, MAX_PATH); - ttd_strlcat(tmp, PERSONAL_DIR, MAX_PATH); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_SHARED_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + strecat(tmp, PERSONAL_DIR, lastof(tmp)); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_SHARED_DIR] = stredup(tmp); } else { _searchpaths[SP_SHARED_DIR] = NULL; } @@ -517,8 +522,8 @@ void DetermineBasePaths(const char *exe) /* Get the path to working directory of OpenTTD */ getcwd(tmp, lengthof(tmp)); - AppendPathSeparator(tmp, MAX_PATH); - _searchpaths[SP_WORKING_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_WORKING_DIR] = stredup(tmp); if (!GetModuleFileName(NULL, path, lengthof(path))) { DEBUG(misc, 0, "GetModuleFileName failed (%lu)\n", GetLastError()); @@ -533,7 +538,7 @@ void DetermineBasePaths(const char *exe) strecpy(tmp, convert_from_fs(exec_dir, tmp, lengthof(tmp)), lastof(tmp)); char *s = strrchr(tmp, PATHSEPCHAR); *(s + 1) = '\0'; - _searchpaths[SP_BINARY_DIR] = strdup(tmp); + _searchpaths[SP_BINARY_DIR] = stredup(tmp); } } @@ -542,7 +547,7 @@ void DetermineBasePaths(const char *exe) } -bool GetClipboardContents(char *buffer, size_t buff_len) +bool GetClipboardContents(char *buffer, const char *last) { HGLOBAL cbuf; const char *ptr; @@ -552,7 +557,7 @@ bool GetClipboardContents(char *buffer, size_t buff_len) cbuf = GetClipboardData(CF_UNICODETEXT); ptr = (const char*)GlobalLock(cbuf); - int out_len = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)ptr, -1, buffer, (int)buff_len, NULL, NULL); + int out_len = WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)ptr, -1, buffer, (last - buffer) + 1, NULL, NULL); GlobalUnlock(cbuf); CloseClipboard(); @@ -563,7 +568,7 @@ bool GetClipboardContents(char *buffer, size_t buff_len) cbuf = GetClipboardData(CF_TEXT); ptr = (const char*)GlobalLock(cbuf); - ttd_strlcpy(buffer, FS2OTTD(ptr), buff_len); + strecpy(buffer, FS2OTTD(ptr), last); GlobalUnlock(cbuf); CloseClipboard(); diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp index 52d0d2d7e7..71ae041b1d 100644 --- a/src/osk_gui.cpp +++ b/src/osk_gui.cpp @@ -23,6 +23,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + char _keyboard_opt[2][OSK_KEYBOARD_ENTRIES * 4 + 1]; static WChar _keyboard[2][OSK_KEYBOARD_ENTRIES]; @@ -57,7 +59,7 @@ struct OskWindow : public Window { this->querystrings[WID_OSK_TEXT] = this->qs; /* make a copy in case we need to reset later */ - this->orig_str_buf = strdup(this->qs->text.buf); + this->orig_str_buf = stredup(this->qs->text.buf); this->InitNested(0); this->SetFocusedWidget(WID_OSK_TEXT); @@ -206,7 +208,7 @@ struct OskWindow : public Window { virtual void OnFocusLost() { - _video_driver->EditBoxLostFocus(); + VideoDriver::GetInstance()->EditBoxLostFocus(); delete this; } }; @@ -429,7 +431,7 @@ void UpdateOSKOriginalText(const Window *parent, int button) if (osk == NULL || osk->parent != parent || osk->text_btn != button) return; free(osk->orig_str_buf); - osk->orig_str_buf = strdup(osk->qs->text.buf); + osk->orig_str_buf = stredup(osk->qs->text.buf); osk->SetDirty(); } diff --git a/src/pathfinder/npf/aystar.cpp b/src/pathfinder/npf/aystar.cpp index 153ffa8c15..9ef2bca479 100644 --- a/src/pathfinder/npf/aystar.cpp +++ b/src/pathfinder/npf/aystar.cpp @@ -27,6 +27,8 @@ #include "../../core/alloc_func.hpp" #include "aystar.h" +#include "../../safeguards.h" + /** * This looks in the hash whether a node exists in the closed list. * @param node Node to search. diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index 5c4ccb3ccb..bb705e5f4a 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -19,6 +19,8 @@ #include "../follow_track.hpp" #include "aystar.h" +#include "../../safeguards.h" + static const uint NPF_HASH_BITS = 12; ///< The size of the hash used in pathfinding. Just changing this value should be sufficient to change the hash size. Should be an even value. /* Do no change below values */ static const uint NPF_HASH_SIZE = 1 << NPF_HASH_BITS; diff --git a/src/pathfinder/npf/queue.cpp b/src/pathfinder/npf/queue.cpp index 45540c1b61..2afb413918 100644 --- a/src/pathfinder/npf/queue.cpp +++ b/src/pathfinder/npf/queue.cpp @@ -13,6 +13,8 @@ #include "../../core/alloc_func.hpp" #include "queue.h" +#include "../../safeguards.h" + /* * Binary Heap diff --git a/src/pathfinder/opf/opf_ship.cpp b/src/pathfinder/opf/opf_ship.cpp index 850577de14..023c6a4a09 100644 --- a/src/pathfinder/opf/opf_ship.cpp +++ b/src/pathfinder/opf/opf_ship.cpp @@ -15,6 +15,8 @@ #include "../../ship.h" #include "../../core/random_func.hpp" +#include "../../safeguards.h" + struct RememberData { uint16 cur_length; byte depth; diff --git a/src/pathfinder/yapf/yapf_rail.cpp b/src/pathfinder/yapf/yapf_rail.cpp index f66140046a..dea4e28c1b 100644 --- a/src/pathfinder/yapf/yapf_rail.cpp +++ b/src/pathfinder/yapf/yapf_rail.cpp @@ -19,6 +19,8 @@ #include "../../viewport_func.h" #include "../../newgrf_station.h" +#include "../../safeguards.h" + #define DEBUG_YAPF_CACHE 0 #if DEBUG_YAPF_CACHE diff --git a/src/pathfinder/yapf/yapf_road.cpp b/src/pathfinder/yapf/yapf_road.cpp index 82493241f5..711889b569 100644 --- a/src/pathfinder/yapf/yapf_road.cpp +++ b/src/pathfinder/yapf/yapf_road.cpp @@ -14,6 +14,8 @@ #include "yapf_node_road.hpp" #include "../../roadstop_base.h" +#include "../../safeguards.h" + template class CYapfCostRoadT diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp index 5e1cd27e75..a01444a9ec 100644 --- a/src/pathfinder/yapf/yapf_ship.cpp +++ b/src/pathfinder/yapf/yapf_ship.cpp @@ -15,6 +15,8 @@ #include "yapf.hpp" #include "yapf_node_ship.hpp" +#include "../../safeguards.h" + /** Node Follower module of YAPF for ships */ template class CYapfFollowShipT diff --git a/src/pbs.cpp b/src/pbs.cpp index 55569c0596..76cb3b9d63 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -15,6 +15,8 @@ #include "newgrf_station.h" #include "pathfinder/follow_track.hpp" +#include "safeguards.h" + /** * Get the reserved trackbits for any tile, regardless of type. * @param t the tile diff --git a/src/progress.cpp b/src/progress.cpp index 343893ceee..b498be109b 100644 --- a/src/progress.cpp +++ b/src/progress.cpp @@ -12,6 +12,8 @@ #include "stdafx.h" #include "thread/thread.h" +#include "safeguards.h" + /** Are we in a modal progress or not? */ bool _in_modal_progress = false; bool _first_in_modal_loop = false; diff --git a/src/rail.cpp b/src/rail.cpp index dd34cb6530..79598ec4a1 100644 --- a/src/rail.cpp +++ b/src/rail.cpp @@ -17,6 +17,8 @@ #include "company_base.h" #include "engine_base.h" +#include "safeguards.h" + /* XXX: Below 3 tables store duplicate data. Maybe remove some? */ /* Maps a trackdir to the bit that stores its status in the map arrays, in the * direction along with the trackdir */ diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 4dd4659bb6..c4b2b9f432 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -38,6 +38,8 @@ #include "table/railtypes.h" #include "table/track_land.h" +#include "safeguards.h" + /** Helper type for lists/vectors of trains */ typedef SmallVector TrainList; diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 082d169314..23158e9d17 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -40,6 +40,8 @@ #include "widgets/rail_widget.h" +#include "safeguards.h" + static RailType _cur_railtype; ///< Rail type of the current build-rail toolbar. static bool _remove_button_clicked; ///< Flag whether 'remove' toggle-button is currently enabled diff --git a/src/rev.cpp.in b/src/rev.cpp.in index f2c5d505d4..46508dd8b6 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -13,6 +13,8 @@ #include "core/bitmath_func.hpp" #include "rev.h" +#include "safeguards.h" + /** * Is this version of OpenTTD a release version? * @return True if it is a release version. diff --git a/src/road.cpp b/src/road.cpp index c005d56c1b..57c5da5d41 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -20,6 +20,8 @@ #include "date_func.h" #include "landscape.h" +#include "safeguards.h" + /** * Return if the tile is a valid tile for a crossing. * diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 7931fa965b..d20bdcfb46 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -38,6 +38,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Verify whether a road vehicle is available. * @return \c true if at least one road vehicle is available, \c false if not diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 8058ed5668..5d321b91aa 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -33,6 +33,8 @@ #include "table/strings.h" +#include "safeguards.h" + static void ShowRVStationPicker(Window *parent, RoadStopType rs); static void ShowRoadDepotPicker(Window *parent); diff --git a/src/road_map.cpp b/src/road_map.cpp index 2c24582ee7..4984117bab 100644 --- a/src/road_map.cpp +++ b/src/road_map.cpp @@ -13,6 +13,8 @@ #include "station_map.h" #include "tunnelbridge_map.h" +#include "safeguards.h" + /** * Returns the RoadBits on an arbitrary tile diff --git a/src/roadstop.cpp b/src/roadstop.cpp index 193e915d21..ca049979ca 100644 --- a/src/roadstop.cpp +++ b/src/roadstop.cpp @@ -16,6 +16,8 @@ #include "station_base.h" #include "vehicle_func.h" +#include "safeguards.h" + /** The pool of roadstops. */ RoadStopPool _roadstop_pool("RoadStop"); INSTANTIATE_POOL_METHODS(RoadStop) diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index ae15a88a5d..b3310af107 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -38,6 +38,8 @@ #include "table/strings.h" +#include "safeguards.h" + static const uint16 _roadveh_images[] = { 0xCD4, 0xCDC, 0xCE4, 0xCEC, 0xCF4, 0xCFC, 0xD0C, 0xD14, 0xD24, 0xD1C, 0xD2C, 0xD04, 0xD1C, 0xD24, 0xD6C, 0xD74, @@ -458,7 +460,7 @@ inline int RoadVehicle::GetCurrentMaxSpeed() const } } - return min(max_speed, this->current_order.max_speed * 2); + return min(max_speed, this->current_order.GetMaxSpeed() * 2); } /** diff --git a/src/roadveh_gui.cpp b/src/roadveh_gui.cpp index bf837bbad3..7f3e7bbbca 100644 --- a/src/roadveh_gui.cpp +++ b/src/roadveh_gui.cpp @@ -18,6 +18,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Draw the details for the given vehicle at the given position * diff --git a/src/safeguards.h b/src/safeguards.h new file mode 100644 index 0000000000..12d704879c --- /dev/null +++ b/src/safeguards.h @@ -0,0 +1,59 @@ +/* $Id$ */ + +/* + * 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 . + */ + +/** + * @file safeguards.h A number of safeguards to prevent using unsafe methods. + * + * Unsafe methods are, for example, strndup and strncpy because they may leave the + * string without a null termination, but also strdup and strndup because they can + * return NULL and then all strdups would need to be guarded against that instead + * of using the current MallocT/ReallocT/CallocT technique of just giving the user + * an error that too much memory was used instead of spreading that code though + * the whole code base. + */ + +#ifndef SAFEGUARDS_H +#define SAFEGUARDS_H + +/* Use MallocT instead. */ +#define malloc SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use MallocT instead. */ +#define calloc SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use ReallocT instead. */ +#define realloc SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use stredup instead. */ +#define strdup SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define strndup SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use strecpy instead. */ +#define strcpy SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define strncpy SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use strecat instead. */ +#define strcat SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define strncat SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use seprintf instead. */ +#define sprintf SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define snprintf SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use vseprintf instead. */ +#define vsprintf SAFEGUARD_DO_NOT_USE_THIS_METHOD +#define vsnprintf SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* Use fgets instead. */ +#define gets SAFEGUARD_DO_NOT_USE_THIS_METHOD + +/* No clear replacement. */ +#define strtok SAFEGUARD_DO_NOT_USE_THIS_METHOD + +#endif /* SAFEGUARDS_H */ diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 87754d6b52..8ecd27b49c 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -58,6 +58,8 @@ #include +#include "../safeguards.h" + extern Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY); /** @@ -1597,7 +1599,7 @@ bool AfterLoadGame() FOR_ALL_STATIONS(st) { for (CargoID c = 0; c < NUM_CARGO; c++) { st->goods[c].last_speed = 0; - if (st->goods[c].cargo.AvailableCount() != 0) SetBit(st->goods[c].acceptance_pickup, GoodsEntry::GES_PICKUP); + if (st->goods[c].cargo.AvailableCount() != 0) SetBit(st->goods[c].status, GoodsEntry::GES_RATING); } } } diff --git a/src/saveload/ai_sl.cpp b/src/saveload/ai_sl.cpp index 51d0a50b8c..e8b5339c0d 100644 --- a/src/saveload/ai_sl.cpp +++ b/src/saveload/ai_sl.cpp @@ -20,6 +20,8 @@ #include "../network/network.h" #include "../ai/ai_instance.hpp" +#include "../safeguards.h" + static char _ai_saveload_name[64]; static int _ai_saveload_version; static char _ai_saveload_settings[1024]; @@ -39,7 +41,7 @@ static void SaveReal_AIPL(int *index_ptr) AIConfig *config = AIConfig::GetConfig(index); if (config->HasScript()) { - ttd_strlcpy(_ai_saveload_name, config->GetName(), lengthof(_ai_saveload_name)); + strecpy(_ai_saveload_name, config->GetName(), lastof(_ai_saveload_name)); _ai_saveload_version = config->GetVersion(); } else { /* No AI is configured for this so store an empty string as name. */ @@ -49,7 +51,7 @@ static void SaveReal_AIPL(int *index_ptr) _ai_saveload_is_random = config->IsRandom(); _ai_saveload_settings[0] = '\0'; - config->SettingsToString(_ai_saveload_settings, lengthof(_ai_saveload_settings)); + config->SettingsToString(_ai_saveload_settings, lastof(_ai_saveload_settings)); SlObject(NULL, _ai_company); /* If the AI was active, store his data too */ diff --git a/src/saveload/airport_sl.cpp b/src/saveload/airport_sl.cpp index 00a4b2b012..1172d2593e 100644 --- a/src/saveload/airport_sl.cpp +++ b/src/saveload/airport_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" #include "newgrf_sl.h" +#include "../safeguards.h" + static void Save_APID() { Save_NewGRFMapping(_airport_mngr); diff --git a/src/saveload/animated_tile_sl.cpp b/src/saveload/animated_tile_sl.cpp index 2ccd42cb53..3fc5f61753 100644 --- a/src/saveload/animated_tile_sl.cpp +++ b/src/saveload/animated_tile_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + extern TileIndex *_animated_tile_list; extern uint _animated_tile_count; extern uint _animated_tile_allocated; diff --git a/src/saveload/autoreplace_sl.cpp b/src/saveload/autoreplace_sl.cpp index 0cb9cca8d1..99e945503d 100644 --- a/src/saveload/autoreplace_sl.cpp +++ b/src/saveload/autoreplace_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + static const SaveLoad _engine_renew_desc[] = { SLE_VAR(EngineRenew, from, SLE_UINT16), SLE_VAR(EngineRenew, to, SLE_UINT16), diff --git a/src/saveload/cargomonitor_sl.cpp b/src/saveload/cargomonitor_sl.cpp index 2188470a22..98ad95f090 100644 --- a/src/saveload/cargomonitor_sl.cpp +++ b/src/saveload/cargomonitor_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** Temporary storage of cargo monitoring data for loading or saving it. */ struct TempStorage { CargoMonitorID number; diff --git a/src/saveload/cargopacket_sl.cpp b/src/saveload/cargopacket_sl.cpp index fbc38cc852..dc8d4145e3 100644 --- a/src/saveload/cargopacket_sl.cpp +++ b/src/saveload/cargopacket_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** * Savegame conversion for cargopackets. */ diff --git a/src/saveload/cheat_sl.cpp b/src/saveload/cheat_sl.cpp index aa5648a888..4616b7e852 100644 --- a/src/saveload/cheat_sl.cpp +++ b/src/saveload/cheat_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** * Save the cheat values. */ diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 5878f31ead..6ac22c2685 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "../safeguards.h" + /** * Converts an old company manager's face format to the new company manager's face format * @@ -256,7 +258,7 @@ static const SaveLoad _company_desc[] = { SLE_VAR(CompanyProperties, colour, SLE_UINT8), SLE_VAR(CompanyProperties, money_fraction, SLE_UINT8), - SLE_CONDVAR(CompanyProperties, avail_railtypes, SLE_UINT8, 0, 57), + SLE_CONDVAR(CompanyProperties, avail_railtypes, SLE_VAR_I32 | SLE_FILE_I8, 0, 57), SLE_VAR(CompanyProperties, block_preview, SLE_UINT8), SLE_CONDNULL(2, 0, 93), ///< cargo_types diff --git a/src/saveload/depot_sl.cpp b/src/saveload/depot_sl.cpp index 0d62d74cdf..861a541730 100644 --- a/src/saveload/depot_sl.cpp +++ b/src/saveload/depot_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + static TownID _town_index; static const SaveLoad _depot_desc[] = { diff --git a/src/saveload/economy_sl.cpp b/src/saveload/economy_sl.cpp index 86605bdfb7..dabf120fca 100644 --- a/src/saveload/economy_sl.cpp +++ b/src/saveload/economy_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** Prices in pre 126 savegames */ static void Load_PRIC() { diff --git a/src/saveload/engine_sl.cpp b/src/saveload/engine_sl.cpp index d02264cd6b..07bad4606d 100644 --- a/src/saveload/engine_sl.cpp +++ b/src/saveload/engine_sl.cpp @@ -12,8 +12,11 @@ #include "../stdafx.h" #include "saveload_internal.h" #include "../engine_base.h" +#include "../string_func.h" #include +#include "../safeguards.h" + static const SaveLoad _engine_desc[] = { SLE_CONDVAR(Engine, intro_date, SLE_FILE_U16 | SLE_VAR_I32, 0, 30), SLE_CONDVAR(Engine, intro_date, SLE_INT32, 31, SL_MAX_VERSION), @@ -105,7 +108,7 @@ void CopyTempEngineData() e->preview_company = se->preview_company; e->preview_wait = se->preview_wait; e->company_avail = se->company_avail; - if (se->name != NULL) e->name = strdup(se->name); + if (se->name != NULL) e->name = stredup(se->name); } /* Get rid of temporary data */ diff --git a/src/saveload/game_sl.cpp b/src/saveload/game_sl.cpp index b2b263b131..a3273114c7 100644 --- a/src/saveload/game_sl.cpp +++ b/src/saveload/game_sl.cpp @@ -20,6 +20,8 @@ #include "../game/game_instance.hpp" #include "../game/game_text.hpp" +#include "../safeguards.h" + static char _game_saveload_name[64]; static int _game_saveload_version; static char _game_saveload_settings[1024]; @@ -38,7 +40,7 @@ static void SaveReal_GSDT(int *index_ptr) GameConfig *config = GameConfig::GetConfig(); if (config->HasScript()) { - ttd_strlcpy(_game_saveload_name, config->GetName(), lengthof(_game_saveload_name)); + strecpy(_game_saveload_name, config->GetName(), lastof(_game_saveload_name)); _game_saveload_version = config->GetVersion(); } else { /* No GameScript is configured for this so store an empty string as name. */ @@ -48,7 +50,7 @@ static void SaveReal_GSDT(int *index_ptr) _game_saveload_is_random = config->IsRandom(); _game_saveload_settings[0] = '\0'; - config->SettingsToString(_game_saveload_settings, lengthof(_game_saveload_settings)); + config->SettingsToString(_game_saveload_settings, lastof(_game_saveload_settings)); SlObject(NULL, _game_script); Game::Save(); @@ -151,7 +153,7 @@ static void Load_GSTR() LanguageStrings *ls = new LanguageStrings(_game_saveload_string != NULL ? _game_saveload_string : ""); for (uint i = 0; i < _game_saveload_strings; i++) { SlObject(NULL, _game_language_string); - *ls->lines.Append() = strdup(_game_saveload_string != NULL ? _game_saveload_string : ""); + *ls->lines.Append() = stredup(_game_saveload_string != NULL ? _game_saveload_string : ""); } *_current_data->raw_strings.Append() = ls; diff --git a/src/saveload/gamelog_sl.cpp b/src/saveload/gamelog_sl.cpp index f25a8d1ebd..f818eca137 100644 --- a/src/saveload/gamelog_sl.cpp +++ b/src/saveload/gamelog_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + static const SaveLoad _glog_action_desc[] = { SLE_VAR(LoggedAction, tick, SLE_UINT16), SLE_END() diff --git a/src/saveload/goal_sl.cpp b/src/saveload/goal_sl.cpp index 1c260503e8..4d1441787d 100644 --- a/src/saveload/goal_sl.cpp +++ b/src/saveload/goal_sl.cpp @@ -14,9 +14,11 @@ #include "saveload.h" +#include "../safeguards.h" + static const SaveLoad _goals_desc[] = { - SLE_VAR(Goal, company, SLE_UINT16), - SLE_VAR(Goal, type, SLE_UINT16), + SLE_VAR(Goal, company, SLE_FILE_U16 | SLE_VAR_U8), + SLE_VAR(Goal, type, SLE_FILE_U16 | SLE_VAR_U8), SLE_VAR(Goal, dst, SLE_UINT32), SLE_STR(Goal, text, SLE_STR | SLF_ALLOW_CONTROL, 0), SLE_CONDSTR(Goal, progress, SLE_STR | SLF_ALLOW_CONTROL, 0, 182, SL_MAX_VERSION), diff --git a/src/saveload/group_sl.cpp b/src/saveload/group_sl.cpp index 1e006a218b..93734f80f6 100644 --- a/src/saveload/group_sl.cpp +++ b/src/saveload/group_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + static const SaveLoad _group_desc[] = { SLE_CONDVAR(Group, name, SLE_NAME, 0, 83), SLE_CONDSTR(Group, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION), @@ -21,6 +23,7 @@ static const SaveLoad _group_desc[] = { SLE_VAR(Group, owner, SLE_UINT8), SLE_VAR(Group, vehicle_type, SLE_UINT8), SLE_VAR(Group, replace_protection, SLE_BOOL), + SLE_CONDVAR(Group, parent, SLE_UINT16, 189, SL_MAX_VERSION), SLE_END() }; @@ -42,6 +45,8 @@ static void Load_GRPS() while ((index = SlIterateArray()) != -1) { Group *g = new (index) Group(); SlObject(g, _group_desc); + + if (IsSavegameVersionBefore(189)) g->parent = INVALID_GROUP; } } diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp index 469548f231..658cfd2bdd 100644 --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" #include "newgrf_sl.h" +#include "../safeguards.h" + static OldPersistentStorage _old_ind_persistent_storage; static const SaveLoad _industry_desc[] = { diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp index 5cc77af0ce..3b898a3b87 100644 --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + static SmallVector _railtype_list; /** diff --git a/src/saveload/linkgraph_sl.cpp b/src/saveload/linkgraph_sl.cpp index f0dcb1dd45..4988eb2ed7 100644 --- a/src/saveload/linkgraph_sl.cpp +++ b/src/saveload/linkgraph_sl.cpp @@ -16,12 +16,14 @@ #include "../settings_internal.h" #include "saveload.h" +#include "../safeguards.h" + typedef LinkGraph::BaseNode Node; typedef LinkGraph::BaseEdge Edge; const SettingDesc *GetSettingDescription(uint index); -static uint _num_nodes; +static uint16 _num_nodes; /** * Get a SaveLoad array for a link graph. diff --git a/src/saveload/map_sl.cpp b/src/saveload/map_sl.cpp index 7088a4406c..007af7bc60 100644 --- a/src/saveload/map_sl.cpp +++ b/src/saveload/map_sl.cpp @@ -16,6 +16,8 @@ #include "saveload.h" +#include "../safeguards.h" + static uint32 _map_dim_x; static uint32 _map_dim_y; diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp index 72c56db540..c7bd31e81e 100644 --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -21,6 +21,8 @@ #include "saveload.h" +#include "../safeguards.h" + extern TileIndex _cur_tileloop_tile; extern uint16 _disaster_delay; extern byte _trees_tick_ctr; diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index d3915340cf..cdfd0f317a 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" #include "newgrf_sl.h" +#include "../safeguards.h" + /** Save and load the mapping between a spec and the NewGRF it came from. */ static const SaveLoad _newgrf_mapping_desc[] = { SLE_VAR(EntityIDMapping, grfid, SLE_UINT32), diff --git a/src/saveload/object_sl.cpp b/src/saveload/object_sl.cpp index 4e8539793b..dfb1d2cbf5 100644 --- a/src/saveload/object_sl.cpp +++ b/src/saveload/object_sl.cpp @@ -16,6 +16,8 @@ #include "saveload.h" #include "newgrf_sl.h" +#include "../safeguards.h" + static const SaveLoad _object_desc[] = { SLE_VAR(Object, location.tile, SLE_UINT32), SLE_VAR(Object, location.w, SLE_FILE_U8 | SLE_VAR_U16), diff --git a/src/saveload/oldloader.cpp b/src/saveload/oldloader.cpp index 83fc58ebfa..13ee0e5b06 100644 --- a/src/saveload/oldloader.cpp +++ b/src/saveload/oldloader.cpp @@ -23,6 +23,8 @@ #include +#include "../safeguards.h" + static const int TTO_HEADER_SIZE = 41; static const int TTD_HEADER_SIZE = 49; diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index f9215cf1d0..d3c63d951b 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -34,6 +34,8 @@ #include "../table/engines.h" #include "../table/townname.h" +#include "../safeguards.h" + static bool _read_ttdpatch_flags; ///< Have we (tried to) read TTDPatch extra flags? static uint16 _old_extra_chunk_nums; ///< Number of extra TTDPatch chunks static byte _old_vehicle_multiplier; ///< TTDPatch vehicle multiplier @@ -708,8 +710,8 @@ static bool LoadOldGood(LoadgameState *ls, int num) if (!LoadChunk(ls, ge, goods_chunk)) return false; - SB(ge->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); - SB(ge->acceptance_pickup, GoodsEntry::GES_PICKUP, 1, _cargo_source != 0xFF); + SB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); + SB(ge->status, GoodsEntry::GES_RATING, 1, _cargo_source != 0xFF); if (GB(_waiting_acceptance, 0, 12) != 0 && CargoPacket::CanAllocateItem()) { ge->cargo.Append(new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, (_cargo_source == 0xFF) ? INVALID_STATION : _cargo_source, 0, 0), INVALID_STATION); diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp index 8234165793..63701ffa04 100644 --- a/src/saveload/order_sl.cpp +++ b/src/saveload/order_sl.cpp @@ -16,6 +16,8 @@ #include "saveload_internal.h" +#include "../safeguards.h" + /** * Converts this order from an old savegame's version; * it moves all bits to the new location. @@ -184,6 +186,10 @@ static void Load_ORDR() while ((index = SlIterateArray()) != -1) { Order *order = new (index) Order(); SlObject(order, GetOrderDescription()); + if (IsSavegameVersionBefore(190)) { + order->SetTravelTimetabled(order->GetTravelTime() > 0); + order->SetWaitTimetabled(order->GetWaitTime() > 0); + } } } } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index e1daaf4055..f3d2f62053 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -49,6 +49,8 @@ #include "saveload_internal.h" #include "saveload_filter.h" +#include "../safeguards.h" + /* * Previous savegame versions, the trunk revision where they were * introduced and the released version that had that particular @@ -254,8 +256,10 @@ * 186 25833 * 187 25899 * 188 26169 1.4.x + * 189 26450 + * 190 26547 */ -extern const uint16 SAVEGAME_VERSION = 188; ///< Current savegame version of OpenTTD. +extern const uint16 SAVEGAME_VERSION = 190; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading @@ -524,11 +528,11 @@ void NORETURN SlError(StringID string, const char *extra_msg) if (_sl.action == SLA_LOAD_CHECK) { _load_check_data.error = string; free(_load_check_data.error_data); - _load_check_data.error_data = (extra_msg == NULL) ? NULL : strdup(extra_msg); + _load_check_data.error_data = (extra_msg == NULL) ? NULL : stredup(extra_msg); } else { _sl.error_str = string; free(_sl.extra_msg); - _sl.extra_msg = (extra_msg == NULL) ? NULL : strdup(extra_msg); + _sl.extra_msg = (extra_msg == NULL) ? NULL : stredup(extra_msg); } /* We have to NULL all pointers here; we might be in a state where @@ -1460,9 +1464,50 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) return 0; } +/** + * Check whether the variable size of the variable in the saveload configuration + * matches with the actual variable size. + * @param sld The saveload configuration to test. + */ +static bool IsVariableSizeRight(const SaveLoad *sld) +{ + switch (sld->cmd) { + case SL_VAR: + switch (GetVarMemType(sld->conv)) { + case SLE_VAR_BL: + return sld->size == sizeof(bool); + case SLE_VAR_I8: + case SLE_VAR_U8: + return sld->size == sizeof(int8); + case SLE_VAR_I16: + case SLE_VAR_U16: + return sld->size == sizeof(int16); + case SLE_VAR_I32: + case SLE_VAR_U32: + return sld->size == sizeof(int32); + case SLE_VAR_I64: + case SLE_VAR_U64: + return sld->size == sizeof(int64); + default: + return sld->size == sizeof(void *); + } + case SL_REF: + /* These should all be pointer sized. */ + return sld->size == sizeof(void *); + + case SL_STR: + /* These should be pointer sized, or fixed array. */ + return sld->size == sizeof(void *) || sld->size == sld->length; + + default: + return true; + } +} bool SlObjectMember(void *ptr, const SaveLoad *sld) { + assert(IsVariableSizeRight(sld)); + VarType conv = GB(sld->conv, 0, 8); switch (sld->cmd) { case SL_VAR: @@ -2611,7 +2656,7 @@ static SaveOrLoadResult DoLoad(LoadFilter *reader, bool load_check) /* loader for this savegame type is not implemented? */ if (fmt->init_load == NULL) { char err_str[64]; - snprintf(err_str, lengthof(err_str), "Loader for '%s' is not available.", fmt->name); + seprintf(err_str, lastof(err_str), "Loader for '%s' is not available.", fmt->name); SlError(STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR, err_str); } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 1ad8850093..72c51fa69d 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -212,6 +212,7 @@ struct SaveLoad { * during runtime. Decision on which one to use is controlled by the function * that is called to save it. address: global=true, offset: global=false */ void *address; ///< address of variable OR offset of variable in the struct (max offset is 65536) + size_t size; ///< the sizeof size. }; /** Same as #SaveLoad but global variables are used (for better readability); */ @@ -227,7 +228,7 @@ typedef SaveLoad SaveLoadGlobVarList; * @param to Last savegame version that has the field. * @note In general, it is better to use one of the SLE_* macros below. */ -#define SLE_GENERAL(cmd, base, variable, type, length, from, to) {false, cmd, type, length, from, to, (void*)cpp_offsetof(base, variable)} +#define SLE_GENERAL(cmd, base, variable, type, length, from, to) {false, cmd, type, length, from, to, (void*)cpp_offsetof(base, variable), cpp_sizeof(base, variable)} /** * Storage of a variable in some savegame versions. @@ -340,11 +341,11 @@ typedef SaveLoad SaveLoadGlobVarList; /** Translate values ingame to different values in the savegame and vv. */ #define SLE_WRITEBYTE(base, variable, value) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, value, value) -#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL} -#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL} +#define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0} +#define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0} /** End marker of a struct/class save or load. */ -#define SLE_END() {false, SL_END, 0, 0, 0, 0, NULL} +#define SLE_END() {false, SL_END, 0, 0, 0, 0, NULL, 0} /** * Storage of global simple variables, references (pointers), and arrays. @@ -355,7 +356,7 @@ typedef SaveLoad SaveLoadGlobVarList; * @param to Last savegame version that has the field. * @note In general, it is better to use one of the SLEG_* macros below. */ -#define SLEG_GENERAL(cmd, variable, type, length, from, to) {true, cmd, type, length, from, to, (void*)&variable} +#define SLEG_GENERAL(cmd, variable, type, length, from, to) {true, cmd, type, length, from, to, (void*)&variable, sizeof(variable)} /** * Storage of a global variable in some savegame versions. @@ -448,7 +449,7 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLEG_CONDNULL(length, from, to) {true, SL_ARR, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to, (void*)NULL} /** End marker of global variables save or load. */ -#define SLEG_END() {true, SL_END, 0, 0, 0, 0, NULL} +#define SLEG_END() {true, SL_END, 0, 0, 0, 0, NULL, 0} /** * Checks whether the savegame is below \a major.\a minor. diff --git a/src/saveload/signs_sl.cpp b/src/saveload/signs_sl.cpp index d5ea26d65d..d5bacd509c 100644 --- a/src/saveload/signs_sl.cpp +++ b/src/saveload/signs_sl.cpp @@ -15,6 +15,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** Description of a sign within the savegame. */ static const SaveLoad _sign_desc[] = { SLE_CONDVAR(Sign, name, SLE_NAME, 0, 83), diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 71e3b31ec7..a6de95dd01 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -19,6 +19,8 @@ #include "saveload.h" #include "table/strings.h" +#include "../safeguards.h" + /** * Update the buoy orders to be waypoint orders. * @param o the order 'list' to check. @@ -265,7 +267,7 @@ const SaveLoad *GetGoodsDesc() { static const SaveLoad goods_desc[] = { SLEG_CONDVAR( _waiting_acceptance, SLE_UINT16, 0, 67), - SLE_CONDVAR(GoodsEntry, acceptance_pickup, SLE_UINT8, 68, SL_MAX_VERSION), + SLE_CONDVAR(GoodsEntry, status, SLE_UINT8, 68, SL_MAX_VERSION), SLE_CONDNULL(2, 51, 67), SLE_VAR(GoodsEntry, time_since_pickup, SLE_UINT8), SLE_VAR(GoodsEntry, rating, SLE_UINT8), @@ -337,7 +339,7 @@ static void Load_STNS() SlObject(ge, GetGoodsDesc()); SwapPackets(ge); if (IsSavegameVersionBefore(68)) { - SB(ge->acceptance_pickup, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); + SB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1, HasBit(_waiting_acceptance, 15)); if (GB(_waiting_acceptance, 0, 12) != 0) { /* In old versions, enroute_from used 0xFF as INVALID_STATION */ StationID source = (IsSavegameVersionBefore(7) && _cargo_source == 0xFF) ? INVALID_STATION : _cargo_source; @@ -351,7 +353,7 @@ static void Load_STNS() /* Don't construct the packet with station here, because that'll fail with old savegames */ CargoPacket *cp = new CargoPacket(GB(_waiting_acceptance, 0, 12), _cargo_days, source, _cargo_source_xy, _cargo_source_xy, _cargo_feeder_share); ge->cargo.Append(cp, INVALID_STATION); - SB(ge->acceptance_pickup, GoodsEntry::GES_PICKUP, 1, 1); + SB(ge->status, GoodsEntry::GES_RATING, 1, 1); } } } diff --git a/src/saveload/storage_sl.cpp b/src/saveload/storage_sl.cpp index d35fa7cc94..110df63a7c 100644 --- a/src/saveload/storage_sl.cpp +++ b/src/saveload/storage_sl.cpp @@ -13,6 +13,8 @@ #include "../newgrf_storage.h" #include "saveload.h" +#include "../safeguards.h" + /** Description of the data to save and load in #PersistentStorage. */ static const SaveLoad _storage_desc[] = { SLE_CONDVAR(PersistentStorage, grfid, SLE_UINT32, 6, SL_MAX_VERSION), diff --git a/src/saveload/story_sl.cpp b/src/saveload/story_sl.cpp index 310f96fcb8..87e3720a62 100644 --- a/src/saveload/story_sl.cpp +++ b/src/saveload/story_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + /** Called after load to trash broken pages. */ void AfterLoadStoryBook() { diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index b1cc50d460..73f2a1e2e1 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -15,6 +15,8 @@ #include "table/strings.h" +#include "../safeguards.h" + static const int NUM_OLD_STRINGS = 512; ///< The number of custom strings stored in old savegames. static const int LEN_OLD_STRINGS = 32; ///< The number of characters per string. static const int LEN_OLD_STRINGS_TTO = 24; ///< The number of characters per string in TTO savegames. @@ -92,10 +94,10 @@ char *CopyFromOldName(StringID id) /* Terminate the new string and copy it back to the name array */ *strto = '\0'; - return strdup(tmp); + return stredup(tmp); } else { /* Name will already be in UTF-8. */ - return strdup(&_old_name_array[LEN_OLD_STRINGS * GB(id, 0, 9)]); + return stredup(&_old_name_array[LEN_OLD_STRINGS * GB(id, 0, 9)]); } } diff --git a/src/saveload/subsidy_sl.cpp b/src/saveload/subsidy_sl.cpp index bfdd25339f..f6d650468c 100644 --- a/src/saveload/subsidy_sl.cpp +++ b/src/saveload/subsidy_sl.cpp @@ -14,6 +14,8 @@ #include "saveload.h" +#include "../safeguards.h" + static const SaveLoad _subsidies_desc[] = { SLE_VAR(Subsidy, cargo_type, SLE_UINT8), SLE_VAR(Subsidy, remaining, SLE_UINT8), diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index de52604f5f..7db6a7aa6f 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -18,6 +18,8 @@ #include "saveload.h" #include "newgrf_sl.h" +#include "../safeguards.h" + /** * Rebuild all the cached variables of towns. */ diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index ad8ef08315..059015be29 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -24,6 +24,8 @@ #include +#include "../safeguards.h" + /** * Link front and rear multiheaded engines to each other * This is done when loading a savegame diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp index 6ea72ea6f2..0f93969853 100644 --- a/src/saveload/waypoint_sl.cpp +++ b/src/saveload/waypoint_sl.cpp @@ -20,6 +20,8 @@ #include "saveload_internal.h" +#include "../safeguards.h" + /** Helper structure to convert from the old waypoint system. */ struct OldWaypoint { size_t index; diff --git a/src/screenshot.cpp b/src/screenshot.cpp index 8e125dc85a..0974de62b5 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -29,6 +29,8 @@ #include "table/strings.h" +#include "safeguards.h" + static const char * const SCREENSHOT_NAME = "screenshot"; ///< Default filename of a saved screenshot. static const char * const HEIGHTMAP_NAME = "heightmap"; ///< Default filename of a saved heightmap. @@ -63,10 +65,8 @@ typedef bool ScreenshotHandlerProc(const char *name, ScreenshotCallback *callb, /** Screenshot format information. */ struct ScreenshotFormat { - const char *name; ///< Name of the format. const char *extension; ///< File extension. ScreenshotHandlerProc *proc; ///< Function for writing the screenshot. - bool supports_32bpp; ///< Does this format support 32bpp images? }; /************************************************* @@ -584,10 +584,10 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user /** Available screenshot formats. */ static const ScreenshotFormat _screenshot_formats[] = { #if defined(WITH_PNG) - {"PNG", "png", &MakePNGImage, true}, + {"png", &MakePNGImage}, #endif - {"BMP", "bmp", &MakeBMPImage, true}, - {"PCX", "pcx", &MakePCXImage, false}, + {"bmp", &MakeBMPImage}, + {"pcx", &MakePCXImage}, }; /** Get filename extension of current screenshot file format. */ @@ -610,37 +610,6 @@ void InitializeScreenshotFormats() _num_screenshot_formats = lengthof(_screenshot_formats); } -/** - * Give descriptive name of the screenshot format. - * @param i Number of the screenshot format. - * @return String constant describing the format. - */ -const char *GetScreenshotFormatDesc(int i) -{ - return _screenshot_formats[i].name; -} - -/** - * Determine whether a certain screenshot format support 32bpp images. - * @param i Number of the screenshot format. - * @return true if 32bpp is supported. - */ -bool GetScreenshotFormatSupports_32bpp(int i) -{ - return _screenshot_formats[i].supports_32bpp; -} - -/** - * Set the screenshot format to use. - * @param i Number of the format. - */ -void SetScreenshotFormat(uint i) -{ - assert(i < _num_screenshot_formats); - _cur_screenshot_format = i; - strecpy(_screenshot_format_name, _screenshot_formats[i].extension, lastof(_screenshot_format_name)); -} - /** * Callback of the screenshot generator that dumps the current video buffer. * @see ScreenshotCallback @@ -729,12 +698,12 @@ static const char *MakeScreenshotName(const char *default_fn, const char *ext, b /* Add extension to screenshot file */ size_t len = strlen(_screenshot_name); - snprintf(&_screenshot_name[len], lengthof(_screenshot_name) - len, ".%s", ext); + seprintf(&_screenshot_name[len], lastof(_screenshot_name), ".%s", ext); const char *screenshot_dir = crashlog ? _personal_dir : FiosGetScreenshotDir(); for (uint serial = 1;; serial++) { - if (snprintf(_full_screenshot_name, lengthof(_full_screenshot_name), "%s%s", screenshot_dir, _screenshot_name) >= (int)lengthof(_full_screenshot_name)) { + if (seprintf(_full_screenshot_name, lastof(_full_screenshot_name), "%s%s", screenshot_dir, _screenshot_name) >= (int)lengthof(_full_screenshot_name)) { /* We need more characters than MAX_PATH -> end with error */ _full_screenshot_name[0] = '\0'; break; @@ -742,7 +711,7 @@ static const char *MakeScreenshotName(const char *default_fn, const char *ext, b if (!generate) break; // allow overwriting of non-automatic filenames if (!FileExists(_full_screenshot_name)) break; /* If file exists try another one with same name, but just with a higher index */ - snprintf(&_screenshot_name[len], lengthof(_screenshot_name) - len, "#%u.%s", serial, ext); + seprintf(&_screenshot_name[len], lastof(_screenshot_name) - len, "#%u.%s", serial, ext); } return _full_screenshot_name; diff --git a/src/screenshot.h b/src/screenshot.h index 7456a09de3..ee03d8aff7 100644 --- a/src/screenshot.h +++ b/src/screenshot.h @@ -14,9 +14,6 @@ void InitializeScreenshotFormats(); -const char *GetScreenshotFormatDesc(int i); -bool GetScreenshotFormatSupports_32bpp(int i); -void SetScreenshotFormat(uint i); const char *GetCurrentScreenshotExtension(); /** Type of requested screenshot */ diff --git a/src/script/api/ai/ai_station.hpp.sq b/src/script/api/ai/ai_station.hpp.sq index 8cb80a4de7..6f2b6e741e 100644 --- a/src/script/api/ai/ai_station.hpp.sq +++ b/src/script/api/ai/ai_station.hpp.sq @@ -49,6 +49,7 @@ void SQAIStation_Register(Squirrel *engine) SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaiting, "GetCargoWaiting", 3, ".ii"); SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingFrom, "GetCargoWaitingFrom", 4, ".iii"); SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingVia, "GetCargoWaitingVia", 4, ".iii"); + SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingFromVia, "GetCargoWaitingFromVia", 5, ".iiii"); SQAIStation.DefSQStaticMethod(engine, &ScriptStation::HasCargoRating, "HasCargoRating", 3, ".ii"); SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoRating, "GetCargoRating", 3, ".ii"); SQAIStation.DefSQStaticMethod(engine, &ScriptStation::GetCoverageRadius, "GetCoverageRadius", 2, ".i"); diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 7df7027abf..92893c2697 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -19,9 +19,10 @@ * * 1.5.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.4.0 + * API additions: + * \li AIStation::GetCargoWaitingFromVia * - * 1.4.0 is not yet released. The following changes are not set in stone yet. + * \b 1.4.0 * * API additions: * \li AICargo::GetDistributionType diff --git a/src/script/api/game/game_station.hpp.sq b/src/script/api/game/game_station.hpp.sq index ddaa4c5753..263ad6ba76 100644 --- a/src/script/api/game/game_station.hpp.sq +++ b/src/script/api/game/game_station.hpp.sq @@ -50,6 +50,7 @@ void SQGSStation_Register(Squirrel *engine) SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaiting, "GetCargoWaiting", 3, ".ii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingFrom, "GetCargoWaitingFrom", 4, ".iii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingVia, "GetCargoWaitingVia", 4, ".iii"); + SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoWaitingFromVia, "GetCargoWaitingFromVia", 5, ".iiii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::HasCargoRating, "HasCargoRating", 3, ".ii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCargoRating, "GetCargoRating", 3, ".ii"); SQGSStation.DefSQStaticMethod(engine, &ScriptStation::GetCoverageRadius, "GetCoverageRadius", 2, ".i"); diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index dfccacf1b2..2646403f38 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -138,6 +138,7 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WC_NEWGRF_INSPECT, "WC_NEWGRF_INSPECT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SPRITE_ALIGNER, "WC_SPRITE_ALIGNER"); SQGSWindow.DefSQConst(engine, ScriptWindow::WC_LINKGRAPH_LEGEND, "WC_LINKGRAPH_LEGEND"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WC_SAVE_PRESET, "WC_SAVE_PRESET"); SQGSWindow.DefSQConst(engine, ScriptWindow::WC_INVALID, "WC_INVALID"); SQGSWindow.DefSQConst(engine, ScriptWindow::TC_BLUE, "TC_BLUE"); SQGSWindow.DefSQConst(engine, ScriptWindow::TC_SILVER, "TC_SILVER"); @@ -455,8 +456,6 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_MAPSIZE_Y_PULLDOWN, "WID_GL_MAPSIZE_Y_PULLDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TOWN_PULLDOWN, "WID_GL_TOWN_PULLDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_INDUSTRY_PULLDOWN, "WID_GL_INDUSTRY_PULLDOWN"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RANDOM_EDITBOX, "WID_GL_RANDOM_EDITBOX"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_RANDOM_BUTTON, "WID_GL_RANDOM_BUTTON"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_GENERATE_BUTTON, "WID_GL_GENERATE_BUTTON"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_DATE_DOWN, "WID_GL_START_DATE_DOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_START_DATE_TEXT, "WID_GL_START_DATE_TEXT"); @@ -792,6 +791,7 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_REMOVE, "WID_NS_REMOVE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_MOVE_UP, "WID_NS_MOVE_UP"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_MOVE_DOWN, "WID_NS_MOVE_DOWN"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_UPGRADE, "WID_NS_UPGRADE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_FILTER, "WID_NS_FILTER"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_FILE_LIST, "WID_NS_FILE_LIST"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SCROLLBAR, "WID_NS_SCROLLBAR"); @@ -811,6 +811,11 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_CONTENT_DOWNLOAD2, "WID_NS_CONTENT_DOWNLOAD2"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SHOW_REMOVE, "WID_NS_SHOW_REMOVE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NS_SHOW_APPLY, "WID_NS_SHOW_APPLY"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SVP_PRESET_LIST, "WID_SVP_PRESET_LIST"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SVP_SCROLLBAR, "WID_SVP_SCROLLBAR"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SVP_EDITBOX, "WID_SVP_EDITBOX"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SVP_CANCEL, "WID_SVP_CANCEL"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SVP_SAVE, "WID_SVP_SAVE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SP_PROGRESS_BAR, "WID_SP_PROGRESS_BAR"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SP_PROGRESS_TEXT, "WID_SP_PROGRESS_TEXT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_N_PANEL, "WID_N_PANEL"); @@ -994,7 +999,6 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_LANG_DROPDOWN, "WID_GO_LANG_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_RESOLUTION_DROPDOWN, "WID_GO_RESOLUTION_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_FULLSCREEN_BUTTON, "WID_GO_FULLSCREEN_BUTTON"); - SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_SCREENSHOT_DROPDOWN, "WID_GO_SCREENSHOT_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_DROPDOWN, "WID_GO_BASE_GRF_DROPDOWN"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_STATUS, "WID_GO_BASE_GRF_STATUS"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_TEXTFILE, "WID_GO_BASE_GRF_TEXTFILE"); diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 6da64c23b2..a6a80f9b33 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -19,9 +19,10 @@ * * 1.5.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.4.0 + * API additions: + * \li GSStation::GetCargoWaitingFromVia * - * 1.4.0 is not yet released. The following changes are not set in stone yet. + * \b 1.4.0 * * API additions: * \li AICargo::GetDistributionType @@ -34,8 +35,8 @@ * \li GSGoal::SetProgress * \li GSGoal::SetText * \li GSStation::HasCargoRating - * \li AIStation::GetCargoWaitingFrom - * \li AIStation::GetCargoWaitingVia + * \li GSStation::GetCargoWaitingFrom + * \li GSStation::GetCargoWaitingVia * \li GSStoryPage * \li GSStoryPageList * \li GSStoryPageElementList diff --git a/src/script/api/script_accounting.cpp b/src/script/api/script_accounting.cpp index dfe05df3b0..e6fddf9e8c 100644 --- a/src/script/api/script_accounting.cpp +++ b/src/script/api/script_accounting.cpp @@ -12,6 +12,8 @@ #include "../../stdafx.h" #include "script_accounting.hpp" +#include "../../safeguards.h" + Money ScriptAccounting::GetCosts() { return this->GetDoCommandCosts(); diff --git a/src/script/api/script_admin.cpp b/src/script/api/script_admin.cpp index 3625fb4585..feecd11db0 100644 --- a/src/script/api/script_admin.cpp +++ b/src/script/api/script_admin.cpp @@ -14,6 +14,9 @@ #include "script_log.hpp" #include "../../network/network_admin.h" #include "../script_instance.hpp" +#include "../../string_func.h" + +#include "../../safeguards.h" /* static */ bool ScriptAdmin::MakeJSON(HSQUIRRELVM vm, SQInteger index, int max_depth, std::string &data) { @@ -28,7 +31,7 @@ sq_getinteger(vm, index, &res); char buf[10]; - snprintf(buf, sizeof(buf), "%d", (int32)res); + seprintf(buf, lastof(buf), "%d", (int32)res); data = buf; return true; } diff --git a/src/script/api/script_airport.cpp b/src/script/api/script_airport.cpp index 438a18ae98..edb912609e 100644 --- a/src/script/api/script_airport.cpp +++ b/src/script/api/script_airport.cpp @@ -15,6 +15,8 @@ #include "../../station_base.h" #include "../../town.h" +#include "../../safeguards.h" + /* static */ bool ScriptAirport::IsValidAirportType(AirportType type) { return IsAirportInformationAvailable(type) && ::AirportSpec::Get(type)->IsAvailable(); diff --git a/src/script/api/script_base.cpp b/src/script/api/script_base.cpp index 7fd5b2df90..5b2d550b8c 100644 --- a/src/script/api/script_base.cpp +++ b/src/script/api/script_base.cpp @@ -15,6 +15,8 @@ #include "../../network/network.h" #include "../../core/random_func.hpp" +#include "../../safeguards.h" + /* static */ uint32 ScriptBase::Rand() { /* We pick RandomRange if we are in SP (so when saved, we do the same over and over) diff --git a/src/script/api/script_basestation.cpp b/src/script/api/script_basestation.cpp index 5134243a96..229abf8657 100644 --- a/src/script/api/script_basestation.cpp +++ b/src/script/api/script_basestation.cpp @@ -17,6 +17,8 @@ #include "../../strings_func.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ bool ScriptBaseStation::IsValidBaseStation(StationID station_id) { const BaseStation *st = ::BaseStation::GetIfValid(station_id); diff --git a/src/script/api/script_bridge.cpp b/src/script/api/script_bridge.cpp index 25f9fc4542..45bec466c8 100644 --- a/src/script/api/script_bridge.cpp +++ b/src/script/api/script_bridge.cpp @@ -17,6 +17,8 @@ #include "../../strings_func.h" #include "../../date_func.h" +#include "../../safeguards.h" + /* static */ bool ScriptBridge::IsValidBridge(BridgeID bridge_id) { return bridge_id < MAX_BRIDGES && ::GetBridgeSpec(bridge_id)->avail_year <= _cur_year; diff --git a/src/script/api/script_bridgelist.cpp b/src/script/api/script_bridgelist.cpp index 9687663e9e..0969342ecb 100644 --- a/src/script/api/script_bridgelist.cpp +++ b/src/script/api/script_bridgelist.cpp @@ -14,6 +14,8 @@ #include "script_bridge.hpp" #include "../../bridge.h" +#include "../../safeguards.h" + ScriptBridgeList::ScriptBridgeList() { for (byte j = 0; j < MAX_BRIDGES; j++) { diff --git a/src/script/api/script_cargo.cpp b/src/script/api/script_cargo.cpp index b2459af4eb..a2643f897f 100644 --- a/src/script/api/script_cargo.cpp +++ b/src/script/api/script_cargo.cpp @@ -15,6 +15,8 @@ #include "../../core/bitmath_func.hpp" #include "../../settings_type.h" +#include "../../safeguards.h" + /* static */ bool ScriptCargo::IsValidCargo(CargoID cargo_type) { return (cargo_type < NUM_CARGO && ::CargoSpec::Get(cargo_type)->IsValid()); diff --git a/src/script/api/script_cargolist.cpp b/src/script/api/script_cargolist.cpp index 08f705d60d..b96cd721e9 100644 --- a/src/script/api/script_cargolist.cpp +++ b/src/script/api/script_cargolist.cpp @@ -17,6 +17,8 @@ #include "../../industry.h" #include "../../station_base.h" +#include "../../safeguards.h" + ScriptCargoList::ScriptCargoList() { const CargoSpec *cs; @@ -57,6 +59,6 @@ ScriptCargoList_StationAccepting::ScriptCargoList_StationAccepting(StationID sta Station *st = ::Station::Get(station_id); for (CargoID i = 0; i < NUM_CARGO; i++) { - if (HasBit(st->goods[i].acceptance_pickup, GoodsEntry::GES_ACCEPTANCE)) this->AddItem(i); + if (HasBit(st->goods[i].status, GoodsEntry::GES_ACCEPTANCE)) this->AddItem(i); } } diff --git a/src/script/api/script_cargomonitor.cpp b/src/script/api/script_cargomonitor.cpp index e19821bba8..4b5b85ed61 100644 --- a/src/script/api/script_cargomonitor.cpp +++ b/src/script/api/script_cargomonitor.cpp @@ -12,6 +12,8 @@ #include "../../stdafx.h" #include "script_cargomonitor.hpp" +#include "../../safeguards.h" + /* static */ uint32 ScriptCargoMonitor::GetTownDeliveryAmount(ScriptCompany::CompanyID company, CargoID cargo, TownID town_id, bool keep_monitoring) { CargoMonitorID monitor = EncodeCargoTownMonitor(static_cast(company), cargo, town_id); diff --git a/src/script/api/script_company.cpp b/src/script/api/script_company.cpp index 851ca7888d..a5fecf8ead 100644 --- a/src/script/api/script_company.cpp +++ b/src/script/api/script_company.cpp @@ -24,6 +24,8 @@ #include "../../settings_func.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ ScriptCompany::CompanyID ScriptCompany::ResolveCompanyID(ScriptCompany::CompanyID company) { if (company == COMPANY_SELF) { @@ -194,11 +196,11 @@ return LOAN_INTERVAL; } -/* static */ bool ScriptCompany::SetLoanAmount(int32 loan) +/* static */ bool ScriptCompany::SetLoanAmount(Money loan) { EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY); EnforcePrecondition(false, loan >= 0); - EnforcePrecondition(false, (loan % GetLoanInterval()) == 0); + EnforcePrecondition(false, ((int64)loan % GetLoanInterval()) == 0); EnforcePrecondition(false, loan <= GetMaxLoanAmount()); EnforcePrecondition(false, (loan - GetLoanAmount() + GetBankBalance(COMPANY_SELF)) >= 0); @@ -209,12 +211,12 @@ (loan > GetLoanAmount()) ? CMD_INCREASE_LOAN : CMD_DECREASE_LOAN); } -/* static */ bool ScriptCompany::SetMinimumLoanAmount(int32 loan) +/* static */ bool ScriptCompany::SetMinimumLoanAmount(Money loan) { EnforcePrecondition(false, ScriptObject::GetCompany() != OWNER_DEITY); EnforcePrecondition(false, loan >= 0); - int32 over_interval = loan % GetLoanInterval(); + Money over_interval = (int64)loan % GetLoanInterval(); if (over_interval != 0) loan += GetLoanInterval() - over_interval; EnforcePrecondition(false, loan <= GetMaxLoanAmount()); @@ -224,10 +226,12 @@ return GetLoanAmount() == loan; } -/* static */ bool ScriptCompany::ChangeBankBalance(CompanyID company, int32 delta, ExpensesType expenses_type) +/* static */ bool ScriptCompany::ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type) { EnforcePrecondition(false, ScriptObject::GetCompany() == OWNER_DEITY); EnforcePrecondition(false, expenses_type < (ExpensesType)::EXPENSES_END); + EnforcePrecondition(false, delta >= INT32_MIN); + EnforcePrecondition(false, delta <= INT32_MAX); company = ResolveCompanyID(company); EnforcePrecondition(false, company != COMPANY_INVALID); @@ -278,12 +282,14 @@ return ::Company::Get((CompanyID)company)->settings.engine_renew_months; } -/* static */ bool ScriptCompany::SetAutoRenewMoney(uint32 money) +/* static */ bool ScriptCompany::SetAutoRenewMoney(Money money) { + EnforcePrecondition(false, money >= 0); + EnforcePrecondition(false, (int64)money <= UINT32_MAX); return ScriptObject::DoCommand(0, ::GetCompanySettingIndex("company.engine_renew_money"), money, CMD_CHANGE_COMPANY_SETTING); } -/* static */ uint32 ScriptCompany::GetAutoRenewMoney(CompanyID company) +/* static */ Money ScriptCompany::GetAutoRenewMoney(CompanyID company) { company = ResolveCompanyID(company); if (company == COMPANY_INVALID) return 0; diff --git a/src/script/api/script_company.hpp b/src/script/api/script_company.hpp index 00adc795f8..5327930813 100644 --- a/src/script/api/script_company.hpp +++ b/src/script/api/script_company.hpp @@ -145,7 +145,7 @@ public: * @game @pre Valid ScriptCompanyMode active in scope. * @return True if the loan could be set to your requested amount. */ - static bool SetLoanAmount(int32 loan); + static bool SetLoanAmount(Money loan); /** * Sets the minimum amount to loan, i.e. the given amount of loan rounded up. @@ -155,7 +155,7 @@ public: * @game @pre Valid ScriptCompanyMode active in scope. * @return True if we could allocate a minimum of 'loan' loan. */ - static bool SetMinimumLoanAmount(int32 loan); + static bool SetMinimumLoanAmount(Money loan); /** * Gets the amount your company have loaned. @@ -194,10 +194,12 @@ public: * @param expenses_type The account in the finances window that will register the cost. * @game @pre No ScriptCompanyMode active in scope. * @pre ResolveCompanyID(company) != COMPANY_INVALID. + * @pre delta >= -2**31 + * @pre delta < 2**31 * @note You need to create your own news message to inform about costs/gifts that you create using this command. * @api -ai */ - static bool ChangeBankBalance(CompanyID company, int32 delta, ExpensesType expenses_type); + static bool ChangeBankBalance(CompanyID company, Money delta, ExpensesType expenses_type); /** * Get the income of the company in the given quarter. @@ -314,9 +316,11 @@ public: * Set the minimum money needed to autorenew an engine for your company. * @param money The new minimum required money for autorenew to work. * @return True if autorenew money has been modified. + * @pre money >= 0 + * @pre money < 2**32 * @api -game */ - static bool SetAutoRenewMoney(uint32 money); + static bool SetAutoRenewMoney(Money money); /** * Return the minimum money needed to autorenew an engine for a company. @@ -324,7 +328,7 @@ public: * @pre ResolveCompanyID(company) != COMPANY_INVALID. * @return The minimum required money for autorenew to work. */ - static uint32 GetAutoRenewMoney(CompanyID company); + static Money GetAutoRenewMoney(CompanyID company); }; DECLARE_POSTFIX_INCREMENT(ScriptCompany::CompanyID) diff --git a/src/script/api/script_companymode.cpp b/src/script/api/script_companymode.cpp index bf6da493c0..1931a5db78 100644 --- a/src/script/api/script_companymode.cpp +++ b/src/script/api/script_companymode.cpp @@ -12,6 +12,8 @@ #include "../../stdafx.h" #include "script_companymode.hpp" +#include "../../safeguards.h" + ScriptCompanyMode::ScriptCompanyMode(int company) { if (company < OWNER_BEGIN || company >= MAX_COMPANIES) company = INVALID_COMPANY; diff --git a/src/script/api/script_controller.cpp b/src/script/api/script_controller.cpp index 7ca0c7d464..65e542c023 100644 --- a/src/script/api/script_controller.cpp +++ b/src/script/api/script_controller.cpp @@ -24,6 +24,8 @@ #include "../../settings_type.h" #include "../../network/network.h" +#include "../../safeguards.h" + /* static */ void ScriptController::SetCommandDelay(int ticks) { if (ticks <= 0) return; @@ -51,7 +53,7 @@ ScriptObject::GetActiveInstance()->Pause(); char log_message[1024]; - snprintf(log_message, sizeof(log_message), "Break: %s", message); + seprintf(log_message, lastof(log_message), "Break: %s", message); ScriptLog::Log(ScriptLog::LOG_SQ_ERROR, log_message); /* Inform script developer that his script has been paused and @@ -113,13 +115,13 @@ ScriptController::~ScriptController() /* Internally we store libraries as 'library.version' */ char library_name[1024]; - snprintf(library_name, sizeof(library_name), "%s.%d", library, version); + seprintf(library_name, lastof(library_name), "%s.%d", library, version); strtolower(library_name); ScriptInfo *lib = ScriptObject::GetActiveInstance()->FindLibrary(library, version); if (lib == NULL) { char error[1024]; - snprintf(error, sizeof(error), "couldn't find library '%s' with version %d", library, version); + seprintf(error, lastof(error), "couldn't find library '%s' with version %d", library, version); throw sq_throwerror(vm, OTTD2SQ(error)); } @@ -131,12 +133,12 @@ ScriptController::~ScriptController() LoadedLibraryList::iterator iter = controller->loaded_library.find(library_name); if (iter != controller->loaded_library.end()) { - ttd_strlcpy(fake_class, (*iter).second, sizeof(fake_class)); + strecpy(fake_class, (*iter).second, lastof(fake_class)); } else { int next_number = ++controller->loaded_library_count; /* Create a new fake internal name */ - snprintf(fake_class, sizeof(fake_class), "_internalNA%d", next_number); + seprintf(fake_class, lastof(fake_class), "_internalNA%d", next_number); /* Load the library in a 'fake' namespace, so we can link it to the name the user requested */ sq_pushroottable(vm); @@ -145,14 +147,14 @@ ScriptController::~ScriptController() /* Load the library */ if (!engine->LoadScript(vm, lib->GetMainScript(), false)) { char error[1024]; - snprintf(error, sizeof(error), "there was a compile error when importing '%s' version %d", library, version); + seprintf(error, lastof(error), "there was a compile error when importing '%s' version %d", library, version); throw sq_throwerror(vm, OTTD2SQ(error)); } /* Create the fake class */ sq_newslot(vm, -3, SQFalse); sq_pop(vm, 1); - controller->loaded_library[strdup(library_name)] = strdup(fake_class); + controller->loaded_library[stredup(library_name)] = stredup(fake_class); } /* Find the real class inside the fake class (like 'sets.Vector') */ @@ -164,7 +166,7 @@ ScriptController::~ScriptController() sq_pushstring(vm, OTTD2SQ(lib->GetInstanceName()), -1); if (SQ_FAILED(sq_get(vm, -2))) { char error[1024]; - snprintf(error, sizeof(error), "unable to find class '%s' in the library '%s' version %d", lib->GetInstanceName(), library, version); + seprintf(error, lastof(error), "unable to find class '%s' in the library '%s' version %d", lib->GetInstanceName(), library, version); throw sq_throwerror(vm, OTTD2SQ(error)); } HSQOBJECT obj; diff --git a/src/script/api/script_date.cpp b/src/script/api/script_date.cpp index 3fcc605db0..4290a4feb5 100644 --- a/src/script/api/script_date.cpp +++ b/src/script/api/script_date.cpp @@ -14,6 +14,8 @@ #include "script_date.hpp" #include "../../date_func.h" +#include "../../safeguards.h" + /* static */ bool ScriptDate::IsValidDate(Date date) { return date >= 0; diff --git a/src/script/api/script_depotlist.cpp b/src/script/api/script_depotlist.cpp index 7adbe8a286..05bb4ccd04 100644 --- a/src/script/api/script_depotlist.cpp +++ b/src/script/api/script_depotlist.cpp @@ -14,6 +14,8 @@ #include "../../depot_base.h" #include "../../station_base.h" +#include "../../safeguards.h" + ScriptDepotList::ScriptDepotList(ScriptTile::TransportType transport_type) { ::TileType tile_type; diff --git a/src/script/api/script_engine.cpp b/src/script/api/script_engine.cpp index 138628547b..1fe16321b5 100644 --- a/src/script/api/script_engine.cpp +++ b/src/script/api/script_engine.cpp @@ -20,6 +20,8 @@ #include "../../articulated_vehicles.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ bool ScriptEngine::IsValidEngine(EngineID engine_id) { const Engine *e = ::Engine::GetIfValid(engine_id); diff --git a/src/script/api/script_enginelist.cpp b/src/script/api/script_enginelist.cpp index b6143a20ec..99ab9537be 100644 --- a/src/script/api/script_enginelist.cpp +++ b/src/script/api/script_enginelist.cpp @@ -13,6 +13,8 @@ #include "script_enginelist.hpp" #include "../../engine_base.h" +#include "../../safeguards.h" + ScriptEngineList::ScriptEngineList(ScriptVehicle::VehicleType vehicle_type) { Engine *e; diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index 46d287f77c..d30ad9c66d 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -12,6 +12,9 @@ #include "../../stdafx.h" #include "script_error.hpp" #include "../../core/bitmath_func.hpp" +#include "../../string_func.h" + +#include "../../safeguards.h" ScriptError::ScriptErrorMap ScriptError::error_map = ScriptError::ScriptErrorMap(); ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::ScriptErrorMapString(); @@ -23,7 +26,7 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S /* static */ char *ScriptError::GetLastErrorString() { - return strdup((*error_map_string.find(ScriptError::GetLastError())).second); + return stredup((*error_map_string.find(ScriptError::GetLastError())).second); } /* static */ ScriptErrorType ScriptError::StringToError(StringID internal_string_id) diff --git a/src/script/api/script_event.cpp b/src/script/api/script_event.cpp index d7d19863ff..0e711ca416 100644 --- a/src/script/api/script_event.cpp +++ b/src/script/api/script_event.cpp @@ -14,6 +14,8 @@ #include +#include "../../safeguards.h" + /** The queue of events for a script. */ struct ScriptEventData { std::queue stack; ///< The actual queue. diff --git a/src/script/api/script_event_types.cpp b/src/script/api/script_event_types.cpp index f22bb2f619..277ce22ec8 100644 --- a/src/script/api/script_event_types.cpp +++ b/src/script/api/script_event_types.cpp @@ -17,8 +17,11 @@ #include "../../settings_type.h" #include "../../engine_base.h" #include "../../articulated_vehicles.h" +#include "../../string_func.h" #include "table/strings.h" +#include "../../safeguards.h" + bool ScriptEventEnginePreview::IsEngineValid() const { const Engine *e = ::Engine::GetIfValid(this->engine); @@ -117,6 +120,17 @@ bool ScriptEventCompanyAskMerger::AcceptMerger() return ScriptObject::DoCommand(0, this->owner, 0, CMD_BUY_COMPANY); } +ScriptEventAdminPort::ScriptEventAdminPort(const char *json) : + ScriptEvent(ET_ADMIN_PORT), + json(stredup(json)) +{ +} + +ScriptEventAdminPort::~ScriptEventAdminPort() +{ + free(this->json); +} + #define SKIP_EMPTY(p) while (*(p) == ' ' || *(p) == '\n' || *(p) == '\r') (p)++; #define RETURN_ERROR(stack) { ScriptLog::Error("Received invalid JSON data from AdminPort."); if (stack != 0) sq_pop(vm, stack); return NULL; } diff --git a/src/script/api/script_event_types.hpp b/src/script/api/script_event_types.hpp index 62834113d0..9430168977 100644 --- a/src/script/api/script_event_types.hpp +++ b/src/script/api/script_event_types.hpp @@ -839,15 +839,8 @@ public: /** * @param json The JSON string which got sent. */ - ScriptEventAdminPort(const char *json) : - ScriptEvent(ET_ADMIN_PORT), - json(strdup(json)) - {} - - ~ScriptEventAdminPort() - { - free(this->json); - } + ScriptEventAdminPort(const char *json); + ~ScriptEventAdminPort(); /** * Convert an ScriptEvent to the real instance. diff --git a/src/script/api/script_execmode.cpp b/src/script/api/script_execmode.cpp index fe2ac3d7c1..4fb0cc7e29 100644 --- a/src/script/api/script_execmode.cpp +++ b/src/script/api/script_execmode.cpp @@ -14,6 +14,8 @@ #include "../script_instance.hpp" #include "../script_fatalerror.hpp" +#include "../../safeguards.h" + bool ScriptExecMode::ModeProc() { /* In execution mode we only return 'true', telling the DoCommand it diff --git a/src/script/api/script_game.cpp b/src/script/api/script_game.cpp index f0aeb191fc..c24757a3cc 100644 --- a/src/script/api/script_game.cpp +++ b/src/script/api/script_game.cpp @@ -15,6 +15,8 @@ #include "../../settings_type.h" #include "../../network/network.h" +#include "../../safeguards.h" + /* static */ bool ScriptGame::Pause() { return ScriptObject::DoCommand(0, PM_PAUSED_GAME_SCRIPT, 1, CMD_PAUSE); diff --git a/src/script/api/script_gamesettings.cpp b/src/script/api/script_gamesettings.cpp index ed284ae595..1f8ded877e 100644 --- a/src/script/api/script_gamesettings.cpp +++ b/src/script/api/script_gamesettings.cpp @@ -15,6 +15,8 @@ #include "../../settings_type.h" #include "../../command_type.h" +#include "../../safeguards.h" + /* static */ bool ScriptGameSettings::IsValid(const char *setting) { uint i; diff --git a/src/script/api/script_goal.cpp b/src/script/api/script_goal.cpp index 535450973d..5153e0ef0e 100644 --- a/src/script/api/script_goal.cpp +++ b/src/script/api/script_goal.cpp @@ -20,6 +20,8 @@ #include "../../goal_base.h" #include "../../string_func.h" +#include "../../safeguards.h" + /* static */ bool ScriptGoal::IsValidGoal(GoalID goal_id) { return ::Goal::IsValidID(goal_id); diff --git a/src/script/api/script_group.cpp b/src/script/api/script_group.cpp index 01569d8241..1e8d6d774d 100644 --- a/src/script/api/script_group.cpp +++ b/src/script/api/script_group.cpp @@ -19,6 +19,8 @@ #include "../../settings_func.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ bool ScriptGroup::IsValidGroup(GroupID group_id) { const Group *g = ::Group::GetIfValid(group_id); @@ -57,7 +59,7 @@ EnforcePreconditionEncodedText(false, text); EnforcePreconditionCustomError(false, ::Utf8StringLength(text) < MAX_LENGTH_GROUP_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG); - return ScriptObject::DoCommand(0, group_id, 0, CMD_RENAME_GROUP, text); + return ScriptObject::DoCommand(0, group_id, 0, CMD_ALTER_GROUP, text); } /* static */ char *ScriptGroup::GetName(GroupID group_id) diff --git a/src/script/api/script_grouplist.cpp b/src/script/api/script_grouplist.cpp index 39dd310024..d1071c36c6 100644 --- a/src/script/api/script_grouplist.cpp +++ b/src/script/api/script_grouplist.cpp @@ -13,6 +13,8 @@ #include "script_grouplist.hpp" #include "../../group.h" +#include "../../safeguards.h" + ScriptGroupList::ScriptGroupList() { Group *g; diff --git a/src/script/api/script_industry.cpp b/src/script/api/script_industry.cpp index 5e30f13770..c536ec5590 100644 --- a/src/script/api/script_industry.cpp +++ b/src/script/api/script_industry.cpp @@ -19,6 +19,8 @@ #include "../../newgrf_industries.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ int32 ScriptIndustry::GetIndustryCount() { return (int32)::Industry::GetNumItems(); diff --git a/src/script/api/script_industrylist.cpp b/src/script/api/script_industrylist.cpp index b9824b9acb..d2d298fa3f 100644 --- a/src/script/api/script_industrylist.cpp +++ b/src/script/api/script_industrylist.cpp @@ -13,6 +13,8 @@ #include "script_industrylist.hpp" #include "../../industry.h" +#include "../../safeguards.h" + ScriptIndustryList::ScriptIndustryList() { Industry *i; diff --git a/src/script/api/script_industrytype.cpp b/src/script/api/script_industrytype.cpp index bbfca99a4d..1ac59975dc 100644 --- a/src/script/api/script_industrytype.cpp +++ b/src/script/api/script_industrytype.cpp @@ -18,6 +18,8 @@ #include "../../newgrf_industries.h" #include "../../core/random_func.hpp" +#include "../../safeguards.h" + /* static */ bool ScriptIndustryType::IsValidIndustryType(IndustryType industry_type) { if (industry_type >= NUM_INDUSTRYTYPES) return false; diff --git a/src/script/api/script_industrytypelist.cpp b/src/script/api/script_industrytypelist.cpp index c72fabcaa5..b60361578b 100644 --- a/src/script/api/script_industrytypelist.cpp +++ b/src/script/api/script_industrytypelist.cpp @@ -13,6 +13,8 @@ #include "script_industrytypelist.hpp" #include "../../industry.h" +#include "../../safeguards.h" + ScriptIndustryTypeList::ScriptIndustryTypeList() { for (int i = 0; i < NUM_INDUSTRYTYPES; i++) { diff --git a/src/script/api/script_infrastructure.cpp b/src/script/api/script_infrastructure.cpp index 1ce051bba0..d7da2747e1 100644 --- a/src/script/api/script_infrastructure.cpp +++ b/src/script/api/script_infrastructure.cpp @@ -17,6 +17,8 @@ #include "../../water.h" #include "../../station_func.h" +#include "../../safeguards.h" + /* static */ uint32 ScriptInfrastructure::GetRailPieceCount(ScriptCompany::CompanyID company, ScriptRail::RailType railtype) { diff --git a/src/script/api/script_list.cpp b/src/script/api/script_list.cpp index 68df5bf956..7add90c741 100644 --- a/src/script/api/script_list.cpp +++ b/src/script/api/script_list.cpp @@ -14,6 +14,8 @@ #include "../../debug.h" #include "../../script/squirrel.hpp" +#include "../../safeguards.h" + /** * Base class for any ScriptList sorter. */ diff --git a/src/script/api/script_log.cpp b/src/script/api/script_log.cpp index fc6a0b193a..d9fbbde982 100644 --- a/src/script/api/script_log.cpp +++ b/src/script/api/script_log.cpp @@ -14,6 +14,9 @@ #include "../../core/alloc_func.hpp" #include "../../debug.h" #include "../../window_func.h" +#include "../../string_func.h" + +#include "../../safeguards.h" /* static */ void ScriptLog::Info(const char *message) { @@ -51,7 +54,7 @@ /* Free last message, and write new message */ free(log->lines[log->pos]); - log->lines[log->pos] = strdup(message); + log->lines[log->pos] = stredup(message); log->type[log->pos] = level; /* Cut string after first \n */ diff --git a/src/script/api/script_map.cpp b/src/script/api/script_map.cpp index 3f224b3d15..6334089fdb 100644 --- a/src/script/api/script_map.cpp +++ b/src/script/api/script_map.cpp @@ -13,6 +13,8 @@ #include "script_map.hpp" #include "../../tile_map.h" +#include "../../safeguards.h" + /* static */ bool ScriptMap::IsValidTile(TileIndex t) { return ::IsValidTile(t); diff --git a/src/script/api/script_marine.cpp b/src/script/api/script_marine.cpp index abc8666f1f..434ec11acc 100644 --- a/src/script/api/script_marine.cpp +++ b/src/script/api/script_marine.cpp @@ -15,6 +15,8 @@ #include "../../station_base.h" #include "../../tile_cmd.h" +#include "../../safeguards.h" + /* static */ bool ScriptMarine::IsWaterDepotTile(TileIndex tile) { diff --git a/src/script/api/script_news.cpp b/src/script/api/script_news.cpp index e80b884913..8d808ff3c8 100644 --- a/src/script/api/script_news.cpp +++ b/src/script/api/script_news.cpp @@ -15,6 +15,8 @@ #include "../../command_type.h" #include "../../string_func.h" +#include "../../safeguards.h" + /* static */ bool ScriptNews::Create(NewsType type, Text *text, ScriptCompany::CompanyID company) { CCountedPtr counter(text); diff --git a/src/script/api/script_object.cpp b/src/script/api/script_object.cpp index 679efd1a7c..49dba6bb73 100644 --- a/src/script/api/script_object.cpp +++ b/src/script/api/script_object.cpp @@ -24,6 +24,8 @@ #include "../script_fatalerror.hpp" #include "script_error.hpp" +#include "../../safeguards.h" + /** * Get the storage associated with the current ScriptInstance. * @return The storage. @@ -262,7 +264,7 @@ ScriptObject::ActiveInstance::~ActiveInstance() char buffer[64]; ::GetString(buffer, string, lastof(buffer)); ::str_validate(buffer, lastof(buffer), SVS_NONE); - return ::strdup(buffer); + return ::stredup(buffer); } /* static */ void ScriptObject::SetCallbackVariable(int index, int value) diff --git a/src/script/api/script_order.cpp b/src/script/api/script_order.cpp index 3098b452fd..676262dc77 100644 --- a/src/script/api/script_order.cpp +++ b/src/script/api/script_order.cpp @@ -21,6 +21,8 @@ #include "../../station_base.h" #include "../../waypoint_base.h" +#include "../../safeguards.h" + /** * Gets the order type given a tile * @param t the tile to get the order from diff --git a/src/script/api/script_rail.cpp b/src/script/api/script_rail.cpp index 26317a72c0..af68a3edc8 100644 --- a/src/script/api/script_rail.cpp +++ b/src/script/api/script_rail.cpp @@ -21,6 +21,8 @@ #include "../../newgrf_station.h" #include "../../strings_func.h" +#include "../../safeguards.h" + /* static */ char *ScriptRail::GetName(RailType rail_type) { if (!IsRailTypeAvailable(rail_type)) return NULL; diff --git a/src/script/api/script_railtypelist.cpp b/src/script/api/script_railtypelist.cpp index 9373ce85c8..016145b764 100644 --- a/src/script/api/script_railtypelist.cpp +++ b/src/script/api/script_railtypelist.cpp @@ -13,6 +13,8 @@ #include "script_railtypelist.hpp" #include "../../rail.h" +#include "../../safeguards.h" + ScriptRailTypeList::ScriptRailTypeList() { for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) { diff --git a/src/script/api/script_road.cpp b/src/script/api/script_road.cpp index 445446695e..3a9a8ca3fd 100644 --- a/src/script/api/script_road.cpp +++ b/src/script/api/script_road.cpp @@ -16,6 +16,8 @@ #include "../../station_base.h" #include "../../script/squirrel_helper_type.hpp" +#include "../../safeguards.h" + /* static */ ScriptRoad::RoadVehicleType ScriptRoad::GetRoadVehicleTypeForCargo(CargoID cargo_type) { return ScriptCargo::HasCargoClass(cargo_type, ScriptCargo::CC_PASSENGERS) ? ROADVEHTYPE_BUS : ROADVEHTYPE_TRUCK; diff --git a/src/script/api/script_sign.cpp b/src/script/api/script_sign.cpp index 3373800b54..236e1df7ef 100644 --- a/src/script/api/script_sign.cpp +++ b/src/script/api/script_sign.cpp @@ -18,6 +18,8 @@ #include "../../strings_func.h" #include "../../tile_map.h" +#include "../../safeguards.h" + /* static */ bool ScriptSign::IsValidSign(SignID sign_id) { const Sign *si = ::Sign::GetIfValid(sign_id); diff --git a/src/script/api/script_signlist.cpp b/src/script/api/script_signlist.cpp index 5f6c6075bb..61ab9665aa 100644 --- a/src/script/api/script_signlist.cpp +++ b/src/script/api/script_signlist.cpp @@ -14,6 +14,8 @@ #include "script_sign.hpp" #include "../../signs_base.h" +#include "../../safeguards.h" + ScriptSignList::ScriptSignList() { Sign *s; diff --git a/src/script/api/script_station.cpp b/src/script/api/script_station.cpp index 2774ac28ea..c03f851a3b 100644 --- a/src/script/api/script_station.cpp +++ b/src/script/api/script_station.cpp @@ -18,6 +18,8 @@ #include "../../roadstop_base.h" #include "../../town.h" +#include "../../safeguards.h" + /* static */ bool ScriptStation::IsValidStation(StationID station_id) { const Station *st = ::Station::GetIfValid(station_id); @@ -37,45 +39,52 @@ return ::GetStationIndex(tile); } +template +/* static */ int32 ScriptStation::CountCargoWaiting(StationID station_id, + StationID from_station_id, StationID via_station_id, CargoID cargo_id) +{ + if (!IsValidStation(station_id)) return -1; + if (Tfrom && !IsValidStation(from_station_id) && from_station_id != STATION_INVALID) return -1; + if (Tvia && !IsValidStation(via_station_id) && via_station_id != STATION_INVALID) return -1; + if (!ScriptCargo::IsValidCargo(cargo_id)) return -1; + + const StationCargoList &cargo_list = ::Station::Get(station_id)->goods[cargo_id].cargo; + if (!Tfrom && !Tvia) return cargo_list.TotalCount(); + + uint16 cargo_count = 0; + std::pair range = Tvia ? + cargo_list.Packets()->equal_range(via_station_id) : + std::make_pair(StationCargoList::ConstIterator(cargo_list.Packets()->begin()), + StationCargoList::ConstIterator(cargo_list.Packets()->end())); + for (StationCargoList::ConstIterator it = range.first; it != range.second; it++) { + const CargoPacket *cp = *it; + if (!Tfrom || cp->SourceStation() == from_station_id) cargo_count += cp->Count(); + } + + return cargo_count; +} + /* static */ int32 ScriptStation::GetCargoWaiting(StationID station_id, CargoID cargo_id) { - if (!IsValidStation(station_id)) return -1; - if (!ScriptCargo::IsValidCargo(cargo_id)) return -1; - - return ::Station::Get(station_id)->goods[cargo_id].cargo.TotalCount(); + return CountCargoWaiting(station_id, STATION_INVALID, STATION_INVALID, cargo_id); } -/* static */ int32 ScriptStation::GetCargoWaitingFrom(StationID station_id, StationID from_station_id, CargoID cargo_id) +/* static */ int32 ScriptStation::GetCargoWaitingFrom(StationID station_id, + StationID from_station_id, CargoID cargo_id) { - if (!IsValidStation(station_id)) return -1; - if (!IsValidStation(from_station_id) && from_station_id != STATION_INVALID) return -1; - if (!ScriptCargo::IsValidCargo(cargo_id)) return -1; - - const StationCargoList &cargo_list = ::Station::Get(station_id)->goods[cargo_id].cargo; - uint16 cargo_count = 0; - for (StationCargoList::ConstIterator it = cargo_list.Packets()->begin(); it != cargo_list.Packets()->end(); it++) { - CargoPacket *cp = *it; - if (cp->SourceStation() == from_station_id) cargo_count += cp->Count(); - } - - return cargo_count; + return CountCargoWaiting(station_id, from_station_id, STATION_INVALID, cargo_id); } -/* static */ int32 ScriptStation::GetCargoWaitingVia(StationID station_id, StationID via_station_id, CargoID cargo_id) +/* static */ int32 ScriptStation::GetCargoWaitingVia(StationID station_id, + StationID via_station_id, CargoID cargo_id) { - if (!IsValidStation(station_id)) return -1; - if (!IsValidStation(via_station_id) && via_station_id != STATION_INVALID) return -1; - if (!ScriptCargo::IsValidCargo(cargo_id)) return -1; + return CountCargoWaiting(station_id, STATION_INVALID, via_station_id, cargo_id); +} - const StationCargoList &cargo_list = ::Station::Get(station_id)->goods[cargo_id].cargo; - uint16 cargo_count = 0; - std::pair range = cargo_list.Packets()->equal_range(via_station_id); - for (StationCargoList::ConstIterator it = range.first; it != range.second; it++) { - CargoPacket *cp = *it; - cargo_count += cp->Count(); - } - - return cargo_count; +/* static */ int32 ScriptStation::GetCargoWaitingFromVia(StationID station_id, + StationID from_station_id, StationID via_station_id, CargoID cargo_id) +{ + return CountCargoWaiting(station_id, from_station_id, via_station_id, cargo_id); } /* static */ bool ScriptStation::HasCargoRating(StationID station_id, CargoID cargo_id) diff --git a/src/script/api/script_station.hpp b/src/script/api/script_station.hpp index 8108b83703..26fc280421 100644 --- a/src/script/api/script_station.hpp +++ b/src/script/api/script_station.hpp @@ -89,6 +89,7 @@ public: /** * See how much cargo with a specific source station there is waiting on a station. * @param station_id The station to get the cargo-waiting of. + * @param from_station_id The source station of the cargo. Pass STATION_INVALID to get cargo of which the source has been deleted. * @param cargo_id The cargo to get the cargo-waiting of. * @pre IsValidStation(station_id). * @pre IsValidStation(from_station_id) || from_station_id == STATION_INVALID. @@ -100,17 +101,32 @@ public: /** * See how much cargo with a specific via-station there is waiting on a station. - * @param station_id The station to get the cargo-waiting of, or pass STATION_INVALID to get waiting cargo for "via any station". + * @param station_id The station to get the cargo-waiting of. + * @param via_station_id The next station the cargo is going to. Pass STATION_INVALID to get waiting cargo for "via any station". * @param cargo_id The cargo to get the cargo-waiting of. * @pre IsValidStation(station_id). * @pre IsValidStation(via_station_id) || via_station_id == STATION_INVALID. * @pre IsValidCargo(cargo_id). * @return The amount of units waiting at the station with via_station_id as next hop. * @note if ScriptCargo.GetCargoDistributionType(cargo_id) == ScriptCargo.DT_MANUAL, then all waiting cargo will have STATION_INVALID as next hop. - */ static int32 GetCargoWaitingVia(StationID station_id, StationID via_station_id, CargoID cargo_id); + /** + * See how much cargo with a specific via-station and source station there is waiting on a station. + * @param station_id The station to get the cargo-waiting of. + * @param from_station_id The source station of the cargo. Pass STATION_INVALID to get cargo of which the source has been deleted. + * @param via_station_id The next station the cargo is going to. Pass STATION_INVALID to get waiting cargo for "via any station". + * @param cargo_id The cargo to get the cargo-waiting of. + * @pre IsValidStation(station_id). + * @pre IsValidStation(from_station_id) || from_station_id == STATION_INVALID. + * @pre IsValidStation(via_station_id) || via_station_id == STATION_INVALID. + * @pre IsValidCargo(cargo_id). + * @return The amount of units waiting at the station with from_station_id as source and via_station_id as next hop. + * @note if ScriptCargo.GetCargoDistributionType(cargo_id) == ScriptCargo.DT_MANUAL, then all waiting cargo will have STATION_INVALID as next hop. + */ + static int32 GetCargoWaitingFromVia(StationID station_id, StationID from_station_id, StationID via_station_id, CargoID cargo_id); + /** * Check whether the given cargo at the given station a rating. * @param station_id The station to get the cargo-rating state of. @@ -226,6 +242,12 @@ public: * @return True if the state could be toggled. */ static bool OpenCloseAirport(StationID station_id); + +private: + template + static int32 CountCargoWaiting(StationID station_id, StationID from_station_id, + StationID via_station_id, CargoID cargo_id); + }; DECLARE_ENUM_AS_BIT_SET(ScriptStation::StationType) diff --git a/src/script/api/script_stationlist.cpp b/src/script/api/script_stationlist.cpp index a7269bd249..9d88fd8fc1 100644 --- a/src/script/api/script_stationlist.cpp +++ b/src/script/api/script_stationlist.cpp @@ -15,6 +15,8 @@ #include "../../station_base.h" #include "../../vehicle_base.h" +#include "../../safeguards.h" + ScriptStationList::ScriptStationList(ScriptStation::StationType station_type) { Station *st; diff --git a/src/script/api/script_story_page.cpp b/src/script/api/script_story_page.cpp index 17b7b82736..11820ec3f6 100644 --- a/src/script/api/script_story_page.cpp +++ b/src/script/api/script_story_page.cpp @@ -22,6 +22,8 @@ #include "../../string_func.h" #include "../../tile_map.h" +#include "../../safeguards.h" + /* static */ bool ScriptStoryPage::IsValidStoryPage(StoryPageID story_page_id) { return ::StoryPage::IsValidID(story_page_id); diff --git a/src/script/api/script_storypageelementlist.cpp b/src/script/api/script_storypageelementlist.cpp index 5b6b2cd533..3f1fa4ebbe 100644 --- a/src/script/api/script_storypageelementlist.cpp +++ b/src/script/api/script_storypageelementlist.cpp @@ -13,6 +13,8 @@ #include "script_storypageelementlist.hpp" #include "../../story_base.h" +#include "../../safeguards.h" + ScriptStoryPageElementList::ScriptStoryPageElementList(ScriptStoryPage::StoryPageID story_page_id) { if (!ScriptStoryPage::IsValidStoryPage(story_page_id)) return; diff --git a/src/script/api/script_storypagelist.cpp b/src/script/api/script_storypagelist.cpp index 795ff02018..fc32e80a37 100644 --- a/src/script/api/script_storypagelist.cpp +++ b/src/script/api/script_storypagelist.cpp @@ -14,6 +14,8 @@ #include "script_story_page.hpp" #include "../../story_base.h" +#include "../../safeguards.h" + ScriptStoryPageList::ScriptStoryPageList(ScriptCompany::CompanyID company) { uint8 c = company; diff --git a/src/script/api/script_subsidy.cpp b/src/script/api/script_subsidy.cpp index 146ba690d4..640f7ab0a0 100644 --- a/src/script/api/script_subsidy.cpp +++ b/src/script/api/script_subsidy.cpp @@ -18,6 +18,8 @@ #include "../../subsidy_base.h" #include "../../station_base.h" +#include "../../safeguards.h" + /* static */ bool ScriptSubsidy::IsValidSubsidy(SubsidyID subsidy_id) { return ::Subsidy::IsValidID(subsidy_id); diff --git a/src/script/api/script_subsidylist.cpp b/src/script/api/script_subsidylist.cpp index 68644846f0..fd7d947799 100644 --- a/src/script/api/script_subsidylist.cpp +++ b/src/script/api/script_subsidylist.cpp @@ -13,6 +13,8 @@ #include "script_subsidylist.hpp" #include "../../subsidy_base.h" +#include "../../safeguards.h" + ScriptSubsidyList::ScriptSubsidyList() { const Subsidy *s; diff --git a/src/script/api/script_testmode.cpp b/src/script/api/script_testmode.cpp index 46cc15e054..37f296de0c 100644 --- a/src/script/api/script_testmode.cpp +++ b/src/script/api/script_testmode.cpp @@ -14,6 +14,8 @@ #include "../script_instance.hpp" #include "../script_fatalerror.hpp" +#include "../../safeguards.h" + bool ScriptTestMode::ModeProc() { /* In test mode we only return 'false', telling the DoCommand it diff --git a/src/script/api/script_text.cpp b/src/script/api/script_text.cpp index f87b2e8b28..1529d45772 100644 --- a/src/script/api/script_text.cpp +++ b/src/script/api/script_text.cpp @@ -17,6 +17,18 @@ #include "table/strings.h" +#include "../../safeguards.h" + +RawText::RawText(const char *text) : text(stredup(text)) +{ +} + +RawText::~RawText() +{ + free(this->text); +} + + ScriptText::ScriptText(HSQUIRRELVM vm) : ZeroedMemoryAllocator() { @@ -71,7 +83,7 @@ SQInteger ScriptText::_SetParam(int parameter, HSQUIRRELVM vm) const SQChar *value; sq_getstring(vm, -1, &value); - this->params[parameter] = strdup(SQ2OTTD(value)); + this->params[parameter] = stredup(SQ2OTTD(value)); ValidateString(this->params[parameter]); break; } diff --git a/src/script/api/script_text.hpp b/src/script/api/script_text.hpp index 9b75e21c52..fe38be1973 100644 --- a/src/script/api/script_text.hpp +++ b/src/script/api/script_text.hpp @@ -42,9 +42,8 @@ public: */ class RawText : public Text { public: - RawText(const char *text) : - text(strdup(text)) {} - ~RawText() { free(this->text); } + RawText(const char *text); + ~RawText(); /* virtual */ const char *GetEncodedText() { return this->text; } private: diff --git a/src/script/api/script_tile.cpp b/src/script/api/script_tile.cpp index c84e8411a6..db9220acd6 100644 --- a/src/script/api/script_tile.cpp +++ b/src/script/api/script_tile.cpp @@ -20,6 +20,8 @@ #include "../../town.h" #include "../../landscape.h" +#include "../../safeguards.h" + /* static */ bool ScriptTile::IsBuildable(TileIndex tile) { if (!::IsValidTile(tile)) return false; diff --git a/src/script/api/script_tilelist.cpp b/src/script/api/script_tilelist.cpp index d4fe9f9773..933a92c4cb 100644 --- a/src/script/api/script_tilelist.cpp +++ b/src/script/api/script_tilelist.cpp @@ -15,6 +15,8 @@ #include "../../industry.h" #include "../../station_base.h" +#include "../../safeguards.h" + void ScriptTileList::AddRectangle(TileIndex t1, TileIndex t2) { if (!::IsValidTile(t1)) return; diff --git a/src/script/api/script_town.cpp b/src/script/api/script_town.cpp index 725c7d0a6a..d81704ae38 100644 --- a/src/script/api/script_town.cpp +++ b/src/script/api/script_town.cpp @@ -21,6 +21,8 @@ #include "../../landscape.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ int32 ScriptTown::GetTownCount() { return (int32)::Town::GetNumItems(); diff --git a/src/script/api/script_townlist.cpp b/src/script/api/script_townlist.cpp index 33a3fc0703..a2e12febe1 100644 --- a/src/script/api/script_townlist.cpp +++ b/src/script/api/script_townlist.cpp @@ -13,6 +13,8 @@ #include "script_townlist.hpp" #include "../../town.h" +#include "../../safeguards.h" + ScriptTownList::ScriptTownList() { Town *t; diff --git a/src/script/api/script_tunnel.cpp b/src/script/api/script_tunnel.cpp index 97085688f8..7b891f28d0 100644 --- a/src/script/api/script_tunnel.cpp +++ b/src/script/api/script_tunnel.cpp @@ -15,6 +15,8 @@ #include "../script_instance.hpp" #include "../../tunnel_map.h" +#include "../../safeguards.h" + /* static */ bool ScriptTunnel::IsTunnelTile(TileIndex tile) { if (!::IsValidTile(tile)) return false; diff --git a/src/script/api/script_vehicle.cpp b/src/script/api/script_vehicle.cpp index 23003ca26e..ca841f7557 100644 --- a/src/script/api/script_vehicle.cpp +++ b/src/script/api/script_vehicle.cpp @@ -24,6 +24,8 @@ #include "../../aircraft.h" #include "table/strings.h" +#include "../../safeguards.h" + /* static */ bool ScriptVehicle::IsValidVehicle(VehicleID vehicle_id) { const Vehicle *v = ::Vehicle::GetIfValid(vehicle_id); diff --git a/src/script/api/script_vehiclelist.cpp b/src/script/api/script_vehiclelist.cpp index 3017266fab..625f0f8c4f 100644 --- a/src/script/api/script_vehiclelist.cpp +++ b/src/script/api/script_vehiclelist.cpp @@ -17,6 +17,8 @@ #include "../../depot_map.h" #include "../../vehicle_base.h" +#include "../../safeguards.h" + ScriptVehicleList::ScriptVehicleList() { const Vehicle *v; diff --git a/src/script/api/script_viewport.cpp b/src/script/api/script_viewport.cpp index 139edb0297..737e7e68da 100644 --- a/src/script/api/script_viewport.cpp +++ b/src/script/api/script_viewport.cpp @@ -15,6 +15,8 @@ #include "script_map.hpp" #include "../../viewport_func.h" +#include "../../safeguards.h" + /* static */ void ScriptViewport::ScrollTo(TileIndex tile) { if (ScriptGame::IsMultiplayer()) return; diff --git a/src/script/api/script_waypoint.cpp b/src/script/api/script_waypoint.cpp index a10b3376be..91733a38e8 100644 --- a/src/script/api/script_waypoint.cpp +++ b/src/script/api/script_waypoint.cpp @@ -15,6 +15,8 @@ #include "script_marine.hpp" #include "../../waypoint_base.h" +#include "../../safeguards.h" + /* static */ bool ScriptWaypoint::IsValidWaypoint(StationID waypoint_id) { const Waypoint *wp = ::Waypoint::GetIfValid(waypoint_id); diff --git a/src/script/api/script_waypointlist.cpp b/src/script/api/script_waypointlist.cpp index b32b3e8b37..dd641a6848 100644 --- a/src/script/api/script_waypointlist.cpp +++ b/src/script/api/script_waypointlist.cpp @@ -15,6 +15,8 @@ #include "../../vehicle_base.h" #include "../../waypoint_base.h" +#include "../../safeguards.h" + ScriptWaypointList::ScriptWaypointList(ScriptWaypoint::WaypointType waypoint_type) { const Waypoint *wp; diff --git a/src/script/api/script_window.cpp b/src/script/api/script_window.cpp index 086e59f639..1252f0fc7e 100644 --- a/src/script/api/script_window.cpp +++ b/src/script/api/script_window.cpp @@ -15,6 +15,8 @@ #include "../../window_func.h" #include "../../window_gui.h" +#include "../../safeguards.h" + /* static */ void ScriptWindow::Close(WindowClass window, uint32 number) { if (ScriptGame::IsMultiplayer()) return; diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp index e61fa1a532..db918744c9 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -766,11 +766,17 @@ public: WC_SPRITE_ALIGNER = ::WC_SPRITE_ALIGNER, /** - * Linkgraph legend; Window numbers: + * Linkgraph legend; %Window numbers: * - 0 = #LinkGraphWidgets */ WC_LINKGRAPH_LEGEND = ::WC_LINKGRAPH_LEGEND, + /** + * Save preset; %Window numbers: + * - 0 = #SavePresetWidgets + */ + WC_SAVE_PRESET = ::WC_SAVE_PRESET, + WC_INVALID = ::WC_INVALID, ///< Invalid window. }; @@ -1291,9 +1297,6 @@ public: WID_GL_TOWN_PULLDOWN = ::WID_GL_TOWN_PULLDOWN, ///< Dropdown 'No. of towns'. WID_GL_INDUSTRY_PULLDOWN = ::WID_GL_INDUSTRY_PULLDOWN, ///< Dropdown 'No. of industries'. - WID_GL_RANDOM_EDITBOX = ::WID_GL_RANDOM_EDITBOX, ///< 'Random seed' editbox. - WID_GL_RANDOM_BUTTON = ::WID_GL_RANDOM_BUTTON, ///< 'Randomise' button. - WID_GL_GENERATE_BUTTON = ::WID_GL_GENERATE_BUTTON, ///< 'Generate' button. WID_GL_START_DATE_DOWN = ::WID_GL_START_DATE_DOWN, ///< Decrease start year. @@ -1832,6 +1835,7 @@ public: WID_NS_REMOVE = ::WID_NS_REMOVE, ///< Remove NewGRF from active list. WID_NS_MOVE_UP = ::WID_NS_MOVE_UP, ///< Move NewGRF up in active list. WID_NS_MOVE_DOWN = ::WID_NS_MOVE_DOWN, ///< Move NewGRF down in active list. + WID_NS_UPGRADE = ::WID_NS_UPGRADE, ///< Upgrade NewGRFs that have a newer version available. WID_NS_FILTER = ::WID_NS_FILTER, ///< Filter list of available NewGRFs. WID_NS_FILE_LIST = ::WID_NS_FILE_LIST, ///< List window of active NewGRFs. WID_NS_SCROLLBAR = ::WID_NS_SCROLLBAR, ///< Scrollbar for active NewGRF list. @@ -1853,6 +1857,15 @@ public: WID_NS_SHOW_APPLY = ::WID_NS_SHOW_APPLY, ///< Select display of the buttons below the 'details'. }; + /** Widgets of the #SavePresetWindow class. */ + enum SavePresetWidgets { + WID_SVP_PRESET_LIST = ::WID_SVP_PRESET_LIST, ///< List with available preset names. + WID_SVP_SCROLLBAR = ::WID_SVP_SCROLLBAR, ///< Scrollbar for the list available preset names. + WID_SVP_EDITBOX = ::WID_SVP_EDITBOX, ///< Edit box for changing the preset name. + WID_SVP_CANCEL = ::WID_SVP_CANCEL, ///< Button to cancel saving the preset. + WID_SVP_SAVE = ::WID_SVP_SAVE, ///< Button to save the preset. + }; + /** Widgets of the #ScanProgressWindow class. */ enum ScanProgressWidgets { WID_SP_PROGRESS_BAR = ::WID_SP_PROGRESS_BAR, ///< Simple progress bar. @@ -2119,7 +2132,6 @@ public: WID_GO_LANG_DROPDOWN = ::WID_GO_LANG_DROPDOWN, ///< Language dropdown. WID_GO_RESOLUTION_DROPDOWN = ::WID_GO_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution. WID_GO_FULLSCREEN_BUTTON = ::WID_GO_FULLSCREEN_BUTTON, ///< Toggle fullscreen. - WID_GO_SCREENSHOT_DROPDOWN = ::WID_GO_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!. WID_GO_BASE_GRF_DROPDOWN = ::WID_GO_BASE_GRF_DROPDOWN, ///< Use to select a base GRF. WID_GO_BASE_GRF_STATUS = ::WID_GO_BASE_GRF_STATUS, ///< Info about missing files etc. WID_GO_BASE_GRF_TEXTFILE = ::WID_GO_BASE_GRF_TEXTFILE, ///< Open base GRF readme, changelog (+1) or license (+2). diff --git a/src/script/api/template/template_window.hpp.sq b/src/script/api/template/template_window.hpp.sq index 9f01e42d5a..a21a75ab89 100644 --- a/src/script/api/template/template_window.hpp.sq +++ b/src/script/api/template/template_window.hpp.sq @@ -161,6 +161,8 @@ namespace SQConvert { template <> inline int Return(HSQUIRRELVM vm, ScriptWindow::NewGRFParametersWidgets res) { sq_pushinteger(vm, (int32)res); return 1; } template <> inline ScriptWindow::NewGRFStateWidgets GetParam(ForceType, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewGRFStateWidgets)tmp; } template <> inline int Return(HSQUIRRELVM vm, ScriptWindow::NewGRFStateWidgets res) { sq_pushinteger(vm, (int32)res); return 1; } + template <> inline ScriptWindow::SavePresetWidgets GetParam(ForceType, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::SavePresetWidgets)tmp; } + template <> inline int Return(HSQUIRRELVM vm, ScriptWindow::SavePresetWidgets res) { sq_pushinteger(vm, (int32)res); return 1; } template <> inline ScriptWindow::ScanProgressWidgets GetParam(ForceType, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::ScanProgressWidgets)tmp; } template <> inline int Return(HSQUIRRELVM vm, ScriptWindow::ScanProgressWidgets res) { sq_pushinteger(vm, (int32)res); return 1; } template <> inline ScriptWindow::NewsWidgets GetParam(ForceType, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWindow::NewsWidgets)tmp; } diff --git a/src/script/script_config.cpp b/src/script/script_config.cpp index a46f5f3923..a6e41476e8 100644 --- a/src/script/script_config.cpp +++ b/src/script/script_config.cpp @@ -14,11 +14,14 @@ #include "../core/random_func.hpp" #include "script_info.hpp" #include "../textfile_gui.h" +#include "../string_func.h" + +#include "../safeguards.h" void ScriptConfig::Change(const char *name, int version, bool force_exact_match, bool is_random) { free(this->name); - this->name = (name == NULL) ? NULL : strdup(name); + this->name = (name == NULL) ? NULL : stredup(name); this->info = (name == NULL) ? NULL : this->FindInfo(this->name, version, force_exact_match); this->version = (info == NULL) ? -1 : info->GetVersion(); this->is_random = is_random; @@ -42,14 +45,14 @@ void ScriptConfig::Change(const char *name, int version, bool force_exact_match, ScriptConfig::ScriptConfig(const ScriptConfig *config) { - this->name = (config->name == NULL) ? NULL : strdup(config->name); + this->name = (config->name == NULL) ? NULL : stredup(config->name); this->info = config->info; this->version = config->version; this->config_list = NULL; this->is_random = config->is_random; for (SettingValueList::const_iterator it = config->settings.begin(); it != config->settings.end(); it++) { - this->settings[strdup((*it).first)] = (*it).second; + this->settings[stredup((*it).first)] = (*it).second; } this->AddRandomDeviation(); } @@ -114,7 +117,7 @@ void ScriptConfig::SetSetting(const char *name, int value) if (it != this->settings.end()) { (*it).second = value; } else { - this->settings[strdup(name)] = value; + this->settings[stredup(name)] = value; } } @@ -157,7 +160,7 @@ int ScriptConfig::GetVersion() const void ScriptConfig::StringToSettings(const char *value) { - char *value_copy = strdup(value); + char *value_copy = stredup(value); char *s = value_copy; while (s != NULL) { @@ -181,27 +184,27 @@ void ScriptConfig::StringToSettings(const char *value) free(value_copy); } -void ScriptConfig::SettingsToString(char *string, size_t size) const +void ScriptConfig::SettingsToString(char *string, const char *last) const { - string[0] = '\0'; + char *s = string; + *s = '\0'; for (SettingValueList::const_iterator it = this->settings.begin(); it != this->settings.end(); it++) { char no[10]; - snprintf(no, sizeof(no), "%d", (*it).second); + seprintf(no, lastof(no), "%d", (*it).second); /* Check if the string would fit in the destination */ - size_t needed_size = strlen((*it).first) + 1 + strlen(no) + 1; + size_t needed_size = strlen((*it).first) + 1 + strlen(no); /* If it doesn't fit, skip the next settings */ - if (size <= needed_size) break; - size -= needed_size; + if (string + needed_size > last) break; - strcat(string, (*it).first); - strcat(string, "="); - strcat(string, no); - strcat(string, ","); + s = strecat(s, (*it).first, last); + s = strecat(s, "=", last); + s = strecat(s, no, last); + s = strecat(s, ",", last); } + /* Remove the last ',', but only if at least one setting was saved. */ - size_t len = strlen(string); - if (len > 0) string[len - 1] = '\0'; + if (s != string) s[-1] = '\0'; } const char *ScriptConfig::GetTextfile(TextfileType type, CompanyID slot) const diff --git a/src/script/script_config.hpp b/src/script/script_config.hpp index 0350f8ded9..dfc675473c 100644 --- a/src/script/script_config.hpp +++ b/src/script/script_config.hpp @@ -172,7 +172,7 @@ public: * Convert the custom settings to a string that can be stored in the config * file or savegames. */ - void SettingsToString(char *string, size_t size) const; + void SettingsToString(char *string, const char *last) const; /** * Search a textfile file next to this script. diff --git a/src/script/script_info.cpp b/src/script/script_info.cpp index 8b84966f23..83d3bab8a5 100644 --- a/src/script/script_info.cpp +++ b/src/script/script_info.cpp @@ -17,6 +17,8 @@ #include "script_info.hpp" #include "script_scanner.hpp" +#include "../safeguards.h" + ScriptInfo::~ScriptInfo() { /* Free all allocated strings */ @@ -48,7 +50,7 @@ bool ScriptInfo::CheckMethod(const char *name) const { if (!this->engine->MethodExists(*this->SQ_instance, name)) { char error[1024]; - snprintf(error, sizeof(error), "your info.nut/library.nut doesn't have the method '%s'", name); + seprintf(error, lastof(error), "your info.nut/library.nut doesn't have the method '%s'", name); this->engine->ThrowError(error); return false; } @@ -81,9 +83,9 @@ bool ScriptInfo::CheckMethod(const char *name) const } /* Get location information of the scanner */ - info->main_script = strdup(info->scanner->GetMainScript()); + info->main_script = stredup(info->scanner->GetMainScript()); const char *tar_name = info->scanner->GetTarFile(); - if (tar_name != NULL) info->tar_file = strdup(tar_name); + if (tar_name != NULL) info->tar_file = stredup(tar_name); /* Cache the data the info file gives us. */ if (!info->engine->CallStringMethodStrdup(*info->SQ_instance, "GetAuthor", &info->author, MAX_GET_OPS)) return SQ_ERROR; @@ -131,7 +133,7 @@ SQInteger ScriptInfo::AddSetting(HSQUIRRELVM vm) if (strcmp(key, "name") == 0) { const SQChar *sqvalue; if (SQ_FAILED(sq_getstring(vm, -1, &sqvalue))) return SQ_ERROR; - char *name = strdup(SQ2OTTD(sqvalue)); + char *name = stredup(SQ2OTTD(sqvalue)); char *s; ValidateString(name); @@ -144,7 +146,7 @@ SQInteger ScriptInfo::AddSetting(HSQUIRRELVM vm) } else if (strcmp(key, "description") == 0) { const SQChar *sqdescription; if (SQ_FAILED(sq_getstring(vm, -1, &sqdescription))) return SQ_ERROR; - config.description = strdup(SQ2OTTD(sqdescription)); + config.description = stredup(SQ2OTTD(sqdescription)); ValidateString(config.description); items |= 0x002; } else if (strcmp(key, "min_value") == 0) { @@ -193,7 +195,7 @@ SQInteger ScriptInfo::AddSetting(HSQUIRRELVM vm) items |= 0x100; } else { char error[1024]; - snprintf(error, sizeof(error), "unknown setting property '%s'", key); + seprintf(error, lastof(error), "unknown setting property '%s'", key); this->engine->ThrowError(error); return SQ_ERROR; } @@ -206,7 +208,7 @@ SQInteger ScriptInfo::AddSetting(HSQUIRRELVM vm) * be set for the same config item. */ if ((items & 0x200) != 0 && (config.flags & SCRIPTCONFIG_RANDOM) != 0) { char error[1024]; - snprintf(error, sizeof(error), "Setting both random_deviation and SCRIPTCONFIG_RANDOM is not allowed"); + seprintf(error, lastof(error), "Setting both random_deviation and SCRIPTCONFIG_RANDOM is not allowed"); this->engine->ThrowError(error); return SQ_ERROR; } @@ -217,7 +219,7 @@ SQInteger ScriptInfo::AddSetting(HSQUIRRELVM vm) uint mask = (config.flags & SCRIPTCONFIG_BOOLEAN) ? 0x1F3 : 0x1FF; if (items != mask) { char error[1024]; - snprintf(error, sizeof(error), "please define all properties of a setting (min/max not allowed for booleans)"); + seprintf(error, lastof(error), "please define all properties of a setting (min/max not allowed for booleans)"); this->engine->ThrowError(error); return SQ_ERROR; } @@ -240,7 +242,7 @@ SQInteger ScriptInfo::AddLabels(HSQUIRRELVM vm) if (config == NULL) { char error[1024]; - snprintf(error, sizeof(error), "Trying to add labels for non-defined setting '%s'", setting_name); + seprintf(error, lastof(error), "Trying to add labels for non-defined setting '%s'", setting_name); this->engine->ThrowError(error); return SQ_ERROR; } @@ -262,8 +264,8 @@ SQInteger ScriptInfo::AddLabels(HSQUIRRELVM vm) const char *label = SQ2OTTD(sq_label); ValidateString(label); - /* !Contains() prevents strdup from leaking. */ - if (!config->labels->Contains(key)) config->labels->Insert(key, strdup(label)); + /* !Contains() prevents stredup from leaking. */ + if (!config->labels->Contains(key)) config->labels->Insert(key, stredup(label)); sq_pop(vm, 2); } diff --git a/src/script/script_info_dummy.cpp b/src/script/script_info_dummy.cpp index b846303325..b70032f44b 100644 --- a/src/script/script_info_dummy.cpp +++ b/src/script/script_info_dummy.cpp @@ -15,6 +15,8 @@ #include "../string_func.h" #include "../strings_func.h" +#include "../safeguards.h" + /* The reason this exists in C++, is that a user can trash his ai/ or game/ dir, * leaving no Scripts available. The complexity to solve this is insane, and * therefore the alternative is used, and make sure there is always a Script diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp index 7e4766fdbf..9cfe05c490 100644 --- a/src/script/script_instance.cpp +++ b/src/script/script_instance.cpp @@ -29,6 +29,8 @@ #include "../company_func.h" #include "../fileio_func.h" +#include "../safeguards.h" + ScriptStorage::~ScriptStorage() { /* Free our pointers */ @@ -114,8 +116,8 @@ bool ScriptInstance::LoadCompatibilityScripts(const char *api_version, Subdirect char buf[MAX_PATH]; Searchpath sp; FOR_ALL_SEARCHPATHS(sp) { - FioAppendDirectory(buf, MAX_PATH, sp, dir); - ttd_strlcat(buf, script_name, MAX_PATH); + FioAppendDirectory(buf, lastof(buf), sp, dir); + strecat(buf, script_name, lastof(buf)); if (!FileExists(buf)) continue; if (this->engine->LoadScript(buf)) return true; diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp index 2197a55058..57265669f9 100644 --- a/src/script/script_scanner.cpp +++ b/src/script/script_scanner.cpp @@ -18,15 +18,23 @@ #include "script_scanner.hpp" #include "script_info.hpp" +#if defined(ENABLE_NETWORK) +#include "../network/network_content.h" +#include "../3rdparty/md5/md5.h" +#include "../tar_type.h" +#endif /* ENABLE_NETWORK */ + +#include "../safeguards.h" + bool ScriptScanner::AddFile(const char *filename, size_t basepath_length, const char *tar_filename) { free(this->main_script); - this->main_script = strdup(filename); + this->main_script = stredup(filename); if (this->main_script == NULL) return false; free(this->tar_file); if (tar_filename != NULL) { - this->tar_file = strdup(tar_filename); + this->tar_file = stredup(tar_filename); if (this->tar_file == NULL) return false; } else { this->tar_file = NULL; @@ -45,9 +53,9 @@ bool ScriptScanner::AddFile(const char *filename, size_t basepath_length, const if (!FioCheckFileExists(filename, this->subdir) || !FioCheckFileExists(this->main_script, this->subdir)) return false; - /* We don't care if one of the other scripts failed to load. */ - this->engine->ResetCrashed(); + this->ResetEngine(); this->engine->LoadScript(filename); + return true; } @@ -58,17 +66,20 @@ ScriptScanner::ScriptScanner() : { } +void ScriptScanner::ResetEngine() +{ + this->engine->Reset(); + this->engine->SetGlobalPointer(this); + this->RegisterAPI(this->engine); +} + void ScriptScanner::Initialize(const char *name) { this->engine = new Squirrel(name); - /* Mark this class as global pointer */ - this->engine->SetGlobalPointer(this); - - this->RegisterAPI(this->engine); this->RescanDir(); - this->engine->ResetCrashed(); + this->ResetEngine(); } ScriptScanner::~ScriptScanner() @@ -108,11 +119,11 @@ void ScriptScanner::Reset() void ScriptScanner::RegisterScript(ScriptInfo *info) { char script_original_name[1024]; - this->GetScriptName(info, script_original_name, sizeof(script_original_name)); + this->GetScriptName(info, script_original_name, lastof(script_original_name)); strtolower(script_original_name); char script_name[1024]; - snprintf(script_name, sizeof(script_name), "%s.%d", script_original_name, info->GetVersion()); + seprintf(script_name, lastof(script_name), "%s.%d", script_original_name, info->GetVersion()); /* Check if GetShortName follows the rules */ if (strlen(info->GetShortName()) != 4) { @@ -142,13 +153,13 @@ void ScriptScanner::RegisterScript(ScriptInfo *info) return; } - this->info_list[strdup(script_name)] = info; + this->info_list[stredup(script_name)] = info; if (!info->IsDeveloperOnly() || _settings_client.gui.ai_developer_tools) { /* Add the script to the 'unique' script list, where only the highest version * of the script is registered. */ if (this->info_single_list.find(script_original_name) == this->info_single_list.end()) { - this->info_single_list[strdup(script_original_name)] = info; + this->info_single_list[stredup(script_original_name)] = info; } else if (this->info_single_list[script_original_name]->GetVersion() < info->GetVersion()) { this->info_single_list[script_original_name] = info; } @@ -170,9 +181,6 @@ char *ScriptScanner::GetConsoleList(char *p, const char *last, bool newest_only) } #if defined(ENABLE_NETWORK) -#include "../network/network_content.h" -#include "../3rdparty/md5/md5.h" -#include "../tar_type.h" /** Helper for creating a MD5sum of all files within of a script. */ struct ScriptFileChecksumCreator : FileScanner { diff --git a/src/script/script_scanner.hpp b/src/script/script_scanner.hpp index 792d36bae7..50dad02ad2 100644 --- a/src/script/script_scanner.hpp +++ b/src/script/script_scanner.hpp @@ -101,7 +101,7 @@ protected: /** * Get the script name how to store the script in memory. */ - virtual void GetScriptName(ScriptInfo *info, char *name, int len) = 0; + virtual void GetScriptName(ScriptInfo *info, char *name, const char *last) = 0; /** * Get the filename to scan for this type of script. @@ -128,6 +128,10 @@ protected: */ void Reset(); + /** + * Reset the engine to ensure a clean environment for further steps. + */ + void ResetEngine(); }; #endif /* SCRIPT_SCANNER_HPP */ diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index ce73f9a640..9c101c7aab 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -19,15 +19,19 @@ #include <../squirrel/sqpcheader.h> #include <../squirrel/sqvm.h> +/* Due to the different characters for Squirrel, the scsnprintf might be a simple + * snprint which triggers the safeguard. But it isn't always a simple snprintf. + * Likewise for scvsnprintf and scstrcat. */ +#include "../safeguards.h" +#undef snprintf +#undef vsnprintf +#undef strcat + void Squirrel::CompileError(HSQUIRRELVM vm, const SQChar *desc, const SQChar *source, SQInteger line, SQInteger column) { SQChar buf[1024]; -#ifdef _SQ64 - scsnprintf(buf, lengthof(buf), _SC("Error %s:%ld/%ld: %s"), source, line, column, desc); -#else - scsnprintf(buf, lengthof(buf), _SC("Error %s:%d/%d: %s"), source, line, column, desc); -#endif + scsnprintf(buf, lengthof(buf), _SC("Error %s:") SQ_PRINTF64 _SC("/") SQ_PRINTF64 _SC(": %s"), source, line, column, desc); /* Check if we have a custom print function */ Squirrel *engine = (Squirrel *)sq_getforeignptr(vm); @@ -252,7 +256,7 @@ bool Squirrel::CallStringMethodStrdup(HSQOBJECT instance, const char *method_nam HSQOBJECT ret; if (!this->CallMethod(instance, method_name, &ret, suspend)) return false; if (ret._type != OT_STRING) return false; - *res = strdup(ObjectToString(&ret)); + *res = stredup(ObjectToString(&ret)); ValidateString(*res); return true; } @@ -285,8 +289,9 @@ bool Squirrel::CallBoolMethod(HSQOBJECT instance, const char *method_name, bool sq_pushroottable(vm); if (prepend_API_name) { - char *class_name2 = (char *)alloca(strlen(class_name) + strlen(engine->GetAPIName()) + 1); - sprintf(class_name2, "%s%s", engine->GetAPIName(), class_name); + size_t len = strlen(class_name) + strlen(engine->GetAPIName()) + 1; + char *class_name2 = (char *)alloca(len); + seprintf(class_name2, class_name2 + len - 1, "%s%s", engine->GetAPIName(), class_name); sq_pushstring(vm, OTTD2SQ(class_name2), -1); } else { @@ -330,12 +335,17 @@ bool Squirrel::CreateClassInstance(const char *class_name, void *real_instance, } Squirrel::Squirrel(const char *APIName) : - global_pointer(NULL), - print_func(NULL), - crashed(false), - overdrawn_ops(0), APIName(APIName) { + this->Initialize(); +} + +void Squirrel::Initialize() +{ + this->global_pointer = NULL; + this->print_func = NULL; + this->crashed = false; + this->overdrawn_ops = 0; this->vm = sq_open(1024); /* Handle compile-errors ourself, so we can display it nicely */ @@ -543,12 +553,23 @@ bool Squirrel::LoadScript(const char *script) } Squirrel::~Squirrel() +{ + this->Uninitialize(); +} + +void Squirrel::Uninitialize() { /* Clean up the stuff */ sq_pop(this->vm, 1); sq_close(this->vm); } +void Squirrel::Reset() +{ + this->Uninitialize(); + this->Initialize(); +} + void Squirrel::InsertResult(bool result) { sq_pushbool(this->vm, result); @@ -582,11 +603,6 @@ bool Squirrel::HasScriptCrashed() return this->crashed; } -void Squirrel::ResetCrashed() -{ - this->crashed = false; -} - void Squirrel::CrashOccurred() { this->crashed = true; diff --git a/src/script/squirrel.hpp b/src/script/squirrel.hpp index 4e31d3247e..4fdde85a15 100644 --- a/src/script/squirrel.hpp +++ b/src/script/squirrel.hpp @@ -41,6 +41,11 @@ private: */ const char *GetAPIName() { return this->APIName; } + /** Perform all initialization steps to create the engine. */ + void Initialize(); + /** Perform all the cleanups for the engine. */ + void Uninitialize(); + protected: /** * The CompileError handler. @@ -248,11 +253,6 @@ public: */ bool HasScriptCrashed(); - /** - * Reset the crashed status. - */ - void ResetCrashed(); - /** * Set the script status to crashed. */ @@ -267,6 +267,11 @@ public: * How many operations can we execute till suspension? */ SQInteger GetOpsTillSuspend(); + + /** + * Completely reset the engine; start from scratch. + */ + void Reset(); }; #endif /* SQUIRREL_HPP */ diff --git a/src/script/squirrel_helper.hpp b/src/script/squirrel_helper.hpp index 3e37643847..760d6c3bf4 100644 --- a/src/script/squirrel_helper.hpp +++ b/src/script/squirrel_helper.hpp @@ -26,7 +26,7 @@ template const char *GetClassName(); namespace SQConvert { /** * Pointers assigned to this class will be free'd when this instance - * comes out of scope. Useful to make sure you can use strdup(), + * comes out of scope. Useful to make sure you can use stredup(), * without leaking memory. */ struct SQAutoFreePointers : SmallVector { @@ -85,8 +85,8 @@ namespace SQConvert { template <> inline int Return (HSQUIRRELVM vm, int8 res) { sq_pushinteger(vm, res); return 1; } template <> inline int Return (HSQUIRRELVM vm, int16 res) { sq_pushinteger(vm, res); return 1; } template <> inline int Return (HSQUIRRELVM vm, int32 res) { sq_pushinteger(vm, res); return 1; } - template <> inline int Return (HSQUIRRELVM vm, int64 res) { sq_pushinteger(vm, ClampToI32(res)); return 1; } - template <> inline int Return (HSQUIRRELVM vm, Money res) { sq_pushinteger(vm, ClampToI32(res)); return 1; } + template <> inline int Return (HSQUIRRELVM vm, int64 res) { sq_pushinteger(vm, res); return 1; } + template <> inline int Return (HSQUIRRELVM vm, Money res) { sq_pushinteger(vm, res); return 1; } template <> inline int Return (HSQUIRRELVM vm, bool res) { sq_pushbool (vm, res); return 1; } template <> inline int Return (HSQUIRRELVM vm, char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2SQ(res), -1); free(res); } return 1; } template <> inline int Return(HSQUIRRELVM vm, const char *res) { if (res == NULL) sq_pushnull(vm); else { sq_pushstring(vm, OTTD2SQ(res), -1); } return 1; } @@ -104,6 +104,8 @@ namespace SQConvert { template <> inline int8 GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } template <> inline int16 GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } template <> inline int32 GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } + template <> inline int64 GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } + template <> inline Money GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } template <> inline bool GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQBool tmp; sq_getbool (vm, index, &tmp); return tmp != 0; } template <> inline void *GetParam(ForceType , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer tmp; sq_getuserpointer(vm, index, &tmp); return tmp; } template <> inline const char *GetParam(ForceType, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) @@ -113,7 +115,7 @@ namespace SQConvert { const SQChar *tmp; sq_getstring(vm, -1, &tmp); - char *tmp_str = strdup(SQ2OTTD(tmp)); + char *tmp_str = stredup(SQ2OTTD(tmp)); sq_poptop(vm); *ptr->Append() = (void *)tmp_str; str_validate(tmp_str, tmp_str + strlen(tmp_str)); diff --git a/src/script/squirrel_std.cpp b/src/script/squirrel_std.cpp index 9de119e1e1..0fb8564c8c 100644 --- a/src/script/squirrel_std.cpp +++ b/src/script/squirrel_std.cpp @@ -16,6 +16,13 @@ #include "squirrel_std.hpp" #include "../core/alloc_func.hpp" #include "../core/math_func.hpp" +#include "../string_func.h" + +/* Due to the different characters for Squirrel, the scstrcat might be a simple + * strcat which triggers the safeguard. But it isn't always a simple strcat. */ +#include "../safeguards.h" +#undef strcat +#undef strdup SQInteger SquirrelStd::min(HSQUIRRELVM vm) @@ -66,7 +73,7 @@ SQInteger SquirrelStd::require(HSQUIRRELVM vm) real_filename = ReallocT(real_filename, scstrlen(real_filename) + scstrlen(filename) + 1); scstrcat(real_filename, filename); /* Tars dislike opening files with '/' on Windows.. so convert it to '\\' ;) */ - char *filen = strdup(SQ2OTTD(real_filename)); + char *filen = stredup(SQ2OTTD(real_filename)); #if (PATHSEPCHAR != '/') for (char *n = filen; *n != '\0'; n++) if (*n == '/') *n = PATHSEPCHAR; #endif diff --git a/src/sdl.cpp b/src/sdl.cpp index 91d52d917a..79e9ed2927 100644 --- a/src/sdl.cpp +++ b/src/sdl.cpp @@ -79,6 +79,8 @@ static const char *LoadSdlDLL() #endif /* DYNAMICALLY_LOADED_SDL */ +#include "safeguards.h" + /** * Open the SDL library. * @param x The subsystem to load. diff --git a/src/settings.cpp b/src/settings.cpp index 5d65795107..23437a8750 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -73,6 +73,8 @@ #include "table/strings.h" #include "table/settings.h" +#include "safeguards.h" + ClientSettings _settings_client; GameSettings _settings_game; ///< Game settings of a running game or the scenario editor. GameSettings _settings_newgame; ///< Game settings for new games (updated from the intro screen). @@ -526,13 +528,13 @@ static void IniLoadSettings(IniFile *ini, const SettingDesc *sd, const char *grp switch (GetVarMemType(sld->conv)) { case SLE_VAR_STRB: case SLE_VAR_STRBQ: - if (p != NULL) ttd_strlcpy((char*)ptr, (const char*)p, sld->length); + if (p != NULL) strecpy((char*)ptr, (const char*)p, (char*)ptr + sld->length - 1); break; case SLE_VAR_STR: case SLE_VAR_STRQ: free(*(char**)ptr); - *(char**)ptr = p == NULL ? NULL : strdup((const char*)p); + *(char**)ptr = p == NULL ? NULL : stredup((const char*)p); break; case SLE_VAR_CHAR: if (p != NULL) *(char *)ptr = *(const char *)p; break; @@ -687,7 +689,7 @@ static void IniSaveSettings(IniFile *ini, const SettingDesc *sd, const char *grp /* The value is different, that means we have to write it to the ini */ free(item->value); - item->value = strdup(buf); + item->value = stredup(buf); } } @@ -709,7 +711,7 @@ static void IniLoadSettingList(IniFile *ini, const char *grpname, StringList *li list->Clear(); for (const IniItem *item = group->item; item != NULL; item = item->next) { - if (item->name != NULL) *list->Append() = strdup(item->name); + if (item->name != NULL) *list->Append() = stredup(item->name); } } @@ -1417,6 +1419,40 @@ static void GameLoadConfig(IniFile *ini, const char *grpname) if (item->value != NULL) config->StringToSettings(item->value); } +/** + * Convert a character to a hex nibble value, or \c -1 otherwise. + * @param c Character to convert. + * @return Hex value of the character, or \c -1 if not a hex digit. + */ +static int DecodeHexNibble(char c) +{ + if (c >= '0' && c <= '9') return c - '0'; + if (c >= 'A' && c <= 'F') return c + 10 - 'A'; + if (c >= 'a' && c <= 'f') return c + 10 - 'a'; + return -1; +} + +/** + * Parse a sequence of characters (supposedly hex digits) into a sequence of bytes. + * After the hex number should be a \c '|' character. + * @param pos First character to convert. + * @param dest [out] Output byte array to write the bytes. + * @param dest_size Number of bytes in \a dest. + * @return Whether reading was successful. + */ +static bool DecodeHexText(char *pos, uint8 *dest, size_t dest_size) +{ + while (dest_size > 0) { + int hi = DecodeHexNibble(pos[0]); + int lo = (hi >= 0) ? DecodeHexNibble(pos[1]) : -1; + if (lo < 0) return false; + *dest++ = (hi << 4) | lo; + pos += 2; + dest_size--; + } + return *pos == '|'; +} + /** * Load a GRF configuration * @param ini The configuration to read from. @@ -1433,16 +1469,41 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati if (group == NULL) return NULL; for (item = group->item; item != NULL; item = item->next) { - GRFConfig *c = new GRFConfig(item->name); + GRFConfig *c = NULL; + + uint8 grfid_buf[4], md5sum[16]; + char *filename = item->name; + bool has_grfid = false; + bool has_md5sum = false; + + /* Try reading "|" and on success, "|". */ + has_grfid = DecodeHexText(filename, grfid_buf, lengthof(grfid_buf)); + if (has_grfid) { + filename += 1 + 2 * lengthof(grfid_buf); + has_md5sum = DecodeHexText(filename, md5sum, lengthof(md5sum)); + if (has_md5sum) filename += 1 + 2 * lengthof(md5sum); + + uint32 grfid = grfid_buf[0] | (grfid_buf[1] << 8) | (grfid_buf[2] << 16) | (grfid_buf[3] << 24); + if (has_md5sum) { + const GRFConfig *s = FindGRFConfig(grfid, FGCM_EXACT, md5sum); + if (s != NULL) c = new GRFConfig(*s); + } + if (c == NULL && !FioCheckFileExists(filename, NEWGRF_DIR)) { + const GRFConfig *s = FindGRFConfig(grfid, FGCM_NEWEST_VALID); + if (s != NULL) c = new GRFConfig(*s); + } + } + if (c == NULL) c = new GRFConfig(filename); /* Parse parameters */ if (!StrEmpty(item->value)) { - c->num_params = ParseIntList(item->value, (int*)c->param, lengthof(c->param)); - if (c->num_params == (byte)-1) { - SetDParamStr(0, item->name); + int count = ParseIntList(item->value, (int*)c->param, lengthof(c->param)); + if (count < 0) { + SetDParamStr(0, filename); ShowErrorMessage(STR_CONFIG_ERROR, STR_CONFIG_ERROR_ARRAY, WL_CRITICAL); - c->num_params = 0; + count = 0; } + c->num_params = count; } /* Check if item is valid */ @@ -1459,7 +1520,7 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati SetDParam(1, STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN); } - SetDParamStr(0, item->name); + SetDParamStr(0, StrEmpty(filename) ? item->name : filename); ShowErrorMessage(STR_CONFIG_ERROR, STR_CONFIG_ERROR_INVALID_GRF, WL_CRITICAL); delete c; continue; @@ -1469,7 +1530,7 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati bool duplicate = false; for (const GRFConfig *gc = first; gc != NULL; gc = gc->next) { if (gc->ident.grfid == c->ident.grfid) { - SetDParamStr(0, item->name); + SetDParamStr(0, c->filename); SetDParamStr(1, gc->filename); ShowErrorMessage(STR_CONFIG_ERROR, STR_CONFIG_ERROR_DUPLICATE_GRFID, WL_CRITICAL); duplicate = true; @@ -1503,7 +1564,7 @@ static void AISaveConfig(IniFile *ini, const char *grpname) AIConfig *config = AIConfig::GetConfig(c, AIConfig::SSS_FORCE_NEWGAME); const char *name; char value[1024]; - config->SettingsToString(value, lengthof(value)); + config->SettingsToString(value, lastof(value)); if (config->HasScript()) { name = config->GetName(); @@ -1511,7 +1572,7 @@ static void AISaveConfig(IniFile *ini, const char *grpname) name = "none"; } - IniItem *item = new IniItem(group, name, strlen(name)); + IniItem *item = new IniItem(group, name); item->SetValue(value); } } @@ -1526,7 +1587,7 @@ static void GameSaveConfig(IniFile *ini, const char *grpname) GameConfig *config = GameConfig::GetConfig(AIConfig::SSS_FORCE_NEWGAME); const char *name; char value[1024]; - config->SettingsToString(value, lengthof(value)); + config->SettingsToString(value, lastof(value)); if (config->HasScript()) { name = config->GetName(); @@ -1534,7 +1595,7 @@ static void GameSaveConfig(IniFile *ini, const char *grpname) name = "none"; } - IniItem *item = new IniItem(group, name, strlen(name)); + IniItem *item = new IniItem(group, name); item->SetValue(value); } @@ -1547,7 +1608,7 @@ static void SaveVersionInConfig(IniFile *ini) IniGroup *group = ini->GetGroup("version"); char version[9]; - snprintf(version, lengthof(version), "%08X", _openttd_newgrf_version); + seprintf(version, lastof(version), "%08X", _openttd_newgrf_version); const char * const versions[][2] = { { "version_string", _openttd_revision }, @@ -1567,10 +1628,15 @@ static void GRFSaveConfig(IniFile *ini, const char *grpname, const GRFConfig *li const GRFConfig *c; for (c = list; c != NULL; c = c->next) { + /* Hex grfid (4 bytes in nibbles), "|", hex md5sum (16 bytes in nibbles), "|", file system path. */ + char key[4 * 2 + 1 + 16 * 2 + 1 + MAX_PATH]; char params[512]; GRFBuildParamList(params, c, lastof(params)); - group->GetItem(c->filename, true)->SetValue(params); + char *pos = key + seprintf(key, lastof(key), "%08X|", BSWAP32(c->ident.grfid)); + pos = md5sumToString(pos, lastof(key), c->ident.md5sum); + seprintf(pos, lastof(key), "|%s", c->filename); + group->GetItem(key, true)->SetValue(params); } } @@ -1669,7 +1735,7 @@ void GetGRFPresetList(GRFPresetList *list) IniGroup *group; for (group = ini->group; group != NULL; group = group->next) { if (strncmp(group->name, "preset-", 7) == 0) { - *list->Append() = strdup(group->name + 7); + *list->Append() = stredup(group->name + 7); } } @@ -1684,8 +1750,9 @@ void GetGRFPresetList(GRFPresetList *list) */ GRFConfig *LoadGRFPresetFromConfig(const char *config_name) { - char *section = (char*)alloca(strlen(config_name) + 8); - sprintf(section, "preset-%s", config_name); + size_t len = strlen(config_name) + 8; + char *section = (char*)alloca(len); + seprintf(section, section + len - 1, "preset-%s", config_name); IniFile *ini = IniLoadConfig(); GRFConfig *config = GRFLoadConfig(ini, section, false); @@ -1702,8 +1769,9 @@ GRFConfig *LoadGRFPresetFromConfig(const char *config_name) */ void SaveGRFPresetToConfig(const char *config_name, GRFConfig *config) { - char *section = (char*)alloca(strlen(config_name) + 8); - sprintf(section, "preset-%s", config_name); + size_t len = strlen(config_name) + 8; + char *section = (char*)alloca(len); + seprintf(section, section + len - 1, "preset-%s", config_name); IniFile *ini = IniLoadConfig(); GRFSaveConfig(ini, section, config); @@ -1717,8 +1785,9 @@ void SaveGRFPresetToConfig(const char *config_name, GRFConfig *config) */ void DeleteGRFPresetFromConfig(const char *config_name) { - char *section = (char*)alloca(strlen(config_name) + 8); - sprintf(section, "preset-%s", config_name); + size_t len = strlen(config_name) + 8; + char *section = (char*)alloca(len); + seprintf(section, section + len - 1, "preset-%s", config_name); IniFile *ini = IniLoadConfig(); ini->RemoveGroup(section); @@ -1936,10 +2005,10 @@ bool SetSettingValue(uint index, const char *value, bool force_newgame) if (GetVarMemType(sd->save.conv) == SLE_VAR_STRQ) { char **var = (char**)GetVariableAddress((_game_mode == GM_MENU || force_newgame) ? &_settings_newgame : &_settings_game, &sd->save); free(*var); - *var = strcmp(value, "(null)") == 0 ? NULL : strdup(value); + *var = strcmp(value, "(null)") == 0 ? NULL : stredup(value); } else { char *var = (char*)GetVariableAddress(NULL, &sd->save); - ttd_strlcpy(var, value, sd->save.length); + strecpy(var, value, &var[sd->save.length - 1]); } if (sd->desc.proc != NULL) sd->desc.proc(0); @@ -2050,9 +2119,9 @@ void IConsoleGetSetting(const char *name, bool force_newgame) IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s'", name, (GetVarMemType(sd->save.conv) == SLE_VAR_STRQ) ? *(const char * const *)ptr : (const char *)ptr); } else { if (sd->desc.cmd == SDT_BOOLX) { - snprintf(value, sizeof(value), (*(const bool*)ptr != 0) ? "on" : "off"); + seprintf(value, lastof(value), (*(const bool*)ptr != 0) ? "on" : "off"); } else { - snprintf(value, sizeof(value), sd->desc.min < 0 ? "%d" : "%u", (int32)ReadValue(ptr, sd->save.conv)); + seprintf(value, lastof(value), sd->desc.min < 0 ? "%d" : "%u", (int32)ReadValue(ptr, sd->save.conv)); } IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s' (min: %s%d, max: %u)", @@ -2076,11 +2145,11 @@ void IConsoleListSettings(const char *prefilter) const void *ptr = GetVariableAddress(&GetGameSettings(), &sd->save); if (sd->desc.cmd == SDT_BOOLX) { - snprintf(value, lengthof(value), (*(const bool *)ptr != 0) ? "on" : "off"); + seprintf(value, lastof(value), (*(const bool *)ptr != 0) ? "on" : "off"); } else if (sd->desc.cmd == SDT_STRING) { - snprintf(value, sizeof(value), "%s", (GetVarMemType(sd->save.conv) == SLE_VAR_STRQ) ? *(const char * const *)ptr : (const char *)ptr); + seprintf(value, lastof(value), "%s", (GetVarMemType(sd->save.conv) == SLE_VAR_STRQ) ? *(const char * const *)ptr : (const char *)ptr); } else { - snprintf(value, lengthof(value), sd->desc.min < 0 ? "%d" : "%u", (int32)ReadValue(ptr, sd->save.conv)); + seprintf(value, lastof(value), sd->desc.min < 0 ? "%d" : "%u", (int32)ReadValue(ptr, sd->save.conv)); } IConsolePrintF(CC_DEFAULT, "%s = %s", sd->desc.name, value); } diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index bf03f98dbf..5fe59f2ff1 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -15,7 +15,6 @@ #include "settings_gui.h" #include "textbuf_gui.h" #include "command_func.h" -#include "screenshot.h" #include "network/network.h" #include "town.h" #include "settings_internal.h" @@ -39,6 +38,10 @@ #include "querystring_gui.h" #include "fontcache.h" +#include + +#include "safeguards.h" + enum { MIN_BUTTON_SIZE = 10, MAX_BUTTON_SIZE = 40 }; static const StringID _driveside_dropdown[] = { @@ -276,15 +279,6 @@ struct GameOptionsWindow : Window { } break; - case WID_GO_SCREENSHOT_DROPDOWN: // Setup screenshot format dropdown - list = new DropDownList(); - *selected_index = _cur_screenshot_format; - for (uint i = 0; i < _num_screenshot_formats; i++) { - if (!GetScreenshotFormatSupports_32bpp(i) && BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 32) continue; - *list->Append() = new DropDownListStringItem(SPECSTR_SCREENSHOT_START + i, i, false); - } - break; - case WID_GO_BUTTON_SIZE_DROPDOWN: // Setup screenshot format dropdown case WID_GO_TEXT_SIZE_DROPDOWN: // Setup screenshot format dropdown list = new DropDownList(); @@ -326,7 +320,6 @@ struct GameOptionsWindow : Window { 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() == _num_resolutions ? STR_GAME_OPTIONS_RESOLUTION_OTHER : SPECSTR_RESOLUTION_START + GetCurRes()); break; - case WID_GO_SCREENSHOT_DROPDOWN: SetDParam(0, SPECSTR_SCREENSHOT_START + _cur_screenshot_format); break; case WID_GO_BUTTON_SIZE_DROPDOWN:SetDParam(0, _settings_client.gui.min_button); break; case WID_GO_TEXT_SIZE_DROPDOWN: SetDParam(0, _freetype.medium.size); break; case WID_GO_BASE_GRF_DROPDOWN: SetDParamStr(0, BaseGraphics::GetUsedSet()->name); break; @@ -484,7 +477,7 @@ struct GameOptionsWindow : Window { const char *name = T::GetSet(index)->name; free(T::ini_set); - T::ini_set = strdup(name); + T::ini_set = stredup(name); T::SetSet(name); this->reload = true; @@ -537,11 +530,6 @@ struct GameOptionsWindow : Window { } break; - case WID_GO_SCREENSHOT_DROPDOWN: // Change screenshot format - SetScreenshotFormat(index); - this->SetDirty(); - break; - case WID_GO_BUTTON_SIZE_DROPDOWN: // Setup screenshot format dropdown _settings_client.gui.min_button = index; _settings_client.gui.min_step = index; @@ -603,9 +591,6 @@ static const NWidgetPart _nested_game_options_widgets[] = { NWidget(WWT_PANEL, COLOUR_GREY, WID_GO_BACKGROUND), SetPIP(6, 6, 10), NWidget(NWID_HORIZONTAL), SetPIP(10, 10, 10), NWidget(NWID_VERTICAL), SetPIP(0, 6, 0), - 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_ROAD_VEHICLES_FRAME, STR_NULL), NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GO_ROADSIDE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_BLACK_STRING, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP), SetFill(1, 0), EndContainer(), @@ -639,6 +624,8 @@ static const NWidgetPart _nested_game_options_widgets[] = { NWidget(WWT_TEXT, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetDataTip(STR_CONFIG_SETTING_VERTICAL_TOOLBAR, STR_NULL), NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GO_VERTICAL_TOOLBAR), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_CONFIG_SETTING_VERTICAL_TOOLBAR_HELPTEXT), 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(), @@ -715,27 +702,6 @@ enum SettingEntryFlags { SEF_LAST_FIELD = 0x04, ///< This entry is the last one in a (sub-)page SEF_FILTERED = 0x08, ///< Entry is hidden by the string filter - - /* Entry kind */ - SEF_SETTING_KIND = 0x10, ///< Entry kind: Entry is a setting - SEF_SUBTREE_KIND = 0x20, ///< Entry kind: Entry is a sub-tree - SEF_KIND_MASK = (SEF_SETTING_KIND | SEF_SUBTREE_KIND), ///< Bit-mask for fetching entry kind -}; - -struct SettingsPage; // Forward declaration - -/** Data fields for a sub-page (#SEF_SUBTREE_KIND kind)*/ -struct SettingEntrySubtree { - SettingsPage *page; ///< Pointer to the sub-page - bool folded; ///< Sub-page is folded (not visible except for its title) - StringID title; ///< Title of the sub-page -}; - -/** Data fields for a single setting (#SEF_SETTING_KIND kind) */ -struct SettingEntrySetting { - const char *name; ///< Name of the setting - const SettingDesc *setting; ///< Setting description of the setting - uint index; ///< Index of the setting in the settings table }; /** How the list of advanced settings is filtered. */ @@ -759,21 +725,16 @@ struct SettingFilter { }; /** Data structure describing a single setting in a tab */ -struct SettingEntry { +struct BaseSettingEntry { byte flags; ///< Flags of the setting entry. @see SettingEntryFlags byte level; ///< Nesting level of this setting entry - union { - SettingEntrySetting entry; ///< Data fields if entry is a setting - SettingEntrySubtree sub; ///< Data fields if entry is a sub-page - } d; ///< Data fields for each kind - SettingEntry(const char *nm); - SettingEntry(SettingsPage *sub, StringID title); + BaseSettingEntry() : flags(0), level(0) {} + virtual ~BaseSettingEntry() {} - void Init(byte level); - void FoldAll(); - void UnFoldAll(); - void SetButtons(byte new_val); + virtual void Init(byte level = 0); + virtual void FoldAll() {} + virtual void UnFoldAll() {} /** * Set whether this is the last visible entry of the parent node. @@ -781,38 +742,70 @@ struct SettingEntry { */ void SetLastField(bool last_field) { if (last_field) SETBITS(this->flags, SEF_LAST_FIELD); else CLRBITS(this->flags, SEF_LAST_FIELD); } - uint Length() const; - void GetFoldingState(bool &all_folded, bool &all_unfolded) const; - bool IsVisible(const SettingEntry *item) const; - SettingEntry *FindEntry(uint row, uint *cur_row); - uint GetMaxHelpHeight(int maxw); + virtual uint Length() const = 0; + virtual void GetFoldingState(bool &all_folded, bool &all_unfolded) const {} + virtual bool IsVisible(const BaseSettingEntry *item) const; + virtual BaseSettingEntry *FindEntry(uint row, uint *cur_row); + virtual uint GetMaxHelpHeight(int maxw) { return 0; } - bool IsFiltered() const; - bool UpdateFilterState(SettingFilter &filter, bool force_visible); + /** + * Check whether an entry is hidden due to filters + * @return true if hidden. + */ + bool IsFiltered() const { return (this->flags & SEF_FILTERED) != 0; } - uint Draw(GameSettings *settings_ptr, int base_x, int base_y, int max_x, uint first_row, uint max_row, uint cur_row, uint parent_last, SettingEntry *selected); + virtual bool UpdateFilterState(SettingFilter &filter, bool force_visible) = 0; + + virtual uint Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row = 0, uint parent_last = 0) const; + +protected: + virtual void DrawSetting(GameSettings *settings_ptr, int left, int right, int y, bool highlight) const = 0; +}; + +/** Standard setting */ +struct SettingEntry : BaseSettingEntry { + const char *name; ///< Name of the setting + const SettingDesc *setting; ///< Setting description of the setting + uint index; ///< Index of the setting in the settings table + + SettingEntry(const char *name); + + virtual void Init(byte level = 0); + virtual uint Length() const; + virtual uint GetMaxHelpHeight(int maxw); + virtual bool UpdateFilterState(SettingFilter &filter, bool force_visible); + + void SetButtons(byte new_val); /** * Get the help text of a single setting. * @return The requested help text. */ - inline StringID GetHelpText() + inline StringID GetHelpText() const { - assert((this->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); - return this->d.entry.setting->desc.str_help; + return this->setting->desc.str_help; } - void SetValueDParams(uint first_param, int32 value); + void SetValueDParams(uint first_param, int32 value) const; + +protected: + virtual void DrawSetting(GameSettings *settings_ptr, int left, int right, int y, bool highlight) const; private: - void DrawSetting(GameSettings *settings_ptr, int x, int y, int max_x, int state, bool highlight); bool IsVisibleByRestrictionMode(RestrictionMode mode) const; }; -/** Data structure describing one page of settings in the settings window. */ -struct SettingsPage { - SettingEntry *entries; ///< Array of setting entries of the page. - byte num; ///< Number of entries on the page (statically filled). +/** Containers for BaseSettingEntry */ +struct SettingsContainer { + typedef std::vector EntryVector; + EntryVector entries; ///< Settings on this page + + template + T *Add(T *item) + { + this->entries.push_back(item); + return item; + } void Init(byte level = 0); void FoldAll(); @@ -820,122 +813,49 @@ struct SettingsPage { uint Length() const; void GetFoldingState(bool &all_folded, bool &all_unfolded) const; - bool IsVisible(const SettingEntry *item) const; - SettingEntry *FindEntry(uint row, uint *cur_row) const; + bool IsVisible(const BaseSettingEntry *item) const; + BaseSettingEntry *FindEntry(uint row, uint *cur_row); uint GetMaxHelpHeight(int maxw); bool UpdateFilterState(SettingFilter &filter, bool force_visible); - uint Draw(GameSettings *settings_ptr, int base_x, int base_y, int max_x, uint first_row, uint max_row, SettingEntry *selected, uint cur_row = 0, uint parent_last = 0) const; + uint Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row = 0, uint parent_last = 0) const; }; +/** Data structure describing one page of settings in the settings window. */ +struct SettingsPage : BaseSettingEntry, SettingsContainer { + StringID title; ///< Title of the sub-page + bool folded; ///< Sub-page is folded (not visible except for its title) -/* == SettingEntry methods == */ + SettingsPage(StringID title); -/** - * Constructor for a single setting in the 'advanced settings' window - * @param nm Name of the setting in the setting table - */ -SettingEntry::SettingEntry(const char *nm) -{ - this->flags = SEF_SETTING_KIND; - this->level = 0; - this->d.entry.name = nm; - this->d.entry.setting = NULL; - this->d.entry.index = 0; -} + virtual void Init(byte level = 0); + virtual void FoldAll(); + virtual void UnFoldAll(); -/** - * Constructor for a sub-page in the 'advanced settings' window - * @param sub Sub-page - * @param title Title of the sub-page - */ -SettingEntry::SettingEntry(SettingsPage *sub, StringID title) -{ - this->flags = SEF_SUBTREE_KIND; - this->level = 0; - this->d.sub.page = sub; - this->d.sub.folded = true; - this->d.sub.title = title; -} + virtual uint Length() const; + virtual void GetFoldingState(bool &all_folded, bool &all_unfolded) const; + virtual bool IsVisible(const BaseSettingEntry *item) const; + virtual BaseSettingEntry *FindEntry(uint row, uint *cur_row); + virtual uint GetMaxHelpHeight(int maxw) { return SettingsContainer::GetMaxHelpHeight(maxw); } + + virtual bool UpdateFilterState(SettingFilter &filter, bool force_visible); + + virtual uint Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row = 0, uint parent_last = 0) const; + +protected: + virtual void DrawSetting(GameSettings *settings_ptr, int left, int right, int y, bool highlight) const; +}; + +/* == BaseSettingEntry methods == */ /** * Initialization of a setting entry * @param level Page nesting level of this entry */ -void SettingEntry::Init(byte level) +void BaseSettingEntry::Init(byte level) { this->level = level; - - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - this->d.entry.setting = GetSettingFromName(this->d.entry.name, &this->d.entry.index); - assert(this->d.entry.setting != NULL); - break; - case SEF_SUBTREE_KIND: - this->d.sub.page->Init(level + 1); - break; - default: NOT_REACHED(); - } -} - -/** Recursively close all (filtered) folds of sub-pages */ -void SettingEntry::FoldAll() -{ - if (this->IsFiltered()) return; - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - break; - - case SEF_SUBTREE_KIND: - this->d.sub.folded = true; - this->d.sub.page->FoldAll(); - break; - - default: NOT_REACHED(); - } -} - -/** Recursively open all (filtered) folds of sub-pages */ -void SettingEntry::UnFoldAll() -{ - if (this->IsFiltered()) return; - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - break; - - case SEF_SUBTREE_KIND: - this->d.sub.folded = false; - this->d.sub.page->UnFoldAll(); - break; - - default: NOT_REACHED(); - } -} - -/** - * Recursively accumulate the folding state of the (filtered) tree. - * @param[in,out] all_folded Set to false, if one entry is not folded. - * @param[in,out] all_unfolded Set to false, if one entry is folded. - */ -void SettingEntry::GetFoldingState(bool &all_folded, bool &all_unfolded) const -{ - if (this->IsFiltered()) return; - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - break; - - case SEF_SUBTREE_KIND: - if (this->d.sub.folded) { - all_unfolded = false; - } else { - all_folded = false; - } - this->d.sub.page->GetFoldingState(all_folded, all_unfolded); - break; - - default: NOT_REACHED(); - } } /** @@ -944,20 +864,112 @@ void SettingEntry::GetFoldingState(bool &all_folded, bool &all_unfolded) const * @param item Entry to search for. * @return true if entry is visible. */ -bool SettingEntry::IsVisible(const SettingEntry *item) const +bool BaseSettingEntry::IsVisible(const BaseSettingEntry *item) const { if (this->IsFiltered()) return false; if (this == item) return true; + return false; +} - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - return false; +/** + * Find setting entry at row \a row_num + * @param row_num Index of entry to return + * @param cur_row Current row number + * @return The requested setting entry or \c NULL if it not found (folded or filtered) + */ +BaseSettingEntry *BaseSettingEntry::FindEntry(uint row_num, uint *cur_row) +{ + if (this->IsFiltered()) return NULL; + if (row_num == *cur_row) return this; + (*cur_row)++; + return NULL; +} - case SEF_SUBTREE_KIND: - return !this->d.sub.folded && this->d.sub.page->IsVisible(item); +/** + * Draw a row in the settings panel. + * + * The scrollbar uses rows of the page, while the page data structure is a tree of #SettingsPage and #SettingEntry objects. + * As a result, the drawing routing traverses the tree from top to bottom, counting rows in \a cur_row until it reaches \a first_row. + * Then it enables drawing rows while traversing until \a max_row is reached, at which point drawing is terminated. + * + * The \a parent_last parameter ensures that the vertical lines at the left are + * only drawn when another entry follows, that it prevents output like + * \verbatim + * |-- setting + * |-- (-) - Title + * | |-- setting + * | |-- setting + * \endverbatim + * The left-most vertical line is not wanted. It is prevented by setting the + * appropriate bit in the \a parent_last parameter. + * + * @param settings_ptr Pointer to current values of all settings + * @param left Left-most position in window/panel to start drawing \a first_row + * @param right Right-most x position to draw strings at. + * @param y Upper-most position in window/panel to start drawing \a first_row + * @param first_row First row number to draw + * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) + * @param selected Selected entry by the user. + * @param cur_row Current row number (internal variable) + * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) + * @return Row number of the next row to draw + */ +uint BaseSettingEntry::Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row, uint parent_last) const +{ + if (this->IsFiltered()) return cur_row; + if (cur_row >= max_row) return cur_row; - default: NOT_REACHED(); + bool rtl = _current_text_dir == TD_RTL; + int offset = rtl ? -4 : 4; + int level_width = rtl ? -LEVEL_WIDTH : LEVEL_WIDTH; + + int x = rtl ? right : left; + if (cur_row >= first_row) { + int colour = _colour_gradient[COLOUR_ORANGE][4]; + y += (cur_row - first_row) * SETTING_HEIGHT; // Compute correct y start position + + /* Draw vertical for parent nesting levels */ + for (uint lvl = 0; lvl < this->level; lvl++) { + if (!HasBit(parent_last, lvl)) GfxDrawLine(x + offset, y, x + offset, y + SETTING_HEIGHT - 1, colour); + x += level_width; + } + /* draw own |- prefix */ + int halfway_y = y + SETTING_HEIGHT / 2; + int bottom_y = (flags & SEF_LAST_FIELD) ? halfway_y : y + SETTING_HEIGHT - 1; + GfxDrawLine(x + offset, y, x + offset, bottom_y, colour); + /* Small horizontal line from the last vertical line */ + GfxDrawLine(x + offset, halfway_y, x + level_width - offset, halfway_y, colour); + x += level_width; + + this->DrawSetting(settings_ptr, rtl ? left : x, rtl ? x : right, y, this == selected); } + cur_row++; + + return cur_row; +} + +/* == SettingEntry methods == */ + +/** + * Constructor for a single setting in the 'advanced settings' window + * @param name Name of the setting in the setting table + */ +SettingEntry::SettingEntry(const char *name) +{ + this->name = name; + this->setting = NULL; + this->index = 0; +} + +/** + * Initialization of a setting entry + * @param level Page nesting level of this entry + */ +void SettingEntry::Init(byte level) +{ + BaseSettingEntry::Init(level); + this->setting = GetSettingFromName(this->name, &this->index); + assert(this->setting != NULL); } /** @@ -971,47 +983,10 @@ void SettingEntry::SetButtons(byte new_val) this->flags = (this->flags & ~SEF_BUTTONS_MASK) | new_val; } -/** Return numbers of rows needed to display the (filtered) entry */ +/** Return number of rows needed to display the (filtered) entry */ uint SettingEntry::Length() const { - if (this->IsFiltered()) return 0; - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - return 1; - case SEF_SUBTREE_KIND: - if (this->d.sub.folded) return 1; // Only displaying the title - - return 1 + this->d.sub.page->Length(); // 1 extra row for the title - default: NOT_REACHED(); - } -} - -/** - * Find setting entry at row \a row_num - * @param row_num Index of entry to return - * @param cur_row Current row number - * @return The requested setting entry or \c NULL if it not found (folded or filtered) - */ -SettingEntry *SettingEntry::FindEntry(uint row_num, uint *cur_row) -{ - if (this->IsFiltered()) return NULL; - if (row_num == *cur_row) return this; - - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - (*cur_row)++; - break; - case SEF_SUBTREE_KIND: - (*cur_row)++; // add one for row containing the title - if (this->d.sub.folded) { - break; - } - - /* sub-page is visible => search it too */ - return this->d.sub.page->FindEntry(row_num, cur_row); - default: NOT_REACHED(); - } - return NULL; + return this->IsFiltered() ? 0 : 1; } /** @@ -1021,20 +996,7 @@ SettingEntry *SettingEntry::FindEntry(uint row_num, uint *cur_row) */ uint SettingEntry::GetMaxHelpHeight(int maxw) { - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: return GetStringHeight(this->GetHelpText(), maxw); - case SEF_SUBTREE_KIND: return this->d.sub.page->GetMaxHelpHeight(maxw); - default: NOT_REACHED(); - } -} - -/** - * Check whether an entry is hidden due to filters - * @return true if hidden. - */ -bool SettingEntry::IsFiltered() const -{ - return (this->flags & SEF_FILTERED) != 0; + return GetStringHeight(this->GetHelpText(), maxw); } /** @@ -1048,11 +1010,10 @@ bool SettingEntry::IsVisibleByRestrictionMode(RestrictionMode mode) const if (mode == RM_ALL) return true; GameSettings *settings_ptr = &GetGameSettings(); - assert((this->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); - const SettingDesc *sd = this->d.entry.setting; + const SettingDesc *sd = this->setting; - if (mode == RM_BASIC) return (this->d.entry.setting->desc.cat & SC_BASIC_LIST) != 0; - if (mode == RM_ADVANCED) return (this->d.entry.setting->desc.cat & SC_ADVANCED_LIST) != 0; + if (mode == RM_BASIC) return (this->setting->desc.cat & SC_BASIC_LIST) != 0; + if (mode == RM_ADVANCED) return (this->setting->desc.cat & SC_ADVANCED_LIST) != 0; /* Read the current value. */ const void *var = ResolveVariableAddress(settings_ptr, sd); @@ -1092,136 +1053,36 @@ bool SettingEntry::UpdateFilterState(SettingFilter &filter, bool force_visible) CLRBITS(this->flags, SEF_FILTERED); bool visible = true; - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: { - const SettingDesc *sd = this->d.entry.setting; - if (!force_visible && !filter.string.IsEmpty()) { - /* Process the search text filter for this item. */ - filter.string.ResetState(); - const SettingDescBase *sdb = &sd->desc; + const SettingDesc *sd = this->setting; + if (!force_visible && !filter.string.IsEmpty()) { + /* Process the search text filter for this item. */ + filter.string.ResetState(); - SetDParam(0, STR_EMPTY); - filter.string.AddLine(sdb->str); - filter.string.AddLine(this->GetHelpText()); + const SettingDescBase *sdb = &sd->desc; - visible = filter.string.GetState(); - } - if (visible) { - if (filter.type != ST_ALL && sd->GetType() != filter.type) { - filter.type_hides = true; - visible = false; - } - if (!this->IsVisibleByRestrictionMode(filter.mode)) { - while (filter.min_cat < RM_ALL && (filter.min_cat == filter.mode || !this->IsVisibleByRestrictionMode(filter.min_cat))) filter.min_cat++; - visible = false; - } - } - break; + SetDParam(0, STR_EMPTY); + filter.string.AddLine(sdb->str); + filter.string.AddLine(this->GetHelpText()); + + visible = filter.string.GetState(); + } + + if (visible) { + if (filter.type != ST_ALL && sd->GetType() != filter.type) { + filter.type_hides = true; + visible = false; } - case SEF_SUBTREE_KIND: { - if (!force_visible && !filter.string.IsEmpty()) { - filter.string.ResetState(); - filter.string.AddLine(this->d.sub.title); - force_visible = filter.string.GetState(); - } - visible = this->d.sub.page->UpdateFilterState(filter, force_visible); - break; + if (!this->IsVisibleByRestrictionMode(filter.mode)) { + while (filter.min_cat < RM_ALL && (filter.min_cat == filter.mode || !this->IsVisibleByRestrictionMode(filter.min_cat))) filter.min_cat++; + visible = false; } - default: NOT_REACHED(); } if (!visible) SETBITS(this->flags, SEF_FILTERED); return visible; } - - -/** - * Draw a row in the settings panel. - * - * See SettingsPage::Draw() for an explanation about how drawing is performed. - * - * The \a parent_last parameter ensures that the vertical lines at the left are - * only drawn when another entry follows, that it prevents output like - * \verbatim - * |-- setting - * |-- (-) - Title - * | |-- setting - * | |-- setting - * \endverbatim - * The left-most vertical line is not wanted. It is prevented by setting the - * appropriate bit in the \a parent_last parameter. - * - * @param settings_ptr Pointer to current values of all settings - * @param left Left-most position in window/panel to start drawing \a first_row - * @param right Right-most x position to draw strings at. - * @param base_y Upper-most position in window/panel to start drawing \a first_row - * @param first_row First row number to draw - * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) - * @param cur_row Current row number (internal variable) - * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) - * @param selected Selected entry by the user. - * @return Row number of the next row to draw - */ -uint SettingEntry::Draw(GameSettings *settings_ptr, int left, int right, int base_y, uint first_row, uint max_row, uint cur_row, uint parent_last, SettingEntry *selected) -{ - if (this->IsFiltered()) return cur_row; - if (cur_row >= max_row) return cur_row; - - bool rtl = _current_text_dir == TD_RTL; - int offset = rtl ? -4 : 4; - int level_width = rtl ? -LEVEL_WIDTH : LEVEL_WIDTH; - - int x = rtl ? right : left; - int y = base_y; - if (cur_row >= first_row) { - int colour = _colour_gradient[COLOUR_ORANGE][4]; - y = base_y + (cur_row - first_row) * SETTING_HEIGHT; // Compute correct y start position - - /* Draw vertical for parent nesting levels */ - for (uint lvl = 0; lvl < this->level; lvl++) { - if (!HasBit(parent_last, lvl)) GfxDrawLine(x + offset, y, x + offset, y + SETTING_HEIGHT - 1, colour); - x += level_width; - } - /* draw own |- prefix */ - int halfway_y = y + SETTING_HEIGHT / 2; - int bottom_y = (flags & SEF_LAST_FIELD) ? halfway_y : y + SETTING_HEIGHT - 1; - GfxDrawLine(x + offset, y, x + offset, bottom_y, colour); - /* Small horizontal line from the last vertical line */ - GfxDrawLine(x + offset, halfway_y, x + level_width - offset, halfway_y, colour); - x += level_width; - } - - switch (this->flags & SEF_KIND_MASK) { - case SEF_SETTING_KIND: - if (cur_row >= first_row) { - this->DrawSetting(settings_ptr, rtl ? left : x, rtl ? x : right, y, this->flags & SEF_BUTTONS_MASK, - this == selected); - } - cur_row++; - break; - case SEF_SUBTREE_KIND: - if (cur_row >= first_row) { - Dimension d = GetSpriteSize(SPR_CIRCLE_UNFOLDED); - DrawSprite((this->d.sub.folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED), PAL_NONE, rtl ? x - d.width : x, Center(y, SETTING_HEIGHT, d.height)); - DrawString(rtl ? left : x + d.width + 2, rtl ? x - (d.width + 2) : right, Center(y, SETTING_HEIGHT), this->d.sub.title); - } - cur_row++; - if (!this->d.sub.folded) { - if (this->flags & SEF_LAST_FIELD) { - assert(this->level < sizeof(parent_last)); - SetBit(parent_last, this->level); // Add own last-field state - } - - cur_row = this->d.sub.page->Draw(settings_ptr, left, right, base_y, first_row, max_row, selected, cur_row, parent_last); - } - break; - default: NOT_REACHED(); - } - return cur_row; -} - static const void *ResolveVariableAddress(const GameSettings *settings_ptr, const SettingDesc *sd) { if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { @@ -1240,10 +1101,9 @@ static const void *ResolveVariableAddress(const GameSettings *settings_ptr, cons * @param first_param First DParam to use * @param value Setting value to set params for. */ -void SettingEntry::SetValueDParams(uint first_param, int32 value) +void SettingEntry::SetValueDParams(uint first_param, int32 value) const { - assert((this->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); - const SettingDescBase *sdb = &this->d.entry.setting->desc; + const SettingDescBase *sdb = &this->setting->desc; if (sdb->cmd == SDT_BOOLX) { SetDParam(first_param++, value != 0 ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF); } else { @@ -1260,19 +1120,19 @@ void SettingEntry::SetValueDParams(uint first_param, int32 value) } /** - * Private function to draw setting value (button + text + current value) + * Function to draw setting value (button + text + current value) * @param settings_ptr Pointer to current values of all settings * @param left Left-most position in window/panel to start drawing * @param right Right-most position in window/panel to draw * @param y Upper-most position in window/panel to start drawing - * @param state State of the left + right arrow buttons to draw for the setting * @param highlight Highlight entry. */ -void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right, int y, int state, bool highlight) +void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right, int y, bool highlight) const { - const SettingDesc *sd = this->d.entry.setting; + const SettingDesc *sd = this->setting; const SettingDescBase *sdb = &sd->desc; const void *var = ResolveVariableAddress(settings_ptr, sd); + int state = this->flags & SEF_BUTTONS_MASK; bool rtl = _current_text_dir == TD_RTL; uint buttons_left = rtl ? right + 1 - SETTING_BUTTON_WIDTH : left; @@ -1300,33 +1160,32 @@ void SettingEntry::DrawSetting(GameSettings *settings_ptr, int left, int right, DrawString(text_left, text_right, Center(y, SETTING_HEIGHT), sdb->str, highlight ? TC_WHITE : TC_LIGHT_BLUE); } - -/* == SettingsPage methods == */ +/* == SettingsContainer methods == */ /** * Initialization of an entire setting page * @param level Nesting level of this page (internal variable, do not provide a value for it when calling) */ -void SettingsPage::Init(byte level) +void SettingsContainer::Init(byte level) { - for (uint field = 0; field < this->num; field++) { - this->entries[field].Init(level); + for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + (*it)->Init(level); } } /** Recursively close all folds of sub-pages */ -void SettingsPage::FoldAll() +void SettingsContainer::FoldAll() { - for (uint field = 0; field < this->num; field++) { - this->entries[field].FoldAll(); + for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + (*it)->FoldAll(); } } /** Recursively open all folds of sub-pages */ -void SettingsPage::UnFoldAll() +void SettingsContainer::UnFoldAll() { - for (uint field = 0; field < this->num; field++) { - this->entries[field].UnFoldAll(); + for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + (*it)->UnFoldAll(); } } @@ -1335,10 +1194,10 @@ void SettingsPage::UnFoldAll() * @param[in,out] all_folded Set to false, if one entry is not folded. * @param[in,out] all_unfolded Set to false, if one entry is folded. */ -void SettingsPage::GetFoldingState(bool &all_folded, bool &all_unfolded) const +void SettingsContainer::GetFoldingState(bool &all_folded, bool &all_unfolded) const { - for (uint field = 0; field < this->num; field++) { - this->entries[field].GetFoldingState(all_folded, all_unfolded); + for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + (*it)->GetFoldingState(all_folded, all_unfolded); } } @@ -1348,13 +1207,13 @@ void SettingsPage::GetFoldingState(bool &all_folded, bool &all_unfolded) const * @param force_visible Whether to force all items visible, no matter what * @return true if item remains visible */ -bool SettingsPage::UpdateFilterState(SettingFilter &filter, bool force_visible) +bool SettingsContainer::UpdateFilterState(SettingFilter &filter, bool force_visible) { bool visible = false; bool first_visible = true; - for (int field = this->num - 1; field >= 0; field--) { - visible |= this->entries[field].UpdateFilterState(filter, force_visible); - this->entries[field].SetLastField(first_visible); + for (EntryVector::reverse_iterator it = this->entries.rbegin(); it != this->entries.rend(); ++it) { + visible |= (*it)->UpdateFilterState(filter, force_visible); + (*it)->SetLastField(first_visible); if (visible && first_visible) first_visible = false; } return visible; @@ -1363,24 +1222,24 @@ bool SettingsPage::UpdateFilterState(SettingFilter &filter, bool force_visible) /** * Check whether an entry is visible and not folded or filtered away. - * Note: This does not consider the scrolling range; it might still require scrolling ot make the setting really visible. + * Note: This does not consider the scrolling range; it might still require scrolling to make the setting really visible. * @param item Entry to search for. * @return true if entry is visible. */ -bool SettingsPage::IsVisible(const SettingEntry *item) const +bool SettingsContainer::IsVisible(const BaseSettingEntry *item) const { - for (uint field = 0; field < this->num; field++) { - if (this->entries[field].IsVisible(item)) return true; + for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + if ((*it)->IsVisible(item)) return true; } return false; } /** Return number of rows needed to display the whole page */ -uint SettingsPage::Length() const +uint SettingsContainer::Length() const { uint length = 0; - for (uint field = 0; field < this->num; field++) { - length += this->entries[field].Length(); + for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + length += (*it)->Length(); } return length; } @@ -1391,12 +1250,11 @@ uint SettingsPage::Length() const * @param cur_row Variable used for keeping track of the current row number. Should point to memory initialized to \c 0 when first called. * @return The requested setting entry or \c NULL if it does not exist */ -SettingEntry *SettingsPage::FindEntry(uint row_num, uint *cur_row) const +BaseSettingEntry *SettingsContainer::FindEntry(uint row_num, uint *cur_row) { - SettingEntry *pe = NULL; - - for (uint field = 0; field < this->num; field++) { - pe = this->entries[field].FindEntry(row_num, cur_row); + BaseSettingEntry *pe = NULL; + for (EntryVector::iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + pe = (*it)->FindEntry(row_num, cur_row); if (pe != NULL) { break; } @@ -1409,39 +1267,34 @@ SettingEntry *SettingsPage::FindEntry(uint row_num, uint *cur_row) const * @param maxw Maximal width of a line help text. * @return Biggest height needed to display any help text of this (sub-)tree. */ -uint SettingsPage::GetMaxHelpHeight(int maxw) +uint SettingsContainer::GetMaxHelpHeight(int maxw) { uint biggest = 0; - for (uint field = 0; field < this->num; field++) { - biggest = max(biggest, this->entries[field].GetMaxHelpHeight(maxw)); + for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + biggest = max(biggest, (*it)->GetMaxHelpHeight(maxw)); } return biggest; } + /** - * Draw a selected part of the settings page. - * - * The scrollbar uses rows of the page, while the page data structure is a tree of #SettingsPage and #SettingEntry objects. - * As a result, the drawing routing traverses the tree from top to bottom, counting rows in \a cur_row until it reaches \a first_row. - * Then it enables drawing rows while traversing until \a max_row is reached, at which point drawing is terminated. + * Draw a row in the settings panel. * * @param settings_ptr Pointer to current values of all settings - * @param left Left-most position in window/panel to start drawing of each setting row - * @param right Right-most position in window/panel to draw at - * @param base_y Upper-most position in window/panel to start drawing of row number \a first_row - * @param first_row Number of first row to draw + * @param left Left-most position in window/panel to start drawing \a first_row + * @param right Right-most x position to draw strings at. + * @param y Upper-most position in window/panel to start drawing \a first_row + * @param first_row First row number to draw * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) + * @param selected Selected entry by the user. * @param cur_row Current row number (internal variable) * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) - * @param selected Selected entry by the user. * @return Row number of the next row to draw */ -uint SettingsPage::Draw(GameSettings *settings_ptr, int left, int right, int base_y, uint first_row, uint max_row, SettingEntry *selected, uint cur_row, uint parent_last) const +uint SettingsContainer::Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row, uint parent_last) const { - if (cur_row >= max_row) return cur_row; - - for (uint i = 0; i < this->num; i++) { - cur_row = this->entries[i].Draw(settings_ptr, left, right, base_y, first_row, max_row, cur_row, parent_last, selected); + for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { + cur_row = (*it)->Draw(settings_ptr, left, right, y, first_row, max_row, selected, cur_row, parent_last); if (cur_row >= max_row) { break; } @@ -1449,326 +1302,468 @@ uint SettingsPage::Draw(GameSettings *settings_ptr, int left, int right, int bas return cur_row; } +/* == SettingsPage methods == */ -static SettingEntry _settings_ui_localisation[] = { - SettingEntry("locale.units_velocity"), - SettingEntry("locale.units_power"), - SettingEntry("locale.units_weight"), - SettingEntry("locale.units_volume"), - SettingEntry("locale.units_force"), - SettingEntry("locale.units_height"), -}; -/** Localisation options sub-page */ -static SettingsPage _settings_ui_localisation_page = {_settings_ui_localisation, lengthof(_settings_ui_localisation)}; +/** + * Constructor for a sub-page in the 'advanced settings' window + * @param title Title of the sub-page + */ +SettingsPage::SettingsPage(StringID title) +{ + this->title = title; + this->folded = true; +} -static SettingEntry _settings_ui_display[] = { - SettingEntry("gui.date_format_in_default_names"), - SettingEntry("gui.population_in_label"), - SettingEntry("gui.measure_tooltip"), - SettingEntry("gui.loading_indicators"), - SettingEntry("gui.liveries"), - SettingEntry("gui.show_track_reservation"), - SettingEntry("gui.expenses_layout"), - SettingEntry("gui.smallmap_land_colour"), - SettingEntry("gui.zoom_min"), - SettingEntry("gui.zoom_max"), - SettingEntry("gui.graph_line_thickness"), -}; -/** Display options sub-page */ -static SettingsPage _settings_ui_display_page = {_settings_ui_display, lengthof(_settings_ui_display)}; +/** + * Initialization of an entire setting page + * @param level Nesting level of this page (internal variable, do not provide a value for it when calling) + */ +void SettingsPage::Init(byte level) +{ + BaseSettingEntry::Init(level); + SettingsContainer::Init(level + 1); +} -static SettingEntry _settings_ui_interaction[] = { - SettingEntry("gui.window_snap_radius"), - SettingEntry("gui.window_soft_limit"), - SettingEntry("gui.link_terraform_toolbar"), - SettingEntry("gui.prefer_teamchat"), - SettingEntry("gui.auto_scrolling"), - SettingEntry("gui.reverse_scroll"), - SettingEntry("gui.smooth_scroll"), - SettingEntry("gui.left_mouse_btn_scrolling"), - /* While the horizontal scrollwheel scrolling is written as general code, only - * the cocoa (OSX) driver generates input for it. - * Since it's also able to completely disable the scrollwheel will we display it on all platforms anyway */ - SettingEntry("gui.scrollwheel_scrolling"), - SettingEntry("gui.scrollwheel_multiplier"), - SettingEntry("gui.osk_activation"), +/** Recursively close all (filtered) folds of sub-pages */ +void SettingsPage::FoldAll() +{ + if (this->IsFiltered()) return; + this->folded = true; + + SettingsContainer::FoldAll(); +} + +/** Recursively open all (filtered) folds of sub-pages */ +void SettingsPage::UnFoldAll() +{ + if (this->IsFiltered()) return; + this->folded = false; + + SettingsContainer::UnFoldAll(); +} + +/** + * Recursively accumulate the folding state of the (filtered) tree. + * @param[in,out] all_folded Set to false, if one entry is not folded. + * @param[in,out] all_unfolded Set to false, if one entry is folded. + */ +void SettingsPage::GetFoldingState(bool &all_folded, bool &all_unfolded) const +{ + if (this->IsFiltered()) return; + + if (this->folded) { + all_unfolded = false; + } else { + all_folded = false; + } + + SettingsContainer::GetFoldingState(all_folded, all_unfolded); +} + +/** + * Update the filter state. + * @param filter Filter + * @param force_visible Whether to force all items visible, no matter what (due to filter text; not affected by restriction drop down box). + * @return true if item remains visible + */ +bool SettingsPage::UpdateFilterState(SettingFilter &filter, bool force_visible) +{ + if (!force_visible && !filter.string.IsEmpty()) { + filter.string.ResetState(); + filter.string.AddLine(this->title); + force_visible = filter.string.GetState(); + } + + bool visible = SettingsContainer::UpdateFilterState(filter, force_visible); + if (visible) { + CLRBITS(this->flags, SEF_FILTERED); + } else { + SETBITS(this->flags, SEF_FILTERED); + } + return visible; +} + +/** + * Check whether an entry is visible and not folded or filtered away. + * Note: This does not consider the scrolling range; it might still require scrolling to make the setting really visible. + * @param item Entry to search for. + * @return true if entry is visible. + */ +bool SettingsPage::IsVisible(const BaseSettingEntry *item) const +{ + if (this->IsFiltered()) return false; + if (this == item) return true; + if (this->folded) return false; + + return SettingsContainer::IsVisible(item); +} + +/** Return number of rows needed to display the (filtered) entry */ +uint SettingsPage::Length() const +{ + if (this->IsFiltered()) return 0; + if (this->folded) return 1; // Only displaying the title + + return 1 + SettingsContainer::Length(); +} + +/** + * Find setting entry at row \a row_num + * @param row_num Index of entry to return + * @param cur_row Current row number + * @return The requested setting entry or \c NULL if it not found (folded or filtered) + */ +BaseSettingEntry *SettingsPage::FindEntry(uint row_num, uint *cur_row) +{ + if (this->IsFiltered()) return NULL; + if (row_num == *cur_row) return this; + (*cur_row)++; + if (this->folded) return NULL; + + return SettingsContainer::FindEntry(row_num, cur_row); +} + +/** + * Draw a row in the settings panel. + * + * @param settings_ptr Pointer to current values of all settings + * @param left Left-most position in window/panel to start drawing \a first_row + * @param right Right-most x position to draw strings at. + * @param y Upper-most position in window/panel to start drawing \a first_row + * @param first_row First row number to draw + * @param max_row Row-number to stop drawing (the row-number of the row below the last row to draw) + * @param selected Selected entry by the user. + * @param cur_row Current row number (internal variable) + * @param parent_last Last-field booleans of parent page level (page level \e i sets bit \e i to 1 if it is its last field) + * @return Row number of the next row to draw + */ +uint SettingsPage::Draw(GameSettings *settings_ptr, int left, int right, int y, uint first_row, uint max_row, BaseSettingEntry *selected, uint cur_row, uint parent_last) const +{ + if (this->IsFiltered()) return cur_row; + if (cur_row >= max_row) return cur_row; + + cur_row = BaseSettingEntry::Draw(settings_ptr, left, right, y, first_row, max_row, selected, cur_row, parent_last); + + if (!this->folded) { + if (this->flags & SEF_LAST_FIELD) { + assert(this->level < 8 * sizeof(parent_last)); + SetBit(parent_last, this->level); // Add own last-field state + } + + cur_row = SettingsContainer::Draw(settings_ptr, left, right, y, first_row, max_row, selected, cur_row, parent_last); + } + + return cur_row; +} + +/** + * Function to draw setting value (button + text + current value) + * @param settings_ptr Pointer to current values of all settings + * @param left Left-most position in window/panel to start drawing + * @param right Right-most position in window/panel to draw + * @param y Upper-most position in window/panel to start drawing + * @param highlight Highlight entry. + */ +void SettingsPage::DrawSetting(GameSettings *settings_ptr, int left, int right, int y, bool highlight) const +{ + bool rtl = _current_text_dir == TD_RTL; + DrawSprite((this->folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED), PAL_NONE, rtl ? right - 8 : left, y + (SETTING_HEIGHT - 11) / 2); + DrawString(rtl ? left : left + 12, rtl ? right - 12 : right, y, this->title); +} + +/** Construct settings tree */ +static SettingsContainer &GetSettingsTree() +{ + static SettingsContainer *main = NULL; + + if (main == NULL) + { + /* Build up the dynamic settings-array only once per OpenTTD session */ + main = new SettingsContainer(); + + SettingsPage *localisation = main->Add(new SettingsPage(STR_CONFIG_SETTING_LOCALISATION)); + { + localisation->Add(new SettingEntry("locale.units_velocity")); + localisation->Add(new SettingEntry("locale.units_power")); + localisation->Add(new SettingEntry("locale.units_weight")); + localisation->Add(new SettingEntry("locale.units_volume")); + localisation->Add(new SettingEntry("locale.units_force")); + localisation->Add(new SettingEntry("locale.units_height")); + localisation->Add(new SettingEntry("gui.date_format_in_default_names")); + } + + SettingsPage *graphics = main->Add(new SettingsPage(STR_CONFIG_SETTING_GRAPHICS)); + { + graphics->Add(new SettingEntry("gui.zoom_min")); + graphics->Add(new SettingEntry("gui.zoom_max")); + graphics->Add(new SettingEntry("gui.smallmap_land_colour")); + graphics->Add(new SettingEntry("gui.graph_line_thickness")); + } + + SettingsPage *sound = main->Add(new SettingsPage(STR_CONFIG_SETTING_SOUND)); + { + sound->Add(new SettingEntry("sound.click_beep")); + sound->Add(new SettingEntry("sound.confirm")); + sound->Add(new SettingEntry("sound.news_ticker")); + sound->Add(new SettingEntry("sound.news_full")); + sound->Add(new SettingEntry("sound.new_year")); + sound->Add(new SettingEntry("sound.disaster")); + sound->Add(new SettingEntry("sound.vehicle")); + sound->Add(new SettingEntry("sound.ambient")); + } + + SettingsPage *interface = main->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE)); + { + SettingsPage *general = interface->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE_GENERAL)); + { + general->Add(new SettingEntry("gui.osk_activation")); + general->Add(new SettingEntry("gui.hover_delay")); + general->Add(new SettingEntry("gui.errmsg_duration")); + general->Add(new SettingEntry("gui.window_snap_radius")); + general->Add(new SettingEntry("gui.window_soft_limit")); + } + + SettingsPage *viewports = interface->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE_VIEWPORTS)); + { + viewports->Add(new SettingEntry("gui.auto_scrolling")); + viewports->Add(new SettingEntry("gui.reverse_scroll")); + viewports->Add(new SettingEntry("gui.smooth_scroll")); + viewports->Add(new SettingEntry("gui.left_mouse_btn_scrolling")); + /* While the horizontal scrollwheel scrolling is written as general code, only + * the cocoa (OSX) driver generates input for it. + * Since it's also able to completely disable the scrollwheel will we display it on all platforms anyway */ + viewports->Add(new SettingEntry("gui.scrollwheel_scrolling")); + viewports->Add(new SettingEntry("gui.scrollwheel_multiplier")); #ifdef __APPLE__ - /* We might need to emulate a right mouse button on mac */ - SettingEntry("gui.right_mouse_btn_emulation"), + /* We might need to emulate a right mouse button on mac */ + viewports->Add(new SettingEntry("gui.right_mouse_btn_emulation")); #endif -}; -/** Interaction sub-page */ -static SettingsPage _settings_ui_interaction_page = {_settings_ui_interaction, lengthof(_settings_ui_interaction)}; + viewports->Add(new SettingEntry("gui.population_in_label")); + viewports->Add(new SettingEntry("gui.liveries")); + viewports->Add(new SettingEntry("construction.train_signal_side")); + viewports->Add(new SettingEntry("gui.measure_tooltip")); + viewports->Add(new SettingEntry("gui.loading_indicators")); + viewports->Add(new SettingEntry("gui.show_track_reservation")); + } -static SettingEntry _settings_ui_sound[] = { - SettingEntry("sound.click_beep"), - SettingEntry("sound.confirm"), - SettingEntry("sound.news_ticker"), - SettingEntry("sound.news_full"), - SettingEntry("sound.new_year"), - SettingEntry("sound.disaster"), - SettingEntry("sound.vehicle"), - SettingEntry("sound.ambient"), -}; -/** Sound effects sub-page */ -static SettingsPage _settings_ui_sound_page = {_settings_ui_sound, lengthof(_settings_ui_sound)}; + SettingsPage *construction = interface->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION)); + { + construction->Add(new SettingEntry("gui.link_terraform_toolbar")); + construction->Add(new SettingEntry("gui.enable_signal_gui")); + construction->Add(new SettingEntry("gui.persistent_buildingtools")); + construction->Add(new SettingEntry("gui.quick_goto")); + construction->Add(new SettingEntry("gui.default_rail_type")); + construction->Add(new SettingEntry("gui.disable_unsuitable_building")); + } -static SettingEntry _settings_ui_news[] = { - SettingEntry("news_display.arrival_player"), - SettingEntry("news_display.arrival_other"), - SettingEntry("news_display.accident"), - SettingEntry("news_display.company_info"), - SettingEntry("news_display.open"), - SettingEntry("news_display.close"), - SettingEntry("news_display.economy"), - SettingEntry("news_display.production_player"), - SettingEntry("news_display.production_other"), - SettingEntry("news_display.production_nobody"), - SettingEntry("news_display.advice"), - SettingEntry("news_display.new_vehicles"), - SettingEntry("news_display.acceptance"), - SettingEntry("news_display.subsidies"), - SettingEntry("news_display.general"), - SettingEntry("gui.coloured_news_year"), -}; -/** News sub-page */ -static SettingsPage _settings_ui_news_page = {_settings_ui_news, lengthof(_settings_ui_news)}; + interface->Add(new SettingEntry("gui.autosave")); + interface->Add(new SettingEntry("gui.toolbar_pos")); + interface->Add(new SettingEntry("gui.statusbar_pos")); + interface->Add(new SettingEntry("gui.prefer_teamchat")); + interface->Add(new SettingEntry("gui.advanced_vehicle_list")); + interface->Add(new SettingEntry("gui.timetable_in_ticks")); + interface->Add(new SettingEntry("gui.timetable_arrival_departure")); + interface->Add(new SettingEntry("gui.expenses_layout")); + } -static SettingEntry _settings_ui[] = { - SettingEntry(&_settings_ui_localisation_page, STR_CONFIG_SETTING_LOCALISATION), - SettingEntry(&_settings_ui_display_page, STR_CONFIG_SETTING_DISPLAY_OPTIONS), - SettingEntry(&_settings_ui_interaction_page, STR_CONFIG_SETTING_INTERACTION), - SettingEntry(&_settings_ui_sound_page, STR_CONFIG_SETTING_SOUND), - SettingEntry(&_settings_ui_news_page, STR_CONFIG_SETTING_NEWS), - SettingEntry("gui.vertical_toolbar"), - SettingEntry("gui.show_finances"), - SettingEntry("gui.errmsg_duration"), - SettingEntry("gui.hover_delay"), - SettingEntry("gui.toolbar_pos"), - SettingEntry("gui.statusbar_pos"), - SettingEntry("gui.newgrf_default_palette"), - SettingEntry("gui.pause_on_newgame"), - SettingEntry("gui.advanced_vehicle_list"), - SettingEntry("gui.timetable_in_ticks"), - SettingEntry("gui.timetable_arrival_departure"), - SettingEntry("gui.quick_goto"), - SettingEntry("gui.default_rail_type"), - SettingEntry("gui.disable_unsuitable_building"), - SettingEntry("gui.persistent_buildingtools"), -}; -/** Interface subpage */ -static SettingsPage _settings_ui_page = {_settings_ui, lengthof(_settings_ui)}; + SettingsPage *advisors = main->Add(new SettingsPage(STR_CONFIG_SETTING_ADVISORS)); + { + advisors->Add(new SettingEntry("gui.coloured_news_year")); + advisors->Add(new SettingEntry("news_display.general")); + advisors->Add(new SettingEntry("news_display.new_vehicles")); + advisors->Add(new SettingEntry("news_display.accident")); + advisors->Add(new SettingEntry("news_display.company_info")); + advisors->Add(new SettingEntry("news_display.acceptance")); + advisors->Add(new SettingEntry("news_display.arrival_player")); + advisors->Add(new SettingEntry("news_display.arrival_other")); + advisors->Add(new SettingEntry("news_display.advice")); + advisors->Add(new SettingEntry("gui.order_review_system")); + advisors->Add(new SettingEntry("gui.vehicle_income_warn")); + advisors->Add(new SettingEntry("gui.lost_vehicle_warn")); + advisors->Add(new SettingEntry("gui.show_finances")); + advisors->Add(new SettingEntry("news_display.economy")); + advisors->Add(new SettingEntry("news_display.subsidies")); + advisors->Add(new SettingEntry("news_display.open")); + advisors->Add(new SettingEntry("news_display.close")); + advisors->Add(new SettingEntry("news_display.production_player")); + advisors->Add(new SettingEntry("news_display.production_other")); + advisors->Add(new SettingEntry("news_display.production_nobody")); + } -static SettingEntry _settings_construction_signals[] = { - SettingEntry("construction.train_signal_side"), - SettingEntry("gui.enable_signal_gui"), - SettingEntry("gui.drag_signals_fixed_distance"), - SettingEntry("gui.semaphore_build_before"), - SettingEntry("gui.default_signal_type"), - SettingEntry("gui.cycle_signal_types"), -}; -/** Signals subpage */ -static SettingsPage _settings_construction_signals_page = {_settings_construction_signals, lengthof(_settings_construction_signals)}; + SettingsPage *company = main->Add(new SettingsPage(STR_CONFIG_SETTING_COMPANY)); + { + company->Add(new SettingEntry("gui.semaphore_build_before")); + company->Add(new SettingEntry("gui.default_signal_type")); + company->Add(new SettingEntry("gui.cycle_signal_types")); + company->Add(new SettingEntry("gui.drag_signals_fixed_distance")); + company->Add(new SettingEntry("gui.new_nonstop")); + company->Add(new SettingEntry("gui.stop_location")); + company->Add(new SettingEntry("company.engine_renew")); + company->Add(new SettingEntry("company.engine_renew_months")); + company->Add(new SettingEntry("company.engine_renew_money")); + company->Add(new SettingEntry("vehicle.servint_ispercent")); + company->Add(new SettingEntry("vehicle.servint_trains")); + company->Add(new SettingEntry("vehicle.servint_roadveh")); + company->Add(new SettingEntry("vehicle.servint_ships")); + company->Add(new SettingEntry("vehicle.servint_aircraft")); + } -static SettingEntry _settings_construction[] = { - SettingEntry(&_settings_construction_signals_page, STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS), - SettingEntry("construction.build_on_slopes"), - SettingEntry("construction.autoslope"), - SettingEntry("construction.extra_dynamite"), - SettingEntry("construction.max_bridge_length"), - SettingEntry("construction.max_tunnel_length"), - SettingEntry("station.never_expire_airports"), - SettingEntry("construction.freeform_edges"), - SettingEntry("construction.extra_tree_placement"), - SettingEntry("construction.command_pause_level"), -}; -/** Construction sub-page */ -static SettingsPage _settings_construction_page = {_settings_construction, lengthof(_settings_construction)}; + SettingsPage *accounting = main->Add(new SettingsPage(STR_CONFIG_SETTING_ACCOUNTING)); + { + accounting->Add(new SettingEntry("economy.inflation")); + accounting->Add(new SettingEntry("difficulty.initial_interest")); + accounting->Add(new SettingEntry("difficulty.max_loan")); + accounting->Add(new SettingEntry("difficulty.subsidy_multiplier")); + accounting->Add(new SettingEntry("economy.feeder_payment_share")); + accounting->Add(new SettingEntry("economy.infrastructure_maintenance")); + accounting->Add(new SettingEntry("difficulty.vehicle_costs")); + accounting->Add(new SettingEntry("difficulty.construction_cost")); + } -static SettingEntry _settings_stations_cargo[] = { - SettingEntry("order.improved_load"), - SettingEntry("order.gradual_loading"), - SettingEntry("order.selectgoods"), -}; -/** Cargo handling sub-page */ -static SettingsPage _settings_stations_cargo_page = {_settings_stations_cargo, lengthof(_settings_stations_cargo)}; + SettingsPage *vehicles = main->Add(new SettingsPage(STR_CONFIG_SETTING_VEHICLES)); + { + SettingsPage *physics = vehicles->Add(new SettingsPage(STR_CONFIG_SETTING_VEHICLES_PHYSICS)); + { + physics->Add(new SettingEntry("vehicle.train_acceleration_model")); + physics->Add(new SettingEntry("vehicle.train_slope_steepness")); + physics->Add(new SettingEntry("vehicle.wagon_speed_limits")); + physics->Add(new SettingEntry("vehicle.freight_trains")); + physics->Add(new SettingEntry("vehicle.roadveh_acceleration_model")); + physics->Add(new SettingEntry("vehicle.roadveh_slope_steepness")); + physics->Add(new SettingEntry("vehicle.smoke_amount")); + physics->Add(new SettingEntry("vehicle.plane_speed")); + } -static SettingEntry _settings_stations[] = { - SettingEntry(&_settings_stations_cargo_page, STR_CONFIG_SETTING_STATIONS_CARGOHANDLING), - SettingEntry("station.adjacent_stations"), - SettingEntry("station.distant_join_stations"), - SettingEntry("station.station_spread"), - SettingEntry("economy.station_noise_level"), - SettingEntry("station.modified_catchment"), - SettingEntry("construction.road_stop_on_town_road"), - SettingEntry("construction.road_stop_on_competitor_road"), -}; -/** Stations sub-page */ -static SettingsPage _settings_stations_page = {_settings_stations, lengthof(_settings_stations)}; + SettingsPage *routing = vehicles->Add(new SettingsPage(STR_CONFIG_SETTING_VEHICLES_ROUTING)); + { + routing->Add(new SettingEntry("pf.pathfinder_for_trains")); + routing->Add(new SettingEntry("difficulty.line_reverse_mode")); + routing->Add(new SettingEntry("pf.reverse_at_signals")); + routing->Add(new SettingEntry("pf.forbid_90_deg")); + routing->Add(new SettingEntry("pf.pathfinder_for_roadvehs")); + routing->Add(new SettingEntry("pf.pathfinder_for_ships")); + } -static SettingEntry _settings_economy_towns[] = { - SettingEntry("difficulty.town_council_tolerance"), - SettingEntry("economy.bribe"), - SettingEntry("economy.exclusive_rights"), - SettingEntry("economy.fund_roads"), - SettingEntry("economy.fund_buildings"), - SettingEntry("economy.town_layout"), - SettingEntry("economy.allow_town_roads"), - SettingEntry("economy.allow_town_level_crossings"), - SettingEntry("economy.found_town"), - SettingEntry("economy.mod_road_rebuild"), - SettingEntry("economy.town_growth_rate"), - SettingEntry("economy.larger_towns"), - SettingEntry("economy.initial_city_size"), -}; -/** Towns sub-page */ -static SettingsPage _settings_economy_towns_page = {_settings_economy_towns, lengthof(_settings_economy_towns)}; + vehicles->Add(new SettingEntry("order.no_servicing_if_no_breakdowns")); + vehicles->Add(new SettingEntry("order.serviceathelipad")); + } -static SettingEntry _settings_economy_industries[] = { - SettingEntry("construction.raw_industry_construction"), - SettingEntry("construction.industry_platform"), - SettingEntry("economy.multiple_industry_per_town"), - SettingEntry("game_creation.oil_refinery_limit"), -}; -/** Industries sub-page */ -static SettingsPage _settings_economy_industries_page = {_settings_economy_industries, lengthof(_settings_economy_industries)}; + SettingsPage *limitations = main->Add(new SettingsPage(STR_CONFIG_SETTING_LIMITATIONS)); + { + limitations->Add(new SettingEntry("construction.command_pause_level")); + limitations->Add(new SettingEntry("construction.autoslope")); + limitations->Add(new SettingEntry("construction.extra_dynamite")); + limitations->Add(new SettingEntry("construction.max_bridge_length")); + limitations->Add(new SettingEntry("construction.max_tunnel_length")); + limitations->Add(new SettingEntry("station.never_expire_airports")); + limitations->Add(new SettingEntry("vehicle.never_expire_vehicles")); + limitations->Add(new SettingEntry("vehicle.max_trains")); + limitations->Add(new SettingEntry("vehicle.max_roadveh")); + limitations->Add(new SettingEntry("vehicle.max_aircraft")); + limitations->Add(new SettingEntry("vehicle.max_ships")); + limitations->Add(new SettingEntry("vehicle.max_train_length")); + limitations->Add(new SettingEntry("station.station_spread")); + limitations->Add(new SettingEntry("station.distant_join_stations")); + limitations->Add(new SettingEntry("construction.road_stop_on_town_road")); + limitations->Add(new SettingEntry("construction.road_stop_on_competitor_road")); + limitations->Add(new SettingEntry("vehicle.disable_elrails")); + } + SettingsPage *disasters = main->Add(new SettingsPage(STR_CONFIG_SETTING_ACCIDENTS)); + { + disasters->Add(new SettingEntry("difficulty.disasters")); + disasters->Add(new SettingEntry("difficulty.economy")); + disasters->Add(new SettingEntry("difficulty.vehicle_breakdowns")); + disasters->Add(new SettingEntry("vehicle.plane_crashes")); + } -static SettingEntry _settings_economy[] = { - SettingEntry(&_settings_economy_towns_page, STR_CONFIG_SETTING_ECONOMY_TOWNS), - SettingEntry(&_settings_economy_industries_page, STR_CONFIG_SETTING_ECONOMY_INDUSTRIES), - SettingEntry("economy.inflation"), - SettingEntry("difficulty.initial_interest"), - SettingEntry("difficulty.max_loan"), - SettingEntry("difficulty.subsidy_multiplier"), - SettingEntry("difficulty.economy"), - SettingEntry("economy.smooth_economy"), - SettingEntry("economy.feeder_payment_share"), - SettingEntry("economy.infrastructure_maintenance"), - SettingEntry("difficulty.vehicle_costs"), - SettingEntry("difficulty.construction_cost"), - SettingEntry("difficulty.disasters"), -}; -/** Economy sub-page */ -static SettingsPage _settings_economy_page = {_settings_economy, lengthof(_settings_economy)}; + SettingsPage *genworld = main->Add(new SettingsPage(STR_CONFIG_SETTING_GENWORLD)); + { + genworld->Add(new SettingEntry("game_creation.landscape")); + genworld->Add(new SettingEntry("game_creation.land_generator")); + genworld->Add(new SettingEntry("difficulty.terrain_type")); + genworld->Add(new SettingEntry("game_creation.tgen_smoothness")); + genworld->Add(new SettingEntry("game_creation.variety")); + genworld->Add(new SettingEntry("game_creation.snow_line_height")); + genworld->Add(new SettingEntry("game_creation.amount_of_rivers")); + genworld->Add(new SettingEntry("game_creation.tree_placer")); + genworld->Add(new SettingEntry("vehicle.road_side")); + genworld->Add(new SettingEntry("economy.larger_towns")); + genworld->Add(new SettingEntry("economy.initial_city_size")); + genworld->Add(new SettingEntry("economy.town_layout")); + genworld->Add(new SettingEntry("difficulty.industry_density")); + genworld->Add(new SettingEntry("gui.pause_on_newgame")); + } -static SettingEntry _settings_linkgraph[] = { - SettingEntry("linkgraph.recalc_time"), - SettingEntry("linkgraph.recalc_interval"), - SettingEntry("linkgraph.distribution_pax"), - SettingEntry("linkgraph.distribution_mail"), - SettingEntry("linkgraph.distribution_armoured"), - SettingEntry("linkgraph.distribution_default"), - SettingEntry("linkgraph.accuracy"), - SettingEntry("linkgraph.demand_distance"), - SettingEntry("linkgraph.demand_size"), - SettingEntry("linkgraph.short_path_saturation"), -}; -/** Linkgraph sub-page */ -static SettingsPage _settings_linkgraph_page = {_settings_linkgraph, lengthof(_settings_linkgraph)}; + SettingsPage *environment = main->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT)); + { + SettingsPage *authorities = environment->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES)); + { + authorities->Add(new SettingEntry("difficulty.town_council_tolerance")); + authorities->Add(new SettingEntry("economy.bribe")); + authorities->Add(new SettingEntry("economy.exclusive_rights")); + authorities->Add(new SettingEntry("economy.fund_roads")); + authorities->Add(new SettingEntry("economy.fund_buildings")); + authorities->Add(new SettingEntry("economy.station_noise_level")); + } -static SettingEntry _settings_ai_npc[] = { - SettingEntry("script.settings_profile"), - SettingEntry("script.script_max_opcode_till_suspend"), - SettingEntry("difficulty.competitor_speed"), - SettingEntry("ai.ai_in_multiplayer"), - SettingEntry("ai.ai_disable_veh_train"), - SettingEntry("ai.ai_disable_veh_roadveh"), - SettingEntry("ai.ai_disable_veh_aircraft"), - SettingEntry("ai.ai_disable_veh_ship"), -}; -/** Computer players sub-page */ -static SettingsPage _settings_ai_npc_page = {_settings_ai_npc, lengthof(_settings_ai_npc)}; + SettingsPage *towns = environment->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_TOWNS)); + { + towns->Add(new SettingEntry("economy.town_growth_rate")); + towns->Add(new SettingEntry("economy.allow_town_roads")); + towns->Add(new SettingEntry("economy.allow_town_level_crossings")); + towns->Add(new SettingEntry("economy.found_town")); + } -static SettingEntry _settings_ai[] = { - SettingEntry(&_settings_ai_npc_page, STR_CONFIG_SETTING_AI_NPC), - SettingEntry("economy.give_money"), - SettingEntry("economy.allow_shares"), -}; -/** AI sub-page */ -static SettingsPage _settings_ai_page = {_settings_ai, lengthof(_settings_ai)}; + SettingsPage *industries = environment->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES)); + { + industries->Add(new SettingEntry("construction.raw_industry_construction")); + industries->Add(new SettingEntry("construction.industry_platform")); + industries->Add(new SettingEntry("economy.multiple_industry_per_town")); + industries->Add(new SettingEntry("game_creation.oil_refinery_limit")); + industries->Add(new SettingEntry("economy.smooth_economy")); + } -static SettingEntry _settings_vehicles_routing[] = { - SettingEntry("pf.pathfinder_for_trains"), - SettingEntry("pf.forbid_90_deg"), - SettingEntry("pf.pathfinder_for_roadvehs"), - SettingEntry("pf.roadveh_queue"), - SettingEntry("pf.pathfinder_for_ships"), -}; -/** Autorenew sub-page */ -static SettingsPage _settings_vehicles_routing_page = {_settings_vehicles_routing, lengthof(_settings_vehicles_routing)}; + SettingsPage *cdist = environment->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST)); + { + cdist->Add(new SettingEntry("linkgraph.recalc_time")); + cdist->Add(new SettingEntry("linkgraph.recalc_interval")); + cdist->Add(new SettingEntry("linkgraph.distribution_pax")); + cdist->Add(new SettingEntry("linkgraph.distribution_mail")); + cdist->Add(new SettingEntry("linkgraph.distribution_armoured")); + cdist->Add(new SettingEntry("linkgraph.distribution_default")); + cdist->Add(new SettingEntry("linkgraph.accuracy")); + cdist->Add(new SettingEntry("linkgraph.demand_distance")); + cdist->Add(new SettingEntry("linkgraph.demand_size")); + cdist->Add(new SettingEntry("linkgraph.short_path_saturation")); + } -static SettingEntry _settings_vehicles_autorenew[] = { - SettingEntry("company.engine_renew"), - SettingEntry("company.engine_renew_months"), - SettingEntry("company.engine_renew_money"), -}; -/** Autorenew sub-page */ -static SettingsPage _settings_vehicles_autorenew_page = {_settings_vehicles_autorenew, lengthof(_settings_vehicles_autorenew)}; + environment->Add(new SettingEntry("station.modified_catchment")); + environment->Add(new SettingEntry("construction.extra_tree_placement")); + } -static SettingEntry _settings_vehicles_servicing[] = { - SettingEntry("vehicle.servint_ispercent"), - SettingEntry("vehicle.servint_trains"), - SettingEntry("vehicle.servint_roadveh"), - SettingEntry("vehicle.servint_ships"), - SettingEntry("vehicle.servint_aircraft"), - SettingEntry("difficulty.vehicle_breakdowns"), - SettingEntry("order.no_servicing_if_no_breakdowns"), - SettingEntry("order.serviceathelipad"), -}; -/** Servicing sub-page */ -static SettingsPage _settings_vehicles_servicing_page = {_settings_vehicles_servicing, lengthof(_settings_vehicles_servicing)}; + SettingsPage *ai = main->Add(new SettingsPage(STR_CONFIG_SETTING_AI)); + { + SettingsPage *npc = ai->Add(new SettingsPage(STR_CONFIG_SETTING_AI_NPC)); + { + npc->Add(new SettingEntry("script.settings_profile")); + npc->Add(new SettingEntry("script.script_max_opcode_till_suspend")); + npc->Add(new SettingEntry("difficulty.competitor_speed")); + npc->Add(new SettingEntry("ai.ai_in_multiplayer")); + npc->Add(new SettingEntry("ai.ai_disable_veh_train")); + npc->Add(new SettingEntry("ai.ai_disable_veh_roadveh")); + npc->Add(new SettingEntry("ai.ai_disable_veh_aircraft")); + npc->Add(new SettingEntry("ai.ai_disable_veh_ship")); + } -static SettingEntry _settings_vehicles_trains[] = { - SettingEntry("difficulty.line_reverse_mode"), - SettingEntry("pf.reverse_at_signals"), - SettingEntry("vehicle.train_acceleration_model"), - SettingEntry("vehicle.train_slope_steepness"), - SettingEntry("vehicle.max_train_length"), - SettingEntry("vehicle.wagon_speed_limits"), - SettingEntry("vehicle.disable_elrails"), - SettingEntry("vehicle.freight_trains"), - SettingEntry("gui.stop_location"), -}; -/** Trains sub-page */ -static SettingsPage _settings_vehicles_trains_page = {_settings_vehicles_trains, lengthof(_settings_vehicles_trains)}; + ai->Add(new SettingEntry("economy.give_money")); + ai->Add(new SettingEntry("economy.allow_shares")); + } -static SettingEntry _settings_vehicles[] = { - SettingEntry(&_settings_vehicles_routing_page, STR_CONFIG_SETTING_VEHICLES_ROUTING), - SettingEntry(&_settings_vehicles_autorenew_page, STR_CONFIG_SETTING_VEHICLES_AUTORENEW), - SettingEntry(&_settings_vehicles_servicing_page, STR_CONFIG_SETTING_VEHICLES_SERVICING), - SettingEntry(&_settings_vehicles_trains_page, STR_CONFIG_SETTING_VEHICLES_TRAINS), - SettingEntry("gui.new_nonstop"), - SettingEntry("gui.order_review_system"), - SettingEntry("gui.vehicle_income_warn"), - SettingEntry("gui.lost_vehicle_warn"), - SettingEntry("vehicle.never_expire_vehicles"), - SettingEntry("vehicle.max_trains"), - SettingEntry("vehicle.max_roadveh"), - SettingEntry("vehicle.max_aircraft"), - SettingEntry("vehicle.max_ships"), - SettingEntry("vehicle.plane_speed"), - SettingEntry("vehicle.plane_crashes"), - SettingEntry("vehicle.dynamic_engines"), - SettingEntry("vehicle.roadveh_acceleration_model"), - SettingEntry("vehicle.roadveh_slope_steepness"), - SettingEntry("vehicle.smoke_amount"), -}; -/** Vehicles sub-page */ -static SettingsPage _settings_vehicles_page = {_settings_vehicles, lengthof(_settings_vehicles)}; - -static SettingEntry _settings_main[] = { - SettingEntry(&_settings_ui_page, STR_CONFIG_SETTING_GUI), - SettingEntry(&_settings_construction_page, STR_CONFIG_SETTING_CONSTRUCTION), - SettingEntry(&_settings_vehicles_page, STR_CONFIG_SETTING_VEHICLES), - SettingEntry(&_settings_stations_page, STR_CONFIG_SETTING_STATIONS), - SettingEntry(&_settings_economy_page, STR_CONFIG_SETTING_ECONOMY), - SettingEntry(&_settings_linkgraph_page, STR_CONFIG_SETTING_LINKGRAPH), - SettingEntry(&_settings_ai_page, STR_CONFIG_SETTING_AI), -}; - -/** Main page, holding all advanced settings */ -static SettingsPage _settings_main_page = {_settings_main, lengthof(_settings_main)}; + main->Init(); + } + return *main; +} static const StringID _game_settings_restrict_dropdown[] = { STR_CONFIG_SETTING_RESTRICT_BASIC, // RM_BASIC @@ -1812,8 +1807,6 @@ struct GameSettingsWindow : Window { GameSettingsWindow(WindowDesc *desc) : Window(desc), filter_editbox(50) { - static bool first_time = true; - this->warn_missing = WHR_NONE; this->warn_lines = 0; this->filter.mode = (RestrictionMode)_settings_client.gui.settings_restriction_mode; @@ -1822,13 +1815,7 @@ struct GameSettingsWindow : Window { this->filter.type_hides = false; this->settings_ptr = &GetGameSettings(); - /* Build up the dynamic settings-array only once per OpenTTD session */ - if (first_time) { - _settings_main_page.Init(); - first_time = false; - } else { - _settings_main_page.FoldAll(); // Close all sub-pages - } + GetSettingsTree().FoldAll(); // Close all sub-pages this->valuewindow_entry = NULL; // No setting entry for which a entry window is opened this->clicked_entry = NULL; // No numeric setting buttons are depressed @@ -1869,7 +1856,7 @@ struct GameSettingsWindow : Window { size->width = max(size->width, GetStringBoundingBox(STR_CONFIG_SETTING_TYPE).width); } size->height = 2 * FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL + - max(size->height, _settings_main_page.GetMaxHelpHeight(size->width)); + max(size->height, GetSettingsTree().GetMaxHelpHeight(size->width)); break; } @@ -1975,7 +1962,7 @@ struct GameSettingsWindow : Window { case WID_GS_OPTIONSPANEL: { int top_pos = r.top + SETTINGTREE_TOP_OFFSET + 1 + this->warn_lines * FONT_HEIGHT_NORMAL; uint last_row = this->vscroll->GetPosition() + this->vscroll->GetCapacity() - this->warn_lines; - int next_row = _settings_main_page.Draw(settings_ptr, r.left + SETTINGTREE_LEFT_OFFSET, r.right - SETTINGTREE_RIGHT_OFFSET, top_pos, + int next_row = GetSettingsTree().Draw(settings_ptr, r.left + SETTINGTREE_LEFT_OFFSET, r.right - SETTINGTREE_RIGHT_OFFSET, top_pos, this->vscroll->GetPosition(), last_row, this->last_clicked); if (next_row == 0) DrawString(r.left + SETTINGTREE_LEFT_OFFSET, r.right - SETTINGTREE_RIGHT_OFFSET, top_pos, STR_CONFIG_SETTINGS_NONE); break; @@ -1983,7 +1970,7 @@ struct GameSettingsWindow : Window { case WID_GS_HELP_TEXT: if (this->last_clicked != NULL) { - const SettingDesc *sd = this->last_clicked->d.entry.setting; + const SettingDesc *sd = this->last_clicked->setting; int y = r.top; switch (sd->GetType()) { @@ -2024,13 +2011,13 @@ struct GameSettingsWindow : Window { switch (widget) { case WID_GS_EXPAND_ALL: this->manually_changed_folding = true; - _settings_main_page.UnFoldAll(); + GetSettingsTree().UnFoldAll(); this->InvalidateData(); break; case WID_GS_COLLAPSE_ALL: this->manually_changed_folding = true; - _settings_main_page.FoldAll(); + GetSettingsTree().FoldAll(); this->InvalidateData(); break; @@ -2058,16 +2045,17 @@ struct GameSettingsWindow : Window { btn -= this->warn_lines; uint cur_row = 0; - SettingEntry *pe = _settings_main_page.FindEntry(btn, &cur_row); + BaseSettingEntry *clicked_entry = GetSettingsTree().FindEntry(btn, &cur_row); - if (pe == NULL) return; // Clicked below the last setting of the page + if (clicked_entry == NULL) return; // Clicked below the last setting of the page - int x = (_current_text_dir == TD_RTL ? this->width - 1 - pt.x : pt.x) - SETTINGTREE_LEFT_OFFSET - (pe->level + 1) * LEVEL_WIDTH; // Shift x coordinate + int x = (_current_text_dir == TD_RTL ? this->width - 1 - pt.x : pt.x) - SETTINGTREE_LEFT_OFFSET - (clicked_entry->level + 1) * LEVEL_WIDTH; // Shift x coordinate if (x < 0) return; // Clicked left of the entry - if ((pe->flags & SEF_KIND_MASK) == SEF_SUBTREE_KIND) { + SettingsPage *clicked_page = dynamic_cast(clicked_entry); + if (clicked_page != NULL) { this->SetDisplayedHelpText(NULL); - pe->d.sub.folded = !pe->d.sub.folded; // Flip 'folded'-ness of the sub-page + clicked_page->folded = !clicked_page->folded; // Flip 'folded'-ness of the sub-page this->manually_changed_folding = true; @@ -2075,8 +2063,9 @@ struct GameSettingsWindow : Window { return; } - assert((pe->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); - const SettingDesc *sd = pe->d.entry.setting; + SettingEntry *pe = dynamic_cast(clicked_entry); + assert(pe != NULL); + const SettingDesc *sd = pe->setting; /* return if action is only active in network, or only settable by server */ if (!sd->IsEditable()) { @@ -2180,9 +2169,9 @@ struct GameSettingsWindow : Window { if (value != oldvalue) { if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { - SetCompanySetting(pe->d.entry.index, value); + SetCompanySetting(pe->index, value); } else { - SetSettingValue(pe->d.entry.index, value); + SetSettingValue(pe->index, value); } this->SetDirty(); } @@ -2215,8 +2204,7 @@ struct GameSettingsWindow : Window { if (str == NULL) return; assert(this->valuewindow_entry != NULL); - assert((this->valuewindow_entry->flags & SEF_KIND_MASK) == SEF_SETTING_KIND); - const SettingDesc *sd = this->valuewindow_entry->d.entry.setting; + const SettingDesc *sd = this->valuewindow_entry->setting; int32 value; if (!StrEmpty(str)) { @@ -2229,9 +2217,9 @@ struct GameSettingsWindow : Window { } if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { - SetCompanySetting(this->valuewindow_entry->d.entry.index, value); + SetCompanySetting(this->valuewindow_entry->index, value); } else { - SetSettingValue(this->valuewindow_entry->d.entry.index, value); + SetSettingValue(this->valuewindow_entry->index, value); } this->SetDirty(); } @@ -2246,8 +2234,8 @@ struct GameSettingsWindow : Window { if (!this->manually_changed_folding) { /* Expand all when selecting 'changes'. Update the filter state first, in case it becomes less restrictive in some cases. */ - _settings_main_page.UpdateFilterState(this->filter, false); - _settings_main_page.UnFoldAll(); + GetSettingsTree().UpdateFilterState(this->filter, false); + GetSettingsTree().UnFoldAll(); } } else { /* Non-'changes' filter. Save as default. */ @@ -2265,13 +2253,13 @@ struct GameSettingsWindow : Window { if (widget < 0) { /* Deal with drop down boxes on the panel. */ assert(this->valuedropdown_entry != NULL); - const SettingDesc *sd = this->valuedropdown_entry->d.entry.setting; + const SettingDesc *sd = this->valuedropdown_entry->setting; assert(sd->desc.flags & SGF_MULTISTRING); if ((sd->desc.flags & SGF_PER_COMPANY) != 0) { - SetCompanySetting(this->valuedropdown_entry->d.entry.index, index); + SetCompanySetting(this->valuedropdown_entry->index, index); } else { - SetSettingValue(this->valuedropdown_entry->d.entry.index, index); + SetSettingValue(this->valuedropdown_entry->index, index); } this->SetDirty(); @@ -2307,7 +2295,7 @@ struct GameSettingsWindow : Window { RestrictionMode min_level = (this->filter.mode <= RM_ALL) ? this->filter.mode : RM_BASIC; this->filter.min_cat = min_level; this->filter.type_hides = false; - _settings_main_page.UpdateFilterState(this->filter, false); + GetSettingsTree().UpdateFilterState(this->filter, false); if (this->filter.string.IsEmpty()) { this->warn_missing = WHR_NONE; @@ -2316,15 +2304,15 @@ struct GameSettingsWindow : Window { } else { this->warn_missing = this->filter.type_hides ? WHR_TYPE : WHR_NONE; } - this->vscroll->SetCount(_settings_main_page.Length() + this->warn_lines); + this->vscroll->SetCount(GetSettingsTree().Length() + this->warn_lines); - if (this->last_clicked != NULL && !_settings_main_page.IsVisible(this->last_clicked)) { + if (this->last_clicked != NULL && !GetSettingsTree().IsVisible(this->last_clicked)) { this->SetDisplayedHelpText(NULL); } bool all_folded = true; bool all_unfolded = true; - _settings_main_page.GetFoldingState(all_folded, all_unfolded); + GetSettingsTree().GetFoldingState(all_folded, all_unfolded); this->SetWidgetDisabledState(WID_GS_EXPAND_ALL, all_unfolded); this->SetWidgetDisabledState(WID_GS_COLLAPSE_ALL, all_folded); } @@ -2336,7 +2324,7 @@ struct GameSettingsWindow : Window { if (!this->filter.string.IsEmpty() && !this->manually_changed_folding) { /* User never expanded/collapsed single pages and entered a filter term. * Expand everything, to save weird expand clicks, */ - _settings_main_page.UnFoldAll(); + GetSettingsTree().UnFoldAll(); } this->InvalidateData(); } diff --git a/src/settingsgen/settingsgen.cpp b/src/settingsgen/settingsgen.cpp index d975822477..dd92e2627b 100644 --- a/src/settingsgen/settingsgen.cpp +++ b/src/settingsgen/settingsgen.cpp @@ -30,6 +30,8 @@ #define stderr stdout #endif /* __MORPHOS__ */ +#include "../safeguards.h" + /** * Report a fatal error. * @param s Format string. @@ -40,7 +42,7 @@ void NORETURN CDECL error(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); fprintf(stderr, "FATAL: %s\n", buf); exit(1); diff --git a/src/ship.h b/src/ship.h index 29f4439d49..18f04c8faf 100644 --- a/src/ship.h +++ b/src/ship.h @@ -37,7 +37,7 @@ struct Ship FINAL : public SpecializedVehicle { SpriteID GetImage(Direction direction, EngineImageType image_type) const; int GetDisplaySpeed() const { return this->cur_speed / 2; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; } - int GetCurrentMaxSpeed() const { return min(this->vcache.cached_max_speed, this->current_order.max_speed * 2); } + int GetCurrentMaxSpeed() const { return min(this->vcache.cached_max_speed, this->current_order.GetMaxSpeed() * 2); } Money GetRunningCost() const; bool IsInDepot() const { return this->state == TRACK_BIT_DEPOT; } bool Tick(); diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index f1d09d40c7..4fcda7c270 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -36,6 +36,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Determine the effective #WaterClass for a ship travelling on a tile. * @param tile Tile of interest @@ -376,7 +378,7 @@ static bool ShipAccelerate(Vehicle *v) byte t; spd = min(v->cur_speed + 1, v->vcache.cached_max_speed); - spd = min(spd, v->current_order.max_speed * 2); + spd = min(spd, v->current_order.GetMaxSpeed() * 2); /* updates statusbar only if speed have changed to save CPU time */ if (spd != v->cur_speed) { diff --git a/src/ship_gui.cpp b/src/ship_gui.cpp index 10cf78922b..cd04efbef5 100644 --- a/src/ship_gui.cpp +++ b/src/ship_gui.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Draws an image of a ship * @param v Front vehicle diff --git a/src/signal.cpp b/src/signal.cpp index e8a6690fcb..8e870b53db 100644 --- a/src/signal.cpp +++ b/src/signal.cpp @@ -18,6 +18,8 @@ #include "train.h" #include "company_base.h" +#include "safeguards.h" + /** these are the maximums used for updating signal blocks */ static const uint SIG_TBU_SIZE = 64; ///< number of signals entering to block diff --git a/src/signs.cpp b/src/signs.cpp index 53465fc8a1..2a23a43c9c 100644 --- a/src/signs.cpp +++ b/src/signs.cpp @@ -18,6 +18,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** Initialize the sign-pool */ SignPool _sign_pool("Sign"); INSTANTIATE_POOL_METHODS(Sign) diff --git a/src/signs_cmd.cpp b/src/signs_cmd.cpp index 3109d1ef03..4badd36050 100644 --- a/src/signs_cmd.cpp +++ b/src/signs_cmd.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** The last built sign. */ SignID _new_sign_id; @@ -53,7 +55,7 @@ CommandCost CmdPlaceSign(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 si->y = y; si->z = GetSlopePixelZ(x, y); if (!StrEmpty(text)) { - si->name = strdup(text); + si->name = stredup(text); } si->UpdateVirtCoord(); InvalidateWindowData(WC_SIGN_LIST, 0, 0); @@ -88,7 +90,7 @@ CommandCost CmdRenameSign(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 /* Delete the old name */ free(si->name); /* Assign the new one */ - si->name = strdup(text); + si->name = stredup(text); if (_game_mode != GM_EDITOR) si->owner = _current_company; si->UpdateVirtCoord(); diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index e572f51a33..bd1fed0d7e 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -33,6 +33,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + struct SignList { /** * A GUIList contains signs and uses a StringFilter for filtering. diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 1d566255d6..4e94450850 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -28,6 +28,8 @@ #include "table/strings.h" +#include "safeguards.h" + static int _smallmap_industry_count; ///< Number of used industries static int _smallmap_company_count; ///< Number of entries in the owner legend. static int _smallmap_cargo_count; ///< Number of cargos in the link stats legend. diff --git a/src/sound.cpp b/src/sound.cpp index 9bad9d6bd2..79dd988bfa 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -21,6 +21,8 @@ #define SET_TYPE "sounds" #include "base_media_func.h" +#include "safeguards.h" + static SoundEntry _original_sounds[ORIGINAL_SAMPLE_COUNT]; static void OpenBankFile(const char *filename) diff --git a/src/sound/allegro_s.cpp b/src/sound/allegro_s.cpp index 76a1e1e91d..88a723ff85 100644 --- a/src/sound/allegro_s.cpp +++ b/src/sound/allegro_s.cpp @@ -18,6 +18,8 @@ #include "allegro_s.h" #include +#include "../safeguards.h" + static FSoundDriver_Allegro iFSoundDriver_Allegro; /** The stream we are writing too */ static AUDIOSTREAM *_stream = NULL; diff --git a/src/sound/cocoa_s.cpp b/src/sound/cocoa_s.cpp index 1dc2a25d4a..8cf4a632bc 100644 --- a/src/sound/cocoa_s.cpp +++ b/src/sound/cocoa_s.cpp @@ -30,6 +30,8 @@ #undef Rect #undef Point +#include "../safeguards.h" + static FSoundDriver_Cocoa iFSoundDriver_Cocoa; static AudioUnit _outputAudioUnit; diff --git a/src/sound/null_s.cpp b/src/sound/null_s.cpp index 953bf5764a..3dc95c46ff 100644 --- a/src/sound/null_s.cpp +++ b/src/sound/null_s.cpp @@ -12,5 +12,7 @@ #include "../stdafx.h" #include "null_s.h" +#include "../safeguards.h" + /** The factory for the null sound driver. */ static FSoundDriver_Null iFSoundDriver_Null; diff --git a/src/sound/sdl_s.cpp b/src/sound/sdl_s.cpp index 9e80418ba0..8c0849dfb2 100644 --- a/src/sound/sdl_s.cpp +++ b/src/sound/sdl_s.cpp @@ -18,6 +18,8 @@ #include "sdl_s.h" #include +#include "../safeguards.h" + /** Factory for the SDL sound driver. */ static FSoundDriver_SDL iFSoundDriver_SDL; diff --git a/src/sound/sound_driver.hpp b/src/sound/sound_driver.hpp index 2b9cf145d0..0df69b8b45 100644 --- a/src/sound/sound_driver.hpp +++ b/src/sound/sound_driver.hpp @@ -19,9 +19,15 @@ class SoundDriver : public Driver { public: /** Called once every tick */ virtual void MainLoop() {} + + /** + * Get the currently active instance of the sound driver. + */ + static SoundDriver *GetInstance() { + return static_cast(*DriverFactoryBase::GetActiveDriver(Driver::DT_SOUND)); + } }; -extern SoundDriver *_sound_driver; extern char *_ini_sounddriver; #endif /* SOUND_SOUND_DRIVER_HPP */ diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp index d241f45c81..0cd632714c 100644 --- a/src/sound/win32_s.cpp +++ b/src/sound/win32_s.cpp @@ -20,6 +20,8 @@ #include #include +#include "../safeguards.h" + static FSoundDriver_Win32 iFSoundDriver_Win32; static HWAVEOUT _waveout; diff --git a/src/sprite.cpp b/src/sprite.cpp index 513ca014fa..6db6966d80 100644 --- a/src/sprite.cpp +++ b/src/sprite.cpp @@ -16,6 +16,8 @@ #include "spritecache.h" #include "zoom_func.h" +#include "safeguards.h" + /** * Draws a tile sprite sequence. diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 49f2d7ff4b..c41b8f51cb 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -24,6 +24,8 @@ #include "table/strings.h" #include "table/palette_convert.h" +#include "safeguards.h" + /* Default of 4MB spritecache */ uint _sprite_cache_size = 4; diff --git a/src/spriteloader/grf.cpp b/src/spriteloader/grf.cpp index 678ebb79a6..a45bd0fa8e 100644 --- a/src/spriteloader/grf.cpp +++ b/src/spriteloader/grf.cpp @@ -21,6 +21,8 @@ #include "../core/bitmath_func.hpp" #include "grf.hpp" +#include "../safeguards.h" + extern const byte _palmap_w2d[]; /** The different colour components a sprite can have. */ diff --git a/src/station.cpp b/src/station.cpp index 49554aaeff..c035aafce4 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -29,6 +29,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** The pool of stations. */ StationPool _station_pool("Station"); INSTANTIATE_POOL_METHODS(Station) diff --git a/src/station_base.h b/src/station_base.h index 82fd00d751..bc6dd1bc01 100644 --- a/src/station_base.h +++ b/src/station_base.h @@ -169,13 +169,14 @@ struct GoodsEntry { GES_ACCEPTANCE, /** - * Set when the cargo was ever waiting at the station. + * This indicates whether a cargo has a rating at the station. + * Set when cargo was ever waiting at the station. * It is set when cargo supplied by surrounding tiles is moved to the station, or when * arriving vehicles unload/transfer cargo without it being a final delivery. - * This also indicates, whether a cargo has a rating at the station. - * This flag is never cleared. + * + * This flag is cleared after 255 * STATION_RATING_TICKS of not having seen a pickup. */ - GES_PICKUP, + GES_RATING, /** * Set when a vehicle ever delivered cargo to the station for final delivery. @@ -203,7 +204,7 @@ struct GoodsEntry { }; GoodsEntry() : - acceptance_pickup(0), + status(0), time_since_pickup(255), rating(INITIAL_STATION_RATING), last_speed(0), @@ -214,7 +215,7 @@ struct GoodsEntry { max_waiting_cargo(0) {} - byte acceptance_pickup; ///< Status of this cargo, see #GoodsEntryStatus. + byte status; ///< Status of this cargo, see #GoodsEntryStatus. /** * Number of rating-intervals (up to 255) since the last vehicle tried to load this cargo. @@ -252,18 +253,18 @@ struct GoodsEntry { /** * Reports whether a vehicle has ever tried to load the cargo at this station. - * This does not imply that there was cargo available for loading. Refer to GES_PICKUP for that. + * This does not imply that there was cargo available for loading. Refer to GES_RATING for that. * @return true if vehicle tried to load. */ bool HasVehicleEverTriedLoading() const { return this->last_speed != 0; } /** * Does this cargo have a rating at this station? - * @return true if the cargo has a rating, i.e. pickup has been attempted. + * @return true if the cargo has a rating, i.e. cargo has been moved to the station. */ inline bool HasRating() const { - return HasBit(this->acceptance_pickup, GES_PICKUP); + return HasBit(this->status, GES_RATING); } uint GetSumFlowVia(StationID via) const; @@ -309,7 +310,7 @@ struct Airport : public TileArea { uint64 flags; ///< stores which blocks on the airport are taken. was 16 bit earlier on, then 32 byte type; ///< Type of this airport, @see AirportTypes byte layout; ///< Airport layout number. - Direction rotation; ///< How this airport is rotated. + DirectionByte rotation; ///< How this airport is rotated. PersistentStorage *psa; ///< Persistent storage for NewGRF airports. diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 55b6fae14d..99bb4225ed 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -56,6 +56,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Check whether the given tile is a hangar. * @param t the tile to of whether it is a hangar. @@ -436,7 +438,7 @@ static uint GetAcceptanceMask(const Station *st) uint mask = 0; for (CargoID i = 0; i < NUM_CARGO; i++) { - if (HasBit(st->goods[i].acceptance_pickup, GoodsEntry::GES_ACCEPTANCE)) mask |= 1 << i; + if (HasBit(st->goods[i].status, GoodsEntry::GES_ACCEPTANCE)) mask |= 1 << i; } return mask; } @@ -579,7 +581,7 @@ void UpdateStationAcceptance(Station *st, bool show_msg) } GoodsEntry &ge = st->goods[i]; - SB(ge.acceptance_pickup, GoodsEntry::GES_ACCEPTANCE, 1, amt >= 8); + SB(ge.status, GoodsEntry::GES_ACCEPTANCE, 1, amt >= 8); if (LinkGraph::IsValidID(ge.link_graph)) { (*LinkGraph::Get(ge.link_graph))[ge.node].SetDemand(amt / 8); } @@ -658,7 +660,7 @@ static void UpdateStationSignCoord(BaseStation *st) * @param reuse Whether to try to reuse a deleted station (gray sign) if possible * @param area Area occupied by the new part * @param name_class Station naming class to use to generate the new station's name - * @return Command error that occured, if any + * @return Command error that occurred, if any */ static CommandCost BuildStationPart(Station **st, DoCommandFlag flags, bool reuse, TileArea area, StationNaming name_class) { @@ -3189,7 +3191,7 @@ void TriggerWatchedCargoCallbacks(Station *st) /* Collect cargoes accepted since the last big tick. */ uint cargoes = 0; for (CargoID cid = 0; cid < NUM_CARGO; cid++) { - if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_ACCEPTED_BIGTICK)) SetBit(cargoes, cid); + if (HasBit(st->goods[cid].status, GoodsEntry::GES_ACCEPTED_BIGTICK)) SetBit(cargoes, cid); } /* Anything to do? */ @@ -3222,7 +3224,7 @@ static bool StationHandleBigTick(BaseStation *st) TriggerWatchedCargoCallbacks(Station::From(st)); for (CargoID i = 0; i < NUM_CARGO; i++) { - ClrBit(Station::From(st)->goods[i].acceptance_pickup, GoodsEntry::GES_ACCEPTED_BIGTICK); + ClrBit(Station::From(st)->goods[i].status, GoodsEntry::GES_ACCEPTED_BIGTICK); } } @@ -3238,6 +3240,28 @@ static inline void byte_inc_sat(byte *p) if (b != 0) *p = b; } +/** + * Truncate the cargo by a specific amount. + * @param cs The type of cargo to perform the truncation for. + * @param ge The goods entry, of the station, to truncate. + * @param amount The amount to truncate the cargo by. + */ +static void TruncateCargo(const CargoSpec *cs, GoodsEntry *ge, uint amount = UINT_MAX) +{ + /* If truncating also punish the source stations' ratings to + * decrease the flow of incoming cargo. */ + + StationCargoAmountMap waiting_per_source; + ge->cargo.Truncate(amount, &waiting_per_source); + for (StationCargoAmountMap::iterator i(waiting_per_source.begin()); i != waiting_per_source.end(); ++i) { + Station *source_station = Station::GetIfValid(i->first); + if (source_station == NULL) continue; + + GoodsEntry &source_ge = source_station->goods[cs->Index()]; + source_ge.max_waiting_cargo = max(source_ge.max_waiting_cargo, i->second); + } +} + static void UpdateStationRating(Station *st) { bool waiting_changed = false; @@ -3258,6 +3282,13 @@ static void UpdateStationRating(Station *st) /* Only change the rating if we are moving this cargo */ if (ge->HasRating()) { byte_inc_sat(&ge->time_since_pickup); + if (ge->time_since_pickup == 255 && _settings_game.order.selectgoods) { + ClrBit(ge->status, GoodsEntry::GES_RATING); + ge->last_speed = 0; + TruncateCargo(cs, ge); + waiting_changed = true; + continue; + } bool skip = false; int rating = 0; @@ -3371,18 +3402,7 @@ static void UpdateStationRating(Station *st) * next rating calculation. */ ge->max_waiting_cargo = 0; - /* If truncating also punish the source stations' ratings to - * decrease the flow of incoming cargo. */ - - StationCargoAmountMap waiting_per_source; - ge->cargo.Truncate(ge->cargo.AvailableCount() - waiting, &waiting_per_source); - for (StationCargoAmountMap::iterator i(waiting_per_source.begin()); i != waiting_per_source.end(); ++i) { - Station *source_station = Station::GetIfValid(i->first); - if (source_station == NULL) continue; - - GoodsEntry &source_ge = source_station->goods[cs->Index()]; - source_ge.max_waiting_cargo = max(source_ge.max_waiting_cargo, i->second); - } + TruncateCargo(cs, ge, ge->cargo.AvailableCount() - waiting); } else { /* If the average number per next hop is low, be more forgiving. */ ge->max_waiting_cargo = waiting_avg; @@ -3503,9 +3523,10 @@ void DeleteStaleLinks(Station *from) * @param cargo Cargo to increase stat for. * @param next_station_id Station the consist will be travelling to next. * @param capacity Capacity to add to link stat. - * @param usage Usage to add to link stat. If UINT_MAX refresh the link instead of increasing. + * @param usage Usage to add to link stat. + * @param mode Update mode to be applied. */ -void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint capacity, uint usage) +void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint capacity, uint usage, EdgeUpdateMode mode) { GoodsEntry &ge1 = st->goods[cargo]; Station *st2 = Station::Get(next_station_id); @@ -3547,7 +3568,7 @@ void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint c } } if (lg != NULL) { - (*lg)[ge1.node].UpdateEdge(ge2.node, capacity, usage); + (*lg)[ge1.node].UpdateEdge(ge2.node, capacity, usage, mode); } } @@ -3568,7 +3589,7 @@ void IncreaseStats(Station *st, const Vehicle *front, StationID next_station_id) * As usage is not such an important figure anyway we just * ignore the additional cargo then.*/ IncreaseStats(st, v->cargo_type, next_station_id, v->refit_cap, - min(v->refit_cap, v->cargo.StoredCount())); + min(v->refit_cap, v->cargo.StoredCount()), EUM_INCREASE); } } } @@ -3618,8 +3639,8 @@ void StationMonthlyLoop() FOR_ALL_STATIONS(st) { for (CargoID i = 0; i < NUM_CARGO; i++) { GoodsEntry *ge = &st->goods[i]; - SB(ge->acceptance_pickup, GoodsEntry::GES_LAST_MONTH, 1, GB(ge->acceptance_pickup, GoodsEntry::GES_CURRENT_MONTH, 1)); - ClrBit(ge->acceptance_pickup, GoodsEntry::GES_CURRENT_MONTH); + SB(ge->status, GoodsEntry::GES_LAST_MONTH, 1, GB(ge->status, GoodsEntry::GES_CURRENT_MONTH, 1)); + ClrBit(ge->status, GoodsEntry::GES_CURRENT_MONTH); } } } @@ -3635,7 +3656,7 @@ void ModifyStationRatingAround(TileIndex tile, Owner owner, int amount, uint rad for (CargoID i = 0; i < NUM_CARGO; i++) { GoodsEntry *ge = &st->goods[i]; - if (ge->acceptance_pickup != 0) { + if (ge->status != 0) { ge->rating = Clamp(ge->rating + amount, 0, 255); } } @@ -3676,7 +3697,7 @@ static uint UpdateStationWaiting(Station *st, CargoID type, uint amount, SourceT if (!ge.HasRating()) { InvalidateWindowData(WC_STATION_LIST, st->index); - SetBit(ge.acceptance_pickup, GoodsEntry::GES_PICKUP); + SetBit(ge.status, GoodsEntry::GES_RATING); } TriggerStationRandomisation(st, st->xy, SRT_NEW_CARGO, type); @@ -3725,7 +3746,7 @@ CommandCost CmdRenameStation(TileIndex tile, DoCommandFlag flags, uint32 p1, uin if (flags & DC_EXEC) { free(st->name); - st->name = reset ? NULL : strdup(text); + st->name = reset ? NULL : stredup(text); st->UpdateVirtCoord(); InvalidateWindowData(WC_STATION_LIST, st->owner, 1); @@ -4314,9 +4335,11 @@ void FlowStat::ReleaseShare(StationID st) /** * Scale all shares from link graph's runtime to monthly values. * @param runtime Time the link graph has been running without compression. + * @pre runtime must be greater than 0 as we don't want infinite flow values. */ void FlowStat::ScaleToMonthly(uint runtime) { + assert(runtime > 0); SharesMap new_shares; uint share = 0; for (SharesMap::iterator i = this->shares.begin(); i != this->shares.end(); ++i) { diff --git a/src/station_func.h b/src/station_func.h index 39b8f5bb3d..f33dbd21fb 100644 --- a/src/station_func.h +++ b/src/station_func.h @@ -18,6 +18,7 @@ #include "vehicle_type.h" #include "economy_func.h" #include "rail.h" +#include "linkgraph/linkgraph_type.h" void ModifyStationRatingAround(TileIndex tile, Owner owner, int amount, uint radius); @@ -49,7 +50,7 @@ void UpdateAirportsNoise(); bool SplitGroundSpriteForOverlay(const TileInfo *ti, SpriteID *ground, RailTrackOffset *overlay_offset); void IncreaseStats(Station *st, const Vehicle *v, StationID next_station_id); -void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint capacity, uint usage); +void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint capacity, uint usage, EdgeUpdateMode mode); void RerouteCargo(Station *st, CargoID c, StationID avoid, StationID avoid2); /** diff --git a/src/station_gui.cpp b/src/station_gui.cpp index f6b1d1f804..578016430f 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -39,6 +39,8 @@ #include #include +#include "safeguards.h" + /** * Calculates and draws the accepted or supplied cargo around the selected tile(s) * @param left x position where the string is to be drawn @@ -140,52 +142,6 @@ static void StationsWndShowStationRating(int left, int right, int y, CargoID typ GfxFillRect(left_start, y, right_start, y, PC_RED); } -/** - * Draw small boxes of cargo accepted. - * @param left Left most coordinate to draw the box at. - * @param right Right most coordinate to draw the box at. - * @param y Coordinate to draw the box at. - * @param type Cargo type. - * @param acceptance_pickup_byte Acceptance byte. - */ -static void StationsWndShowAcceptance(int left, int right, int y, CargoID type) -{ - const CargoSpec *cs = CargoSpec::Get(type); - if (!cs->IsValid()) return; - y++; - GfxFillRect(left, y, right, y + GetCharacterHeight(FS_SMALL), cs->rating_colour, FILLRECT_CHECKER); - DrawString(left, right, y, cs->abbrev, TC_BLACK, SA_CENTER); -} - -/** - * Draw small boxes showing cargo waiting, ratings... for a given station. - * @param st Station to draw statistics of. - * @param x Position to start drawing at. - * @param width Width for each box. - * @param y Height position to draw the box at. - */ -void StationsWndShowStationRating(const Station *st, int left, int right, int x, int width, int y) -{ - bool rtl = _current_text_dir == TD_RTL; - AddSpace(5, x, false); - - /* For RTL we work in exactly the opposite direction. So - * decrement the space needed first, then draw to the left - * instead of drawing to the left and then incrementing - * the space. */ - if (rtl) x -= width + 4; - for (uint j = 0; j < _sorted_standard_cargo_specs_size && ( x > left && x + width < right ); j++) { - CargoID cid = _sorted_cargo_specs[j]->Index(); - if (st->goods[cid].IsSourceStationForCargo()) { - StationsWndShowStationRating(x, x + width, y, cid, st->goods[cid].cargo.TotalCount(), st->goods[cid].rating); - AddSpace(width + 4, x, false); - } else if (HasBit(st->goods[cid].acceptance_pickup, GoodsEntry::GES_EVER_ACCEPTED)) { - StationsWndShowAcceptance(x, x + width, y, cid); - AddSpace(width + 4, x, false); - } - } -} - typedef GUIList GUIStationList; /** @@ -450,6 +406,7 @@ public: break; case WID_STL_LIST: { + bool rtl = _current_text_dir == TD_RTL; int max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->stations.Length()); uint line_height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL); int y = Center(r.top + WD_FRAMERECT_TOP, line_height); @@ -465,7 +422,27 @@ public: SetDParam(1, st->facilities); int x = DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_STATION_LIST_STATION); - StationsWndShowStationRating(st, r.left, r.right, x, line_height + 2, y); + x += rtl ? -5 : 5; + + /* show cargo waiting and station ratings */ + for (uint j = 0; j < _sorted_standard_cargo_specs_size; j++) { + CargoID cid = _sorted_cargo_specs[j]->Index(); + if (st->goods[cid].cargo.TotalCount() > 0) { + /* For RTL we work in exactly the opposite direction. So + * decrement the space needed first, then draw to the left + * instead of drawing to the left and then incrementing + * the space. */ + if (rtl) { + x -= 20; + if (x < r.left + WD_FRAMERECT_LEFT) break; + } + StationsWndShowStationRating(x, x + 16, y, cid, st->goods[cid].cargo.TotalCount(), st->goods[cid].rating); + if (!rtl) { + x += 20; + if (x > r.right - WD_FRAMERECT_RIGHT) break; + } + } + } y += line_height; } @@ -1832,7 +1809,7 @@ struct StationViewWindow : public Window { uint32 cargo_mask = 0; for (CargoID i = 0; i < NUM_CARGO; i++) { - if (HasBit(st->goods[i].acceptance_pickup, GoodsEntry::GES_ACCEPTANCE)) SetBit(cargo_mask, i); + if (HasBit(st->goods[i].status, GoodsEntry::GES_ACCEPTANCE)) SetBit(cargo_mask, i); } SetDParam(0, cargo_mask); int bottom = DrawStringMultiLine(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, INT32_MAX, STR_STATION_VIEW_ACCEPTS_CARGO); diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp index ed56f4b6e5..aa2d7eb5ac 100644 --- a/src/statusbar_gui.cpp +++ b/src/statusbar_gui.cpp @@ -31,6 +31,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + static bool DrawScrollingStatusText(const NewsItem *ni, int scroll_pos, int left, int right, int top, int bottom) { CopyInDParam(0, ni->params, lengthof(ni->params)); diff --git a/src/stdafx.h b/src/stdafx.h index 951ab1c38a..d0e6fb30ae 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -232,7 +232,6 @@ #define WARN_FORMAT(string, args) #define FINAL sealed - int CDECL snprintf(char *str, size_t size, const char *format, ...) WARN_FORMAT(3, 4); #if defined(WINCE) int CDECL vsnprintf(char *str, size_t size, const char *format, va_list ap); #endif @@ -282,7 +281,7 @@ #endif #if defined(WINCE) - #define strdup _strdup + #define stredup _stredup #endif /* WINCE */ /* NOTE: the string returned by these functions is only valid until the next diff --git a/src/story.cpp b/src/story.cpp index da44c27437..b74842f41a 100644 --- a/src/story.cpp +++ b/src/story.cpp @@ -24,6 +24,8 @@ #include "window_func.h" #include "gui.h" +#include "safeguards.h" + StoryPageElementID _new_story_page_element_id; StoryPageID _new_story_page_id; @@ -79,10 +81,10 @@ static void UpdateElement(StoryPageElement &pe, TileIndex tile, uint32 reference { switch (pe.type) { case SPET_TEXT: - pe.text = strdup(text); + pe.text = stredup(text); break; case SPET_LOCATION: - pe.text = strdup(text); + pe.text = stredup(text); pe.referenced_id = tile; break; case SPET_GOAL: @@ -124,7 +126,7 @@ CommandCost CmdCreateStoryPage(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (StrEmpty(text)) { s->title = NULL; } else { - s->title = strdup(text); + s->title = stredup(text); } InvalidateWindowClassesData(WC_STORY_BOOK, -1); @@ -241,7 +243,7 @@ CommandCost CmdSetStoryPageTitle(TileIndex tile, DoCommandFlag flags, uint32 p1, if (StrEmpty(text)) { p->title = NULL; } else { - p->title = strdup(text); + p->title = stredup(text); } InvalidateWindowClassesData(WC_STORY_BOOK, page_id); diff --git a/src/story_gui.cpp b/src/story_gui.cpp index 872ed0a9a2..8199e7fcc4 100644 --- a/src/story_gui.cpp +++ b/src/story_gui.cpp @@ -31,6 +31,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + typedef GUIList GUIStoryPageList; typedef GUIList GUIStoryPageElementList; diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 5d04538413..85b83f2b57 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -39,6 +39,8 @@ #include "../table/strgen_tables.h" +#include "../safeguards.h" + #ifdef _MSC_VER # define LINE_NUM_FMT(s) "%s (%d): warning: %s (" s ")\n" @@ -51,7 +53,7 @@ void CDECL strgen_warning(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); fprintf(stderr, LINE_NUM_FMT("warning"), _file, _cur_line, buf); _warnings++; @@ -62,7 +64,7 @@ void CDECL strgen_error(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); fprintf(stderr, LINE_NUM_FMT("error"), _file, _cur_line, buf); _errors++; @@ -73,7 +75,7 @@ void NORETURN CDECL strgen_fatal(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); fprintf(stderr, LINE_NUM_FMT("FATAL"), _file, _cur_line, buf); #ifdef _MSC_VER @@ -87,7 +89,7 @@ void NORETURN CDECL error(const char *s, ...) char buf[1024]; va_list va; va_start(va, s); - vsnprintf(buf, lengthof(buf), s, va); + vseprintf(buf, lastof(buf), s, va); va_end(va); fprintf(stderr, LINE_NUM_FMT("FATAL"), _file, _cur_line, buf); #ifdef _MSC_VER @@ -120,9 +122,9 @@ struct FileStringReader : StringReader { fclose(this->fh); } - /* virtual */ char *ReadLine(char *buffer, size_t size) + /* virtual */ char *ReadLine(char *buffer, const char *last) { - return fgets(buffer, size, this->fh); + return fgets(buffer, ClampToU16(last - buffer + 1), this->fh); } /* virtual */ void HandlePragma(char *str); @@ -245,7 +247,7 @@ struct FileWriter { */ FileWriter(const char *filename) { - this->filename = strdup(filename); + this->filename = stredup(filename); this->fh = fopen(this->filename, "wb"); if (this->fh == NULL) { @@ -283,7 +285,7 @@ struct HeaderFileWriter : HeaderWriter, FileWriter { * @param filename The file to open. */ HeaderFileWriter(const char *filename) : FileWriter("tmp.xxx"), - real_filename(strdup(filename)), prev(0) + real_filename(stredup(filename)), prev(0) { fprintf(this->fh, "/* This file is automatically generated. Do not modify */\n\n"); fprintf(this->fh, "#ifndef TABLE_STRINGS_H\n"); @@ -384,13 +386,13 @@ static inline void ottd_mkdir(const char *directory) * path separator and the filename. The separator is only appended if the path * does not already end with a separator */ -static inline char *mkpath(char *buf, size_t buflen, const char *path, const char *file) +static inline char *mkpath(char *buf, const char *last, const char *path, const char *file) { - ttd_strlcpy(buf, path, buflen); // copy directory into buffer + strecpy(buf, path, last); // copy directory into buffer char *p = strchr(buf, '\0'); // add path separator if necessary - if (p[-1] != PATHSEPCHAR && (size_t)(p - buf) + 1 < buflen) *p++ = PATHSEPCHAR; - ttd_strlcpy(p, file, buflen - (size_t)(p - buf)); // concatenate filename at end of buffer + if (p[-1] != PATHSEPCHAR && p != last) *p++ = PATHSEPCHAR; + strecpy(p, file, last); // concatenate filename at end of buffer return buf; } @@ -520,7 +522,7 @@ int CDECL main(int argc, char *argv[]) * with a (free) parameter the program will translate that language to destination * directory. As input english.txt is parsed from the source directory */ if (mgo.numleft == 0) { - mkpath(pathbuf, lengthof(pathbuf), src_dir, "english.txt"); + mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); /* parse master file */ StringData data(TAB_COUNT); @@ -530,7 +532,7 @@ int CDECL main(int argc, char *argv[]) /* write strings.h */ ottd_mkdir(dest_dir); - mkpath(pathbuf, lengthof(pathbuf), dest_dir, "strings.h"); + mkpath(pathbuf, lastof(pathbuf), dest_dir, "strings.h"); HeaderFileWriter writer(pathbuf); writer.WriteHeader(data); @@ -538,7 +540,7 @@ int CDECL main(int argc, char *argv[]) } else if (mgo.numleft >= 1) { char *r; - mkpath(pathbuf, lengthof(pathbuf), src_dir, "english.txt"); + mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); StringData data(TAB_COUNT); /* parse master file and check if target file is correct */ @@ -556,12 +558,12 @@ int CDECL main(int argc, char *argv[]) /* get the targetfile, strip any directories and append to destination path */ r = strrchr(mgo.argv[i], PATHSEPCHAR); - mkpath(pathbuf, lengthof(pathbuf), dest_dir, (r != NULL) ? &r[1] : mgo.argv[i]); + mkpath(pathbuf, lastof(pathbuf), dest_dir, (r != NULL) ? &r[1] : mgo.argv[i]); /* rename the .txt (input-extension) to .lng */ r = strrchr(pathbuf, '.'); if (r == NULL || strcmp(r, ".txt") != 0) r = strchr(pathbuf, '\0'); - ttd_strlcpy(r, ".lng", (size_t)(r - pathbuf)); + strecpy(r, ".lng", lastof(pathbuf)); LanguageFileWriter writer(pathbuf); writer.WriteLang(data); diff --git a/src/strgen/strgen.h b/src/strgen/strgen.h index 22b24a2660..ecae71a72a 100644 --- a/src/strgen/strgen.h +++ b/src/strgen/strgen.h @@ -72,10 +72,10 @@ struct StringReader { /** * Read a single line from the source of strings. * @param buffer The buffer to read the data in to. - * @param size The size of the buffer. + * @param last The last element in the buffer. * @return The buffer, or NULL if at the end of the file. */ - virtual char *ReadLine(char *buffer, size_t size) = 0; + virtual char *ReadLine(char *buffer, const char *last) = 0; /** * Handle the pragma of the file. diff --git a/src/strgen/strgen_base.cpp b/src/strgen/strgen_base.cpp index be825fac06..95d3291e49 100644 --- a/src/strgen/strgen_base.cpp +++ b/src/strgen/strgen_base.cpp @@ -19,6 +19,8 @@ #include "../table/strgen_tables.h" +#include "../safeguards.h" + /* Compiles a list of strings into a compiled string list */ static bool _translated; ///< Whether the current language is not the master language @@ -38,7 +40,7 @@ static const CmdStruct *ParseCommandString(const char **str, char *param, int *a * @param next The next chained case. */ Case::Case(int caseidx, const char *string, Case *next) : - caseidx(caseidx), string(strdup(string)), next(next) + caseidx(caseidx), string(stredup(string)), next(next) { } @@ -57,7 +59,7 @@ Case::~Case() * @param line The line this string was found on. */ LangString::LangString(const char *name, const char *english, int index, int line) : - name(strdup(name)), english(strdup(english)), translated(NULL), + name(stredup(name)), english(stredup(english)), translated(NULL), hash_next(0), index(index), line(line), translated_case(NULL) { } @@ -575,7 +577,7 @@ static const CmdStruct *ParseCommandString(const char **str, char *param, int *a * @param translation Are we reading a translation? */ StringReader::StringReader(StringData &data, const char *file, bool master, bool translation) : - data(data), file(strdup(file)), master(master), translation(translation) + data(data), file(stredup(file)), master(master), translation(translation) { } @@ -612,7 +614,7 @@ static void ExtractCommandString(ParsedCommandStruct *p, const char *s, bool war } else if (!(ar->flags & C_DONTCOUNT)) { // Ignore some of them if (p->np >= lengthof(p->pairs)) strgen_fatal("too many commands in string, max " PRINTF_SIZE, lengthof(p->pairs)); p->pairs[p->np].a = ar; - p->pairs[p->np].v = param[0] != '\0' ? strdup(param) : ""; + p->pairs[p->np].v = param[0] != '\0' ? stredup(param) : ""; p->np++; } } @@ -776,7 +778,7 @@ void StringReader::HandleString(char *str) if (casep != NULL) { ent->translated_case = new Case(ResolveCaseName(casep, strlen(casep)), s, ent->translated_case); } else { - ent->translated = strdup(s); + ent->translated = stredup(s); /* If the string was translated, use the line from the * translated language so errors in the translated file * are properly referenced to. */ @@ -819,7 +821,7 @@ void StringReader::ParseFile() strecpy(_lang.digit_decimal_separator, ".", lastof(_lang.digit_decimal_separator)); _cur_line = 1; - while (this->ReadLine(buf, sizeof(buf)) != NULL) { + while (this->ReadLine(buf, lastof(buf)) != NULL) { rstrip(buf); this->HandleString(buf); _cur_line++; diff --git a/src/string.cpp b/src/string.cpp index 2a96921e47..87ea26ee7e 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -32,6 +32,11 @@ #include "gfx_func.h" #endif /* WITH_ICU */ +/* The function vsnprintf is used internally to perform the required formatting + * tasks. As such this one must be allowed, and makes sure it's terminated. */ +#include "safeguards.h" +#undef vsnprintf + /** * Safer implementation of vsnprintf; same as vsnprintf except: * - last instead of size, i.e. replace sizeof with lastof. @@ -42,63 +47,13 @@ * @param ap the list of arguments for the format * @return the number of added characters */ -static int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) +int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) { ptrdiff_t diff = last - str; if (diff < 0) return 0; return min((int)diff, vsnprintf(str, diff + 1, format, ap)); } -/** - * Appends characters from one string to another. - * - * Appends the source string to the destination string with respect of the - * terminating null-character and the maximum size of the destination - * buffer. - * - * @note usage ttd_strlcat(dst, src, lengthof(dst)); - * @note lengthof() applies only to fixed size arrays - * - * @param dst The buffer containing the target string - * @param src The buffer containing the string to append - * @param size The maximum size of the destination buffer - */ -void ttd_strlcat(char *dst, const char *src, size_t size) -{ - assert(size > 0); - while (size > 0 && *dst != '\0') { - size--; - dst++; - } - - ttd_strlcpy(dst, src, size); -} - - -/** - * Copies characters from one buffer to another. - * - * Copies the source string to the destination buffer with respect of the - * terminating null-character and the maximum size of the destination - * buffer. - * - * @note usage ttd_strlcpy(dst, src, lengthof(dst)); - * @note lengthof() applies only to fixed size arrays - * - * @param dst The destination buffer - * @param src The buffer containing the string to copy - * @param size The maximum size of the destination buffer - */ -void ttd_strlcpy(char *dst, const char *src, size_t size) -{ - assert(size > 0); - while (--size > 0 && *src != '\0') { - *dst++ = *src++; - } - *dst = '\0'; -} - - /** * Appends characters from one string to another. * @@ -161,6 +116,21 @@ char *strecpy(char *dst, const char *src, const char *last) return dst; } +/** + * Create a duplicate of the given string. + * @param s The string to duplicate. + * @param last The last character that is safe to duplicate. If NULL, the whole string is duplicated. + * @note The maximum length of the resulting string might therefore be last - s + 1. + * @return The duplicate of the string. + */ +char *stredup(const char *s, const char *last) +{ + size_t len = last == NULL ? strlen(s) : ttd_strnlen(s, last - s + 1); + char *tmp = CallocT(len + 1); + memcpy(tmp, s, len); + return tmp; +} + /** * Format, "printf", into a newly allocated string. * @param str The formatting string. @@ -379,20 +349,6 @@ bool IsValidChar(WChar key, CharSetFilter afilter) } #ifdef WIN32 -/* Since version 3.14, MinGW Runtime has snprintf() and vsnprintf() conform to C99 but it's not the case for older versions */ -#if (__MINGW32_MAJOR_VERSION < 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 14)) -int CDECL snprintf(char *str, size_t size, const char *format, ...) -{ - va_list ap; - int ret; - - va_start(ap, format); - ret = vsnprintf(str, size, format, ap); - va_end(ap); - return ret; -} -#endif /* MinGW Runtime < 3.14 */ - #ifdef _MSC_VER /** * Almost POSIX compliant implementation of \c vsnprintf for VC compiler. @@ -572,16 +528,6 @@ size_t Utf8TrimString(char *s, size_t maxlen) return length; } -#ifdef DEFINE_STRNDUP -char *strndup(const char *s, size_t len) -{ - len = ttd_strnlen(s, len); - char *tmp = CallocT(len + 1); - memcpy(tmp, s, len); - return tmp; -} -#endif /* DEFINE_STRNDUP */ - #ifdef DEFINE_STRCASESTR char *strcasestr(const char *haystack, const char *needle) { @@ -662,7 +608,6 @@ class IcuStringIterator : public StringIterator { icu::BreakIterator *char_itr; ///< ICU iterator for characters. icu::BreakIterator *word_itr; ///< ICU iterator for words. - const char *string; ///< Iteration string in UTF-8. SmallVector utf16_str; ///< UTF-16 copy of the string. SmallVector utf16_to_utf8; ///< Mapping from UTF-16 code point position to index in the UTF-8 source string. @@ -686,7 +631,7 @@ public: virtual void SetString(const char *s) { - this->string = s; + const char *string_base = s; /* Unfortunately current ICU versions only provide rudimentary support * for word break iterators (especially for CJK languages) in combination @@ -696,7 +641,7 @@ public: this->utf16_to_utf8.Clear(); while (*s != '\0') { - size_t idx = s - this->string; + size_t idx = s - string_base; WChar c = Utf8Consume(&s); if (c < 0x10000) { @@ -710,7 +655,7 @@ public: *this->utf16_to_utf8.Append() = idx; } *this->utf16_str.Append() = '\0'; - *this->utf16_to_utf8.Append() = s - this->string; + *this->utf16_to_utf8.Append() = s - string_base; UText text = UTEXT_INITIALIZER; UErrorCode status = U_ZERO_ERROR; diff --git a/src/string_func.h b/src/string_func.h index d7056f1be1..ff12f3747a 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -26,16 +26,17 @@ #ifndef STRING_FUNC_H #define STRING_FUNC_H +#include + #include "core/bitmath_func.hpp" #include "string_type.h" -void ttd_strlcat(char *dst, const char *src, size_t size); -void ttd_strlcpy(char *dst, const char *src, size_t size); - char *strecat(char *dst, const char *src, const char *last); char *strecpy(char *dst, const char *src, const char *last); +char *stredup(const char *src, const char *last = NULL); int CDECL seprintf(char *str, const char *last, const char *format, ...) WARN_FORMAT(3, 4); +int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap); char *CDECL str_fmt(const char *str, ...) WARN_FORMAT(1, 2); @@ -248,14 +249,6 @@ static inline bool IsWhitespace(WChar c) #include #endif -/* strndup is a GNU extension */ -#if defined(_GNU_SOURCE) || (defined(__NetBSD_Version__) && 400000000 <= __NetBSD_Version__) || (defined(__FreeBSD_version) && 701101 <= __FreeBSD_version) || (defined(__DARWIN_C_LEVEL) && __DARWIN_C_LEVEL >= 200809L) -# undef DEFINE_STRNDUP -#else -# define DEFINE_STRNDUP -char *strndup(const char *s, size_t len); -#endif /* strndup is available */ - /* strcasestr is available for _GNU_SOURCE, BSD and some Apple */ #if defined(_GNU_SOURCE) || (defined(__BSD_VISIBLE) && __BSD_VISIBLE) || (defined(__APPLE__) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))) || defined(_NETBSD_SOURCE) # undef DEFINE_STRCASESTR diff --git a/src/stringfilter.cpp b/src/stringfilter.cpp index e021c57b57..6045c19ef4 100644 --- a/src/stringfilter.cpp +++ b/src/stringfilter.cpp @@ -15,6 +15,8 @@ #include "stringfilter_type.h" #include "gfx_func.h" +#include "safeguards.h" + static const WChar STATE_WHITESPACE = ' '; static const WChar STATE_WORD = 'w'; static const WChar STATE_QUOTE1 = '\''; @@ -32,7 +34,7 @@ void StringFilter::SetFilterTerm(const char *str) assert(str != NULL); - char *dest = (char *)malloc(strlen(str) + 1); + char *dest = MallocT(strlen(str) + 1); this->filter_buffer = dest; WChar state = STATE_WHITESPACE; diff --git a/src/strings.cpp b/src/strings.cpp index faaffb8258..17d05f4adb 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -13,7 +13,6 @@ #include "currency.h" #include "station_base.h" #include "town.h" -#include "screenshot.h" #include "waypoint_base.h" #include "depot_base.h" #include "industry.h" @@ -41,6 +40,8 @@ #include "table/strings.h" #include "table/control_codes.h" +#include "safeguards.h" + char _config_language_file[MAX_PATH]; ///< The file (name) stored in the configuration. LanguageList _languages; ///< The actual list of language meta data. const LanguageMetadata *_current_language = NULL; ///< The currently loaded language. @@ -163,7 +164,7 @@ void CopyOutDParam(uint64 *dst, const char **strings, StringID string, int num) MemCpyT(dst, _global_string_params.GetPointerToOffset(0), num); for (int i = 0; i < num; i++) { if (_global_string_params.HasTypeInformation() && _global_string_params.GetTypeAtOffset(i) == SCC_RAW_STRING_POINTER) { - strings[i] = strdup((const char *)(size_t)_global_string_params.GetParam(i)); + strings[i] = stredup((const char *)(size_t)_global_string_params.GetParam(i)); dst[i] = (size_t)strings[i]; } else { strings[i] = NULL; @@ -431,8 +432,8 @@ static char *FormatTinyOrISODate(char *buff, Date date, StringID str, const char char day[3]; char month[3]; /* We want to zero-pad the days and months */ - snprintf(day, lengthof(day), "%02i", ymd.day); - snprintf(month, lengthof(month), "%02i", ymd.month + 1); + seprintf(day, lastof(day), "%02i", ymd.day); + seprintf(month, lastof(month), "%02i", ymd.month + 1); int64 args[] = {(int64)(size_t)day, (int64)(size_t)month, ymd.year}; StringParameters tmp_params(args); @@ -887,7 +888,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg sub_args.SetParam(i++, param); } else { - char *g = strdup(s); + char *g = stredup(s); g[p - s] = '\0'; sub_args_need_free[i] = true; @@ -1680,12 +1681,6 @@ static char *GetSpecialNameString(char *buff, int ind, StringParameters *args, c return buff; } - /* screenshot format name? */ - if (IsInsideMM(ind, (SPECSTR_SCREENSHOT_START - 0x70E4), (SPECSTR_SCREENSHOT_END - 0x70E4) + 1)) { - int i = ind - (SPECSTR_SCREENSHOT_START - 0x70E4); - return strecpy(buff, GetScreenshotFormatDesc(i), last); - } - NOT_REACHED(); } @@ -1952,7 +1947,7 @@ void InitializeLanguagePacks() FOR_ALL_SEARCHPATHS(sp) { char path[MAX_PATH]; - FioAppendDirectory(path, lengthof(path), sp, LANG_DIR); + FioAppendDirectory(path, lastof(path), sp, LANG_DIR); GetLanguageList(path); } if (_languages.Length() == 0) usererror("No available language packs (invalid versions?)"); @@ -2123,7 +2118,7 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) * properly we have to set the colour of the string, otherwise we end up with a lot of artifacts. * The colour 'character' might change in the future, so for safety we just Utf8 Encode it into * the string, which takes exactly three characters, so it replaces the "XXX" with the colour marker. */ - static char *err_str = strdup("XXXThe current font is missing some of the characters used in the texts for this language. Read the readme to see how to solve this."); + static char *err_str = stredup("XXXThe current font is missing some of the characters used in the texts for this language. Read the readme to see how to solve this."); Utf8Encode(err_str, SCC_YELLOW); SetDParamStr(0, err_str); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_WARNING); @@ -2151,7 +2146,7 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) * the colour marker. */ if (_current_text_dir != TD_LTR) { - static char *err_str = strdup("XXXThis version of OpenTTD does not support right-to-left languages. Recompile with icu enabled."); + static char *err_str = stredup("XXXThis version of OpenTTD does not support right-to-left languages. Recompile with icu enabled."); Utf8Encode(err_str, SCC_YELLOW); SetDParamStr(0, err_str); ShowErrorMessage(STR_JUST_RAW_STRING, INVALID_STRING_ID, WL_ERROR); diff --git a/src/strings_type.h b/src/strings_type.h index 35f22e5fc2..c6eebd54d8 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -69,10 +69,6 @@ enum SpecialStrings { /* reserve 32 strings for various screen resolutions */ SPECSTR_RESOLUTION_START = SPECSTR_LANGUAGE_END + 1, SPECSTR_RESOLUTION_END = SPECSTR_RESOLUTION_START + 0x1F, - - /* reserve 32 strings for screenshot formats */ - SPECSTR_SCREENSHOT_START = SPECSTR_RESOLUTION_END + 1, - SPECSTR_SCREENSHOT_END = SPECSTR_SCREENSHOT_START + 0x1F, }; #endif /* STRINGS_TYPE_H */ diff --git a/src/subsidy.cpp b/src/subsidy.cpp index 0cccd92d54..62b463ced3 100644 --- a/src/subsidy.cpp +++ b/src/subsidy.cpp @@ -24,9 +24,12 @@ #include "core/random_func.hpp" #include "game/game.hpp" #include "command_func.h" +#include "string_func.h" #include "table/strings.h" +#include "safeguards.h" + SubsidyPool _subsidy_pool("Subsidy"); ///< Pool for the subsidies. INSTANTIATE_POOL_METHODS(Subsidy) @@ -45,7 +48,7 @@ void Subsidy::AwardTo(CompanyID company) SetDParam(0, company); GetString(company_name, STR_COMPANY_NAME, lastof(company_name)); - char *cn = strdup(company_name); + char *cn = stredup(company_name); /* Add a news item */ Pair reftype = SetupSubsidyDecodeParam(this, false); diff --git a/src/subsidy_gui.cpp b/src/subsidy_gui.cpp index 298a8bb571..04e5ae262b 100644 --- a/src/subsidy_gui.cpp +++ b/src/subsidy_gui.cpp @@ -25,6 +25,8 @@ #include "table/strings.h" +#include "safeguards.h" + struct SubsidyListWindow : Window { Scrollbar *vscroll; diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini index 0b02e69b8d..e77d7f69e5 100644 --- a/src/table/misc_settings.ini +++ b/src/table/misc_settings.ini @@ -9,12 +9,15 @@ [pre-amble] extern char _config_language_file[MAX_PATH]; +static const char *_support8bppmodes = "no|system|hardware"; + static const SettingDescGlobVarList _misc_settings[] = { [post-amble] }; [templates] SDTG_LIST = SDTG_LIST($name, $type, $length, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_MMANY = SDTG_MMANY($name, $type, $flags, $guiflags, $var, $def, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), +SDTG_OMANY = SDTG_OMANY($name, $type, $flags, $guiflags, $var, $def, $max, $full, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_STR = SDTG_STR($name, $type, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_BOOL = SDTG_BOOL($name, $flags, $guiflags, $var, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat), SDTG_VAR = SDTG_VAR($name, $type, $flags, $guiflags, $var, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat), @@ -48,6 +51,15 @@ var = _fullscreen def = false cat = SC_BASIC +[SDTG_OMANY] +name = ""support8bpp"" +type = SLE_UINT8 +var = _support8bpp +def = 0 +max = 2 +full = _support8bppmodes +cat = SC_BASIC + [SDTG_STR] name = ""graphicsset"" type = SLE_STRQ diff --git a/src/table/settings.ini b/src/table/settings.ini index 478f6abf9e..164ab06d59 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -130,11 +130,13 @@ base = GameSettings var = difficulty.industry_density type = SLE_UINT8 from = 97 -guiflags = SGF_NEWGAME_ONLY +guiflags = SGF_MULTISTRING def = ID_END - 1 min = 0 max = ID_END - 1 interval = 1 +str = STR_CONFIG_SETTING_INDUSTRY_DENSITY +strhelp = STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT strval = STR_FUNDING_ONLY cat = SC_BASIC @@ -251,11 +253,13 @@ base = GameSettings var = difficulty.terrain_type type = SLE_UINT8 from = 97 -guiflags = SGF_NEWGAME_ONLY +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 1 min = 0 max = 3 interval = 1 +str = STR_CONFIG_SETTING_TERRAIN_TYPE +strhelp = STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT strval = STR_TERRAIN_TYPE_VERY_FLAT cat = SC_BASIC @@ -342,11 +346,14 @@ base = GameSettings var = game_creation.landscape type = SLE_UINT8 from = 97 -guiflags = SGF_NO_NETWORK +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 0 max = 3 full = _climates load = ConvertLandscape +str = STR_CONFIG_SETTING_LANDSCAPE +strhelp = STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT +strval = STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE cat = SC_BASIC ; Snow line (or snow_line_height * TILE_HEIGHT) @@ -360,10 +367,13 @@ base = GameSettings var = vehicle.road_side type = SLE_UINT8 from = 97 -guiflags = SGF_NO_NETWORK +guiflags = SGF_MULTISTRING | SGF_NO_NETWORK def = 1 max = 1 full = _roadsides +str = STR_CONFIG_SETTING_ROAD_SIDE +strhelp = STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT +strval = STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT proc = CheckRoadSide ; Construction @@ -373,8 +383,6 @@ base = GameSettings var = construction.build_on_slopes guiflags = SGF_NO_NETWORK def = true -str = STR_CONFIG_SETTING_BUILDONSLOPES -strhelp = STR_CONFIG_SETTING_BUILDONSLOPES_HELPTEXT cat = SC_EXPERT [SDT_VAR] @@ -825,8 +833,6 @@ to = 158 base = GameSettings var = pf.roadveh_queue def = true -str = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING -strhelp = STR_CONFIG_SETTING_ROAD_VEHICLE_QUEUEING_HELPTEXT cat = SC_EXPERT [SDT_BOOL] @@ -1080,8 +1086,6 @@ var = vehicle.dynamic_engines from = 95 guiflags = SGF_NO_NETWORK def = true -str = STR_CONFIG_SETTING_DYNAMIC_ENGINES -strhelp = STR_CONFIG_SETTING_DYNAMIC_ENGINES_HELPTEXT proc = ChangeDynamicEngines cat = SC_EXPERT @@ -1116,16 +1120,13 @@ base = GameSettings var = order.improved_load guiflags = SGF_NO_NETWORK def = true -str = STR_CONFIG_SETTING_IMPROVEDLOAD -strhelp = STR_CONFIG_SETTING_IMPROVEDLOAD_HELPTEXT cat = SC_EXPERT [SDT_BOOL] base = GameSettings var = order.selectgoods def = true -str = STR_CONFIG_SETTING_SELECTGOODS -strhelp = STR_CONFIG_SETTING_SELECTGOODS_HELPTEXT +cat = SC_EXPERT [SDTC_BOOL] var = gui.sg_new_nonstop @@ -1174,8 +1175,6 @@ var = order.gradual_loading from = 40 guiflags = SGF_NO_NETWORK def = true -str = STR_CONFIG_SETTING_GRADUAL_LOADING -strhelp = STR_CONFIG_SETTING_GRADUAL_LOADING_HELPTEXT cat = SC_EXPERT [SDT_BOOL] @@ -1201,8 +1200,6 @@ base = GameSettings var = station.adjacent_stations from = 62 def = true -str = STR_CONFIG_SETTING_ADJACENT_STATIONS -strhelp = STR_CONFIG_SETTING_ADJACENT_STATIONS_HELPTEXT cat = SC_EXPERT [SDT_BOOL] @@ -1323,10 +1320,12 @@ cat = SC_BASIC base = GameSettings var = game_creation.snow_line_height type = SLE_UINT8 +guiflags = SGF_NO_NETWORK def = DEF_SNOWLINE_HEIGHT min = MIN_SNOWLINE_HEIGHT max = MAX_SNOWLINE_HEIGHT str = STR_CONFIG_SETTING_SNOWLINE_HEIGHT +strhelp = STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT strval = STR_JUST_COMMA cat = SC_BASIC @@ -1425,8 +1424,6 @@ base = GameSettings var = economy.mod_road_rebuild from = 77 def = true -str = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD -strhelp = STR_CONFIG_SETTING_MODIFIED_ROAD_REBUILD_HELPTEXT cat = SC_EXPERT ; previously ai-new setting. @@ -2122,11 +2119,12 @@ base = GameSettings var = game_creation.land_generator type = SLE_UINT8 from = 30 -guiflags = SGF_MULTISTRING +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 1 min = 0 max = 1 str = STR_CONFIG_SETTING_LAND_GENERATOR +strhelp = STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT strval = STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL [SDT_VAR] @@ -2146,11 +2144,12 @@ base = GameSettings var = game_creation.tgen_smoothness type = SLE_UINT8 from = 30 -guiflags = SGF_MULTISTRING +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 1 min = 0 max = 3 str = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN +strhelp = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT strval = STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH cat = SC_BASIC @@ -2159,9 +2158,13 @@ base = GameSettings var = game_creation.variety type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 0 min = 0 max = 5 +str = STR_CONFIG_SETTING_VARIETY +strhelp = STR_CONFIG_SETTING_VARIETY_HELPTEXT +strval = STR_VARIETY_NONE [SDT_VAR] base = GameSettings @@ -2178,11 +2181,12 @@ base = GameSettings var = game_creation.tree_placer type = SLE_UINT8 from = 30 -guiflags = SGF_MULTISTRING +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY | SGF_SCENEDIT_TOO def = 2 min = 0 max = 2 str = STR_CONFIG_SETTING_TREE_PLACER +strhelp = STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT strval = STR_CONFIG_SETTING_TREE_PLACER_NONE [SDT_VAR] @@ -2236,8 +2240,6 @@ base = GameSettings var = construction.freeform_edges from = 111 def = true -str = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES -strhelp = STR_CONFIG_SETTING_ENABLE_FREEFORM_EDGES_HELPTEXT proc = CheckFreeformEdges cat = SC_EXPERT @@ -2309,9 +2311,13 @@ base = GameSettings var = game_creation.amount_of_rivers type = SLE_UINT8 from = 163 +guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY def = 2 min = 0 max = 3 +str = STR_CONFIG_SETTING_RIVER_AMOUNT +strhelp = STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT +strval = STR_RIVERS_NONE ; locale @@ -2474,9 +2480,13 @@ cat = SC_BASIC var = gui.autosave type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +guiflags = SGF_MULTISTRING def = 1 max = 4 full = _autosave_interval +str = STR_CONFIG_SETTING_AUTOSAVE +strhelp = STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT +strval = STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_OFF cat = SC_BASIC [SDTC_BOOL] @@ -3163,9 +3173,6 @@ guiflags = SGF_MULTISTRING def = 1 min = 0 max = 1 -str = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE -strhelp = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_HELPTEXT -strval = STR_CONFIG_SETTING_NEWGRF_DEFAULT_PALETTE_DOS proc = UpdateNewGRFConfigPalette cat = SC_EXPERT diff --git a/src/table/win32_settings.ini b/src/table/win32_settings.ini index 282c132725..1e0c9ad023 100644 --- a/src/table/win32_settings.ini +++ b/src/table/win32_settings.ini @@ -10,7 +10,7 @@ /* win32_v.cpp only settings */ #if defined(WIN32) && !defined(DEDICATED) extern bool _force_full_redraw, _window_maximize; -extern uint _display_hz, _fullscreen_bpp; +extern uint _display_hz; static const SettingDescGlobVarList _win32_settings[] = { [post-amble] @@ -51,15 +51,6 @@ var = _force_full_redraw def = false cat = SC_EXPERT -[SDTG_VAR] -name = ""fullscreen_bpp"" -type = SLE_UINT -var = _fullscreen_bpp -def = 8 -min = 8 -max = 32 -cat = SC_EXPERT - [SDTG_BOOL] name = ""window_maximize"" var = _window_maximize diff --git a/src/terraform_cmd.cpp b/src/terraform_cmd.cpp index 7321a6d837..98ac1d365d 100644 --- a/src/terraform_cmd.cpp +++ b/src/terraform_cmd.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /* * In one terraforming command all four corners of a initial tile can be raised/lowered (though this is not available to the player). * The maximal amount of height modifications is achieved when raising a complete flat land from sea level to MAX_TILE_HEIGHT or vice versa. diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index f2c56063fd..db8bf210c3 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -37,6 +37,8 @@ #include "table/strings.h" +#include "safeguards.h" + void CcTerraform(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) { if (result.Succeeded()) { diff --git a/src/textbuf.cpp b/src/textbuf.cpp index 766396fc66..116d60ba87 100644 --- a/src/textbuf.cpp +++ b/src/textbuf.cpp @@ -20,13 +20,17 @@ #include "window_func.h" #include "core/alloc_func.hpp" +#include "safeguards.h" + /** * Try to retrieve the current clipboard contents. * * @note OS-specific function. + * @param buffer Clipboard content. + * @param last The pointer to the last element of the destination buffer * @return True if some text could be retrieved. */ -bool GetClipboardContents(char *buffer, size_t buff_len); +bool GetClipboardContents(char *buffer, const char *last); int _caret_timer; @@ -224,7 +228,7 @@ bool Textbuf::InsertClipboard() { char utf8_buf[512]; - if (!GetClipboardContents(utf8_buf, lengthof(utf8_buf))) return false; + if (!GetClipboardContents(utf8_buf, lastof(utf8_buf))) return false; return this->InsertString(utf8_buf, false); } @@ -404,7 +408,7 @@ void Textbuf::Assign(StringID string) */ void Textbuf::Assign(const char *text) { - ttd_strlcpy(this->buf, text, this->max_bytes); + strecpy(this->buf, text, &this->buf[this->max_bytes - 1]); this->UpdateSize(); } @@ -415,7 +419,7 @@ void Textbuf::Print(const char *format, ...) { va_list va; va_start(va, format); - vsnprintf(this->buf, this->max_bytes, format, va); + vseprintf(this->buf, &this->buf[this->max_bytes - 1], format, va); va_end(va); this->UpdateSize(); } diff --git a/src/texteff.cpp b/src/texteff.cpp index fd20017161..03b5645998 100644 --- a/src/texteff.cpp +++ b/src/texteff.cpp @@ -17,6 +17,8 @@ #include "viewport_func.h" #include "settings_type.h" +#include "safeguards.h" + /** Container for all information about a text effect */ struct TextEffect : public ViewportSign { uint64 params_1; ///< DParam parameter diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index 95f2b0d773..ad6215af50 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -21,6 +21,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** Widgets for the textfile window. */ static const NWidgetPart _nested_textfile_widgets[] = { NWidget(NWID_HORIZONTAL), diff --git a/src/tgp.cpp b/src/tgp.cpp index 1fb3485ec5..77cf282daa 100644 --- a/src/tgp.cpp +++ b/src/tgp.cpp @@ -17,6 +17,8 @@ #include "core/random_func.hpp" #include "landscape_type.h" +#include "safeguards.h" + /* * * Quickie guide to Perlin Noise diff --git a/src/thread/thread_morphos.cpp b/src/thread/thread_morphos.cpp index abf2cf0ccc..cc6b2f9d3d 100644 --- a/src/thread/thread_morphos.cpp +++ b/src/thread/thread_morphos.cpp @@ -23,6 +23,8 @@ #include #include +#include "../safeguards.h" + /** * avoid name clashes with MorphOS API functions */ diff --git a/src/thread/thread_none.cpp b/src/thread/thread_none.cpp index 415a62d59d..afa799b239 100644 --- a/src/thread/thread_none.cpp +++ b/src/thread/thread_none.cpp @@ -12,6 +12,8 @@ #include "../stdafx.h" #include "thread.h" +#include "../safeguards.h" + /* static */ bool ThreadObject::New(OTTDThreadFunc proc, void *param, ThreadObject **thread) { if (thread != NULL) *thread = NULL; diff --git a/src/thread/thread_os2.cpp b/src/thread/thread_os2.cpp index d93fc0c710..93f04cac19 100644 --- a/src/thread/thread_os2.cpp +++ b/src/thread/thread_os2.cpp @@ -16,6 +16,8 @@ #include #include +#include "../safeguards.h" + /** * OS/2 version for ThreadObject. */ diff --git a/src/thread/thread_pthread.cpp b/src/thread/thread_pthread.cpp index 9d54a4d20b..ce407fd941 100644 --- a/src/thread/thread_pthread.cpp +++ b/src/thread/thread_pthread.cpp @@ -14,6 +14,8 @@ #include #include +#include "../safeguards.h" + /** * POSIX pthread version for ThreadObject. */ diff --git a/src/thread/thread_win32.cpp b/src/thread/thread_win32.cpp index 484cc55137..c37baf7c36 100644 --- a/src/thread/thread_win32.cpp +++ b/src/thread/thread_win32.cpp @@ -17,6 +17,8 @@ #include #include +#include "../safeguards.h" + /** * Win32 thread version for ThreadObject. */ diff --git a/src/tile_map.cpp b/src/tile_map.cpp index 1e30ba0d96..9855484dff 100644 --- a/src/tile_map.cpp +++ b/src/tile_map.cpp @@ -12,6 +12,8 @@ #include "stdafx.h" #include "tile_map.h" +#include "safeguards.h" + /** * Return the slope of a given tile * @param tile Tile to compute slope of diff --git a/src/tilearea.cpp b/src/tilearea.cpp index 046e222214..ec3b9aafbb 100644 --- a/src/tilearea.cpp +++ b/src/tilearea.cpp @@ -13,6 +13,8 @@ #include "tilearea_type.h" +#include "safeguards.h" + /** * Construct this tile area based on two points. * @param start the start of the area diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 5b7a69d8ea..c6eaf3da81 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -20,51 +20,62 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Change/update a particular timetable entry. * @param v The vehicle to change the timetable of. * @param order_number The index of the timetable in the order list. * @param val The new data of the timetable entry. * @param mtf Which part of the timetable entry to change. + * @param timetabled If the new value is explicitly timetabled. */ -static void ChangeTimetable(Vehicle *v, VehicleOrderID order_number, uint16 val, ModifyTimetableFlags mtf) +static void ChangeTimetable(Vehicle *v, VehicleOrderID order_number, uint16 val, ModifyTimetableFlags mtf, bool timetabled) { Order *order = v->GetOrder(order_number); - int delta = 0; + int total_delta = 0; + int timetable_delta = 0; switch (mtf) { case MTF_WAIT_TIME: - delta = val - order->wait_time; - order->wait_time = val; + total_delta = val - order->GetWaitTime(); + timetable_delta = (timetabled ? val : 0) - order->GetTimetabledWait(); + order->SetWaitTime(val); + order->SetWaitTimetabled(timetabled); break; case MTF_TRAVEL_TIME: - delta = val - order->travel_time; - order->travel_time = val; + total_delta = val - order->GetTravelTime(); + timetable_delta = (timetabled ? val : 0) - order->GetTimetabledTravel(); + order->SetTravelTime(val); + order->SetTravelTimetabled(timetabled); break; case MTF_TRAVEL_SPEED: - order->max_speed = val; + order->SetMaxSpeed(val); break; default: NOT_REACHED(); } - v->orders.list->UpdateOrderTimetable(delta); + v->orders.list->UpdateTotalDuration(total_delta); + v->orders.list->UpdateTimetableDuration(timetable_delta); for (v = v->FirstShared(); v != NULL; v = v->NextShared()) { if (v->cur_real_order_index == order_number && v->current_order.Equals(*order)) { switch (mtf) { case MTF_WAIT_TIME: - v->current_order.wait_time = val; + v->current_order.SetWaitTime(val); + v->current_order.SetWaitTimetabled(timetabled); break; case MTF_TRAVEL_TIME: - v->current_order.travel_time = val; + v->current_order.SetTravelTime(val); + v->current_order.SetTravelTimetabled(timetabled); break; case MTF_TRAVEL_SPEED: - v->current_order.max_speed = val; + v->current_order.SetMaxSpeed(val); break; default: @@ -105,9 +116,9 @@ CommandCost CmdChangeTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, u ModifyTimetableFlags mtf = Extract(p1); if (mtf >= MTF_END) return CMD_ERROR; - int wait_time = order->wait_time; - int travel_time = order->travel_time; - int max_speed = order->max_speed; + int wait_time = order->GetWaitTime(); + int travel_time = order->GetTravelTime(); + int max_speed = order->GetMaxSpeed(); switch (mtf) { case MTF_WAIT_TIME: wait_time = GB(p2, 0, 16); @@ -126,7 +137,7 @@ CommandCost CmdChangeTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, u NOT_REACHED(); } - if (wait_time != order->wait_time) { + if (wait_time != order->GetWaitTime()) { switch (order->GetType()) { case OT_GOTO_STATION: if (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) return_cmd_error(STR_ERROR_TIMETABLE_NOT_STOPPING_HERE); @@ -139,13 +150,19 @@ CommandCost CmdChangeTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, u } } - if (travel_time != order->travel_time && order->IsType(OT_CONDITIONAL)) return CMD_ERROR; - if (max_speed != order->max_speed && (order->IsType(OT_CONDITIONAL) || v->type == VEH_AIRCRAFT)) return CMD_ERROR; + if (travel_time != order->GetTravelTime() && order->IsType(OT_CONDITIONAL)) return CMD_ERROR; + if (max_speed != order->GetMaxSpeed() && (order->IsType(OT_CONDITIONAL) || v->type == VEH_AIRCRAFT)) return CMD_ERROR; if (flags & DC_EXEC) { - if (wait_time != order->wait_time) ChangeTimetable(v, order_number, wait_time, MTF_WAIT_TIME); - if (travel_time != order->travel_time) ChangeTimetable(v, order_number, travel_time, MTF_TRAVEL_TIME); - if (max_speed != order->max_speed) ChangeTimetable(v, order_number, max_speed, MTF_TRAVEL_SPEED); + if (wait_time != order->GetWaitTime() || (wait_time > 0 && !order->IsWaitTimetabled())) { + ChangeTimetable(v, order_number, wait_time, MTF_WAIT_TIME, wait_time > 0); + } + if (travel_time != order->GetTravelTime() || (travel_time > 0 && !order->IsTravelTimetabled())) { + ChangeTimetable(v, order_number, travel_time, MTF_TRAVEL_TIME, travel_time > 0); + } + if (max_speed != order->GetMaxSpeed()) { + ChangeTimetable(v, order_number, max_speed, MTF_TRAVEL_SPEED, max_speed != UINT16_MAX); + } } return CommandCost(); @@ -345,7 +362,6 @@ CommandCost CmdAutofillTimetable(TileIndex tile, DoCommandFlag flags, uint32 p1, */ void UpdateVehicleTimetable(Vehicle *v, bool travelling) { - uint timetabled = travelling ? v->current_order.travel_time : v->current_order.wait_time; uint time_taken = v->current_order_time; v->current_order_time = 0; @@ -378,43 +394,49 @@ void UpdateVehicleTimetable(Vehicle *v, bool travelling) if (!HasBit(v->vehicle_flags, VF_TIMETABLE_STARTED)) return; - if (HasBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE)) { - if (travelling && !HasBit(v->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME)) { - /* Need to clear that now as otherwise we are not able to reduce the wait time */ - v->current_order.wait_time = 0; - } - - if (just_started) return; - - /* Modify station waiting time only if our new value is larger (this is - * always the case when we cleared the timetable). */ - if (!v->current_order.IsType(OT_CONDITIONAL) && (travelling || time_taken > v->current_order.wait_time)) { - /* Round the time taken up to the nearest day, as this will avoid - * confusion for people who are timetabling in days, and can be - * adjusted later by people who aren't. - * For trains/aircraft multiple movement cycles are done in one - * tick. This makes it possible to leave the station and process - * e.g. a depot order in the same tick, causing it to not fill - * the timetable entry like is done for road vehicles/ships. - * Thus always make sure at least one tick is used between the - * processing of different orders when filling the timetable. */ - time_taken = CeilDiv(max(time_taken, 1U), DAY_TICKS) * DAY_TICKS; - - ChangeTimetable(v, v->cur_real_order_index, time_taken, travelling ? MTF_TRAVEL_TIME : MTF_WAIT_TIME); - } - - if (v->cur_real_order_index == first_manual_order && travelling) { - /* If we just started we would have returned earlier and have not reached - * this code. So obviously, we have completed our round: So turn autofill - * off again. */ - ClrBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE); - ClrBit(v->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME); - } - return; + bool autofilling = HasBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE); + if (travelling && (!v->current_order.IsWaitTimetabled() || + (autofilling && !HasBit(v->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME)))) { + /* Need to clear that now as otherwise we are not able to reduce the wait time */ + v->current_order.SetWaitTime(0); } if (just_started) return; + /* Modify station waiting time only if our new value is larger (this is + * always the case when we cleared the timetable). */ + if (!v->current_order.IsType(OT_CONDITIONAL) && (travelling || time_taken > v->current_order.GetWaitTime())) { + /* Round the time taken up to the nearest day, as this will avoid + * confusion for people who are timetabling in days, and can be + * adjusted later by people who aren't. + * For trains/aircraft multiple movement cycles are done in one + * tick. This makes it possible to leave the station and process + * e.g. a depot order in the same tick, causing it to not fill + * the timetable entry like is done for road vehicles/ships. + * Thus always make sure at least one tick is used between the + * processing of different orders when filling the timetable. */ + uint time_to_set = CeilDiv(max(time_taken, 1U), DAY_TICKS) * DAY_TICKS; + + if (travelling && (autofilling || !v->current_order.IsTravelTimetabled())) { + ChangeTimetable(v, v->cur_real_order_index, time_to_set, MTF_TRAVEL_TIME, autofilling); + } else if (!travelling && (autofilling || !v->current_order.IsWaitTimetabled())) { + ChangeTimetable(v, v->cur_real_order_index, time_to_set, MTF_WAIT_TIME, autofilling); + } + } + + if (v->cur_real_order_index == first_manual_order && travelling) { + /* If we just started we would have returned earlier and have not reached + * this code. So obviously, we have completed our round: So turn autofill + * off again. */ + ClrBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE); + ClrBit(v->vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME); + } + + if (autofilling) return; + + uint timetabled = travelling ? v->current_order.GetTimetabledTravel() : + v->current_order.GetTimetabledWait(); + /* Vehicles will wait at stations if they arrive early even if they are not * timetabled to wait there, so make sure the lateness counter is updated * when this happens. */ diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 0a846915fa..2c6a22c5d4 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -30,6 +30,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + /** Container for the arrival/departure dates of a vehicle */ struct TimetableArrivalDeparture { Ticks arrival; ///< The arrival time @@ -76,9 +78,12 @@ static bool CanDetermineTimeTaken(const Order *order, bool travelling) /* Current order is conditional */ if (order->IsType(OT_CONDITIONAL) || order->IsType(OT_IMPLICIT)) return false; /* No travel time and we have not already finished travelling */ - if (travelling && order->travel_time == 0) return false; + if (travelling && !order->IsTravelTimetabled()) return false; /* No wait time but we are loading at this timetabled station */ - if (!travelling && order->wait_time == 0 && order->IsType(OT_GOTO_STATION) && !(order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION)) return false; + if (!travelling && !order->IsWaitTimetabled() && order->IsType(OT_GOTO_STATION) && + !(order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION)) { + return false; + } return true; } @@ -116,12 +121,12 @@ static void FillTimetableArrivalDepartureTable(const Vehicle *v, VehicleOrderID if (!order->IsType(OT_IMPLICIT)) { if (travelling || i != start) { if (!CanDetermineTimeTaken(order, true)) return; - sum += order->travel_time; + sum += order->GetTimetabledTravel(); table[i].arrival = sum; } if (!CanDetermineTimeTaken(order, false)) return; - sum += order->wait_time; + sum += order->GetTimetabledWait(); table[i].departure = sum; } @@ -138,7 +143,7 @@ static void FillTimetableArrivalDepartureTable(const Vehicle *v, VehicleOrderID * travelling part of the first order. */ if (!travelling) { if (!CanDetermineTimeTaken(order, true)) return; - sum += order->travel_time; + sum += order->GetTimetabledTravel(); table[i].arrival = sum; } } @@ -396,13 +401,23 @@ struct TimetableWindow : Window { } else if (order->IsType(OT_IMPLICIT)) { string = STR_TIMETABLE_NOT_TIMETABLEABLE; colour = ((i == selected) ? TC_SILVER : TC_GREY) | TC_NO_SHADE; - } else if (order->travel_time == 0) { - string = order->max_speed != UINT16_MAX ? STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED : STR_TIMETABLE_TRAVEL_NOT_TIMETABLED; + } else if (!order->IsTravelTimetabled()) { + if (order->GetTravelTime() > 0) { + SetTimetableParams(0, 1, order->GetTravelTime()); + string = order->GetMaxSpeed() != UINT16_MAX ? + STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED : + STR_TIMETABLE_TRAVEL_FOR_ESTIMATED; + } else { + string = order->GetMaxSpeed() != UINT16_MAX ? + STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED : + STR_TIMETABLE_TRAVEL_NOT_TIMETABLED; + } } else { - SetTimetableParams(0, 1, order->travel_time); - string = order->max_speed != UINT16_MAX ? STR_TIMETABLE_TRAVEL_FOR_SPEED : STR_TIMETABLE_TRAVEL_FOR; + SetTimetableParams(0, 1, order->GetTimetabledTravel()); + string = order->GetMaxSpeed() != UINT16_MAX ? + STR_TIMETABLE_TRAVEL_FOR_SPEED : STR_TIMETABLE_TRAVEL_FOR; } - SetDParam(2, order->max_speed); + SetDParam(2, order->GetMaxSpeed()); DrawString(rtl ? r.left + WD_FRAMERECT_LEFT : middle, rtl ? middle : r.right - WD_FRAMERECT_LEFT, y, string, colour); @@ -538,7 +553,7 @@ struct TimetableWindow : Window { StringID current = STR_EMPTY; if (order != NULL) { - uint time = (selected % 2 == 1) ? order->travel_time : order->wait_time; + uint time = (selected % 2 == 1) ? order->GetTravelTime() : order->GetWaitTime(); if (!_settings_client.gui.timetable_in_ticks) time /= DAY_TICKS; if (time != 0) { @@ -548,7 +563,7 @@ struct TimetableWindow : Window { } this->query_is_speed_query = false; - ShowQueryString(current, STR_TIMETABLE_CHANGE_TIME, 31, this, CS_NUMERAL, QSF_NONE); + ShowQueryString(current, STR_TIMETABLE_CHANGE_TIME, 31, this, CS_NUMERAL, QSF_ACCEPT_UNCHANGED); break; } @@ -561,8 +576,8 @@ struct TimetableWindow : Window { StringID current = STR_EMPTY; const Order *order = v->GetOrder(real); if (order != NULL) { - if (order->max_speed != UINT16_MAX) { - SetDParam(0, ConvertKmhishSpeedToDisplaySpeed(order->max_speed)); + if (order->GetMaxSpeed() != UINT16_MAX) { + SetDParam(0, ConvertKmhishSpeedToDisplaySpeed(order->GetMaxSpeed())); current = STR_JUST_INT; } } diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 23fb21e5f8..9b389ae9ce 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -53,6 +53,8 @@ #include "network/network_gui.h" #include "network/network_func.h" +#include "safeguards.h" + RailType _last_built_railtype; RoadType _last_built_roadtype; diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index d3c480af11..1c6a01eaee 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -50,6 +50,8 @@ #include "table/strings.h" #include "table/town_land.h" +#include "safeguards.h" + TownID _new_town_id; uint32 _town_cargoes_accepted; ///< Bitmap of all cargoes accepted by houses. @@ -1703,7 +1705,7 @@ CommandCost CmdFoundTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 old_generating_world.Restore(); if (t != NULL && !StrEmpty(text)) { - t->name = strdup(text); + t->name = stredup(text); t->UpdateVirtCoord(); } @@ -1714,7 +1716,7 @@ CommandCost CmdFoundTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 SetDParam(0, _current_company); GetString(company_name, STR_COMPANY_NAME, lastof(company_name)); - char *cn = strdup(company_name); + char *cn = stredup(company_name); SetDParamStr(0, cn); SetDParam(1, t->index); @@ -2446,7 +2448,7 @@ CommandCost CmdRenameTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (flags & DC_EXEC) { free(t->name); - t->name = reset ? NULL : strdup(text); + t->name = reset ? NULL : stredup(text); t->UpdateVirtCoord(); InvalidateWindowData(WC_TOWN_DIRECTORY, 0, 1); @@ -2523,7 +2525,7 @@ CommandCost CmdTownSetText(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 if (flags & DC_EXEC) { free(t->text); - t->text = StrEmpty(text) ? NULL : strdup(text); + t->text = StrEmpty(text) ? NULL : stredup(text); InvalidateWindowData(WC_TOWN_VIEW, p1); } @@ -2740,7 +2742,7 @@ static CommandCost TownActionRoadRebuild(Town *t, DoCommandFlag flags) SetDParam(0, _current_company); GetString(company_name, STR_COMPANY_NAME, lastof(company_name)); - char *cn = strdup(company_name); + char *cn = stredup(company_name); SetDParam(0, t->index); SetDParamStr(1, cn); diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 991f167063..0595ccf4f3 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -37,6 +37,8 @@ #include "table/strings.h" +#include "safeguards.h" + typedef GUIList GUITownList; static const NWidgetPart _nested_town_authority_widgets[] = { diff --git a/src/townname.cpp b/src/townname.cpp index ad9b26fee6..f3a4e5cbb7 100644 --- a/src/townname.cpp +++ b/src/townname.cpp @@ -20,6 +20,8 @@ #include "table/townname.h" +#include "safeguards.h" + /** * Initializes this struct from town data @@ -200,7 +202,8 @@ static inline int32 SeedChanceBias(byte shift_by, int max, uint32 seed, int bias */ static void ReplaceWords(const char *org, const char *rep, char *buf) { - if (strncmp(buf, org, 4) == 0) strncpy(buf, rep, 4); // Safe as the string in buf is always more than 4 characters long. + assert(strlen(org) == 4 && strlen(rep) == 4 && strlen(buf) >= 4); + if (strncmp(buf, org, 4) == 0) memcpy(buf, rep, 4); // Safe as the string in buf is always more than 4 characters long. } diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 0198ac58cb..30ec1143de 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -39,6 +39,8 @@ #include "table/strings.h" #include "table/train_cmd.h" +#include "safeguards.h" + static Track ChooseTrainTrack(Train *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks, bool force_res, bool *got_reservation, bool mark_stuck); static bool TrainCheckIfLineEnds(Train *v, bool reverse = true); bool TrainController(Train *v, Vehicle *nomove, bool reverse = true); // Also used in vehicle_sl.cpp. @@ -430,7 +432,7 @@ int Train::GetCurrentMaxSpeed() const } } - max_speed = min(max_speed, this->current_order.max_speed); + max_speed = min(max_speed, this->current_order.GetMaxSpeed()); return min(max_speed, this->gcache.cached_max_track_speed); } diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 24cecd5f1c..a89ade3cf7 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -18,6 +18,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Callback for building wagons. * @param result The result of the command. diff --git a/src/transparency_gui.cpp b/src/transparency_gui.cpp index 50778fcc10..af4c7d1d00 100644 --- a/src/transparency_gui.cpp +++ b/src/transparency_gui.cpp @@ -20,6 +20,8 @@ #include "table/sprites.h" #include "table/strings.h" +#include "safeguards.h" + TransparencyOptionBits _transparency_opt; ///< The bits that should be transparent. TransparencyOptionBits _transparency_lock; ///< Prevent these bits from flipping with X. TransparencyOptionBits _invisibility_opt; ///< The bits that should be invisible. diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index c30609e782..4fcda82d81 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -29,6 +29,8 @@ #include "table/tree_land.h" #include "table/clear_land.h" +#include "safeguards.h" + /** * List of tree placer algorithm. * diff --git a/src/tree_gui.cpp b/src/tree_gui.cpp index 34c3862da2..e46ee027ac 100644 --- a/src/tree_gui.cpp +++ b/src/tree_gui.cpp @@ -26,6 +26,8 @@ #include "table/strings.h" #include "table/tree_land.h" +#include "safeguards.h" + void PlaceTreesRandomly(); /** Tree Sprites with their palettes */ diff --git a/src/tunnel_map.cpp b/src/tunnel_map.cpp index 7639fa9491..4e6d5a7e13 100644 --- a/src/tunnel_map.cpp +++ b/src/tunnel_map.cpp @@ -12,6 +12,8 @@ #include "stdafx.h" #include "tunnelbridge_map.h" +#include "safeguards.h" + /** * Gets the other end of the tunnel. Where a vehicle would reappear when it diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 2739fd7c49..9bb96538d6 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -44,6 +44,8 @@ #include "table/strings.h" #include "table/bridge_land.h" +#include "safeguards.h" + BridgeSpec _bridge[MAX_BRIDGES]; ///< The specification of all bridges. TileIndex _build_tunnel_endtile; ///< The end of a tunnel; as hidden return from the tunnel build command for GUI purposes. diff --git a/src/vehicle.cpp b/src/vehicle.cpp index ceb345f469..4cf6e642e1 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -55,6 +55,8 @@ #include "table/strings.h" +#include "safeguards.h" + #define GEN_HASH(x, y) ((GB((y), 6 + ZOOM_LVL_SHIFT, 6) << 6) + GB((x), 7 + ZOOM_LVL_SHIFT, 6)) VehicleID _new_vehicle_id; @@ -1401,21 +1403,19 @@ void VehicleEnterDepot(Vehicle *v) SetWindowDirty(WC_VEHICLE_VIEW, v->index); const Order *real_order = v->GetOrder(v->cur_real_order_index); - Order t = v->current_order; - v->current_order.MakeDummy(); /* Test whether we are heading for this depot. If not, do nothing. * Note: The target depot for nearest-/manual-depot-orders is only updated on junctions, but we want to accept every depot. */ - if ((t.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) && + if ((v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) && real_order != NULL && !(real_order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) && - (v->type == VEH_AIRCRAFT ? t.GetDestination() != GetStationIndex(v->tile) : v->dest_tile != v->tile)) { + (v->type == VEH_AIRCRAFT ? v->current_order.GetDestination() != GetStationIndex(v->tile) : v->dest_tile != v->tile)) { /* We are heading for another depot, keep driving. */ return; } - if (t.IsRefit()) { + if (v->current_order.IsRefit()) { Backup cur_company(_current_company, v->owner, FILE_LINE); - CommandCost cost = DoCommand(v->tile, v->index, t.GetRefitCargo() | 0xFF << 8, DC_EXEC, GetCmdRefitVeh(v)); + CommandCost cost = DoCommand(v->tile, v->index, v->current_order.GetRefitCargo() | 0xFF << 8, DC_EXEC, GetCmdRefitVeh(v)); cur_company.Restore(); if (cost.Failed()) { @@ -1433,13 +1433,13 @@ void VehicleEnterDepot(Vehicle *v) } } - if (t.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) { + if (v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) { /* Part of orders */ v->DeleteUnreachedImplicitOrders(); UpdateVehicleTimetable(v, true); v->IncrementImplicitOrderIndex(); } - if (t.GetDepotActionType() & ODATFB_HALT) { + if (v->current_order.GetDepotActionType() & ODATFB_HALT) { /* Vehicles are always stopped on entering depots. Do not restart this one. */ _vehicles_to_autoreplace[v] = false; /* Invalidate last_loading_station. As the link from the station @@ -1452,6 +1452,7 @@ void VehicleEnterDepot(Vehicle *v) } AI::NewEvent(v->owner, new ScriptEventVehicleWaitingInDepot(v->index)); } + v->current_order.MakeDummy(); } } @@ -2135,7 +2136,7 @@ void Vehicle::HandleLoading(bool mode) { switch (this->current_order.GetType()) { case OT_LOADING: { - uint wait_time = max(this->current_order.wait_time - this->lateness_counter, 0); + uint wait_time = max(this->current_order.GetTimetabledWait() - this->lateness_counter, 0); /* Not the first call for this tick, or still loading */ if (mode || !HasBit(this->vehicle_flags, VF_LOADING_FINISHED) || this->current_order_time < wait_time) return; @@ -2373,9 +2374,9 @@ void Vehicle::ShowVisualEffect() const } max_speed = min(max_speed, t->gcache.cached_max_track_speed); - max_speed = min(max_speed, this->current_order.max_speed); + max_speed = min(max_speed, this->current_order.GetMaxSpeed()); } - if (this->type == VEH_ROAD || this->type == VEH_SHIP) max_speed = min(max_speed, this->current_order.max_speed * 2); + if (this->type == VEH_ROAD || this->type == VEH_SHIP) max_speed = min(max_speed, this->current_order.GetMaxSpeed() * 2); const Vehicle *v = this; diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 78c62d20a2..72cff271a4 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -34,6 +34,8 @@ #include "table/strings.h" +#include "safeguards.h" + /* Tables used in vehicle.h to find the right command for a certain vehicle type */ const uint32 _veh_build_proc_table[] = { CMD_BUILD_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN), @@ -749,7 +751,7 @@ static void CloneVehicleName(const Vehicle *src, Vehicle *dst) /* Check the name is unique. */ if (IsUniqueVehicleName(buf)) { - dst->name = strdup(buf); + dst->name = stredup(buf); break; } } @@ -1027,7 +1029,7 @@ CommandCost CmdRenameVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uin if (flags & DC_EXEC) { free(v->name); - v->name = reset ? NULL : strdup(text); + v->name = reset ? NULL : stredup(text); InvalidateWindowClassesData(GetWindowClassForVehicleType(v->type), 1); MarkWholeScreenDirty(); } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 0fdc623301..6e11c51081 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -39,6 +39,8 @@ #include "tilehighlight_func.h" #include "zoom_func.h" +#include "safeguards.h" + Sorting _sorting; diff --git a/src/vehiclelist.cpp b/src/vehiclelist.cpp index e74f28f0fb..93dec488d7 100644 --- a/src/vehiclelist.cpp +++ b/src/vehiclelist.cpp @@ -12,6 +12,9 @@ #include "stdafx.h" #include "train.h" #include "vehiclelist.h" +#include "group.h" + +#include "safeguards.h" /** * Pack a VehicleListIdentifier in a single uint32. @@ -145,7 +148,7 @@ bool GenerateVehicleSortList(VehicleList *list, const VehicleListIdentifier &vli if (vli.index != ALL_GROUP) { FOR_ALL_VEHICLES(v) { if (v->type == vli.vtype && v->IsPrimaryVehicle() && - v->owner == vli.company && v->group_id == vli.index) { + v->owner == vli.company && GroupIsInGroup(v->group_id, vli.index)) { *list->Append() = v; } } diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index f844c6d0d0..c75bcfb2e9 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -27,6 +27,8 @@ #include "allegro_v.h" #include +#include "../safeguards.h" + #ifdef _DEBUG /* Allegro replaces SEGV/ABRT signals meaning that the debugger will never * be triggered, so rereplace the signals and make the debugger useful. */ @@ -222,7 +224,7 @@ static bool CreateMainSurface(uint w, uint h) InitPalette(); char caption[32]; - snprintf(caption, sizeof(caption), "OpenTTD %s", _openttd_revision); + seprintf(caption, lastof(caption), "OpenTTD %s", _openttd_revision); set_window_title(caption); enable_hardware_cursor(); diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 4a95d1901b..5665abb5bc 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -597,16 +597,16 @@ void CocoaDialog(const char *title, const char *message, const char *buttonLabel _cocoa_video_dialog = true; bool wasstarted = _cocoa_video_started; - if (_video_driver == NULL) { + if (VideoDriver::GetInstance() == NULL) { setupApplication(); // Setup application before showing dialog - } else if (!_cocoa_video_started && _video_driver->Start(NULL) != NULL) { + } else if (!_cocoa_video_started && VideoDriver::GetInstance()->Start(NULL) != NULL) { fprintf(stderr, "%s: %s\n", title, message); return; } NSRunAlertPanel([ NSString stringWithUTF8String:title ], [ NSString stringWithUTF8String:message ], [ NSString stringWithUTF8String:buttonLabel ], nil, nil); - if (!wasstarted && _video_driver != NULL) _video_driver->Stop(); + if (!wasstarted && VideoDriver::GetInstance() != NULL) VideoDriver::GetInstance()->Stop(); _cocoa_video_dialog = false; } @@ -621,8 +621,8 @@ void cocoaSetApplicationBundleDir() char tmp[MAXPATHLEN]; CFURLRef url = CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()); if (CFURLGetFileSystemRepresentation(url, true, (unsigned char*)tmp, MAXPATHLEN)) { - AppendPathSeparator(tmp, lengthof(tmp)); - _searchpaths[SP_APPLICATION_BUNDLE_DIR] = strdup(tmp); + AppendPathSeparator(tmp, lastof(tmp)); + _searchpaths[SP_APPLICATION_BUNDLE_DIR] = stredup(tmp); } else { _searchpaths[SP_APPLICATION_BUNDLE_DIR] = NULL; } diff --git a/src/video/cocoa/event.mm b/src/video/cocoa/event.mm index b4f171a98a..78785f8d0c 100644 --- a/src/video/cocoa/event.mm +++ b/src/video/cocoa/event.mm @@ -287,7 +287,7 @@ static bool QZ_KeyEvent(unsigned short keycode, unsigned short unicode, BOOL dow case QZ_RETURN: case QZ_f: if (down && (_current_mods & NSCommandKeyMask)) { - _video_driver->ToggleFullscreen(!_fullscreen); + VideoDriver::GetInstance()->ToggleFullscreen(!_fullscreen); } break; } diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index 8e5b9ea91c..bfe853e9a0 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -99,6 +99,9 @@ static void WINAPI CheckForConsoleInput() HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); for (;;) { ReadFile(hStdin, _win_console_thread_buffer, lengthof(_win_console_thread_buffer), &nb, NULL); + if (nb >= lengthof(_win_console_thread_buffer)) nb = lengthof(_win_console_thread_buffer) - 1; + _win_console_thread_buffer[nb] = '\0'; + /* Signal input waiting that input is read and wait for it being handled * SignalObjectAndWait() should be used here, but it's unsupported in Win98< */ SetEvent(_hInputReady); @@ -131,6 +134,8 @@ static void CloseWindowsConsoleThread() #endif +#include "../safeguards.h" + static void *_dedicated_video_mem; @@ -243,9 +248,7 @@ static void DedicatedHandleKeyInput() SetEvent(_hWaitForInputHandling); #endif - /* strtok() does not 'forget' \r\n if the string starts with it, - * so we have to manually remove that! */ - strtok(input_line, "\r\n"); + /* Remove trailing \r or \n */ for (char *c = input_line; *c != '\0'; c++) { if (*c == '\n' || *c == '\r' || c == lastof(input_line)) { *c = '\0'; @@ -316,7 +319,15 @@ void VideoDriver_Dedicated::MainLoop() } /* Don't sleep when fast forwarding (for desync debugging) */ - if (!_ddc_fastforward) CSleep(1); + if (!_ddc_fastforward) { + /* Sleep longer on a dedicated server, if the game is paused and no clients connected. + * That can allow the CPU to better use deep sleep states. */ + if (_pause_mode != 0 && !HasClients()) { + CSleep(100); + } else { + CSleep(1); + } + } } } diff --git a/src/video/null_v.cpp b/src/video/null_v.cpp index f2f7fc5ed5..5037814e5b 100644 --- a/src/video/null_v.cpp +++ b/src/video/null_v.cpp @@ -14,6 +14,8 @@ #include "../blitter/factory.hpp" #include "null_v.h" +#include "../safeguards.h" + /** Factory for the null video driver. */ static FVideoDriver_Null iFVideoDriver_Null; diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 42671c1985..a2ac87dff7 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -31,6 +31,8 @@ #include #endif +#include "../safeguards.h" + static FVideoDriver_SDL iFVideoDriver_SDL; static SDL_Surface *_sdl_screen; @@ -285,7 +287,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals"); char icon_path[MAX_PATH]; - if (FioFindFullPath(icon_path, lengthof(icon_path), BASESET_DIR, "openttd.32.bmp") != NULL) { + if (FioFindFullPath(icon_path, lastof(icon_path), BASESET_DIR, "openttd.32.bmp") != NULL) { /* Give the application an icon */ icon = SDL_CALL SDL_LoadBMP(icon_path); if (icon != NULL) { @@ -320,7 +322,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) * (which we can't force in 8bpp on 8bpp mode, * unfortunately). */ - want_hwpalette = (bpp == 8 && _fullscreen); + want_hwpalette = bpp == 8 && _fullscreen && _support8bpp == S8BPP_HARDWARE; } else { /* User specified a value manually */ want_hwpalette = _use_hwpalette; @@ -414,14 +416,14 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) break; case Blitter::PALETTE_ANIMATION_BLITTER: - if (_video_driver != NULL) blitter->PaletteAnimate(_local_palette); + if (VideoDriver::GetInstance() != NULL) blitter->PaletteAnimate(_local_palette); break; default: NOT_REACHED(); } - snprintf(caption, sizeof(caption), "OpenTTD %s", _openttd_revision); + seprintf(caption, lastof(caption), "OpenTTD %s", _openttd_revision); SDL_CALL SDL_WM_SetCaption(caption, caption); GameSizeChanged(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 190bfcc10f..916044d358 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -78,9 +78,15 @@ public: * An edit box lost the input focus. Abort character compositing if necessary. */ virtual void EditBoxLostFocus() {} + + /** + * Get the currently active instance of the video driver. + */ + static VideoDriver *GetInstance() { + return static_cast(*DriverFactoryBase::GetActiveDriver(Driver::DT_VIDEO)); + } }; -extern VideoDriver *_video_driver; extern char *_ini_videodriver; extern int _num_resolutions; extern Dimension _resolutions[32]; diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index c0da6db54e..a7487bfb54 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -27,6 +27,8 @@ #include #include +#include "../safeguards.h" + /* Missing define in MinGW headers. */ #ifndef MAPVK_VK_TO_CHAR #define MAPVK_VK_TO_CHAR (2) @@ -50,7 +52,6 @@ static struct { bool _force_full_redraw; bool _window_maximize; uint _display_hz; -uint _fullscreen_bpp; static Dimension _bck_resolution; #if !defined(WINCE) || _WIN32_WCE >= 0x400 DWORD _imm_props; @@ -270,23 +271,21 @@ bool VideoDriver_Win32::MakeWindow(bool full_screen) if (full_screen) { DEVMODE settings; - /* Make sure we are always at least the screen-depth of the blitter */ - if (_fullscreen_bpp < BlitterFactory::GetCurrentBlitter()->GetScreenDepth()) _fullscreen_bpp = BlitterFactory::GetCurrentBlitter()->GetScreenDepth(); - memset(&settings, 0, sizeof(settings)); settings.dmSize = sizeof(settings); settings.dmFields = - (_fullscreen_bpp != 0 ? DM_BITSPERPEL : 0) | + DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | (_display_hz != 0 ? DM_DISPLAYFREQUENCY : 0); - settings.dmBitsPerPel = _fullscreen_bpp; + settings.dmBitsPerPel = BlitterFactory::GetCurrentBlitter()->GetScreenDepth(); settings.dmPelsWidth = _wnd.width_org; settings.dmPelsHeight = _wnd.height_org; settings.dmDisplayFrequency = _display_hz; /* Check for 8 bpp support. */ - if (settings.dmBitsPerPel != 32 && ChangeDisplaySettings(&settings, CDS_FULLSCREEN | CDS_TEST) != DISP_CHANGE_SUCCESSFUL) { + if (settings.dmBitsPerPel == 8 && + (_support8bpp != S8BPP_HARDWARE || ChangeDisplaySettings(&settings, CDS_FULLSCREEN | CDS_TEST) != DISP_CHANGE_SUCCESSFUL)) { settings.dmBitsPerPel = 32; } @@ -1003,7 +1002,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP if (active && minimized) { /* Restore the game window */ ShowWindow(hwnd, SW_RESTORE); - static_cast(_video_driver)->MakeWindow(true); + static_cast(VideoDriver::GetInstance())->MakeWindow(true); } else if (!active && !minimized) { /* Minimise the window and restore desktop */ ShowWindow(hwnd, SW_MINIMIZE); @@ -1105,11 +1104,14 @@ static void FindResolutions() uint i; DEVMODEA dm; + /* Check modes for the relevant fullscreen bpp */ + int bpp = _support8bpp != S8BPP_HARDWARE ? 32 : BlitterFactory::GetCurrentBlitter()->GetScreenDepth(); + /* XXX - EnumDisplaySettingsW crashes with unicows.dll on Windows95 * Doesn't really matter since we don't pass a string anyways, but still * a letdown */ for (i = 0; EnumDisplaySettingsA(NULL, i, &dm) != 0; i++) { - if (dm.dmBitsPerPel == BlitterFactory::GetCurrentBlitter()->GetScreenDepth() && + if (dm.dmBitsPerPel == bpp && dm.dmPelsWidth >= 640 && dm.dmPelsHeight >= 480) { uint j; diff --git a/src/viewport.cpp b/src/viewport.cpp index de4577d962..82315d75bf 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -51,6 +51,8 @@ #include "table/strings.h" #include "table/palettes.h" +#include "safeguards.h" + Point _tile_fract_coords; struct StringSpriteToDraw { diff --git a/src/viewport_gui.cpp b/src/viewport_gui.cpp index 7e9b3b3cc0..df2f21b364 100644 --- a/src/viewport_gui.cpp +++ b/src/viewport_gui.cpp @@ -22,6 +22,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + /* Extra ViewPort Window Stuff */ static const NWidgetPart _nested_extra_view_port_widgets[] = { NWidget(NWID_HORIZONTAL), diff --git a/src/viewport_sprite_sorter_sse4.cpp b/src/viewport_sprite_sorter_sse4.cpp index 7cd48e7d9b..05a7f8aa1c 100644 --- a/src/viewport_sprite_sorter_sse4.cpp +++ b/src/viewport_sprite_sorter_sse4.cpp @@ -16,6 +16,8 @@ #include "smmintrin.h" #include "viewport_sprite_sorter.h" +#include "safeguards.h" + #ifdef _SQ64 assert_compile((sizeof(ParentSpriteToDraw) % 16) == 0); #define LOAD_128 _mm_load_si128 diff --git a/src/void_cmd.cpp b/src/void_cmd.cpp index cd8d9caa69..ea918b96a7 100644 --- a/src/void_cmd.cpp +++ b/src/void_cmd.cpp @@ -17,6 +17,8 @@ #include "table/strings.h" #include "table/sprites.h" +#include "safeguards.h" + static void DrawTile_Void(TileInfo *ti) { DrawGroundSprite(SPR_SHADOW_CELL, PAL_NONE); diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp index 15c57afd56..7b5272a411 100644 --- a/src/water_cmd.cpp +++ b/src/water_cmd.cpp @@ -42,6 +42,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Describes from which directions a specific slope can be flooded (if the tile is floodable at all). */ diff --git a/src/waypoint.cpp b/src/waypoint.cpp index 9500aba82b..857f8ba874 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -16,6 +16,8 @@ #include "newgrf_station.h" #include "waypoint_base.h" +#include "safeguards.h" + /** * Draw a waypoint * @param x coordinate diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index 1a3d6e6e94..3c2701270d 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -32,6 +32,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** * Update the virtual coords needed to draw the waypoint sign. */ @@ -414,7 +416,7 @@ CommandCost CmdRenameWaypoint(TileIndex tile, DoCommandFlag flags, uint32 p1, ui if (flags & DC_EXEC) { free(wp->name); - wp->name = reset ? NULL : strdup(text); + wp->name = reset ? NULL : stredup(text); wp->UpdateVirtCoord(); } diff --git a/src/waypoint_gui.cpp b/src/waypoint_gui.cpp index d02a96057e..3400a7df47 100644 --- a/src/waypoint_gui.cpp +++ b/src/waypoint_gui.cpp @@ -27,6 +27,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** GUI for accessing waypoints and buoys. */ struct WaypointWindow : Window { private: diff --git a/src/widget.cpp b/src/widget.cpp index 7a939abb06..033180d241 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -24,6 +24,8 @@ #include "table/strings.h" #include "table/palettes.h" +#include "safeguards.h" + static const char *UPARROW = "\xEE\x8A\xA0"; ///< String containing an upwards pointing arrow. static const char *DOWNARROW = "\xEE\x8A\xAA"; ///< String containing a downwards pointing arrow. diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index a5b7be1ea1..6fdeef9090 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -18,6 +18,8 @@ #include "dropdown_widget.h" +#include "../safeguards.h" + void DropDownListItem::Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const { diff --git a/src/widgets/genworld_widget.h b/src/widgets/genworld_widget.h index 10727f1034..2048851fff 100644 --- a/src/widgets/genworld_widget.h +++ b/src/widgets/genworld_widget.h @@ -25,9 +25,6 @@ enum GenerateLandscapeWidgets { WID_GL_TOWN_PULLDOWN, ///< Dropdown 'No. of towns'. WID_GL_INDUSTRY_PULLDOWN, ///< Dropdown 'No. of industries'. - WID_GL_RANDOM_EDITBOX, ///< 'Random seed' editbox. - WID_GL_RANDOM_BUTTON, ///< 'Randomise' button. - WID_GL_GENERATE_BUTTON, ///< 'Generate' button. WID_GL_START_DATE_DOWN, ///< Decrease start year. diff --git a/src/widgets/newgrf_widget.h b/src/widgets/newgrf_widget.h index 878dcb891e..271b6669ad 100644 --- a/src/widgets/newgrf_widget.h +++ b/src/widgets/newgrf_widget.h @@ -39,6 +39,7 @@ enum NewGRFStateWidgets { WID_NS_REMOVE, ///< Remove NewGRF from active list. WID_NS_MOVE_UP, ///< Move NewGRF up in active list. WID_NS_MOVE_DOWN, ///< Move NewGRF down in active list. + WID_NS_UPGRADE, ///< Upgrade NewGRFs that have a newer version available. WID_NS_FILTER, ///< Filter list of available NewGRFs. WID_NS_FILE_LIST, ///< List window of active NewGRFs. WID_NS_SCROLLBAR, ///< Scrollbar for active NewGRF list. @@ -60,6 +61,15 @@ enum NewGRFStateWidgets { WID_NS_SHOW_APPLY, ///< Select display of the buttons below the 'details'. }; +/** Widgets of the #SavePresetWindow class. */ +enum SavePresetWidgets { + WID_SVP_PRESET_LIST, ///< List with available preset names. + WID_SVP_SCROLLBAR, ///< Scrollbar for the list available preset names. + WID_SVP_EDITBOX, ///< Edit box for changing the preset name. + WID_SVP_CANCEL, ///< Button to cancel saving the preset. + WID_SVP_SAVE, ///< Button to save the preset. +}; + /** Widgets of the #ScanProgressWindow class. */ enum ScanProgressWidgets { WID_SP_PROGRESS_BAR, ///< Simple progress bar. diff --git a/src/widgets/settings_widget.h b/src/widgets/settings_widget.h index 6e7575eda8..8dca3a1871 100644 --- a/src/widgets/settings_widget.h +++ b/src/widgets/settings_widget.h @@ -23,7 +23,6 @@ enum GameOptionsWidgets { WID_GO_LANG_DROPDOWN, ///< Language dropdown. WID_GO_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution. WID_GO_FULLSCREEN_BUTTON, ///< Toggle fullscreen. - WID_GO_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!. WID_GO_BUTTON_SIZE_DROPDOWN, ///< Size of in-game UI elements, such as buttons. WID_GO_TEXT_SIZE_DROPDOWN, ///< Size of medium font, sizes of other fonts are derived from it. WID_GO_VERTICAL_TOOLBAR, ///< Enable vertical toolbar. diff --git a/src/widgets/story_widget.h b/src/widgets/story_widget.h index c3f279444d..139b6d2d6b 100644 --- a/src/widgets/story_widget.h +++ b/src/widgets/story_widget.h @@ -23,4 +23,4 @@ enum StoryBookWidgets { WID_SB_NEXT_PAGE, ///< Next button. }; -#endif /* WIDGETS_STORY_WIDGET_H */ \ No newline at end of file +#endif /* WIDGETS_STORY_WIDGET_H */ diff --git a/src/window.cpp b/src/window.cpp index 4cc7e1b963..24774a931d 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -45,6 +45,8 @@ #include "table/strings.h" +#include "safeguards.h" + /** Values for _settings_client.gui.auto_scrolling */ enum ViewportAutoscrolling { VA_DISABLED, //!< Do not autoscroll when mouse is at edge of viewport. @@ -455,7 +457,7 @@ bool EditBoxInGlobalFocus() void Window::UnfocusFocusedWidget() { if (this->nested_focus != NULL) { - if (this->nested_focus->type == WWT_EDITBOX) _video_driver->EditBoxLostFocus(); + if (this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxLostFocus(); /* Repaint the widget that lost focus. A focused edit box may else leave the caret on the screen. */ this->nested_focus->SetDirty(this); @@ -479,7 +481,7 @@ bool Window::SetFocusedWidget(int widget_index) /* Repaint the widget that lost focus. A focused edit box may else leave the caret on the screen. */ this->nested_focus->SetDirty(this); - if (this->nested_focus->type == WWT_EDITBOX) _video_driver->EditBoxLostFocus(); + if (this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxLostFocus(); } this->nested_focus = this->GetWidget(widget_index); return true; @@ -490,7 +492,7 @@ bool Window::SetFocusedWidget(int widget_index) */ void Window::OnFocusLost() { - if (this->nested_focus != NULL && this->nested_focus->type == WWT_EDITBOX) _video_driver->EditBoxLostFocus(); + if (this->nested_focus != NULL && this->nested_focus->type == WWT_EDITBOX) VideoDriver::GetInstance()->EditBoxLostFocus(); } /** @@ -1276,6 +1278,7 @@ static uint GetWindowZPriority(const Window *w) case WC_CONFIRM_POPUP_QUERY: case WC_MODAL_PROGRESS: case WC_NETWORK_STATUS_WINDOW: + case WC_SAVE_PRESET: ++z_priority; case WC_GENERATE_LANDSCAPE: diff --git a/src/window_type.h b/src/window_type.h index d0fa1ad946..7dd6882ed3 100644 --- a/src/window_type.h +++ b/src/window_type.h @@ -683,11 +683,17 @@ enum WindowClass { WC_SPRITE_ALIGNER, /** - * Linkgraph legend; Window numbers: + * Linkgraph legend; %Window numbers: * - 0 = #LinkGraphWidgets */ WC_LINKGRAPH_LEGEND, + /** + * Save preset; %Window numbers: + * - 0 = #SavePresetWidgets + */ + WC_SAVE_PRESET, + WC_INVALID = 0xFFFF, ///< Invalid window. };