From 06f9c019864a0fd3f832d42101897fee8c27a7cb Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 27 Sep 2016 01:05:42 +0100 Subject: [PATCH 001/158] Fix CPU pointer width detection in configure script. --- config.lib | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/config.lib b/config.lib index ae9b5be2c1..91b710252a 100644 --- a/config.lib +++ b/config.lib @@ -3123,24 +3123,40 @@ detect_nforenum() { log 1 "checking nforenum... found" } -detect_cputype() { - if [ -n "$cpu_type" ] && [ "$cpu_type" != "DETECT" ]; then - log 1 "forcing cpu-type... $cpu_type bits" - return; - fi - echo "#define _SQ64 1" > tmp.64bit.cpp - echo "#include \"src/stdafx.h\"" >> tmp.64bit.cpp - echo "assert_compile(sizeof(size_t) == 8);" >> tmp.64bit.cpp - echo "int main() { return 0; }" >> tmp.64bit.cpp - execute="$cxx_host $CFLAGS tmp.64bit.cpp -o tmp.64bit -DTESTING 2>&1" +_detect_cputype_width() { + echo "#define _SQ64 1" > $1.cpp + echo "#include \"src/stdafx.h\"" >> $1.cpp + echo "assert_compile(sizeof(size_t) == $2);" >> $1.cpp + echo "int main() { return 0; }" >> $1.cpp + execute="$cxx_host $CFLAGS -std=c++11 $1.cpp -o $1 -DTESTING 2>&1" cpu_type="`eval $execute 2>/dev/null`" ret=$? log 2 "executing $execute" log 2 " returned $cpu_type" log 2 " exit code $ret" - if [ "$ret" = "0" ]; then cpu_type="64"; else cpu_type="32"; fi + rm -f $1 $1.cpp + return $ret +} + +detect_cputype() { + if [ -n "$cpu_type" ] && [ "$cpu_type" != "DETECT" ]; then + log 1 "forcing cpu-type... $cpu_type bits" + return; + fi + _detect_cputype_width tmp.32bit 4 + result32=$? + _detect_cputype_width tmp.64bit 8 + result64=$? + + if [ "$result32" = 0 ] && [ "$result64" != 0 ]; then + cpu_type="32" + elif [ "$result32" != 0 ] && [ "$result64" = 0 ]; then + cpu_type="64" + else + log 1 "configure: unable to determine cpu-type (pointer width)" + exit 1 + fi log 1 "detecting cpu-type... $cpu_type bits" - rm -f tmp.64bit tmp.64bit.cpp } detect_sse_capable_architecture() { From db6e65f4f38a8b46404dcfdc541300adee767944 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 26 Dec 2016 18:45:38 +0000 Subject: [PATCH 002/158] (svn r27715) -Update from Eints: spanish: 2 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index db7f1cbcac..67e2677fe9 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2613,8 +2613,8 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Ferrocarril con señales de bloque y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Ferrocarril con señales de bloque y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta From 9bbc6e7ab54b6f0ba61ae52dbe76311c6cf5b04f Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 27 Dec 2016 18:45:39 +0000 Subject: [PATCH 003/158] (svn r27716) -Update from Eints: catalan: 1 change by juanjo --- src/lang/catalan.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 9a9f050124..c864f63c36 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3885,7 +3885,7 @@ STR_ORDER_CONDITIONAL_UNCONDITIONAL :salta a l'ordre STR_ORDER_CONDITIONAL_NUM :Salta a l'ordre {COMMA} quan {STRING} {STRING} {COMMA} STR_ORDER_CONDITIONAL_TRUE_FALSE :Salta a l'ordre {COMMA} quan {STRING} {STRING} -STR_INVALID_ORDER :{RED} (Ordre incorrecte) +STR_INVALID_ORDER :{RED} (Ordre incorrecta) # Time table window STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horari) From 151956d471f16351f2a1ab6abd938c2e909f5dd8 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 29 Dec 2016 18:45:38 +0000 Subject: [PATCH 004/158] (svn r27717) -Update from Eints: spanish: 2 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 67e2677fe9..8b5f8988cc 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2610,8 +2610,8 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de ferrocarril con señales combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con señales de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Ferrocarril con señales de bloque y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Ferrocarril con señales de bloque y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de ferrocarril con señales de bloque y de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferrocarril con señales de bloque y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido From a8496153d6aa239c263ef273e1753a2424c05cb9 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 30 Dec 2016 18:45:38 +0000 Subject: [PATCH 005/158] (svn r27718) -Update from Eints: spanish (mexican): 25 changes by Absay --- src/lang/spanish_MX.txt | 48 +++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7eb5f0a0cf..d7f635d93a 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nombre d STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento recibido: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de vía: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad de ferrocarril: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidad de carretera: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terreno nevado STR_LAI_CLEAR_DESCRIPTION_DESERT :Desierto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con señales de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de entrada -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con señales de bloqueo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con señales de entrada y señales de salida -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con señales de entrada y señales combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con señales de entrada y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con señales de salida y señales de combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con señales de salida y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con señales de combo y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con señales de ruta y señales de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito (Ferrocarril) +STR_LAI_RAIL_DESCRIPTION_TRACK :Vías férreas +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vías férreas con señales de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vías férreas con señales de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vías férreas con señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vías férreas con señales combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vías férreas con señales de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vías férreas con señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vías férreas con señales de bloqueo y de entrada +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vías férreas con señales de bloqueo y de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vías férreas con señales de bloqueo y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vías férreas con señales de bloqueo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vías férreas con señales de bloqueo y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vías férreas con señales de entrada y de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vías férreas con señales de entrada y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vías férreas con señales de entrada y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vías férreas con señales de entrada y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vías férreas con señales de salida y combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vías férreas con señales de salida y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vías férreas con señales de salida y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vías férreas con señales combo y de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vías férreas con señales combo y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vías férreas con señales de ruta y de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito (trenes) STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con alumbrado @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambiar entre reemplazo de vagón y locomotora STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagones +STR_REPLACE_ALL_RAILTYPE :Todos los vehículos ferroviarios STR_REPLACE_HELP_RAILTYPE :{BLACK}Elegir el tipo de vías férreas para las que se desea reemplazar locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostrar el vehículo que reemplazará al otro de la izquierda From 12d17ed62bed155b3da2cb62c7c023a89e392fd2 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 31 Dec 2016 18:45:36 +0000 Subject: [PATCH 006/158] (svn r27719) -Update from Eints: polish: 25 changes by nouwak --- src/lang/polish.txt | 48 +++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 1e24704f7d..fbf9dce13c 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2969,6 +2969,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nazwa po STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akceptowany ładunek: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Typ torów: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limit prędkości linii kolejowej: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Drogowe ograniczenie prędkości: {LTBLUE}{VELOCITY} @@ -2981,29 +2982,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pola STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zaśnieżony teren STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustynia -STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Kolej odcinek -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Kolej tor z semaforam blokowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Kolej tor z semaforami wejściowymi -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Kolej tor z semaforem wyjściowym -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Kolej tor z semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Kolej tor z semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Kolej tor z jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Kolej tor z semaforami blokowymi i semaforami wejścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Kolej tor z semaforami blokowymi i semaforami wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Kolej tor z semaforami blokowymi i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Kolej tor z semaforami blokowymi i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Kolej tor z semaforami blokowymi i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Kolej tor z semaforami wejścia i wyjścia -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Kolej tor z semaforami wejścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Kolej tor z semaforami wejścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Kolej tor z semaforami wejścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Kolej tor z semaforami wyjścia i semaforami złożonymi (combo) -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Kolej tor z semaforami wyjścia i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Kolej tor z semaforami wyjścia i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Kolej tor z semaforami złożonymi (combo) i semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Kolej tor z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Kolej tor z semaforami trasy i jednokierunkowymi semaforami trasy -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty - Kolej +STR_LAI_RAIL_DESCRIPTION_TRACK :{G=m}Tor kolejowy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Tor kolejowy z semaforam blokowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Tor kolejowy z semaforami wejściowymi +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Tor kolejowy z semaforem wyjściowym +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Tor kolejowy z semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Tor kolejowy z semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Tor kolejowy z jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Tor kolejowy z semaforami blokowymi i semaforami wejścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Tor kolejowy z semaforami blokowymi i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Tor kolejowy z semaforami blokowymi i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Tor kolejowy z semaforami wejścia i wyjścia +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Tor kolejowy z semaforami wejścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Tor kolejowy z semaforami wejścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Tor kolejowy z semaforami wejścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Tor kolejowy z semaforami wyjścia i semaforami złożonymi (combo) +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Tor kolejowy z semaforami wyjścia i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Tor kolejowy z semaforami wyjścia i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Tor kolejowy z semaforami złożonymi (combo) i semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Tor kolejowy z semaforami złożonymi (combo) i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Tor kolejowy z semaforami trasy i jednokierunkowymi semaforami trasy +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{G=f}Warsztaty kolejowe STR_LAI_ROAD_DESCRIPTION_ROAD :Droga STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Droga z oświetleniem ulicznym @@ -3946,6 +3947,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Wciśnij STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Przejdź pomiędzy oknami zamiany lokomotyw i wagonów STR_REPLACE_ENGINES :Lokomotywy STR_REPLACE_WAGONS :Wagony +STR_REPLACE_ALL_RAILTYPE :Wszystkie pojazdy szynowe STR_REPLACE_HELP_RAILTYPE :{BLACK}Wybierz dla jakiego typu torów chcesz zastąpić lokomotywy STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Wyświetla typ pojazdu na jaki będzie zastąpiony pojazd zaznaczony po lewej stronie From 43ee8e8d38c494d31cc8ec75c114e653eb59868e Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 7 Jan 2017 18:45:37 +0000 Subject: [PATCH 007/158] (svn r27720) -Update from Eints: turkish: 25 changes by barisdemirdelen --- src/lang/turkish.txt | 48 +++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 09e8f83c10..e9993fb3da 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Havalima STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}İstenen: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Ray türü: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ray hız sınırı: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Yol hız sınırı: {LTBLUE}{VELOCITY} @@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Mera STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Karlı arazi STR_LAI_CLEAR_DESCRIPTION_DESERT :Çöl -STR_LAI_RAIL_DESCRIPTION_TRACK :Demiryolu ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Demiryolu blok sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Demiryolu ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Demiryolu çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Demiryolu karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Demiryolu yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Demiryolu tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Demiryolu blok ve ön sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Demiryolu blok ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Demiryolu blok ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Demiryolu blok ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Demiryolu blok ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Demiryolu ön ve çıkış sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Demiryolu ön ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Demiryolu ön ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Demiryolu ön ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Demiryolu çıkış ve karışık sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Demiryolu çıkış ve yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Demiryolu çıkış ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Demiryolu karışık ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Demiryolu yol ve tek yön yol sinyalli ray -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Demiryolu tren garajı +STR_LAI_RAIL_DESCRIPTION_TRACK :Ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Blok sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Blok ve ön sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Blok ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Blok ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Blok ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Blok ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ön ve çıkış sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Ön ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Ön ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ön ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Çıkış ve karışık sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Çıkış ve yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Çıkış ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Karışık ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Yol ve tek yön yol sinyalli ray +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Tren garajı STR_LAI_ROAD_DESCRIPTION_ROAD :Yol STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Sokak lambalı yol @@ -3561,6 +3562,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Değişt STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Lokomotif ve vagon değişimi pencereleri arasında geçiş yap. STR_REPLACE_ENGINES :Lokomotifler STR_REPLACE_WAGONS :Vagon +STR_REPLACE_ALL_RAILTYPE :Tüm demiryolu araçları STR_REPLACE_HELP_RAILTYPE :{BLACK}Lokomatiflerini değiştireceğiniz ray türünü seçin STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Soldaki değiştiriliyorsa neyle değiştirildiğini göster From 4955e71ee0354cf87a8c9333aea7b337c25bfe8e Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:18:17 +0000 Subject: [PATCH 008/158] (svn r27721) -Fix: Testing GRFs for static-safety (when reloading the config) invalidated file slot 62, which may be in use by an active GRF. --- src/newgrf_config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 19ac4d4a7e..5e3d294392 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -425,7 +425,7 @@ bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir) if (is_static) { /* Perform a 'safety scan' for static GRFs */ - LoadNewGRFFile(config, 62, GLS_SAFETYSCAN, subdir); + LoadNewGRFFile(config, CONFIG_SLOT, GLS_SAFETYSCAN, subdir); /* GCF_UNSAFE is set if GLS_SAFETYSCAN finds unsafe actions */ if (HasBit(config->flags, GCF_UNSAFE)) return false; From ca329cd275202498a575ce31feeac9d60d9004df Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:20:02 +0000 Subject: [PATCH 009/158] (svn r27722) -Fix (r7490): GCF_SYSTEM was never set correctly. --- src/newgrf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 3f4a8db6f3..8577cb40e2 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -6199,7 +6199,7 @@ static void ScanInfo(ByteReader *buf) } /* GRF IDs starting with 0xFF are reserved for internal TTDPatch use */ - if (GB(grfid, 24, 8) == 0xFF) SetBit(_cur.grfconfig->flags, GCF_SYSTEM); + if (GB(grfid, 0, 8) == 0xFF) SetBit(_cur.grfconfig->flags, GCF_SYSTEM); AddGRFTextToList(&_cur.grfconfig->name->text, 0x7F, grfid, false, name); From 373a6d3497026b709d1cc757d434cb0f69486d05 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:22:26 +0000 Subject: [PATCH 010/158] (svn r27723) -Codechange: Simplify tests by using GCF_SYSTEM. --- src/newgrf_config.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 5e3d294392..0f6623f64c 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -420,8 +420,8 @@ bool FillGRFDetails(GRFConfig *config, bool is_static, Subdirectory subdir) config->SetSuitablePalette(); config->FinalizeParameterInfo(); - /* Skip if the grfid is 0 (not read) or 0xFFFFFFFF (ttdp system grf) */ - if (config->ident.grfid == 0 || config->ident.grfid == 0xFFFFFFFF || config->IsOpenTTDBaseGRF()) return false; + /* Skip if the grfid is 0 (not read) or if it is an internal GRF */ + if (config->ident.grfid == 0 || HasBit(config->flags, GCF_SYSTEM)) return false; if (is_static) { /* Perform a 'safety scan' for static GRFs */ From dc024f0e3ad25e303bab60b979b0db8e2b24d742 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:28:03 +0000 Subject: [PATCH 011/158] (svn r27724) -Cleanup: Remove pointless usage of IsOpenTTDBaseGRF. System GRFs are never listed in the NewGRF GUI. --- src/newgrf_gui.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index cc63f7b577..eac36c3cf5 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1279,7 +1279,6 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { /* All widgets are now enabled, so disable widgets we can't use */ if (this->active_sel == this->actives) this->DisableWidget(WID_NS_MOVE_UP); if (this->active_sel->next == NULL) this->DisableWidget(WID_NS_MOVE_DOWN); - if (this->active_sel->IsOpenTTDBaseGRF()) this->DisableWidget(WID_NS_REMOVE); } this->SetWidgetDisabledState(WID_NS_PRESET_DELETE, this->preset == -1); From a76847f36204b83e7318f57191ffda80184103e4 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 7 Jan 2017 21:36:25 +0000 Subject: [PATCH 012/158] (svn r27725) -Codechange: Remove IsOpenTTDBaseGRF and test for GCF_CONFIG instead, which does the same in all use-cases. --- src/newgrf.cpp | 3 +-- src/newgrf.h | 1 - src/newgrf_config.cpp | 9 --------- src/newgrf_config.h | 2 -- 4 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8577cb40e2..8d85b383da 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5621,7 +5621,7 @@ static void GraphicsNew(ByteReader *buf) uint16 offset = HasBit(type, 7) ? buf->ReadExtendedByte() : 0; ClrBit(type, 7); // Clear the high bit as that only indicates whether there is an offset. - if ((type == 0x0D) && (num == 10) && _cur.grffile->is_ottdfile) { + if ((type == 0x0D) && (num == 10) && HasBit(_cur.grfconfig->flags, GCF_SYSTEM)) { /* Special not-TTDP-compatible case used in openttd.grf * Missing shore sprites and initialisation of SPR_SHORE_BASE */ grfmsg(2, "GraphicsNew: Loading 10 missing shore sprites from extra grf."); @@ -8858,7 +8858,6 @@ void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage, S if (_cur.grffile == NULL) usererror("File '%s' lost in cache.\n", filename); if (stage == GLS_RESERVE && config->status != GCS_INITIALISED) return; if (stage == GLS_ACTIVATION && !HasBit(config->flags, GCF_RESERVED)) return; - _cur.grffile->is_ottdfile = config->IsOpenTTDBaseGRF(); } if (file_index > LAST_GRF_SLOT) { diff --git a/src/newgrf.h b/src/newgrf.h index 752873a60e..51b00da7c6 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -103,7 +103,6 @@ struct GRFLabel { /** Dynamic data of a loaded NewGRF */ struct GRFFile : ZeroedMemoryAllocator { char *filename; - bool is_ottdfile; uint32 grfid; byte grf_version; diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 0f6623f64c..b970e0a80b 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -915,15 +915,6 @@ char *GRFBuildParamList(char *dst, const GRFConfig *c, const char *last) /** Base GRF ID for OpenTTD's base graphics GRFs. */ static const uint32 OPENTTD_GRAPHICS_BASE_GRF_ID = BSWAP32(0xFF4F5400); -/** - * Checks whether this GRF is a OpenTTD base graphic GRF. - * @return true if and only if it is a base GRF. - */ -bool GRFConfig::IsOpenTTDBaseGRF() const -{ - return (this->ident.grfid & 0x00FFFFFF) == OPENTTD_GRAPHICS_BASE_GRF_ID; -} - /** * Search a textfile file next to this NewGRF. * @param type The type of the textfile to search for. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index e19d8d6085..73ab243cf0 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -179,8 +179,6 @@ struct GRFConfig : ZeroedMemoryAllocator { void CopyParams(const GRFConfig &src); - bool IsOpenTTDBaseGRF() const; - const char *GetTextfile(TextfileType type) const; const char *GetName() const; const char *GetDescription() const; From b276dd7c638919aa57727cf0bc3df839725da963 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 8 Jan 2017 11:45:08 +0000 Subject: [PATCH 013/158] (svn r27726) -Fix: Improve error message when trying to build rail track over a depot. (adf88) --- src/rail_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index a8c20e3394..a5face14c5 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -455,7 +455,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u CommandCost ret = CheckTileOwnership(tile); if (ret.Failed()) return ret; - if (!IsPlainRail(tile)) return CMD_ERROR; + if (!IsPlainRail(tile)) return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); // just get appropriate error message if (!IsCompatibleRail(GetRailType(tile), railtype)) return_cmd_error(STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION); From 3e7bdb0c735bee6a1eab672843c9afa54c7c8e30 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Sun, 8 Jan 2017 17:00:18 +0000 Subject: [PATCH 014/158] (svn r27727) -Fix(-or-not) [FS#6295]: [OSX] Out-of-the-box compilation on newer OSX versions (dunn). --- config.lib | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/config.lib b/config.lib index 196e908f5f..3d10aaa3fd 100644 --- a/config.lib +++ b/config.lib @@ -1611,23 +1611,6 @@ make_cflags_and_ldflags() { CFLAGS="$OSX_SYSROOT $CFLAGS" LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS" fi - - if [ "$enable_universal" = "0" ] && [ $cc_version -gt 400 ]; then - # Only set the min version when not doing an universal build. - # Universal builds set the version elsewhere. - if [ "$cpu_type" = "64" ]; then - CFLAGS="$CFLAGS -mmacosx-version-min=10.5" - else - gcc_cpu=`$cc_host -dumpmachine` - if [ "`echo $gcc_cpu | cut -c 1-3`" = "ppc" -o "`echo $gcc_cpu | cut -c 1-7`" = "powerpc" ]; then - # PowerPC build can run on 10.3 - CFLAGS="$CFLAGS -mmacosx-version-min=10.3" - else - # Intel is only available starting from 10.4 - CFLAGS="$CFLAGS -mmacosx-version-min=10.4" - fi - fi - fi fi if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ]; then From 9f858cefd1bf9b45049900144898d404c677ad0f Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 8 Jan 2017 18:45:37 +0000 Subject: [PATCH 015/158] (svn r27728) -Update from Eints: latin: 1 change by Supercheese --- src/lang/latin.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index aeb813652d..36df900c60 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2890,7 +2890,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terra societati STR_ABOUT_OPENTTD :{WHITE}De OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Privilegium impressorium originale {COPYRIGHT} MCMXCV Chris Sawyer, Omnia proprietatis iura reservantur STR_ABOUT_VERSION :{BLACK}OpenTTD editio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} MMII-MMXVI Manus OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} MMII-MMXVII Manus OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Servare Ludum From 8bd3a8a99165a45e96d6bd663742d26cd9c1d991 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 13:12:49 +0000 Subject: [PATCH 016/158] (svn r27729) -Codechange: Do not count static NewGRF when checking for the maximum number of NewGRFs in a game. -Codechange: Remove LAST_GRF_SLOT and MAX_NEWGRFS. Now NETWORK_MAX_GRF_COUNT is the only constant to specify the maximum number of non-static NewGRF. -Codechange: Increase the number of file slots, effectively increasing the maximum number of static NewGRF and baseset GRFs. --- src/fios.h | 11 ++++------- src/network/core/config.h | 3 +-- src/newgrf.cpp | 15 +++++++++++++-- src/newgrf_gui.cpp | 10 +++------- 4 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/fios.h b/src/fios.h index 51e0c275a6..5e17e8ee17 100644 --- a/src/fios.h +++ b/src/fios.h @@ -81,20 +81,17 @@ extern LoadCheckData _load_check_data; enum FileSlots { /** - * Slot used for the GRF scanning and such. This slot cannot be reused - * as it will otherwise cause issues when pressing "rescan directories". - * It can furthermore not be larger than LAST_GRF_SLOT as that complicates - * the testing for "too much NewGRFs". + * Slot used for the GRF scanning and such. + * This slot is used for all temporary accesses to files when scanning/testing files, + * and thus cannot be used for files, which are continuously accessed during a game. */ CONFIG_SLOT = 0, /** Slot for the sound. */ SOUND_SLOT = 1, /** First slot usable for (New)GRFs used during the game. */ FIRST_GRF_SLOT = 2, - /** Last slot usable for (New)GRFs used during the game. */ - LAST_GRF_SLOT = 63, /** Maximum number of slots. */ - MAX_FILE_SLOTS = 64 + MAX_FILE_SLOTS = 128, }; /** Deals with finding savegames */ diff --git a/src/network/core/config.h b/src/network/core/config.h index 93f75e3776..f5e73dd12d 100644 --- a/src/network/core/config.h +++ b/src/network/core/config.h @@ -55,8 +55,7 @@ static const uint NETWORK_GRF_NAME_LENGTH = 80; ///< Maximum l /** * Maximum number of GRFs that can be sent. - * This value is related to number of handles (files) OpenTTD can open. - * This is currently 64. Two are used for configuration and sound. + * This limit is reached when PACKET_UDP_SERVER_RESPONSE reaches the maximum size of SEND_MTU bytes. */ static const uint NETWORK_MAX_GRF_COUNT = 62; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 8d85b383da..7b862149d4 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -8860,8 +8860,8 @@ void LoadNewGRFFile(GRFConfig *config, uint file_index, GrfLoadingStage stage, S if (stage == GLS_ACTIVATION && !HasBit(config->flags, GCF_RESERVED)) return; } - if (file_index > LAST_GRF_SLOT) { - DEBUG(grf, 0, "'%s' is not loaded as the maximum number of GRFs has been reached", filename); + if (file_index >= MAX_FILE_SLOTS) { + DEBUG(grf, 0, "'%s' is not loaded as the maximum number of file slots has been reached", filename); config->status = GCS_DISABLED; config->error = new GRFError(STR_NEWGRF_ERROR_MSG_FATAL, STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED); return; @@ -9263,6 +9263,7 @@ void LoadNewGRF(uint load_index, uint file_index) } uint slot = file_index; + uint num_non_static = 0; _cur.stage = stage; for (GRFConfig *c = _grfconfig; c != NULL; c = c->next) { @@ -9277,6 +9278,16 @@ void LoadNewGRF(uint load_index, uint file_index) } if (stage == GLS_LABELSCAN) InitNewGRFFile(c); + + if (!HasBit(c->flags, GCF_STATIC) && !HasBit(c->flags, GCF_SYSTEM)) { + if (num_non_static == NETWORK_MAX_GRF_COUNT) { + DEBUG(grf, 0, "'%s' is not loaded as the maximum number of non-static GRFs has been reached", c->filename); + c->status = GCS_DISABLED; + c->error = new GRFError(STR_NEWGRF_ERROR_MSG_FATAL, STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED); + continue; + } + num_non_static++; + } LoadNewGRFFile(c, slot++, stage, subdir); if (stage == GLS_RESERVE) { SetBit(c->flags, GCF_RESERVED); diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index eac36c3cf5..c3007ac42d 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -39,10 +39,6 @@ #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; - /** * Show the first NewGRF error we can find. */ @@ -1509,7 +1505,7 @@ private: { if (this->avail_sel == NULL || !this->editable || HasBit(this->avail_sel->flags, GCF_INVALID)) return false; - int count = 0; + uint count = 0; GRFConfig **entry = NULL; GRFConfig **list; /* Find last entry in the list, checking for duplicate grfid on the way */ @@ -1519,10 +1515,10 @@ private: ShowErrorMessage(STR_NEWGRF_DUPLICATE_GRFID, INVALID_STRING_ID, WL_INFO); return false; } - count++; + if (!HasBit((*list)->flags, GCF_STATIC)) count++; } if (entry == NULL) entry = list; - if (count >= MAX_NEWGRFS) { + if (count >= NETWORK_MAX_GRF_COUNT) { ShowErrorMessage(STR_NEWGRF_TOO_MANY_NEWGRFS, INVALID_STRING_ID, WL_INFO); return false; } From 79027cbf9d4fa60506455e13e817fce5fdec23b9 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 15:48:19 +0000 Subject: [PATCH 017/158] (svn r27730) -Change: Split openttd.grf into openttd.grf and orig_extra.grf openttd.grf is now always loaded and provides all extra graphics in case the (possibly outdated) baseset does not. orig_extra.grf contains graphics specific to the original baseset only. --- .gitignore | 1 + Makefile.grf.in | 24 ++++++--- Makefile.in | 2 +- bin/baseset/openttd.grf | Bin 825852 -> 523136 bytes bin/baseset/orig_dos.obg | 28 +++++------ bin/baseset/orig_dos_de.obg | 28 +++++------ bin/baseset/orig_extra.grf | Bin 0 -> 303149 bytes bin/baseset/orig_win.obg | 28 +++++------ media/baseset/orig_dos.obg | 28 +++++------ media/baseset/orig_dos_de.obg | 28 +++++------ media/baseset/orig_win.obg | 28 +++++------ media/extra_grf/openttd.nfo | 12 ++--- media/extra_grf/orig_extra.nfo | 84 +++++++++++++++++++++++++++++++ os/windows/installer/install.nsi | 1 + src/gfxinit.cpp | 26 +++++++--- src/newgrf.cpp | 5 +- src/newgrf.h | 2 +- 17 files changed, 212 insertions(+), 113 deletions(-) create mode 100644 bin/baseset/orig_extra.grf create mode 100644 media/extra_grf/orig_extra.nfo diff --git a/.gitignore b/.gitignore index cb1e9d1599..2b298a14a9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ bin/ai/* bin/baseset/* !bin/baseset/openttd.grf !bin/baseset/opntitle.dat +!bin/baseset/orig_extra.grf !bin/baseset/orig_*.obg !bin/baseset/orig_*.obs !bin/baseset/no_sound.obs diff --git a/Makefile.grf.in b/Makefile.grf.in index 1cc2642320..1625b9e4c0 100644 --- a/Makefile.grf.in +++ b/Makefile.grf.in @@ -44,22 +44,18 @@ PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png # Build the GRF. ifdef GRFCODEC -all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm +all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm else all: endif -# Make sure the sprites directory exists. -$(OBJS_DIR)/sprites: - $(Q)-mkdir "$@" - $(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt $(E) '$(STAGE) Collecting baseset translations' $(Q) cat $^ > $@ -$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/openttd.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk +$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/orig_extra.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk $(E) '$(STAGE) Updating $(notdir $@)' - $(Q) sed 's/^OPENTTD.GRF = *[0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $< > $@.tmp + $(Q) sed 's/^ORIG_EXTRA.GRF = *[0-9a-f]*$$/ORIG_EXTRA.GRF = '`$(MD5SUM) $(BIN_DIR)/orig_extra.grf | sed 's@ .*@@'`'/' $< > $@.tmp $(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $@.tmp >$@ $(Q) rm $@.tmp @@ -72,8 +68,9 @@ $(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/ $(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@ # Compile extra grf -$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites $(GRF_DIR)/assemble_nfo.awk +$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk $(E) '$(STAGE) Assembling openttd.nfo' + $(Q)-mkdir -p $(OBJS_DIR)/sprites $(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null $(Q) awk -f $(GRF_DIR)/assemble_nfo.awk $(GRF_DIR)/openttd.nfo > $(OBJS_DIR)/sprites/openttd.nfo $(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo @@ -81,6 +78,17 @@ $(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites $(GRF_DIR) $(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf $(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf +# The copy operation of PNG_FILES is duplicated from the target 'openttd.grf', thus those targets may not run in parallel. +$(BIN_DIR)/orig_extra.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk | $(BIN_DIR)/openttd.grf + $(E) '$(STAGE) Assembling orig_extra.nfo' + $(Q)-mkdir -p $(OBJS_DIR)/sprites + $(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null + $(Q) awk -f $(GRF_DIR)/assemble_nfo.awk $(GRF_DIR)/orig_extra.nfo > $(OBJS_DIR)/sprites/orig_extra.nfo + $(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/orig_extra.nfo + $(E) '$(STAGE) Compiling orig_extra.grf' + $(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/orig_extra.grf + $(Q)cp $(OBJS_DIR)/orig_extra.grf $(BIN_DIR)/orig_extra.grf + # Clean up temporary files. clean: $(Q)rm -f *.bak *.grf diff --git a/Makefile.in b/Makefile.in index 0d50fc1b1e..d33d8a0d2a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -152,7 +152,7 @@ mrproper: distclean: mrproper maintainer-clean: distclean - $(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm + $(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/orig_extra.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm depend: @for dir in $(SRC_DIRS); do \ diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index efe35ffd3897113f03b34162f7b177b8375010bf..6f2921f272a89628f47f34f5155b5e4b4ada42d7 100644 GIT binary patch delta 109 zcmeyf*{I>WJSz*s|GV51S+AJ|Gydn``2YX^KmUT%ypRwV^|1h=wVQ&4yvh@!u7i0T@LRKJV+kT*s NJ#_K*H_ki)VE`Z!F5>_I delta 293350 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

-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 rY?OdvbolE+?Myd2)SwrbB literal 0 HcmV?d00001 diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 65a97c4770..fc4740fbac 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -63,21 +63,21 @@ description.zh_CN = 运输大亨Windows豪华版原版图形包. description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。 [files] -base = TRG1R.GRF -logos = TRGIR.GRF -arctic = TRGCR.GRF -tropical = TRGHR.GRF -toyland = TRGTR.GRF -extra = OPENTTD.GRF +base = TRG1R.GRF +logos = TRGIR.GRF +arctic = TRGCR.GRF +tropical = TRGHR.GRF +toyland = TRGTR.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 -TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 -TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b -TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 -TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -OPENTTD.GRF = 505d96061556d3bb5cec6234096ec5bc +TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 +TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 +TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b +TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 +TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 +ORIG_EXTRA.GRF = 2f214be226d04af78c3afb961ccdd08d [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_dos.obg b/media/baseset/orig_dos.obg index b4cde64007..f9db843af1 100644 --- a/media/baseset/orig_dos.obg +++ b/media/baseset/orig_dos.obg @@ -11,21 +11,21 @@ palette = DOS !! description STR_BASEGRAPHICS_DOS_DESCRIPTION [files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = OPENTTD.GRF +base = TRG1.GRF +logos = TRGI.GRF +arctic = TRGC.GRF +tropical = TRGH.GRF +toyland = TRGT.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6 -OPENTTD.GRF = +TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 +TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 +TRGC.GRF = ed446637e034104c5559b32c18afe78d +TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 +TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6 +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_dos_de.obg b/media/baseset/orig_dos_de.obg index 8cfcc27074..4e12582727 100644 --- a/media/baseset/orig_dos_de.obg +++ b/media/baseset/orig_dos_de.obg @@ -11,21 +11,21 @@ palette = DOS !! description STR_BASEGRAPHICS_DOS_DE_DESCRIPTION [files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = OPENTTD.GRF +base = TRG1.GRF +logos = TRGI.GRF +arctic = TRGC.GRF +tropical = TRGH.GRF +toyland = TRGT.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = fcde1d7e8a74197d72a62695884b909e -OPENTTD.GRF = +TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 +TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 +TRGC.GRF = ed446637e034104c5559b32c18afe78d +TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 +TRGT.GRF = fcde1d7e8a74197d72a62695884b909e +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/baseset/orig_win.obg b/media/baseset/orig_win.obg index 82a5c2a616..393b5d3013 100644 --- a/media/baseset/orig_win.obg +++ b/media/baseset/orig_win.obg @@ -11,21 +11,21 @@ palette = Windows !! description STR_BASEGRAPHICS_WIN_DESCRIPTION [files] -base = TRG1R.GRF -logos = TRGIR.GRF -arctic = TRGCR.GRF -tropical = TRGHR.GRF -toyland = TRGTR.GRF -extra = OPENTTD.GRF +base = TRG1R.GRF +logos = TRGIR.GRF +arctic = TRGCR.GRF +tropical = TRGHR.GRF +toyland = TRGTR.GRF +extra = ORIG_EXTRA.GRF [md5s] -TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 -TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 -TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b -TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 -TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -OPENTTD.GRF = +TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 +TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 +TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b +TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 +TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 +ORIG_EXTRA.GRF = [origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -OPENTTD.GRF = This file was part of your OpenTTD installation. +default = You can find it on your Transport Tycoon Deluxe CD-ROM. +ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/media/extra_grf/openttd.nfo b/media/extra_grf/openttd.nfo index 66149a37e5..7ece5c7149 100644 --- a/media/extra_grf/openttd.nfo +++ b/media/extra_grf/openttd.nfo @@ -60,10 +60,11 @@ 00 // GRF ID, must start with FF so it gets ignored - -1 * 0 08 08 FF "OTT" +//@@WARNING DISABLE 101 + -1 * 0 08 08 FF FF FF FE // Name of the GRF - "OpenTTD's base graphics " 00 + "OpenTTD's default and fallback extra graphics" 00 // Description of the GRF. "License: GNU General Public License version 2" 0D @@ -86,7 +87,6 @@ #include "canals.nfo" #include "oneway.nfo" #include "tramtracks.nfo" -#include "shore.nfo" #include "sloped_tracks.nfo" #include "airports.nfo" #include "roadstops.nfo" @@ -97,11 +97,5 @@ #include "airport_preview.nfo" #include "chars.nfo" #include "mono.nfo" -#include "fix_graphics.nfo" -#include "rivers/rapids.nfo" -#include "rivers/temperate.nfo" -#include "rivers/arctic.nfo" -#include "rivers/tropic.nfo" -#include "rivers/toyland.nfo" #include "tunnel_portals.nfo" #include "palette.nfo" diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo new file mode 100644 index 0000000000..228aa2841c --- /dev/null +++ b/media/extra_grf/orig_extra.nfo @@ -0,0 +1,84 @@ +// Automatically generated by GRFCODEC. Do not modify! +// (Info version 32) +// Format: spritenum imagefile depth xpos ypos xsize ysize xrel yrel zoom flags +// +// $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 . +// +// Sources for extra graphics to complement the original graphics. +// Checks whether the correct version of OpenTTD is used before +// allowing it to be used. +// + +// +// Number of sprites, it is wrong, but GRFcodec automagically gets it right. +// + 0 * 4 00 00 00 00 + + +// +// Check whether we are running OTTD or not. +// + -1 * 0 07 9D 04 \7= 01 00 00 00 01 + -1 * 0 0B 03 7F FF 80 " is not for TTDPatch. Use ttdpatch(w).grf." 00 + + +// +// Check for OTTD's version number +// + +// First step... Variable A1 might not exist. If that's the case it always +// skips. As we do not want to skip out of the whole testing, we skip over +// the real version check. + -1 * 0 07 A1 04 \7= FF FF FF FF 02 + +// Real version check. + -1 * 0 07 A1 04 \7> \w20304 01 01 03 + +// If the version check is supported, the string is translateable via OpenTTD +// itself. Use it!. + + -1 * 0 0B 03 7F 06 "1.1 (or trunk r20304)" 00 + +// Some OTTD versions before r11130 did support Action B, so use the English +// phrase there + -1 * 0 0B 03 7F FF "Requires OpenTTD version 1.1 (or trunk r20304) or better." 00 + +// Final fallback. No Action B support, just skip to the end of the file. + -1 * 0 07 A1 04 \7= FF FF FF FF 00 + +// We are a DOS paletted NewGRF, so tell OpenTTD that. Then it can actually +// do the right thing. Yay for that feature as that means no duplicate NewGRF! + -1 * 0 14 + "C" "INFO" + "B" "PALS" \w1 "D" + 00 + 00 + +// GRF ID, must start with FF so it gets ignored +//@@WARNING DISABLE 101 + -1 * 0 08 08 FF "OTT" + +// Name of the GRF + "Original baseset extra graphics" 00 + +// Description of the GRF. + "License: GNU General Public License version 2" 0D + "Andrew Parkhouse: rivers" 0D + "Addi and PaulC: original graphics fixes" 0D + "OpenTTD developers: other graphics" 00 + +// +// The real data of the GRF is acquired from several subfiles. +// +#include "shore.nfo" +#include "fix_graphics.nfo" +#include "rivers/rapids.nfo" +#include "rivers/temperate.nfo" +#include "rivers/arctic.nfo" +#include "rivers/tropic.nfo" +#include "rivers/toyland.nfo" diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index 9eb869f2d3..c7b8c82af4 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -408,6 +408,7 @@ Section "Uninstall" ; Baseset files Delete "$INSTDIR\baseset\opntitle.dat" Delete "$INSTDIR\baseset\openttd.grf" + Delete "$INSTDIR\baseset\orig_extra.grf" Delete "$INSTDIR\baseset\orig_win.obg" Delete "$INSTDIR\baseset\orig_dos.obg" Delete "$INSTDIR\baseset\orig_dos_de.obg" diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 10bc0afa17..23172bdd5e 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -197,31 +197,41 @@ static void LoadSpriteTables() InitializeUnicodeGlyphMap(); /* - * Load the base NewGRF with OTTD required graphics as first NewGRF. + * Load the base and extra NewGRF with OTTD required graphics as first NewGRF. * However, we do not want it to show up in the list of used NewGRFs, * so we have to manually add it, and then remove it later. */ GRFConfig *top = _grfconfig; - GRFConfig *master = new GRFConfig(used_set->files[GFT_EXTRA].filename); + + /* Default extra graphics */ + GRFConfig *master = new GRFConfig("OPENTTD.GRF"); + master->palette |= GRFP_GRF_DOS; + FillGRFDetails(master, false, BASESET_DIR); + ClrBit(master->flags, GCF_INIT_ONLY); + + /* Baseset extra graphics */ + GRFConfig *extra = new GRFConfig(used_set->files[GFT_EXTRA].filename); /* We know the palette of the base set, so if the base NewGRF is not * setting one, use the palette of the base set and not the global * one which might be the wrong palette for this base NewGRF. * The value set here might be overridden via action14 later. */ switch (used_set->palette) { - case PAL_DOS: master->palette |= GRFP_GRF_DOS; break; - case PAL_WINDOWS: master->palette |= GRFP_GRF_WINDOWS; break; + case PAL_DOS: extra->palette |= GRFP_GRF_DOS; break; + case PAL_WINDOWS: extra->palette |= GRFP_GRF_WINDOWS; break; default: break; } - FillGRFDetails(master, false, BASESET_DIR); + FillGRFDetails(extra, false, BASESET_DIR); + ClrBit(extra->flags, GCF_INIT_ONLY); - ClrBit(master->flags, GCF_INIT_ONLY); - master->next = top; + extra->next = top; + master->next = extra; _grfconfig = master; - LoadNewGRF(SPR_NEWGRFS_BASE, i); + LoadNewGRF(SPR_NEWGRFS_BASE, i, 2); /* Free and remove the top element. */ + delete extra; delete master; _grfconfig = top; } diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 7b862149d4..e0246bdf67 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -9203,8 +9203,9 @@ static void AfterLoadGRFs() * Load all the NewGRFs. * @param load_index The offset for the first sprite to add. * @param file_index The Fio index of the first NewGRF to load. + * @param num_baseset Number of NewGRFs at the front of the list to look up in the baseset dir instead of the newgrf dir. */ -void LoadNewGRF(uint load_index, uint file_index) +void LoadNewGRF(uint load_index, uint file_index, uint num_baseset) { /* In case of networking we need to "sync" the start values * so all NewGRFs are loaded equally. For this we use the @@ -9270,7 +9271,7 @@ void LoadNewGRF(uint load_index, uint file_index) if (c->status == GCS_DISABLED || c->status == GCS_NOT_FOUND) continue; if (stage > GLS_INIT && HasBit(c->flags, GCF_INIT_ONLY)) continue; - Subdirectory subdir = slot == file_index ? BASESET_DIR : NEWGRF_DIR; + Subdirectory subdir = slot < file_index + num_baseset ? BASESET_DIR : NEWGRF_DIR; if (!FioCheckFileExists(c->filename, subdir)) { DEBUG(grf, 0, "NewGRF file is missing '%s'; disabling", c->filename); c->status = GCS_NOT_FOUND; diff --git a/src/newgrf.h b/src/newgrf.h index 51b00da7c6..1ab55dd044 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -183,7 +183,7 @@ extern GRFLoadedFeatures _loaded_newgrf_features; byte GetGRFContainerVersion(); void LoadNewGRFFile(struct GRFConfig *config, uint file_index, GrfLoadingStage stage, Subdirectory subdir); -void LoadNewGRF(uint load_index, uint file_index); +void LoadNewGRF(uint load_index, uint file_index, uint num_baseset); void ReloadNewGRFData(); // in saveload/afterload.cpp void ResetNewGRFData(); void ResetPersistentNewGRFData(); From c72f21e410f69fb731ef368095b6e49c39f9a15f Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 18:00:02 +0000 Subject: [PATCH 018/158] (svn r27731) -Fix (r27730): Missed some sprites which also belong into orig_extra.grf --- bin/baseset/openttd.grf | Bin 523136 -> 508098 bytes bin/baseset/orig_dos.obg | 2 +- bin/baseset/orig_dos_de.obg | 2 +- bin/baseset/orig_extra.grf | Bin 303149 -> 318212 bytes bin/baseset/orig_win.obg | 2 +- media/extra_grf/canals.nfo | 94 +--------------------------- media/extra_grf/canals_extra.nfo | 101 +++++++++++++++++++++++++++++++ media/extra_grf/orig_extra.nfo | 1 + 8 files changed, 106 insertions(+), 96 deletions(-) create mode 100644 media/extra_grf/canals_extra.nfo diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index 6f2921f272a89628f47f34f5155b5e4b4ada42d7..168d00fbd858c29245a6d8f029e5f9d342502cb7 100644 GIT binary patch delta 55 zcmZqpE`O*|o`r?se}5xOD+^;Q3)5B><~4H}C8uwk%PhV9%3S8t&F!HvEI`Z(#BAF` JW7xIl0{|>$6SM#T delta 7779 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 delta 36 rcmZqKCcO555GxDA|6?qTtgWn!TUnWAM6{PoW&&d7?In|0Cb$Ct@S_bD diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index fc4740fbac..049a3dca9b 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -76,7 +76,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -ORIG_EXTRA.GRF = 2f214be226d04af78c3afb961ccdd08d +ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f [origin] default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/media/extra_grf/canals.nfo b/media/extra_grf/canals.nfo index c0d0275f35..e464762ee6 100644 --- a/media/extra_grf/canals.nfo +++ b/media/extra_grf/canals.nfo @@ -6,7 +6,7 @@ // 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 . // - -1 * 0 0C "Canal graphics by George / PaulC" + -1 * 0 0C "Canal graphics by George" -1 * 3 05 08 41 // Canal slopes -1 sprites/canal_locks.png 8bpp 66 8 64 23 -31 0 normal @@ -77,95 +77,3 @@ -1 sprites/canals.png 8bpp 446 10 24 16 -11 -6 normal // Canal icon -1 sprites/canal_locks.png 8bpp 50 232 20 20 0 0 normal - -// Differentiation for the climates starts here - -// Canal edges (arctic snowy) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 40 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 40 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 40 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 40 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 40 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 40 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 40 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 40 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 40 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 40 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 40 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 40 24 16 -11 -6 normal - -1 * 7 02 05 10 01 00 00 00 - -// Canal edges (arctic normal) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 70 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 70 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 70 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 70 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 70 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 70 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 70 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 70 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 70 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 70 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 70 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 70 24 16 -11 -6 normal - -1 * 7 02 05 11 01 00 00 00 -// Choose the right arctic canal edges - -1 * 14 02 05 12 81 81 00 FF 01 10 00 04 04 11 00 - -1 * 6 07 83 01 \7! 01 01 - -1 * 7 03 05 01 02 00 12 00 - -// Canal edges (tropic desert) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 100 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 100 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 100 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 100 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 100 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 100 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 100 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 100 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 100 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 100 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 100 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 100 24 16 -11 -6 normal - -1 * 7 02 05 13 01 00 00 00 - -// Canal edges (tropic rainforest) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 130 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 130 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 130 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 130 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 130 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 130 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 130 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 130 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 130 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 130 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 130 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 130 24 16 -11 -6 normal - -1 * 7 02 05 14 01 00 00 00 -// Choose the right tropic canal edges - -1 * 14 02 05 15 81 81 00 FF 01 13 00 01 01 14 00 - -1 * 6 07 83 01 \7! 02 01 - -1 * 7 03 05 01 02 00 15 00 - -// Canal edges (toyland) - -1 * 4 01 05 01 \b12 - -1 sprites/canals.png 8bpp 30 160 45 22 -11 -1 normal - -1 sprites/canals.png 8bpp 94 160 41 21 -8 10 normal - -1 sprites/canals.png 8bpp 142 160 42 21 -31 10 normal - -1 sprites/canals.png 8bpp 190 160 43 22 -31 -1 normal - -1 sprites/canals.png 8bpp 238 160 22 22 11 4 normal - -1 sprites/canals.png 8bpp 270 160 24 16 -11 15 normal - -1 sprites/canals.png 8bpp 302 160 23 23 -31 4 normal - -1 sprites/canals.png 8bpp 334 160 24 18 -11 -1 normal - -1 sprites/canals.png 8bpp 366 160 12 11 21 10 normal - -1 sprites/canals.png 8bpp 398 160 19 10 -8 21 normal - -1 sprites/canals.png 8bpp 430 160 11 10 -31 10 normal - -1 sprites/canals.png 8bpp 446 160 24 16 -11 -6 normal - -1 * 7 02 05 16 01 00 00 00 - -1 * 6 07 83 01 \7! 03 01 - -1 * 7 03 05 01 02 00 16 00 diff --git a/media/extra_grf/canals_extra.nfo b/media/extra_grf/canals_extra.nfo new file mode 100644 index 0000000000..3103886233 --- /dev/null +++ b/media/extra_grf/canals_extra.nfo @@ -0,0 +1,101 @@ +// +// $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 . +// + -1 * 0 0C "Extra canal graphics by PaulC" + +// Differentiation for the climates starts here + +// Canal edges (arctic snowy) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 40 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 40 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 40 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 40 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 40 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 40 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 40 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 40 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 40 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 40 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 40 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 40 24 16 -11 -6 normal + -1 * 7 02 05 10 01 00 00 00 + +// Canal edges (arctic normal) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 70 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 70 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 70 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 70 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 70 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 70 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 70 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 70 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 70 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 70 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 70 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 70 24 16 -11 -6 normal + -1 * 7 02 05 11 01 00 00 00 +// Choose the right arctic canal edges + -1 * 14 02 05 12 81 81 00 FF 01 10 00 04 04 11 00 + -1 * 6 07 83 01 \7! 01 01 + -1 * 7 03 05 01 02 00 12 00 + +// Canal edges (tropic desert) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 100 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 100 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 100 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 100 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 100 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 100 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 100 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 100 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 100 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 100 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 100 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 100 24 16 -11 -6 normal + -1 * 7 02 05 13 01 00 00 00 + +// Canal edges (tropic rainforest) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 130 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 130 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 130 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 130 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 130 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 130 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 130 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 130 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 130 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 130 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 130 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 130 24 16 -11 -6 normal + -1 * 7 02 05 14 01 00 00 00 +// Choose the right tropic canal edges + -1 * 14 02 05 15 81 81 00 FF 01 13 00 01 01 14 00 + -1 * 6 07 83 01 \7! 02 01 + -1 * 7 03 05 01 02 00 15 00 + +// Canal edges (toyland) + -1 * 4 01 05 01 \b12 + -1 sprites/canals.png 8bpp 30 160 45 22 -11 -1 normal + -1 sprites/canals.png 8bpp 94 160 41 21 -8 10 normal + -1 sprites/canals.png 8bpp 142 160 42 21 -31 10 normal + -1 sprites/canals.png 8bpp 190 160 43 22 -31 -1 normal + -1 sprites/canals.png 8bpp 238 160 22 22 11 4 normal + -1 sprites/canals.png 8bpp 270 160 24 16 -11 15 normal + -1 sprites/canals.png 8bpp 302 160 23 23 -31 4 normal + -1 sprites/canals.png 8bpp 334 160 24 18 -11 -1 normal + -1 sprites/canals.png 8bpp 366 160 12 11 21 10 normal + -1 sprites/canals.png 8bpp 398 160 19 10 -8 21 normal + -1 sprites/canals.png 8bpp 430 160 11 10 -31 10 normal + -1 sprites/canals.png 8bpp 446 160 24 16 -11 -6 normal + -1 * 7 02 05 16 01 00 00 00 + -1 * 6 07 83 01 \7! 03 01 + -1 * 7 03 05 01 02 00 16 00 diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo index 228aa2841c..03a8ff6741 100644 --- a/media/extra_grf/orig_extra.nfo +++ b/media/extra_grf/orig_extra.nfo @@ -77,6 +77,7 @@ // #include "shore.nfo" #include "fix_graphics.nfo" +#include "canals_extra.nfo" #include "rivers/rapids.nfo" #include "rivers/temperate.nfo" #include "rivers/arctic.nfo" From 050271ed2d6aa4995998ce356b6e5328f30fe5df Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 14 Jan 2017 18:30:26 +0000 Subject: [PATCH 019/158] (svn r27732) -Change: Turn the message about 'missing baseset sprites' from a popup into a static message that only shows in non-release versions, just like the 'missing translations' message. --- src/gfxinit.cpp | 8 +++++ src/intro_gui.cpp | 50 ++++++++++++++++++-------- src/lang/afrikaans.txt | 2 -- src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 2 -- src/lang/belarusian.txt | 2 -- src/lang/brazilian_portuguese.txt | 2 -- src/lang/bulgarian.txt | 2 -- src/lang/catalan.txt | 2 -- src/lang/croatian.txt | 2 -- src/lang/czech.txt | 2 -- src/lang/danish.txt | 2 -- src/lang/dutch.txt | 2 -- src/lang/english.txt | 3 +- src/lang/english_AU.txt | 2 -- src/lang/english_US.txt | 2 -- src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 2 -- src/lang/finnish.txt | 2 -- src/lang/french.txt | 2 -- src/lang/gaelic.txt | 2 -- src/lang/galician.txt | 2 -- src/lang/german.txt | 2 -- src/lang/greek.txt | 2 -- src/lang/hebrew.txt | 2 -- src/lang/hungarian.txt | 2 -- src/lang/icelandic.txt | 2 -- src/lang/indonesian.txt | 2 -- src/lang/irish.txt | 2 -- src/lang/italian.txt | 2 -- src/lang/japanese.txt | 2 -- src/lang/korean.txt | 2 -- src/lang/latin.txt | 2 -- src/lang/latvian.txt | 2 -- src/lang/lithuanian.txt | 2 -- src/lang/luxembourgish.txt | 2 -- src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 2 -- src/lang/norwegian_nynorsk.txt | 2 -- src/lang/polish.txt | 2 -- src/lang/portuguese.txt | 2 -- src/lang/romanian.txt | 2 -- src/lang/russian.txt | 2 -- src/lang/serbian.txt | 2 -- src/lang/simplified_chinese.txt | 2 -- src/lang/slovak.txt | 2 -- src/lang/slovenian.txt | 2 -- src/lang/spanish.txt | 2 -- src/lang/spanish_MX.txt | 2 -- src/lang/swedish.txt | 2 -- src/lang/thai.txt | 2 -- src/lang/traditional_chinese.txt | 2 -- src/lang/turkish.txt | 2 -- src/lang/ukrainian.txt | 2 -- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/macedonian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/vietnamese.txt | 2 -- src/lang/welsh.txt | 2 -- src/newgrf.cpp | 29 --------------- src/newgrf_config.cpp | 1 + src/newgrf_config.h | 2 +- src/openttd.cpp | 1 - src/script/api/game/game_window.hpp.sq | 2 ++ src/script/api/script_window.hpp | 4 ++- src/spritecache.cpp | 19 ++++++++++ src/spritecache.h | 1 + src/widgets/intro_widget.h | 4 ++- 68 files changed, 75 insertions(+), 155 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 23172bdd5e..6dea627dd0 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -230,6 +230,14 @@ static void LoadSpriteTables() LoadNewGRF(SPR_NEWGRFS_BASE, i, 2); + uint total_extra_graphics = SPR_NEWGRFS_BASE - SPR_OPENTTD_BASE; + _missing_extra_graphics = GetSpriteCountForSlot(i, SPR_OPENTTD_BASE, SPR_NEWGRFS_BASE); + DEBUG(sprite, 1, "%u extra sprites, %u from baseset, %u from fallback", total_extra_graphics, total_extra_graphics - _missing_extra_graphics, _missing_extra_graphics); + + /* The original baseset extra graphics intentionally make use of the fallback graphics. + * Let's say everything which provides less than 500 sprites misses the rest intentionally. */ + if (500 + _missing_extra_graphics > total_extra_graphics) _missing_extra_graphics = 0; + /* Free and remove the top element. */ delete extra; delete master; diff --git a/src/intro_gui.cpp b/src/intro_gui.cpp index a09a59a10d..3659b033cf 100644 --- a/src/intro_gui.cpp +++ b/src/intro_gui.cpp @@ -60,13 +60,21 @@ struct SelectGameWindow : public Window { virtual void OnInit() { - bool missing = _current_language->missing >= _settings_client.gui.missing_strings_threshold && !IsReleasedVersion(); - this->GetWidget(WID_SGI_TRANSLATION_SELECTION)->SetDisplayedPlane(missing ? 0 : SZSP_NONE); + bool missing_sprites = _missing_extra_graphics > 0 && !IsReleasedVersion(); + this->GetWidget(WID_SGI_BASESET_SELECTION)->SetDisplayedPlane(missing_sprites ? 0 : SZSP_NONE); + + bool missing_lang = _current_language->missing >= _settings_client.gui.missing_strings_threshold && !IsReleasedVersion(); + this->GetWidget(WID_SGI_TRANSLATION_SELECTION)->SetDisplayedPlane(missing_lang ? 0 : SZSP_NONE); } virtual void DrawWidget(const Rect &r, int widget) const { switch (widget) { + case WID_SGI_BASESET: + SetDParam(0, _missing_extra_graphics); + DrawStringMultiLine(r.left, r.right, r.top, r.bottom, STR_INTRO_BASESET, TC_FROMSTRING, SA_CENTER); + break; + case WID_SGI_TRANSLATION: SetDParam(0, _current_language->missing); DrawStringMultiLine(r.left, r.right, r.top, r.bottom, STR_INTRO_TRANSLATION, TC_FROMSTRING, SA_CENTER); @@ -76,20 +84,29 @@ struct SelectGameWindow : public Window { virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) { + StringID str = 0; switch (widget) { - case WID_SGI_TRANSLATION: { - SetDParam(0, _current_language->missing); - int height = GetStringHeight(STR_INTRO_TRANSLATION, size->width); - if (height > 3 * FONT_HEIGHT_NORMAL) { - /* Don't let the window become too high. */ - Dimension textdim = GetStringBoundingBox(STR_INTRO_TRANSLATION); - textdim.height *= 3; - textdim.width -= textdim.width / 2; - *size = maxdim(*size, textdim); - } else { - size->height = height + padding.height; - } + case WID_SGI_BASESET: + SetDParam(0, _missing_extra_graphics); + str = STR_INTRO_BASESET; break; + + case WID_SGI_TRANSLATION: + SetDParam(0, _current_language->missing); + str = STR_INTRO_TRANSLATION; + break; + } + + if (str != 0) { + int height = GetStringHeight(str, size->width); + if (height > 3 * FONT_HEIGHT_NORMAL) { + /* Don't let the window become too high. */ + Dimension textdim = GetStringBoundingBox(str); + textdim.height *= 3; + textdim.width -= textdim.width / 2; + *size = maxdim(*size, textdim); + } else { + size->height = height + padding.height; } } } @@ -199,6 +216,11 @@ static const NWidgetPart _nested_select_game_widgets[] = { EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 7), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_SGI_BASESET_SELECTION), + NWidget(NWID_VERTICAL), + NWidget(WWT_EMPTY, COLOUR_ORANGE, WID_SGI_BASESET), SetMinimalSize(316, 12), SetFill(1, 0), SetPadding(0, 10, 7, 10), + EndContainer(), + EndContainer(), NWidget(NWID_SELECTION, INVALID_COLOUR, WID_SGI_TRANSLATION_SELECTION), NWidget(NWID_VERTICAL), NWidget(WWT_EMPTY, COLOUR_ORANGE, WID_SGI_TRANSLATION), SetMinimalSize(316, 12), SetFill(1, 0), SetPadding(0, 10, 7, 10), diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 541b8262fe..3bef69ef75 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poging on 'n on STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bevat 'n korrupte prent. Korrupte prente sal as 'n rooi vraagteken gewys word (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat veelvoudige Aksie 8 inskrywings (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lees verby die einde van die pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :WHITE}Die huidige basis-grafikastel ontbreek sommige sprites.{}Opdateer die basis-grafikastel. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Die huidige basis-grafikastel ontbreek sommige sprites.{}Opdateer die basis-grafikastel.{}Aangesien jy 'n {YELLOW}ontwikkelingsweergawe van OpenTTD{WHITE} het, mag jy dalk 'n {YELLOW}ontwikkelingsweergawe{WHITE} van die basis-grafikastel benodig{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Aangevraagde GRF hulpbronne is nie beskikbaar nie (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was gedeaktiveer deur {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ongeldige/onbekende sprite uitleg formaat (sprite {3:NUM}) diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index bbc6322275..5f463a22f5 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2524,7 +2524,6 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :تم تصميم STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :العديد من NewGRF تم تحميلها STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :تحميل {1:STRING}كملف ثابت مع NewGRF {STRING}قد يتسبب بمشكلة توافق. STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} يحتوي على خصائص غير صالحة. جميع الخصائص الغير صالحة سوف يشار لها بعلامة استفهام حمراء. -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}ملف الرسوم المستخدم حاليا يفتقد لبعض الرسوم الاساسية.{}الرجاء حدث ملف الرسوم. STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}تم تعطيلة بواسطة{STRING} # NewGRF related 'general' warnings diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 83d22fcfb4..eee84eb0ad 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2786,8 +2786,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Identifikazio b STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sprite baliogabea dauka. Sprite baliogabeak galdera ikur gorria bezala ikusiko dira (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Action 8 sarrera asko ditu (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pseudo spritea baino hurrunago irakurri (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Aukeratuta daukazun oinarrizko grafiko paketean "sprite" batzuk falta dira.{}Mesedez eguneratu oinarrizko grafiko paketea -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Erabiltzen ari den grafiko baseari sprite batzuk falta zaizkio.{}Mesedez zure grafiko basea eguneratu ezazu.{}OpenTTD-ren {YELLOW}garapen bertsio bat erabiltzen ari zarenez{WHITE}, grafiko basearen {YELLOW}garapen bertsio bat behar izango duzu{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Eskatutako GRFa ez dago eskuragarri (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} desgaitua izan da {STRING}(en)gatik STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Grafiko deseinu formatu ezezaguna/baliogabea (sprite {3:NUM}) diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 3507e8bffb..a179b30ac2 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3239,8 +3239,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Спроба в STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} утрымлiвае пашкоджаны спрайт. Усе пашкоджаныя спрайты будуць паказаны чырвоным знакам пытаньня (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Утрымлiвае некалькі блёкаў «Action 8» (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Чытаньне па-за канцом псэўда-спрайту (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}У бягучым наборы базавай ґрафікі адсутнічаюць выявы некаторых аб'ектаў.{}Калі ласка, абнавіце модуль базавай ґрафікі. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}У выкарыстаным наборы базавай ґрафікі адсутнічаюць некаторыя малюнкі.{}Калі ласка, абнавіце набор малюнкаў.{}Вам можа спатрэбіцца {YELLOW}тэставая вэрсія ґрафічнага набору{WHITE}, таму што ў вас {YELLOW}тэставая вэрсія OpenTTD{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Запытаныя рэсурсы GRF недаступныя (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} быў адключаны з-за {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недапушчальны/невядомы фармат размяшчэньня спрайтаў (спрайт {3:NUM}) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index ec65763fdf..6da939d664 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativa de us STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um sprite corrupto. Todos os sprites corruptos serão exibidos como um "?" vermelho STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém multiplas entradas de Ação 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leitura após o final do pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Estão faltando alguns sprites na base de gráficos em uso.{}Por favor atualize a base de gráficos -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}O pacote de gráficos base atuais está faltando alguns sprites.{}Favor atualizar o pacote de gráficos base.{}Já que você está usando um {YELLOW}snapshot em desenvolvimento do OpenTTD{WHITE}, você também precisa do {YELLOW}Snapshot do pacote de gráficos base em desenvolvimento{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF requeridos indisponíveis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desativado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de layout de sprite inválido/desconhecido (sprite {3:NUM}) diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 4d6f20445c..2922780761 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2838,8 +2838,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Опит за STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} съдържа повреден обект. Вскички повредени обекти ще бъдат показани като червена въпросителна (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Текущите основни графики имат празни картинки.{}Моля обновете си основните графики. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Текущо използвания графичен сет има липсващи спрайтове.{}Моля обновете графичния сет.{}Тъй като играете {YELLOW}версия на OpenTTD в процес на разработка{WHITE}, може да се нуждаете и от {YELLOW}версията на графичния сет, която е в разработка{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Изискваните GRF resources не са на разположение (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} беше изключено от {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index c864f63c36..692c48c043 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intent d'utilit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conté un sprite corrupte. Tots els sprites corruptes seran mostrats amb un interrogant vermell (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conté múltiples entrades d'acció 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :S'ha llegit després del final d'un pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al joc de gràfics base establert actualment li falten un nombre de sprites.{}Si us plau, actualitzeu el joc de gràfics base. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Als gràfics base actualment utilitzats els hi falta un nombre de sprites.{}Si us plau, actualitzeu el conjunt de gràfics base.{}Com que esteu jugant amb una {YELLOW}versió de desenvolupament de l'OpenTTD{WHITE}, pot ser que necessiteu una {YELLOW}versió de desenvolupament dels gràfics base{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Els recursos GRF demanats no estan disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ha estat desactivat per {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de disposició de sprite no vàlid o desconegut (sprite {3:NUM}). diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index a6ebbea4a0..0d8b9a6a78 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3003,8 +3003,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokušaj koriš STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sadrži neispravan sprite. Svi neispravni grafički znakovi bit će pokazani kao crveni upitnik (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sadrži višestruke unose za Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pročitaj nakon kraja od pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Baznom grafičkom setu u uporabi nedostaju neki spriteovi.{}Ažurirajte bazni grafički set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Trenutno korištenom osnovnom grafičkom setu nedostaju pojedini crteži.{}Molimo da nadogradite osnovni grafički set.{}Pošto igrate {YELLOW}razvojnu inačicu OpenTTD-a{WHITE}, možda će vam trebati i {YELLOW}razvojna inačica osnovnog grafičkog seta{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF resursi nisu dostupni (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Pogrešan/nepoznat format raspored sprite-a (sprite {3:NUM}) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 88ba1559b4..4c5d796648 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2999,8 +2999,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokus o použit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} obsahuje poškozený sprite. Všechny takové se zobrazí jako červený otazník (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Obsahuje vícero Akce 8 záznamů (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čtení konce pseudo-spritu (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Právě používanému základnímu grafickému setu chybí obrázky.{}Prosím, updatujte ho -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Aktuálnímu grafickému setu chybí nějaké části.{}Aktualizuj prosím grafický set.{}Pokud hraješ{YELLOW}vývojovou verzi OpenTTD{WHITE}, možná potřebuješ {YELLOW}vývojovou verzi základních grafik{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Požadované zdroje GRF nejsou dostupné (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} byla vypnuta {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neplatný/neznámý sprite layout formát (sprite {3:NUM}) diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 9bd2a95a49..1a6577ed96 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøg på at STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} indeholder en ødelagt sprite. Alle ødelagte sprites vil blive vist som et rødt spørgsmålstegn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Indeholder adskillige handling 8 indgange (grafikelement {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Læs forbi slutningen af pseudo-grafikelement (grafikelement {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det brugte basis grafiksæt mangler en række elementer.{}Opdater venligst grafiksættet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den grafikpakke som bruges er ufuldstændig.{}Opdater venligst grafikpakken.{}eftersom du spiller et{YELLOW} development snapshot of OpenTTD{WHITE},får du måske også brug for er{YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :De ønskede GRF ressourcer er ikke tilgængelige (grafikelement {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} blev deaktiveret af {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldigt / ukendt grafikelement layoutformat (grafikelement {3:NUM}) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 4053c578b6..20cedb565d 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poging om ongel STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bevat een ongeldige afbeelding. Alle ongeldige afbeeldingen worden getoond als een rood vraagteken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat meerdere acties 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Voorbij het einde van pseudo-sprite gelezen (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}De huidige basis graphics-set mist een aantal sprites..{}Werk de graphics-set bij aub -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}De momenteel gebruikte basis graphics set mist een aantal sprites.{} Werk de ingestelde basis graphics bij.{} Aangezien u een {YELLOW} ontwikkeling momentopname van OpenTTD{WHITE} speelt, heeft u ook een {YELLOW} ontwikkeling snapshot van de basis graphics set{WHITE} nodig STR_NEWGRF_ERROR_GRM_FAILED :Gevraagde GRF middelen niet beschikbaar (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} is uitgeschakeld door {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ongeldig/onbekend sprite lay-out-formaat (sprite {3:NUM}) diff --git a/src/lang/english.txt b/src/lang/english.txt index 0b8406e24e..83b6591f6e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check fo STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Display AI/Game script settings STR_INTRO_TOOLTIP_QUIT :{BLACK}Exit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}The currently selected base graphics set is missing {NUM} sprite{P "" s}. Please check for updates for the baseset. STR_INTRO_TRANSLATION :{BLACK}This translation misses {NUM} string{P "" s}. Please help make OpenTTD better by signing up as translator. See readme.txt for details. # Quit window @@ -2907,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{RAW_STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:RAW_STRING} was disabled by {2:RAW_STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 9adc6d9314..6f4e7144f5 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2873,8 +2873,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contians multiple Action 8 entries (sprite{3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of psuedo-sprite (sprite{3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite{3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 9d70f8f6ae..f5b199a125 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contains a corrupt sprite. All corrupt sprites will be shown as a red question mark (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}The currently used base graphics set is missing a number of sprites.{}Please update the base graphics set.{}Since you are playing a {YELLOW}development snapshot of OpenTTD{WHITE}, you might also need a {YELLOW}development snapshot of the base graphics{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 4163a31b65..4251151a8a 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2451,7 +2451,6 @@ STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} bezo STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :la GRF-dosiero estas farita por traduki STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Tro da NewGRF-oj estas ŝarĝataj STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enhavas rompitan bildeton. Ĉiuj rompitaj bildetoj aspektos kiel ruĝaj demandsignoj (?) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}La nuntempe uza baza grafikaĵaro mankas kelkajn da bildetoj.{}Bonvolu renovigu la baza grafikaĵaro STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} estis malaktivata per {STRING} # NewGRF related 'general' warnings diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index d3283c128a..7cd7a571a4 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2964,8 +2964,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Kasutati kõlbm STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisaldab vigast pilti. Kõiki vigaseid pilte näidatakse punase küsimärgina (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisaldab mitut Action 8 kirjet (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Loe pseudo-sprite lõpust edasi (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Praegune alusgraafika kogu ei sisalda mitmeid spraite.{}Palun uuenda alusgraafika kogu -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Praegune alusgraafika kogu ei sisalda mitmeid spraite.{}Palun uuenda alusgraafika kogu.{}Kuna sa mängid {YELLOW}OpenTTD arendusversiooniga{WHITE}, siis ilmselt pead sa kasutama {YELLOW}alusgraafika kogu arendusversiooni{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Soovitud GRFi ressursid ei ole saadaval (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} blokeeriti {STRING} poolt STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :«Sprite» paigutus kõlbmatus vormis («sprite» {3:NUM}) diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index b1dc16d17f..7c26474842 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Yritys käyttä STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisältää korruptoituneen spriten. Kaikki korruptoituneet spritet näkyvät punaisina kysymysmerkkeinä (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisältää useita Action 8-merkintöjä (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Luku pseudo-spriten ohi (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Käytössä olevasta perusgrafiikkapaketista puuttuu spritejä.{}Ole hyvä ja päivitä perusgrafiikkapaketti -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Käytössä olevasta perusgrafiikkapaketista puuttuu spritejä.{}Päivitä perusgrafiikkapaketti.{}Koska pelaat {YELLOW}OpenTTD:n kehitysversiota{WHITE}, saatat myös tarvita {YELLOW}kehitysversion perusgrafiikkapaketista{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pyydetyt GRF-resurssit eivät ole saatavilla (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} poisti käytöstä NewGRF:n {1:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Virheellinen/tuntematon spriten asettelumuoto (sprite {3:NUM}) diff --git a/src/lang/french.txt b/src/lang/french.txt index b883918239..96a9724fe7 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentative d'uti STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contient un sprite corrompu. Tous les sprites corrompus seront remplacés par un point d'interrogation rouge (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Présence multiple de l'Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lecture après la fin des pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Il manque certains sprites dans les graphiques de base actuellement utilisés.{}Veuillez mettre à jour les graphiques de base. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Il manque un certain nombre de sprites dans les graphiques de base actuellement utilisés.{}Veuillez mettre à jour les graphiques de base.{}Comme vous jouez avec une {YELLOW}version de développement d'OpenTTD{WHITE}, vous devriez utiliser une {YELLOW}version de développement des graphiques de base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Indisponibilité de la ressource demandée (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} a été désactivé par {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de sprite invalide ou inconnu (sprite {3:NUM}) diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 64cb4d96d6..44e96cab07 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3135,8 +3135,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Chaidh feuchain STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Tha sprite coirbte am broinn {STRING.gen}. Thèid a h-uile sprite coirbte a shealltainn na comharradh-ceiste dhearg (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Tha iomadh innteart gnìomh 8 ann (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Chaidh leughadh thar deireadh a' sprite mas fhìor (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Tha sprite no dhà a dhìth air an t-seata ghrafaigeachd bhunasach a tha thu a' cleachdadh an-dràsta.{}Feuch an ùraich thu an seata grafaigeachd bunasach -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Tha sprite no dhà a dhìth air an t-seata ghrafaigeachd bhunasach a tha thu a' cleachdadh an-dràsta.{}Feuch an ùraich thu an seata grafaigeachd bunasach.{}Bhon a tha thu a' cluich le {YELLOW}snapshot leasachaidh aig OpenTTD{WHITE}, ’S dòcha gu bheil {YELLOW} snapshot leasachaidh dhen t-seata grafaigeachd bunasach{WHITE} a dhìth ort cuideachd STR_NEWGRF_ERROR_GRM_FAILED :Chan eil na goireasan GRF a chaidh iarraidh ri làimh (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Chaidh {1:STRING} a chur à comas le {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Fòrmat co-dhealbhachd sprite mì-dhligheach/neo-aithnichte (sprite {3:NUM}) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 960f66ba8e..b16ddf43f6 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2860,8 +2860,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contén un sprite corrupto. Tódolos sprites corruptos mostraranse coma unha interrogación vermella (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contén múltiples entradas de acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectura máis aló da fin dun pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE} Ao conxunto de gráficos básicos empregado actualmente fáltalle un número de sprites.{}Por favor, actualiza o conxunto de gráficos básico -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE} Ao conxunto de gráficos básicos empregado actualmente fáltalle un número de sprites.{}Por favor, actualiza o conxunto de gráficos básico.{}Dado que estás a xogar unha {YELLOW}versión de desenrolo de OpenTTD{WHITE}, é posíbel que tamén necesites unha {YELLOW}versión de desenrolo do conjunto de gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Os recursos GRF solicitados non están disponíbeis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desactivado por {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites inválido ou descoñecido (sprite {3:NUM}) diff --git a/src/lang/german.txt b/src/lang/german.txt index ce4d80f282..68a9856a58 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Zugriff auf ein STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} enthält fehlerhafte Grafiken. Diese werden als Fragezeichen (?) dargestellt STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Enthält mehrere Action 8 - Einträge (Sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lesezugriff über das Ende des Pseudosprites hinaus (Sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Den momentan verwendeten Basisgrafiken fehlen Sprites.{}Durch ein Update der Basisgrafiken kann dieser Fehler behoben werden -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den momentan verwendeten Basisgrafiken fehlen einige Sprites.{}Bitte update die Basisgrafiken.{}Weil dieses eine {YELLOW}Entwickler-Version von OpenTTD{WHITE} ist, ist es möglich, dass auch eine {YELLOW}Entwickler-Version der Basisgrafiken{WHITE} benötigt wird. STR_NEWGRF_ERROR_GRM_FAILED :Die angeforderte GRF-Ressource ist nicht verfügbar (Sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wurde von {STRING} deaktiviert STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ungültiges oder unbekanntes Format für Spritelayout (Sprite {3:NUM}) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 828e9d1196..0d06360366 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3015,8 +3015,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Προσπάθ STR_NEWGRF_ERROR_CORRUPT_SPRITE :Το {YELLOW}{STRING} περιέχει ένα αλλοιωμένο sprite. Όλα τα αλλοιωμένα sprites θα εμφανίζονται ως κόκκινα ερωτηματικά (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Περιέχει πολλαπλές καταχωρήσεις Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Διάβασε πέρα από το τέλος του ψευδό-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Λείπουν μερικά sprites από το τρέχον βασικό σετ γραφικών.{}Παρακαλώ ενημερώστε το βασικό σετ γραφικών -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Λείπουν μερικά sprites από το τρέχον βασικό σετ γραφικών.{}Παρακαλώ ενημερώστε το βασικό σετ γραφικών{}Επειδή παίζετε {YELLOW}δοκιμαστική έκδοση του OpenTTD{WHITE}, μπορεί να χρειάζεται να έχετε εγκατεστημένη {YELLOW}δοκιμαστική έκδοση των βασικών γραφικών{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Οι ζητημένοι πόροι GRF δεν είναι διαθέσιμοι (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Το {1:STRING} απενεργοποιήθηκε από το {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Άκυρη/άγνωστη μορφή σχεδίου sprite (sprite {3:NUM}) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 33441f910d..ffead604f3 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2920,8 +2920,6 @@ STR_NEWGRF_ERROR_INVALID_ID :ניסיון ש STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} מכיל אלמנט גרפי שגוי. כל האלמנטים הגרפיים השגויים יוצגו כסימן שאלה אדום (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :מכיל מספר רשומות Action 8 (ספרייט {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :קראת אחר סוף הפסאודו-ספרייט (ספרייט {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}בערכת גרפיקה הבסיסית חסרים מספר ספרייטים.{}אנא עדכן את הערכה הגרפית הבסיסית -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}בערכת גרפיקה הבסיסית חסרים מספר ספרייטים.{}אנא עדכן את הערכה הגרפית הבסיסית.{}מכיוון שהינך משחק {YELLOW}גרסת פיתוח של OpenTTD{WHITE}, אולי תצטרך {YELLOW}גרסת פיתוח של ערכת הגרפיקה הבסיסית{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :משאב GRF המבוקש אינו זמין (ספרייט {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} נהפך ללא זמין ע"י {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :מבנה פורמט ספרייט לא תקין/לא ידוע (ספרייט {3:NUM}) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 980c65f8a8..af5ebb055f 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2970,8 +2970,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Érvénytelen I STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} hibás sprite-ot tartalmaz. Minden hibás sprite piros kérdőjellel (?) kerül jelölésre STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Több Action 8 bejegyzést tartalmaz (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Ál-sprite távoli végének olvasása (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}A jelenleg használt grafikus alapcsomagból hiányzik számos sprite.{}Kérlek frissítsd a grafikus alapcsomagot -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}A használt alap grafikus csomagból néhány egység hiányzik.{}Kérjük frissítsd az alap grafikus csomagot.{}Mivel az {YELLOW}OpenTTD fejlesztői változatát{WHITE} használod, lehet, hogy a {YELLOW}fejlesztői alap grafikus csomagot{WHITE} kellene használnod STR_NEWGRF_ERROR_GRM_FAILED :Kért GRF források nem elérhetőek (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} kikapcsolva {STRING} által STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Érvénytelen/ismeretlen sprite szerkezet formátum (sprite {3:NUM}) diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 768479531b..d989692495 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2736,8 +2736,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Verið að reyn STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inniheldur gallaða mynd. Allar gallaðar myndir munu birtast sem rauð spurningamerki (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inniheldur margþættar aðgerðir, 8 innkomur (hreyfimynd {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Les fyrir endan af gervi-hreyfimynd (hreyfimynd {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Grunnteiknisafnið sem er í notkun vantar hluta af hreyfimyndunum.{}Vinsamlegast uppfærðu grunnteiknisafnið -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Í Grafíska safnið sem nú er í notkun vantar nokkrar myndir.{}Vinsamlegast uppfærið grafíska safnið.{}Þar sem þú ert að spila {YELLOW}þróunar útgáfu af OpenTTD{WHITE}, gæti verið að þú þyrftir líka {YELLOW} þróunar útgáfu af grafíska safninu{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Umbeðin GRF gögn ekki tiltæk (hreyfimynd {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} var óvirkjað af {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Rangt/óþekkt hreyfimyndar snið (hreyfimynd {3:NUM}) diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 3f584902d6..12cc31a6d5 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2902,8 +2902,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Mencoba menggun STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} terdapat sprite yang rusak. Semua sprite rusak akan ditandai dengan tanda tanya merah (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Memuat beberapa entri Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Baca akhir sprite palsu (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Beberapa 'sprite' tidak terdapat pada Set Grafik Dasar yang sedang digunakan.{}Silahkan update Set Grafik Dasar -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Set grafis dasar kekurangan beberapa sprite.{}Tolong perbarui set grafis dasar.{}Karena anda memainkan {YELLOW}snapshot pengembangan OpenTTD{WHITE}, anda mungkin memerlukan{YELLOW}snapshot pengembangan set grafis dasar{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Sumber GRF yang diminta tidak tersedia (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} dinonaktifkan oleh {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format sprite salah/tidak diketahui (sprite {3:NUM}) diff --git a/src/lang/irish.txt b/src/lang/irish.txt index a64a876d54..026d6dac9a 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Iarracht ID nea STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Tá sprite truaillithe in {STRING}. Taispeánfar gach sprite truaillithe mar chomhartha ceiste (?) dearg. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Tá iontrálacha iolraccha Ghníomhaíocht 8 ann (sprid {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Léadh tar éis deireadh an pseudo-sprid (sprid {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Tá roinnt sprite in easnamh sa tsraith bhunúsach grafaicí atá in úsáid faoi láthair.{}Déan úasghrádú ar an tsraith bhunúsach grafaicí le do thoil -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Tá roinnt sprideanna in easnamh sa tacar bunghraificí atá in úsáid faoi láthair.{}Nuashonraigh an tacar bunghraificí.{}Toisc go bhfuil tú ag imirt ar {YELLOW}roghbhlúire forbróirí (development snapshot) OpenTTD{WHITE}, seans go mbeidh {YELLOW}roghbhlúire forbróirí de na bunghraificí{WHITE} ag teastáil uait STR_NEWGRF_ERROR_GRM_FAILED :Níl na hacmhainní GRF a iarradh ar fáil (sprid {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Bhí {1:STRING} díchumasaithe ag {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formáid neamhbhailí/anaithnid do leagan amach na spride (sprid {3:NUM}) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 9e7e3695e4..903f3738fd 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2937,8 +2937,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativo di ut STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene degli sprite corrotti. Tutti gli sprite corrotti saranno mostrati come punti interrogativi (?) rossi STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene occorrenze multiple dell'azione 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lettura oltre la fine dello pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Nel pacchetto grafico di base attualmente in uso mancano alcuni sprite.{}È consigliabile aggiornare il pacchetto grafico di base -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Nel pacchetto grafico di base attualmente in uso mancano alcuni sprite.{}È consigliabile aggiornare il pacchetto grafico di base.{}Poiché si sta giocando con uno {YELLOW}snapshot di sviluppo di OpenTTD{WHITE}, potrebbe essere necessario uno {YELLOW}snapshot di sviluppo del pacchetto grafico di base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Risorsa GRF richiesta non disponibile (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} è stato disabilitato da {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato di layout dello sprite sconosciuto o non valido (sprite {3:NUM}) diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index d4e2beedfc..7655620ff6 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :不正なIDが STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING}には破損スプライトがあります。破損スプライトは赤疑問符({RED}?{YELLOW})として表示されます STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :アクション8のエントリが複数含まれています (スプライト {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :疑似スプライトのデータが十分にありません (スプライト {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}使用中の基本グラフィックセットから複数のスプライトが欠落しています。{}セットを更新して下さいますよう、お願いします -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}使用中の基本グラフィックセットから複数のスプライトが欠落しています。{}セットを更新して下さいますよう、お願いします{}{YELLOW}OpenTTDの速報開発版{WHITE}をお使いの際は、{YELLOW}速報開発版に即したグラフィックセット{WHITE}が必要となる場合があります STR_NEWGRF_ERROR_GRM_FAILED :要求されたGRFのリソースは使用できません (スプライト {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}は{STRING}により無効にされました STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :不正なレイアウト書式です (スプライト {3:NUM}) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a86ae6d541..e9834a27ae 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :유효하지 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 액션 8 엔트리 포함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :모조-스프라이트의 지나간 끝을 읽음 (스프라이트 {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}최근에 이용한 기본 그래픽 세트에 객체가 많이 손실되었습니다.{}기본 그래픽 세트를 업데이트 하십시오. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}현재 사용중인 기본 그래픽에 그래픽이 다수 존재하지 않습니다.{}기본 그래픽 세트를 업데이트해 주십시오.{}현재 당신이 {YELLOW}OpenTTD의 개발 버전{WHITE}을 사용하고 있기 때문에, {YELLOW}기본 그래픽의 개발 버전{WHITE}이 필요할 수 있습니다. STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF 자원을 사용할 수 없음 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}(은)는 {STRING} 때문에 사용할 수 없습니다 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :유효하지 않은/알 수 없는 스프라이트 구조 유형 (스프라이트 {3:NUM}) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 36df900c60..a143ab02ee 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3109,8 +3109,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Conatus agnosca STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} spiritum corruptum habet. Omnes spiritus corrupti monstrabuntur forma rubro puncto interrogativo - ? STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Continet plures Actiones 8 (spiritus {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectio post terminum pseudospiritus (spiritus {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Fundamento graphico adhibito deest nonulli spiritus.{}Utinam arcessas novam editionem -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Fundamento graphico adhibito deest nonulli spiritus.{}Utinam arcessas novam editionem.{}Quoniam ludis {YELLOW}editionem OpenTTD adhuc in explicando{WHITE}, fortasse etiam tibi necesse est {YELLOW}editio fundamenti graphici OpenTTD in explicando{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Opes GRF desideratae non parabiles (spiritus {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} neglectus est a {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Irrita/ignota dispositio spiritus (spiritus {3:NUM}) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 5b89a0091f..9abe75c426 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2840,8 +2840,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Mēģinājums i STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} satur bojātu gariņu. Visi bojātie gariņi tiks parādīti ar sarkanu jautājuma zīmi (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Satur vairākus Action 8 ierakstus (gariņš {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lasīt aiz pseidogariņa beigām (gariņš {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Pašlaik lietotajai pamata grafikas kopai trūkst daļa gariņu.{}Lūdzu atjauniniet pamata grafikas kopu -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Pašlaik lietotajai pamata grafikas kopai trūkst daļa gariņu.{}Lūdzu atjauniniet pamata grafikas kopu.{}Tā kā jūs spēlējat {YELLOW}OpenTTD izstrādes momentuzņēmumu{WHITE}, jums varētu būt nepieciešams arī {YELLOW}pamata grafikas izstrādes momentuzņēmums{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pieprasītie GRF resursi nav pieejami (gariņš {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ar {2:STRING} tika atspējots STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Nederīgs/nezināms gariņa izkārtojuma formāts (gariņš {3:NUM}) diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 8017930187..a62f42e6df 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3125,8 +3125,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Bandymas panaud STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} turi sugadintą spruklį. Visi sugadinti sprukliai bus rodomi kaip raudoni klaustukai (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Susideda iš keleto veiksmo 8 įrašų (spruklys {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Skaitymas už pseudospruklio pabaigos (spruklys {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Šiuo metu naudojamam grafikos rinkiniui trūksta keleto spruklių.{}Atnaujinkite pagrindinį grafikos rinkinį -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Šiuo metu naudojamam pagrindinės grafikos rinkiniui trūsta keleto spruklių.{}Atnaujinkite pagrindinės grafikos rinkinį.{} Kadangi žaidžiate {YELLOW} negalutinę, vis dar kuriamą OpenTTD versiją, {WHITE}, jums, ko gero, reikėtų įdiegti atitinkamą{YELLOW}naujausią, negalutinį pagrindinės grafikos rinkinį.{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Pageidautas GRF resursas yra neprieinamas (spruklys {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} buvo išjungtas {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neteisingas/nežinomas spruklio išdėstymo formatas (spruklys {3:NUM}) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 9e06375981..ba13c3a02e 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Versicht invali STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} huet eng korrupt Sprite. All korrupt Sprites ginn als Fragezeichen (?) duergestallt STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Huet eng Rei Action 8 Einträg (Sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lanscht d'Enn vum Pseudo-Sprite gelies (Sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}D'momentan benotzten Grafikset huet e puer Sprites ze mann.{}W.e.g d'Basisgrafikset updaten -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Am grad benotzten Basis-Grafikset fehlen e puer Sprites.{}W.e.g Basis-Grafikset updaten.{}Wellsde en {YELLOW}Development Snapshot vun OpenTTD spills{WHITE}, brauchsde och en {YELLOW}Development Snapshot vum Basis-Grafikset{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Ugefroten GRF Ressource net verfügbar (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} gouf ausgeschalt vun {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/onbekannten Sprite Layout Format (Sprite {3:NUM}) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7e0740b5da..afc99c19b0 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2602,7 +2602,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Cubaan untuk me STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} mengandungi peperi yang rosak. Semua peperi yang rosak akan ditunjukkan menggunakan tanda soal (?) merah. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Mengandungi pelbagai Tindakan 8 kemasukan (peperi {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Bacaan melepasi penghujung peperi-pseudo (peperi {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Set asas grafik yang sedang digunakan, hilang sebilangan sprites.{}Sila mengemaskini set asas grafik STR_NEWGRF_ERROR_GRM_FAILED :Sumber GRF yang diminta tidak diperolehi (peperi {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} telah dinyahaktifkan oleh {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Tidak sah/diketahui format susun atur (peperi {3:NUM}) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 210b7e9e36..8125c58a90 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2910,8 +2910,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøk på å STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inneholder en ødelagt sprite. Alle ødelagte spriter blir vist som røde spørsmålstegn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inneholder flere Handling 8-oppføringer (figur {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leste forbi slutten av pseudo-sprite (figur {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det benyttede grafikksettet mangler en del spriter.{}Du må oppdatere grafikksettet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Den benyttede grafikkpakken mangler en mengde bildeelementer.{}Du må oppdatere grafikkpakken.{}Siden du spiller en {YELLOW}utviklingsversjon av OpenTTD{WHITE}, kan det være at du også trenger en {YELLOW}utviklingsversjon av grafikkpakken{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Etterspurte GRF-ressurser ikke tilgjengelig (figur {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ble deaktivert av {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjent sprite layout-format (figur {3:NUM}) diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index b018790894..a30f8e028e 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2823,8 +2823,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Forsøk på å STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} inneheld øydelagd grafikk. All øydelagd grafikk vil bli vist som raude spørsmålsteikn (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Inneheld fleire tilfelle av handling 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lest forbi slutten av pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det nåværande grafikksettet manglar ein del bilete.{}Vennligst oppdater grafikksettet. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Det valde grafikksettet manglar nokre bilete.{}Vær venleg og forny grafikksettet.{}I og med at du spelar eit {YELLOW}utviklingsutkast av OpenTTD{WHITE} treng du òg eit {YELLOW}utviklingsutkast av grafikksettet{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Etterspurde GRF-ressursar ikkje tilgjengeleg (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} vart deaktivert av {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjend sprite layout-format (sprite {3:NUM}) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index fbf9dce13c..5f93b98652 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3287,8 +3287,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Próba użycia STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} zawiera uszkodzoną teksturę. Wszystkie uszkodzone tekstury będą pokazane jako czerwony znak zapytania (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Zawiera wiele wpisów Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Odczyt poza obszar pseudo-sprite'u (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Aktualnie używany zestaw grafik jest niekompletny.{}Proszę zaktualizować podstawowy zestaw grafik -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}W aktualnie używanym podstawowym zestawie graficznym brakuje pewnej ilości sprite'ów.{}Proszę zaktualizowaćswój zestaw graficzny.{}Z powodu tego, że używasz {YELLOW}rozwojowej wersji OpenTTD{WHITE}, możesz potrzebować również {YELLOW}rozwojowej wersji podstawowego zestawu graficznego{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Potrzebne źródło GRF nie jest dostępne (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} został wyłączony przez {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Niepoprawny/nieznany format układu sprite'u (sprite {3:NUM}) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 1b515c4e66..dbe540afca 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Tentativa de us STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um objecto gráfico corrompido. Todos os objectos gráficos corrompidos serão apresentados como um ponto de interrogação (?) vermelho. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém múltiplas entradas Action 8 - (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Leitura além dos limites do pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}O conjunto de gráficos base actual tem objectos gráficos em falta.{}Por favor faça a sua actualização. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}O conjunto de gráficos base actualmente em uso tem um conjunto de gráficos em falta.{}Por favor actualize o conjunto de gráficos base.{}Visto que está a usar uma {YELLOW}imagem de desenvolvimento do OpenTTD{WHITE}, poderá também precisar de {YELLOW}uma imagem dos gráficos base de desenvolvimento{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF pedidos não disponíveis (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de Gráfico Inválido ou desconhecido (sprite {3:NUM}) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 9da29ce106..885c5ddf79 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2866,8 +2866,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Încercare de a STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} conţine o imagine coruptă. Toate imaginile corupte vor fi afişate ca semne de întrebare (?) roşii STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Conține mai multe intrări pentru Acțiunea 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Citire după sfârşitul preudo-elementului grafic (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Unele imagini lipsesc din setul grafic de bază.{}Vă rugăm actualizaţi setul grafic de bază -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE} Pachetul grafic de bază folosit în acest moment este incomplet, un număr de sprite-uri lipsesc ..{}Trebuie să actualizezi acest pachet grafic de bază.{}Deoarece te joci o {YELLOW}versiune de dezvoltare a OpenTTD{WHITE}, este posibil să ai nevoie de o {YELLOW}versiune de dezvoltare a pachetului grafic de bază{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Resursele GRF solicitate nu sunt disponibile (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} a fost dezactivat de {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Structură necunoscută/invalidă pentru elementul grafic (sprite {3:NUM}) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index fa46ef8e8d..4aabacaa20 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3087,8 +3087,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Попытка STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} содержит повреждённый спрайт. Все повреждённые спрайты будут показаны красным знаком вопроса (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Содержит несколько блоков «Action 8» (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Чтение за концом псевдо-спрайта (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}В текущем наборе базовой графики отсутствуют изображения некоторых объектов.{}Пожалуйста, обновите модуль базовой графики. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}В используемом наборе базовой графики отсутствуют некоторые изображения.{}Пожалуйста, обновите набор изображений.{}Так как у вас {YELLOW}тестовая версия OpenTTD{WHITE}, вам может понадобиться {YELLOW}тестовая версия графического набора{WHITE}. STR_NEWGRF_ERROR_GRM_FAILED :Запрошенные ресурсы GRF недоступны (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} был отключён из-за {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недопустимый/неизвестный формат расположения спрайтов (спрайт {3:NUM}) diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d4c253e00d..318caa8fd3 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3101,8 +3101,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokušaj koriš STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sadrži neispravan sprajt. Svi neispravni sprajtovi će biti prikazani kao crveni znakovi pitanja (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sadrži više Akcija 8 ulaza (sprajt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čitanje iza završetka pseudo-sprajta (sprajt {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Odabranom skupu osnovnih grafika nedostaje neki broj sprajtova.{}Molimo Vas da ga ažurirate -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Grafičkom setu koji je trenutno u upotrebi nedostaje određen broj sprajtova.{}Osvežite grafički set.{}S obzirom da igrate {YELLOW}razvojnu verziju OpenTTD-a{WHITE}, treba vam i {YELLOW}razvojna verzija grafičkog seta{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Traženi GRF resursi nisu dostupni (sprajt {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neispravan/nepoznat format prikazivanja sprajta (sprajt {3:NUM}) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 4e6f49d799..1dbfef8e2e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2906,8 +2906,6 @@ 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_UNSTABLE :{WHITE}当前使用的基础图形包参数有误。{}请更新基础图形包。{}如果你正在使用 {YELLOW}OPENTTD的开发测试版{WHITE},你需要 {YELLOW}相应配套的基础图形包。{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :GRF源文件不可访问 (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} 被 {STRING} 禁用 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :错误/未知的sprite输出格式 (sprite {3:NUM}) diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 7245e0e5a8..63fdd2d317 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2974,8 +2974,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Pokus o použit STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} obsahuje poškodený sprite. Všetky poškodené sprajty budú zobrazené ako červený otáznik (?). STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Obsahuje viacnásobné záznamy Action 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Čítanie za koncom pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}V používanej základnej grafickej sade chýbajú niektoré grafické objekty.{}Aktualizujte prosím základnú grafickú sadu. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Aktuálne používanej základnej sade grafiky chýba niekoľko spritov.{}Prosím zaktualizujte základnú sadu grafiky.{}Keďže hráte {YELLOW}vývojovú verziu OpenTTD{WHITE}, môžete tiež potrebovať{YELLOW}vývojovú verziu základnej sady grafiky{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Požadované GRF prostriedky nie sú dosupné (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} bol vypnutý {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Nesprávny/neznámy formát rozloženia sprite(ov) (sprite {3:NUM}) diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 6fac63eb35..079d4661d6 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3059,8 +3059,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Poskus uporabe STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} vsebuje eno poškodovano sličico. Vse poškodovane sličice se bodo prikazale kot rdeči vprašaji (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Vsebuje več Ukaz 8 vnosov (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Prebrana datoteka preko meje za sličice (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}V uporabljenem osnovnem setu grafik manjkajo sličice.{}Prosim, posodobi osnovni set grafik -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Trenutni set osnovnih grafik ne vsebuje določenih sličic. Posodobi osnovni set.{}Odkar igraš {YELLOW} razvojni pogled OpenTTD{WHITE}, nogoče potrebuješ tudi {YELLOW}razvojni pogled osnovnih grafik{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Zahtevani viri GRF niso na voljo (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je bil izklopljen zaradi {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neveljaven/neznan format zapisa sličic (sprite {3:NUM}) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 8b5f8988cc..3d963eadc6 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene un sprite corrupto. Todos los sprites corruptos serán mostrados como un interrogante rojo (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene múltiples entradas de Acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Lectura más allá del fin de un pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Al conjunto de gráficos base actualmente en uso le faltan algunos sprites.{}El conjunto de gráficos base debe ser actualizado -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Al conjunto de gráficos base actualmente en uso le faltan algunos sprites.{}El conjunto de gráficos base debe ser actualizado.{}Dado que estás jugando una {YELLOW}versión de desarrollo de OpenTTD{WHITE}, es posible que también necesites una {YELLOW}versión de desarrollo del conjunto de gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF solicitados no disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites inválido o desconocido (sprite {3:NUM}) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index d7f635d93a..bd90ed8f63 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Intento de usar STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contiene un sprite con errores. Todos los sprites con errores se muestran como un símbolo de interrogación rojo (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contiene múltiples entradas de Acción 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :La lectura excedió el límite de pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}A los gráficos base actualmente en uso les faltan algunos sprites.{}Los gráficos base deben ser actualizados.{}Dado que esta es una {YELLOW}versión de desarrollo de OpenTTD{WHITE}, es posible que también se requiera una {YELLOW}versión de desarrollo de los gráficos base{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF solicitados no disponibles (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites no válido o desconocido (sprite {3:NUM}) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index ba10283262..4ff38b2067 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Försökt att a STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} innehåller en skadad bild. Alla korrupta bilder kommer att visas som ett rött frågetecken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Innehåller flera Action 8 (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Läste förbi slutet av pseudo-spriteobjekt (spriteobjekt {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Det aktiva grafikpaketet saknar ett antal bilder.{}Var vänlig och uppdatera grafikpaketet -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Det aktiva grafikpaketet saknar ett antal bilder.{}Var vänlig och uppdatera grafikpaketet.{}Eftersom du spelar en {YELLOW}utvecklings-version av OpenTTD{WHITE}, så kan du även behöva en {YELLOW}utvecklings-version av basgrafikpaketet{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Efterfrågade GRF-resurser är inte tillgängliga (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} har inaktiverats av {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Felaktig/okänd layout-format av spriteobjekt (spriteobjekt {3:NUM}) diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 5de52200b7..f3ef3c1e7c 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2839,8 +2839,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Attempt to use STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} บรรจุ sprites ที่สูญหาย. สิ่งที่สูญหายจะแสดงเป็นเครื่องหมายตกใจสีแดง (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contains multiple Action 8 entries (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Read past end of pseudo-sprite (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}กราฟิกพื้นฐานที่ใช้อยู่มี Sprite ไม่สมบูรณ์{}กรุณาปรับรุ่นของ Base Graphic -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} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :ไม่ถูกต้อง/ไม่ทราบ รูปแบบ sprite (sprite {3:NUM}) diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 3985ee3206..471c491bb3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :子畫面企圖 STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 包含了毀損的 sprite。所有毀損的 sprite 會以紅色問號 (?) 顯示。 STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :過多的 Action 8 資料 (發生於第 {3:NUM} 個子畫面) STR_NEWGRF_ERROR_READ_BOUNDS :子畫面資料不足 (發生於第 {3:NUM} 個子畫面) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}目前使用的基本圖形集少了某些 sprite。{}請更新基本圖形集。 -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}你正在使用的圖形集缺少了一些圖形.{}請更新圖形集.{}因為你正在使用一個{YELLOW}開發中的OpenTTD{WHITE},你可能需要一個{YELLOW}開發中的圖形集{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :要求的 GRF 資料不存在或無法讀取 (發生於第 {3:NUM} 個子畫面) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} 使 {1:STRING} 被停用 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :無效或無法識別的子畫面配置格式 (發生於第 {3:NUM} 個子畫面) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index e9993fb3da..b69a01822e 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2908,8 +2908,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Geçersiz ID ku STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bozuk bir nesne içeriyor. Tüm bozuk nesneler kırmızı bir soru işareti (?) olarak görünecektir STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Birden çok Action 8 girişi içeriyor (nesne {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Pseudo-nesne bitiminden sonrasını okudu (nesne {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Kullanımda olan temel grafik kümesi bazı nesneleri içermiyor.{}Lütfen temel grafik kümesini güncelleyin -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Kullanımdaki temel grafik kümesi bazı nesneleri içermiyor.{}Lütfen temel grafik setinizi güncelleyin .{}{YELLOW}OpenTTD'nin geliştirme kopyasını {WHITE}kullandığınız için, {YELLOW}temel grafiklerin de{WHITE} geliştirme kopyasını kullanmalısınız. STR_NEWGRF_ERROR_GRM_FAILED :İstenen GRF kaynakları mevcut değil (nesne {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} {STRING} tarafından deaktive edildi STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Geçersiz/bilinmeyen nesne yerleşim biçimi (nesne {3:NUM}) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 5a49f84566..b49a7f7faa 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3037,8 +3037,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Спроба в STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} містить зіпсований спрайт. Усі зіпсовані спрайти будуть показані як червоний знак питання (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Містить декілька записів Action 8 (спрайт {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Вихід за границю псевдо-спрайта при читанні (спрайт {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}У базовому наборі графіки, що зараз використовується не вистачає спрайтів.{}Будь-ласка оновіть базовий набір графіки -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}В наборі графіки, який використовується на даний момент відсутній ряд спрайтів.{}Будь ласка, поновіть базовий набір графіки.{}Оскільки ви граєте у {YELLOW} тестову версію OpenTTD{WHITE}, вам також може знадобитися {YELLOW}тестовий набір базової графіки{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Недоступні необхідні ресурси GRF (спрайт {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} був вимкнений {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Некоректний або невідомий формат розміщення спрайтів (спрайт {3:NUM}) diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index cd9e18ad37..6fddf2f8ab 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2689,7 +2689,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Hat besocht in STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} befettet in korrupte ôfbylding. Alle korrupte ôfbyldings sille mei in read fraachteken markearre wurde (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Befet meardere Aksje-8 fermeldings (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Ein fan pseudo-ôfbylding lêze (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}It hjoeddeiske basisôfbyldingspakket misset in oantal ôfbylding.{}Besykje dit ôfbyldingspakket te fernijen STR_NEWGRF_ERROR_GRM_FAILED :Oanfrege GRF-bron is net beskikber (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wie útskeakele troch {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Unjildich/ûnbekind ôfbyldingsútlisformaat (sprite {3:NUM}) diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index fc40f3f32d..0e72f4f339 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1270,7 +1270,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Објекто # NewGRF (self) generated warnings/errors STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING} -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Во моментов се користат база графики поставени недостасува голем број на sprites.{}Надградете ја основата графика во собата. # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Внимание! diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index f70fdc53ce..df2824e434 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2593,7 +2593,6 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :فایل GRF ب STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :تعداد NewGRF بیشتر از حد می باشد STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :در حال بارگزاری {1:STRING} به عنوان NewGRF ایستا با {STRING} مشکل همخوانی دارد STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} دارای یک تصویر خراب می باشد. تصویرهای خراب با علامت سوال قرمز (؟) نشان داده شدند. -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}بسته گرافیک استفاده شده تعدادی از تصاوبر را ندارد.{}لطفا بسته گرافیکی را به روز کنید STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} غیر فعال گردیده توسط {STRING} # NewGRF related 'general' warnings diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index ecd554c42c..65167b54a9 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2906,8 +2906,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Sử dụng IT STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} bị hỏng sprite. Tất cả các sprite sẽ hiện thị với dấu hỏi (?) màu đỏ. STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Có nhiều mục thực thi 8 (sprite {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Đọc quá giới hạn của sprite giả (sprite {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Gói đồ họa bạn đang dùng thiếu một số mẫu đồ họa.{}Hãy cập nhật gói đồ họa lên phiên bản mới. -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Bộ file đồ họa hiện tại thiết một số sprites.{}Hãy cập nhật phiên bản mới.{}Bởi vì bạn chơi {YELLOW}một phiên bản thử nghiệm đang phát triển OpenTTD{WHITE}, bạn cần phải có cả {YELLOW}bộ file đồ họa đang được phát triển nữa{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Dữ liệu GRF theo yêu cầu không hợp lệ (sprite {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} bị tắt bởi {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Định dạng Sprite không hợp lệ hoặc chưa định nghĩa (sprite {3:NUM}) diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 9fb7aca766..50d9297ee0 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2907,8 +2907,6 @@ STR_NEWGRF_ERROR_INVALID_ID :Ceisio defnyddi STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}Mae'r {STRING} yn cynnwys corlun llygredig. Bydd corluniau llygredig yn cael eu dynodi gan farc cwestiwn coch (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Yn cynnwys sawl cofnod Gweithred 8 (corlun {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Darllen heibio i ddiwedd llid-gorlun (corlun {3:NUM}) -STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Mae'r set raffeg sylfaenol a ddefnyddir ar hyn o bryd yn brin o sawl corlun{}Diweddarwch y set raffeg sylfaenol i ddatrys hyn -STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Mae nifer o gorluniau ar goll o'r set graffeg sylfaenol mewn defnydd.{}Diweddarwch y set graffeg sylfaenol.{}Gane eich bod yn chwarae {YELLOW}ciplun datblygiadol o OpenTTD{WHITE}, efallai y byddwch angen {YELLOW}ciplun ddatblygiadol o'r grafffeg sylfaenol{WHITE} STR_NEWGRF_ERROR_GRM_FAILED :Nid yw'r adnoddau GRF a geisiwyd ar gael (corlun {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :Fe analluogwyd {1:STRING} gan {STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Fformat cynllun corlun annilys/anhysbys (corlun {3:NUM}) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e0246bdf67..14593b7e30 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5693,35 +5693,6 @@ static void SkipAct5(ByteReader *buf) grfmsg(3, "SkipAct5: Skipping %d sprites", _cur.skip_sprites); } -/** - * Check whether we are (obviously) missing some of the extra - * (Action 0x05) sprites that we like to use. - * When missing sprites are found a warning will be shown. - */ -void CheckForMissingSprites() -{ - /* Don't break out quickly, but allow to check the other - * sprites as well, so we can give the best information. */ - bool missing = false; - for (uint8 i = 0; i < lengthof(_action5_types); i++) { - const Action5Type *type = &_action5_types[i]; - if (type->block_type == A5BLOCK_INVALID) continue; - - for (uint j = 0; j < type->max_sprites; j++) { - if (!SpriteExists(type->sprite_base + j)) { - DEBUG(grf, 0, "%s sprites are missing", type->name); - missing = true; - /* No need to log more of the same. */ - break; - } - } - } - - if (missing) { - ShowErrorMessage(IsReleasedVersion() ? STR_NEWGRF_ERROR_MISSING_SPRITES : STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE, INVALID_STRING_ID, WL_CRITICAL); - } -} - /** * Reads a variable common to VarAction2 and Action7/9/D. * diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index b970e0a80b..593851e288 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -192,6 +192,7 @@ GRFConfig *_all_grfs; GRFConfig *_grfconfig; GRFConfig *_grfconfig_newgame; GRFConfig *_grfconfig_static; +uint _missing_extra_graphics = 0; /** * Construct a new GRFError. diff --git a/src/newgrf_config.h b/src/newgrf_config.h index 73ab243cf0..dc3b884dd3 100644 --- a/src/newgrf_config.h +++ b/src/newgrf_config.h @@ -202,6 +202,7 @@ extern GRFConfig *_all_grfs; ///< First item in list of all scanned New extern GRFConfig *_grfconfig; ///< First item in list of current GRF set up extern GRFConfig *_grfconfig_newgame; ///< First item in list of default GRF set up extern GRFConfig *_grfconfig_static; ///< First item in list of static GRF set up +extern uint _missing_extra_graphics; ///< Number of sprites provided by the fallback extra GRF, i.e. missing in the baseset. /** Callback for NewGRF scanning. */ struct NewGRFScanCallback { @@ -214,7 +215,6 @@ struct NewGRFScanCallback { size_t GRFGetSizeOfDataSection(FILE *f); void ScanNewGRFFiles(NewGRFScanCallback *callback); -void CheckForMissingSprites(); const GRFConfig *FindGRFConfig(uint32 grfid, FindGRFConfigMode mode, const uint8 *md5sum = NULL, uint32 desired_version = 0); GRFConfig *GetGRFConfig(uint32 grfid, uint32 mask = 0xFFFFFFFF); GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src, bool init_only); diff --git a/src/openttd.cpp b/src/openttd.cpp index 58f011b082..10c31e904e 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -339,7 +339,6 @@ static void LoadIntroGame(bool load_newgrfs = true) _pause_mode = PM_UNPAUSED; _cursor.fix_at = false; - if (load_newgrfs) CheckForMissingSprites(); CheckForMissingGlyphs(); /* Play main theme */ diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 533ba912b8..f52de827d9 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -582,6 +582,8 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_ARCTIC_LANDSCAPE, "WID_SGI_ARCTIC_LANDSCAPE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TROPIC_LANDSCAPE, "WID_SGI_TROPIC_LANDSCAPE"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TOYLAND_LANDSCAPE, "WID_SGI_TOYLAND_LANDSCAPE"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_BASESET_SELECTION, "WID_SGI_BASESET_SELECTION"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_BASESET, "WID_SGI_BASESET"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION_SELECTION, "WID_SGI_TRANSLATION_SELECTION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_TRANSLATION, "WID_SGI_TRANSLATION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SGI_OPTIONS, "WID_SGI_OPTIONS"); diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp index b07221943c..fbdffb54b7 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -1497,8 +1497,10 @@ public: WID_SGI_ARCTIC_LANDSCAPE = ::WID_SGI_ARCTIC_LANDSCAPE, ///< Select arctic landscape button. WID_SGI_TROPIC_LANDSCAPE = ::WID_SGI_TROPIC_LANDSCAPE, ///< Select tropic landscape button. WID_SGI_TOYLAND_LANDSCAPE = ::WID_SGI_TOYLAND_LANDSCAPE, ///< Select toyland landscape button. + WID_SGI_BASESET_SELECTION = ::WID_SGI_BASESET_SELECTION, ///< Baseset selection. + WID_SGI_BASESET = ::WID_SGI_BASESET, ///< Baseset errors. WID_SGI_TRANSLATION_SELECTION = ::WID_SGI_TRANSLATION_SELECTION, ///< Translation selection. - WID_SGI_TRANSLATION = ::WID_SGI_TRANSLATION, ///< Translation. + WID_SGI_TRANSLATION = ::WID_SGI_TRANSLATION, ///< Translation errors. WID_SGI_OPTIONS = ::WID_SGI_OPTIONS, ///< Options button. WID_SGI_HIGHSCORE = ::WID_SGI_HIGHSCORE, ///< Highscore button. WID_SGI_SETTINGS_OPTIONS = ::WID_SGI_SETTINGS_OPTIONS, ///< Settings button. diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 908e7599ab..70a8834a91 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -149,6 +149,25 @@ uint GetOriginFileSlot(SpriteID sprite) return GetSpriteCache(sprite)->file_slot; } +/** + * Count the sprites which originate from a specific file slot in a range of SpriteIDs. + * @param file_slot FIOS file slot. + * @param begin First sprite in range. + * @param end First sprite not in range. + * @return Number of sprites. + */ +uint GetSpriteCountForSlot(uint file_slot, SpriteID begin, SpriteID end) +{ + uint count = 0; + for (SpriteID i = begin; i != end; i++) { + if (SpriteExists(i)) { + SpriteCache *sc = GetSpriteCache(i); + if (sc->file_slot == file_slot) count++; + } + } + return count; +} + /** * Get a reasonable (upper bound) estimate of the maximum * SpriteID used in OpenTTD; there will be no sprites with diff --git a/src/spritecache.h b/src/spritecache.h index 803bdb32c2..8013105183 100644 --- a/src/spritecache.h +++ b/src/spritecache.h @@ -32,6 +32,7 @@ bool SpriteExists(SpriteID sprite); SpriteType GetSpriteType(SpriteID sprite); uint GetOriginFileSlot(SpriteID sprite); +uint GetSpriteCountForSlot(uint file_slot, SpriteID begin, SpriteID end); uint GetMaxSpriteID(); diff --git a/src/widgets/intro_widget.h b/src/widgets/intro_widget.h index 6a67fe64ca..ae48827ed1 100644 --- a/src/widgets/intro_widget.h +++ b/src/widgets/intro_widget.h @@ -24,8 +24,10 @@ enum SelectGameIntroWidgets { WID_SGI_ARCTIC_LANDSCAPE, ///< Select arctic landscape button. WID_SGI_TROPIC_LANDSCAPE, ///< Select tropic landscape button. WID_SGI_TOYLAND_LANDSCAPE, ///< Select toyland landscape button. + WID_SGI_BASESET_SELECTION, ///< Baseset selection. + WID_SGI_BASESET, ///< Baseset errors. WID_SGI_TRANSLATION_SELECTION, ///< Translation selection. - WID_SGI_TRANSLATION, ///< Translation. + WID_SGI_TRANSLATION, ///< Translation errors. WID_SGI_OPTIONS, ///< Options button. WID_SGI_HIGHSCORE, ///< Highscore button. WID_SGI_SETTINGS_OPTIONS, ///< Settings button. From a2e53d5ab4c3dee1bb095928fd72ec2bdbee11ae Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 15 Jan 2017 13:59:46 +0000 Subject: [PATCH 020/158] (svn r27733) -Codechange: Pass NPF user data as void* instead of as array of integers. --- src/pathfinder/npf/aystar.h | 2 +- src/pathfinder/npf/npf.cpp | 88 ++++++++++++++++++++----------------- 2 files changed, 48 insertions(+), 42 deletions(-) diff --git a/src/pathfinder/npf/aystar.h b/src/pathfinder/npf/aystar.h index f9dd1a4ff1..eaa70bf915 100644 --- a/src/pathfinder/npf/aystar.h +++ b/src/pathfinder/npf/aystar.h @@ -133,7 +133,7 @@ struct AyStar { * everything */ void *user_path; void *user_target; - uint user_data[10]; + void *user_data; byte loops_per_tick; ///< How many loops are there called before Main() gives control back to the caller. 0 = until done. uint max_path_cost; ///< If the g-value goes over this number, it stops searching, 0 = infinite. diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index bb705e5f4a..ebaf2ac574 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -38,11 +38,11 @@ struct NPFFindStationOrTileData { }; /** Indices into AyStar.userdata[] */ -enum AyStarUserDataType { - NPF_TYPE = 0, ///< Contains a TransportTypes value - NPF_SUB_TYPE, ///< Contains the sub transport type - NPF_OWNER, ///< Contains an Owner value - NPF_RAILTYPES, ///< Contains a bitmask the compatible RailTypes of the engine when NPF_TYPE == TRANSPORT_RAIL. Unused otherwise. +struct AyStarUserData { + Owner owner; + TransportType type; + RailTypes railtypes; + RoadTypes roadtypes; }; /** Indices into AyStarNode.userdata[] */ @@ -157,13 +157,14 @@ static int32 NPFCalcStationOrTileHeuristic(AyStar *as, AyStarNode *current, Open TileIndex from = current->tile; TileIndex to = fstd->dest_coords; uint dist; + AyStarUserData *user = (AyStarUserData *)as->user_data; /* for train-stations, we are going to aim for the closest station tile */ - if (as->user_data[NPF_TYPE] != TRANSPORT_WATER && fstd->station_index != INVALID_STATION) { + if (user->type != TRANSPORT_WATER && fstd->station_index != INVALID_STATION) { to = CalcClosestStationTile(fstd->station_index, from, fstd->station_type); } - if (as->user_data[NPF_TYPE] == TRANSPORT_ROAD) { + if (user->type == TRANSPORT_ROAD) { /* Since roads only have diagonal pieces, we use manhattan distance here */ dist = DistanceManhattan(from, to) * NPF_TILE_LENGTH; } else { @@ -532,9 +533,10 @@ static int32 NPFRailPathCost(AyStar *as, AyStarNode *current, OpenListNode *pare /* Will find any depot */ static int32 NPFFindDepot(AyStar *as, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)as->user_data; /* It's not worth caching the result with NPF_FLAG_IS_TARGET here as below, * since checking the cache not that much faster than the actual check */ - return IsDepotTypeTile(current->path.node.tile, (TransportType)as->user_data[NPF_TYPE]) ? + return IsDepotTypeTile(current->path.node.tile, user->type) ? AYSTAR_FOUND_END_NODE : AYSTAR_DONE; } @@ -612,6 +614,7 @@ static void ClearPathReservation(const PathNode *start, const PathNode *end) */ static void NPFSaveTargetData(AyStar *as, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)as->user_data; NPFFoundTargetData *ftd = (NPFFoundTargetData*)as->user_path; ftd->best_trackdir = (Trackdir)current->path.node.user_data[NPF_TRACKDIR_CHOICE]; ftd->best_path_dist = current->g; @@ -619,7 +622,7 @@ static void NPFSaveTargetData(AyStar *as, OpenListNode *current) ftd->node = current->path.node; ftd->res_okay = false; - if (as->user_target != NULL && ((NPFFindStationOrTileData*)as->user_target)->reserve_path && as->user_data[NPF_TYPE] == TRANSPORT_RAIL) { + if (as->user_target != NULL && ((NPFFindStationOrTileData*)as->user_target)->reserve_path && user->type == TRANSPORT_RAIL) { /* Path reservation is requested. */ const Train *v = Train::From(((NPFFindStationOrTileData *)as->user_target)->v); @@ -767,28 +770,25 @@ static inline bool ForceReverse(TileIndex tile, DiagDirection dir, TransportType * * @param tile The tile of interest. * @param dir The direction in which the vehicle drives onto a tile. - * @param type The transporttype of the vehicle. - * @param subtype For TRANSPORT_ROAD the compatible RoadTypes of the vehicle. - * @param railtypes For TRANSPORT_RAIL the compatible RailTypes of the vehicle. - * @param owner The owner of the vehicle. + * @param user Vehicle information. * @return true iff the vehicle can enter the tile. */ -static bool CanEnterTile(TileIndex tile, DiagDirection dir, TransportType type, uint subtype, RailTypes railtypes, Owner owner) +static bool CanEnterTile(TileIndex tile, DiagDirection dir, AyStarUserData *user) { /* Check tunnel entries and bridge ramps */ if (IsTileType(tile, MP_TUNNELBRIDGE) && GetTunnelBridgeDirection(tile) != dir) return false; /* Test ownership */ - if (!CanEnterTileOwnerCheck(owner, tile, dir)) return false; + if (!CanEnterTileOwnerCheck(user->owner, tile, dir)) return false; /* check correct rail type (mono, maglev, etc) */ - if (type == TRANSPORT_RAIL) { + if (user->type == TRANSPORT_RAIL) { RailType rail_type = GetTileRailType(tile); - if (!HasBit(railtypes, rail_type)) return false; + if (!HasBit(user->railtypes, rail_type)) return false; } /* Depots, standard roadstops and single tram bits can only be entered from one direction */ - DiagDirection single_entry = GetTileSingleEntry(tile, type, subtype); + DiagDirection single_entry = GetTileSingleEntry(tile, user->type, user->roadtypes); if (single_entry != INVALID_DIAGDIR && single_entry != ReverseDiagDir(dir)) return false; return true; @@ -849,6 +849,7 @@ static TrackdirBits GetDriveableTrackdirBits(TileIndex dst_tile, Trackdir src_tr * copy AyStarNode.user_data[NPF_NODE_FLAGS] from the parent */ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) { + AyStarUserData *user = (AyStarUserData *)aystar->user_data; /* We leave src_tile on track src_trackdir in direction src_exitdir */ Trackdir src_trackdir = current->path.node.direction; TileIndex src_tile = current->path.node.tile; @@ -860,8 +861,8 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) bool ignore_src_tile = (current->path.parent == NULL && NPFGetFlag(¤t->path.node, NPF_FLAG_IGNORE_START_TILE)); /* Information about the vehicle: TransportType (road/rail/water) and SubType (compatible rail/road types) */ - TransportType type = (TransportType)aystar->user_data[NPF_TYPE]; - uint subtype = aystar->user_data[NPF_SUB_TYPE]; + TransportType type = user->type; + uint subtype = user->roadtypes; /* Initialize to 0, so we can jump out (return) somewhere an have no neighbours */ aystar->num_neighbours = 0; @@ -889,7 +890,7 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) /* We leave src_tile in src_exitdir and reach dst_tile */ dst_tile = AddTileIndexDiffCWrap(src_tile, TileIndexDiffCByDiagDir(src_exitdir)); - if (dst_tile != INVALID_TILE && !CanEnterTile(dst_tile, src_exitdir, type, subtype, (RailTypes)aystar->user_data[NPF_RAILTYPES], (Owner)aystar->user_data[NPF_OWNER])) dst_tile = INVALID_TILE; + if (dst_tile != INVALID_TILE && !CanEnterTile(dst_tile, src_exitdir, user)) dst_tile = INVALID_TILE; if (dst_tile == INVALID_TILE) { /* We cannot enter the next tile. Road vehicles can reverse, others reach dead end */ @@ -960,7 +961,7 @@ static void NPFFollowTrack(AyStar *aystar, OpenListNode *current) * multiple targets that are spread around, we should perform a breadth first * search by specifiying CalcZero as our heuristic. */ -static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, TransportType type, uint sub_type, Owner owner, RailTypes railtypes, uint reverse_penalty) +static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start_tile1, AyStarNode *start2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStar_EndNodeCheck target_proc, AyStar_CalculateH heuristic_proc, AyStarUserData *user, uint reverse_penalty) { int r; NPFFoundTargetData result; @@ -970,7 +971,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start _npf_aystar.EndNodeCheck = target_proc; _npf_aystar.FoundEndNode = NPFSaveTargetData; _npf_aystar.GetNeighbours = NPFFollowTrack; - switch (type) { + switch (user->type) { default: NOT_REACHED(); case TRANSPORT_RAIL: _npf_aystar.CalculateG = NPFRailPathCost; break; case TRANSPORT_ROAD: _npf_aystar.CalculateG = NPFRoadPathCost; break; @@ -1002,10 +1003,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start _npf_aystar.user_target = target; /* Initialize user_data */ - _npf_aystar.user_data[NPF_TYPE] = type; - _npf_aystar.user_data[NPF_SUB_TYPE] = sub_type; - _npf_aystar.user_data[NPF_OWNER] = owner; - _npf_aystar.user_data[NPF_RAILTYPES] = railtypes; + _npf_aystar.user_data = user; /* GO! */ r = _npf_aystar.Main(); @@ -1026,7 +1024,7 @@ static NPFFoundTargetData NPFRouteInternal(AyStarNode *start1, bool ignore_start /* Will search as below, but with two start nodes, the second being the * reverse. Look at the NPF_FLAG_REVERSE flag in the result node to see which * direction was taken (NPFGetFlag(result.node, NPF_FLAG_REVERSE)) */ -static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes) +static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStarUserData *user) { AyStarNode start1; AyStarNode start2; @@ -1040,15 +1038,15 @@ static NPFFoundTargetData NPFRouteToStationOrTileTwoWay(TileIndex tile1, Trackdi start2.direction = trackdir2; start2.user_data[NPF_TRACKDIR_CHOICE] = INVALID_TRACKDIR; - return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindStationOrTile, NPFCalcStationOrTileHeuristic, type, sub_type, owner, railtypes, 0); + return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindStationOrTile, NPFCalcStationOrTileHeuristic, user, 0); } /* Will search from the given tile and direction, for a route to the given * station for the given transport type. See the declaration of * NPFFoundTargetData above for the meaning of the result. */ -static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir trackdir, bool ignore_start_tile, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes) +static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir trackdir, bool ignore_start_tile, NPFFindStationOrTileData *target, AyStarUserData *user) { - return NPFRouteToStationOrTileTwoWay(tile, trackdir, ignore_start_tile, INVALID_TILE, INVALID_TRACKDIR, false, target, type, sub_type, owner, railtypes); + return NPFRouteToStationOrTileTwoWay(tile, trackdir, ignore_start_tile, INVALID_TILE, INVALID_TRACKDIR, false, target, user); } /* Search using breadth first. Good for little track choice and inaccurate @@ -1058,7 +1056,7 @@ static NPFFoundTargetData NPFRouteToStationOrTile(TileIndex tile, Trackdir track * reverse_penalty applied (NPF_TILE_LENGTH is the equivalent of one full * tile). */ -static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, TransportType type, uint sub_type, Owner owner, RailTypes railtypes, uint reverse_penalty) +static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Trackdir trackdir1, bool ignore_start_tile1, TileIndex tile2, Trackdir trackdir2, bool ignore_start_tile2, NPFFindStationOrTileData *target, AyStarUserData *user, uint reverse_penalty) { AyStarNode start1; AyStarNode start2; @@ -1074,7 +1072,7 @@ static NPFFoundTargetData NPFRouteToDepotBreadthFirstTwoWay(TileIndex tile1, Tra /* perform a breadth first search. Target is NULL, * since we are just looking for any depot...*/ - return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindDepot, NPFCalcZero, type, sub_type, owner, railtypes, reverse_penalty); + return NPFRouteInternal(&start1, ignore_start_tile1, (IsValidTile(tile2) ? &start2 : NULL), ignore_start_tile2, target, NPFFindDepot, NPFCalcZero, user, reverse_penalty); } void InitializeNPF() @@ -1123,7 +1121,8 @@ FindDepotData NPFRoadVehicleFindNearestDepot(const RoadVehicle *v, int max_penal { Trackdir trackdir = v->GetVehicleTrackdir(); - NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, v->tile, ReverseTrackdir(trackdir), false, NULL, TRANSPORT_ROAD, v->compatible_roadtypes, v->owner, INVALID_RAILTYPES, 0); + AyStarUserData user = { v->owner, TRANSPORT_ROAD, INVALID_RAILTYPES, v->compatible_roadtypes }; + NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, v->tile, ReverseTrackdir(trackdir), false, NULL, &user, 0); if (ftd.best_bird_dist != 0) return FindDepotData(); @@ -1142,7 +1141,8 @@ Trackdir NPFRoadVehicleChooseTrack(const RoadVehicle *v, TileIndex tile, DiagDir NPFFillWithOrderData(&fstd, v); Trackdir trackdir = DiagDirToDiagTrackdir(enterdir); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, TRANSPORT_ROAD, v->compatible_roadtypes, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_ROAD, INVALID_RAILTYPES, v->compatible_roadtypes }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, &user); if (ftd.best_trackdir == INVALID_TRACKDIR) { /* We are already at our target. Just do something * @todo: maybe display error? @@ -1169,7 +1169,8 @@ Track NPFShipChooseTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, NPFFillWithOrderData(&fstd, v); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, TRANSPORT_WATER, 0, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_WATER, INVALID_RAILTYPES, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, true, &fstd, &user); /* If ftd.best_bird_dist is 0, we found our target and ftd.best_trackdir contains * the direction we need to take to get there, if ftd.best_bird_dist is not 0, @@ -1192,7 +1193,8 @@ bool NPFShipCheckReverse(const Ship *v) assert(trackdir != INVALID_TRACKDIR); assert(trackdir_rev != INVALID_TRACKDIR); - ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, v->tile, trackdir_rev, false, &fstd, TRANSPORT_WATER, 0, v->owner, INVALID_RAILTYPES); + AyStarUserData user = { v->owner, TRANSPORT_WATER, INVALID_RAILTYPES, ROADTYPES_NONE }; + ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, v->tile, trackdir_rev, false, &fstd, &user); /* If we didn't find anything, just keep on going straight ahead, otherwise take the reverse flag */ return ftd.best_bird_dist == 0 && NPFGetFlag(&ftd.node, NPF_FLAG_REVERSE); } @@ -1209,7 +1211,8 @@ FindDepotData NPFTrainFindNearestDepot(const Train *v, int max_penalty) fstd.reserve_path = false; assert(trackdir != INVALID_TRACKDIR); - NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes, NPF_INFINITE_PENALTY); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToDepotBreadthFirstTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, &user, NPF_INFINITE_PENALTY); if (ftd.best_bird_dist != 0) return FindDepotData(); /* Found target */ @@ -1241,7 +1244,8 @@ bool NPFTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir trackd /* perform a breadth first search. Target is NULL, * since we are just looking for any safe tile...*/ - return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, TRANSPORT_RAIL, 0, v->owner, railtypes, 0).res_okay; + AyStarUserData user = { v->owner, TRANSPORT_RAIL, railtypes, ROADTYPES_NONE }; + return NPFRouteInternal(&start1, true, NULL, false, &fstd, NPFFindSafeTile, NPFCalcZero, &user, 0).res_okay; } bool NPFTrainCheckReverse(const Train *v) @@ -1257,7 +1261,8 @@ bool NPFTrainCheckReverse(const Train *v) assert(trackdir != INVALID_TRACKDIR); assert(trackdir_rev != INVALID_TRACKDIR); - ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + ftd = NPFRouteToStationOrTileTwoWay(v->tile, trackdir, false, last->tile, trackdir_rev, false, &fstd, &user); /* If we didn't find anything, just keep on going straight ahead, otherwise take the reverse flag */ return ftd.best_bird_dist == 0 && NPFGetFlag(&ftd.node, NPF_FLAG_REVERSE); } @@ -1270,7 +1275,8 @@ Track NPFTrainChooseTrack(const Train *v, TileIndex tile, DiagDirection enterdir PBSTileInfo origin = FollowTrainReservation(v); assert(IsValidTrackdir(origin.trackdir)); - NPFFoundTargetData ftd = NPFRouteToStationOrTile(origin.tile, origin.trackdir, true, &fstd, TRANSPORT_RAIL, 0, v->owner, v->compatible_railtypes); + AyStarUserData user = { v->owner, TRANSPORT_RAIL, v->compatible_railtypes, ROADTYPES_NONE }; + NPFFoundTargetData ftd = NPFRouteToStationOrTile(origin.tile, origin.trackdir, true, &fstd, &user); if (target != NULL) { target->tile = ftd.node.tile; From 2f5cc263c70be18f6fc89780397592bf6d4c1141 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 15 Jan 2017 14:27:54 +0000 Subject: [PATCH 021/158] (svn r27734) -Change: Hide the drive-in stops from the tram station picker. --- src/road_gui.cpp | 68 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 62c76bf90a..801d334351 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -956,15 +956,11 @@ struct BuildRoadStationWindow : public PickerWindowBase { if (_cur_roadtype == ROADTYPE_TRAM && _road_station_picker_orientation < DIAGDIR_END) { _road_station_picker_orientation = DIAGDIR_END; } - this->SetWidgetsDisabledState(_cur_roadtype == ROADTYPE_TRAM, - WID_BROS_STATION_NE, - WID_BROS_STATION_SE, - WID_BROS_STATION_SW, - WID_BROS_STATION_NW, - WIDGET_LIST_END); this->GetWidget(WID_BROS_CAPTION)->widget_data = _road_type_infos[_cur_roadtype].picker_title[rs]; - for (uint i = WID_BROS_STATION_NE; i < WID_BROS_LT_OFF; i++) this->GetWidget(i)->tool_tip = _road_type_infos[_cur_roadtype].picker_tooltip[rs]; + for (uint i = (_cur_roadtype == ROADTYPE_TRAM ? WID_BROS_STATION_X : WID_BROS_STATION_NE); i < WID_BROS_LT_OFF; i++) { + this->GetWidget(i)->tool_tip = _road_type_infos[_cur_roadtype].picker_tooltip[rs]; + } this->LowerWidget(_road_station_picker_orientation + WID_BROS_STATION_NE); this->LowerWidget(_settings_client.gui.station_show_coverage + WID_BROS_LT_OFF); @@ -1060,7 +1056,7 @@ struct BuildRoadStationWindow : public PickerWindowBase { }; /** Widget definition of the build road station window */ -static const NWidgetPart _nested_rv_station_picker_widgets[] = { +static const NWidgetPart _nested_road_station_picker_widgets[] = { NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROS_CAPTION), @@ -1069,17 +1065,17 @@ static const NWidgetPart _nested_rv_station_picker_widgets[] = { NWidget(NWID_SPACER), SetMinimalSize(0, 3), NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), NWidget(NWID_SPACER), SetFill(1, 0), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NW), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NE), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NW), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_NE), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 2), NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), NWidget(NWID_SPACER), SetFill(1, 0), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SW), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SE), SetMinimalSize(66, 50), EndContainer(), - NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SW), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_SE), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), NWidget(NWID_SPACER), SetMinimalSize(0, 1), @@ -1099,16 +1095,54 @@ static const NWidgetPart _nested_rv_station_picker_widgets[] = { EndContainer(), }; -static WindowDesc _rv_station_picker_desc( +static WindowDesc _road_station_picker_desc( WDP_AUTO, NULL, 0, 0, WC_BUS_STATION, WC_BUILD_TOOLBAR, WDF_CONSTRUCTION, - _nested_rv_station_picker_widgets, lengthof(_nested_rv_station_picker_widgets) + _nested_road_station_picker_widgets, lengthof(_nested_road_station_picker_widgets) +); + +/** Widget definition of the build tram station window */ +static const NWidgetPart _nested_tram_station_picker_widgets[] = { + NWidget(NWID_HORIZONTAL), + NWidget(WWT_CLOSEBOX, COLOUR_DARK_GREEN), + NWidget(WWT_CAPTION, COLOUR_DARK_GREEN, WID_BROS_CAPTION), + EndContainer(), + NWidget(WWT_PANEL, COLOUR_DARK_GREEN, WID_BROS_BACKGROUND), + NWidget(NWID_SPACER), SetMinimalSize(0, 3), + NWidget(NWID_HORIZONTAL), SetPIP(0, 2, 0), + NWidget(NWID_SPACER), SetFill(1, 0), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_X), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_BROS_STATION_Y), SetMinimalSize(66, 50), SetFill(0, 0), EndContainer(), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 1), + NWidget(NWID_HORIZONTAL), SetPIP(2, 0, 2), + NWidget(WWT_LABEL, COLOUR_DARK_GREEN, WID_BROS_INFO), SetMinimalSize(140, 14), SetDataTip(STR_STATION_BUILD_COVERAGE_AREA_TITLE, STR_NULL), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_HORIZONTAL), SetPIP(2, 0, 2), + NWidget(NWID_SPACER), SetFill(1, 0), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROS_LT_OFF), SetMinimalSize(60, 12), + SetDataTip(STR_STATION_BUILD_COVERAGE_OFF, STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP), + NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BROS_LT_ON), SetMinimalSize(60, 12), + SetDataTip(STR_STATION_BUILD_COVERAGE_ON, STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP), + NWidget(NWID_SPACER), SetFill(1, 0), + EndContainer(), + NWidget(NWID_SPACER), SetMinimalSize(0, 10), SetResize(0, 1), + EndContainer(), +}; + +static WindowDesc _tram_station_picker_desc( + WDP_AUTO, NULL, 0, 0, + WC_BUS_STATION, WC_BUILD_TOOLBAR, + WDF_CONSTRUCTION, + _nested_tram_station_picker_widgets, lengthof(_nested_tram_station_picker_widgets) ); static void ShowRVStationPicker(Window *parent, RoadStopType rs) { - new BuildRoadStationWindow(&_rv_station_picker_desc, parent, rs); + new BuildRoadStationWindow(_cur_roadtype == ROADTYPE_ROAD ? &_road_station_picker_desc : &_tram_station_picker_desc, parent, rs); } void InitializeRoadGui() From 140bb8409a7824fefa807b7df5b32605a3efcfb9 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 15 Jan 2017 18:45:39 +0000 Subject: [PATCH 022/158] (svn r27735) -Update from Eints: catalan: 1 change by juanjo --- src/lang/catalan.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 692c48c043..4d45a15519 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprova 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 +STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu-ne si hi ha actualitzacions disponibles. STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau ajuda a fer millor OpenTTD unint-te com a traductor. Veure readme.txt per més detalls. # Quit window From 2335acdc1617aad0a27b8c28762dce0d2dacc3f6 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 16 Jan 2017 18:45:36 +0000 Subject: [PATCH 023/158] (svn r27736) -Update from Eints: italian: 1 change by lorenzodv --- src/lang/italian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 903f3738fd..762c2669f4 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1785,6 +1785,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Controll STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra le impostazioni delle IA e degli Script STR_INTRO_TOOLTIP_QUIT :{BLACK}Esci da 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Nel pacchetto grafico di base attualmente selezionato mancano {NUM} sprite. È consigliabile controllare gli aggiornamenti del pacchetto. STR_INTRO_TRANSLATION :{BLACK}A questa traduzione mancano {NUM} string{P a he}. Aiutaci a migliorare OpenTTD iscrivendoti come traduttore. Vedi readme.txt per dettagli. # Quit window From 1d6f3fda8096cdd8795b4eb3113fc2c9661a7206 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 18 Jan 2017 18:45:37 +0000 Subject: [PATCH 024/158] (svn r27737) -Update from Eints: czech: 27 changes by djst --- src/lang/czech.txt | 51 ++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 4c5d796648..2643dd30ae 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1848,6 +1848,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Ukázat, STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zobrazit nastavení AI a hry STR_INTRO_TOOLTIP_QUIT :{BLACK}Ukončit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}V aktuálně zvolené základní sadě grafiky chybí {NUM} sprit{P "" y ů}. Zkuste, prosím, vyhledat aktualizovanou základní sadu. STR_INTRO_TRANSLATION :{BLACK}Tento překlad postrádá {NUM} řetěz{P ec ce ců}. Prosím pomozte OpenTTD udělat lepším a přihlaste se jako překladatel. Pro více informací, čtěte readme.txt. # Quit window @@ -2682,6 +2683,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Název d STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Přijímané zboží: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Druh kolejí: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rychlostní omezení tratě: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Rychlostní omezení silnice: {LTBLUE}{VELOCITY} @@ -2694,29 +2696,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pole STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasněžená země STR_LAI_CLEAR_DESCRIPTION_DESERT :Poušť -STR_LAI_RAIL_DESCRIPTION_TRACK :Železnice trať -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnice trať s obyčejným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnice trať s vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnice trať s výjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnice trať s kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnice trať s dokonalejším (PBS) návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnice trať s dokonalejším (PBS) jednosměrným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnice trať s obyčejným a vjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnice trať s obyčejným a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnice trať s obyčejným a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnice trať s obyčejným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnice trať s obyčejným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnice trať s vjezdovým a odjezdovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnice trať s vjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnice trať s vjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnice trať s vjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnice trať s výjezdovým a kombinovaným návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnice trať s výjezdovým a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnice trať s výjezdovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnice trať s kombinovaným a cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnice trať s kombinovaným a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnice trať s cestovým a jednosměrným cestovým návěstidlem -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnice železniční depo +STR_LAI_RAIL_DESCRIPTION_TRACK :Železniční trať +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železniční trať s obyčejnými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železniční trať s vjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železniční trať s odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železniční trať s kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železniční trať s dokonalejšími (PBS) návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železniční trať s jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železniční trať s obyčejnými a vjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železniční trať s obyčejnými a odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železniční trať s obyčejnými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železniční trať s obyčejnými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železniční trať s obyčejnými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železniční trať s vjezdovými a odjezdovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železniční trať s vjezdovými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železniční trať s vjezdovými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železniční trať s vjezdovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železniční trať s odjezdovými a kombinovanými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železniční trať s odjezdovými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železniční trať s odjezdovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železniční trať s kombinovanými a cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železniční trať s kombinovanými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železniční trať s cestovými a jednosměrnými cestovými návěstidly +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železniční depo STR_LAI_ROAD_DESCRIPTION_ROAD :Silnice STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Silnice s pouličním osvětlením @@ -3654,6 +3656,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Zmáčkn STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne mezi okny na výměnu lokomotiv a vagonů STR_REPLACE_ENGINES :lokomotivy STR_REPLACE_WAGONS :vagony +STR_REPLACE_ALL_RAILTYPE :Všechna drážní vozidla STR_REPLACE_HELP_RAILTYPE :{BLACK}Vyber typ kolejí, pro které chceš měnit lokomotivy STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Tady je zobrazeno, za jakou lokomotivu se ta v levém seznamu vyměňuje @@ -4186,7 +4189,7 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... nelz STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... obrázek je příliš velký STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Varování kvůli velikosti -STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Tak velká zmena velikosti zdrojové mapy není doporučena. Pokračovat s generováním? +STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Tak velká změna velikosti zdrojové mapy není doporučena. Pokračovat v generování? # Soundset messages STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Byl nalezen pouze nouzový zvukový soubor. Pokud chcete zvuky, nainstalujte prosim zvukové soubory skrze systém stahování obsahu From 3245922407b0c9b75c249570401c3c7b73a3b115 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 20 Jan 2017 18:45:37 +0000 Subject: [PATCH 025/158] (svn r27738) -Update from Eints: croatian: 1 change by VoyagerOne --- src/lang/croatian.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 0d8b9a6a78..318f22d632 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1857,6 +1857,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Provjeri STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Prikaži postavke UI-ja/Skripte igre STR_INTRO_TOOLTIP_QUIT :{BLACK}Izzađi it 'OpenTTD'-a +STR_INTRO_BASESET :{BLACK}Trenutno odabranom osnovnom grafičkom setu nedostaje {NUM} sprite{P "" a a}. Potražite nadogradnju grafičkog seta. STR_INTRO_TRANSLATION :{BLACK}Ovom prijevodu nedostaje {NUM} slijed. Molimo, pomognite učiniti OpenTTD boljim tako da se prijavite kao prevoditelj. Pogledajte readme.txt za detalje. # Quit window From 6c573dc3b557cd6c96235111bc4c0bda938677b8 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 22 Jan 2017 13:13:15 +0000 Subject: [PATCH 026/158] (svn r27739) -Cleanup/Revert (r12162): Clearing MP_HOUSE with DC_EXEC always fails, so there is no effect in testing for houses first. (adf88) --- src/town_cmd.cpp | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 7479892c23..66092ff34f 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -2058,11 +2058,10 @@ static void MakeTownHouse(TileIndex t, Town *town, byte counter, byte stage, Hou * Checks if a house can be built here. Important is slope, bridge above * and ability to clear the land. * @param tile tile to check - * @param town town that is checking * @param noslope are slopes (foundations) allowed? * @return true iff house can be built here */ -static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) +static inline bool CanBuildHouseHere(TileIndex tile, bool noslope) { /* cannot build on these slopes... */ Slope slope = GetTileSlope(tile); @@ -2071,9 +2070,6 @@ static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) /* building under a bridge? */ if (IsBridgeAbove(tile)) return false; - /* do not try to build over house owned by another town */ - if (IsTileType(tile, MP_HOUSE) && GetTownIndex(tile) != town) return false; - /* can we clear the land? */ return DoCommand(tile, 0, 0, DC_AUTO | DC_NO_WATER, CMD_LANDSCAPE_CLEAR).Succeeded(); } @@ -2082,15 +2078,14 @@ static inline bool CanBuildHouseHere(TileIndex tile, TownID town, bool noslope) /** * Checks if a house can be built at this tile, must have the same max z as parameter. * @param tile tile to check - * @param town town that is checking * @param z max z of this tile so more parts of a house are at the same height (with foundation) * @param noslope are slopes (foundations) allowed? * @return true iff house can be built here * @see CanBuildHouseHere() */ -static inline bool CheckBuildHouseSameZ(TileIndex tile, TownID town, int z, bool noslope) +static inline bool CheckBuildHouseSameZ(TileIndex tile, int z, bool noslope) { - if (!CanBuildHouseHere(tile, town, noslope)) return false; + if (!CanBuildHouseHere(tile, noslope)) return false; /* if building on slopes is allowed, there will be flattening foundation (to tile max z) */ if (GetTileMaxZ(tile) != z) return false; @@ -2102,20 +2097,19 @@ static inline bool CheckBuildHouseSameZ(TileIndex tile, TownID town, int z, bool /** * Checks if a house of size 2x2 can be built at this tile * @param tile tile, N corner - * @param town town that is checking * @param z maximum tile z so all tile have the same max z * @param noslope are slopes (foundations) allowed? * @return true iff house can be built * @see CheckBuildHouseSameZ() */ -static bool CheckFree2x2Area(TileIndex tile, TownID town, int z, bool noslope) +static bool CheckFree2x2Area(TileIndex tile, int z, bool noslope) { /* we need to check this tile too because we can be at different tile now */ - if (!CheckBuildHouseSameZ(tile, town, z, noslope)) return false; + if (!CheckBuildHouseSameZ(tile, z, noslope)) return false; for (DiagDirection d = DIAGDIR_SE; d < DIAGDIR_END; d++) { tile += TileOffsByDiagDir(d); - if (!CheckBuildHouseSameZ(tile, town, z, noslope)) return false; + if (!CheckBuildHouseSameZ(tile, z, noslope)) return false; } return true; @@ -2202,10 +2196,10 @@ static bool CheckTownBuild2House(TileIndex *tile, Town *t, int maxz, bool noslop /* 'tile' is already checked in BuildTownHouse() - CanBuildHouseHere() and slope test */ TileIndex tile2 = *tile + TileOffsByDiagDir(second); - if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, t->index, maxz, noslope)) return true; + if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, maxz, noslope)) return true; tile2 = *tile + TileOffsByDiagDir(ReverseDiagDir(second)); - if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, t->index, maxz, noslope)) { + if (TownLayoutAllowsHouseHere(t, tile2) && CheckBuildHouseSameZ(tile2, maxz, noslope)) { *tile = tile2; return true; } @@ -2227,7 +2221,7 @@ static bool CheckTownBuild2x2House(TileIndex *tile, Town *t, int maxz, bool nosl TileIndex tile2 = *tile; for (DiagDirection d = DIAGDIR_SE;; d++) { // 'd' goes through DIAGDIR_SE, DIAGDIR_SW, DIAGDIR_NW, DIAGDIR_END - if (TownLayoutAllows2x2HouseHere(t, tile2) && CheckFree2x2Area(tile2, t->index, maxz, noslope)) { + if (TownLayoutAllows2x2HouseHere(t, tile2) && CheckFree2x2Area(tile2, maxz, noslope)) { *tile = tile2; return true; } @@ -2251,7 +2245,7 @@ static bool BuildTownHouse(Town *t, TileIndex tile) if (!TownLayoutAllowsHouseHere(t, tile)) return false; /* no house allowed at all, bail out */ - if (!CanBuildHouseHere(tile, t->index, false)) return false; + if (!CanBuildHouseHere(tile, false)) return false; Slope slope = GetTileSlope(tile); int maxz = GetTileMaxZ(tile); From cd18f2c10c5ce8df8f9648909a43c26c5cff42a5 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 25 Jan 2017 18:45:36 +0000 Subject: [PATCH 027/158] (svn r27740) -Update from Eints: korean: 1 change by telk5093 --- src/lang/korean.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e9834a27ae..acf19e50f0 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}새로 STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}인공지능/게임 스크립트 설정창을 엽니다. STR_INTRO_TOOLTIP_QUIT :{BLACK}'OpenTTD'를 종료합니다. +STR_INTRO_BASESET :{BLACK}현재 선택된 기본 그래픽 세트에는 {NUM}개의 스프라이트가 빠져있습니다. 기본 세트를 업데이트하세요. STR_INTRO_TRANSLATION :{BLACK}이 버전의 OpenTTD는 {NUM}개의 문장이 한국어로 번역되지 않았습니다. OpenTTD가 더욱 발전할 수 있도록 번역에 참여하세요. 자세한 사항은 readme.txt를 참고하세요. # Quit window From 0fc88ade9ff038d3d215f33301ac3da349f78709 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 26 Jan 2017 18:45:36 +0000 Subject: [PATCH 028/158] (svn r27741) -Update from Eints: luxembourgish: 26 changes by Phreeze russian: 1 change by Lone_Wolf --- src/lang/luxembourgish.txt | 49 ++++++++++++++++++++------------------ src/lang/russian.txt | 1 + 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ba13c3a02e..49e08b85ae 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1761,6 +1761,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_BASESET :{BLACK}Dem grad ausgewielte Basis Grafikset fehlen {NUM} Srite{P "" s}. W.e.g. no Updates fir dëse Set sichen. 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 @@ -2589,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Fluchhaf STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Wuer: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Schinnentyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinne-Geschw.-Limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Stroosse-Geschw.-Limit: {LTBLUE}{VELOCITY} @@ -2601,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Felder STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schnéibedeckt Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüst -STR_LAI_RAIL_DESCRIPTION_TRACK :Schinnen Schinn -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schinnen Schinn mat Blocksignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schinnen Schinn mat Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schinnen Schinn mat Ausgangs-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schinnen Schinn mat Kombo-Signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schinnen Schinn mat Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schinnen Schinn mat Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schinnen Schinn mat Block- an Presignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schinnen Schinn mat Block- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schinnen Schinn mat Block- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schinnen Schinn mat Block- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schinnen Schinn mat Block- a Einbahnsignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schinnen Schinn mat Pre- an Ausgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schinnen Schinn mat Pre- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schinnen Schinn mat Pre- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schinnen Schinn mat Pre- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schinnen Schinn mat Ausgangs- a Kombosignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schinnen Schinn mat Ausgangs- a Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schinnen Schinn mat Ausgang- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schinnen Schinn mat Kombo- an Weesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schinnen Schinn mat Kombo- an Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schinnen Schinn mat Wee- and Einbahnweesignaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Schinnen Zuchschapp +STR_LAI_RAIL_DESCRIPTION_TRACK :Schinn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schinn mat Blocksignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schinn mat Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schinn mat Ausgangs-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Schinn mat Kombo-Signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Schinn mat Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Schinn mat Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Schinn mat Block- an Presignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Schinn mat Block- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schinn mat Block- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schinn mat Block- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schinn mat Block- a Einbahnsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schinn mat Pre- an Ausgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schinn mat Pre- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schinn mat Pre- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schinn mat Pre- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schinn mat Ausgangs- a Kombosignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Schinn mat Ausgangs- a Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Schinn mat Ausgang- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Schinn mat Kombo- an Weesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Schinn mat Kombo- an Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Schinn mat Wee- and Einbahnweesignaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Zuchschapp STR_LAI_ROAD_DESCRIPTION_ROAD :Strooss STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strooss mat Luuchten @@ -3558,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Drécken STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wiessel tëscht Maschin- an Waggonaustosch-Fënster STR_REPLACE_ENGINES :Lokomotiven STR_REPLACE_WAGONS :Waggonen +STR_REPLACE_ALL_RAILTYPE :All Zich STR_REPLACE_HELP_RAILTYPE :{BLACK}Wielt de Schinnentyp fir déi Lokomotiven ausgetosch ginn STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Lokomotiv vun der lénks ugewielter Lokomotiv ausgetosch soll ginn, wann et zoutrëfft diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 4aabacaa20..ea32fc4535 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1913,6 +1913,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Найт STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Изменить настройки ИИ / игрового скрипта STR_INTRO_TOOLTIP_QUIT :{BLACK}Выйти из OpenTTD +STR_INTRO_BASESET :{BLACK}В выбранном наборе базовой графики отсутствует {NUM} спрайт{P "" а ов}. Пожалуйста, обновите набор графики. STR_INTRO_TRANSLATION :{BLACK}На этот язык не переведен{P 0 а ы о} {NUM} строк{P а и ""}. Вы можете помочь проекту, зарегистрировавшись как переводчик. Инструкции в файле readme.txt. # Quit window From 31d4b1e8d6d62ca1c913a27a748f5072a47482f6 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 3 Feb 2017 18:45:39 +0000 Subject: [PATCH 029/158] (svn r27742) -Update from Eints: spanish (mexican): 1 change by Absay --- src/lang/spanish_MX.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index bd90ed8f63..cdf03bb125 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Revisar STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}A los gráficos base elegidos les hace falta {NUM} spirte{P "" s}. Necesitan actualizarse. STR_INTRO_TRANSLATION :{BLACK}A esta traducción le falta{P 0 "" n} {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el archivo readme.txt para más detalles. # Quit window From 30637d15807c34a93e8e70da69f86b5fdc5c0500 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Feb 2017 17:54:46 +0000 Subject: [PATCH 030/158] (svn r27743) -Fix [FS#6537]: Extra viewports did not center on the selected tile. (hackalittlebit) --- src/viewport_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/viewport_gui.cpp b/src/viewport_gui.cpp index 90b0e1468f..cbd300dec7 100644 --- a/src/viewport_gui.cpp +++ b/src/viewport_gui.cpp @@ -71,7 +71,7 @@ public: pt.x = w->viewport->scrollpos_x + w->viewport->virtual_width / 2; pt.y = w->viewport->scrollpos_y + w->viewport->virtual_height / 2; } else { - pt = RemapCoords(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, TileHeight(tile)); + pt = RemapCoords(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, TilePixelHeight(tile)); } this->viewport->scrollpos_x = pt.x - this->viewport->virtual_width / 2; From 8f3e0c4fe5e3f0f609eccdbf9451bc381b0abd6b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 8 Feb 2017 21:46:50 +0000 Subject: [PATCH 031/158] Add a custom arena allocator utility. --- projects/openttd_vs100.vcxproj | 2 + projects/openttd_vs100.vcxproj.filters | 6 ++ projects/openttd_vs140.vcxproj | 2 + projects/openttd_vs140.vcxproj.filters | 6 ++ projects/openttd_vs80.vcproj | 8 +++ projects/openttd_vs90.vcproj | 8 +++ source.list | 1 + src/core/dyn_arena_alloc.hpp | 97 ++++++++++++++++++++++++++ 8 files changed, 130 insertions(+) create mode 100644 src/core/dyn_arena_alloc.hpp diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index a7abe4d1ab..00c6f66811 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -667,6 +667,8 @@ + + diff --git a/projects/openttd_vs100.vcxproj.filters b/projects/openttd_vs100.vcxproj.filters index d996963c06..54cd94e730 100644 --- a/projects/openttd_vs100.vcxproj.filters +++ b/projects/openttd_vs100.vcxproj.filters @@ -1230,6 +1230,12 @@ Core Source Code + + Core Source Code + + + Core Source Code + Core Source Code diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 67acda0402..19760f468b 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -684,6 +684,8 @@ + + diff --git a/projects/openttd_vs140.vcxproj.filters b/projects/openttd_vs140.vcxproj.filters index d996963c06..54cd94e730 100644 --- a/projects/openttd_vs140.vcxproj.filters +++ b/projects/openttd_vs140.vcxproj.filters @@ -1230,6 +1230,12 @@ Core Source Code + + Core Source Code + + + Core Source Code + Core Source Code diff --git a/projects/openttd_vs80.vcproj b/projects/openttd_vs80.vcproj index fcd9c0e3a3..afb125acf2 100644 --- a/projects/openttd_vs80.vcproj +++ b/projects/openttd_vs80.vcproj @@ -1946,6 +1946,14 @@ RelativePath=".\..\src\core\bitmath_func.hpp" > + + + + diff --git a/projects/openttd_vs90.vcproj b/projects/openttd_vs90.vcproj index cd5eea9d4e..f35a14ece5 100644 --- a/projects/openttd_vs90.vcproj +++ b/projects/openttd_vs90.vcproj @@ -1943,6 +1943,14 @@ RelativePath=".\..\src\core\bitmath_func.hpp" > + + + + diff --git a/source.list b/source.list index b2c2f4d495..c88f322cd1 100644 --- a/source.list +++ b/source.list @@ -424,6 +424,7 @@ core/backup_type.hpp core/bitmath_func.cpp core/bitmath_func.hpp core/container_func.hpp +core/dyn_arena_alloc.hpp core/endian_func.hpp core/endian_type.hpp core/enum_type.hpp diff --git a/src/core/dyn_arena_alloc.hpp b/src/core/dyn_arena_alloc.hpp new file mode 100644 index 0000000000..2bc4978d14 --- /dev/null +++ b/src/core/dyn_arena_alloc.hpp @@ -0,0 +1,97 @@ +/* $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 dyn_arena_alloc.hpp Dynamic chunk-size arena allocator. */ + +#include + +/** + * Custom arena allocator for uniform-size allocations of a variable size. + * The allocation and chunk sizes may only be changed when the arena is empty. + */ +class DynUniformArenaAllocator { + std::vector used_blocks; + + void *current_block = nullptr; + void *last_freed = nullptr; + size_t next_position = 0; + + size_t item_size = 0; + size_t items_per_chunk = 0; + + void NewBlock() + { + current_block = malloc(item_size * items_per_chunk); + assert(current_block != nullptr); + next_position = 0; + used_blocks.push_back(current_block); + } + + public: + DynUniformArenaAllocator() = default; + DynUniformArenaAllocator(const DynUniformArenaAllocator &other) = delete; + DynUniformArenaAllocator& operator=(const DynUniformArenaAllocator &other) = delete; + + ~DynUniformArenaAllocator() + { + EmptyArena(); + } + + void EmptyArena() + { + current_block = nullptr; + last_freed = nullptr; + next_position = 0; + for (void *block : used_blocks) { + free(block); + } + used_blocks.clear(); + } + + void ResetArena() + { + EmptyArena(); + item_size = 0; + items_per_chunk = 0; + } + + void *Allocate() { + assert(item_size != 0); + if (last_freed) { + void *ptr = last_freed; + last_freed = *reinterpret_cast(ptr); + return ptr; + } else { + if (current_block == nullptr || next_position == items_per_chunk) { + NewBlock(); + } + void *out = reinterpret_cast(current_block) + (item_size * next_position); + next_position++; + return out; + } + } + + void Free(void *ptr) { + if (!ptr) return; + assert(current_block != nullptr); + + *reinterpret_cast(ptr) = last_freed; + last_freed = ptr; + } + + void SetParameters(size_t item_size, size_t items_per_chunk) + { + if (item_size < sizeof(void *)) item_size = sizeof(void *); + if (this->item_size == item_size && this->items_per_chunk == items_per_chunk) return; + + assert(current_block == nullptr); + this->item_size = item_size; + this->items_per_chunk = items_per_chunk; + } +}; From 594b328c7ef2f944a4eeed8d62bbd77a31e0cb6d Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 9 Feb 2017 18:45:40 +0000 Subject: [PATCH 032/158] (svn r27744) -Update from Eints: basque: 20 changes by Thadah dutch: 4 changes by habell --- src/lang/basque.txt | 23 ++++++++++++++++++++--- src/lang/dutch.txt | 5 ++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/lang/basque.txt b/src/lang/basque.txt index eee84eb0ad..5ec7a52e82 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -319,6 +319,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Subsidio STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Erakutsi konpainien geltokien zerrenda STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Erakutsi konpaniaren finantza informazioa STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Erakutsi konpaniaren informazio generala +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Helburu zerrenda erakutsi STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Grafikoak erakutsi STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Erakutsi konpanien ligako taula STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Eraiki industria berria edo industri guztien zerrenda erakutsi @@ -1097,6 +1098,8 @@ STR_CONFIG_SETTING_RESTRICT_ALL :Aditua (ezarpen 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_SETTING_TYPE_DROPDOWN_CLIENT :Bezero ezarpenak (ez dira partidatan gordetzen; joko guztiei eragiten die) +STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Enpresa ezarpenak (partidan gordeta; bakarrik uneko enpresari eragiten dio) STR_CONFIG_SETTINGS_NONE :{WHITE}- Ezer ez - STR_CONFIG_SETTING_OFF :Itzalita @@ -1262,6 +1265,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grafikoen marre STR_CONFIG_SETTING_LAND_GENERATOR :Lur sortzailea: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Jatorrizkoa STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis bakarrik) Maparen menditsutasuna STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industria dentsitatea: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Petroleo findegietatik maparen ertzera dagoen gehienezko distantzia: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Petroleo findegiak bakarrik maparen ertzatik hurbil eraiki daitezke, kostan irla mapetan @@ -1278,6 +1282,7 @@ STR_CONFIG_SETTING_TREE_PLACER_NONE :Ezer ez STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Jatorrizkoa STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Hobetua STR_CONFIG_SETTING_ROAD_SIDE :Errepideko garraioak: {STRING} +STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Gidatzeko aldea aukeratu STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Garaiera maparen norabidea: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Erlojuko orratzen kontrara STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Erlojuko orratzen erara @@ -1333,6 +1338,7 @@ STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Saguaren ezkerr STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Gaitu mapatik zehar mugitzea saguaren ezkerreko botoia mapan arrastratzerakoan. Oso erabilgarria da ukipen pantailak erabiltzerakoan STR_CONFIG_SETTING_AUTOSAVE :Auto-gordea: {STRING} +STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Partida gordetze automatikoaren bitartea aukeratu STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Gordetako jokoen izenetan {STRING} data fomatua erabili STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Gordetako fitxeroen dataren formatoa @@ -1373,7 +1379,9 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Konpainiako gas STR_CONFIG_SETTING_SOUND_NEWS :Periodikoa: {STRING} STR_CONFIG_SETTING_SOUND_NEW_YEAR :Amaiera urtea: {STRING} STR_CONFIG_SETTING_SOUND_CONFIRM :Eraikuntza: {STRING} +STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Eraikuntza arrakastatsua edo beste akzioekin soinu bat egin STR_CONFIG_SETTING_SOUND_DISASTER :Desastreak/istripuak: {STRING} +STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Istripu edo desastreen soinu efektuak aktibatu STR_CONFIG_SETTING_SOUND_VEHICLE :Garraioak: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Azpiturak eraikitzea debekatu ibilgailu egokiak ez daudenean eskuragarri: {STRING} @@ -2105,6 +2113,7 @@ STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Egunerak STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Haukeratu dituzun edukiak berrituko dituzten edukiak deskargatuak izateko STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Guztia desmarkatu STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Dekargatuak izango ez diren eduki guztiak markatu +STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Kanpoko webguneak bilatu STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}OpenTTD uzten zaude! STR_CONTENT_FILTER_TITLE :{BLACK}Etiketa/izen iragazkia: STR_CONTENT_OPEN_URL :{BLACK}Webgunera joan @@ -2484,6 +2493,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Aireport STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Onartutako zama: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Errail mota: {LTBLUE}{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} @@ -2496,11 +2506,11 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Eremuak STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Elurrez estalitako paisaia STR_LAI_CLEAR_DESCRIPTION_DESERT :Desertua -STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea Trenbidea +STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trenbidea Trenbidea blokeo seinalearekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trenbidea trenbidea aurre-seinalekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trenbidea trenbidea irteera seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trenbidea trenbidea konbo seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Konbo-seinaledun trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trenbidea trenbidea bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trenbidea trenbidea norabide bakarreko bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trenbidea trenbidea blokeo seinale eta aurre-seinaleekin @@ -2516,7 +2526,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trenbidea trenb STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trenbidea trenbidea irteera seinale eta bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trenbidea trenbidea irteera seinale eta norabide bakarreko bide seinaleekin STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trenbidea trenbidea konbo seinale eta bide seinaleekin -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trenbidea trenbide konbo seinale eta norabide bakarreko bide seinaleekin +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Konbo-seinale eta norabide bakarreko bide seinaledun trenbidea STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trenbidea trenbidea bide seinale eta norabide bakarreko seinaleekina STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trenbidea tren gordailua @@ -2724,6 +2734,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Desgaitua STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}OpenTTD-ren bertsio honekin bateraezina # NewGRF save preset window +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Ez aldatu berezko balioa # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF parametroak aldatu @@ -2984,6 +2995,7 @@ STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Ez dago STR_STATION_VIEW_CAPTION :{WHITE}{STATION} {STATION_FEATURES} STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_LONG} STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} {STATION}-(e)tik garraiatua) +STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} kargarako erreserbatua) STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Onartu STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Onartzen diren zamen zerrenda @@ -4050,6 +4062,7 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... Baso STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... bakarrik elur garaieratik gora eraiki daiteke STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... bakarrik elur garaieratik behera eraiki daiteke +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Ez dago leku aproposik '{STRING}' industriarako # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Ezin da tren gordailua hemen eraiki... @@ -4315,7 +4328,11 @@ 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_BASEGRAPHICS_DOS_DESCRIPTION :Transport Tycoon Deluxe originaleko DOS edizioko grafikoak. +STR_BASESOUNDS_DOS_DESCRIPTION :Transport Tycoon Deluxe originaleko DOS edizioko soinuak. +STR_BASESOUNDS_WIN_DESCRIPTION :Transport Tycoon Deluxe originaleko Windows edizioko grafikoak. STR_BASESOUNDS_NONE_DESCRIPTION :Soinurik gabeko soinu pakete bat +STR_BASEMUSIC_NONE_DESCRIPTION :Musika gabeko musika paketea. ##id 0x2000 # Town building names diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 20cedb565d..7fba262cd0 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Zoeken n STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Toon AI/Game script instellingen STR_INTRO_TOOLTIP_QUIT :{BLACK}Verlaat 'OpenTTD' +STR_INTRO_BASESET :{BLACK}De huidige gekozen graphics set mist {NUM} afbeelding{P "" en}. Controleer of er updates zijn voor deze basisset. STR_INTRO_TRANSLATION :{BLACK}Deze vertaling mist {NUM} tekst{P "" en}. Help aub om OpenTTD beter te maken door je al vertaler aan te melden. Zie readme.txt voor details. # Quit window @@ -2589,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Vliegvel STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Geaccepteerde vracht: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Rail type: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Spoor snelheidslimiet: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Snelheidslimiet weg: {LTBLUE}{VELOCITY} @@ -2618,7 +2620,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor- en eenrichtingsseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met exit- en combo-seinen -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor em exit- en routeseinen +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor met exit- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met exit- en eenrichtingsseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met combo- en routeseinen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg Spoor met combo- en eenrichtingssein @@ -3558,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klik op STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel tussen locomotief- en wagonvervangvensters STR_REPLACE_ENGINES :Motoren STR_REPLACE_WAGONS :Wagons +STR_REPLACE_ALL_RAILTYPE :Alle railvoertuigen STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecteer een spoortype waar je locomotieven voor wilt vervangen STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Dit geeft weer waarmee de aan de linkerkant geselecteerde locomotief vervangen wordt From c46e51449e001e2b05dc9108a55809c937ab5b0d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 12 Feb 2017 12:01:03 +0000 Subject: [PATCH 033/158] (svn r27745) -Update: Baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/orig_dos.obg | 1 + bin/baseset/orig_dos.obs | 1 + bin/baseset/orig_win.obs | 1 + 4 files changed, 4 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index 40c3f76060..12ba68a3a1 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -23,6 +23,7 @@ description.en_US = A music pack without actual music. description.es_ES = Un conjunto de música vacío. description.es_MX = Paquete de música vacío description.et_EE = Muusikakogu ilma muusikata. +description.eu_ES = Musika gabeko musika paketea. description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia. description.fr_FR = Un pack de musiques sans musiques. description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg index ad3b35c49f..7222400af0 100644 --- a/bin/baseset/orig_dos.obg +++ b/bin/baseset/orig_dos.obg @@ -24,6 +24,7 @@ description.en_US = Original Transport Tycoon Deluxe DOS edition graphics. description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS. description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika. +description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko grafikoak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat. description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS). description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS. diff --git a/bin/baseset/orig_dos.obs b/bin/baseset/orig_dos.obs index 71fa44baf6..ce2d6d22e6 100644 --- a/bin/baseset/orig_dos.obs +++ b/bin/baseset/orig_dos.obs @@ -23,6 +23,7 @@ description.en_US = Original Transport Tycoon Deluxe DOS edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS. description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS. description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid. +description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko soinuak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS. diff --git a/bin/baseset/orig_win.obs b/bin/baseset/orig_win.obs index fa2178fd40..c3e5fb7693 100644 --- a/bin/baseset/orig_win.obs +++ b/bin/baseset/orig_win.obs @@ -23,6 +23,7 @@ description.en_US = Original Transport Tycoon Deluxe Windows edition sounds. description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows. description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows. description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid. +description.eu_ES = Transport Tycoon Deluxe originaleko Windows edizioko grafikoak. description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet. description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows). description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows. From 9d85de4d3ef317b1ba03f6c9ed759e0cbc56e61d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 12 Feb 2017 12:03:07 +0000 Subject: [PATCH 034/158] (svn r27746) -Fix [FS#6538]: PR_CLEAR_ROAD refers to cost per roadbit. Removing secondary roadtypes from bridges was too cheap. (JGR) --- src/road_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 6482a14b19..5e432a2e6b 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -224,7 +224,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec TileIndex other_end = GetOtherTunnelBridgeEnd(tile); /* Pay for *every* tile of the bridge or tunnel */ uint len = GetTunnelBridgeLength(other_end, tile) + 2; - cost.AddCost(len * _price[PR_CLEAR_ROAD]); + cost.AddCost(len * 2 * _price[PR_CLEAR_ROAD]); if (flags & DC_EXEC) { Company *c = Company::GetIfValid(GetRoadOwner(tile, rt)); if (c != NULL) { From 9eff17e66bea99ed47f068e1f3474201d6f06eae Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 17 Feb 2017 18:45:37 +0000 Subject: [PATCH 035/158] (svn r27747) -Update from Eints: korean: 7 changes by telk5093 --- src/lang/korean.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index acf19e50f0..059796013a 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1708,7 +1708,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}설정 STR_CONFIG_ERROR :{WHITE}설정 파일에서 오류 발생 STR_CONFIG_ERROR_ARRAY :{WHITE}... 배열 '{STRING}'에서 오류 발생 STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... '{1:STRING}'에 잘못된 값('{0:STRING}')이 지정되었습니다. -STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... 설정 '{STRING}' 끝에 후행문자(??) +STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... '{STRING}' 설정의 끝에 후행 문자가 있습니다. STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' 무시중: '{STRING}'{G 1 "과" "와"} GRF ID가 겹침 STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... 유효하지 않은 NewGRF '{STRING}' 무시중: {STRING} STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :찾을 수 없음 @@ -1722,7 +1722,7 @@ STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... 기 STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... 기본 효과음 세트({STRING})가 무시되었습니다: 파일을 찾을 수 없습니다. STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... 기본 배경음 세트({STRING})가 무시되었습니다: 파일을 찾을 수 없습니다. STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}메모리 초과 -STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시는 {BYTES} 만큼으로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 옵션을 기본값에 가깝게 조절하십시오. +STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES}의 스프라이트 캐시 할당에 실패하였습니다. 스프라이트 캐시 용량이 {BYTES}로 감소합니다. 이는 OpenTTD의 성능을 저하시킬 것입니다. 메모리 요구사항을 낮추려면 32bpp를 비활성화하거나 화면 확대 설정을 기본값에 가깝게 조절하십시오. # Intro window STR_INTRO_CAPTION :{WHITE}OpenTTD {REV} @@ -2871,12 +2871,12 @@ STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF # Sprite aligner window STR_SPRITE_ALIGNER_CAPTION :{WHITE}스프라이트 정렬 {COMMA} ({STRING}) STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}다음 스프라이트 -STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(위조/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다. +STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다. STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}스프라이트 번호 입력 STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}입력한 스프라이트 번호로 이동합니다. 만약 입력한 번호의 스프라이트가 일반 스프라이트가 아닐경우, 그 다음으로 오는 일반 스프라이트로 이동합니다. STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}이전 스프라이트 -STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(위조/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다. -STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표시합니다. 이 스프라이트가 그려졌을때의 정렬은 무시합니다. +STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다. +STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표현합니다. 이 스프라이트를 표현할 때, 정렬 상태는 무시하고 표현합니다. STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X축이나 Y축 방향으로 스프라이트를 이동시킵니다. CTRL+클릭하면 한 번에 8씩 이동시킬 수 있습니다. STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}상대값 초기화 STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}현재 상대값 좌표를 초기화 @@ -2907,8 +2907,8 @@ STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :예기치 않 STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :알려지지 않은 액션 0 속성 {4:HEX} (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_INVALID_ID :유효하지 않은 ID 사용 시도 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다. -STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 액션 8 엔트리 포함 (스프라이트 {3:NUM}) -STR_NEWGRF_ERROR_READ_BOUNDS :모조-스프라이트의 지나간 끝을 읽음 (스프라이트 {3:NUM}) +STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 Action 8 엔트리 포함 (스프라이트 {3:NUM}) +STR_NEWGRF_ERROR_READ_BOUNDS :유사 스프라이트의 끝이었던 부분을 읽으려고 시도함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF 자원을 사용할 수 없음 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}(은)는 {STRING} 때문에 사용할 수 없습니다 STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :유효하지 않은/알 수 없는 스프라이트 구조 유형 (스프라이트 {3:NUM}) From 04040a6a6d9c817e5ea66f872adb402900855af6 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 25 Feb 2017 18:45:38 +0000 Subject: [PATCH 036/158] (svn r27748) -Update from Eints: polish: 1 change by wojteks86 --- src/lang/polish.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5f93b98652..8a9d653476 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2141,6 +2141,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Poszukaj STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Pokaż ustawienia SI / Game Script STR_INTRO_TOOLTIP_QUIT :{BLACK}Wyjdź z 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Aktualnie używany podstawowy zestaw graficzny nie posiada {NUM} wymagan{P ego ych ych} sprite{P 'u 'ów 'ów}. Proszę poszukać aktualizacji dla zestawu podstawowego. STR_INTRO_TRANSLATION :{BLACK}Tej wersji językowej brakuje jeszcze {NUM} wpis{P "" y ów}. Możesz pomóc ulepszyć nam OpenTTD rejestrując się jako tłumacz. Szczegóły znajdziesz w pliku readme.txt. # Quit window From c9a8360419059dbf4d614e7273d92cdbdbf9d093 Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:30:25 +0000 Subject: [PATCH 037/158] (svn r27749) -Codechange: Fold cb37 cargo suffix text in a structure. --- src/industry_gui.cpp | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index c160142249..5eae0b4c80 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -56,6 +56,11 @@ enum CargoSuffixType { CST_DIR, ///< Industry-directory window }; +/** Transfer storage of cargo suffix information. */ +struct CargoSuffix { + char text[512]; ///< Storage of the cargo suffix to print. +}; + static void ShowIndustryCargoesWindow(IndustryType id); /** @@ -71,11 +76,10 @@ static void ShowIndustryCargoesWindow(IndustryType id); * @param ind_type the industry type * @param indspec the industry spec * @param suffix is filled with the string to display - * @param suffix_last lastof(suffix) */ -static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, char *suffix, const char *suffix_last) +static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix) { - suffix[0] = '\0'; + suffix.text[0] = '\0'; if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) { uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE); if (callback == CALLBACK_FAILED || callback == 0x400) return; @@ -83,7 +87,7 @@ static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); } else if (indspec->grf_prop.grffile->grf_version >= 8 || GB(callback, 0, 8) != 0xFF) { StartTextRefStackUsage(indspec->grf_prop.grffile, 6); - GetString(suffix, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), suffix_last); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); StopTextRefStackUsage(); } } @@ -105,9 +109,9 @@ static inline void GetAllCargoSuffixes(uint cb_offset, CargoSuffixType cst, cons assert_compile(lengthof(cargoes) <= lengthof(suffixes)); for (uint j = 0; j < lengthof(cargoes); j++) { if (cargoes[j] != CT_INVALID) { - GetCargoSuffix(cb_offset + j, cst, ind, ind_type, indspec, suffixes[j], lastof(suffixes[j])); + GetCargoSuffix(cb_offset + j, cst, ind, ind_type, indspec, suffixes[j]); } else { - suffixes[j][0] = '\0'; + suffixes[j].text[0] = '\0'; } } } @@ -313,7 +317,7 @@ public: const IndustrySpec *indsp = GetIndustrySpec(this->index[i]); - char cargo_suffix[3][512]; + CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_FUND, NULL, this->index[i], indsp, indsp->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; @@ -323,7 +327,7 @@ public: if (indsp->accepts_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } d = maxdim(d, GetStringBoundingBox(str)); @@ -337,7 +341,7 @@ public: if (indsp->produced_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->produced_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } d = maxdim(d, GetStringBoundingBox(str)); } @@ -432,7 +436,7 @@ public: } /* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */ - char cargo_suffix[3][512]; + CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_FUND, NULL, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; @@ -442,7 +446,7 @@ public: if (indsp->accepts_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } DrawString(left, right, y, str); y += FONT_HEIGHT_NORMAL; @@ -457,7 +461,7 @@ public: if (indsp->produced_cargo[j] == CT_INVALID) continue; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(indsp->produced_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } DrawString(left, right, y, str); y += FONT_HEIGHT_NORMAL; @@ -713,15 +717,15 @@ public: int y = top + WD_FRAMERECT_TOP; bool first = true; bool has_accept = false; - char cargo_suffix[3][512]; if (i->prod_level == PRODLEVEL_CLOSURE) { DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE); y += 2 * FONT_HEIGHT_NORMAL; } + CargoSuffix cargo_suffix[3]; + GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); if (HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) { - GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { if (i->accepts_cargo[j] == CT_INVALID) continue; has_accept = true; @@ -732,12 +736,11 @@ public: } SetDParam(0, i->accepts_cargo[j]); SetDParam(1, i->incoming_cargo_waiting[j]); - SetDParamStr(2, cargo_suffix[j]); + SetDParamStr(2, cargo_suffix[j].text); DrawString(left + WD_FRAMETEXT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO); y += FONT_HEIGHT_NORMAL; } } else { - GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; byte p = 0; for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { @@ -745,7 +748,7 @@ public: has_accept = true; if (p > 0) str++; SetDParam(p++, CargoSpec::Get(i->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } if (has_accept) { DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, str); @@ -767,7 +770,7 @@ public: SetDParam(0, i->produced_cargo[j]); SetDParam(1, i->last_month_production[j]); - SetDParamStr(2, cargo_suffix[j]); + SetDParamStr(2, cargo_suffix[j].text); SetDParam(3, ToPercent8(i->last_month_pct_transported[j])); uint x = left + WD_FRAMETEXT_LEFT + (this->editable == EA_RATE ? SETTING_BUTTON_WIDTH + 10 : 0); DrawString(x, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_TRANSPORTED); @@ -1204,7 +1207,7 @@ protected: /* Industry name */ SetDParam(p++, i->index); - static char cargo_suffix[lengthof(i->produced_cargo)][512]; + static CargoSuffix cargo_suffix[lengthof(i->produced_cargo)]; GetAllCargoSuffixes(3, CST_DIR, i, i->type, indsp, i->produced_cargo, cargo_suffix); /* Industry productions */ @@ -1212,7 +1215,7 @@ protected: if (i->produced_cargo[j] == CT_INVALID) continue; SetDParam(p++, i->produced_cargo[j]); SetDParam(p++, i->last_month_production[j]); - SetDParamStr(p++, cargo_suffix[j]); + SetDParamStr(p++, cargo_suffix[j].text); } /* Transported productions */ From 5bcca41ace58f3e662295ca161fd17c91e92d5ad Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:33:39 +0000 Subject: [PATCH 038/158] (svn r27750) -Codechange: Add cb37 result type to the cargo suffix. --- src/industry_gui.cpp | 57 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 5eae0b4c80..8a89183335 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -56,9 +56,18 @@ enum CargoSuffixType { CST_DIR, ///< Industry-directory window }; +/** Ways of displaying the cargo. */ +enum CargoSuffixDisplay { + CSD_CARGO, ///< Display the cargo without sub-type (cb37 result 401). + CSD_CARGO_AMOUNT, ///< Display the cargo and amount (if useful), but no sub-type (cb37 result 400 or fail). + CSD_CARGO_TEXT, ///< Display then cargo and supplied string (cb37 result 800-BFF). + CSD_CARGO_AMOUNT_TEXT, ///< Display then cargo, amount, and string (cb37 result 000-3FF). +}; + /** Transfer storage of cargo suffix information. */ struct CargoSuffix { - char text[512]; ///< Storage of the cargo suffix to print. + CargoSuffixDisplay display; ///< How to display the cargo and text. + char text[512]; ///< Cargo suffix text. }; static void ShowIndustryCargoesWindow(IndustryType id); @@ -80,15 +89,47 @@ static void ShowIndustryCargoesWindow(IndustryType id); static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, CargoSuffix &suffix) { suffix.text[0] = '\0'; + suffix.display = CSD_CARGO_AMOUNT; + if (HasBit(indspec->callback_mask, CBM_IND_CARGO_SUFFIX)) { - uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, (cst != CST_FUND) ? ind->location.tile : INVALID_TILE); - if (callback == CALLBACK_FAILED || callback == 0x400) return; - if (callback > 0x400) { + TileIndex t = (cst != CST_FUND) ? ind->location.tile : INVALID_TILE; + uint16 callback = GetIndustryCallback(CBID_INDUSTRY_CARGO_SUFFIX, 0, (cst << 8) | cargo, const_cast(ind), ind_type, t); + if (callback == CALLBACK_FAILED) return; + + if (indspec->grf_prop.grffile->grf_version < 8) { + if (GB(callback, 0, 8) == 0xFF) return; + if (callback < 0x400) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_AMOUNT_TEXT; + return; + } ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); - } else if (indspec->grf_prop.grffile->grf_version >= 8 || GB(callback, 0, 8) != 0xFF) { - StartTextRefStackUsage(indspec->grf_prop.grffile, 6); - GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); - StopTextRefStackUsage(); + return; + + } else { // GRF version 8 or higher. + if (callback == 0x400) return; + if (callback == 0x401) { + suffix.display = CSD_CARGO; + return; + } + if (callback < 0x400) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_AMOUNT_TEXT; + return; + } + if (callback >= 0x800 && callback < 0xC00) { + StartTextRefStackUsage(indspec->grf_prop.grffile, 6); + GetString(suffix.text, GetGRFStringID(indspec->grf_prop.grffile->grfid, 0xD000 - 0x800 + callback), lastof(suffix.text)); + StopTextRefStackUsage(); + suffix.display = CSD_CARGO_TEXT; + return; + } + ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_CARGO_SUFFIX, callback); + return; } } } From 34ca88c09889a2024853fb851832f948c688bb0c Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:34:15 +0000 Subject: [PATCH 039/158] (svn r27751) -Feature: Display cargo suffix of accepted cargoes in industry view based on cb37 result type. Industry-sets that have no stockpiling get better control over the displayed accepted cargo information. - result 0401 only prints the accepted cargo - results 0800-0BFF prints the accepted cargo and a string (but not the amount) --- src/industry_gui.cpp | 66 +++++++++++++++++++++++++++----------------- src/lang/english.txt | 8 ++++-- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 8a89183335..b9077b9d77 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -766,35 +766,49 @@ public: CargoSuffix cargo_suffix[3]; GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); - if (HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) { - for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { - if (i->accepts_cargo[j] == CT_INVALID) continue; - has_accept = true; - if (first) { - DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING); - y += FONT_HEIGHT_NORMAL; - first = false; - } - SetDParam(0, i->accepts_cargo[j]); - SetDParam(1, i->incoming_cargo_waiting[j]); - SetDParamStr(2, cargo_suffix[j].text); - DrawString(left + WD_FRAMETEXT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO); + bool stockpiling = HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS); + + uint left_side = left + WD_FRAMERECT_LEFT * 4; // Indent accepted cargoes. + for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { + if (i->accepts_cargo[j] == CT_INVALID) continue; + has_accept = true; + if (first) { + DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_REQUIRES); y += FONT_HEIGHT_NORMAL; + first = false; } - } else { - StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; - byte p = 0; - for (byte j = 0; j < lengthof(i->accepts_cargo); j++) { - if (i->accepts_cargo[j] == CT_INVALID) continue; - has_accept = true; - if (p > 0) str++; - SetDParam(p++, CargoSpec::Get(i->accepts_cargo[j])->name); - SetDParamStr(p++, cargo_suffix[j].text); - } - if (has_accept) { - DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, str); - y += FONT_HEIGHT_NORMAL; + switch (cargo_suffix[j].display) { + case CSD_CARGO_AMOUNT: + if (stockpiling) { + SetDParam(0, i->accepts_cargo[j]); + SetDParam(1, i->incoming_cargo_waiting[j]); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT); + break; + } + /* FALL THROUGH */ + + case CSD_CARGO: + SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO); + break; + + case CSD_CARGO_TEXT: + SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name); + SetDParamStr(1, cargo_suffix[j].text); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT); + break; + + case CSD_CARGO_AMOUNT_TEXT: + SetDParam(0, i->accepts_cargo[j]); + SetDParam(1, i->incoming_cargo_waiting[j]); + SetDParamStr(2, cargo_suffix[j].text); + DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT); + break; + + default: + NOT_REACHED(); } + y += FONT_HEIGHT_NORMAL; } GetAllCargoSuffixes(3, CST_VIEW, i, i->type, ind, i->produced_cargo, cargo_suffix); diff --git a/src/lang/english.txt b/src/lang/english.txt index 83b6591f6e..8d931307af 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3294,9 +3294,13 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{RAW_STRING}, {STRING}{RAW_STRING}, {STRING}{RAW_STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{RAW_STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{RAW_STRING} + ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{RAW_STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{RAW_STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{RAW_STRING}, {STRING}{RAW_STRING} ############ range for produces ends From fa81e20390e5d40fc8679351922349fc54c8620c Mon Sep 17 00:00:00 2001 From: alberth Date: Sun, 26 Feb 2017 15:34:57 +0000 Subject: [PATCH 040/158] (svn r27752) -Cleanup: Remove obsolete strings from other languages as well. --- src/lang/afrikaans.txt | 2 -- src/lang/arabic_egypt.txt | 2 -- src/lang/basque.txt | 2 -- src/lang/belarusian.txt | 2 -- src/lang/brazilian_portuguese.txt | 2 -- src/lang/bulgarian.txt | 2 -- src/lang/catalan.txt | 2 -- src/lang/croatian.txt | 2 -- src/lang/czech.txt | 2 -- src/lang/danish.txt | 2 -- src/lang/dutch.txt | 2 -- src/lang/english_AU.txt | 2 -- src/lang/english_US.txt | 2 -- src/lang/esperanto.txt | 2 -- src/lang/estonian.txt | 2 -- src/lang/faroese.txt | 2 -- src/lang/finnish.txt | 2 -- src/lang/french.txt | 2 -- src/lang/gaelic.txt | 2 -- src/lang/galician.txt | 2 -- src/lang/german.txt | 2 -- src/lang/greek.txt | 2 -- src/lang/hebrew.txt | 2 -- src/lang/hungarian.txt | 2 -- src/lang/icelandic.txt | 2 -- src/lang/indonesian.txt | 2 -- src/lang/irish.txt | 2 -- src/lang/italian.txt | 2 -- src/lang/japanese.txt | 2 -- src/lang/korean.txt | 2 -- src/lang/latin.txt | 2 -- src/lang/latvian.txt | 2 -- src/lang/lithuanian.txt | 2 -- src/lang/luxembourgish.txt | 2 -- src/lang/malay.txt | 2 -- src/lang/norwegian_bokmal.txt | 2 -- src/lang/norwegian_nynorsk.txt | 2 -- src/lang/polish.txt | 2 -- src/lang/portuguese.txt | 2 -- src/lang/romanian.txt | 2 -- src/lang/russian.txt | 2 -- src/lang/serbian.txt | 2 -- src/lang/simplified_chinese.txt | 2 -- src/lang/slovak.txt | 2 -- src/lang/slovenian.txt | 2 -- src/lang/spanish.txt | 2 -- src/lang/spanish_MX.txt | 2 -- src/lang/swedish.txt | 2 -- src/lang/tamil.txt | 2 -- src/lang/thai.txt | 2 -- src/lang/traditional_chinese.txt | 2 -- src/lang/turkish.txt | 2 -- src/lang/ukrainian.txt | 2 -- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/marathi.txt | 1 - src/lang/vietnamese.txt | 2 -- src/lang/welsh.txt | 2 -- 57 files changed, 112 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 3bef69ef75..11ce6db1a0 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereis: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Vrag wag om geprosesseer te word: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 5f463a22f5..080659f96d 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2819,8 +2819,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}يحتا ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}البضاعة تنتظر التعامل معها: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING}, {STRING} {STRING} ############ range for produces ends diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 5ec7a52e82..c3fae0e4cd 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3179,8 +3179,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Beharrez ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Prosezatzeko zain dagoen zama: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index a179b30ac2..0e242d9cf9 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3626,8 +3626,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Патр ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Груз, які чакае перапрацоўкі: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 6da939d664..14494fc59c 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requer: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga aguardando processamento -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 2922780761..1f807833d0 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3215,8 +3215,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Нужд ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Товар чакащ до бъде преработен: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 4d45a15519..f1b2a95ad8 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessit ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Càrrega en espera de ser processada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 318f22d632..e9ee53ac0d 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3391,8 +3391,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Teret koji čeka obradu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 2643dd30ae..74b9c2cd07 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3388,8 +3388,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Náklad čekající na zpracování: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 1a6577ed96..b626cad813 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kræver: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Fragt der venter på forarbejdning: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 7fba262cd0..b9d48142af 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Vracht klaar om te worden verwerkt: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6f4e7144f5..58bf09e0f0 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3260,8 +3260,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index f5b199a125..4d291f95fd 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargo waiting to be processed: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 4251151a8a..f5cda2e24e 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2732,8 +2732,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Bezonas: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo atendanta procedon: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 7cd7a571a4..7ea75d5a63 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3351,8 +3351,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vajab: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Käitlust ootav kaup: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index c51b54e476..ee0ec8c7b7 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2924,8 +2924,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tørvar: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Farmur ið bíðar eftir at verða viðgjørdur: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 7c26474842..eb3afee75b 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitse ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Käsittelyä odottava rahti: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/french.txt b/src/lang/french.txt index 96a9724fe7..f2dfeeb314 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessi ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Marchandise en attente d'être utilisée{NBSP}: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 44e96cab07..46992d4c1f 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3522,8 +3522,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carago a' feitheamh air giullachd: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b16ddf43f6..6488a8a217 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3242,8 +3242,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga esperando ser procesada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/german.txt b/src/lang/german.txt index 68a9856a58..a47b43285e 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötig ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Zur Verarbeitung bereitstehende Fracht: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 0d06360366..5d8031b0c0 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3402,8 +3402,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαι ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Εμπόρευματα σε αναμονή: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index ffead604f3..7572d4ac49 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3307,8 +3307,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRI ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}סחורה שמחכה לעיבוד: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{YELLOW}{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :מייצר ############ range for produces ends diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index af5ebb055f..ef1d2520b8 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3357,8 +3357,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhaszn ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Feldolgozásra váró rakomány: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index d989692495..d98bc62ea1 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3084,8 +3084,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Þarf: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Farmur sem bíður verkunar: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 12cc31a6d5..c5cebc41d6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3289,8 +3289,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Membutuh ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo yang sedang menunggu di proses: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 026d6dac9a..dcfe99950d 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Teastaí ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Lastas ag fanacht le próiseáil: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 762c2669f4..069d626956 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3325,8 +3325,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carico in attesa di lavorazione: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 7655620ff6..ed1d013671 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}加工待ちの貨物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING}、{STRING}{STRING} ############ range for produces ends diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 059796013a..e0922d9438 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}생산되기 위해 대기 중인 화물량: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/latin.txt b/src/lang/latin.txt index a143ab02ee..20c16cb45a 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3496,8 +3496,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Onera utenda manentia: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for produces ends diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 9abe75c426..ef9d1d31c6 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3227,8 +3227,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nepiecie ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Krava, kuru ir jāapstrādā: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index a62f42e6df..f7ddcff849 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3512,8 +3512,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Reikalau ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Krovinys, kuris bus perdirbtas: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 49e08b85ae..bf868bb97c 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Luedunge déi nach verschafft musse ginn: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/malay.txt b/src/lang/malay.txt index afc99c19b0..1845edf295 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2943,8 +2943,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerluk ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Kargo yang sedang menunggu untuk diproses: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 8125c58a90..ad464a2f7c 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3297,8 +3297,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Varer som venter på behandling: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index a30f8e028e..4329b823a8 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3210,8 +3210,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treng: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Varer som ventar på å bli behandla: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 8a9d653476..f8912ba5a5 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3675,8 +3675,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Ładunek oczekujący na przetworzenie: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index dbe540afca..46df4eecca 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessá ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga aguardando processamento: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 885c5ddf79..537fddad9e 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3251,8 +3251,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Are nevo ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Incarcatura in asteaptarea procesarii: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/russian.txt b/src/lang/russian.txt index ea32fc4535..c578279b7f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3475,8 +3475,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Треб ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Груз, ожидающий переработки: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 318caa8fd3..88dc8ff4c5 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3488,8 +3488,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potražu ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Tovar koji čeka na obradu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 1dbfef8e2e..146bad1d2f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}等待的货物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 63fdd2d317..74a6e058f2 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3361,8 +3361,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Náklad cakajúci na spracovanie: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 079d4661d6..759206e658 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3446,8 +3446,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuj ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Tovor na čakanju obdelave: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3d963eadc6..1a2fda3186 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Carga esperando a ser procesada: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index cdf03bb125..484eabd66c 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3296,8 +3296,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Cargamento esperando a ser procesado: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4ff38b2067..e2077c5a76 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Last som väntar på att bli behandlad: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 14885c8fe9..a56fc899de 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2913,8 +2913,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}தே ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}பதனிப்பட காத்திருக்கும் சரக்கு: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}தயாரிப்பு: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}தயாரிக்கிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/thai.txt b/src/lang/thai.txt index f3ef3c1e7c..d9c6c5c0b2 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3225,8 +3225,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}มี ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}พัสดุและสิ่งของที่รอการผลิต: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 471c491bb3..649ea702de 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要 ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}囤積的貨物: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING},{STRING}{STRING} ############ range for produces ends diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index b69a01822e..1f27838f51 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3295,8 +3295,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenen ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}İşlenmeyi bekleyen kargo: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index b49a7f7faa..d60e26c738 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3424,8 +3424,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потр ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Вантаж чекає на обробку: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 6fddf2f8ab..b8b3483ce4 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3044,7 +3044,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nedich: ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 3125899304..8698c6108e 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1280,7 +1280,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}ला ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 65167b54a9..d674dec33e 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3293,8 +3293,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu c ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Toa xe đợi để xử lý: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 50d9297ee0..3d8b2845c1 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3294,8 +3294,6 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Angen: { ############ range for requires ends ############ range for produces starts -STR_INDUSTRY_VIEW_WAITING_FOR_PROCESSING :{BLACK}Llwythi yn aros i gael ei brosesu: -STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO_LONG}{STRING}{BLACK} STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING}, {STRING}{STRING} ############ range for produces ends From d5c6760c856b39535419f165ddaa1553d99ac465 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 26 Feb 2017 18:45:43 +0000 Subject: [PATCH 041/158] (svn r27753) -Update from Eints: --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 1 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 1 + src/lang/croatian.txt | 1 + src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 1 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 1 + src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 1 + src/lang/gaelic.txt | 1 + src/lang/galician.txt | 1 + src/lang/german.txt | 1 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 1 + src/lang/japanese.txt | 1 + src/lang/korean.txt | 1 + src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 1 + src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 1 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 1 + src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 1 + src/lang/spanish_MX.txt | 1 + src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 1 + src/lang/unfinished/chuvash.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/ido.txt | 1 + src/lang/unfinished/macedonian.txt | 1 + src/lang/unfinished/maltese.txt | 1 + src/lang/unfinished/marathi.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 63 files changed, 63 insertions(+) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 11ce6db1a0..841392a09c 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereis: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereis: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 080659f96d..b07dfcadec 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2818,6 +2818,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}يحتا STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}يحتاج: {YELLOW}{STRING}{STRING}, {STRING}{STRING} , {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ينتج: {YELLOW}{STRING} {STRING}, {STRING} {STRING} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index c3fae0e4cd..69c25f31a0 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3178,6 +3178,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Beharrez STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Beharrezkoa du: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ekoizpena: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 0e242d9cf9..50229c6ae9 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3625,6 +3625,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Патр STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Патрабуецца: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Вырабляе: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 14494fc59c..9ed5394684 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requer: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requer: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 1f807833d0..da6b52463e 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3214,6 +3214,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Нужд STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Нуждае се от: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Произвежда: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index f1b2a95ad8..7fec96cb1b 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessit STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessita: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e9ee53ac0d..29f2a03402 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3390,6 +3390,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 74b9c2cd07..128259ef0f 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3387,6 +3387,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vyžaduj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index b626cad813..9fe61e00d8 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kræver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kræver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index b9d48142af..7ae5817ddb 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereist: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 58bf09e0f0..c0d79346a5 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3259,6 +3259,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4d291f95fd..010deba2b6 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index f5cda2e24e..0c35b49d01 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2731,6 +2731,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Bezonas: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Bezonas: {YELLOW}{STRING.n}{STRING}, {STRING.n}{STRING}, {STRING.n}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produktas: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 7ea75d5a63..1bb8af5aaf 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3350,6 +3350,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vajab: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vajab: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toodab: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index ee0ec8c7b7..26d162b719 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2923,6 +2923,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tørvar: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tørvar: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiður: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index eb3afee75b..1b683bf745 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tarvitse STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitsee: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index f2dfeeb314..1835145e3b 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nécessi STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessite{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 46992d4c1f..b2f9d7a404 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3521,6 +3521,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Feum air STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 6488a8a217..c6ef4673d7 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3241,6 +3241,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index a47b43285e..a299d8dc64 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Benötig STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 5d8031b0c0..769fd6d0dd 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3401,6 +3401,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Απαι STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαιτεί: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 7572d4ac49..01e0159d5e 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3306,6 +3306,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{YELLOW}{3:STRI STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRING}{4:STRING},{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :דורש ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{YELLOW}{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :מייצר diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index ef1d2520b8..84c6430464 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3356,6 +3356,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index d98bc62ea1..37595b413e 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3083,6 +3083,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Þarf: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Þarf: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Framleiðir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index c5cebc41d6..105fba7803 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3288,6 +3288,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Membutuh STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Membutuhkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index dcfe99950d..4831264802 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Teastaí STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Teastaíonn: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Táirgtear: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 069d626956..a7f78af542 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3324,6 +3324,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Richiede STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index ed1d013671..74d0af78d1 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}必要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要資源: {YELLOW}{STRING}{STRING}、{STRING}{STRING}、{STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING}、{STRING}{STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e0922d9438..b12944096e 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}필요 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요함: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 20c16cb45a..32a3076e25 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3495,6 +3495,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index ef9d1d31c6..8750be0e30 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3226,6 +3226,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nepiecie STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nepieciešams: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f7ddcff849..9450a0f5c3 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3511,6 +3511,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Reikalau STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Reikalauja: {YELLOW}{STRING.ko}{STRING}, {STRING.ko}{STRING}, {STRING.ko}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Gamina: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index bf868bb97c..b1b02d208d 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 1845edf295..37744bd09d 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2942,6 +2942,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Memerluk STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index ad464a2f7c..a889661665 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3296,6 +3296,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Trenger: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 4329b823a8..332d1976d5 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3209,6 +3209,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treng: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treng: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Lagar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index f8912ba5a5..5e64a712fe 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3674,6 +3674,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Wymaga: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 46df4eecca..2519147616 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessá STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessário: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 537fddad9e..e3da858029 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3250,6 +3250,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Are nevo STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Are nevoie de: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index c578279b7f..798a1aa17a 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3474,6 +3474,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 88dc8ff4c5..d112b832af 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3487,6 +3487,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potražu STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potražuje: {YELLOW}{STRING.aku}{STRING}, {STRING.aku}{STRING}, {STRING.aku}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 146bad1d2f..a11ad99b5f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 74a6e058f2..be2c635472 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3360,6 +3360,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potrebuj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 759206e658..60e958fb03 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3445,6 +3445,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Potrebuj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Potrebuje: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Proizvaja: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1a2fda3186..367bd82ae6 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 484eabd66c..48e83b2c97 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index e2077c5a76..4648963188 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kräver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index a56fc899de..9e4d0a03ba 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2912,6 +2912,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}தே STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}தேவைப்படுகிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}தயாரிப்பு: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}தயாரிக்கிறது: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index d9c6c5c0b2..0a7735ec5e 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3224,6 +3224,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}มี STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}มีความต้องการ: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ผลผลิต: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 649ea702de..854d2be9b5 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING},{STRING}{STRING},{STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}產出:{YELLOW}{STRING}{STRING},{STRING}{STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 1f27838f51..900cae4672 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3294,6 +3294,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}İstenen STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenenler: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index d60e26c738..8a905477a6 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3423,6 +3423,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Потр STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Потребує: {YELLOW}{STRING.z}{STRING.z}, {STRING.z}{STRING.z}, {STRING.z}{STRING.z} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Продукція: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index 7cdd9cef41..117e2dbbb8 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -1112,6 +1112,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index b8b3483ce4..df912a4991 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3043,6 +3043,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nedich: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nedich: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Produseart: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 2e8a41161e..b0941fbc07 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -921,6 +921,7 @@ STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Vehili: ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 0e72f4f339..a37291171d 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1412,6 +1412,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Прои ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt index 8796505385..473f4de2ab 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -818,6 +818,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt index 8698c6108e..b2ccf18b67 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1279,6 +1279,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}ला STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}लाग्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}बनव्त: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index df2824e434..334b220338 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2908,6 +2908,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}مواد STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}مواد اولیه: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}محصولات: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}محصولات: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index a2bae741d3..4a4c5b2c59 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2321,6 +2321,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}گزشت ############ range for requires starts ############ range for requires ends + ############ range for produces starts ############ range for produces ends diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index d674dec33e..89989e089f 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3292,6 +3292,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Yêu c STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu cầu: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING}, {STRING}{STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 3d8b2845c1..da03498aac 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3293,6 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Angen: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Angen: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends + ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}Cynhyrchu: {YELLOW}{STRING}{STRING}, {STRING}{STRING} From 02967c3c082afb2f2d411a5a881581a498314b17 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:39:58 +0000 Subject: [PATCH 042/158] (svn r27754) -Codechange: Add GetStringTab(), GetStringIndex() and MakeStringID() to access the structure of StringIDs. --- src/language.h | 2 -- src/saveload/company_sl.cpp | 5 +++-- src/saveload/strings_sl.cpp | 3 ++- src/saveload/town_sl.cpp | 3 ++- src/script/api/script_error.cpp | 5 +++-- src/strings.cpp | 24 ++++++++++++------------ src/strings_func.h | 32 ++++++++++++++++++++++++++++++++ 7 files changed, 54 insertions(+), 20 deletions(-) diff --git a/src/language.h b/src/language.h index fed138e635..ea30697561 100644 --- a/src/language.h +++ b/src/language.h @@ -21,10 +21,8 @@ static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gen static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_SIZE_OFFSET = 0; ///< The offset for the tab size. static const uint TAB_SIZE_BITS = 11; ///< The number of bits used for the tab size. static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; ///< The number of values in a tab. -static const uint TAB_COUNT_OFFSET = TAB_SIZE_BITS; ///< The offset for the tab count. static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 6ac22c2685..ff02167d3e 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -16,6 +16,7 @@ #include "../tunnelbridge_map.h" #include "../tunnelbridge.h" #include "../station_base.h" +#include "../strings_func.h" #include "saveload.h" @@ -501,11 +502,11 @@ static void Check_PLYR() /* We do not load old custom names */ if (IsSavegameVersionBefore(84)) { - if (GB(cprops->name_1, 11, 5) == 15) { + if (GetStringTab(cprops->name_1) == 15) { cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } - if (GB(cprops->president_name_1, 11, 5) == 15) { + if (GetStringTab(cprops->president_name_1) == 15) { cprops->president_name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } } diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index 73f2a1e2e1..c9fb91546a 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -11,6 +11,7 @@ #include "../stdafx.h" #include "../string_func.h" +#include "../strings_func.h" #include "saveload_internal.h" #include "table/strings.h" @@ -60,7 +61,7 @@ char *_old_name_array = NULL; char *CopyFromOldName(StringID id) { /* Is this name an (old) custom name? */ - if (GB(id, 11, 5) != 15) return NULL; + if (GetStringTab(id) != 15) return NULL; if (IsSavegameVersionBefore(37)) { /* Allow for expansion when converted to UTF-8. */ diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index 7db6a7aa6f..8a9f879bba 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -14,6 +14,7 @@ #include "../town.h" #include "../landscape.h" #include "../subsidy_func.h" +#include "../strings_func.h" #include "saveload.h" #include "newgrf_sl.h" @@ -285,7 +286,7 @@ static void Load_TOWN() SlObject(&t->received[i], _town_received_desc); } - if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GB(t->townnametype, 11, 5) != 15) { + if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != 15) { SlErrorCorrupt("Invalid town name generator"); } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index d30ad9c66d..87647cfe82 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -13,6 +13,7 @@ #include "script_error.hpp" #include "../../core/bitmath_func.hpp" #include "../../string_func.h" +#include "../../strings_func.h" #include "../../safeguards.h" @@ -31,8 +32,8 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S /* static */ ScriptErrorType ScriptError::StringToError(StringID internal_string_id) { - uint index = GB(internal_string_id, 11, 5); - switch (GB(internal_string_id, 11, 5)) { + uint index = GetStringIndex(internal_string_id); + switch (GetStringTab(internal_string_id)) { case 26: case 28: case 29: case 30: // NewGRF strings. return ERR_NEWGRF_SUPPLIED_ERROR; diff --git a/src/strings.cpp b/src/strings.cpp index 8cd071d0ba..704ed3c72e 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -194,14 +194,14 @@ static bool _scan_for_gender_data = false; ///< Are we scanning for the gender const char *GetStringPtr(StringID string) { - switch (GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS)) { - case GAME_TEXT_TAB: return GetGameStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)); + switch (GetStringTab(string)) { + case GAME_TEXT_TAB: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ case 26: NOT_REACHED(); - case 28: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)); - case 29: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS) + 0x0800); - case 30: return GetGRFStringPtr(GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS) + 0x1000); - default: return _langpack_offs[_langtab_start[GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS)] + GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS)]; + case 28: return GetGRFStringPtr(GetStringIndex(string)); + case 29: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); + case 30: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -219,8 +219,8 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co { if (string == 0) return GetStringWithArgs(buffr, STR_UNDEFINED, args, last); - uint index = GB(string, TAB_SIZE_OFFSET, TAB_SIZE_BITS); - uint tab = GB(string, TAB_COUNT_OFFSET, TAB_COUNT_BITS); + uint index = GetStringIndex(string); + uint tab = GetStringTab(string); switch (tab) { case 4: @@ -886,7 +886,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = (GAME_TEXT_TAB << TAB_COUNT_OFFSET) + param; + param = MakeStringID(GAME_TEXT_TAB, param); } sub_args.SetParam(i++, param); @@ -901,7 +901,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, (GAME_TEXT_TAB << TAB_COUNT_OFFSET) + stringid, &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(GAME_TEXT_TAB, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1017,7 +1017,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GB(str, TAB_COUNT_OFFSET, TAB_COUNT_BITS) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1036,7 +1036,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GB(str, TAB_COUNT_OFFSET, TAB_COUNT_BITS) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); diff --git a/src/strings_func.h b/src/strings_func.h index 2c7809d020..5d69121e39 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -15,6 +15,38 @@ #include "strings_type.h" #include "string_type.h" #include "gfx_type.h" +#include "core/bitmath_func.hpp" + +/** + * Extract the StringTab from a StringID. + * @param str String identifier + * @return StringTab from \a str + */ +static inline uint GetStringTab(StringID str) +{ + return GB(str, 11, 5); +} + +/** + * Extract the StringIndex from a StringID. + * @param str String identifier + * @return StringIndex from \a str + */ +static inline uint GetStringIndex(StringID str) +{ + return GB(str, 0, 11); +} + +/** + * Create a StringID + * @param tab StringTab + * @param index StringIndex + * @return StringID composed from \a tab and \a index + */ +static inline StringID MakeStringID(uint tab, uint index) +{ + return tab << 11 | index; +} class StringParameters { StringParameters *parent; ///< If not NULL, this instance references data from this parent instance. From b54a79f13ea62360c85a0e419cbcb728f2b1c141 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:40:32 +0000 Subject: [PATCH 043/158] (svn r27755) -Codechange: Move TAB_SIZE to strings_type.h and use it consistently. --- src/language.h | 3 +-- src/newgrf_text.cpp | 7 +++---- src/strings_func.h | 7 ++++--- src/strings_type.h | 5 +++++ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/language.h b/src/language.h index ea30697561..8e09599c81 100644 --- a/src/language.h +++ b/src/language.h @@ -16,13 +16,12 @@ #ifdef WITH_ICU_SORT #include #endif /* WITH_ICU_SORT */ +#include "strings_type.h" static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gender string. static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_SIZE_BITS = 11; ///< The number of bits used for the tab size. -static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; ///< The number of values in a tab. static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index df00ef3419..914d0ee1ae 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -36,7 +36,6 @@ #include "safeguards.h" #define GRFTAB 28 -#define TABSIZE 11 /** * Explains the newgrf shift bit positioning. @@ -159,7 +158,7 @@ struct GRFTextEntry { static uint _num_grf_texts = 0; -static GRFTextEntry _grf_text[(1 << TABSIZE) * 3]; +static GRFTextEntry _grf_text[TAB_SIZE * 3]; static byte _currentLangID = GRFLX_ENGLISH; ///< by default, english is used. /** @@ -696,7 +695,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return (GRFTAB << TABSIZE) + id; + return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs } /** @@ -706,7 +705,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return (GRFTAB << TABSIZE) + id; + return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs } } diff --git a/src/strings_func.h b/src/strings_func.h index 5d69121e39..3e3aa4840f 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -24,7 +24,7 @@ */ static inline uint GetStringTab(StringID str) { - return GB(str, 11, 5); + return GB(str, TAB_SIZE_BITS, 5); } /** @@ -34,7 +34,7 @@ static inline uint GetStringTab(StringID str) */ static inline uint GetStringIndex(StringID str) { - return GB(str, 0, 11); + return GB(str, 0, TAB_SIZE_BITS); } /** @@ -45,7 +45,8 @@ static inline uint GetStringIndex(StringID str) */ static inline StringID MakeStringID(uint tab, uint index) { - return tab << 11 | index; + assert(index < TAB_SIZE); + return tab << TAB_SIZE_BITS | index; } class StringParameters { diff --git a/src/strings_type.h b/src/strings_type.h index c6eebd54d8..780221d0a8 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -26,6 +26,11 @@ enum TextDirection { TD_RTL, ///< Text is written right-to-left by default }; +/** Number of bits for the StringIndex within a StringTab */ +static const uint TAB_SIZE_BITS = 11; +/** Number of strings per StringTab */ +static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; + /** Special string constants */ enum SpecialStrings { From 49b940f69c1314dce0619e68b8c04b85c38ca8a9 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:40:53 +0000 Subject: [PATCH 044/158] (svn r27756) -Codechange: Add StringTab enum --- src/game/game_text.hpp | 3 -- src/language.h | 5 +--- src/newgrf_text.cpp | 6 ++-- src/saveload/company_sl.cpp | 4 +-- src/saveload/strings_sl.cpp | 2 +- src/saveload/town_sl.cpp | 2 +- src/script/api/script_error.cpp | 17 +++++------ src/strings.cpp | 51 +++++++++++++++++---------------- src/strings_func.h | 7 +++-- src/strings_type.h | 18 ++++++++++++ 10 files changed, 65 insertions(+), 50 deletions(-) diff --git a/src/game/game_text.hpp b/src/game/game_text.hpp index 19a31049ec..14da7d9b2e 100644 --- a/src/game/game_text.hpp +++ b/src/game/game_text.hpp @@ -14,9 +14,6 @@ #include "../core/smallvec_type.hpp" -/** The tab we place our strings in. */ -static const uint GAME_TEXT_TAB = 18; - const char *GetGameStringPtr(uint id); void RegisterGameTranslation(class Squirrel *engine); void ReconsiderGameScriptLanguage(); diff --git a/src/language.h b/src/language.h index 8e09599c81..d33ba81892 100644 --- a/src/language.h +++ b/src/language.h @@ -22,9 +22,6 @@ static const uint8 CASE_GENDER_LEN = 16; ///< The (maximum) length of a case/gen static const uint8 MAX_NUM_GENDERS = 8; ///< Maximum number of supported genders. static const uint8 MAX_NUM_CASES = 16; ///< Maximum number of supported cases. -static const uint TAB_COUNT_BITS = 5; ///< The number of bits used for the amount of tabs. -static const uint TAB_COUNT = 1 << TAB_COUNT_BITS; ///< The amount of tabs. - /** Header of a language file. */ struct LanguagePackHeader { static const uint32 IDENT = 0x474E414C; ///< Identifier for OpenTTD language files, big endian for "LANG" @@ -34,7 +31,7 @@ struct LanguagePackHeader { char name[32]; ///< the international name of this language char own_name[32]; ///< the localized name of this language char isocode[16]; ///< the ISO code for the language (not country code) - uint16 offsets[TAB_COUNT]; ///< the offsets + uint16 offsets[TEXT_TAB_END]; ///< the offsets /** Thousand separator used for anything not currencies */ char digit_group_separator[8]; diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 914d0ee1ae..279bd094c2 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -35,8 +35,6 @@ #include "safeguards.h" -#define GRFTAB 28 - /** * Explains the newgrf shift bit positioning. * the grf base will not be used in order to find the string, but rather for @@ -695,7 +693,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs } /** @@ -705,7 +703,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return MakeStringID(GRFTAB, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs } } diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index ff02167d3e..2ad9759901 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -502,11 +502,11 @@ static void Check_PLYR() /* We do not load old custom names */ if (IsSavegameVersionBefore(84)) { - if (GetStringTab(cprops->name_1) == 15) { + if (GetStringTab(cprops->name_1) == TEXT_TAB_OLD_CUSTOM) { cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } - if (GetStringTab(cprops->president_name_1) == 15) { + if (GetStringTab(cprops->president_name_1) == TEXT_TAB_OLD_CUSTOM) { cprops->president_name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE; } } diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp index c9fb91546a..aa2fdd3e60 100644 --- a/src/saveload/strings_sl.cpp +++ b/src/saveload/strings_sl.cpp @@ -61,7 +61,7 @@ char *_old_name_array = NULL; char *CopyFromOldName(StringID id) { /* Is this name an (old) custom name? */ - if (GetStringTab(id) != 15) return NULL; + if (GetStringTab(id) != TEXT_TAB_OLD_CUSTOM) return NULL; if (IsSavegameVersionBefore(37)) { /* Allow for expansion when converted to UTF-8. */ diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index 8a9f879bba..3af5171b87 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -286,7 +286,7 @@ static void Load_TOWN() SlObject(&t->received[i], _town_received_desc); } - if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != 15) { + if (t->townnamegrfid == 0 && !IsInsideMM(t->townnametype, SPECSTR_TOWNNAME_START, SPECSTR_TOWNNAME_LAST + 1) && GetStringTab(t->townnametype) != TEXT_TAB_OLD_CUSTOM) { SlErrorCorrupt("Invalid town name generator"); } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index 87647cfe82..b692c74f44 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -34,15 +34,16 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S { uint index = GetStringIndex(internal_string_id); switch (GetStringTab(internal_string_id)) { - case 26: case 28: case 29: case 30: // NewGRF strings. - return ERR_NEWGRF_SUPPLIED_ERROR; + case TEXT_TAB_NEWGRF1: + case TEXT_TAB_NEWGRF2: + case TEXT_TAB_NEWGRF3: + return ERR_NEWGRF_SUPPLIED_ERROR; // NewGRF strings. - /* DO NOT SWAP case 14 and 4 because that will break StringToError due - * to the index dependency that relies on FALL THROUGHs. */ - case 14: if (index < 0xE4) break; // Player name - case 4: if (index < 0xC0) break; // Town name - case 15: // Custom name - case 31: // Dynamic strings + case TEXT_TAB_SPECIAL: + if (index < 0xE4) break; // Player name + /* FALL THROUGH */ + case TEXT_TAB_TOWN: + if (index < 0xC0) break; // Town name /* These strings are 'random' and have no meaning. * They actually shouldn't even be returned as error messages. */ return ERR_UNKNOWN; diff --git a/src/strings.cpp b/src/strings.cpp index 704ed3c72e..0d115def95 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -187,20 +187,20 @@ struct LanguagePack : public LanguagePackHeader { static char **_langpack_offs; static LanguagePack *_langpack; -static uint _langtab_num[TAB_COUNT]; ///< Offset into langpack offs -static uint _langtab_start[TAB_COUNT]; ///< Offset into langpack offs +static uint _langtab_num[TEXT_TAB_END]; ///< Offset into langpack offs +static uint _langtab_start[TEXT_TAB_END]; ///< Offset into langpack offs static bool _scan_for_gender_data = false; ///< Are we scanning for the gender of the current string? (instead of formatting it) const char *GetStringPtr(StringID string) { switch (GetStringTab(string)) { - case GAME_TEXT_TAB: return GetGameStringPtr(GetStringIndex(string)); + case TEXT_TAB_GAMESCRIPT: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ - case 26: NOT_REACHED(); - case 28: return GetGRFStringPtr(GetStringIndex(string)); - case 29: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); - case 30: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); + case TEXT_TAB_NEWGRF1: return GetGRFStringPtr(GetStringIndex(string)); + case TEXT_TAB_NEWGRF2: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); + case TEXT_TAB_NEWGRF3: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -220,42 +220,45 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co if (string == 0) return GetStringWithArgs(buffr, STR_UNDEFINED, args, last); uint index = GetStringIndex(string); - uint tab = GetStringTab(string); + StringTab tab = GetStringTab(string); switch (tab) { - case 4: + case TEXT_TAB_TOWN: if (index >= 0xC0 && !game_script) { return GetSpecialTownNameString(buffr, index - 0xC0, args->GetInt32(), last); } break; - case 14: + case TEXT_TAB_SPECIAL: if (index >= 0xE4 && !game_script) { return GetSpecialNameString(buffr, index - 0xE4, args, last); } break; - case 15: + case TEXT_TAB_OLD_CUSTOM: /* Old table for custom names. This is no longer used */ if (!game_script) { error("Incorrect conversion of custom name string."); } break; - case GAME_TEXT_TAB: + case TEXT_TAB_GAMESCRIPT: return FormatString(buffr, GetGameStringPtr(index), args, last, case_index, true); - case 26: + case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case 28: + case TEXT_TAB_NEWGRF1: return FormatString(buffr, GetGRFStringPtr(index), args, last, case_index); - case 29: + case TEXT_TAB_NEWGRF2: return FormatString(buffr, GetGRFStringPtr(index + 0x0800), args, last, case_index); - case 30: + case TEXT_TAB_NEWGRF3: return FormatString(buffr, GetGRFStringPtr(index + 0x1000), args, last, case_index); + + default: + break; } if (index >= _langtab_num[tab]) { @@ -886,7 +889,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = MakeStringID(GAME_TEXT_TAB, param); + param = MakeStringID(TEXT_TAB_GAMESCRIPT, param); } sub_args.SetParam(i++, param); @@ -901,7 +904,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, MakeStringID(GAME_TEXT_TAB, stringid), &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1017,7 +1020,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1036,7 +1039,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GetStringTab(str) != GAME_TEXT_TAB) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); @@ -1736,13 +1739,13 @@ bool ReadLanguagePack(const LanguageMetadata *lang) } #if TTD_ENDIAN == TTD_BIG_ENDIAN - for (uint i = 0; i < TAB_COUNT; i++) { + for (uint i = 0; i < TEXT_TAB_END; i++) { lang_pack->offsets[i] = ReadLE16Aligned(&lang_pack->offsets[i]); } #endif /* TTD_ENDIAN == TTD_BIG_ENDIAN */ uint count = 0; - for (uint i = 0; i < TAB_COUNT; i++) { + for (uint i = 0; i < TEXT_TAB_END; i++) { uint16 num = lang_pack->offsets[i]; if (num > TAB_SIZE) { free(lang_pack); @@ -2051,12 +2054,12 @@ class LanguagePackGlyphSearcher : public MissingGlyphSearcher { /* virtual */ const char *NextString() { - if (this->i >= TAB_COUNT) return NULL; + if (this->i >= TEXT_TAB_END) return NULL; const char *ret = _langpack_offs[_langtab_start[this->i] + this->j]; this->j++; - while (this->i < TAB_COUNT && this->j >= _langtab_num[this->i]) { + while (this->i < TEXT_TAB_END && this->j >= _langtab_num[this->i]) { this->i++; this->j = 0; } diff --git a/src/strings_func.h b/src/strings_func.h index 3e3aa4840f..7ad20eb1f6 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -22,9 +22,9 @@ * @param str String identifier * @return StringTab from \a str */ -static inline uint GetStringTab(StringID str) +static inline StringTab GetStringTab(StringID str) { - return GB(str, TAB_SIZE_BITS, 5); + return (StringTab)GB(str, TAB_SIZE_BITS, 5); } /** @@ -43,8 +43,9 @@ static inline uint GetStringIndex(StringID str) * @param index StringIndex * @return StringID composed from \a tab and \a index */ -static inline StringID MakeStringID(uint tab, uint index) +static inline StringID MakeStringID(StringTab tab, uint index) { + assert(tab < TEXT_TAB_END); assert(index < TAB_SIZE); return tab << TAB_SIZE_BITS | index; } diff --git a/src/strings_type.h b/src/strings_type.h index 780221d0a8..098d3f94db 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -26,6 +26,24 @@ enum TextDirection { TD_RTL, ///< Text is written right-to-left by default }; +/** StringTabs to group StringIDs */ +enum StringTab { + /* Tabs 0..1 for regular strings */ + TEXT_TAB_TOWN = 4, + TEXT_TAB_INDUSTRY = 9, + TEXT_TAB_STATION = 12, + TEXT_TAB_SPECIAL = 14, + TEXT_TAB_OLD_CUSTOM = 15, + TEXT_TAB_VEHICLE = 16, + /* Tab 17 for regular strings */ + TEXT_TAB_GAMESCRIPT = 18, + TEXT_TAB_OLD_NEWGRF = 26, + TEXT_TAB_NEWGRF1 = 28, + TEXT_TAB_NEWGRF2 = 29, + TEXT_TAB_NEWGRF3 = 30, + TEXT_TAB_END = 32 +}; + /** Number of bits for the StringIndex within a StringTab */ static const uint TAB_SIZE_BITS = 11; /** Number of strings per StringTab */ From 0c1fcc02ec96c7ca69151b2be3d0b575f1004dd1 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:41:14 +0000 Subject: [PATCH 045/158] (svn r27757) -Change: Make StringID 32bit. --- src/company_base.h | 4 ++-- src/saveload/company_sl.cpp | 2 +- src/saveload/saveload.h | 4 ++-- src/script/api/script_types.hpp | 2 +- src/strings_type.h | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/company_base.h b/src/company_base.h index 0017761216..4d76e6251a 100644 --- a/src/company_base.h +++ b/src/company_base.h @@ -52,10 +52,10 @@ extern CompanyPool _company_pool; /** Statically loadable part of Company pool item */ struct CompanyProperties { uint32 name_2; ///< Parameter of #name_1. - uint16 name_1; ///< Name of the company if the user did not change it. + StringID name_1; ///< Name of the company if the user did not change it. char *name; ///< Name of the company if the user changed it. - uint16 president_name_1; ///< Name of the president if the user did not change it. + StringID president_name_1; ///< Name of the president if the user did not change it. uint32 president_name_2; ///< Parameter of #president_name_1 char *president_name; ///< Name of the president if the user changed it. diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 2ad9759901..733bc0eaf9 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -244,7 +244,7 @@ static const SaveLoad _company_desc[] = { SLE_VAR(CompanyProperties, name_1, SLE_STRINGID), SLE_CONDSTR(CompanyProperties, name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION), - SLE_VAR(CompanyProperties, president_name_1, SLE_UINT16), + SLE_VAR(CompanyProperties, president_name_1, SLE_STRINGID), SLE_VAR(CompanyProperties, president_name_2, SLE_UINT32), SLE_CONDSTR(CompanyProperties, president_name, SLE_STR | SLF_ALLOW_CONTROL, 0, 84, SL_MAX_VERSION), diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 1513355c8d..d492558c5a 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -49,7 +49,7 @@ enum SavegameType { extern FileToSaveLoad _file_to_saveload; void GenerateDefaultSaveName(char *buf, const char *last); -void SetSaveLoadError(uint16 str); +void SetSaveLoadError(StringID str); const char *GetSaveLoadErrorString(); SaveOrLoadResult SaveOrLoad(const char *filename, SaveLoadOperation fop, DetailedFileType dft, Subdirectory sb, bool threaded = true); void WaitTillSaved(); @@ -161,7 +161,7 @@ enum VarTypes { SLE_INT64 = SLE_FILE_I64 | SLE_VAR_I64, SLE_UINT64 = SLE_FILE_U64 | SLE_VAR_U64, SLE_CHAR = SLE_FILE_I8 | SLE_VAR_CHAR, - SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U16, + SLE_STRINGID = SLE_FILE_STRINGID | SLE_VAR_U32, SLE_STRINGBUF = SLE_FILE_STRING | SLE_VAR_STRB, SLE_STRINGBQUOTE = SLE_FILE_STRING | SLE_VAR_STRBQ, SLE_STRING = SLE_FILE_STRING | SLE_VAR_STR, diff --git a/src/script/api/script_types.hpp b/src/script/api/script_types.hpp index d3ac70b4d4..bd9b7c5607 100644 --- a/src/script/api/script_types.hpp +++ b/src/script/api/script_types.hpp @@ -98,7 +98,7 @@ typedef uint8 IndustryType; ///< The ID of an industry-type. typedef OverflowSafeInt64 Money; ///< Money, stored in a 32bit/64bit safe way. For scripts money is always in pounds. typedef uint16 SignID; ///< The ID of a sign. typedef uint16 StationID; ///< The ID of a station. -typedef uint16 StringID; ///< The ID of a string. +typedef uint32 StringID; ///< The ID of a string. typedef uint16 SubsidyID; ///< The ID of a subsidy. typedef uint16 StoryPageID; ///< The ID of a story page. typedef uint16 StoryPageElementID; ///< The ID of a story page element. diff --git a/src/strings_type.h b/src/strings_type.h index 098d3f94db..f8144f79f2 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -15,8 +15,8 @@ /** * Numeric value that represents a string, independent of the selected language. */ -typedef uint16 StringID; -static const StringID INVALID_STRING_ID = 0xFFFF; ///< Constant representing an invalid string +typedef uint32 StringID; +static const StringID INVALID_STRING_ID = 0xFFFF; ///< Constant representing an invalid string (16bit in case it is used in savegames) static const int MAX_CHAR_LENGTH = 4; ///< Max. length of UTF-8 encoded unicode character static const uint MAX_LANG = 0x7F; ///< Maximum number of languages supported by the game, and the NewGRF specs From ce32ca4dc67aebb965cfadc25198ae8cd789b886 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 19:41:30 +0000 Subject: [PATCH 046/158] (svn r27758) -Change: Increase the maximum number of GameScript texts to 64k, and NewGRF texts to 512k. --- src/newgrf_text.cpp | 6 +++--- src/script/api/script_error.cpp | 5 ++--- src/strings.cpp | 31 +++++++++++-------------------- src/strings_func.h | 19 ++++++++++++++----- src/strings_type.h | 14 +++++++++----- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index 279bd094c2..e4b3c382b3 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -156,7 +156,7 @@ struct GRFTextEntry { static uint _num_grf_texts = 0; -static GRFTextEntry _grf_text[TAB_SIZE * 3]; +static GRFTextEntry _grf_text[TAB_SIZE_NEWGRF]; static byte _currentLangID = GRFLX_ENGLISH; ///< by default, english is used. /** @@ -693,7 +693,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); - return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF_START, id); } /** @@ -703,7 +703,7 @@ StringID GetGRFStringID(uint32 grfid, uint16 stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { - return MakeStringID(TEXT_TAB_NEWGRF1, 0) + id; // Id reaches across multiple tabs + return MakeStringID(TEXT_TAB_NEWGRF_START, id); } } diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp index b692c74f44..24c4919952 100644 --- a/src/script/api/script_error.cpp +++ b/src/script/api/script_error.cpp @@ -34,9 +34,8 @@ ScriptError::ScriptErrorMapString ScriptError::error_map_string = ScriptError::S { uint index = GetStringIndex(internal_string_id); switch (GetStringTab(internal_string_id)) { - case TEXT_TAB_NEWGRF1: - case TEXT_TAB_NEWGRF2: - case TEXT_TAB_NEWGRF3: + case TEXT_TAB_NEWGRF_START: + case TEXT_TAB_GAMESCRIPT_START: return ERR_NEWGRF_SUPPLIED_ERROR; // NewGRF strings. case TEXT_TAB_SPECIAL: diff --git a/src/strings.cpp b/src/strings.cpp index 0d115def95..1c539d9343 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -195,12 +195,10 @@ static bool _scan_for_gender_data = false; ///< Are we scanning for the gender const char *GetStringPtr(StringID string) { switch (GetStringTab(string)) { - case TEXT_TAB_GAMESCRIPT: return GetGameStringPtr(GetStringIndex(string)); + case TEXT_TAB_GAMESCRIPT_START: return GetGameStringPtr(GetStringIndex(string)); /* 0xD0xx and 0xD4xx IDs have been converted earlier. */ case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case TEXT_TAB_NEWGRF1: return GetGRFStringPtr(GetStringIndex(string)); - case TEXT_TAB_NEWGRF2: return GetGRFStringPtr(GetStringIndex(string) + 0x0800); - case TEXT_TAB_NEWGRF3: return GetGRFStringPtr(GetStringIndex(string) + 0x1000); + case TEXT_TAB_NEWGRF_START: return GetGRFStringPtr(GetStringIndex(string)); default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)]; } } @@ -242,21 +240,15 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co } break; - case TEXT_TAB_GAMESCRIPT: + case TEXT_TAB_GAMESCRIPT_START: return FormatString(buffr, GetGameStringPtr(index), args, last, case_index, true); case TEXT_TAB_OLD_NEWGRF: NOT_REACHED(); - case TEXT_TAB_NEWGRF1: + case TEXT_TAB_NEWGRF_START: return FormatString(buffr, GetGRFStringPtr(index), args, last, case_index); - case TEXT_TAB_NEWGRF2: - return FormatString(buffr, GetGRFStringPtr(index + 0x0800), args, last, case_index); - - case TEXT_TAB_NEWGRF3: - return FormatString(buffr, GetGRFStringPtr(index + 0x1000), args, last, case_index); - default: break; } @@ -825,17 +817,16 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg sub_args.ClearTypeInformation(); memset(sub_args_need_free, 0, sizeof(sub_args_need_free)); - uint16 stringid; const char *s = str; char *p; - stringid = strtol(str, &p, 16); + uint32 stringid = strtoul(str, &p, 16); if (*p != ':' && *p != '\0') { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid SCC_ENCODED)", last); break; } - if (stringid >= TAB_SIZE) { + if (stringid >= TAB_SIZE_GAMESCRIPT) { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid StringID)", last); @@ -883,13 +874,13 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg param = strtoull(s, &p, 16); if (lookup) { - if (param >= TAB_SIZE) { + if (param >= TAB_SIZE_GAMESCRIPT) { while (*p != '\0') p++; str = p; buff = strecat(buff, "(invalid sub-StringID)", last); break; } - param = MakeStringID(TEXT_TAB_GAMESCRIPT, param); + param = MakeStringID(TEXT_TAB_GAMESCRIPT_START, param); } sub_args.SetParam(i++, param); @@ -904,7 +895,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg /* If we didn't error out, we can actually print the string. */ if (*str != '\0') { str = p; - buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT, stringid), &sub_args, last, true); + buff = GetStringWithArgs(buff, MakeStringID(TEXT_TAB_GAMESCRIPT_START, stringid), &sub_args, last, true); } for (int i = 0; i < 20; i++) { @@ -1020,7 +1011,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING: {// {STRING} StringID str = args->GetInt32(SCC_STRING); - if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break; /* WARNING. It's prohibited for the included string to consume any arguments. * For included strings that consume argument, you should use STRING1, STRING2 etc. * To debug stuff you can set argv to NULL and it will tell you */ @@ -1039,7 +1030,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg case SCC_STRING7: { // {STRING1..7} /* Strings that consume arguments */ StringID str = args->GetInt32(b); - if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT) break; + if (game_script && GetStringTab(str) != TEXT_TAB_GAMESCRIPT_START) break; uint size = b - SCC_STRING1 + 1; if (game_script && size > args->GetDataLeft()) { buff = strecat(buff, "(too many parameters)", last); diff --git a/src/strings_func.h b/src/strings_func.h index 7ad20eb1f6..0da711bc4d 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -24,7 +24,10 @@ */ static inline StringTab GetStringTab(StringID str) { - return (StringTab)GB(str, TAB_SIZE_BITS, 5); + StringTab result = (StringTab)(str >> TAB_SIZE_BITS); + if (result >= TEXT_TAB_NEWGRF_START) return TEXT_TAB_NEWGRF_START; + if (result >= TEXT_TAB_GAMESCRIPT_START) return TEXT_TAB_GAMESCRIPT_START; + return result; } /** @@ -34,7 +37,7 @@ static inline StringTab GetStringTab(StringID str) */ static inline uint GetStringIndex(StringID str) { - return GB(str, 0, TAB_SIZE_BITS); + return str - (GetStringTab(str) << TAB_SIZE_BITS); } /** @@ -45,9 +48,15 @@ static inline uint GetStringIndex(StringID str) */ static inline StringID MakeStringID(StringTab tab, uint index) { - assert(tab < TEXT_TAB_END); - assert(index < TAB_SIZE); - return tab << TAB_SIZE_BITS | index; + if (tab == TEXT_TAB_NEWGRF_START) { + assert(index < TAB_SIZE_NEWGRF); + } else if (tab == TEXT_TAB_GAMESCRIPT_START) { + assert(index < TAB_SIZE_GAMESCRIPT); + } else { + assert(tab < TEXT_TAB_END); + assert(index < TAB_SIZE); + } + return (tab << TAB_SIZE_BITS) + index; } class StringParameters { diff --git a/src/strings_type.h b/src/strings_type.h index f8144f79f2..aa3ed788c3 100644 --- a/src/strings_type.h +++ b/src/strings_type.h @@ -36,12 +36,10 @@ enum StringTab { TEXT_TAB_OLD_CUSTOM = 15, TEXT_TAB_VEHICLE = 16, /* Tab 17 for regular strings */ - TEXT_TAB_GAMESCRIPT = 18, TEXT_TAB_OLD_NEWGRF = 26, - TEXT_TAB_NEWGRF1 = 28, - TEXT_TAB_NEWGRF2 = 29, - TEXT_TAB_NEWGRF3 = 30, - TEXT_TAB_END = 32 + TEXT_TAB_END = 32, ///< End of language files. + TEXT_TAB_GAMESCRIPT_START = 32, ///< Start of GameScript supplied strings. + TEXT_TAB_NEWGRF_START = 64, ///< Start of NewGRF supplied strings. }; /** Number of bits for the StringIndex within a StringTab */ @@ -49,6 +47,12 @@ static const uint TAB_SIZE_BITS = 11; /** Number of strings per StringTab */ static const uint TAB_SIZE = 1 << TAB_SIZE_BITS; +/** Number of strings for GameScripts */ +static const uint TAB_SIZE_GAMESCRIPT = TAB_SIZE * 32; + +/** Number of strings for NewGRFs */ +static const uint TAB_SIZE_NEWGRF = TAB_SIZE * 256; + /** Special string constants */ enum SpecialStrings { From 40eee1e3a2c2fc315cc7048957c07c13c42e98a4 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 20:10:41 +0000 Subject: [PATCH 047/158] (svn r27759) -Fix: strgen compilation --- src/strgen/strgen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 85b83f2b57..fa29424658 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -525,7 +525,7 @@ int CDECL main(int argc, char *argv[]) mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); /* parse master file */ - StringData data(TAB_COUNT); + StringData data(TEXT_TAB_END); FileStringReader master_reader(data, pathbuf, true, false); master_reader.ParseFile(); if (_errors != 0) return 1; @@ -542,7 +542,7 @@ int CDECL main(int argc, char *argv[]) mkpath(pathbuf, lastof(pathbuf), src_dir, "english.txt"); - StringData data(TAB_COUNT); + StringData data(TEXT_TAB_END); /* parse master file and check if target file is correct */ FileStringReader master_reader(data, pathbuf, true, false); master_reader.ParseFile(); From 60f7168c227d3939b5a040d4b6a6ba8390887a2a Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 26 Feb 2017 20:31:02 +0000 Subject: [PATCH 048/158] (svn r27760) -Change: Enable realisitic train and road vehicle acceleration by default. --- src/saveload/afterload.cpp | 6 ++++-- src/table/settings.ini | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index de3f7ccff9..8b59671757 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -718,12 +718,14 @@ bool AfterLoadGame() if (IsSavegameVersionBefore(95)) _settings_game.vehicle.dynamic_engines = 0; if (IsSavegameVersionBefore(96)) _settings_game.economy.station_noise_level = false; if (IsSavegameVersionBefore(133)) { - _settings_game.vehicle.roadveh_acceleration_model = 0; _settings_game.vehicle.train_slope_steepness = 3; } if (IsSavegameVersionBefore(134)) _settings_game.economy.feeder_payment_share = 75; if (IsSavegameVersionBefore(138)) _settings_game.vehicle.plane_crashes = 2; - if (IsSavegameVersionBefore(139)) _settings_game.vehicle.roadveh_slope_steepness = 7; + if (IsSavegameVersionBefore(139)) { + _settings_game.vehicle.roadveh_acceleration_model = 0; + _settings_game.vehicle.roadveh_slope_steepness = 7; + } if (IsSavegameVersionBefore(143)) _settings_game.economy.allow_town_level_crossings = true; if (IsSavegameVersionBefore(159)) { _settings_game.vehicle.max_train_length = 50; diff --git a/src/table/settings.ini b/src/table/settings.ini index f314f21e92..8e2aecac15 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -760,7 +760,7 @@ base = GameSettings var = vehicle.train_acceleration_model type = SLE_UINT8 guiflags = SGF_MULTISTRING -def = 0 +def = 1 min = 0 max = 1 interval = 1 @@ -775,7 +775,7 @@ var = vehicle.roadveh_acceleration_model type = SLE_UINT8 from = 139 guiflags = SGF_MULTISTRING -def = 0 +def = 1 min = 0 max = 1 interval = 1 From 9071d5f07fb948a08bf784425c45b9934866b321 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 27 Feb 2017 18:45:37 +0000 Subject: [PATCH 049/158] (svn r27761) -Update from Eints: croatian: 3 changes by VoyagerOne italian: 5 changes by lorenzodv english (us): 4 changes by Supercheese latin: 4 changes by Supercheese --- src/lang/croatian.txt | 3 +++ src/lang/english_US.txt | 4 ++++ src/lang/italian.txt | 5 +++++ src/lang/latin.txt | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 29f2a03402..47ddd6a218 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3390,6 +3390,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}čeka ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 010deba2b6..eecfb32f73 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1761,6 +1761,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Check fo STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Display AI/Game script settings STR_INTRO_TOOLTIP_QUIT :{BLACK}Quit 'OpenTTD' +STR_INTRO_BASESET :{BLACK}The currently selected base graphics set is missing {NUM} sprite{P "" s}. Please check for updates for the baseset. STR_INTRO_TRANSLATION :{BLACK}This translation misses {NUM} string{P "" s}. Please help make OpenTTD better by signing up as translator. See readme.txt for details. # Quit window @@ -3293,6 +3294,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index a7f78af542..92e51b815d 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3324,6 +3324,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Richiede STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Richiede +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}in attesa +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 32a3076e25..380ac68537 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1949,6 +1949,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Inspicer STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Monstrare optiones IA/Ludi scriptorum STR_INTRO_TOOLTIP_QUIT :{BLACK}Exire OpenTTD +STR_INTRO_BASESET :{BLACK}Hoc fundamento graphico desunt spiritus {NUM}. Quaere novam editionem huius fundamenti. STR_INTRO_TRANSLATION :{BLACK}In hac interpretatione, {NUM} series desunt. Quaesimus, iuva OpenTTD meliorari et dic te velle interpretem esse. Vide readme.txt in quo plura sunt. # Quit window @@ -3495,6 +3496,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}manet ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} From a192fa74a73efb6e26a0fb099f74a3d40571950b Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 28 Feb 2017 18:45:37 +0000 Subject: [PATCH 050/158] (svn r27762) -Update from Eints: catalan: 5 changes by juanjo greek: 29 changes by kyrm croatian: 2 changes by UnderwaterHesus japanese: 4 changes by nex259 --- src/lang/catalan.txt | 5 +++++ src/lang/croatian.txt | 2 ++ src/lang/greek.txt | 52 ++++++++++++++++++++++++------------------- src/lang/japanese.txt | 4 ++++ 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 7fec96cb1b..3f6b25da20 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3295,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessit STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessita: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperant +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 47ddd6a218..2dbc967631 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3393,6 +3393,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: { STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}čeka +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 769fd6d0dd..0e0cb61287 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1870,6 +1870,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Έλεγ STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Εμφάνιση ρυθμίσεων για AI και της δέσμης ενεργειών του παιχνιδιού STR_INTRO_TOOLTIP_QUIT :{BLACK}Έξοδος από το «OpenTTD» +STR_INTRO_BASESET :{BLACK}Λείπουν {NUM} sprite{P "" s} από το επιλεγμένο βασικό σετ γραφικών. Παρακαλούμε ελέγξτε για ενημερώσεις του βασικού σετ. STR_INTRO_TRANSLATION :{BLACK}Λείπουν {NUM} παράμετροι από τη μετάφραση. Παρακαλούμε βοηθήστε να κάνουμε το OpenTTD καλύτερο εγγραφόμενοι ως μεταφραστές. Δείτε το αρχείο readme.txt για λεπτομέρειες. # Quit window @@ -2698,6 +2699,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Όνομ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Αποδεκτά εμπορεύματα: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Τύπος σιδηροτροχιάς: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Όριο ταχύτητας σιδηροτροχιάς: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Όριο ταχύτητας δρόμου: {LTBLUE}{VELOCITY} @@ -2710,29 +2712,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Χωράφια STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Χιονισμένο έδαφος STR_LAI_CLEAR_DESCRIPTION_DESERT :Έρημος -STR_LAI_RAIL_DESCRIPTION_TRACK :Σιδηρόδρομος σιδηροτροχιά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με συνδυαστικά σήματα -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και ειδοποίησης -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα τμήματος και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και εξόδου -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα ειδοποίησης και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα εξόδου και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά σήματα μονόδρομους διαδρομής και συνδυαστικά -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Σιδηρόδρομος σιδηροτροχιά με σήματα διαδρομής και μονόδρομους διαδρομής -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Σιδηρόδρομος αμαξοστάσιο τρένων +STR_LAI_RAIL_DESCRIPTION_TRACK :Σιδηροδρομική τροχιά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Σιδηροδρομική τροχιά με συνδυαστικά σήματα +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και ειδοποίησης +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα τμήματος και μονόδρομους διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και εξόδου +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα ειδοποίησης και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα εξόδου και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Σιδηρόδρομος με σήματα διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα μονόδρομης διαδρομής και συνδυαστικά +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Σιδηροδρομική τροχιά με σήματα διαδρομής και μονόδρομης διαδρομής +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Αμαξοστάσιο σιδηροδρομικών τρένων STR_LAI_ROAD_DESCRIPTION_ROAD :Δρόμος STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Δρόμος με φωτισμό @@ -3401,6 +3403,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Απαι STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαιτεί: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Απαιτεί +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}σε αναμονή ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING} @@ -3672,6 +3677,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Πατή STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Εναλλαγή μεταξύ των παραθύρων αντικατάστασης μηχανών και βαγονιών STR_REPLACE_ENGINES :Μηχανές STR_REPLACE_WAGONS :Βαγόνια +STR_REPLACE_ALL_RAILTYPE :Όλα τα οχήματα σιδηρόδρομου STR_REPLACE_HELP_RAILTYPE :{BLACK}Επιλέξτε τον τύπο σιδηροδρόμου για τον οποίο θέλετε να γίνει η αντικατάσταση των μηχανών STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Εμφανίζει ποια μηχανή αυτή στα αριστερά θα αντικατασταθεί, εάν υπάρχει diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 74d0af78d1..8c4cc2599e 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}空港 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}受入れ貨物: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE : {BLACK}線路の種類: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}線路の制限速度: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}道路の最高速度: {LTBLUE}{VELOCITY} @@ -3292,6 +3293,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}必要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要資源: {YELLOW}{STRING}{STRING}、{STRING}{STRING}、{STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES : {BLACK}必要物資 +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT : {YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING} @@ -3557,6 +3560,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}クリ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}置換対象を機関車/貨車に切り替えます STR_REPLACE_ENGINES :機関車 STR_REPLACE_WAGONS :貨車 +STR_REPLACE_ALL_RAILTYPE :全ての鉄道車両 STR_REPLACE_HELP_RAILTYPE :{BLACK}置換対象となる線路種類を切り替えます STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}左で選択された機関車の置換対象を(あれば)表示します From a8f9520bbdcd7cfd0fcd9f77d6edf11801364324 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 1 Mar 2017 18:45:37 +0000 Subject: [PATCH 051/158] (svn r27763) -Update from Eints: korean: 6 changes by telk5093 frisian: 2 changes by Fopper russian: 5 changes by Lone_Wolf --- src/lang/korean.txt | 7 ++++++- src/lang/russian.txt | 5 +++++ src/lang/unfinished/frisian.txt | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index b12944096e..31b3a62012 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2937,7 +2937,7 @@ STR_NEWGRF_BROKEN :{WHITE}'{0:STRI STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}차고지 안에 있지 않은 '{1:ENGINE}'에 대한 동력 차량 상태가 바뀌었습니다. STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:ENGINE}'{G 1 "이" "가"} 차고지 안에 있지 않으면 차량 길이가 바뀝니다. STR_NEWGRF_BROKEN_CAPACITY :{WHITE}차량이 기지 안에 있지 않거나 개조가 불가능한 상태에서 '{1:ENGINE}'의 수송량이 변경되었습니다. -STR_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:COMPANY}'에 속한 열차 '{0:VEHICLE}'의 길이가 잘못된 값을 가지고 있습니다. NewGRF에 의한 문제로 추축됩니다. 게임이 비동기화 또는 충돌을 일으킬 수 있습니다. +STR_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:COMPANY}'에 속한 열차 '{0:VEHICLE}'의 길이가 잘못된 값을 가지고 있습니다. NewGRF에 의한 문제로 보입니다. 게임이 비동기화 또는 충돌을 일으킬 수 있습니다. STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' (이)가 잘못된 정보를 제공하고 있습니다. STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}{1:ENGINE}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다. @@ -3295,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}필요 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요함: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물 +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}대기중 +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 798a1aa17a..66c9488411 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3474,6 +3474,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}готово к отправке +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index df912a4991..ceb0e77490 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3388,6 +3388,7 @@ STR_ORDER_GO_NON_STOP_VIA :Gean non-stop f STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Feroarje it stop gedrach fan selektearre opdracht STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Alle fracht folslein lade +STR_ORDER_DROP_LOAD_IF_POSSIBLE :Lade as beskikber STR_ORDER_DROP_FULL_LOAD_ANY :Samar in fracht folslein lade STR_ORDER_DROP_NO_LOADING :Net laden @@ -3597,6 +3598,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN # Textfile window +STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} feroarings fan {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} lisinsje fan {STRING} STR_TEXTFILE_WRAP_TEXT :{WHITE}Omwikkelje tekst STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Feroarings From d22b80779bae23deca86a4c3c988e91b8e7843f5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 2 Mar 2017 18:45:38 +0000 Subject: [PATCH 052/158] (svn r27764) -Update from Eints: russian: 3 changes by Lone_Wolf french: 6 changes by glx --- src/lang/french.txt | 6 ++++++ src/lang/russian.txt | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 1835145e3b..3363437a59 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1762,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Vérifie STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Afficher la configuration des scripts STR_INTRO_TOOLTIP_QUIT :{BLACK}Quitter OpenTTD +STR_INTRO_BASESET :{BLACK}{NUM} sprite{P "" s} manque{P "" "nt"} dans les graphiques de base actuellement sélectionnés. Veuillez vérifier les mises à jours pour les graphiques de base. STR_INTRO_TRANSLATION :{BLACK}Il manque {NUM} chaîne{P "" s} dans cette traduction. Merci d'aider à améliorer OpenTTD en vous inscrivant comme traducteur. Voir readme.txt pour les détails. # Quit window @@ -3294,6 +3295,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nécessi STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessite{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Nécessite +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}en attente +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 66c9488411..46134e68e9 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3299,7 +3299,7 @@ STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPAN STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показать рейтинг станции -STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Месячный объём поставок и местный рейтинг: +STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Месячный объём перевозок и местный рейтинг: STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) STR_STATION_VIEW_GROUP :{BLACK}Группировать @@ -3316,7 +3316,7 @@ STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHO STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} с этой станции STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} через эту станцию STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} на эту станцию -STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} без пересадок +STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} без остановок STR_STATION_VIEW_GROUP_S_V_D :Откуда - Через - Куда STR_STATION_VIEW_GROUP_S_D_V :Откуда - Куда - Через @@ -3462,7 +3462,7 @@ STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Спис # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} -STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Произведено за прошлый месяц: +STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Произведено в прошлом месяце: STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% перевезено) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Показать предприятие в основном окне. Ctrl+щелчок - показать в дополнительном окне. STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Производительность: {YELLOW}{COMMA}% From 3342c5a367d0a6716d157dad6b5e1fc4ba2aa314 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 4 Mar 2017 18:45:36 +0000 Subject: [PATCH 053/158] (svn r27765) -Update from Eints: russian: 4 changes by Lone_Wolf --- src/lang/russian.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 46134e68e9..dbe7f3d110 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3162,8 +3162,8 @@ STR_TOWN_POPULATION :{BLACK}Насе STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Мегаполис) STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Население: {ORANGE}{COMMA}{BLACK} Зданий: {ORANGE}{COMMA} -STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} -STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты за прошлый месяц: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Пассажиров в прошлом месяце: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} +STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Почты в прошлом месяце: {ORANGE}{COMMA}{BLACK}; макс.: {ORANGE}{COMMA} STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Груз, необходимый для роста города: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} требу{G 0 е е е ю}тся STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} требу{G 0 е е е ю}тся зимой @@ -3474,9 +3474,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Треб STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Требуется: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends -STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} -STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}готово к отправке +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ожидает STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} From 79439925c821735e9ac4b6330729de039cc85e8c Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 4 Mar 2017 20:09:42 +0000 Subject: [PATCH 054/158] Clear discardable chunk IDs in SlXvResetState. --- src/saveload/extended_ver_sl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index 7b083a7f21..7a3e0ced88 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -107,6 +107,7 @@ void SlXvResetState() { _sl_is_ext_version = false; _sl_is_faked_ext = false; + _sl_xv_discardable_chunk_ids.clear(); memset(_sl_xv_feature_versions, 0, sizeof(_sl_xv_feature_versions)); } From 4180276c81e6e694a77a5014120368c7300cd86d Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:42:41 +0000 Subject: [PATCH 055/158] (svn r27766) -Fix: Obiwan opposed translations for text id D3FF and DCFF in Action 13. --- src/newgrf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 14593b7e30..e8659e4648 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -7244,7 +7244,7 @@ static void TranslateGRFStrings(ByteReader *buf) byte num_strings = buf->ReadByte(); uint16 first_id = buf->ReadWord(); - if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD3FF) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDCFF))) { + if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDD00))) { grfmsg(7, "TranslateGRFStrings: Attempting to set out-of-range string IDs in action 13 (first: 0x%4X, number: 0x%2X)", first_id, num_strings); return; } From f469b0be3e2c9189265d8134f01bc877567bf5e3 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:43:21 +0000 Subject: [PATCH 056/158] (svn r27767) -Codechange: Industries and houses should just use the default-case in Action 4. --- src/newgrf.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e8659e4648..03390c251b 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5474,12 +5474,6 @@ static void FeatureNewName(ByteReader *buf) } break; - case GSF_INDUSTRIES: { - AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); - break; - } - - case GSF_HOUSES: default: switch (GB(id, 8, 8)) { case 0xC4: // Station class name From 724f1f3b694da4ca91facca0b1b66c183d89ab97 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:44:15 +0000 Subject: [PATCH 057/158] (svn r27768) -Codechange: Use if and IsInsideMM instead of switch-case sequences to test for consecutive values. --- src/newgrf.cpp | 51 +++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 03390c251b..7d3944f4dd 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -550,24 +550,28 @@ static StringID TTDPStringIDToOTTDStringIDMapping(StringID str) */ StringID MapGRFStringID(uint32 grfid, StringID str) { - /* 0xD0 and 0xDC stand for all the TextIDs in the range - * of 0xD000 (misc graphics texts) and 0xDC00 (misc persistent texts). - * These strings are unique to each grf file, and thus require to be used with the - * grfid in which they are declared */ - switch (GB(str, 8, 8)) { - case 0xD0: case 0xD1: case 0xD2: case 0xD3: - case 0xDC: - return GetGRFStringID(grfid, str); - - case 0xD4: case 0xD5: case 0xD6: case 0xD7: - /* Strings embedded via 0x81 have 0x400 added to them (no real - * explanation why...) */ - return GetGRFStringID(grfid, str - 0x400); - - default: break; + if (IsInsideMM(str, 0xDC00, 0xDD00)) { + /* General text provided by NewGRF. + * In the specs this is called the 0xDCxx range (misc presistent texts). + * Note: We are not involved in the "persistent" business, since we do not store + * any NewGRF strings in savegames. */ + return GetGRFStringID(grfid, str); + } else if (IsInsideMM(str, 0xD000, 0xD800)) { + /* Callback text provided by NewGRF. + * In the specs this is called the 0xD0xx range (misc graphics texts). + * These texts can be returned by various callbacks. + * + * Due to how TTDP implements the GRF-local- to global-textid translation + * texts included via 0x80 or 0x81 control codes have to add 0x400 to the textid. + * We do not care about that difference and just mask out the 0x400 bit. + */ + str &= ~0x400; + return GetGRFStringID(grfid, str); + } else { + /* The NewGRF wants to include/reference an original TTD string. + * Try our best to find an equivalent one. */ + return TTDPStringIDToOTTDStringIDMapping(str); } - - return TTDPStringIDToOTTDStringIDMapping(str); } static std::map _grf_id_overrides; @@ -5475,6 +5479,11 @@ static void FeatureNewName(ByteReader *buf) break; default: + if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xDC00, 0xDD00)) { + AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); + break; + } + switch (GB(id, 8, 8)) { case 0xC4: // Station class name if (_cur.grffile->stations == NULL || _cur.grffile->stations[GB(id, 0, 8)] == NULL) { @@ -5509,14 +5518,6 @@ static void FeatureNewName(ByteReader *buf) } break; - case 0xD0: - case 0xD1: - case 0xD2: - case 0xD3: - case 0xDC: - AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); - break; - default: grfmsg(7, "FeatureNewName: Unsupported ID (0x%04X)", id); break; From bc2382af06ea30e96d15c2104dce43415871f456 Mon Sep 17 00:00:00 2001 From: frosch Date: Sun, 5 Mar 2017 14:45:13 +0000 Subject: [PATCH 058/158] (svn r27769) -Change: [NewGRF] Extend the DCxx range to D800-DFFF. --- src/newgrf.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 7d3944f4dd..9c7188ec70 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -550,9 +550,10 @@ static StringID TTDPStringIDToOTTDStringIDMapping(StringID str) */ StringID MapGRFStringID(uint32 grfid, StringID str) { - if (IsInsideMM(str, 0xDC00, 0xDD00)) { + if (IsInsideMM(str, 0xD800, 0xE000)) { /* General text provided by NewGRF. - * In the specs this is called the 0xDCxx range (misc presistent texts). + * In the specs this is called the 0xDCxx range (misc presistent texts), + * but we meanwhile extended the range to 0xD800-0xDFFF. * Note: We are not involved in the "persistent" business, since we do not store * any NewGRF strings in savegames. */ return GetGRFStringID(grfid, str); @@ -5479,7 +5480,7 @@ static void FeatureNewName(ByteReader *buf) break; default: - if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xDC00, 0xDD00)) { + if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xD800, 0xE000)) { AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, true, name, STR_UNDEFINED); break; } @@ -7239,7 +7240,7 @@ static void TranslateGRFStrings(ByteReader *buf) byte num_strings = buf->ReadByte(); uint16 first_id = buf->ReadWord(); - if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xDC00 && first_id + num_strings <= 0xDD00))) { + if (!((first_id >= 0xD000 && first_id + num_strings <= 0xD400) || (first_id >= 0xD800 && first_id + num_strings <= 0xE000))) { grfmsg(7, "TranslateGRFStrings: Attempting to set out-of-range string IDs in action 13 (first: 0x%4X, number: 0x%2X)", first_id, num_strings); return; } From 0d5ee772fca5fc24da19c399e27265913b94f739 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sun, 5 Mar 2017 17:06:14 +0000 Subject: [PATCH 059/158] (svn r27770) -Fix [FS#6540]: Initialize variables in station_sl.cpp (JGR) --- src/saveload/station_sl.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 3db5e1f5f8..391ba30a8e 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -325,6 +325,10 @@ static void SwapPackets(GoodsEntry *ge) static void Load_STNS() { + _cargo_source_xy = 0; + _cargo_days = 0; + _cargo_feeder_share = 0; + int index; while ((index = SlIterateArray()) != -1) { Station *st = new (index) Station(); @@ -514,8 +518,9 @@ static void Save_STNN() static void Load_STNN() { - int index; + _num_flows = 0; + int index; while ((index = SlIterateArray()) != -1) { bool waypoint = (SlReadByte() & FACIL_WAYPOINT) != 0; From 4d12cce1c42cd4fd17aef725e90da50d80dbcd43 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 7 Mar 2017 18:45:38 +0000 Subject: [PATCH 060/158] (svn r27771) -Update from Eints: malay: 27 changes by stress_043 --- src/lang/malay.txt | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 37744bd09d..6c123b820c 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1073,6 +1073,7 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Tetapan permain STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Tetapan syarikat (disimpan di simpanan; berkesan hanya permainan baru) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Tetapan syarikat (disimpan di penyimpanan; hanya berkesan kepada syarikat semasa) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Kategori: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Hadkan senarai di bawah menggunakan penapis yang telah ditetapkan STR_CONFIG_SETTING_RESTRICT_BASIC :Asas (menunjukkan tetapan yang penting sahaja) STR_CONFIG_SETTING_RESTRICT_ADVANCED :Terperinci (tunjukkan kebanyakan tetapan) @@ -1080,6 +1081,7 @@ STR_CONFIG_SETTING_RESTRICT_ALL :Expert (memapar STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :Tetapan dengan nilai berbeza dari yang lalai STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Tetapan dengan nilai yang berbeza daripada tetapan baru permainananda +STR_CONFIG_SETTINGS_NONE :{WHITE}- Tiada - STR_CONFIG_SETTING_OFF :Matikan STR_CONFIG_SETTING_ON :Hidupkan @@ -1165,6 +1167,7 @@ STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Jumlah ruang ra STR_CONFIG_SETTING_MULTIPINDTOWN :Benarkan pelbagai industri sejenis di setiap bandar: {STRING} STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :Biasanya sebuah bandar tidak mahu lebih daripada beberapa industri. Dengan tetapan ini membolehakn beberapa industri di bandar yang sama STR_CONFIG_SETTING_SIGNALSIDE :Pamer isyarat: {STRING} +STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :Di sebelah kanan STR_CONFIG_SETTING_SHOWFINANCES :Tunjukkan tetingkap kewangan setiap penghujung tahun: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Arahan baru ialah 'tanpa henti' secara lazim: {STRING} STR_CONFIG_SETTING_STOP_LOCATION :Arahan keretapi baru berhenti secara lazim di pletfom {STRING} @@ -1302,6 +1305,7 @@ STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :Tunjukkan landa STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Alat binaan tetap aktif selepas digunakan: {STRING} STR_CONFIG_SETTING_EXPENSES_LAYOUT :Perbelanjaan kumpulan dalam tetingkap kewangan syarikat: {STRING} +STR_CONFIG_SETTING_SOUND_CONFIRM :Pembinaan: {STRING} STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Nyahaktif infrastruktur bangunan apabila tiada kenderaan yang sesuai: {STRING} STR_CONFIG_SETTING_MAX_TRAINS :Amaun maksimum kereta api setiap syarikat: {STRING} @@ -1324,6 +1328,8 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Benarkan Kepint STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes sebelum skrip adalah digantung: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Tempoh waktu servis dalam peratusan: {STRING} +STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Pilih sama ada selenggara kenderaan dimulakan sejak tempoh masa dari servis terakhir atau apabila peratusan kebolehupayaan kenderaan berkurang kepada peratusan tertentu. +STR_CONFIG_SETTING_SERVINT_DISABLED :Dilumpuhkan STR_CONFIG_SETTING_NOSERVICE :Servis tidak diperlukan apabila kerosakan kenderaan ditetapkan kepada tiada: {STRING} STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Benarkan had kelajuan untuk gerabak: {STRING} STR_CONFIG_SETTING_DISABLE_ELRAILS :Tiada landasan elektrik: {STRING} @@ -1332,6 +1338,7 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Ketibaan kender STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ketibaan kenderaan di stesen pesaing: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Kemalangan / bencana: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Maklumat syarikat: {STRING} +STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Paparkan surat khabar mengenai pembukaan syarikat baru, atau apabila syarikat dalam risiko untuk muflis STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Pembukaan industri: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Penutupan industri: {STRING} STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Perubahan ekonomi: {STRING} @@ -1353,6 +1360,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Tahun permulaan STR_CONFIG_SETTING_SMOOTH_ECONOMY :Gunakan ekonomi baik (perubahan yang lebih kecil): {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Benarkan membeli saham syarikat lain: {STRING} STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bina semafor secara automatik sebelum: {STRING} +STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :Tetapkan tahun apabila isyarat berjenis elektrik digunakan untuk landasan. Sebelum tahun ini, isyarat bukan elektrik akan digunakan (memiliki fungsi yang sama, tetapi berlainan reka bentuk) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Gunakan GUI isyarat: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Jenis isyarat yang dibina secara lazim: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Isyarat sekatan @@ -2308,27 +2316,27 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ladang STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tanah diliputi salji STR_LAI_CLEAR_DESCRIPTION_DESERT :Padang pasir -STR_LAI_RAIL_DESCRIPTION_TRACK :Keretapi landasan +STR_LAI_RAIL_DESCRIPTION_TRACK :Landasan keretapi STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Keretapi landasan dengan isyarat sekatan STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Keretapi landasan dengan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Keretapi landasan dengan isyarat keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Keretapi landasan dengan isyarat kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Landasan keretapi dengan isyarat keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Landasan keretapi dengan isyarat kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Keretapi landasan dengan isyarat laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Keretapi landasan dengan isyarat satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Landasan keretapi dengan isyarat satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Keretapi landasan dengan isyarat sekatan dan pra-isyarat -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Keretapi landasan dengan isyarat sekatan dan keluar -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Keretapi landasan dengan isyarat sekatan dan kombo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Landasan keretapi dengan isyarat sekatan dan keluar +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Landasan keretapi dengan isyarat sekatan dan kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Keretapi landasan dengan isyarat sekatan dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Keretapi landasan dengan isyarat sekatan dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Landasan keretapi dengan isyarat sekatan dan satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Keretapi landasan dengan isyarat pra- dan keluar STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Keretapi landasan dengan isyarat pra- dan kombo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Keretapi landasan dengan isyarat pra- dan laluan STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Keretapi landasan dengan isyarat pra- dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Keretapi landasan dengan isyarat keluar dan kombo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Keretapi landasan dengan isyarat keluar dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Keretapi landasan dengan isyarat keluar dan satu hala -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Keretapi landasan dengan isyarat kombo dan laluan -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Keretapi landasan dengan isyarat kombo dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Landasan keretapi dengan isyarat keluar dan kombo. +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Landasan keretapi dengan isyarat keluar dan laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Landasan keretapi dengan isyarat keluar dan satu hala +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Landasan keretapi dengan isyarat kombo dan signal laluan +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Landasan keretapi dengan isyarat kombo dan satu hala STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Keretapi landasan dengan isyarat laluan dan satu hala STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Keretapi depoh keretapi @@ -2769,6 +2777,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik di atas servis untuk memusatkan pemandangan kepada industri/bandar. Ctrl+Klik untuk membuka tetingkap pemandangan di lokasi bandar # Story book window +STR_STORY_BOOK_TITLE :{YELLOW}{STRING} # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nama stesen - klik pada nama untuk memusatkan pemandangan ke stesen. Ctrl+Klik membuka tetingkap pemandangan di lokasi stesen @@ -2935,6 +2944,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Pengelua STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% dihantar) STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Pusatkan pemandangan utama ke lokasi industri. Ctrl+Klik untuk membuka tetingkap pemandangan di lokasi industri STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Tahap produksi: {YELLOW}{COMMA}% +STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW} Industri mengumumkan penutupan serta merta! ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING} @@ -2942,6 +2952,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Memerluk STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Diperlukan ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING} @@ -3310,6 +3321,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Tempoh P STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Tambah 10 tempoh penyenggelaraan. Ctrl+Klik untuk tambah 5 tempoh penyenggelaraan STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Kurangkan 10 tempoh penyenggelaraan. Ctrl+Klik untuk kurangkan 5 tempoh penyenggelaraan +STR_VEHICLE_DETAILS_PERCENT :Peratusan STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}Nama keretapi STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}Nama kenderaan jalanraya @@ -4032,6 +4044,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Tidak bo STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... kenderaan sudah musnah +STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Mulakan permainan baru selepas {DATE_SHORT} atau gunakan NewGRF yang digunakan kenderaan terdahulu # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Keretapi tidak boleh melanggar isyarat kerana terdapat kemungkinan bahaya... @@ -4078,6 +4091,8 @@ STR_DESKTOP_SHORTCUT_COMMENT :Sebuah permaina # Translatable descriptions in media/baseset/*.ob* files STR_BASEGRAPHICS_DOS_DESCRIPTION :Grafik asal Transport Tycoon Deluxe DOS edition. STR_BASEGRAPHICS_WIN_DESCRIPTION :Grafik asal Transport Tycoon Deluxe edisi Windows. +STR_BASEMUSIC_WIN_DESCRIPTION :Muzik asal Transport Tycoon Deluxe edisi Windows. +STR_BASEMUSIC_NONE_DESCRIPTION :Pek muzik tanpa muzik sebenar. ##id 0x2000 # Town building names From 5e28cc47578c8084d6aa45de2f80814a040d3077 Mon Sep 17 00:00:00 2001 From: frosch Date: Tue, 7 Mar 2017 20:18:54 +0000 Subject: [PATCH 061/158] (svn r27772) -Fix [FS#5819]: If the intro game had a savegame version which contains a NewGRF configuration, then townname NewGRFs would not be activated in the game options. --- src/saveload/newgrf_sl.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/saveload/newgrf_sl.cpp b/src/saveload/newgrf_sl.cpp index dacc127ea0..de261f02aa 100644 --- a/src/saveload/newgrf_sl.cpp +++ b/src/saveload/newgrf_sl.cpp @@ -96,8 +96,16 @@ static void Load_NGRF() { Load_NGRF_common(_grfconfig); - /* Append static NewGRF configuration, but only if there are some NewGRFs. */ - if (_game_mode != GM_MENU || _all_grfs != NULL) AppendStaticGRFConfigs(&_grfconfig); + if (_game_mode == GM_MENU) { + /* Intro game must not have NewGRF. */ + if (_grfconfig != NULL) SlErrorCorrupt("The intro game must not use NewGRF"); + + /* Activate intro NewGRFs (townnames) */ + ResetGRFConfig(false); + } else { + /* Append static NewGRF configuration */ + AppendStaticGRFConfigs(&_grfconfig); + } } static void Check_NGRF() From f2af019eb710bb51a74145755215bd7dcbc466b7 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 12:20:50 +0000 Subject: [PATCH 062/158] (svn r27773) -Update: Baseset translations --- bin/baseset/no_music.obm | 1 + bin/baseset/orig_win.obm | 1 + 2 files changed, 2 insertions(+) diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm index 12ba68a3a1..7a70e3b55d 100644 --- a/bin/baseset/no_music.obm +++ b/bin/baseset/no_music.obm @@ -41,6 +41,7 @@ description.la_VA = Sarcina musicae sine ulla musica. description.lb_LU = E Musikpack ouni aktuell Musik. description.lt_LT = Muzikos pakas be muzikos. description.lv_LV = Mūzikas kopa bez mūzikas +description.ms_MY = Pek muzik tanpa muzik sebenar. description.nb_NO = En musikkpakke uten noe musikk. description.nl_NL = Een muziekset zonder muziek. description.nn_NO = Ei musikkpakke utan noko musikk. diff --git a/bin/baseset/orig_win.obm b/bin/baseset/orig_win.obm index 0682031547..8e2053e043 100644 --- a/bin/baseset/orig_win.obm +++ b/bin/baseset/orig_win.obm @@ -40,6 +40,7 @@ description.la_VA = Musica ex editione originale Transport Tycoon Deluxe Windows description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Musik. description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika. description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika. +description.ms_MY = Muzik asal Transport Tycoon Deluxe edisi Windows. description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows. description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie. description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows. From 5b7a04ca2725dff958646ad252d8bb00ef323ef6 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 12:52:26 +0000 Subject: [PATCH 063/158] (svn r27774) -Fix [FS#5889]: Enabling palette animation for 32bpp blitters while paused skipped initialisation of the palette and resulted in black windows. -Revert (r23978): No SDL-specific fix required anymore. The new fix applies to all backends. --- src/blitter/32bpp_anim.hpp | 4 +++- src/video/sdl_v.cpp | 13 ------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index a0a022e49f..4b08429edc 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -27,7 +27,9 @@ public: anim_buf(NULL), anim_buf_width(0), anim_buf_height(0) - {} + { + this->palette = _cur_palette; + } ~Blitter_32bppAnim(); diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 4ee96db778..4bb44c9d77 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -404,19 +404,6 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h) blitter->PostResize(); InitPalette(); - switch (blitter->UsePaletteAnimation()) { - case Blitter::PALETTE_ANIMATION_NONE: - case Blitter::PALETTE_ANIMATION_VIDEO_BACKEND: - UpdatePalette(); - break; - - case Blitter::PALETTE_ANIMATION_BLITTER: - if (VideoDriver::GetInstance() != NULL) blitter->PaletteAnimate(_local_palette); - break; - - default: - NOT_REACHED(); - } seprintf(caption, lastof(caption), "OpenTTD %s", _openttd_revision); SDL_CALL SDL_WM_SetCaption(caption, caption); From 51c6ae62d142e63b11ea8bc33b900d06bc5493cc Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 13:05:54 +0000 Subject: [PATCH 064/158] (svn r27775) -Fix [FS#6510]: Insufficient thread synchronisation when switching blitters. (JGR) --- src/gfxinit.cpp | 9 ++++++++- src/video/sdl_v.cpp | 11 +++++++++-- src/video/sdl_v.h | 4 ++++ src/video/video_driver.hpp | 13 +++++++++++++ src/video/win32_v.cpp | 11 +++++++++-- src/video/win32_v.h | 4 ++++ 6 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index 6dea627dd0..06534ad298 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -290,6 +290,8 @@ static bool SwitchNewGRFBlitter() const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION); const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName(); + VideoDriver::GetInstance()->AcquireBlitterLock(); + for (uint i = 0; i < lengthof(replacement_blitters); i++) { if (animation_wanted && (replacement_blitters[i].animation == 0)) continue; if (!animation_wanted && (replacement_blitters[i].animation == 1)) continue; @@ -298,7 +300,10 @@ static bool SwitchNewGRFBlitter() if (!IsInsideMM(depth_wanted_by_grf, replacement_blitters[i].min_grf_depth, replacement_blitters[i].max_grf_depth + 1)) continue; const char *repl_blitter = replacement_blitters[i].name; - if (strcmp(repl_blitter, cur_blitter) == 0) return false; + if (strcmp(repl_blitter, cur_blitter) == 0) { + VideoDriver::GetInstance()->ReleaseBlitterLock(); + return false; + } if (BlitterFactory::GetBlitterFactory(repl_blitter) == NULL) continue; DEBUG(misc, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter); @@ -313,6 +318,8 @@ static bool SwitchNewGRFBlitter() if (BlitterFactory::SelectBlitter(cur_blitter) == NULL || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config"); } + VideoDriver::GetInstance()->ReleaseBlitterLock(); + return true; } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 4bb44c9d77..3668f86020 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -817,11 +817,18 @@ bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen) } bool VideoDriver_SDL::AfterBlitterChange() +{ + return CreateMainSurface(_screen.width, _screen.height); +} + +void VideoDriver_SDL::AcquireBlitterLock() { if (_draw_mutex != NULL) _draw_mutex->BeginCritical(true); - bool ret = CreateMainSurface(_screen.width, _screen.height); +} + +void VideoDriver_SDL::ReleaseBlitterLock() +{ if (_draw_mutex != NULL) _draw_mutex->EndCritical(true); - return ret; } #endif /* WITH_SDL */ diff --git a/src/video/sdl_v.h b/src/video/sdl_v.h index 730f82b93f..8855c3566e 100644 --- a/src/video/sdl_v.h +++ b/src/video/sdl_v.h @@ -31,6 +31,10 @@ public: /* virtual */ bool AfterBlitterChange(); + /* virtual */ void AcquireBlitterLock(); + + /* virtual */ void ReleaseBlitterLock(); + /* virtual */ bool ClaimMousePointer(); /* virtual */ const char *GetName() const { return "sdl"; } diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index 916044d358..5cb3c6cc3f 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -49,6 +49,7 @@ public: /** * Callback invoked after the blitter was changed. + * This may only be called between AcquireBlitterLock and ReleaseBlitterLock. * @return True if no error. */ virtual bool AfterBlitterChange() @@ -56,6 +57,18 @@ public: return true; } + /** + * Acquire any lock(s) required to be held when changing blitters. + * These lock(s) may not be acquired recursively. + */ + virtual void AcquireBlitterLock() { } + + /** + * Release any lock(s) required to be held when changing blitters. + * These lock(s) may not be acquired recursively. + */ + virtual void ReleaseBlitterLock() { } + virtual bool ClaimMousePointer() { return true; diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index c37ebd7dd6..e536ae8e5e 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -1333,11 +1333,18 @@ bool VideoDriver_Win32::ToggleFullscreen(bool full_screen) } bool VideoDriver_Win32::AfterBlitterChange() +{ + return AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen); +} + +void VideoDriver_Win32::AcquireBlitterLock() { if (_draw_mutex != NULL) _draw_mutex->BeginCritical(true); - bool ret = AllocateDibSection(_screen.width, _screen.height, true) && this->MakeWindow(_fullscreen); +} + +void VideoDriver_Win32::ReleaseBlitterLock() +{ if (_draw_mutex != NULL) _draw_mutex->EndCritical(true); - return ret; } void VideoDriver_Win32::EditBoxLostFocus() diff --git a/src/video/win32_v.h b/src/video/win32_v.h index 21d59185b9..7609d0422d 100644 --- a/src/video/win32_v.h +++ b/src/video/win32_v.h @@ -31,6 +31,10 @@ public: /* virtual */ bool AfterBlitterChange(); + /* virtual */ void AcquireBlitterLock(); + + /* virtual */ void ReleaseBlitterLock(); + /* virtual */ bool ClaimMousePointer(); /* virtual */ void EditBoxLostFocus(); From ffcdd47321296edadab9575171269356da29e379 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 13:34:01 +0000 Subject: [PATCH 065/158] (svn r27776) -Merge: Documentation updates from 1.6 branch --- changelog.txt | 65 +++++++++++++++++++++++++++++++ known-bugs.txt | 4 +- os/debian/changelog | 24 ++++++++++++ readme.txt | 4 +- src/script/api/ai_changelog.hpp | 65 ++++--------------------------- src/script/api/game_changelog.hpp | 34 +++------------- 6 files changed, 106 insertions(+), 90 deletions(-) diff --git a/changelog.txt b/changelog.txt index c110109386..89b3babf84 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,68 @@ +1.6.1 (2016-07-01) +------------------------------------------------------------------------ +- Fix: Compilation and optimisation issues with GCC6 (r27606, r27605, r27595) +- Fix: Compilation with --disable-network [FS#6481] (r27602) +- Fix: [NewGRF] shift-and-add-divide/modulo varadjusts use signed division/modulo (r27600) +- Fix: Company 0 could accept engine previews before they were offered (r27598) + + +1.6.1-RC1 (2016-06-01) +------------------------------------------------------------------------ +- Feature: Mexican Spanish (r27564, r27553, r27552) +- Change: Performance improvement for dedicated servers by skipping drawing calls earlier in the process [FS#6402] (r27579) +- Fix: Automatic servicing of road vehicles compared path finder costs with tile distances, thus vehicles went to depots which were factor 100 too far away [FS#6410] (r27586) +- Fix: Enforce a non-zero load amount for all vehicles, so that vehicles can process their cargo reservations [FS#6437] (r27585, r27584) +- Fix: Do not decrease the column width of depot windows when vehicles with high unitnumbers leave [FS#6415] (r27583) +- Fix: Button size computation in script configuration window [FS#6461] (r27581) +- Fix: [NewGRF] Set date of last service on construction also for wagons and articulated parts [FS#6395] (r27580) +- Fix: Vehicles could not be hidden from the purchase list when they were in exclusive preview [FS#6454] (r27578) +- Fix: Dock and roadstop picker, client list and town authority window did not auto-resize according to their content when they were positioned at the bottom of the screen [FS#6386] (r27577) +- Fix: Various incorrect but uncritical size computations in the content client [FS#6449] (r27576, r27570) +- Fix: Memory leak when disabling palette animation [FS#6404] (r27575) +- Fix: [NewGRF] The house id as returned by house variable 66 was incorrect when querying neighboured tiles [FS#6432] (r27574) +- Fix: [Build] Compilation failure with gcc 6.1 due to headers included after safeguards.h [FS#6467] (r27573) +- Fix: Convenience savegame bump to distinguish 1.6 savegames from 1.5 savegames [FS#6442] (r27572) +- Fix: [Build] Force sorting to be locale independent, so files are always ordered the same and by that token better diff-able (r27562, r27558) +- Fix: Typos in comments and string (r27561, r27560) +- Fix: [Build] bashism that caused different CFLAGS with bash vs dash (r27557) +- Fix: Use a more appropiate sound effect for convert-rail (r27547) +- Fix: Remove SetFill from vehicle GUI buttons, so that the viewport is resized instead of them in case of long window titles (r27546) +- Fix: [Script] Generation of API wrappers (r27545, r27544, r27543) +- Fix: [Windows] ICU got disabled for Windows builds, breaking RTL support [FS#6427] (r27542) +- Fix: [NewGRF] Station spritelayouts did not accept the var10 flag for the palette [FS#6435] (r27534) + + +1.6.0 (2016-04-01) +------------------------------------------------------------------------ +(None) + + +1.6.0-RC1 (2016-03-01) +------------------------------------------------------------------------ +- Feature: [NewGRF] Allow custom sound IDs in RV property 0x12, ship property 0x10 and aircraft property 0x12 (r27507) +- Feature: When viewing online content of a particular type, hide content of other types unless they have been (auto)selected for download (r27469, r27468, r27444) +- Feature: [NewGRF] Move sprite 8 positions in sprite aligner with ctrl+click [FS#6241] (r27451) +- Feature: Lower the sell-vehicle and sell-chain buttons in the train depot GUI while dragging a vehicle over it [FS#6391] (r27450, r27446) +- Feature: Make the object placement GUI an independent window (r27438, r27397, r27346) +- Feature: [Build] Project files and compilation with MSVC2015 (r27385, r27382, r27381, r27380, r27379) +- Feature: [NewGRF] Allow railtype NewGRF to define separate sprites for the fences on either track side [FS#6315] (r27354, r27343) +- Feature: [NewGRF] Increase the maximum amount of industry types to 128 per NewGRF and 240 in total (r27279) +- Feature: Make Ctrl+Remove-Roadstop also remove the road, just like for rail stations [FS#6252] (r27251) +- Change: [NewGRF] Allow static NewGRF to enable the second rocky tile set (r27497) +- Change: Round loading percentage in loading indicators and conditional orders towards 50%, so that 0% and 100% mean completely empty or full (r27426) +- Change: [Build] Rework the configure system to make more use of pkg-config (r27377:r27366, r27361, r27360) +- Change: Enable YAPF cache debugging with desync debug level 2 (r27332) +- Change: [strgen] Default plural subparameter position for CARGO_xxx string control codes is subparameter 1 (r27295) +- Change: [NewGRF] Translate industry variable A6 (r27267) +- Change: Do not consider cargo that is already being loaded as waiting cargo wrt. the station rating [FS#6165] (r27256) +- Change: Tune down terrain generation to reduce amount of long slopes (r27230) +- Change: Generate more detailed curves at the coast (r27229) +- Change: Slightly more water in the non-custom sea levels (r27228) +- Change: Be more lenient about road stop removal when at least one stop could be removed [FS#6262] (r27225) +- Fix: [Win32] Stdin/out/err need to be re-assigned differently if the runtime lib of MSVC2015 is used (r27481) +- Fix: [Haiku] On Haiku use the appropriate system variable to obtain the include dir [FS#6401] (r27472) + + 1.5.3 (2015-12-01) ------------------------------------------------------------------------ (None) diff --git a/known-bugs.txt b/known-bugs.txt index 34aca33002..f5ae731018 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -1,6 +1,6 @@ OpenTTD's known bugs -Last updated: 2015-02-24 -Release version: 1.5.0-beta2 +Last updated: 2016-07-01 +Release version: 1.6.1 ------------------------------------------------------------------------ diff --git a/os/debian/changelog b/os/debian/changelog index 4dd5b1155f..c8cf30794b 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,27 @@ +openttd (1.6.1-0) unstable; urgency=low + + * New upstream release 1.6.1 + + -- OpenTTD Fri, 01 Jul 2016 00:00:00 +0200 + +openttd (1.6.1~RC1-0) unstable; urgency=low + + * New upstream release 1.6.1-RC1 + + -- OpenTTD Wed, 01 Jun 2016 21:00:00 +0200 + +openttd (1.6.0-0) unstable; urgency=low + + * New upstream release 1.6.0 + + -- OpenTTD Fri, 01 Apr 2016 21:00:00 +0200 + +openttd (1.6.0~RC1-0) unstable; urgency=low + + * New upstream release 1.6.0-RC1 + + -- OpenTTD Tue, 01 Mar 2016 21:00:00 +0100 + openttd (1.5.3-0) unstable; urgency=low * New upstream release 1.5.3 diff --git a/readme.txt b/readme.txt index 817f397b51..e378bd5d22 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ -Last updated: 2015-02-24 -Release version: 1.5.0-beta2 +Last updated: 2016-07-01 +Release version: 1.6.1 ------------------------------------------------------------------------ diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 2d0fe01f8d..23f4a0958f 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -19,19 +19,11 @@ * * 1.7.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.6.0 + * \b 1.6.1 - 1.6.0 * * No changes * - * \b 1.5.3 - * - * No changes - * - * \b 1.5.2 - * - * No changes - * - * \b 1.5.1 + * \b 1.5.3 - 1.5.1 * * No changes * @@ -53,20 +45,7 @@ * \li AIStationList_CargoWaitingFromByVia * \li AIStationList_CargoWaitingViaByFrom * - * \b 1.4.4 - * - * No changes - * - * \b 1.4.3 - * - * No changes - * - * \b 1.4.2 - * - * No changes - * - * \b 1.4.1 - * + * \b 1.4.4 - 1.4.1 * No changes * * \b 1.4.0 @@ -87,11 +66,7 @@ * \li AIStation::GetCargoRating does return -1 for cargo-station combinations that * do not have a rating yet instead of returning 69. * - * \b 1.3.3 - * - * No changes - * - * \b 1.3.2 + * \b 1.3.3 - 1.3.2 * * No changes * @@ -110,15 +85,7 @@ * \li AIStation::OpenCloseAirport * \li AIController::Break * - * \b 1.2.3 - * - * No changes - * - * \b 1.2.2 - * - * No changes - * - * \b 1.2.1 + * \b 1.2.3 - 1.2.1 * * No changes * @@ -185,15 +152,7 @@ * API additions: * \li AIVehicle::ERR_VEHICLE_TOO_LONG in case vehicle length limit is reached. * - * \b 1.1.3 - * - * No changes - * - * \b 1.1.2 - * - * No changes - * - * \b 1.1.1 + * \b 1.1.3 - 1.1.1 * * No changes * @@ -224,11 +183,7 @@ * \li AIRoad::BuildDriveThroughRoadStation now allows overbuilding. * \li AIRoad::BuildRoadStation now allows overbuilding. * - * \b 1.0.5 - * - * No changes - * - * \b 1.0.4 + * \b 1.0.5 - 1.0.4 * * No changes * @@ -342,11 +297,7 @@ * station orders for buoys one has to use waypoint orders. * \li Autoreplaces can now also be set for the default group via AIGroup. * - * \b 0.7.5 - * - * No changes - * - * \b 0.7.4 + * \b 0.7.5 - 0.7.4 * * No changes * diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 182ca79afb..a9e7b0b307 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -19,19 +19,11 @@ * * 1.7.0 is not yet released. The following changes are not set in stone yet. * - * \b 1.6.0 + * \b 1.6.1 - 1.6.0 * * No changes * - * \b 1.5.3 - * - * No changes - * - * \b 1.5.2 - * - * No changes - * - * \b 1.5.1 + * \b 1.5.3 - 1.5.1 * * No changes * @@ -58,11 +50,7 @@ * industry, or town. The user can click at the news message to jump to the * referred location. * - * \b 1.4.4 - * - * No changes - * - * \b 1.4.3 + * \b 1.4.4 - 1.4.3 * * No changes * @@ -106,11 +94,7 @@ * \li GSStation::GetCargoRating does return -1 for cargo-station combinations that * do not have a rating yet instead of returning 69. * - * \b 1.3.3 - * - * No changes - * - * \b 1.3.2 + * \b 1.3.3 - 1.3.2 * * No changes * @@ -136,15 +120,7 @@ * Other changes: * \li Company specific goals are now removed when a company goes bankrupt or is taken over. * - * \b 1.2.3 - * - * No changes - * - * \b 1.2.2 - * - * No changes - * - * \b 1.2.1 + * \b 1.2.3 - 1.2.1 * * No changes * From bc61ff380a22d1cabcb39434cd441ee3ef099e85 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 16:49:51 +0000 Subject: [PATCH 066/158] (svn r27777) -Doc: Yearly increment --- os/debian/copyright | 2 +- os/rpm/openttd.spec | 2 +- src/lang/afrikaans.txt | 2 +- src/lang/arabic_egypt.txt | 2 +- src/lang/basque.txt | 2 +- src/lang/belarusian.txt | 2 +- src/lang/brazilian_portuguese.txt | 2 +- src/lang/bulgarian.txt | 2 +- src/lang/catalan.txt | 2 +- src/lang/croatian.txt | 2 +- src/lang/czech.txt | 2 +- src/lang/danish.txt | 2 +- src/lang/dutch.txt | 2 +- src/lang/english.txt | 2 +- src/lang/english_AU.txt | 2 +- src/lang/english_US.txt | 2 +- src/lang/esperanto.txt | 2 +- src/lang/estonian.txt | 2 +- src/lang/faroese.txt | 2 +- src/lang/finnish.txt | 2 +- src/lang/french.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 2 +- src/lang/german.txt | 2 +- src/lang/greek.txt | 2 +- src/lang/hebrew.txt | 2 +- src/lang/hungarian.txt | 2 +- src/lang/icelandic.txt | 2 +- src/lang/indonesian.txt | 2 +- src/lang/irish.txt | 2 +- src/lang/italian.txt | 2 +- src/lang/japanese.txt | 2 +- src/lang/korean.txt | 2 +- src/lang/latvian.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/malay.txt | 2 +- src/lang/norwegian_bokmal.txt | 2 +- src/lang/norwegian_nynorsk.txt | 2 +- src/lang/polish.txt | 2 +- src/lang/portuguese.txt | 2 +- src/lang/romanian.txt | 2 +- src/lang/russian.txt | 2 +- src/lang/serbian.txt | 2 +- src/lang/simplified_chinese.txt | 2 +- src/lang/slovak.txt | 2 +- src/lang/slovenian.txt | 2 +- src/lang/spanish.txt | 2 +- src/lang/spanish_MX.txt | 2 +- src/lang/swedish.txt | 2 +- src/lang/tamil.txt | 2 +- src/lang/thai.txt | 2 +- src/lang/traditional_chinese.txt | 2 +- src/lang/turkish.txt | 2 +- src/lang/ukrainian.txt | 2 +- src/lang/unfinished/frisian.txt | 2 +- src/lang/unfinished/ido.txt | 2 +- src/lang/unfinished/macedonian.txt | 2 +- src/lang/unfinished/persian.txt | 2 +- src/lang/vietnamese.txt | 2 +- src/lang/welsh.txt | 2 +- src/os/windows/ottdres.rc.in | 2 +- 62 files changed, 62 insertions(+), 62 deletions(-) diff --git a/os/debian/copyright b/os/debian/copyright index be573b4825..ab62f66a42 100644 --- a/os/debian/copyright +++ b/os/debian/copyright @@ -5,7 +5,7 @@ Source: http://www.openttd.org Files: * -Copyright: © 2004-2012 Ludvig Strigeous and others. +Copyright: © 2004-2017 Ludvig Strigeous and others. License: GPL-2.0 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2.0 as diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 711693bcf7..2dfa1a3ba3 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -2,7 +2,7 @@ # spec file for package openttd # # Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. -# Copyright (c) 2007-2012 The OpenTTD developers +# Copyright (c) 2007-2017 The OpenTTD developers # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 841392a09c..377c928460 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Die OpenTTD span +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Die OpenTTD span # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index b07dfcadec..1cd5332615 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2320,7 +2320,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :ارض مملو STR_ABOUT_OPENTTD :{WHITE}حول النسخة المفتوحة STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}الحقوق الاصلية {COPYRIGHT} كريس سوير 1995 , جميع الحقوق محفوظة STR_ABOUT_VERSION :{BLACK}النسخة المفتوحة رقم {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2016 فريق النسخة المفتوحة +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2017 فريق النسخة المفتوحة # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}حفظ اللعبة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 69c25f31a0..1db1ed48eb 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2592,7 +2592,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Konpainia jabe STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ri buruz STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD bertsioa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gordetako jokoa diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 50229c6ae9..221f6f1573 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3020,7 +3020,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Зямля на STR_ABOUT_OPENTTD :{WHITE}Аб OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Арыґінальныя аўтарскія правы {COPYRIGHT} 1995 Chris Sawyer. Усе правы абароненыя. STR_ABOUT_VERSION :{BLACK}OpenTTD вэрсія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2016 Каманда распрацоўнікаў OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2017 Каманда распрацоўнікаў OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Захаваць гульню diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 9ed5394684..fdc960e950 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :O terreno é pr STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipe do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipe do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvar Jogo diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index da6b52463e..4adbc74de7 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2626,7 +2626,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земя, пр STR_ABOUT_OPENTTD :{WHITE}Относно OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторски права {COPYRIGHT} 1995 Крис Сойер (Chris Sawyer), Всички права са запазени STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Запази играта diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 3f6b25da20..7d407a0b68 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. STR_ABOUT_VERSION :{BLACK}OpenTTD versió {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'equip de l'OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'equip de l'OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Desa la Partida diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 2dbc967631..cbb33f95e1 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2785,7 +2785,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemlja u posjed STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spremi igru diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 128259ef0f..b053b507af 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2782,7 +2782,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Půda vlastněn STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Původní copyright: {COPYRIGHT} 1995 Chris Sawyer, všechna práva vyhrazena STR_ABOUT_VERSION :{BLACK}OpenTTD verze {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tým OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tým OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložit hru diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 9fe61e00d8..5fdc19c51c 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land ejet af se STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheder reserveret STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 7ae5817ddb..541d07b146 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Het OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Het OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan diff --git a/src/lang/english.txt b/src/lang/english.txt index 8d931307af..505356f08f 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index c0d79346a5..abdac23882 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2662,7 +2662,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index eecfb32f73..e67bb2c06b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l STR_ABOUT_OPENTTD :{WHITE}About OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 0c35b49d01..67abcfc9ed 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2265,7 +2265,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanie poseda STR_ABOUT_OPENTTD :{WHITE}Pri OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Origina kopirajto {COPYRIGHT} 1995 Chris Sawyer, Ĉiuj rajtoj rezervitaj STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La teamo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La teamo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Konservu Ludon diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 1bb8af5aaf..4ce9d63471 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2745,7 +2745,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ettevõtte maa STR_ABOUT_OPENTTD :{WHITE}OpenTTD lisainfo STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Algne autorikaitse {COPYRIGHT} 1995 Chris Sawyer, kõik õigused kaitstud STR_ABOUT_VERSION :{BLACK}OpenTTD osa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD meeskond +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD meeskond # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Mängu salvestamine diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 26d162b719..b121d9cb86 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2427,7 +2427,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ogn hjá fyrit STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upprunalig upphavsrættindi {COPYRIGHT} 1995 Chris Sawyer, Øll rættindi umbiðin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáva {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD toymi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD toymi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Goym spæl diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 1b683bf745..25bcabe338 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Yhtiön omistam STR_ABOUT_OPENTTD :{WHITE}Tietoja OpenTTD:stä STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Alkuperäiset oikeudet {COPYRIGHT} 1995 Chris Sawyer, kaikki oikeudet pidätetään STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Tallenna peli diff --git a/src/lang/french.txt b/src/lang/french.txt index 3363437a59..33af65666f 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrain apparte STR_ABOUT_OPENTTD :{WHITE}À propos de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Tous droits réservés STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 L'équipe OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'équipe OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sauvegarder la partie diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index b2f9d7a404..3722eb1634 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2916,7 +2916,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tìr a' chompan STR_ABOUT_OPENTTD :{WHITE}Mu dheidhinn OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Còir-lethbhreac tùsail {COPYRIGHT} 1995 Chris Sawyer, a h-uile còir glèidhte STR_ABOUT_VERSION :{BLACK}OpenTTD tionndadh {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An sgioba OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An sgioba OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sàbhail an geama diff --git a/src/lang/galician.txt b/src/lang/galician.txt index c6ef4673d7..b097f4daef 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2646,7 +2646,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreo propieda STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright orixinal {COPYRIGHT} 1995 Chris Sawyer, Tódolos dereitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 O equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 O equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gravar partida diff --git a/src/lang/german.txt b/src/lang/german.txt index a299d8dc64..8a7bf51d33 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firmeneigenes G STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Transport Tycoon-Urheberrecht {COPYRIGHT} 1995 Chris Sawyer, alle Rechte vorbehalten STR_ABOUT_VERSION :{BLACK}OpenTTD-Version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-Team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-Team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spiel speichern diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 0e0cb61287..8659667126 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -2798,7 +2798,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ιδιοκτη STR_ABOUT_OPENTTD :{WHITE}Σχετικά με το OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Αρχικά Πνευματικά Δικαιώματα {COPYRIGHT} 1995 Chris Sawyer, Όλα τα δικαιώματα διατηρούνται STR_ABOUT_VERSION :{BLACK}Έκδοση OpenTTD{REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Η ομάδα του OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Η ομάδα του OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Αποθήκευση Παιχνιδιού diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 01e0159d5e..ef3bb5070a 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2701,7 +2701,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :שטח בבעל STR_ABOUT_OPENTTD :{WHITE}OpenTTD אודות STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - {NBSP}זכויות יוצרים מקוריות STR_ABOUT_VERSION :{BLACK}{REV} גירסה , OpenTTD -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}שמור משחק diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 84c6430464..fd4f1338d7 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2751,7 +2751,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Vállalat álta STR_ABOUT_OPENTTD :{WHITE}Az OpenTTD-ről STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Eredeti copyright {COPYRIGHT} 1995 Chris Sawyer, Minden jog fenntartva STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} verzió -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Az OpenTTD csapat +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Az OpenTTD csapat # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Játék mentése diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 37595b413e..55a54c2d6c 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2536,7 +2536,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land í eigu fy STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upphaflegur höfundarréttur {COPYRIGHT} 1995 Chris Sawyer, Öll réttindi áskilin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáfa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD hópurinn +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD hópurinn # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Vista leik diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 105fba7803..35b8db2522 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah milik Per STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hak Cipta asli {COPYRIGHT} 1995 Chris Sawyer, Hak Cipta dilindungi STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tim OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tim OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpan Permainan diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 4831264802..b8a262e858 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Talamh faoi úi STR_ABOUT_OPENTTD :{WHITE}Maidir le OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Cóipcheart bunaidh {COPYRIGHT} 1995 Chris Sawyer, Gach ceart ar cosaint STR_ABOUT_VERSION :{BLACK}OpenTTD leagan {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 An fhoireann OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An fhoireann OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sábháil an Cluiche diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 92e51b815d..cb75eaf927 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2719,7 +2719,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno possedu STR_ABOUT_OPENTTD :{WHITE}Informazioni su OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright originale {COPYRIGHT} 1995 Chris Sawyer, Tutti i diritti riservati STR_ABOUT_VERSION :{BLACK}OpenTTD versione {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Il team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Il team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salva partita diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 8c4cc2599e..251c68b55f 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :社有地 STR_ABOUT_OPENTTD :{WHITE}OpenTTDについて STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}オリジナル版権{COPYRIGHT} 1995 Chris Sawyer All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD バージョン {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ゲームを保存 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 31b3a62012..d05ab967eb 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유 STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서 STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 개발팀 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 개발팀 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}게임 저장 diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 8750be0e30..f75d381b39 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -2628,7 +2628,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Uzņēmumam pie STR_ABOUT_OPENTTD :{WHITE}Par OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oriģināla autortiesības {COPYRIGHT} 1995 Kriss Sojers. Visas tiesības paturētas STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD darba grupa +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD darba grupa # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Saglabāt spēli diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 9450a0f5c3..f9067c5567 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2906,7 +2906,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanijos žem STR_ABOUT_OPENTTD :{WHITE}Apie OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pradinės versijos teisės priklauso {COPYRIGHT} 1995 Chris Sawyer, Visos teisės saugomos STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD komanda +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD komanda # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Išsaugoti žaidimą diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index b1b02d208d..37aec445da 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land am Firmenb STR_ABOUT_OPENTTD :{WHITE}Iwwert OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original Copyright {COPYRIGHT} 1995 Chris Sawyer, All Rechter virbehalen STR_ABOUT_VERSION :{BLACK}OpenTTD Versioun {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 D'OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 D'OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spill späicheren diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 6c123b820c..7779ea9504 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2402,7 +2402,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah dimiliki STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hakcipta Asal {COPYRIGHT} 1995 Chris Sawyer, Hakcipta terpelihara STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpankan Permainan diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index a889661665..e8bd624a0f 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firma-eid lando STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opprinnelig opphavsbeskyttet {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spill diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 332d1976d5..aa455f5efe 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2608,7 +2608,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Feltet eigast a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opphaveleg opphavsbeskytta av {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheiter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}. Oversett til nynorsk av Thor Morten Skogrand med fleire. -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spel diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5e64a712fe..206530f09f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3069,7 +3069,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren w posiada STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prawa Autorskie {COPYRIGHT} 1995 Chris Sawyer, Wszelkie prawa zastrzeżone STR_ABOUT_VERSION :{BLACK}OpenTTD wersja {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Zespół OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Zespół OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Zapisz grę diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 2519147616..552456b081 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno proprie STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD... STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipa do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipa do OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Jogo diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index e3da858029..1a3e29f479 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2652,7 +2652,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren în propr STR_ABOUT_OPENTTD :{WHITE}Despre OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Toate drepturile rezervate STR_ABOUT_VERSION :{BLACK}OpenTTD versiunea {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Echipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Echipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvează joc diff --git a/src/lang/russian.txt b/src/lang/russian.txt index dbe7f3d110..fc53374e3c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2869,7 +2869,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земля в STR_ABOUT_OPENTTD :{WHITE}Об OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинальные авторские права {COPYRIGHT} 1995 Chris Sawyer. Все права защищены. STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Команда разработчиков OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Команда разработчиков OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Сохранить игру diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d112b832af..61f848e8b3 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2882,7 +2882,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemljište u po STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originalni kopirajt {COPYRIGHT} 1995 Chris Sawyer, Sva prava zadržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sačuvaj poziciju diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index a11ad99b5f..6be975993f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司属地 STR_ABOUT_OPENTTD :{WHITE}关于 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原始版权由 {COPYRIGHT} 1995 Chris Sawyer 所有,保留一切权力。 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 团队 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 团队 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}保存游戏 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index be2c635472..539b5379d7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2755,7 +2755,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Spoločnosťou STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pôvodný copyright: {COPYRIGHT} 1995 Chris Sawyer, všetky práva vyhradené STR_ABOUT_VERSION :{BLACK}OpenTTD verzia {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 team OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložiť hru diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 60e958fb03..1cd9a11aa9 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2840,7 +2840,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ozemlje v lasti STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prvotne avtorske pravice {COPYRIGHT} 1995 Chris Sawyer, vse pravice pridržane STR_ABOUT_VERSION :{BLACK}OpenTTD različica {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 ekipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 ekipa OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Shrani igro diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 367bd82ae6..37b033277d 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright Original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 El equipo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 El equipo OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Juego diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 48e83b2c97..c2de0c7009 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2690,7 +2690,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016, el equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017, el equipo de OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar partida diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4648963188..1abfef52a5 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig äganderätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spara spel diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 9e4d0a03ba..32c647fac1 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2378,7 +2378,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :நிறுவ STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ஐ பற்றி STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}அசல் உரிமைகள் {COPYRIGHT} 1995 கிறிஸ் சாயர், எல்லா உரிமைகளும் பதிவுசெய்யப்பட்டது STR_ABOUT_VERSION :{BLACK}OpenTTD பதிப்பு {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD குழுமம் +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD குழுமம் # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ஆட்டத்தை பதிவு செய் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 0a7735ec5e..96fa8775f8 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2635,7 +2635,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :บริษั STR_ABOUT_OPENTTD :{WHITE}เกี่ยวกับ OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}ลิขสิทธิ์เดิม {COPYRIGHT} ค.ศ.1995 ของ Chris Sawyer, สงวนลิขสิทธิ์ STR_ABOUT_VERSION :{BLACK}OpenTTD รุ่นที่ {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2016 ของ The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2017 ของ The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}บันทึกเกม diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 854d2be9b5..b12a1b1df6 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司所有土 STR_ABOUT_OPENTTD :{WHITE}關於 OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原著作權為 {COPYRIGHT} 1995 Chris Sawyer,保留所有權利 STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD 開發小組 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 開發小組 # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}儲存遊戲 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 900cae4672..5352546c22 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Satın alınmı STR_ABOUT_OPENTTD :{WHITE}OpenTTD Hakkında STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Telif hakkı {COPYRIGHT} 1995 Chris Sawyer, Her hakkı saklıdır STR_ABOUT_VERSION :{BLACK}OpenTTD sürüm {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD ekibi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD ekibi # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Oyunu Kaydet diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 8a905477a6..ef7d9ad9e4 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2818,7 +2818,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ця ділян STR_ABOUT_OPENTTD :{WHITE}Про OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторське право {COPYRIGHT} 1995 Кріс Сойєр, Всі права захищені STR_ABOUT_VERSION :{BLACK}OpenTTD версія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 команда OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 команда OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Зберегти гру diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index ceb0e77490..d3cd291ea3 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2475,7 +2475,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Lân fan bedriu STR_ABOUT_OPENTTD :{WHITE}Oer OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Orizjineel copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD-ferzje {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 It OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 It OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spul Opslaan diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index b0941fbc07..1e5c942a14 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -776,7 +776,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Stabeyo di komp # About OpenTTD window STR_ABOUT_VERSION :{BLACK}OpenTTD versiono {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 La kruo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La kruo OpenTTD # Save/load game/scenario STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Ludo Detali diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index a37291171d..b10f2761f8 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1202,7 +1202,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Компани STR_ABOUT_OPENTTD :{WHITE}За OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинален copyright {COPYRIGHT} 1995 Chris Sawyer, Сите права се задржани STR_ABOUT_VERSION :{BLACK}OpenTTD верзија {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 OpenTTD тимот +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD тимот # Save/load game/scenario STR_SAVELOAD_LOAD_BUTTON :{BLACK}Оптоварување diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 334b220338..5b1787eaec 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2389,7 +2389,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :زمین خری STR_ABOUT_OPENTTD :{WHITE}OpenTTD در باره ی STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD ویرایش {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}ذخیره ی بازی diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 89989e089f..e78a0d4eaa 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Đất công ty STR_ABOUT_OPENTTD :{WHITE}Về OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Nguyên tác bản quyền {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD phiên bản {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Nhóm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Nhóm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lưu Ván Chơi diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index da03498aac..56dfccdfd6 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tir cwmni STR_ABOUT_OPENTTD :{WHITE}Gwybodaeth am OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hawlfraint Wreiddiol {COPYRIGHT} 1995 Chris Sawyer, Holl cedwir pob hawl STR_ABOUT_VERSION :{BLACK}fersiwn OpenTTD {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 Y tîm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Y tîm OpenTTD # Save/load game/scenario STR_SAVELOAD_SAVE_CAPTION :{WHITE}Cadw Gêm diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 4214f3b23f..462da891e7 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -100,7 +100,7 @@ BEGIN VALUE "FileDescription", "OpenTTD\0" VALUE "FileVersion", "!!VERSION!!\0" VALUE "InternalName", "openttd\0" - VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2016. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2017. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "openttd.exe\0" VALUE "PrivateBuild", "\0" From d3de08088326415d55ef052dc858053ab4932584 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 20:37:32 +0000 Subject: [PATCH 067/158] (svn r27778) -Change [FS#6442-ish]: Convenience savegame bump to distinguish 1.7 savegames from 1.6 savegames. --- src/saveload/saveload.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index fcda489fae..5a09906bda 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -263,8 +263,9 @@ * 193 26802 * 194 26881 1.5.x, 1.6.0 * 195 27572 1.6.x + * 196 27778 1.7.x */ -extern const uint16 SAVEGAME_VERSION = 195; ///< Current savegame version of OpenTTD. +extern const uint16 SAVEGAME_VERSION = 196; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. From ed63b48e7628e555bf4f0eb0ba8a2948c44d6615 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 11 Mar 2017 20:50:26 +0000 Subject: [PATCH 068/158] (svn r27780) -Update: Numbers --- bin/ai/compat_1.7.nut | 2 ++ bin/ai/compat_1.8.nut | 8 ++++++++ bin/ai/regression/regression_info.nut | 2 +- bin/game/compat_1.7.nut | 2 ++ bin/game/compat_1.8.nut | 8 ++++++++ os/os2/installer/make_installer.cmd | 2 +- os/rpm/openttd.spec | 4 ++-- os/windows/installer/install.nsi | 2 +- src/ai/ai_info.cpp | 3 ++- src/game/game_info.cpp | 3 ++- src/os/windows/ottdres.rc.in | 4 ++-- src/rev.cpp.in | 2 +- src/script/api/ai_changelog.hpp | 6 +++++- src/script/api/game_changelog.hpp | 6 +++++- 14 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 bin/ai/compat_1.8.nut create mode 100644 bin/game/compat_1.8.nut diff --git a/bin/ai/compat_1.7.nut b/bin/ai/compat_1.7.nut index fe985b90d0..1290443c4d 100644 --- a/bin/ai/compat_1.7.nut +++ b/bin/ai/compat_1.7.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.7 API compatibility in effect."); diff --git a/bin/ai/compat_1.8.nut b/bin/ai/compat_1.8.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/ai/compat_1.8.nut @@ -0,0 +1,8 @@ +/* $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 . + */ diff --git a/bin/ai/regression/regression_info.nut b/bin/ai/regression/regression_info.nut index 87676e1625..f908ae28ac 100644 --- a/bin/ai/regression/regression_info.nut +++ b/bin/ai/regression/regression_info.nut @@ -6,7 +6,7 @@ class Regression extends AIInfo { function GetShortName() { return "REGR"; } function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; } function GetVersion() { return 1; } - function GetAPIVersion() { return "1.7"; } + function GetAPIVersion() { return "1.8"; } function GetDate() { return "2007-03-18"; } function CreateInstance() { return "Regression"; } } diff --git a/bin/game/compat_1.7.nut b/bin/game/compat_1.7.nut index fe985b90d0..1290443c4d 100644 --- a/bin/game/compat_1.7.nut +++ b/bin/game/compat_1.7.nut @@ -6,3 +6,5 @@ * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ + +GSLog.Info("1.7 API compatibility in effect."); diff --git a/bin/game/compat_1.8.nut b/bin/game/compat_1.8.nut new file mode 100644 index 0000000000..fe985b90d0 --- /dev/null +++ b/bin/game/compat_1.8.nut @@ -0,0 +1,8 @@ +/* $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 . + */ diff --git a/os/os2/installer/make_installer.cmd b/os/os2/installer/make_installer.cmd index de01554a07..5e30e4c354 100644 --- a/os/os2/installer/make_installer.cmd +++ b/os/os2/installer/make_installer.cmd @@ -1,6 +1,6 @@ @echo off -set OPENTTD_VERSION=1.7.0 +set OPENTTD_VERSION=1.8.0 set OPENSFX_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0 set OPENGFX_VERSION=1.2.0 diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index 2dfa1a3ba3..9685624462 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -17,9 +17,9 @@ # Name: openttd -Version: 1.7.beta1 +Version: 1.8.beta1 Release: 0 -%define srcver 1.7.0-beta1 +%define srcver 1.8.0-beta1 Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe License: GPL-2.0 Group: Amusements/Games/Strategy/Other diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index c7b8c82af4..76a87b37dd 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -1,6 +1,6 @@ # Version numbers to update !define APPV_MAJOR 1 -!define APPV_MINOR 7 +!define APPV_MINOR 8 !define APPV_MAINT 0 !define APPV_BUILD 0 !define APPV_EXTRA "-beta1" diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp index e862b62466..2afd5d4199 100644 --- a/src/ai/ai_info.cpp +++ b/src/ai/ai_info.cpp @@ -28,7 +28,8 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0 || + strcmp(api_version, "1.8") == 0; } #if defined(WIN32) diff --git a/src/game/game_info.cpp b/src/game/game_info.cpp index 39088b8462..05443327f2 100644 --- a/src/game/game_info.cpp +++ b/src/game/game_info.cpp @@ -25,7 +25,8 @@ static bool CheckAPIVersion(const char *api_version) { return strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 || - strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0; + strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0 || + strcmp(api_version, "1.8") == 0; } #if defined(WIN32) diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 462da891e7..fca129c6a6 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -79,8 +79,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,7,0,!!REVISION!! - PRODUCTVERSION 1,7,0,!!REVISION!! + FILEVERSION 1,8,0,!!REVISION!! + PRODUCTVERSION 1,8,0,!!REVISION!! FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 899a565bbe..b6bddeacfc 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -72,7 +72,7 @@ const byte _openttd_revision_modified = !!MODIFIED!!; * final release will always have a lower version number than the released * version, thus making comparisons on specific revisions easy. */ -const uint32 _openttd_newgrf_version = 1 << 28 | 7 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); +const uint32 _openttd_newgrf_version = 1 << 28 | 8 << 24 | 0 << 20 | 0 << 19 | (!!REVISION!! & ((1 << 19) - 1)); #ifdef __MORPHOS__ /** diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp index 23f4a0958f..db1c6eb2a2 100644 --- a/src/script/api/ai_changelog.hpp +++ b/src/script/api/ai_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.8.0 + * + * 1.8.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.7.0 * - * 1.7.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.6.1 - 1.6.0 * diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index a9e7b0b307..00b9539590 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -15,9 +15,13 @@ * functions may still be available if you return an older API version * in GetAPIVersion() in info.nut. * + * \b 1.8.0 + * + * 1.8.0 is not yet released. The following changes are not set in stone yet. + * * \b 1.7.0 * - * 1.7.0 is not yet released. The following changes are not set in stone yet. + * No changes * * \b 1.6.1 - 1.6.0 * From 7501b7cf7aafcac0dec469cbef5ece4e3f360b2d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 15:26:31 +0000 Subject: [PATCH 069/158] (svn r27784) -Fix [FS#6505]: Allow rail conversion even if ship is on tile (Samu). --- src/rail_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index a5face14c5..5582666b1c 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1603,7 +1603,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 * Tunnels and bridges have special check later */ if (tt != MP_TUNNELBRIDGE) { if (!IsCompatibleRail(type, totype)) { - CommandCost ret = EnsureNoVehicleOnGround(tile); + CommandCost ret = IsPlainRailTile(tile) ? EnsureNoTrainOnTrackBits(tile, GetTrackBits(tile)) : EnsureNoVehicleOnGround(tile); if (ret.Failed()) { error = ret; continue; From c366425de6a203c84f2491ea72edabfd4d8154c4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 15:32:40 +0000 Subject: [PATCH 070/158] (svn r27785) -Fix [FS#6508]: Buoys not always drawn after being placed depending on zoom level (Samu). --- src/waypoint_cmd.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/waypoint_cmd.cpp b/src/waypoint_cmd.cpp index efa48003f2..54489fa457 100644 --- a/src/waypoint_cmd.cpp +++ b/src/waypoint_cmd.cpp @@ -324,6 +324,7 @@ CommandCost CmdBuildBuoy(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (wp->town == NULL) MakeDefaultName(wp); MakeBuoy(tile, wp->index, GetWaterClass(tile)); + MarkTileDirtyByTile(tile); wp->UpdateVirtCoord(); InvalidateWindowData(WC_WAYPOINT_VIEW, wp->index); From 9a489375e36bdff2bb5a51f54991f6cff193b767 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 16:33:40 +0000 Subject: [PATCH 071/158] (svn r27786) -Fix [FS#6479]: AI configuration changed incorrect parameter when some parameters are hidden. --- src/ai/ai_gui.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index a0720e2ea5..dd1de4dc2e 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -531,21 +531,23 @@ struct AISettingsWindow : public Window { virtual void OnQueryTextFinished(char *str) { if (StrEmpty(str)) return; - ScriptConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin(); + VisibleSettingsList::const_iterator it = this->visible_settings.begin(); for (int i = 0; i < this->clicked_row; i++) it++; - if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return; + const ScriptConfigItem config_item = **it; + if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return; int32 value = atoi(str); - this->ai_config->SetSetting((*it).name, value); + this->ai_config->SetSetting(config_item.name, value); this->SetDirty(); } virtual void OnDropdownSelect(int widget, int index) { assert(this->clicked_dropdown); - ScriptConfigItemList::const_iterator it = this->ai_config->GetConfigList()->begin(); + VisibleSettingsList::const_iterator it = this->visible_settings.begin(); for (int i = 0; i < this->clicked_row; i++) it++; - if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (it->flags & SCRIPTCONFIG_INGAME) == 0) return; - this->ai_config->SetSetting((*it).name, index); + const ScriptConfigItem config_item = **it; + if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return; + this->ai_config->SetSetting(config_item.name, index); this->SetDirty(); } From 980871a87be10219734dd7e50aa309a6f9f9b7ee Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 12 Mar 2017 18:19:01 +0000 Subject: [PATCH 072/158] (svn r27787) -Fix: Update scrollbar when rebuilding AI/GS setting list. --- src/ai/ai_gui.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index dd1de4dc2e..101a97d0a9 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -306,7 +306,6 @@ struct AISettingsWindow : public Window { timeout(0) { this->ai_config = GetConfig(slot); - this->RebuildVisibleSettings(); this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_AIS_SCROLLBAR); @@ -314,7 +313,7 @@ struct AISettingsWindow : public Window { this->SetWidgetDisabledState(WID_AIS_RESET, _game_mode != GM_MENU && Company::IsValidID(this->slot)); - this->vscroll->SetCount((int)this->visible_settings.size()); + this->RebuildVisibleSettings(); } virtual void SetStringParameters(int widget) const @@ -342,6 +341,8 @@ struct AISettingsWindow : public Window { visible_settings.push_back(&(*it)); } } + + this->vscroll->SetCount((int)this->visible_settings.size()); } virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) From a77044f1852283eba5cab187bfacb54151824874 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 13 Mar 2017 07:37:05 +0000 Subject: [PATCH 073/158] (svn r27788) -Fix [FS#6536]: Get vehicle load amount after executing new cargo trigger. --- src/economy.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/economy.cpp b/src/economy.cpp index cdfa059e86..7461d34b77 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1643,13 +1643,11 @@ static void LoadUnloadVehicle(Vehicle *front) if (v->cargo_cap == 0) continue; artic_part++; - uint load_amount = GetLoadAmount(v); - GoodsEntry *ge = &st->goods[v->cargo_type]; if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) { uint cargo_count = v->cargo.UnloadCount(); - uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, load_amount) : cargo_count; + uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, GetLoadAmount(v)) : cargo_count; bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here? assert(payment != NULL); @@ -1754,8 +1752,8 @@ static void LoadUnloadVehicle(Vehicle *front) * has capacity for it, load it on the vehicle. */ uint cap_left = v->cargo_cap - v->cargo.StoredCount(); if (cap_left > 0 && (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0)) { - if (_settings_game.order.gradual_loading) cap_left = min(cap_left, load_amount); if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); + if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v)); uint loaded = ge->cargo.Load(cap_left, &v->cargo, st->xy, next_station); if (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0) { From 9169ab6ce227c364ddc26887d34065c245aecc7b Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 13 Mar 2017 18:45:37 +0000 Subject: [PATCH 074/158] (svn r27789) -Update from Eints: polish: 3 changes by wojteks86 greek: 1 change by kyrm --- src/lang/greek.txt | 4 +--- src/lang/polish.txt | 3 +++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 8659667126..1426856bde 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -31,8 +31,7 @@ STR_JUST_NOTHING :Τίποτα STR_CARGO_PLURAL_NOTHING : STR_CARGO_PLURAL_PASSENGERS :{G=m}Επιβάτες STR_CARGO_PLURAL_PASSENGERS.geniki :Επιβάτη -STR_CARGO_PLURAL_COAL :{G=m}Άνθρακες -STR_CARGO_PLURAL_COAL.geniki :Άνθρακων +STR_CARGO_PLURAL_COAL :{G=m}Άνθρακάς STR_CARGO_PLURAL_MAIL :{G=f}Αλληλογραφία STR_CARGO_PLURAL_MAIL.geniki :Αλληλογραφίας STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαια @@ -97,7 +96,6 @@ STR_CARGO_SINGULAR_NOTHING : STR_CARGO_SINGULAR_PASSENGER :{G=m}Επιβάτης STR_CARGO_SINGULAR_PASSENGER.subs :Επιβάτες STR_CARGO_SINGULAR_COAL :{G=m}Άνθρακας -STR_CARGO_SINGULAR_COAL.subs :Άνθρακες STR_CARGO_SINGULAR_MAIL :{G=f}Αλληλογραφία STR_CARGO_SINGULAR_MAIL.subs :Αλληλογραφία STR_CARGO_SINGULAR_OIL :{G=n}Πετρέλαιο diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 206530f09f..4647441fc0 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3674,6 +3674,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Wymaga: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Potrzebuje +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}oczekuje ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} From 2d45d55925d4caafb4a624aa2b053444c241adda Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 20:21:40 +0000 Subject: [PATCH 075/158] (svn r27790) -Fix [FS#6366]: [Win32] Mark OpenTTD as DPI-aware to avoid OS window scaling that breaks mouse input. --- projects/openttd_vs100.vcxproj | 12 ++++++++++++ projects/openttd_vs100.vcxproj.in | 12 ++++++++++++ projects/openttd_vs140.vcxproj | 12 ++++++++++++ projects/openttd_vs140.vcxproj.in | 12 ++++++++++++ 4 files changed, 48 insertions(+) diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index 59e087ee70..a71f235364 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -145,6 +145,9 @@ MachineX86 true + + PerMonitorHighDPIAware + @@ -188,6 +191,9 @@ MachineX86 + + PerMonitorHighDPIAware + @@ -244,6 +250,9 @@ MachineX64 true + + PerMonitorHighDPIAware + @@ -289,6 +298,9 @@ 1048576 MachineX64 + + PerMonitorHighDPIAware + diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in index c6b16455a9..fd3072f074 100644 --- a/projects/openttd_vs100.vcxproj.in +++ b/projects/openttd_vs100.vcxproj.in @@ -145,6 +145,9 @@ MachineX86 true + + PerMonitorHighDPIAware + @@ -188,6 +191,9 @@ MachineX86 + + PerMonitorHighDPIAware + @@ -244,6 +250,9 @@ MachineX64 true + + PerMonitorHighDPIAware + @@ -289,6 +298,9 @@ 1048576 MachineX64 + + PerMonitorHighDPIAware + !!FILES!! diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 8d8b980649..eb8494167d 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -151,6 +151,9 @@ true 5.01 + + PerMonitorHighDPIAware + @@ -198,6 +201,9 @@ MachineX86 5.01 + + PerMonitorHighDPIAware + @@ -257,6 +263,9 @@ true 5.02 + + PerMonitorHighDPIAware + @@ -306,6 +315,9 @@ MachineX64 5.02 + + PerMonitorHighDPIAware + diff --git a/projects/openttd_vs140.vcxproj.in b/projects/openttd_vs140.vcxproj.in index 76b16b5109..9d873283fa 100644 --- a/projects/openttd_vs140.vcxproj.in +++ b/projects/openttd_vs140.vcxproj.in @@ -151,6 +151,9 @@ true 5.01 + + PerMonitorHighDPIAware + @@ -198,6 +201,9 @@ MachineX86 5.01 + + PerMonitorHighDPIAware + @@ -257,6 +263,9 @@ true 5.02 + + PerMonitorHighDPIAware + @@ -306,6 +315,9 @@ MachineX64 5.02 + + PerMonitorHighDPIAware + !!FILES!! From 9a62317dfc37ca4fdeaa1a5786b11236d4ba1446 Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 21:56:38 +0000 Subject: [PATCH 076/158] (svn r27791) -Fix (r27790) [FS#6366]: Try #2. Now also for Visual Studio 2010. --- projects/dpi_aware.manifest | 7 +++++++ projects/openttd_vs100.vcxproj | 8 ++++---- projects/openttd_vs100.vcxproj.in | 8 ++++---- 3 files changed, 15 insertions(+), 8 deletions(-) create mode 100644 projects/dpi_aware.manifest diff --git a/projects/dpi_aware.manifest b/projects/dpi_aware.manifest new file mode 100644 index 0000000000..6f04161596 --- /dev/null +++ b/projects/dpi_aware.manifest @@ -0,0 +1,7 @@ + + + + True/PM + + + diff --git a/projects/openttd_vs100.vcxproj b/projects/openttd_vs100.vcxproj index a71f235364..9c3b107866 100644 --- a/projects/openttd_vs100.vcxproj +++ b/projects/openttd_vs100.vcxproj @@ -146,7 +146,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -192,7 +192,7 @@ MachineX86 - PerMonitorHighDPIAware + dpi_aware.manifest @@ -251,7 +251,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -299,7 +299,7 @@ MachineX64 - PerMonitorHighDPIAware + dpi_aware.manifest diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in index fd3072f074..c8e71c4234 100644 --- a/projects/openttd_vs100.vcxproj.in +++ b/projects/openttd_vs100.vcxproj.in @@ -146,7 +146,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -192,7 +192,7 @@ MachineX86 - PerMonitorHighDPIAware + dpi_aware.manifest @@ -251,7 +251,7 @@ true - PerMonitorHighDPIAware + dpi_aware.manifest @@ -299,7 +299,7 @@ MachineX64 - PerMonitorHighDPIAware + dpi_aware.manifest From c706eeda819e51118a2d898a01f20f0a41ec7c9c Mon Sep 17 00:00:00 2001 From: michi_cc Date: Mon, 13 Mar 2017 21:56:41 +0000 Subject: [PATCH 077/158] (svn r27792) -Add: [Win32] .gitignore for IntelliSense database of VS2015 Update 2. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 2b298a14a9..5aa8cb7849 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,8 @@ projects/*.sdf projects/*.opensdf projects/*.vcproj.*.user projects/*.vcxproj.user +projects/*.VC.db +projects/*.VC.opendb src/rev.cpp src/os/windows/ottdres.rc From 57745b1c74a6e0e6f334d931c0e1f0ddd98b9003 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 13 Mar 2017 22:16:44 +0000 Subject: [PATCH 078/158] (svn r27793) -Fix [FS#6450]: Use of uninitialised variable cause lzo to fail. Add check for error status. --- src/saveload/saveload.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 5a09906bda..dfa3be7219 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1994,7 +1994,7 @@ struct LZOLoadFilter : LoadFilter { byte out[LZO_BUFFER_SIZE + LZO_BUFFER_SIZE / 16 + 64 + 3 + sizeof(uint32) * 2]; uint32 tmp[2]; uint32 size; - lzo_uint len; + lzo_uint len = ssize; /* Read header*/ if (this->chain->Read((byte*)tmp, sizeof(tmp)) != sizeof(tmp)) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE, "File read failed"); @@ -2016,7 +2016,8 @@ struct LZOLoadFilter : LoadFilter { if (tmp[0] != lzo_adler32(0, out, size + sizeof(uint32))) SlErrorCorrupt("Bad checksum"); /* Decompress */ - lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL); + int ret = lzo1x_decompress_safe(out + sizeof(uint32) * 1, size, buf, &len, NULL); + if (ret != LZO_E_OK) SlError(STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE); return len; } }; From 36837a070c456860a0da73647d79fa9e39e0300a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 14 Mar 2017 00:57:52 +0000 Subject: [PATCH 079/158] (svn r27794) -Fix [FS#6526]: Chat text background overflowed due to missing padding. --- src/network/network_chat_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index 3416762d02..f1e54f38da 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -110,7 +110,7 @@ void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const char *m void NetworkReInitChatBoxSize() { _chatmsg_box.y = 3 * FONT_HEIGHT_NORMAL; - _chatmsg_box.height = MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 2; + _chatmsg_box.height = MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING) + 4; _chatmessage_backup = ReallocT(_chatmessage_backup, _chatmsg_box.width * _chatmsg_box.height * BlitterFactory::GetCurrentBlitter()->GetBytesPerPixel()); } From 5c7f97aff2d3121c60e335ce92341e99cd6aebf5 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 14 Mar 2017 18:45:36 +0000 Subject: [PATCH 080/158] (svn r27795) -Update from Eints: luxembourgish: 3 changes by Phreeze --- src/lang/luxembourgish.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 37aec445da..a671e4d44d 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3294,6 +3294,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}um waarden ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} From 206a0838e995fe74aae3867f93feb0aaf2acb219 Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 18 Mar 2017 17:14:53 +0000 Subject: [PATCH 081/158] (svn r27796) -Fix [FS#6545]: 32bpp-anim blitters assumed that pitch and width of the screen were equal. --- src/blitter/32bpp_anim.cpp | 56 ++++++++++++++++++--------------- src/blitter/32bpp_anim.hpp | 4 ++- src/blitter/32bpp_anim_sse4.cpp | 5 +-- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index deedaf34b5..532ad23cc7 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -39,13 +39,14 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel } Colour *dst = (Colour *)bp->dst + bp->top * bp->pitch + bp->left; - uint16 *anim = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'bp->dst' into an 'anim_buf' offset below. + uint16 *anim = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_pitch + bp->left; const byte *remap = bp->remap; // store so we don't have to access it via bp everytime for (int y = 0; y < bp->height; y++) { Colour *dst_ln = dst + bp->pitch; - uint16 *anim_ln = anim + this->anim_buf_width; + uint16 *anim_ln = anim + this->anim_buf_pitch; const Colour *src_px_ln = (const Colour *)((const byte *)src_px + *(const uint32 *)src_px); src_px++; @@ -279,9 +280,8 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, } Colour *udst = (Colour *)dst; - uint16 *anim; - - anim = this->anim_buf + ((uint32 *)dst - (uint32 *)_screen.dst_ptr); + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'dst' into an 'anim_buf' offset below. + uint16 *anim = this->anim_buf + ((uint32 *)dst - (uint32 *)_screen.dst_ptr); if (pal == PALETTE_TO_TRANSPARENT) { do { @@ -292,7 +292,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, anim++; } udst = udst - width + _screen.pitch; - anim = anim - width + this->anim_buf_width; + anim = anim - width + this->anim_buf_pitch; } while (--height); return; } @@ -305,7 +305,7 @@ void Blitter_32bppAnim::DrawColourMappingRect(void *dst, int width, int height, anim++; } udst = udst - width + _screen.pitch; - anim = anim - width + this->anim_buf_width; + anim = anim - width + this->anim_buf_pitch; } while (--height); return; } @@ -319,7 +319,8 @@ void Blitter_32bppAnim::SetPixel(void *video, int x, int y, uint8 colour) /* Set the colour in the anim-buffer too, if we are rendering to the screen */ if (_screen_disable_anim) return; - this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_width] = colour | (DEFAULT_BRIGHTNESS << 8); + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + this->anim_buf[((uint32 *)video - (uint32 *)_screen.dst_ptr) + x + y * this->anim_buf_pitch] = colour | (DEFAULT_BRIGHTNESS << 8); } void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colour) @@ -331,9 +332,8 @@ void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colou } Colour colour32 = LookupColourInPalette(colour); - uint16 *anim_line; - - anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + uint16 *anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; do { Colour *dst = (Colour *)video; @@ -347,7 +347,7 @@ void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colou anim++; } video = (uint32 *)video + _screen.pitch; - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } while (--height); } @@ -357,6 +357,7 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width, assert(video >= _screen.dst_ptr && video <= (uint32 *)_screen.dst_ptr + _screen.width + _screen.height * _screen.pitch); Colour *dst = (Colour *)video; const uint32 *usrc = (const uint32 *)src; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. uint16 *anim_line = ((uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; for (; height > 0; height--) { @@ -370,7 +371,7 @@ void Blitter_32bppAnim::CopyFromBuffer(void *video, const void *src, int width, /* Copy back the anim-buffer */ memcpy(anim_line, usrc, width * sizeof(uint16)); usrc = (const uint32 *)((const uint16 *)usrc + width); - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; /* Okay, it is *very* likely that the image we stored is using * the wrong palette animated colours. There are two things we @@ -397,11 +398,11 @@ void Blitter_32bppAnim::CopyToBuffer(const void *video, void *dst, int width, in assert(video >= _screen.dst_ptr && video <= (uint32 *)_screen.dst_ptr + _screen.width + _screen.height * _screen.pitch); uint32 *udst = (uint32 *)dst; const uint32 *src = (const uint32 *)video; - const uint16 *anim_line; if (this->anim_buf == NULL) return; - anim_line = ((const uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'video' into an 'anim_buf' offset below. + const uint16 *anim_line = ((const uint32 *)video - (uint32 *)_screen.dst_ptr) + this->anim_buf; for (; height > 0; height--) { memcpy(udst, src, width * sizeof(uint32)); @@ -410,7 +411,7 @@ void Blitter_32bppAnim::CopyToBuffer(const void *video, void *dst, int width, in /* Copy the anim-buffer */ memcpy(udst, anim_line, width * sizeof(uint16)); udst = (uint32 *)((uint16 *)udst + width); - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } } @@ -422,8 +423,8 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt /* We need to scroll the anim-buffer too */ if (scroll_y > 0) { - dst = this->anim_buf + left + (top + height - 1) * this->anim_buf_width; - src = dst - scroll_y * this->anim_buf_width; + dst = this->anim_buf + left + (top + height - 1) * this->anim_buf_pitch; + src = dst - scroll_y * this->anim_buf_pitch; /* Adjust left & width */ if (scroll_x >= 0) { @@ -436,13 +437,13 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt uint th = height - scroll_y; for (; th > 0; th--) { memcpy(dst, src, tw * sizeof(uint16)); - src -= this->anim_buf_width; - dst -= this->anim_buf_width; + src -= this->anim_buf_pitch; + dst -= this->anim_buf_pitch; } } else { /* Calculate pointers */ - dst = this->anim_buf + left + top * this->anim_buf_width; - src = dst - scroll_y * this->anim_buf_width; + dst = this->anim_buf + left + top * this->anim_buf_pitch; + src = dst - scroll_y * this->anim_buf_pitch; /* Adjust left & width */ if (scroll_x >= 0) { @@ -457,8 +458,8 @@ void Blitter_32bppAnim::ScrollBuffer(void *video, int &left, int &top, int &widt uint th = height + scroll_y; for (; th > 0; th--) { memmove(dst, src, tw * sizeof(uint16)); - src += this->anim_buf_width; - dst += this->anim_buf_width; + src += this->anim_buf_pitch; + dst += this->anim_buf_pitch; } } @@ -495,6 +496,7 @@ void Blitter_32bppAnim::PaletteAnimate(const Palette &palette) anim++; } dst += _screen.pitch - this->anim_buf_width; + anim += this->anim_buf_pitch - this->anim_buf_width; } /* Make sure the backend redraws the whole screen */ @@ -508,11 +510,13 @@ Blitter::PaletteAnimation Blitter_32bppAnim::UsePaletteAnimation() void Blitter_32bppAnim::PostResize() { - if (_screen.width != this->anim_buf_width || _screen.height != this->anim_buf_height) { + if (_screen.width != this->anim_buf_width || _screen.height != this->anim_buf_height || + _screen.pitch != this->anim_buf_pitch) { /* The size of the screen changed; we can assume we can wipe all data from our buffer */ free(this->anim_buf); - this->anim_buf = CallocT(_screen.width * _screen.height); this->anim_buf_width = _screen.width; this->anim_buf_height = _screen.height; + this->anim_buf_pitch = _screen.pitch; + this->anim_buf = CallocT(this->anim_buf_height * this->anim_buf_pitch); } } diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index 4b08429edc..1b35c17663 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -20,13 +20,15 @@ protected: uint16 *anim_buf; ///< In this buffer we keep track of the 8bpp indexes so we can do palette animation int anim_buf_width; ///< The width of the animation buffer. int anim_buf_height; ///< The height of the animation buffer. + int anim_buf_pitch; ///< The pitch of the animation buffer. Palette palette; ///< The current palette. public: Blitter_32bppAnim() : anim_buf(NULL), anim_buf_width(0), - anim_buf_height(0) + anim_buf_height(0), + anim_buf_pitch(0) { this->palette = _cur_palette; } diff --git a/src/blitter/32bpp_anim_sse4.cpp b/src/blitter/32bpp_anim_sse4.cpp index 7d4b66fca6..987cb0c6ac 100644 --- a/src/blitter/32bpp_anim_sse4.cpp +++ b/src/blitter/32bpp_anim_sse4.cpp @@ -35,7 +35,8 @@ inline void Blitter_32bppSSE4_Anim::Draw(const Blitter::BlitterParams *bp, ZoomL { const byte * const remap = bp->remap; Colour *dst_line = (Colour *) bp->dst + bp->top * bp->pitch + bp->left; - uint16 *anim_line = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left; + assert(_screen.pitch == this->anim_buf_pitch); // precondition for translating 'bp->dst' into an 'anim_buf' offset below. + uint16 *anim_line = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_pitch + bp->left; int effective_width = bp->width; /* Find where to start reading in the source sprite. */ @@ -353,7 +354,7 @@ next_line: if (mode != BM_TRANSPARENT) src_mv_line += si->sprite_width; src_rgba_line = (const Colour*) ((const byte*) src_rgba_line + si->sprite_line_size); dst_line += bp->pitch; - anim_line += this->anim_buf_width; + anim_line += this->anim_buf_pitch; } } IGNORE_UNINITIALIZED_WARNING_STOP From e2e9bd0b258199da65bee06c5ad17f0ec2da8185 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:43:43 +0000 Subject: [PATCH 082/158] (svn r27797) -Add: Display aircraft type in its vehicle window (patch by Samu) --- src/engine.cpp | 21 ++++++++++++++++++++- src/engine_base.h | 1 + src/lang/english.txt | 3 ++- src/vehicle_gui.cpp | 11 ++++++++--- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/engine.cpp b/src/engine.cpp index 3e69c4ac85..b0af3bc4df 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -464,7 +464,26 @@ uint16 Engine::GetRange() const } /** - * Initializes the EngineOverrideManager with the default engines. + * Get the name of the aircraft type for display purposes. + * @return Aircraft type string. + */ +StringID Engine::GetAircraftTypeText() const +{ + switch (this->type) { + case VEH_AIRCRAFT: + switch (this->u.air.subtype) { + case AIR_HELI: return STR_LIVERY_HELICOPTER; + case AIR_CTOL: return STR_LIVERY_SMALL_PLANE; + case AIR_CTOL | AIR_FAST: return STR_LIVERY_LARGE_PLANE; + default: NOT_REACHED(); + } + + default: NOT_REACHED(); + } +} + +/** + * Initializes the #EngineOverrideManager with the default engines. */ void EngineOverrideManager::ResetToDefaultMapping() { diff --git a/src/engine_base.h b/src/engine_base.h index 6a2e6816c3..25c6bfbeb9 100644 --- a/src/engine_base.h +++ b/src/engine_base.h @@ -111,6 +111,7 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> { uint GetDisplayMaxTractiveEffort() const; Date GetLifeLengthInDays() const; uint16 GetRange() const; + StringID GetAircraftTypeText() const; /** * Check whether the engine is hidden in the GUI for the given company. diff --git a/src/lang/english.txt b/src/lang/english.txt index 505356f08f..978e90ffa5 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3657,7 +3657,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 8ea8cda4c8..a77ea18df0 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2069,9 +2069,14 @@ struct VehicleDetailsWindow : Window { } } else { SetDParam(0, v->GetDisplayMaxSpeed()); - if (v->type == VEH_AIRCRAFT && Aircraft::From(v)->GetRange() > 0) { - SetDParam(1, Aircraft::From(v)->GetRange()); - string = STR_VEHICLE_INFO_MAX_SPEED_RANGE; + if (v->type == VEH_AIRCRAFT) { + SetDParam(1, v->GetEngine()->GetAircraftTypeText()); + if (Aircraft::From(v)->GetRange() > 0) { + SetDParam(2, Aircraft::From(v)->GetRange()); + string = STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE; + } else { + string = STR_VEHICLE_INFO_MAX_SPEED_TYPE; + } } else { string = STR_VEHICLE_INFO_MAX_SPEED; } From 7c3004c785e4ba134d204dd2dad0f7c7cd0c73e7 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:45:18 +0000 Subject: [PATCH 083/158] (svn r27798) -Change: Also remove obsolete string from the other languages --- src/lang/afrikaans.txt | 1 - src/lang/basque.txt | 1 - src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/bulgarian.txt | 1 - src/lang/catalan.txt | 1 - src/lang/croatian.txt | 1 - src/lang/czech.txt | 1 - src/lang/danish.txt | 1 - src/lang/dutch.txt | 1 - src/lang/english_AU.txt | 1 - src/lang/english_US.txt | 1 - src/lang/estonian.txt | 1 - src/lang/faroese.txt | 1 - src/lang/finnish.txt | 1 - src/lang/french.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/galician.txt | 1 - src/lang/german.txt | 1 - src/lang/greek.txt | 1 - src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/icelandic.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/irish.txt | 1 - src/lang/italian.txt | 1 - src/lang/japanese.txt | 1 - src/lang/korean.txt | 1 - src/lang/latin.txt | 1 - src/lang/latvian.txt | 1 - src/lang/lithuanian.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/norwegian_nynorsk.txt | 1 - src/lang/polish.txt | 1 - src/lang/portuguese.txt | 1 - src/lang/romanian.txt | 1 - src/lang/russian.txt | 1 - src/lang/serbian.txt | 1 - src/lang/simplified_chinese.txt | 1 - src/lang/slovak.txt | 1 - src/lang/slovenian.txt | 1 - src/lang/spanish.txt | 1 - src/lang/spanish_MX.txt | 1 - src/lang/swedish.txt | 1 - src/lang/tamil.txt | 1 - src/lang/thai.txt | 1 - src/lang/traditional_chinese.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/unfinished/macedonian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/unfinished/urdu.txt | 1 - src/lang/vietnamese.txt | 1 - src/lang/welsh.txt | 1 - 56 files changed, 56 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 377c928460..915bec0b5b 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar re} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. spoed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. spoed: {LTBLUE}{VELOCITY} {BLACK}Afstand: {LTBLUE}{COMMA} teëls STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewig: {LTBLUE}{WEIGHT_SHORT} {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Maks. spoed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Massa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Maks. spoed: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 1db1ed48eb..b1419b4a88 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3528,7 +3528,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} urte ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} urte ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Gehienezko abiadura: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Gehienezko abiadura: {LTBLUE}{VELOCITY} {BLACK}Irismena: {LTBLUE}{COMMA} lauki STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pisua: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potentzia: {LTBLUE}{POWER}{BLACK} Gehienezko abiadura: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pisua: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potentzia: {LTBLUE}{POWER}{BLACK} Gehienezko abiadura: {LTBLUE}{VELOCITY} {BLACK}Gehienezko trakzio indarra: {LTBLUE}{FORCE} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 221f6f1573..310e03d676 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -4002,7 +4002,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} г{P о STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} г{P од ады адоў} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. хуткасьць: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. хуткасьць: {LTBLUE}{VELOCITY} {BLACK}Далёкасьць: {LTBLUE}{COMMA} клетк{P а i ак} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Магутнасьць: {LTBLUE}{POWER}{BLACK} Макс. хуткасьць: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Магутнасьць: {LTBLUE}{POWER}{BLACK} Макс. хуткасьць: {LTBLUE}{VELOCITY} {BLACK}Макс. ЦН: {LTBLUE}{FORCE} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index fdc960e950..49386dacc9 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade Max: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{G=f}{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 4adbc74de7..85914ba1df 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3569,7 +3569,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} год STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} годин{P а и} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорост: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. скорост: {LTBLUE}{VELOCITY} {BLACK}Обхват: {LTBLUE}{COMMA} полета STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Тегло: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощност: {LTBLUE}{POWER}{BLACK} Макс. Скорост: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Тегло: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощност: {LTBLUE}{POWER}{BLACK} Макс. Скорост: {LTBLUE}{VELOCITY} {BLACK}Макс. Т.С.: {LTBLUE}{FORCE} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 7d407a0b68..0c7b9c1b53 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} any{P " 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_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}E.T. màx.: {LTBLUE}{FORCE} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index cbb33f95e1..2c0df9cd38 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3753,7 +3753,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polj{P e a a} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Najveća vučna sila: {LTBLUE}{FORCE} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index b053b507af..8f6879bb7c 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3748,7 +3748,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok roky let} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Dosah: {LTBLUE}{COMMA} polí STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Max. tažná síla: {LTBLUE}{FORCE} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 5fdc19c51c..cea4ee092d 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. hast.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. hastighed: {LTBLUE}{VELOCITY} {BLACK}Rækkevidde: {LTBLUE}{COMMA} felter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} {BLACK}Maks. trækkraft: {LTBLUE}{FORCE} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 541d07b146..3326317495 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar ren} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Bereik: {LTBLUE}{COMMA} tegels STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Max. T.K.: {LTBLUE}{FORCE} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index abdac23882..8def6f1382 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3600,7 +3600,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index e67bb2c06b..7ddcff1d8b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3655,7 +3655,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 4ce9d63471..c7f1eb0ae5 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3707,7 +3707,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} aasta{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} aasta{P "" t} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maksimaalne kiirus: {LTBLUE}{VELOCITY} {BLACK}Tegevusraadius: {LTBLUE}{COMMA} ruutu STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Veojõud: {LTBLUE}{FORCE} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index b121d9cb86..2a4d9e1eea 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3230,7 +3230,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ár ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ár ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. ferð: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks. ferð: {LTBLUE}{VELOCITY} {BLACK}Vídd: {LTBLUE}{COMMA} puntar STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Megi: {LTBLUE}{POWER}{BLACK} Maks. ferð: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Megi: {LTBLUE}{POWER}{BLACK} Maks. ferð: {LTBLUE}{VELOCITY} {BLACK}Maks. D.Ó.: {LTBLUE}{FORCE} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 25bcabe338..ae55d1031a 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} vuo{P s STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} vuo{P si tta} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Huippunopeus: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Suurin nopeus: {LTBLUE}{VELOCITY} {BLACK}Toimintasäde: {LTBLUE}{COMMA} ruutua STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Paino: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teho: {LTBLUE}{POWER}{BLACK} Maks. nopeus: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/french.txt b/src/lang/french.txt index 33af65666f..ff03506b0b 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" nées} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − Rayon d'action{NBSP}: {LTBLUE}{COMMA} cases STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Poids{NBSP}: {LTBLUE}{NBSP}{WEIGHT_SHORT} − {BLACK}Puissance{NBSP}: {LTBLUE}{NBSP}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{NBSP}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Poids{NBSP}: {LTBLUE}{WEIGHT_SHORT}{BLACK} − Puissance{NBSP}: {LTBLUE}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − E.T. max.{NBSP}: {LTBLUE}{FORCE} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 3722eb1634..f4ff7f5b63 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3878,7 +3878,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliadhna bhliadhna bliadhna bliadhna} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Astar: {LTBLUE}{COMMA} {P leac leac leacan leac} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Neart as motha: {LTBLUE}{FORCE} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b097f4daef..371dbbcc9e 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3596,7 +3596,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}Autonomía: {LTBLUE}{COMMA} cadros STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}T.E. máx.: {LTBLUE}{FORCE} diff --git a/src/lang/german.txt b/src/lang/german.txt index 8a7bf51d33..e1bbca7dc9 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} Jahr{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Jahr{P "" e} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. Geschwindigkeit: {LTBLUE}{VELOCITY} {BLACK}Reichweite: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Max. Zugkraft: {LTBLUE}{FORCE} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 1426856bde..cdd0a2224d 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3768,7 +3768,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} χρό STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} χρόν{P ος ια} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Εμβέλεια: {LTBLUE}{COMMA} τετραγωνίδια STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Μέγ. Ε.Δ: {LTBLUE}{FORCE} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index ef3bb5070a..497bb0908c 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3663,7 +3663,6 @@ STR_VEHICLE_INFO_AGE :({1:COMMA}) ש STR_VEHICLE_INFO_AGE_RED :{RED}({1:COMMA}) שנים {NBSP}{0:COMMA} STR_VEHICLE_INFO_MAX_SPEED :{BLACK}מהירות מקסימלית: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}מהירות מירבית: {LTBLUE}{VELOCITY} {BLACK}טווח: {LTBLUE}{COMMA} משבצות STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY} {BLACK}T.E. מקסימלי: {LTBLUE}{FORCE} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index fd4f1338d7..5d247d8fcd 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3713,7 +3713,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} év ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} év ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Hatótávolság: {LTBLUE}{COMMA} mező STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 55a54c2d6c..83601b21c1 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3422,7 +3422,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ár ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ár ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Hámarkshraði: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Hámarkshraði: {LTBLUE}{VELOCITY} {BLACK}Drægni: {LTBLUE}{COMMA} reitir STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Þyngd: {LTBLUE}{WEIGHT_SHORT} {BLACK}Afl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Þyngd: {LTBLUE}{WEIGHT_SHORT} {BLACK}Afl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY} {BLACK}Hámarks dráttarafl.: {LTBLUE}{FORCE} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 35b8db2522..20f186daa6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3645,7 +3645,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} tahun ( STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} tahun ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Kec. Max: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Kecepatan Max.: {LTBLUE}{VELOCITY} {BLACK}Jangkauan: {LTBLUE}{COMMA} kotak STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index b8a262e858..0a4ce2b3da 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliain bhliain bliana mbliana bliana} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luas uasta: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Luas uasta: {LTBLUE}{VELOCITY} {BLACK}Raon: {LTBLUE}{COMMA} {P th th th dt t}íl STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Meáchan: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhacht: {LTBLUE}{POWER}{BLACK}Luas uasta: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Meáchan: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhacht: {LTBLUE}{POWER}{BLACK} Uas-luas: {LTBLUE}{VELOCITY} {BLACK}T.E. Uasta: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index cb75eaf927..f48b725f5c 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3687,7 +3687,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P o i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} {BLACK}Autonomia: {LTBLUE}{COMMA} riquadr{P o i} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} {BLACK}S.T. max.: {LTBLUE}{FORCE} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 251c68b55f..45e8e28d18 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA}年({COM STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}年({COMMA}年) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最高速度: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最高速度: {LTBLUE}{VELOCITY} {BLACK}航続距離: {LTBLUE}{COMMA}タイル STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}重量: {LTBLUE}{WEIGHT_SHORT} {BLACK}出力: {LTBLUE}{POWER}{BLACK} 最高速度: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}重量: {LTBLUE}{WEIGHT_SHORT} {BLACK}出力: {LTBLUE}{POWER}{BLACK} 最高速度: {LTBLUE}{VELOCITY} {BLACK}最大牽引力: {LTBLUE}{FORCE} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index d05ab967eb..e4c4e47a81 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3658,7 +3658,6 @@ STR_VEHICLE_INFO_AGE :{COMMA}년 ({CO STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}년 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}최고 속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항속거리: {LTBLUE}{COMMA} 칸 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} {BLACK}최고 T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 380ac68537..3ec00ffaba 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3857,7 +3857,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P u STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P us i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Max. distantia volatus: {LTBLUE}{COMMA} tegulas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}V.T. Max.: {LTBLUE}{FORCE} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index f75d381b39..893369d645 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3580,7 +3580,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} gad{P s STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} gad{P s i u} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. ātrums: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks. ātrums: {LTBLUE}{VELOCITY} {BLACK}Apgabals: {LTBLUE}{COMMA} flīzes STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Svars: {LTBLUE}{WEIGHT_SHORT} {BLACK}Jauda: {LTBLUE}{POWER}{BLACK} Maks. ātrums: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Svars: {LTBLUE}{WEIGHT_SHORT} {BLACK}Jauda: {LTBLUE}{POWER}{BLACK} Maks. ātrums: {LTBLUE}{VELOCITY} {BLACK}Maks. spēks: {LTBLUE}{FORCE} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f9067c5567..9bd232fdb8 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3906,7 +3906,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} met{P a STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} met{P ai ai ų} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Didž. greitis: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Didž. greitis: {LTBLUE}{VELOCITY} {BLACK}Nuotolis: {LTBLUE}{COMMA} langeliai STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Svoris: {LTBLUE}{WEIGHT_SHORT} {BLACK}Galia: {LTBLUE}{POWER}{BLACK} Didž. greitis: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Svoris: {LTBLUE}{WEIGHT_SHORT} {BLACK}Galia: {LTBLUE}{POWER}{BLACK} Didž. greitis: {LTBLUE}{VELOCITY} {BLACK}Didž. traukos jėga: {LTBLUE}{FORCE} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index a671e4d44d..0fa846cbbb 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3655,7 +3655,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} Joer ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Joer ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschwindegkeet: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Distanz: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7779ea9504..ef2e43d874 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3301,7 +3301,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} tahun ( STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} tahun ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Kelajuan Maks.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Kelajuan Maks.: {LTBLUE}{VELOCITY} {BLACK}Jarak: {LTBLUE}{COMMA} petak STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kuasa: {LTBLUE}{POWER}{BLACK} Kelajuan Maks.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kuasa: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}T.E. Maks.: {LTBLUE}{FORCE} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index e8bd624a0f..380b5755ef 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index aa455f5efe..fc35f1e447 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3566,7 +3566,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. hastigheit: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks fart: {LTBLUE}{VELOCITY} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks. hastigheit: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks. hastigheit: {LTBLUE}{VELOCITY} {BLACK}Maks. trekkraft: {LTBLUE}{FORCE} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4647441fc0..bfa4d6b283 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4041,7 +4041,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok lata lat} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Prędkość maksymalna: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Prędkość maksymalna: {LTBLUE}{VELOCITY} {BLACK}Zasięg: {LTBLUE}{COMMA} pól STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Masa: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moc: {LTBLUE}{POWER}{BLACK} Prędkość maksymalna: {LTBLUE}{VELOCITY} {BLACK}Maksymalna siła pociągowa: {LTBLUE}{FORCE} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 552456b081..9cb843fbd9 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3650,7 +3650,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Máx. velocidade: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidade max.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Max. velocidade: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Máx. velocidade: {LTBLUE}{VELOCITY} {BLACK}Máx. E.T.: {LTBLUE}{FORCE} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 1a3e29f479..884ccdb73b 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3606,7 +3606,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Viteză max.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Viteză maximă: {LTBLUE}{VELOCITY} {BLACK}Rază de acțiune: {LTBLUE}{COMMA} pătrățele STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Greutate: {LTBLUE}{WEIGHT_SHORT} {BLACK}Putere: {LTBLUE}{POWER}{BLACK} Viteză max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Greutate: {LTBLUE}{WEIGHT_SHORT} {BLACK}Putere: {LTBLUE}{POWER}{BLACK} Viteză max.: {LTBLUE}{VELOCITY} {BLACK}Efort tractiv: {LTBLUE}{FORCE} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index fc53374e3c..c58dfb982c 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3847,7 +3847,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P го STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P год года лет} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Дальность: {LTBLUE}{COMMA} клет{P ка ки ок} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Макс. ТУ: {LTBLUE}{FORCE} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 61f848e8b3..d2f6cba872 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3860,7 +3860,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} pločica STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK} Najveća vučna snaga: {LTBLUE}{FORCE} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 6be975993f..32b8d88cc1 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} 年 ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} 年 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最大速度:{LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最大速度: {LTBLUE}{VELOCITY} {BLACK}航行距离: {LTBLUE}{COMMA} 格 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}重量:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最大速度:{LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}重量:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最大速度:{LTBLUE}{VELOCITY} {BLACK}最大牵引力:{LTBLUE}{FORCE} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 539b5379d7..2da0bda1c2 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3717,7 +3717,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} rok{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} rok{P "" y ov} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rýchlosť: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. rýchlosť: {LTBLUE}{VELOCITY} {BLACK}Dosah: {LTBLUE}{COMMA} políčok STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnosť: {LTBLUE}{WEIGHT_SHORT} {BLACK}Sila: {LTBLUE}{POWER}{BLACK} Max. rýchlosť: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnosť: {LTBLUE}{WEIGHT_SHORT} {BLACK}Sila: {LTBLUE}{POWER}{BLACK} Max. rýchlosť: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 1cd9a11aa9..4516428bd0 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3802,7 +3802,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} let{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} let{P o i a ""} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. hitrost: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Max. hitrost: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polj STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Teža: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moč: {LTBLUE}{POWER}{BLACK} Max. hitrost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Teža: {LTBLUE}{WEIGHT_SHORT} {BLACK}Moč: {LTBLUE}{POWER}{BLACK} Max. hitrost: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 37b033277d..09d78228ad 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index c2de0c7009..80709c2bdf 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3653,7 +3653,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 1abfef52a5..ccb6279452 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maxhastiget: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Räckvidd: {LTBLUE}{COMMA} rutor STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 32c647fac1..bb7da43c90 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3228,7 +3228,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} வர STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} வருடம்{P "" கள்} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}அதி. வேகம்: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}அதி. வேகம்: {LTBLUE}{VELOCITY} {BLACK}வரையறை: {LTBLUE}{COMMA} கட்டங்கள் STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}எடை: {LTBLUE}{WEIGHT_SHORT} {BLACK}திறன்: {LTBLUE}{POWER}{BLACK} அதி. வேகம்: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}எடை: {LTBLUE}{WEIGHT_SHORT} {BLACK}திறன்: {LTBLUE}{POWER}{BLACK} அதி. வேகம்: {LTBLUE}{VELOCITY} {BLACK}அதி. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 96fa8775f8..412a5d59bf 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3568,7 +3568,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} ปี STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ปี ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}ความเร็วสูงสุด: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}ความเร็วสูงสุด: {LTBLUE}{VELOCITY} {BLACK}พิสัย: {LTBLUE}{COMMA} ช่อง STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}น้ำหนัก: {LTBLUE}{WEIGHT_SHORT} {BLACK}พลังขับเคลื่อน: {LTBLUE}{POWER}{BLACK} ความเร็วสูงสุด: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}น้ำหนัก: {LTBLUE}{WEIGHT_SHORT} {BLACK}พลังขับเคลื่อน: {LTBLUE}{POWER}{BLACK} ความเร็วสูงสุด: {LTBLUE}{VELOCITY} {BLACK}กำลังลากจูงสูงสุด: {LTBLUE}{FORCE} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index b12a1b1df6..0cfa4e567b 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} 年 ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} 年 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}最高速度:{LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}最高速度: {LTBLUE}{VELOCITY} {BLACK}範圍: {LTBLUE}{COMMA} 格 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}載重:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最高速度:{LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}載重:{LTBLUE}{WEIGHT_SHORT} {BLACK}功率:{LTBLUE}{POWER}{BLACK} 最高速度:{LTBLUE}{VELOCITY} {BLACK}最大牽引力:{LTBLUE}{FORCE} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 5352546c22..73ba5e9244 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3652,7 +3652,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} sene ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} sene ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Azami Hız: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Azami hız: {LTBLUE}{VELOCITY} {BLACK}Menzil: {LTBLUE}{COMMA} kare STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Ağırlık: {LTBLUE}{WEIGHT_SHORT} {BLACK}Güç: {LTBLUE}{POWER}{BLACK} Azami Hız: {LTBLUE}{VELOCITY} {BLACK}Azami Tork: {LTBLUE}{FORCE} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index ef7d9ad9e4..0f2b90eec1 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3780,7 +3780,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} р{P і STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} р{P ік оки оків} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Дальність: {LTBLUE}{COMMA} клітинок STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Макс. тяга: {LTBLUE}{FORCE} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index b10f2761f8..e22a52fe8b 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1549,7 +1549,6 @@ STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}Име STR_VEHICLE_INFO_AGE :{COMMA} година{P "" s} ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} година{P "" s} ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Макс. брзина: {LTBLUE}{VELOCITY} {BLACK}Опсег: {LTBLUE}{COMMA} плочки diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 5b1787eaec..2770597751 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3128,7 +3128,6 @@ STR_VEHICLE_DETAILS_AIRCRAFT_RENAME :{BLACK}نامگ STR_VEHICLE_INFO_AGE :{COMMA}سال ({COMMA}) STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} سال ({COMMA}) -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}بیشینه سرعت: {LTBLUE}{VELOCITY} {BLACK}برد: {LTBLUE}{COMMA} قطعه STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}ظرفیت: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING} diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 4a4c5b2c59..3cff4ee19a 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2447,7 +2447,6 @@ STR_VEHICLE_COMMAND_STARTED :{GREEN} شرو # The next two need to stay in this order -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}حد رفتار: {LTBLUE}{VELOCITY} {BLACK} پہنچ: {LTBLUE}{COMMA} ٹائلیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index e78a0d4eaa..5e610de801 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3649,7 +3649,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} năm ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} năm ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tốc độ tối đa: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Tốc độ max: {LTBLUE}{VELOCITY} {BLACK} Tầm xa: {LTBLUE}{COMMA} ô STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tải trọng: {LTBLUE}{WEIGHT_SHORT} {BLACK}Công suất: {LTBLUE}{POWER}{BLACK} Tốc độ tối đa: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 56dfccdfd6..bc6a4744a9 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3651,7 +3651,6 @@ STR_VEHICLE_INFO_AGE :{COMMA} blwyddy STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} blwyddyn ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}cyflymder uchaf: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Cyf. uchaf: {LTBLUE}{VELOCITY} {BLACK}Pell. Cyrraedd: {LTBLUE}{COMMA} teil STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pwys: {LTBLUE}{WEIGHT_SHORT} {BLACK}Pŵer: {LTBLUE}{POWER}{BLACK} Cyflym. Max: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pwys: {LTBLUE}{WEIGHT_SHORT} {BLACK}Pŵer: {LTBLUE}{POWER}{BLACK} Cyflym. Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From fa5fd39c23e89537db4049fbf5a95e57525abde0 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:46:15 +0000 Subject: [PATCH 084/158] (svn r27799) -Add: Display aircraft type in buy window (patch by Samu) --- src/build_vehicle_gui.cpp | 16 +++++++++++++++- src/lang/english.txt | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index bd4bf3b59b..655a18d7f8 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -719,7 +719,15 @@ static int DrawShipPurchaseInfo(int left, int right, int y, EngineID engine_numb return y; } -/* Draw aircraft specific details */ +/** + * Draw aircraft specific details in the buy window. + * @param left Left edge of the window to draw in. + * @param right Right edge of the window to draw in. + * @param y Top of the area to draw in. + * @param engine_number Engine to display. + * @param refittable If set, the aircraft can be refitted. + * @return Bottom of the used area. + */ static int DrawAircraftPurchaseInfo(int left, int right, int y, EngineID engine_number, bool refittable) { const Engine *e = Engine::Get(engine_number); @@ -755,6 +763,12 @@ static int DrawAircraftPurchaseInfo(int left, int right, int y, EngineID engine_ DrawString(left, right, y, STR_PURCHASE_INFO_RUNNINGCOST); y += FONT_HEIGHT_NORMAL; + /* Aircraft type */ + SetDParam(0, e->GetAircraftTypeText()); + DrawString(left, right, y, STR_PURCHASE_INFO_AIRCRAFT_TYPE); + y += FONT_HEIGHT_NORMAL; + + /* Aircraft range, if available. */ uint16 range = e->GetRange(); if (range != 0) { SetDParam(0, range); diff --git a/src/lang/english.txt b/src/lang/english.txt index 978e90ffa5..683f352e22 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3398,6 +3398,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Aircraft type: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Train vehicle selection list. Click on vehicle for information. Ctrl+Click for toggling hiding of the vehicle type STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Road vehicle selection list. Click on vehicle for information. Ctrl+Click for toggling hiding of the vehicle type From b110c9c2593f5f39a6ca63dfc1cbabd474ccf0fb Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:47:48 +0000 Subject: [PATCH 085/158] (svn r27800) -Change: Rename long aircraft string names of the preview window --- src/engine_gui.cpp | 8 ++++---- src/lang/english.txt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 899543c189..245b46fe7a 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -204,10 +204,10 @@ static StringID GetAircraftEngineInfoString(const Engine *e) SetDParam(i++, CT_MAIL); SetDParam(i++, mail_capacity); SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST; } else { SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } } @@ -224,7 +224,7 @@ static StringID GetRoadVehEngineInfoString(const Engine *e) SetDParam(2, CT_INVALID); } SetDParam(4, e->GetRunningCost()); - return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } else { SetDParam(0, e->GetCost()); SetDParam(2, e->GetDisplayMaxSpeed()); @@ -252,7 +252,7 @@ static StringID GetShipEngineInfoString(const Engine *e) SetDParam(2, e->GetDefaultCargoType()); SetDParam(3, e->GetDisplayDefaultCapacity()); SetDParam(4, e->GetRunningCost()); - return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST; + return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } diff --git a/src/lang/english.txt b/src/lang/english.txt index 683f352e22..380442a814 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING1} From 119965125db88dfc89c6eabb536dbc623e05229a Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:48:27 +0000 Subject: [PATCH 086/158] (svn r27801) -Change: Also rename long aircraft preview window strings of other languages --- src/lang/afrikaans.txt | 8 ++++---- src/lang/arabic_egypt.txt | 4 ++-- src/lang/basque.txt | 8 ++++---- src/lang/belarusian.txt | 8 ++++---- src/lang/brazilian_portuguese.txt | 8 ++++---- src/lang/bulgarian.txt | 8 ++++---- src/lang/catalan.txt | 8 ++++---- src/lang/croatian.txt | 8 ++++---- src/lang/czech.txt | 8 ++++---- src/lang/danish.txt | 8 ++++---- src/lang/dutch.txt | 8 ++++---- src/lang/english_AU.txt | 8 ++++---- src/lang/english_US.txt | 8 ++++---- src/lang/esperanto.txt | 4 ++-- src/lang/estonian.txt | 8 ++++---- src/lang/faroese.txt | 8 ++++---- src/lang/finnish.txt | 8 ++++---- src/lang/french.txt | 8 ++++---- src/lang/gaelic.txt | 8 ++++---- src/lang/galician.txt | 8 ++++---- src/lang/german.txt | 8 ++++---- src/lang/greek.txt | 8 ++++---- src/lang/hebrew.txt | 8 ++++---- src/lang/hungarian.txt | 8 ++++---- src/lang/icelandic.txt | 8 ++++---- src/lang/indonesian.txt | 8 ++++---- src/lang/irish.txt | 8 ++++---- src/lang/italian.txt | 8 ++++---- src/lang/japanese.txt | 8 ++++---- src/lang/korean.txt | 8 ++++---- src/lang/latin.txt | 8 ++++---- src/lang/latvian.txt | 8 ++++---- src/lang/lithuanian.txt | 8 ++++---- src/lang/luxembourgish.txt | 8 ++++---- src/lang/malay.txt | 8 ++++---- src/lang/norwegian_bokmal.txt | 8 ++++---- src/lang/norwegian_nynorsk.txt | 8 ++++---- src/lang/polish.txt | 8 ++++---- src/lang/portuguese.txt | 8 ++++---- src/lang/romanian.txt | 8 ++++---- src/lang/russian.txt | 8 ++++---- src/lang/serbian.txt | 8 ++++---- src/lang/simplified_chinese.txt | 8 ++++---- src/lang/slovak.txt | 8 ++++---- src/lang/slovenian.txt | 8 ++++---- src/lang/spanish.txt | 8 ++++---- src/lang/spanish_MX.txt | 8 ++++---- src/lang/swedish.txt | 8 ++++---- src/lang/tamil.txt | 8 ++++---- src/lang/thai.txt | 8 ++++---- src/lang/traditional_chinese.txt | 8 ++++---- src/lang/turkish.txt | 8 ++++---- src/lang/ukrainian.txt | 8 ++++---- src/lang/unfinished/frisian.txt | 4 ++-- src/lang/unfinished/macedonian.txt | 4 ++-- src/lang/unfinished/persian.txt | 4 ++-- src/lang/unfinished/urdu.txt | 4 ++-- src/lang/vietnamese.txt | 8 ++++---- src/lang/welsh.txt | 8 ++++---- 59 files changed, 224 insertions(+), 224 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 915bec0b5b..849bae3ca7 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koste: {CURRENCY_LONG} Massa: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER}{}Loopkoste: {CURRENCY_LONG}/jr{}Kapasitiet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koste: {CURRENCY_LONG} Gewig: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER} Maks. Treg Krag: {6:FORCE}{}Lopende Koste: {4:CURRENCY_LONG}/jaar{}Kapasitiet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 1cd5332615..6f3a37c12d 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -3037,8 +3037,8 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سك STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}تبديل {STRING} - {STRING} diff --git a/src/lang/basque.txt b/src/lang/basque.txt index b1419b4a88..a11b603704 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3405,10 +3405,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Lokomotora magn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostea: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Pisua: {VELOCITY} Potentzia: {POWER}{}Mantenimendua: {CURRENCY_LONG}/urtero{}Edukiera: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostua: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Abiadura: {VELOCITY} Potentzia: {POWER} Gehienezko trakzioa: {6:FORCE}{}Mantinemendua: {4:CURRENCY_LONG}/urtero{}Edukiera: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ordezkatu {STRING} - {STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 310e03d676..b931ce20c0 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3869,10 +3869,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :магніта STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER}{}Кошт абслуг.: {CURRENCY_LONG}/год{}Ёмістасьць: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER} Макс. ЦН: {6:FORCE}{}Кошт абслуг.: {4:CURRENCY_LONG}/год{}Ёмістасьць: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} — {STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 49386dacc9..af67c31a7d 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 85914ba1df..0f7b4798f7 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3444,10 +3444,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомот STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY_LONG}/г.{}Капацитет: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разходи: {4:CURRENCY_LONG}/год.{}Вместимост: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING} - {STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 0c7b9c1b53..43232295b6 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 2c0df9cd38..aa7af66039 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3627,10 +3627,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 8f6879bb7c..7d3c24aa00 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3622,10 +3622,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index cea4ee092d..a1f4c519c6 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 3326317495..1618ad5bfd 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Brandstofprijs: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Bedrijfskosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 8def6f1382..6aee450760 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3479,10 +3479,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 7ddcff1d8b..e097f19af8 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3529,10 +3529,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 67abcfc9ed..7dca768118 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2954,8 +2954,8 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY_LONG} jare{}Kapablo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Povo: {POWER} Maks. T.E.: {6:FORCE}{}Irkosto: {4:CURRENCY_LONG}/jaro{}Kapacito: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Anstataŭu {STRING.n} - {STRING} diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index c7f1eb0ae5..3f6dfcb21b 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3582,10 +3582,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnethõljukve STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Tippkiirus: {VELOCITY} Võimsus: {POWER}{}Käituskulud: {CURRENCY_LONG}/aastas{}Kandevõime: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 2a4d9e1eea..39995c7816 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3141,10 +3141,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár{}Pláss: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER} Maks. D.Ó.: {6:FORCE}{}Rakstrar kostnaður: {4:CURRENCY_LONG}/ár{}Pláss: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Být um {STRING} - {STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index ae55d1031a..96c165fe64 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. Vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index ff03506b0b..ca7a0ef86c 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index f4ff7f5b63..e6e45c428f 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3753,10 +3753,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 371dbbcc9e..d95e8a4ed2 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3471,10 +3471,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index e1bbca7dc9..74647d6163 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index cdd0a2224d..4722530b4a 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3642,10 +3642,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 497bb0908c..34c9999658 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3538,10 +3538,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :קטר פס מ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}{1:WEIGHT_SHORT} :משקל {NBSP}{0:CURRENCY_LONG} :מחיר{} {NBSP}{3:POWER} :עצמת מנוע {NBSP}{2:VELOCITY} :מהירות {NBSP}{}{5:CARGO_LONG} : קיבולת {NBSP} לשנה {NBSP}{4:CURRENCY_LONG} :עלות תפעולית STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}עלות: {CURRENCY_LONG} משקל: {WEIGHT_SHORT}{}מהירות: {VELOCITY} הספק: {POWER} מקסימלי T.E.: {6:FORCE}{}עלות תפעולית: {4:CURRENCY_LONG}/לשנה{}קיבולת: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 5d247d8fcd..3310c80551 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3588,10 +3588,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 83601b21c1..2dda848af6 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3301,10 +3301,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Segulsvifvagn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hraði: {VELOCITY} Afl: {POWER}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári{}Burðargeta: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hámarskhraði: {VELOCITY} Afl: {POWER} Hámarks kraftur: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/ári{}Burðargeta: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Endurnýja {STRING} - {STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 20f186daa6..5ec2db8f23 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3520,10 +3520,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :lokomotif magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Daya: {POWER}{}Biaya ops.: {CURRENCY_LONG}/thn{}Kapasitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Biaya Operasional: {4:CURRENCY_LONG}/yr{}Kapasitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 0a4ce2b3da..331edd3d01 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :inneall gluaist STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costas {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER}{}Costas Coinneála {CURRENCY_LONG}/bl{}Toilleadh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costas: {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER} T.E. uasta: {6:FORCE}{}Costas Coinneála: {4:CURRENCY_LONG}/bl{}Toilleadh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ionadaigh{STRING} - {STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index f48b725f5c..6ca8a8563f 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3561,10 +3561,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 45e8e28d18..5fa2665cd8 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3527,10 +3527,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :リニア列車 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY}{}出力: {POWER}{}運用費: {CURRENCY_LONG}/年{}収容量: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY} 出力: {POWER} 最大牽引力: {6:FORCE}{}運用費: {4:CURRENCY_LONG}/年{}収容量 {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING}の自動置換 - {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index e4c4e47a81..7d2db5306f 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3532,10 +3532,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 3ec00ffaba..1a7f7b6c5d 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3731,10 +3731,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 893369d645..f195304a54 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3457,10 +3457,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā{}Ietilpība: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER} Maks. spēks: {6:FORCE}{}Kārtējās izmaksas: {4:CURRENCY_LONG} gadā{}Ietilpība: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Nomainīt {STRING} - {STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 9bd232fdb8..2848902d9e 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3779,10 +3779,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kur :„Maglev“ lo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus{}Talpa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER} Maks. T.E.: {6:FORCE}{}Einamosios išlaidos: {4:CURRENCY_LONG}/yr{}Talpa: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING} - {STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 0fa846cbbb..0878f0474f 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3529,10 +3529,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index ef2e43d874..7fc7c6129c 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3183,10 +3183,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :keretapi maglev STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER}{}Kos Pengendalian: {CURRENCY_LONG}/thn{}Kapasiti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER} Maks. E.K.: {6:FORCE}{}Kos Pengendalian: {4:CURRENCY_LONG}/thn{}Kapasiti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Gantikan {STRING} - {STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 380b5755ef..4871bce9e0 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3528,10 +3528,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index fc35f1e447..137f7ba61f 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3441,10 +3441,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER} Maks. trekkraft: {6:FORCE}{}Driftskostnad: {4:CURRENCY_LONG}/yr{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatt {STRING} - {STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index bfa4d6b283..46a32c0a0f 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3915,10 +3915,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Mag STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 9cb843fbd9..14c6bbfc19 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER} Máx. F.T.: {6:FORCE}{}Custo de circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 884ccdb73b..96cb9e204d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3481,10 +3481,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă per STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index c58dfb982c..310824dd42 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3717,10 +3717,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d2f6cba872..2b2b8c412d 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3725,10 +3725,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.aku :magnetnog žel. STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Cena Održavanja: {CURRENCY_LONG}/god.{}Nosivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Najveća vučna snaga: {6:FORCE}{}Cena Održavanja: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zameni {STRING} - {STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 32b8d88cc1..4dcc7f24fd 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 2da0bda1c2..23d2b7220a 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3592,10 +3592,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=z}magnetick STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Výkon: {POWER}{}Prevádzkové náklady: {CURRENCY_LONG}/rok{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Sila: {POWER} Max. T.E.: {6:FORCE}{}Prevádzkové náklady: {4:CURRENCY_LONG}/yr{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Výmena {STRING} - {STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 4516428bd0..a9c0102a5a 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3677,10 +3677,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 09d78228ad..08bcede274 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 80709c2bdf..7a76be702f 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3527,10 +3527,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index ccb6279452..4497c1b40d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index bb7da43c90..f1ffb99639 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3118,10 +3118,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :மேக்ல STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER}{}ஓட்டுவதற்கான செலவு: {CURRENCY_LONG}/வரு{}கொள்ளளவு: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER} அதி. T.E.: {6:FORCE}{}ஓட்டுவதற்கான செலவு: {4:CURRENCY_LONG}/வரு{}கொள்ளளவு: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}மாற்று {STRING} - {STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 412a5d59bf..be24cb3971 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3446,10 +3446,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :รถไฟร STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี{}ความจุ: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER} กำัลังลากจูงสูงสุด: {6:FORCE}{}ค่าปฎิบัติการ: {4:CURRENCY_LONG}/ปี{}ความจุ: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}เปลี่ยน {STRING} - {STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 0cfa4e567b..7f3b90761d 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁浮機車頭 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}營運成本:{CURRENCY_LONG} / 年{}容量:{CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牽引力:{6:FORCE}{}營運成本:{4:CURRENCY_LONG}/年{}容量:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}替換 {STRING} - {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 73ba5e9244..bbc0c935a7 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3526,10 +3526,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}Bakım: {CURRENCY_LONG}/sene{}Kapasite: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}Çalışma Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 0f2b90eec1..3be5d430e0 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3655,10 +3655,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітн STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index d3cd291ea3..362503303c 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3220,8 +3220,8 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail lokomo STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index e22a52fe8b..f13cc7e14c 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1501,8 +1501,8 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Цент # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :Воз diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 2770597751..be31d3f6fb 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3054,8 +3054,8 @@ STR_ENGINE_PREVIEW_SHIP :کشتی STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :لوکوموتیو مونوریل STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :لوکوموتیو ریل مغناطیسی -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 3cff4ee19a..7143d1e01b 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2405,8 +2405,8 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ # Autoreplace window diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 5e610de801..8b971e1d1d 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3524,10 +3524,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index bc6a4744a9..986aed5754 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3525,10 +3525,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :trên maglef STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Côst: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER}{}Côst Rhedeg: {CURRENCY_LONG}/bl{}Gallu cludo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER} Grym Uchaf: {6:FORCE}{}Cost Rhedeg: {4:CURRENCY_LONG}/bl{}Cynhwysedd: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl +STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Disodli {STRING} - {STRING} From 1f70279419734767f99a55eaeca43f725d4eb551 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:48:54 +0000 Subject: [PATCH 087/158] (svn r27802) -Add: Display aircraft type in engine preview window (patch by Samu) --- src/engine_gui.cpp | 5 +++-- src/lang/english.txt | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 245b46fe7a..070ad67275 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -196,6 +196,7 @@ static StringID GetAircraftEngineInfoString(const Engine *e) uint i = 0; SetDParam(i++, e->GetCost()); SetDParam(i++, e->GetDisplayMaxSpeed()); + SetDParam(i++, e->GetAircraftTypeText()); if (range > 0) SetDParam(i++, range); SetDParam(i++, cargo); SetDParam(i++, capacity); @@ -204,10 +205,10 @@ static StringID GetAircraftEngineInfoString(const Engine *e) SetDParam(i++, CT_MAIL); SetDParam(i++, mail_capacity); SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST; } else { SetDParam(i++, e->GetRunningCost()); - return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; + return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST; } } diff --git a/src/lang/english.txt b/src/lang/english.txt index 380442a814..141346d4d0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3532,10 +3532,11 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING1} From 17b46109ad6e83ea7efcb1299b4af28a994771b3 Mon Sep 17 00:00:00 2001 From: alberth Date: Sat, 18 Mar 2017 20:49:24 +0000 Subject: [PATCH 088/158] (svn r27803) -Change: Remove obsolete aircraft preview strings from other languages --- src/lang/afrikaans.txt | 3 --- src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 3 --- src/lang/belarusian.txt | 3 --- src/lang/brazilian_portuguese.txt | 3 --- src/lang/bulgarian.txt | 3 --- src/lang/catalan.txt | 3 --- src/lang/croatian.txt | 3 --- src/lang/czech.txt | 3 --- src/lang/danish.txt | 3 --- src/lang/dutch.txt | 3 --- src/lang/english_AU.txt | 3 --- src/lang/english_US.txt | 3 --- src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 3 --- src/lang/faroese.txt | 3 --- src/lang/finnish.txt | 3 --- src/lang/french.txt | 3 --- src/lang/gaelic.txt | 3 --- src/lang/galician.txt | 3 --- src/lang/german.txt | 3 --- src/lang/greek.txt | 3 --- src/lang/hebrew.txt | 3 --- src/lang/hungarian.txt | 3 --- src/lang/icelandic.txt | 3 --- src/lang/indonesian.txt | 3 --- src/lang/irish.txt | 3 --- src/lang/italian.txt | 3 --- src/lang/japanese.txt | 3 --- src/lang/korean.txt | 3 --- src/lang/latin.txt | 3 --- src/lang/latvian.txt | 3 --- src/lang/lithuanian.txt | 3 --- src/lang/luxembourgish.txt | 3 --- src/lang/malay.txt | 3 --- src/lang/norwegian_bokmal.txt | 3 --- src/lang/norwegian_nynorsk.txt | 3 --- src/lang/polish.txt | 3 --- src/lang/portuguese.txt | 3 --- src/lang/romanian.txt | 3 --- src/lang/russian.txt | 3 --- src/lang/serbian.txt | 3 --- src/lang/simplified_chinese.txt | 3 --- src/lang/slovak.txt | 3 --- src/lang/slovenian.txt | 3 --- src/lang/spanish.txt | 3 --- src/lang/spanish_MX.txt | 3 --- src/lang/swedish.txt | 3 --- src/lang/tamil.txt | 3 --- src/lang/thai.txt | 3 --- src/lang/traditional_chinese.txt | 3 --- src/lang/turkish.txt | 3 --- src/lang/ukrainian.txt | 3 --- src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/macedonian.txt | 2 -- src/lang/unfinished/persian.txt | 2 -- src/lang/unfinished/urdu.txt | 2 -- src/lang/vietnamese.txt | 3 --- src/lang/welsh.txt | 3 --- 59 files changed, 168 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 849bae3ca7..81bc7bca1c 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koste: {CURRENCY_LONG} Massa: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER}{}Loopkoste: {CURRENCY_LONG}/jr{}Kapasitiet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koste: {CURRENCY_LONG} Gewig: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER} Maks. Treg Krag: {6:FORCE}{}Lopende Koste: {4:CURRENCY_LONG}/jaar{}Kapasitiet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teëls{}Kapasiteit: {CARGO_LONG}, {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Max. Spoed: {VELOCITY} Afstand: {COMMA} teels{}Kapasiteit: {CARGO_LONG}{}Hardloop Koste: {CURRENCY_LONG}/jaar # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 6f3a37c12d..cb6f643dee 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -3037,7 +3037,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سك STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة # Autoreplace window diff --git a/src/lang/basque.txt b/src/lang/basque.txt index a11b603704..f8b9913cc9 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3405,10 +3405,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Lokomotora magn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostea: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Pisua: {VELOCITY} Potentzia: {POWER}{}Mantenimendua: {CURRENCY_LONG}/urtero{}Edukiera: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostua: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Abiadura: {VELOCITY} Potentzia: {POWER} Gehienezko trakzioa: {6:FORCE}{}Mantinemendua: {4:CURRENCY_LONG}/urtero{}Edukiera: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}, {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY} Irismena: {COMMA} tiles{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ordezkatu {STRING} - {STRING} diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index b931ce20c0..5742b9db05 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3869,10 +3869,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :магніта STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER}{}Кошт абслуг.: {CURRENCY_LONG}/год{}Ёмістасьць: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER} Макс. ЦН: {6:FORCE}{}Кошт абслуг.: {4:CURRENCY_LONG}/год{}Ёмістасьць: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клетк{P а i ак}{}Умяшчальнасьць: {CARGO_LONG}, {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY} Далёкасьць: {COMMA} клет{P ка кi ак}{}Умяшчальнасьць: {CARGO_LONG}{}Кошт абслугоўваньня: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} — {STRING} diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index af67c31a7d..f42d463010 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Cust de manut.: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manut.: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 0f7b4798f7..22b00078ab 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3444,10 +3444,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомот STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY_LONG}/г.{}Капацитет: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разходи: {4:CURRENCY_LONG}/год.{}Вместимост: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}, {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY} Обхват: {COMMA} полета{}Капацитет: {CARGO_LONG}{}Транспортни разходи: {CURRENCY_LONG}/година # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING} - {STRING} diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 43232295b6..42411873ef 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. màx.: {VELOCITY} Abast: {COMMA} cel·les{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index aa7af66039..ea5e064f67 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3627,10 +3627,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cijena: {CURRENCY_LONG} Maks. Brzina: {VELOCITY} Domet: {COMMA} tiles{}Kapacitet: {CARGO_LONG}{}Trošak vožnje: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 7d3c24aa00..448efacd9a 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3622,10 +3622,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost: {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena {CURRENCY_LONG} Max. Rychlost {VELOCITY} Dosah: {COMMA} polí{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} diff --git a/src/lang/danish.txt b/src/lang/danish.txt index a1f4c519c6..378ccd72a2 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Faste udgifter: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. hastighed: {VELOCITY} Rækkevidde: {COMMA} felter{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING} diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 1618ad5bfd..024b4e2e51 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Brandstofprijs: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prijs: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Bedrijfskosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY} Bereik: {COMMA} tegels{}Capaciteit: {CARGO_LONG}{}Bedrijfskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING} diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 6aee450760..cf63178a4b 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3479,10 +3479,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index e097f19af8..4d0e5e2524 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3529,10 +3529,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 7dca768118..28f6d9066c 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2954,7 +2954,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY_LONG} jare{}Kapablo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Povo: {POWER} Maks. T.E.: {6:FORCE}{}Irkosto: {4:CURRENCY_LONG}/jaro{}Kapacito: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}, {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro # Autoreplace window diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 3f6dfcb21b..fa93dbe660 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3582,10 +3582,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnethõljukve STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Tippkiirus: {VELOCITY} Võimsus: {POWER}{}Käituskulud: {CURRENCY_LONG}/aastas{}Kandevõime: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Kasutamise hind: {CURRENCY_LONG}/aastas -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Maksimaalne kiirus: {VELOCITY} Tegevusraadius: {COMMA} ruutu{}Mahutavus: {CARGO_LONG}{}Kasutamise kulu: {CURRENCY_LONG}/aastas # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING} diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 39995c7816..77b514c02c 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -3141,10 +3141,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár{}Pláss: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER} Maks. D.Ó.: {6:FORCE}{}Rakstrar kostnaður: {4:CURRENCY_LONG}/ár{}Pláss: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}, {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY} Vídd: {COMMA} puntar{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Být um {STRING} - {STRING} diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 96c165fe64..87e2e50a19 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. Vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}, {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Suurin nopeus: {VELOCITY} Toimintasäde: {COMMA} ruutua{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING} diff --git a/src/lang/french.txt b/src/lang/french.txt index ca7a0ef86c..2708c6be7a 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coût{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY} − Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index e6e45c428f..304d541354 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -3753,10 +3753,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY} Astar: {COMMA} leacan{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index d95e8a4ed2..93942d6e0b 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3471,10 +3471,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY} Autonomía: {COMMA} cadros{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} diff --git a/src/lang/german.txt b/src/lang/german.txt index 74647d6163..2ea57b7710 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Höchstgeschwindigkeit: {VELOCITY} Reichweite: {COMMA} Felder{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/a # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 4722530b4a..6cb475ba43 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3642,10 +3642,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY} Εμβέλεια: {COMMA} τετραγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 34c9999658..d92c1acfd9 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3538,10 +3538,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :קטר פס מ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}{1:WEIGHT_SHORT} :משקל {NBSP}{0:CURRENCY_LONG} :מחיר{} {NBSP}{3:POWER} :עצמת מנוע {NBSP}{2:VELOCITY} :מהירות {NBSP}{}{5:CARGO_LONG} : קיבולת {NBSP} לשנה {NBSP}{4:CURRENCY_LONG} :עלות תפעולית STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}עלות: {CURRENCY_LONG} משקל: {WEIGHT_SHORT}{}מהירות: {VELOCITY} הספק: {POWER} מקסימלי T.E.: {6:FORCE}{}עלות תפעולית: {4:CURRENCY_LONG}/לשנה{}קיבולת: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות שוטפת: {CURRENCY_LONG}/לשנה STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מירבית: {VELOCITY} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעול: {CURRENCY_LONG}/שנה # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 3310c80551..3a5c36dbe8 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3588,10 +3588,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 2dda848af6..8b975aa4a0 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3301,10 +3301,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Segulsvifvagn STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hraði: {VELOCITY} Afl: {POWER}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári{}Burðargeta: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Verð: {CURRENCY_LONG} Þyngd: {WEIGHT_SHORT}{}Hámarskhraði: {VELOCITY} Afl: {POWER} Hámarks kraftur: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/ári{}Burðargeta: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Rekstrarkosnaður: {CURRENCY_LONG} á ári -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY} Drægni: {COMMA} reitir{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Endurnýja {STRING} - {STRING} diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 5ec2db8f23..d4fb0f97af 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3520,10 +3520,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :lokomotif magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Daya: {POWER}{}Biaya ops.: {CURRENCY_LONG}/thn{}Kapasitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Biaya Operasional: {4:CURRENCY_LONG}/yr{}Kapasitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kecepatan Max.: {VELOCITY} Jangkauan: {COMMA} kotak{}Kapasitas: {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING} diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 331edd3d01..5a40971b66 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :inneall gluaist STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costas {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER}{}Costas Coinneála {CURRENCY_LONG}/bl{}Toilleadh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costas: {CURRENCY_LONG} Meáchan: {WEIGHT_SHORT}{}Luas: {VELOCITY} Cumhacht: {POWER} T.E. uasta: {6:FORCE}{}Costas Coinneála: {4:CURRENCY_LONG}/bl{}Toilleadh: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíl{}Toilleadh: {CARGO_LONG}, {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas uasta: {VELOCITY} Raon: {COMMA} tíleanna{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ionadaigh{STRING} - {STRING} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 6ca8a8563f..ca85973cf5 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3561,10 +3561,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 5fa2665cd8..75821b07d4 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3527,10 +3527,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :リニア列車 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY}{}出力: {POWER}{}運用費: {CURRENCY_LONG}/年{}収容量: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}価格: {CURRENCY_LONG} 重量: {WEIGHT_SHORT}{}最高速度: {VELOCITY} 出力: {POWER} 最大牽引力: {6:FORCE}{}運用費: {4:CURRENCY_LONG}/年{}収容量 {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}、{CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY} 航続距離: {COMMA}タイル{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING}の自動置換 - {STRING} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 7d2db5306f..bd40157012 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3532,10 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY} 항속거리: {COMMA} 칸{}수용량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 1a7f7b6c5d..eb1e2f8033 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3731,10 +3731,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY} Range: {COMMA} tiles{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index f195304a54..45f80eaa09 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3457,10 +3457,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomot STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā{}Ietilpība: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER} Maks. spēks: {6:FORCE}{}Kārtējās izmaksas: {4:CURRENCY_LONG} gadā{}Ietilpība: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}, {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY} Apgabals: {COMMA} lauciņi{}Ietilpība: {CARGO_LONG}{} Kārtējās izmaksas : {CURRENCY_LONG} gadā # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Nomainīt {STRING} - {STRING} diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 2848902d9e..83cf62075f 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3779,10 +3779,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kur :„Maglev“ lo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus{}Talpa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER} Maks. T.E.: {6:FORCE}{}Einamosios išlaidos: {4:CURRENCY_LONG}/yr{}Talpa: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY}{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}, {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. greitis: {VELOCITY} Nuotolis: {COMMA} langeliai{}Talpa: {CARGO_LONG}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING} - {STRING} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 0878f0474f..71b70a45d2 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3529,10 +3529,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten {CURRENCY_LONG}/Joer STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY} Distanz: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 7fc7c6129c..5ed16decaf 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3183,10 +3183,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :keretapi maglev STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER}{}Kos Pengendalian: {CURRENCY_LONG}/thn{}Kapasiti: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER} Maks. E.K.: {6:FORCE}{}Kos Pengendalian: {4:CURRENCY_LONG}/thn{}Kapasiti: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG}Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}, {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY} Jarak: {COMMA} petak{}Kapasiti: {CARGO_LONG}{}Kos berjalan: {CURRENCY_LONG}/thn # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Gantikan {STRING} - {STRING} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 4871bce9e0..9f60b97ac8 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3528,10 +3528,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 137f7ba61f..96ee8362bd 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3441,10 +3441,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER} Maks. trekkraft: {6:FORCE}{}Driftskostnad: {4:CURRENCY_LONG}/yr{}Kapasitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. fart: {VELOCITY} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatt {STRING} - {STRING} diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 46a32c0a0f..4f137e1e89 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3915,10 +3915,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Mag STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}, {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY} Zasięg: {COMMA} pól{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING} diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 14c6bbfc19..0f77917da1 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER} Máx. F.T.: {6:FORCE}{}Custo de circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Velocidade max.: {VELOCITY} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de manutenção: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING} diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 96cb9e204d..7fd3ee581d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3481,10 +3481,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă per STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} tiles{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost rulare: {CURRENCY_LONG}/an -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză maximă: {VELOCITY} Rază de acțiune: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}{}Cost de rulare: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 310824dd42..1e83056e0a 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3717,10 +3717,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY} Дальность: {COMMA} клет{P 3 ка ки ок}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуживания: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 2b2b8c412d..076758eba2 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3725,10 +3725,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.aku :magnetnog žel. STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Cena Održavanja: {CURRENCY_LONG}/god.{}Nosivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Najveća vučna snaga: {6:FORCE}{}Cena Održavanja: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}, {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY} Domet: {COMMA} pločica{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god. # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zameni {STRING} - {STRING} diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 4dcc7f24fd..bb23f31af6 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}, {CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}, {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY} 航行距离: {COMMA} 格{}运载量: {CARGO_LONG}{}运营成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 23d2b7220a..d9ca9debb7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3592,10 +3592,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=z}magnetick STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Výkon: {POWER}{}Prevádzkové náklady: {CURRENCY_LONG}/rok{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Sila: {POWER} Max. T.E.: {6:FORCE}{}Prevádzkové náklady: {4:CURRENCY_LONG}/yr{}Kapacita: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rýchlosť: {VELOCITY} Dosah: {COMMA} políčok{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Výmena {STRING} - {STRING} diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index a9c0102a5a..15d1b85639 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3677,10 +3677,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomo STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}, {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Hitrost: {VELOCITY} Domet: {COMMA} polj{}Zmogljivost: {CARGO_LONG}{}Stroški delovanja: {CURRENCY_LONG}/leto # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 08bcede274..f3bd99aa48 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7a76be702f..7e5223f0fc 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3527,10 +3527,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 4497c1b40d..e9bc290f04 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/år -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Driftkostnad: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index f1ffb99639..a1e4c43fac 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -3118,10 +3118,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :மேக்ல STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER}{}ஓட்டுவதற்கான செலவு: {CURRENCY_LONG}/வரு{}கொள்ளளவு: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER} அதி. T.E.: {6:FORCE}{}ஓட்டுவதற்கான செலவு: {4:CURRENCY_LONG}/வரு{}கொள்ளளவு: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} எல்லை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}, {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY} வரையறை: {COMMA} கட்டங்கள்{}கொள்ளளவு: {CARGO_LONG}{}இயக்குவதற்கான செலவு: {CURRENCY_LONG}/வரு # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}மாற்று {STRING} - {STRING} diff --git a/src/lang/thai.txt b/src/lang/thai.txt index be24cb3971..72241e4d5e 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3446,10 +3446,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :รถไฟร STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี{}ความจุ: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER} กำัลังลากจูงสูงสุด: {6:FORCE}{}ค่าปฎิบัติการ: {4:CURRENCY_LONG}/ปี{}ความจุ: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฎิบัติการ: {CURRENCY_LONG}/ปี STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} ช่อง{}ความจุ: {CARGO_LONG}, {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY} พิสัย: {COMMA} tiles{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}เปลี่ยน {STRING} - {STRING} diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 7f3b90761d..7c207f60c4 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁浮機車頭 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}營運成本:{CURRENCY_LONG} / 年{}容量:{CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牽引力:{6:FORCE}{}營運成本:{4:CURRENCY_LONG}/年{}容量:{5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}, {CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}, {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}成本: {CURRENCY_LONG} 最高速度: {VELOCITY} 範圍: {COMMA} 格{}容量: {CARGO_LONG}{}營運成本: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}替換 {STRING} - {STRING} diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index bbc0c935a7..bad2604fe6 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3526,10 +3526,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}Bakım: {CURRENCY_LONG}/sene{}Kapasite: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Maliyet: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER} Azami Tork: {6:FORCE}{}Çalışma Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}, {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY} Menzil: {COMMA} kare{}Kapasite: {CARGO_LONG}{}Çalışma gideri: {CURRENCY_LONG}/yıl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING} diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 3be5d430e0..66546b7ef6 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3655,10 +3655,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітн STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Ціна: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY} Дальність: {COMMA} клітинок{}Місткість: {CARGO_LONG}{}Витрати від експлуатації: {CURRENCY_LONG}/рік # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING} diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 362503303c..dc049e5d98 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3221,7 +3221,6 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY} Bereik: {COMMA} tegels{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING} diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index f13cc7e14c..e6abadca01 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1501,8 +1501,6 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Цент # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA} плочки{}Капацитет: {CARGO_LONG}, {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. брзина: {VELOCITY} Опсег: {COMMA}плочки{}капацитет: {CARGO_LONG}{}Вклучување Цена: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :Воз diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index be31d3f6fb..10689c715a 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -3054,8 +3054,6 @@ STR_ENGINE_PREVIEW_SHIP :کشتی STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :لوکوموتیو مونوریل STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :لوکوموتیو ریل مغناطیسی -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}, {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} بیشینه سرعت: {VELOCITY} برد: {COMMA} قطعه{}ظرفیت: {CARGO_LONG}{}هزینه نگهداری: {CURRENCY_LONG}/درسال # Autoreplace window STR_REPLACE_VEHICLE_TRAIN :قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 7143d1e01b..934c405b22 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2405,8 +2405,6 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} # Engine preview window -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}, {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}قیمت: {CURRENCY_LONG} حد رفتار: {VELOCITY} پہنچ: {COMMA} ٹائلیں{} گنجائش: {CARGO_LONG}{}چلانے کا خرچہ: {CURRENCY_LONG} سالانہ # Autoreplace window diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 8b971e1d1d..7808129fa9 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3524,10 +3524,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Giá thành: {CURRENCY_LONG} Tốc độ tối đa: {VELOCITY}{}Sức chứa: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Gía: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}, {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Giá: {CURRENCY_LONG} Tốc độ max: {VELOCITY} Tầm xa: {COMMA} ô{}Trọng tải: {CARGO_LONG}{}Chi phí hoạt động: {CURRENCY_LONG}/năm # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING} diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 986aed5754..bc80a83111 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3525,10 +3525,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :trên maglef STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Côst: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER}{}Côst Rhedeg: {CURRENCY_LONG}/bl{}Gallu cludo: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER} Grym Uchaf: {6:FORCE}{}Cost Rhedeg: {4:CURRENCY_LONG}/bl{}Cynhwysedd: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Côst Rhedeg: {CURRENCY_LONG}/bl STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}, {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl -STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyf. Uchaf: {VELOCITY} Pellter: {COMMA} teil{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Disodli {STRING} - {STRING} From bf305762558324b9280c8b78c85d3f855bc5e043 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 19 Mar 2017 18:45:38 +0000 Subject: [PATCH 089/158] (svn r27804) -Update from Eints: italian: 7 changes by lorenzodv luxembourgish: 11 changes by Phreeze french: 7 changes by glx --- src/lang/french.txt | 7 +++++++ src/lang/italian.txt | 7 +++++++ src/lang/luxembourgish.txt | 13 +++++++++++-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 2708c6be7a..1d8926ddf1 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3399,6 +3399,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tous les types STR_PURCHASE_INFO_ALL_BUT :Tous sauf {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Effort de traction max.{NBSP}: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rayon d'action{NBSP}: {GOLD}{COMMA}{NBSP}cases +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Type d'aéronef{NBSP}: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Choix du véhicule. Cliquer sur un véhicule pour obtenir des informations. Ctrl-clic pour basculer le masquage du type de véhicule STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Choix du véhicule routier. Cliquer sur un véhicule pour obtenir des informations. Ctrl-clic pour basculer le masquage du type de véhicule @@ -3533,6 +3534,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotive STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an{}Capacité{NBSP}: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Poids{NBSP}: {WEIGHT_SHORT}{}Vitesse{NBSP}: {VELOCITY} − Puissance{NBSP}: {POWER}{}Effort de traction max.{NBSP}: {6:FORCE}{}Coûts d'entretien{NBSP}: {4:CURRENCY_LONG}/an{}Capacité{NBSP}: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} − Vitesse max.{NBSP}: {VELOCITY}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING}{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING}{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING} - Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}, {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Prix{NBSP}: {CURRENCY_LONG} - Vitesse max.{NBSP}: {VELOCITY}{}Type d'aéronef{NBSP}: {STRING} - Rayon d'action{NBSP}: {COMMA} cases{}Capacité{NBSP}: {CARGO_LONG}{}Coûts d'entretien{NBSP}: {CURRENCY_LONG}/an # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Remplacer {STRING} - {STRING} @@ -3655,6 +3660,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} an{P "" STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} an{P "" nées} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} - Type d'aéronef{NBSP}: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} - Type d'aéronef{NBSP}: {LTBLUE}{STRING}{BLACK} - Rayon d'action{NBSP}: {LTBLUE}{COMMA} cases STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Poids{NBSP}: {LTBLUE}{NBSP}{WEIGHT_SHORT} − {BLACK}Puissance{NBSP}: {LTBLUE}{NBSP}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{NBSP}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Poids{NBSP}: {LTBLUE}{WEIGHT_SHORT}{BLACK} − Puissance{NBSP}: {LTBLUE}{POWER}{BLACK} − Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − E.T. max.{NBSP}: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index ca85973cf5..60ab69ba4a 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3428,6 +3428,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tutti i tipi di STR_PURCHASE_INFO_ALL_BUT :Tutto tranne {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Sforzo di trazione massimo: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Autonomia: {GOLD}{COMMA} riquadr{P o i} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo di aeromobile: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Elenco di selezione dei veicoli ferroviari - fare clic su un veicolo per informazioni. CTRL+clic mostra/nasconde il tipo di veicolo STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Elenco selezione automezzi - fare clic su un veicolo per informazioni. CTRL+clic mostra/nasconde il tipo di automezzo @@ -3562,6 +3563,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{}Costo d'esercizio: {CURRENCY_LONG}/anno{}Capacità: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocità: {VELOCITY} Potenza: {POWER}{} S.T. max.: {6:FORCE}{}Costo d'esercizio: {4:CURRENCY_LONG}/anno{}Capacità: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}, {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocità max.: {VELOCITY}{}Tipo aeromobile: {STRING} Autonomia: {COMMA} riquadr{P o i}{}Capacità: {CARGO_LONG}{}Costo d'esercizio: {CURRENCY_LONG}/anno # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Rimpiazza {STRING} - {STRING} @@ -3684,6 +3689,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P o STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P o i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} {BLACK}Tipo aeromobile: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}elocità max.: {LTBLUE}{VELOCITY} {BLACK}Tipo aeromobile: {LTBLUE}{STRING} {BLACK}Autonomia: {LTBLUE}{COMMA} riquadr{P o i} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potenza: {LTBLUE}{POWER}{BLACK} Velocità max.: {LTBLUE}{VELOCITY} {BLACK}S.T. max.: {LTBLUE}{FORCE} diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 71b70a45d2..bb28119ea3 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3297,6 +3297,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}um waarden +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} @@ -3396,6 +3398,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All Wuerentyp STR_PURCHASE_INFO_ALL_BUT :Alles ausser {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zéikraaft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Distanz: {GOLD}{COMMA} Felder +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Fliger Typ: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Zuchlëscht - klick op en Zuch fir Informatiounen. Ctrl+Klick fir tëscht dem Verstoppen hin an hier ze sprangen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Stroossegefierlëscht - klick op en Gefier fir Informatiounen. Ctrl+Klick fir tëscht dem Verstoppen hin an hier ze sprangen @@ -3527,9 +3530,13 @@ STR_ENGINE_PREVIEW_SHIP :Schëff STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Joer{}Kapazitéit: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Jr{}Kapazitéit: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Joer +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING}{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING} Reeschwäit: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}, {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Fliger Typ: {STRING} Reechwäit: {COMMA} Felder{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Ersetz {STRING} - {STRING} @@ -3652,6 +3659,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} Joer ({ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Joer ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschwindegkeet: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Fliger Typ: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Fliger Typ: {LTBLUE}{STRING} {BLACK}Reechwäit: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewiicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraaft: {LTBLUE}{POWER}{BLACK} Max. Geschwindegkeet: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From f0062f94d64c8eb0d1a13cef35bb6c599525d333 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 21:57:54 +0000 Subject: [PATCH 090/158] (svn r27805) -Codechange: Remove function ShipGetNewDirectionFromTiles The only user of ShipGetNewDirectionFromTiles can be better served by DiagdirBetweenTiles, so remove the former. (cirdan) --- src/ship_cmd.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 2a760e2ca7..5f6a77f370 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -462,14 +462,6 @@ static const Direction _new_vehicle_direction_table[] = { DIR_E , DIR_SE, DIR_S }; -static Direction ShipGetNewDirectionFromTiles(TileIndex new_tile, TileIndex old_tile) -{ - uint offs = (TileY(new_tile) - TileY(old_tile) + 1) * 4 + - TileX(new_tile) - TileX(old_tile) + 1; - assert(offs < 11 && offs != 3 && offs != 7); - return _new_vehicle_direction_table[offs]; -} - static Direction ShipGetNewDirection(Vehicle *v, int x, int y) { uint offs = (y - v->y_pos + 1) * 4 + (x - v->x_pos + 1); @@ -599,9 +591,8 @@ static void ShipController(Ship *v) /* New tile */ if (!IsValidTile(gp.new_tile)) goto reverse_direction; - dir = ShipGetNewDirectionFromTiles(gp.new_tile, gp.old_tile); - assert(dir == DIR_NE || dir == DIR_SE || dir == DIR_SW || dir == DIR_NW); - DiagDirection diagdir = DirToDiagDir(dir); + DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile); + assert(diagdir != INVALID_DIAGDIR); tracks = GetAvailShipTracks(gp.new_tile, diagdir); if (tracks == TRACK_BIT_NONE) goto reverse_direction; From 54ec06258aaae0b55a186d914211ce7cfb2513e6 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 21:59:24 +0000 Subject: [PATCH 091/158] (svn r27806) -Codechange: Remove function ShipGetNewDirection ShipGetNewDirection has no side effects and its return value is ignored by its only caller, so do away with it. Also remove now unused _new_vehicle_direction_table. (cirdan) --- src/ship_cmd.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 5f6a77f370..2235cc4b29 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -456,19 +456,6 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr return track; } -static const Direction _new_vehicle_direction_table[] = { - DIR_N , DIR_NW, DIR_W , INVALID_DIR, - DIR_NE, DIR_N , DIR_SW, INVALID_DIR, - DIR_E , DIR_SE, DIR_S -}; - -static Direction ShipGetNewDirection(Vehicle *v, int x, int y) -{ - uint offs = (y - v->y_pos + 1) * 4 + (x - v->x_pos + 1); - assert(offs < 11 && offs != 3 && offs != 7); - return _new_vehicle_direction_table[offs]; -} - static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir) { return GetTileShipTrackStatus(tile) & DiagdirReachesTracks(dir); @@ -633,7 +620,6 @@ static void ShipController(Ship *v) } /* update image of ship, as well as delta XY */ - dir = ShipGetNewDirection(v, gp.x, gp.y); v->x_pos = gp.x; v->y_pos = gp.y; v->z_pos = GetSlopePixelZ(gp.x, gp.y); From 80303515c172719f00c6a6186b9f727272ecb0a6 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 22:02:20 +0000 Subject: [PATCH 092/158] (svn r27807) -Codechange: Remove _ship_leave_depot_offs There is already TileOffsByDiagDir for that. (cirdan) --- src/ship_cmd.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 2235cc4b29..de1bf4f8c6 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -317,11 +317,6 @@ void Ship::UpdateDeltaXY(Direction direction) this->z_extent = 6; } -static const TileIndexDiffC _ship_leave_depot_offs[] = { - {-1, 0}, - { 0, -1} -}; - static bool CheckShipLeaveDepot(Ship *v) { if (!v->IsChainInDepot()) return false; @@ -337,9 +332,9 @@ static bool CheckShipLeaveDepot(Ship *v) Axis axis = GetShipDepotAxis(tile); DiagDirection north_dir = ReverseDiagDir(AxisToDiagDir(axis)); - TileIndex north_neighbour = TILE_ADD(tile, ToTileIndexDiff(_ship_leave_depot_offs[axis])); + TileIndex north_neighbour = TILE_ADD(tile, TileOffsByDiagDir(north_dir)); DiagDirection south_dir = AxisToDiagDir(axis); - TileIndex south_neighbour = TILE_ADD(tile, -2 * ToTileIndexDiff(_ship_leave_depot_offs[axis])); + TileIndex south_neighbour = TILE_ADD(tile, 2 * TileOffsByDiagDir(south_dir)); TrackBits north_tracks = DiagdirReachesTracks(north_dir) & GetTileShipTrackStatus(north_neighbour); TrackBits south_tracks = DiagdirReachesTracks(south_dir) & GetTileShipTrackStatus(south_neighbour); From e3a1ae2be5864b999c210bb3bfc0883f680c21be Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 19 Mar 2017 22:30:47 +0000 Subject: [PATCH 093/158] (svn r27808) -Codechange: Adjust the size of _track_crosses_trackdirs _track_crosses_trackdirs is indexed by a Track, not a Trackdir, so adjust its size accordingly. (cirdan) --- src/rail.cpp | 2 +- src/track_func.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rail.cpp b/src/rail.cpp index 79598ec4a1..d538064a23 100644 --- a/src/rail.cpp +++ b/src/rail.cpp @@ -56,7 +56,7 @@ extern const Trackdir _next_trackdir[TRACKDIR_END] = { }; /* Maps a trackdir to all trackdirs that make 90 deg turns with it. */ -extern const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END] = { +extern const TrackdirBits _track_crosses_trackdirs[TRACK_END] = { TRACKDIR_BIT_Y_SE | TRACKDIR_BIT_Y_NW, // TRACK_X TRACKDIR_BIT_X_NE | TRACKDIR_BIT_X_SW, // TRACK_Y TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_RIGHT_S | TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LEFT_S, // TRACK_UPPER diff --git a/src/track_func.h b/src/track_func.h index 6896792374..68de827ef1 100644 --- a/src/track_func.h +++ b/src/track_func.h @@ -594,7 +594,7 @@ static inline TrackdirBits TrackdirReachesTrackdirs(Trackdir trackdir) static inline TrackdirBits TrackdirCrossesTrackdirs(Trackdir trackdir) { assert(IsValidTrackdirForRoadVehicle(trackdir)); - extern const TrackdirBits _track_crosses_trackdirs[TRACKDIR_END]; + extern const TrackdirBits _track_crosses_trackdirs[TRACK_END]; return _track_crosses_trackdirs[TrackdirToTrack(trackdir)]; } From 040df26e9e3f75b3af706109e97f1b0b41ddb283 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 08:04:47 +0000 Subject: [PATCH 094/158] (svn r27809) -Codechange: Improve check in UpdateLevelCrossing In UpdateLevelCrossing, checking if a level crossing is reserved is cheaper than finding trains on it or approaching it, so do it first. (cirdan) --- src/train_cmd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 5502532232..4a279bb7e2 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -1700,8 +1700,8 @@ void UpdateLevelCrossing(TileIndex tile, bool sound) { assert(IsLevelCrossingTile(tile)); - /* train on crossing || train approaching crossing || reserved */ - bool new_state = HasVehicleOnPos(tile, NULL, &TrainOnTileEnum) || TrainApproachingCrossing(tile) || HasCrossingReservation(tile); + /* reserved || train on crossing || train approaching crossing */ + bool new_state = HasCrossingReservation(tile) || HasVehicleOnPos(tile, NULL, &TrainOnTileEnum) || TrainApproachingCrossing(tile); if (new_state != IsCrossingBarred(tile)) { if (new_state && sound) { From 4107f78eae0a209a703ed8fa9420727757e8e50d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:44:37 +0000 Subject: [PATCH 095/158] (svn r27810) -Change: Factor out reservation-handling code in station_cmd.cpp Code dealing with freeing and restoring track reservations is duplicated in CmdBuildRailStation and RemoveFromRailBaseStation; make separate functions for it. (cirdan) --- src/station_cmd.cpp | 52 ++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 610cf7216a..ea890688e5 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1142,6 +1142,30 @@ CommandCost FindJoiningWaypoint(StationID existing_waypoint, StationID waypoint_ return FindJoiningBaseStation(existing_waypoint, waypoint_to_join, adjacent, ta, wp); } +/** + * Clear platform reservation during station building/removing. + * @param v vehicle which holds reservation + */ +static void FreeTrainReservation(Train *v) +{ + FreeTrainTrackReservation(v); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); + v = v->Last(); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), false); +} + +/** + * Restore platform reservation during station building/removing. + * @param v vehicle which held reservation + */ +static void RestoreTrainReservation(Train *v) +{ + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); + TryPathReserve(v, true, true); + v = v->Last(); + if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); +} + /** * Build rail station * @param tile_org northern most position of station dragging/placement @@ -1281,11 +1305,8 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 /* Check for trains having a reservation for this tile. */ Train *v = GetTrainForReservation(tile, AxisToTrack(GetRailStationAxis(tile))); if (v != NULL) { - FreeTrainTrackReservation(v); *affected_vehicles.Append() = v; - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), false); + FreeTrainReservation(v); } } @@ -1336,11 +1357,7 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 for (uint i = 0; i < affected_vehicles.Length(); ++i) { /* Restore reservations of trains. */ - Train *v = affected_vehicles[i]; - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); - TryPathReserve(v, true, true); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); + RestoreTrainReservation(affected_vehicles[i]); } /* Check whether we need to expand the reservation of trains already on the station. */ @@ -1504,14 +1521,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector &affected if (HasStationReservation(tile)) { v = GetTrainForReservation(tile, track); - if (v != NULL) { - /* Free train reservation. */ - FreeTrainTrackReservation(v); - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), false); - Vehicle *temp = v; - for (; temp->Next() != NULL; temp = temp->Next()) { } - if (IsRailStationTile(temp->tile)) SetRailStationPlatformReservation(temp->tile, TrackdirToExitdir(ReverseTrackdir(temp->GetVehicleTrackdir())), false); - } + if (v != NULL) FreeTrainReservation(v); } bool build_rail = keep_rail && !IsStationTileBlocked(tile); @@ -1531,13 +1541,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, SmallVector &affected affected_stations.Include(st); - if (v != NULL) { - /* Restore station reservation. */ - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(v->GetVehicleTrackdir()), true); - TryPathReserve(v, true, true); - for (; v->Next() != NULL; v = v->Next()) { } - if (IsRailStationTile(v->tile)) SetRailStationPlatformReservation(v->tile, TrackdirToExitdir(ReverseTrackdir(v->GetVehicleTrackdir())), true); - } + if (v != NULL) RestoreTrainReservation(v); } } From 166e504c13a2684e3517750fbf91299397e605b7 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:49:44 +0000 Subject: [PATCH 096/158] (svn r27811) -Change: Remove unused parameters in FreeTrainTrackReservation FreeTrainTrackReservation is always called with INVALID_TILE and INVALID_TRACKDIR as second and third arguments, so remove them and just use those constants instead. (cirdan) --- src/train.h | 2 +- src/train_cmd.cpp | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/train.h b/src/train.h index 82e33b67d9..c40ab75560 100644 --- a/src/train.h +++ b/src/train.h @@ -61,7 +61,7 @@ byte FreightWagonMult(CargoID cargo); void CheckTrainsLengths(); -void FreeTrainTrackReservation(const Train *v, TileIndex origin = INVALID_TILE, Trackdir orig_td = INVALID_TRACKDIR); +void FreeTrainTrackReservation(const Train *v); bool TryPathReserve(Train *v, bool mark_as_stuck = false, bool first_tile_okay = false); int GetTrainStopLocation(StationID station_id, TileIndex tile, const Train *v, int *station_ahead, int *station_length); diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 4a279bb7e2..608ce2fee1 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2254,16 +2254,14 @@ static void ClearPathReservation(const Train *v, TileIndex tile, Trackdir track_ /** * Free the reserved path in front of a vehicle. * @param v %Train owning the reserved path. - * @param origin %Tile to start clearing (if #INVALID_TILE, use the current tile of \a v). - * @param orig_td Track direction (if #INVALID_TRACKDIR, use the track direction of \a v). */ -void FreeTrainTrackReservation(const Train *v, TileIndex origin, Trackdir orig_td) +void FreeTrainTrackReservation(const Train *v) { assert(v->IsFrontEngine()); - TileIndex tile = origin != INVALID_TILE ? origin : v->tile; - Trackdir td = orig_td != INVALID_TRACKDIR ? orig_td : v->GetVehicleTrackdir(); - bool free_tile = tile != v->tile || !(IsRailStationTile(v->tile) || IsTileType(v->tile, MP_TUNNELBRIDGE)); + TileIndex tile = v->tile; + Trackdir td = v->GetVehicleTrackdir(); + bool free_tile = !(IsRailStationTile(v->tile) || IsTileType(v->tile, MP_TUNNELBRIDGE)); StationID station_id = IsRailStationTile(v->tile) ? GetStationIndex(v->tile) : INVALID_STATION; /* Can't be holding a reservation if we enter a depot. */ From 380e1a240f0fe08f5d1cf7697b28950c9550d9bd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 17:57:24 +0000 Subject: [PATCH 097/158] (svn r27812) -Fix: Road tunnel/bridge heads have no trackbits wrt catenary drawing Road tunnels and bridges do not have any rail, so do not treat them as if they had when drawing a catenary. (cirdan) --- src/elrail.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/elrail.cpp b/src/elrail.cpp index ac36161617..9fdfb57a3d 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -99,6 +99,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) break; case MP_TUNNELBRIDGE: + if (GetTunnelBridgeTransportType(t) != TRANSPORT_RAIL) return TRACK_BIT_NONE; if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; if (override != NULL && (IsTunnel(t) || GetTunnelBridgeLength(t, GetOtherBridgeEnd(t)) > 0)) { *override = 1 << GetTunnelBridgeDirection(t); From c03ccdb36b148e9cb911cf7f496c83696e79dbf4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 18:14:22 +0000 Subject: [PATCH 098/158] (svn r27813) -Change: Remove _road_enter_dir_to_reachable_trackdirs _road_enter_dir_to_reachable_trackdirs was just a copy of DiagdirReachesTrackdirs. (cirdan) --- src/roadveh_cmd.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 9b541a766b..25f6fd50bc 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -69,14 +69,6 @@ bool IsValidImageIndex(uint8 image_index) return image_index < lengthof(_roadveh_images); } -/** 'Convert' the DiagDirection where a road vehicle enters to the trackdirs it can drive onto */ -static const TrackdirBits _road_enter_dir_to_reachable_trackdirs[DIAGDIR_END] = { - TRACKDIR_BIT_LEFT_N | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_X_NE, // Enter from north east - TRACKDIR_BIT_LEFT_S | TRACKDIR_BIT_UPPER_E | TRACKDIR_BIT_Y_SE, // Enter from south east - TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_X_SW | TRACKDIR_BIT_RIGHT_S, // Enter from south west - TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W | TRACKDIR_BIT_Y_NW // Enter from north west -}; - static const Trackdir _road_reverse_table[DIAGDIR_END] = { TRACKDIR_RVREV_NE, TRACKDIR_RVREV_SE, TRACKDIR_RVREV_SW, TRACKDIR_RVREV_NW }; @@ -935,7 +927,7 @@ static Trackdir RoadFindPathToDest(RoadVehicle *v, TileIndex tile, DiagDirection */ /* Remove tracks unreachable from the enter dir */ - trackdirs &= _road_enter_dir_to_reachable_trackdirs[enterdir]; + trackdirs &= DiagdirReachesTrackdirs(enterdir); if (trackdirs == TRACKDIR_BIT_NONE) { /* No reachable tracks, so we'll reverse */ return_track(_road_reverse_table[enterdir]); From 5baf52b938d359f6ce580438d7fd5eee864b32ae Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 18:16:23 +0000 Subject: [PATCH 099/158] (svn r27814) -Change: Remove _roadveh_depot_exit_trackdir _roadveh_depot_exit_trackdir was just a copy of DiagDirToDiagTrackdir. (cirdan) --- src/roadveh_cmd.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 25f6fd50bc..7adc532b6b 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -73,12 +73,6 @@ static const Trackdir _road_reverse_table[DIAGDIR_END] = { TRACKDIR_RVREV_NE, TRACKDIR_RVREV_SE, TRACKDIR_RVREV_SW, TRACKDIR_RVREV_NW }; -/** Converts the exit direction of a depot to trackdir the vehicle is going to drive to */ -static const Trackdir _roadveh_depot_exit_trackdir[DIAGDIR_END] = { - TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW -}; - - /** * Check whether a roadvehicle is a bus * @return true if bus @@ -993,7 +987,7 @@ static bool RoadVehLeaveDepot(RoadVehicle *v, bool first) DiagDirection dir = GetRoadDepotDirection(v->tile); v->direction = DiagDirToDir(dir); - Trackdir tdir = _roadveh_depot_exit_trackdir[dir]; + Trackdir tdir = DiagDirToDiagTrackdir(dir); const RoadDriveEntry *rdp = _road_drive_data[v->roadtype][(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE) + tdir]; int x = TileX(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].x & 0xF); From 712dbeda332b46652d9bdac77788d6227a8f9330 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 20 Mar 2017 18:45:36 +0000 Subject: [PATCH 100/158] (svn r27815) -Update from Eints: russian: 7 changes by Lone_Wolf --- src/lang/russian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 1e83056e0a..9f78d15b7f 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3578,6 +3578,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Все типы STR_PURCHASE_INFO_ALL_BUT :Всё, кроме {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Макс. тяговое усилие: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальность: {GOLD}{COMMA} клет{P ка ки ок} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Тип возд. судна: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Список локомотивов и вагонов - щёлкните для получения информации. Ctrl+щелчок скроет/покажет ТС. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Список автотранспорта - щёлкните для получения информации. Ctrl+щелчок скроет/покажет выбранный автомобиль. @@ -3718,6 +3719,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнито STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING}{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING} Дальность: {COMMA} клеток{}Ёмкость: {CARGO_LONG}, {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Тип: {STRING} Дальность: {COMMA} клеток{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING} @@ -3844,6 +3849,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P го STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P год года лет} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Тип возд. судна: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING} {BLACK}Дальность: {LTBLUE}{COMMA} клеток STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вес: {LTBLUE}{WEIGHT_SHORT} {BLACK}Мощность: {LTBLUE}{POWER}{BLACK} Макс. скорость: {LTBLUE}{VELOCITY} {BLACK}Макс. ТУ: {LTBLUE}{FORCE} From 48b9cbbb76afeb830bb6402ef3edd60ef27ccf4c Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 20 Mar 2017 19:30:49 +0000 Subject: [PATCH 101/158] (svn r27816) -Fix [FS#6421]: Do not search directories when opening ini files as we already have their full path. --- src/hotkeys.cpp | 2 +- src/settings.cpp | 2 +- src/window.cpp | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hotkeys.cpp b/src/hotkeys.cpp index 84288a0e81..870e2cbea6 100644 --- a/src/hotkeys.cpp +++ b/src/hotkeys.cpp @@ -311,7 +311,7 @@ int HotkeyList::CheckMatch(uint16 keycode, bool global_only) const static void SaveLoadHotkeys(bool save) { IniFile *ini = new IniFile(); - ini->LoadFromDisk(_hotkeys_file, BASE_DIR); + ini->LoadFromDisk(_hotkeys_file, NO_DIRECTORY); for (HotkeyList **list = _hotkey_lists->Begin(); list != _hotkey_lists->End(); ++list) { if (save) { diff --git a/src/settings.cpp b/src/settings.cpp index e6754bb905..9fba3a13ff 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1688,7 +1688,7 @@ static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescP static IniFile *IniLoadConfig() { IniFile *ini = new IniFile(_list_group_names); - ini->LoadFromDisk(_config_file, BASE_DIR); + ini->LoadFromDisk(_config_file, NO_DIRECTORY); return ini; } diff --git a/src/window.cpp b/src/window.cpp index 0ffbf8bf1b..f1c53f2045 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -139,7 +139,7 @@ int16 WindowDesc::GetDefaultHeight() const void WindowDesc::LoadFromConfig() { IniFile *ini = new IniFile(); - ini->LoadFromDisk(_windows_file, BASE_DIR); + ini->LoadFromDisk(_windows_file, NO_DIRECTORY); for (WindowDesc **it = _window_descs->Begin(); it != _window_descs->End(); ++it) { if ((*it)->ini_key == NULL) continue; IniLoadWindowSettings(ini, (*it)->ini_key, *it); @@ -165,7 +165,7 @@ void WindowDesc::SaveToConfig() QSortT(_window_descs->Begin(), _window_descs->Length(), DescSorter); IniFile *ini = new IniFile(); - ini->LoadFromDisk(_windows_file, BASE_DIR); + ini->LoadFromDisk(_windows_file, NO_DIRECTORY); for (WindowDesc **it = _window_descs->Begin(); it != _window_descs->End(); ++it) { if ((*it)->ini_key == NULL) continue; IniSaveWindowSettings(ini, (*it)->ini_key, *it); From ccf94e81089e26c221d28f9b0f5898da3c9ec61c Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 21 Mar 2017 18:45:37 +0000 Subject: [PATCH 102/158] (svn r27817) -Update from Eints: greek: 39 changes by kyrm croatian: 7 changes by VoyagerOne --- src/lang/croatian.txt | 7 +++++ src/lang/greek.txt | 71 ++++++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 32 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index ea5e064f67..c9bf2dd95b 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3494,6 +3494,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Sve vrste teret STR_PURCHASE_INFO_ALL_BUT :Sve osim {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK} Najveća vučna sila: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Domet: {GOLD}{COMMA} polja +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vrsta zrakoplova: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Popis vlakova za odabir. Klikni na vozilo za informacije. Ctrl+klik za uključivanje ili isključivanje prikaza vrste vozila STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Popis cestovnih vozila za odabir. Klikni na vozilo za informacije. Ctrl+klik za uključivanje ili isključivanje prikaza vrste cestovnog vozila @@ -3628,6 +3629,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING}{}Kapacitet: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING} Doseg: {COMMA} polja{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Vrsta zrakoplova: {STRING} Doseg: {COMMA} polja{}Kapacitet: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING} @@ -3750,6 +3755,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} godin{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Vrsta zrakoplova: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Vrsta zrakoplova: {LTBLUE}{STRING} {BLACK}Doseg: {LTBLUE}{COMMA} polja STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Najveća vučna sila: {LTBLUE}{FORCE} diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 6cb475ba43..a39b694816 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -369,7 +369,7 @@ STR_SORT_BY_INTRO_DATE :Ημερομη STR_SORT_BY_RUNNING_COST :Λειτουργικό κόστος STR_SORT_BY_POWER_VS_RUNNING_COST :Ισχύς/Λειτουργικό κόστος STR_SORT_BY_CARGO_CAPACITY :Χωρητικότητα φορτίου -STR_SORT_BY_RANGE :Εύρος +STR_SORT_BY_RANGE :Εμβέλεια STR_SORT_BY_POPULATION :Πληθυσμός STR_SORT_BY_RATING :Εκτίμηση @@ -696,7 +696,7 @@ STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP :{BLACK}Εμφά # Graph key window STR_GRAPH_KEY_CAPTION :{WHITE}Γραφήματα κλειδιού εταιρίας -STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Κάντε κλικ εδώ για εναλλαγή εμφάνισης της εταιρίας στο γράφημα +STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP :{BLACK}Πατήστε εδώ για εναλλαγή εμφάνισης της εταιρίας στο γράφημα # Company league window STR_COMPANY_LEAGUE_TABLE_CAPTION :{WHITE}Πίνακας Πρωταθλήματος Εταιριών @@ -1645,7 +1645,7 @@ 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_TYPES_HELPTEXT :Επιλέξτε τους τύπους σημάτων μεταξύ των οποίων θα γίνονται οι αλλαγές, όταν πατάτε σε ένα τοποθετημένο σήμα κρατώντας πατημένο το Ctrl STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Μόνο σηματοδότες τμήματος STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Μόνο σηματοδότες τροχιάς STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Όλοι @@ -1983,8 +1983,8 @@ STR_FACE_SELECT_AFRICAN :{BLACK}Επιλ STR_FACE_YES :Ναι STR_FACE_NO :Όχι STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Ενεργοποίηση μουστακιού ή σκουλαρικιού -STR_FACE_HAIR :Μαλλί: -STR_FACE_HAIR_TOOLTIP :{BLACK}Αλλάξτε μαλλί +STR_FACE_HAIR :Μαλλιά: +STR_FACE_HAIR_TOOLTIP :{BLACK}Αλλάξτε μαλλιά STR_FACE_EYEBROWS :Φρύδια: STR_FACE_EYEBROWS_TOOLTIP :{BLACK}Αλλάξτε φρύδια STR_FACE_EYECOLOUR :Χρώμα ματιών: @@ -2473,7 +2473,7 @@ 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+Κλικ εναλλάσσεται με την υπάρχουσα παραλλαγή. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κόστος μετατροπής +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Μετατροπέας Σηματοδότη{}Όταν επιλέγεται, πατώντας σε έναν υπάρχωντα σηματοδότη θα τον μετατρέψει στον επιλεγμένο τύπο και παραλλαγή σηματοδότη. Με Ctrl+Κλικ εναλλάσσεται με την υπάρχουσα παραλλαγή. Με Shift+Κλικ εμφανίζεται το εκτιμώμενο κόστος μετατροπής 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}Αύξηση πυκνότητας σηματοδοτών με σύρσιμο @@ -2627,7 +2627,7 @@ STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Κάλυ STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Όνομα πόλης: STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Εισάγετε το όνομα της πόλης -STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Κλικ για να δώσετε το όνομα της πόλης +STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Πατήστε για να δώσετε το όνομα της πόλης STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Τυχαίο όνομα STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Δημιουργία ενός τυχαίου ονόματος @@ -2664,8 +2664,8 @@ STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Αλυσ STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Βιομηχανίες που παράγουν STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Βιομηχανίες που δέχονται STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Σπιτιά -STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Κάντε κλικ στη βιομηχανία για να δείτε τους προμηθευτές και τους πελάτες της -STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Κάντε κλικ στο εμπόρευμα για να δείτε τους προμηθευτές και τους πελάτες +STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}Πατήστε στη βιομηχανία για να δείτε τους προμηθευτές και τους πελάτες της +STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}Πατήστε στο εμπόρευμα για να δείτε τους προμηθευτές και τους πελάτες STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Εμφάνιση αλυσίδας STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Εμφάνιση βιομηχανιών προμήθειας και αποδοχής για το εμπόρευμα STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Σύνδεση στο μικρό χάρτη @@ -3150,7 +3150,7 @@ STR_GOALS_SPECTATOR_NONE :{ORANGE}- Μη STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} STR_GOALS_COMPANY_TITLE :{BLACK}Εταιρικοί στόχοι: -STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Κάνετε κλικ στον στόχο για να επικεντρωθεί η οθόνη στη βιομηχανία/πόλη/τετραγωνίδιο. Με Ctrl+Κλικ ανοίγει το παράθυρο θέασης στην τοποθεσία της βιομηχανίας/πόλης/τετραγωνίδιου +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Πατήστε στον στόχο για να επικεντρωθεί η οθόνη στη βιομηχανία/πόλη/τετραγωνίδιο. Με Ctrl+Κλικ ανοίγει το παράθυρο θέασης στην τοποθεσία της βιομηχανίας/πόλης/τετραγωνίδιου # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :Ερώτηση @@ -3385,7 +3385,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Τί STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% μεταφέρθηκαν) STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}/{CARGO_LONG}{STRING}){YELLOW} ({COMMA}%/{COMMA}% μεταφέρθηκαν) STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} -STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Ονόματα βιομηχανιών - κάνετε κλικ στο όνομα για κεντράρισμα στην βιομηχανία. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας +STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Ονόματα βιομηχανιών - πατήστε στο όνομα για κεντράρισμα στη βιομηχανία. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} @@ -3458,11 +3458,11 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Μη ομαδο STR_GROUP_DEFAULT_SHIPS :Μη ομαδοποιημένα πλοία STR_GROUP_DEFAULT_AIRCRAFTS :Μη ομαδοποιημένα αεροσκάφη -STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Ομάδες - κάντε κλικ σε μία ομάδα για να δείτε όλα τα οχήματα που της ανήκουν. Σύρρτε ομάδες για να ρυθμίσετα την ιεραρχία. -STR_GROUP_CREATE_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_REPLACE_PROTECTION_TOOLTIP :{BLACK}Πατήστε για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Διαγραφή ομάδας STR_GROUP_DELETE_QUERY_TEXT :Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; @@ -3503,11 +3503,12 @@ STR_PURCHASE_INFO_ALL_TYPES :Όλοι οι STR_PURCHASE_INFO_ALL_BUT :Όλοι εκτός από {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Μέγ. Δύναμη Έλξης: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Εύρος: {GOLD}{COMMA} τετραγωνίδια +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Τύπος αεροσκάφους: {GOLD}{STRING} -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Λίστα επιλογής βαγονιού τρένου. Κάντε κλικ σε ένα βαγόνι για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου βαγονιού -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Λίστα επιλογής οχήματος δρόμου. Κάντε κλικ σε ένα όχημα για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου οχήματος -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Λίστα επιλογής πλοίου. Κάντε κλικ σε ένα πλοίο για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου πλοίου -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Λίστα επιλογής αεροσκάφους. Κάντε κλικ σε ένα αεροσκάφος για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου αεροσκάφους +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Λίστα επιλογής βαγονιού τρένου. Πατήστε σε ένα βαγόνι για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου βαγονιού +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Λίστα επιλογής οχήματος δρόμου. Πατήστε σε ένα όχημα για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου οχήματος +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Λίστα επιλογής πλοίου. Πατήστε σε ένα πλοίο για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου πλοίου +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Λίστα επιλογής αεροσκάφους. Πατήστε σε ένα αεροσκάφος για πληροφορίες. Ctrl+Click για εμφάνιση/απόκρυψη του τύπου αεροσκάφους STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Αγορά Οχήματος STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Αγορά Οχήματος @@ -3640,9 +3641,13 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.geniki :μηχανής STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}μηχανής maglev STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.geniki :μηχανής maglev -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος{}Χωρητικότητα: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Κόστος: {CURRENCY_LONG} Βάρος: {WEIGHT_SHORT}{}Ταχύτητα: {VELOCITY} Δύναμη Κινητήρα: {POWER} Μεγ. Ε.Δ: {6:FORCE}{}Λειτουργικό Κόστος: {4:CURRENCY_LONG}/έτος{}Χωρητικότητα: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING}{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING}{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING} Εμβέλεια: {COMMA} tiles{}Χωρητικότητα: {CARGO_LONG}, {CARGO_LONG}{}Running Κόστος: {CURRENCY_LONG}/έτος +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μεγ. Ταχύτητα: {VELOCITY}{}Τύπος αεροσκάφους: {STRING} Εμβέλεια: {COMMA} τεταγωνίδια{}Χωρητικότητα: {CARGO_LONG}{}Λειτουργικό κόστος: {CURRENCY_LONG}/έτος # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING} @@ -3765,6 +3770,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} χρό STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} χρόν{P ος ια} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Μέγ. ταχύτητα: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Μεγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Τύπος αεροσκάφους: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Μεγ. ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Τύπος αεροσκάφους: {LTBLUE}{STRING} {BLACK}Εμβέλεια: {LTBLUE}{COMMA} τετραγωνίδια STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Βάρος: {LTBLUE}{WEIGHT_SHORT} {BLACK}Δύναμη Κινητήρα: {LTBLUE}{POWER}{BLACK} Μέγ. Ταχύτητα: {LTBLUE}{VELOCITY} {BLACK}Μέγ. Ε.Δ: {LTBLUE}{FORCE} @@ -4117,7 +4124,7 @@ STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Ρύθμ STR_AI_LIST_CAPTION :{WHITE}Διαθέσιμη {STRING} STR_AI_LIST_CAPTION_AI :AI STR_AI_LIST_CAPTION_GAMESCRIPT :Δέσμες Ενεργειών -STR_AI_LIST_TOOLTIP :{BLACK}Κάντε κλικ για επιλέξετε μία δέσμη ενεργειών +STR_AI_LIST_TOOLTIP :{BLACK}Πατήστε για να επιλέξετε μία δέσμη ενεργειών STR_AI_LIST_AUTHOR :{LTBLUE}Δημιουργός: {ORANGE}{STRING} STR_AI_LIST_VERSION :{LTBLUE}Έκδοση: {ORANGE}{NUM} @@ -4267,7 +4274,7 @@ STR_ERROR_CURRENCY_REQUIRED :{WHITE}... απ STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Αδύνατη η αποπληρωμή του δανείου... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Δεν είναι δυνατό να δοθούν χρήματα που είναι δανεισμένα από τη τράπεζα... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Αδύνατη η εξαγορά της εταιρίας... -STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Αδύνατο να κτιστεί αρχηγείο εταιρίας... +STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Δεν μπορεί να κτιστεί αρχηγείο εταιρίας... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Αδύνατη η αγορά μεριδίου 25% της εταιρίας... STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Αδύνατη η πώληση μεριδίου 25% της εταιρίας... STR_ERROR_PROTECTED :{WHITE}Αυτή η εταιρία δεν είναι αρκετά παλιά για συναλλαγή μετοχών... @@ -4289,7 +4296,7 @@ STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... δε # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... πάρα πολλές βιομηχανίες STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Δε γίνεται να δημιουργηθούν βιομηχανίες... -STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Δεν είναι δυνατό να κτιστεί {G ο η το} {STRING} εδώ... +STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Δεν μπορεί να κτιστεί {G ο η το} {STRING} εδώ... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Δεν είναι δυνατό να κτιστεί αυτός ο τύπος βιομηχανίας εδώ... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... πολύ κοντά σε άλλη βιομηχανία STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... πρέπει να κτιστεί πόλη πρώτα @@ -4310,8 +4317,8 @@ STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Αλλα # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Δεν μπορεί να κτιστεί σταθμός τρένων εδώ... -STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}Αδύνατο να κτιστεί στάση λεωφορείων... -STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}Αδύνατο να κτιστεί στάση φορτηγών... +STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}Δεν μπορεί να κτιστεί στάση λεωφορείων... +STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}Δεν μπορεί να κτιστεί στάση φορτηγών... STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}Δεν μπορεί να κτιστεί επιβατικός σταθμός τραμ... STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Δεν μπορεί να κτιστεί σταθμός τραμ... STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Δεν μπορεί να κτιστεί λιμένας εδώ... @@ -4354,7 +4361,7 @@ STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Πρέπ STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Προστίθεται σε περισσότερο από ένα υπάρχον σημείο καθοδήγησης STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Πολύ κοντά σε άλλο σημείο καθοδήγησης -STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Αδύνατο να χτιστεί σημείο καθοδήγησης τρένου εδώ... +STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Δεν μπορεί να χτιστεί σημείο καθοδήγησης τρένου εδώ... STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}Δεν μπορεί να τοποθετηθεί σημαδούρα εδώ... STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}Αδύνατο να αλλαχτεί το όνομα του σημείου καθοδήγησης... @@ -4364,8 +4371,8 @@ STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... ση STR_ERROR_BUOY_IS_IN_USE :{WHITE}... σημαδούρα σε χρήση από άλλη εταιρία! # Depot related errors -STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Αδύνατο να κτιστεί αμαξοστάσιο εδώ... -STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Αδύνατο να κτιστεί σταθμός οχημάτων εδώ... +STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}Δεν μπορεί να κτιστεί αμαξοστάσιο εδώ... +STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}Δεν μπορεί να κτιστεί σταθμός οχημάτων εδώ... STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}Δεν μπορεί να κτιστεί σταθμαρχείο τραμ εδώ... STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}Δεν μπορεί να κτιστεί ναυπηγείο πλοίων εδώ... @@ -4401,7 +4408,7 @@ 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_SIGNALS_HERE :{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}Αδύνατο να αφαιρεθούν σηματοδότες από εδώ... @@ -4414,7 +4421,7 @@ STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Δε γ # Road construction errors STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Πρέπει πρώτα να αφαιρεθεί ο δρόμος STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... οι μονόδρομοι δεν μπορούν να έχουν διασταυρώσεις -STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Αδύνατο να κτιστεί δρόμος εδώ... +STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Δεν μπορεί να κτιστεί δρόμος εδώ... STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Δεν μπορεί να κτιστεί τροχιοδρόμος εδώ... STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Αδύνατο να αφαιρεθεί δρόμος από εδώ... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Δεν μπορεί να αφαιρεθεί τροχιόδρομος από εδώ... @@ -4427,7 +4434,7 @@ STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}Δεν STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}Δεν μπορούν να τοποθετηθούν ποτάμια εδώ... STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... πρέπει να κτιστεί στο νερό STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... αδύνατο να κτιστεί στο νερό -STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... δε μπορεί να κτιστεί στην ανοικτή θάλασσα +STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... αδύνατο να κτιστεί στην ανοικτή θάλασσα STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... αδύνατο να κτιστεί σε κανάλι STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... αδύνατο να κτιστεί σε ποτάμι STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Πρέπει να κατεδαφιστεί το κανάλι πρώτα @@ -4558,7 +4565,7 @@ STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Αδύν STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Δεν μπορεί να σταματήσει να μοιράζεται η λίστα εντολών... STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Αδύνατο να αντιγραφεί η λίστα εντολών... STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... πολύ μακριά από τον προηγούμενο προορισμό -STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... δεν αρκεί η εμβέλεια του αεροσκάφους +STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... δεν επαρκεί η εμβέλεια του αεροσκάφους # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Δεν μπορεί να δρομολογηθεί το όχημα... From b54d144b2818e7fc173114df405f2202cd79a223 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 22 Mar 2017 18:45:40 +0000 Subject: [PATCH 103/158] (svn r27818) -Update from Eints: greek: 36 changes by kyrm --- src/lang/greek.txt | 72 +++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index a39b694816..8174e9475a 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -34,7 +34,7 @@ STR_CARGO_PLURAL_PASSENGERS.geniki :Επιβάτη STR_CARGO_PLURAL_COAL :{G=m}Άνθρακάς STR_CARGO_PLURAL_MAIL :{G=f}Αλληλογραφία STR_CARGO_PLURAL_MAIL.geniki :Αλληλογραφίας -STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαια +STR_CARGO_PLURAL_OIL :{G=n}Πετρέλαιo STR_CARGO_PLURAL_OIL.geniki :Πετρελαίου STR_CARGO_PLURAL_LIVESTOCK :{G=n}Ζώα STR_CARGO_PLURAL_LIVESTOCK.geniki :Ζώων @@ -411,7 +411,7 @@ STR_SCENEDIT_TOOLBAR_OPENTTD :{YELLOW}OpenTTD STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Πρόγραμμα Επεξεργασίας Σεναρίου STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD :{BLACK}Μετακίνηση ημ/νίας εκκίνησης 1 χρόνο πίσω STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD :{BLACK}Μετακινήστε την ημερομηνία εκκίνησης 1 χρόνο μπροστά -STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Κάντε κλικ εδώ για να εισάγετε την χρονιά έναρξης +STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Πατήστε εδώ για να εισάγετε την χρονιά έναρξης STR_SCENEDIT_TOOLBAR_TOOLTIP_DISPLAY_MAP_TOWN_DIRECTORY :{BLACK}Εμφάνιση χάρτη, καταλόγου πόλεων STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Δημιουργία τοπίου STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Δημιουργία πόλης @@ -785,8 +785,8 @@ STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLA STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Πρόγραμμα - '{STRING}' STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Καθαρισμός STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Καθαρισμός τρέχοντος προγράμματος (μόνο Προσαρμοσμένο 1 ή Προσαρμοσμένο 2) -STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Κάντε κλικ στο μουσικό κομμάτι για προσθήκη στο τρέχον πρόγραμμα (Προσαρμοσμένο1 ή Προσαρμοσμένο2 μόνο) -STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Κάντε κλικ στο τραγούδι για να το αφαιρέσετε από το πρόγραμμα (Προσαρμοσμένο 1 ή 2 μόνο) +STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Πατήστε στο μουσικό κομμάτι για προσθήκη στο τρέχον πρόγραμμα (Προσαρμοσμένο1 ή Προσαρμοσμένο2 μόνο) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Πατήστε στο τραγούδι για να το αφαιρέσετε από το πρόγραμμα (Προσαρμοσμένο 1 ή 2 μόνο) # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Οι καλύτερες εταιρίες που έφτασαν το {NUM} @@ -1923,7 +1923,7 @@ STR_LIVERY_SHIP_TOOLTIP :{BLACK}Εμφά STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Εμφάνιση χρωματικών μοτίβων αεροσκαφών STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Επιλογή του βασικού χρώματος για το επιλεγμένο θέμα. Με Ctrl+Κλικ ορίζεται το χρώμα σε κάθε θέμα STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Επιλογή του δευτερεύοντος χρώματος για το επιλεγμένο μοτίβο. Με Ctrl+Κλικ ορίζεται το χρώμα για κάθε θέμα -STR_LIVERY_PANEL_TOOLTIP :{BLACK}Επιλέξτε το χρωματικό μοτίβο για αλλαγή ή πολλαπλά μοτίβα με Ctrl+Κλικ. Κάντε κλικ στο κουτάκι για να επιλέξετε τη χρήση του μοτίβου +STR_LIVERY_PANEL_TOOLTIP :{BLACK}Επιλέξτε το χρωματικό μοτίβο για αλλαγή ή πολλαπλά μοτίβα με Ctrl+Κλικ. Πατήστε στο κουτάκι για να επιλέξετε τη χρήση του μοτίβου STR_LIVERY_DEFAULT :Πρότυπο Μοτίβου Χρωμάτων STR_LIVERY_STEAM :Ατμοκίνητη Μηχανή @@ -2023,16 +2023,16 @@ STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Συμμ STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Συμμετέχοντες συνδεδεμένοι / μέγιστος αριθμός συμμετεχόντων{}Εταιρίες συνδεδεμένες / μέγιστος αριθμός εταιριών STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA} STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Μέγεθος χάρτη -STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Μέγεθος χάρτη του παιχνιδιού{}Κάντε κλικ για ταξινόμηση ανά περιοχή +STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Μέγεθος χάρτη του παιχνιδιού{}Πατήστε για ταξινόμηση ανά περιοχή STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Ημερομηνία STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP :{BLACK}Τρέχουσα ημερομηνία STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Χρόνια STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Αριθμός χρόνων{}που τρέχει το παιχνίδι STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Γλώσσα, έκδοση διακομιστή, κλπ. -STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Κάντε κλικ σε ένα παιχνίδι από τη λίστα για το επιλέξετε +STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Πατήστε σε ένα παιχνίδι από τη λίστα για το επιλέξετε STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Ο διακομιστής που συμμετείχατε την τελευταία φορά: -STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Κάντε κλικ για να επιλέξετε το διακομιστή που συμμετείχατε την τελευταία φορά +STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Πατήστε για να επιλέξετε το διακομιστή που συμμετείχατε την τελευταία φορά STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}ΠΛΗΡΟΦΟΡΙΕΣ ΠΑΙΧΝΙΔΙΟΥ STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Συμμετέχοντες:: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA} @@ -2305,7 +2305,7 @@ STR_CONTENT_TYPE_CAPTION :{BLACK}Τύπο STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Τύπος περιεχόμενου STR_CONTENT_NAME_CAPTION :{BLACK}Όνομα STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Το όνομα του περιεχομένου -STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Κάντε κλικ σε μια γραμμή για να δείτε λεπτομέρειες{}Κάντε κλικ στο κουτάκι για το επιλέξετε για κατέβασμα +STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Πατήστε σε μια γραμμή για να δείτε λεπτομέρειες{}Πατήστε στο κουτάκι για το επιλέξετε για κατέβασμα STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Επιλογή όλων STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Μαρκάρισμα όλων των περιεχομένων για κατέβασμα STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Επιλέξτε αναβαθμίσεις @@ -2481,7 +2481,7 @@ STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Αύξη # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Επιλογή Γέφυρας STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Επιλογή Γέφυρας Δρόμου -STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Επιλογή γέφυρας - κάντε κλικ στην γέφυρα της προτίμησής σας για κατασκευή +STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Επιλογή γέφυρας - πατήστε στην γέφυρα της προτίμησής σας για κατασκευή STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} STR_BRIDGE_NAME_SUSPENSION_STEEL :Ατσάλινη, με Αναρτήσεις @@ -2805,7 +2805,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}Τρέχον επιλεγμένο όνομα για το αποθηκευμένο παιχνίδι @@ -3082,7 +3082,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Δώστ STR_TOWN_DIRECTORY_CAPTION :{WHITE}Πόλεις STR_TOWN_DIRECTORY_NONE :{ORANGE}- Τίποτα - STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) -STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Ονόματα πόλεων - κάνετε κλικ στο όνομα για να κεντράρετε την εικόνα στην πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της πόλης +STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Ονόματα πόλεων - πατήστε στο όνομα για να κεντράρετε την εικόνα στην πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της πόλης STR_TOWN_POPULATION :{BLACK}Παγκόσμιος πληθυσμός: {COMMA} # Town view window @@ -3118,7 +3118,7 @@ STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Τοπι STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ποσοστά εταιρίας μεταφορών: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Διαθέσιμες πράξεις: -STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Λίστα πραγμάτων που πρέπει να γίνουν σε αυτήν την πόλη - κάντε κλικ στο αντικείμενο για πληροφορίες +STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Λίστα πραγμάτων που πρέπει να γίνουν σε αυτήν την πόλη - πατήστε στο αντικείμενο για πληροφορίες STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Κάντε το STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Διενέργεια της επιλεγμένης πράξης στην παραπάνω λίστα @@ -3186,7 +3186,7 @@ STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_NONE :{ORANGE}- Καμία - STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}Υπηρεσίες που έχουν χρηματοδοτηθεί: STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING} από τον σταθμό {STRING} προς τον σταθμό {STRING}{YELLOW} ({COMPANY}{YELLOW}, έως τις {DATE_SHORT}) -STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Κάνετε κλικ στην υπηρεσία για κεντράρισμα στην βιομηχανία/πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας/πόλης +STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Πατήστε στην υπηρεσία για κεντράρισμα στην βιομηχανία/πόλη. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία της βιομηχανίας/πόλης # Story book window STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Βιβλίο Ιστορίας @@ -3201,7 +3201,7 @@ STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Μετα STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Μη έγκυρη αναφορά στόχου # Station list window -STR_STATION_LIST_TOOLTIP :{BLACK}Ονόματα σταθμών - κάνετε κλικ στο όνομα για κεντράρισμα στο σταθμό. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία του σταθμού +STR_STATION_LIST_TOOLTIP :{BLACK}Ονόματα σταθμών - πατήστε στο όνομα για κεντράρισμα στο σταθμό. Με Ctrl+Κλικ ανοίγει νέο παράθυρο προβολής στην τοποθεσία του σταθμού STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}Κρατήστε πατημένο το Ctrl για να επιλέξετε περισσότερο από ένα αντικείμενο STR_STATION_LIST_CAPTION :{WHITE}{COMPANY} - {COMMA} Σταθμ{P ός οί} STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES} @@ -3419,10 +3419,10 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Πλοί{P ο α} STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Αεροσκάφ{P ος η} -STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Τρένα - κάντε κλικ στο τρένο για πληροφορίες -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Οχήματα δρόμου - κάντε κλικ στο όχημα για πληροφορίες -STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Πλοία - κάντε κλικ στο πλοίο για πληροφορίες -STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Αεροσκάφη - κάντε κλικ στο αεροσκάφος για πληροφορίες +STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Τρένα - πατήστε στο τρένο για πληροφορίες +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Οχήματα δρόμου - πατήστε στο όχημα για πληροφορίες +STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Πλοία - πατήστε στο πλοίο για πληροφορίες +STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Αεροσκάφη - πατήστε στο αεροσκάφος για πληροφορίες STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Κέρδος αυτό το έτος: {CURRENCY_LONG} (προηγούμενο έτος: {CURRENCY_LONG}) @@ -3442,8 +3442,8 @@ STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Στείλτε STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Στείλε στο Ναυπηγείο STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Στείλε στο Υπόστεγο -STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα οχήματα στη λίστα -STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα οχήματα στη λίστα +STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα οχήματα στη λίστα +STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα οχήματα στη λίστα STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Κοινές εντολές {P 0 του των} {COMMA} {P Οχήματος Οχημάτων} @@ -3613,15 +3613,15 @@ STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Παίρ STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Παίρνετε μια λίστα με όλα τα πλοία με το επιλεγμένο ναυπηγείο στις εντολές τους STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Παίρνετε μια λίστα με όλα τα αεροσκάφη που έχουν οποιοδήποτε υπόστεγο αυτού του αεροδρομίου στις εντολές τους -STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα τρένα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα πλοία μέσα στο ναυπηγείο -STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Κάντε κλικ για να σταματήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο +STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα τρένα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα πλοία μέσα στο ναυπηγείο +STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Πατήστε για να σταματήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο -STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα τρένα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο -STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα πλοία μέσα στο ναυπηγείο -STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Κάντε κλικ για να ξεκινήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο +STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα τρένα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα οχήματα μέσα στο αμαξοστάσιο +STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα πλοία μέσα στο ναυπηγείο +STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Πατήστε για να ξεκινήσουν όλα τα αεροσκάφη μέσα στο υπόστεγο STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Πρόκειται να πουλήσετε όλα τα οχήματα στο αμαξοστάσιο. Είσαστε σίγουροι; @@ -3727,10 +3727,10 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφά STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφάνιση λεπτομερειών πλοίου STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Εμφάνιση λεπτομερειών αεροσκάφους -STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια τρένου - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το τρένο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια οχήματος - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το όχημα. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια πλοίου - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό -STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια αεροσκάφους - κάντε κλικ εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια τρένου - πατήστε εδώ για ξεκινήσετε/σταματήσετε το τρένο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια οχήματος - πατήστε εδώ για ξεκινήσετε/σταματήσετε το όχημα. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια πλοίου - πατήστε εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό +STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Τρέχουσα ενέργεια αεροσκάφους - πατήστε εδώ για ξεκινήσετε/σταματήσετε το πλοίο. Με Ctrl+Κλικ πηγαίνετε στον προορισμό # Messages in the start stop button in the vehicle view STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Φόρτωση / Εκφόρτωση @@ -3831,7 +3831,7 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Νέα STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}{}{BLACK}Κέρδος από τη μετατροπή: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Κόστος μετατροπής: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Νέα χωρητικότητα: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Κέρδος από τη μετατροπή: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Επιλέξτε τα οχήματα για μετατροπή. Σύροντας με το ποντίκι επιτρέπει την επιλογή πολλαπλών οχημάτων. Κάνοντας κλικ σε άδειο χώρο θα επιλέξει ολόκληρο το όχημα. Με Ctrl+Κλικ θα γίνει επιλογή του οχήματος και της ακολουθούμενης αλυσίδας. +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Επιλέξτε τα οχήματα για μετατροπή. Σύροντας με το ποντίκι επιτρέπει την επιλογή πολλαπλών οχημάτων. Πατώντας σε άδειο χώρο θα επιλέξει ολόκληρο το όχημα. Με Ctrl+Κλικ θα γίνει επιλογή του οχήματος και της ακολουθούμενης αλυσίδας. STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Επιλέξτε τον τύπο εμπορεύματος που θα μεταφέρει το τρένο STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Επιλέξτε τον τύπο εμπορεύματος που θα μεταφέρει το όχημα @@ -3853,7 +3853,7 @@ STR_ORDERS_CAPTION :{WHITE}{VEHICLE STR_ORDERS_TIMETABLE_VIEW :{BLACK}Δρομολόγια STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Αλλαγή σε προβολή δρομολογίων -STR_ORDERS_LIST_TOOLTIP :{BLACK}Λίστα εντολών - κάντε κλικ σε μια εντολή για να την επιλέξετε. Με Ctrl+Κλικ γίνεται μετακίνηση στον προορισμό της οδηγίας +STR_ORDERS_LIST_TOOLTIP :{BLACK}Λίστα εντολών - πατήστε σε μια εντολή για να την επιλέξετε. Με Ctrl+Κλικ γίνεται μετακίνηση στον προορισμό της οδηγίας STR_ORDER_INDEX :{COMMA}:{NBSP} STR_ORDER_TEXT :{STRING} {STRING} {STRING} @@ -4008,7 +4008,7 @@ STR_TIMETABLE_TITLE :{WHITE}{VEHICLE STR_TIMETABLE_ORDER_VIEW :{BLACK}Εντολές STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Αλλαγή στην προβολή εντολών -STR_TIMETABLE_TOOLTIP :{BLACK}Δρομολόγια - κάντε κλικ σε μια εντολή για την επιλέξετε +STR_TIMETABLE_TOOLTIP :{BLACK}Δρομολόγια - πατήστε σε μια εντολή για την επιλέξετε STR_TIMETABLE_NO_TRAVEL :Μην ταξιδέψεις STR_TIMETABLE_NOT_TIMETABLEABLE :Ταξίδι (αυτόματα· με δρομολόγιο στην επόμενη μη αυτόματη εντολή) From abcab89af3c3edc201dbd7d8dc2ef65b4336fcd0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 18:07:04 +0000 Subject: [PATCH 104/158] (svn r27819) -Fix (r26990): Update viewport sign dimensions when changing GUI zoom level. --- src/settings_gui.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 0652d1bd81..e20ac33073 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -36,6 +36,8 @@ #include "textfile_gui.h" #include "stringfilter_type.h" #include "querystring_gui.h" +#include "signs_func.h" +#include "station_func.h" #include @@ -532,6 +534,9 @@ struct GameOptionsWindow : Window { _gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index); UpdateCursorSize(); LoadStringWidthTable(); + UpdateAllSignVirtCoords(); + UpdateAllTownVirtCoords(); + UpdateAllStationVirtCoords(); break; case WID_GO_BASE_GRF_DROPDOWN: From 6da57ed3e88d6bfba26e501476b5f53b30e8e9a0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 20:07:59 +0000 Subject: [PATCH 105/158] (svn r27820) -Fix: Allow dropdown to be drawn above origin widget even with scrollbar (Juanjo) --- src/widgets/dropdown.cpp | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index e0ad96a87a..d4c229cb1f 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -363,18 +363,38 @@ void ShowDropDownListAt(Window *w, const DropDownList *list, int selected, int b /* Check if the dropdown will fully fit below the widget */ if (top + height + 4 >= screen_bottom) { /* If not, check if it will fit above the widget */ - if (w->top + wi_rect.top - height > GetMainViewTop()) { + int screen_top = GetMainViewTop(); + if (w->top + wi_rect.top > screen_top + height) { top = w->top + wi_rect.top - height - 4; } else { - /* ... and lastly if it won't, enable the scroll bar and fit the - * list in below the widget */ + /* If it doesn't fit above the widget, we need to enable a scrollbar... */ int avg_height = height / (int)list->Length(); - int rows = (screen_bottom - 4 - top) / avg_height; - height = rows * avg_height; scroll = true; + + /* ... and choose whether to put the list above or below the widget. */ + bool put_above = false; + int available_height = screen_bottom - w->top - wi_rect.bottom; + if (w->top + wi_rect.top - screen_top > available_height) { + // Put it above. + available_height = w->top + wi_rect.top - screen_top; + put_above = true; + } + + /* Check at least there is space for one item. */ + assert(available_height >= avg_height); + + /* And lastly, fit the list... */ + int rows = available_height / avg_height; + height = rows * avg_height; + /* Add space for the scroll bar if we automatically determined * the width of the list. */ max_item_width += NWidgetScrollbar::GetVerticalDimension().width; + + /* ... and set the top position if needed. */ + if (put_above) { + top = w->top + wi_rect.top - height - 4; + } } } From 2c0ef5c659b46ad3256015c8bddb55d706bef2bb Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 23 Mar 2017 22:00:00 +0000 Subject: [PATCH 106/158] (svn r27821) -Change: Draw images in centre of buttons (inspired by Juanjo) --- src/gfx_func.h | 12 ++++++++++++ src/widget.cpp | 19 +++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/gfx_func.h b/src/gfx_func.h index 566f91b2da..44f5e5059f 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -142,6 +142,18 @@ void CheckBlitter(); bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int height); +/** + * Determine where to draw a centred object inside a widget. + * @param min The top or left coordinate. + * @param max The bottom or right coordinate. + * @param size The height or width of the object to draw. + * @return Offset of where to start drawing the object. + */ +static inline int CenterBounds(int min, int max, uint size) +{ + return min + (max - min - size + 1) / 2; +} + /* window.cpp */ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom); diff --git a/src/widget.cpp b/src/widget.cpp index 2c06cfe29b..3aac9611b1 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -221,7 +221,8 @@ static inline void DrawImageButtons(const Rect &r, WidgetType type, Colours colo DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); if ((type & WWT_MASK) == WWT_IMGBTN_2 && clicked) img++; // Show different image when clicked for #WWT_IMGBTN_2. - DrawSprite(img, PAL_NONE, r.left + WD_IMGBTN_LEFT + clicked, r.top + WD_IMGBTN_TOP + clicked); + Dimension d = GetSpriteSize(img); + DrawSprite(img, PAL_NONE, CenterBounds(r.left, r.right, d.width) + clicked, CenterBounds(r.top, r.bottom, d.height) + clicked); } /** @@ -459,8 +460,7 @@ static inline void DrawFrame(const Rect &r, Colours colour, StringID str) */ static inline void DrawShadeBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite((clicked) ? SPR_WINDOW_SHADE : SPR_WINDOW_UNSHADE, PAL_NONE, r.left + WD_SHADEBOX_LEFT + clicked, r.top + WD_SHADEBOX_TOP + clicked); + DrawImageButtons(r, WWT_SHADEBOX, colour, clicked, clicked ? SPR_WINDOW_SHADE: SPR_WINDOW_UNSHADE); } /** @@ -471,8 +471,7 @@ static inline void DrawShadeBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawStickyBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite((clicked) ? SPR_PIN_UP : SPR_PIN_DOWN, PAL_NONE, r.left + WD_STICKYBOX_LEFT + clicked, r.top + WD_STICKYBOX_TOP + clicked); + DrawImageButtons(r, WWT_STICKYBOX, colour, clicked, clicked ? SPR_PIN_UP : SPR_PIN_DOWN); } /** @@ -483,8 +482,7 @@ static inline void DrawStickyBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawDefSizeBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite(SPR_WINDOW_DEFSIZE, PAL_NONE, r.left + WD_DEFSIZEBOX_LEFT + clicked, r.top + WD_DEFSIZEBOX_TOP + clicked); + DrawImageButtons(r, WWT_DEFSIZEBOX, colour, clicked, SPR_WINDOW_DEFSIZE); } /** @@ -495,8 +493,7 @@ static inline void DrawDefSizeBox(const Rect &r, Colours colour, bool clicked) */ static inline void DrawDebugBox(const Rect &r, Colours colour, bool clicked) { - DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); - DrawSprite(SPR_WINDOW_DEBUG, PAL_NONE, r.left + WD_DEBUGBOX_LEFT + clicked, r.top + WD_DEBUGBOX_TOP + clicked); + DrawImageButtons(r, WWT_DEBUGBOX, colour, clicked, SPR_WINDOW_DEBUG); } /** @@ -526,7 +523,9 @@ static inline void DrawResizeBox(const Rect &r, Colours colour, bool at_left, bo static inline void DrawCloseBox(const Rect &r, Colours colour) { if (colour != COLOUR_WHITE) DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, FR_NONE); - DrawSprite(SPR_CLOSEBOX, (colour != COLOUR_WHITE ? TC_BLACK : TC_SILVER) | (1 << PALETTE_TEXT_RECOLOUR), r.left + WD_CLOSEBOX_LEFT, r.top + WD_CLOSEBOX_TOP); + Dimension d = GetSpriteSize(SPR_CLOSEBOX); + int s = UnScaleGUI(1); /* Offset to account for shadow of SPR_CLOSEBOX */ + DrawSprite(SPR_CLOSEBOX, (colour != COLOUR_WHITE ? TC_BLACK : TC_SILVER) | (1 << PALETTE_TEXT_RECOLOUR), CenterBounds(r.left, r.right, d.width - s), CenterBounds(r.top, r.bottom, d.height - s)); } /** From 0887289e3df17f005a850bbbfb39e1bd81273f3a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 07:33:31 +0000 Subject: [PATCH 107/158] (svn r27822) -Feature: Vehicle Group Info: Add profits and occupancy display to group vehicle list (mtm, JGR) --- src/group_gui.cpp | 47 +++++++++++++++++++++++++++++++++++++ src/lang/english.txt | 5 ++++ src/saveload/vehicle_sl.cpp | 2 ++ src/vehicle.cpp | 1 + src/vehicle_base.h | 1 + src/widgets/group_widget.h | 1 + 6 files changed, 57 insertions(+) diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 361ab53e56..d3e1eafbb9 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -55,6 +55,7 @@ static const NWidgetPart _nested_group_widgets[] = { SetFill(1, 0), SetResize(0, 1), SetScrollbar(WID_GL_LIST_GROUP_SCROLLBAR), NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_GL_LIST_GROUP_SCROLLBAR), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 0), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP), SetFill(0, 1), SetDataTip(SPR_GROUP_CREATE_TRAIN, STR_GROUP_CREATE_TOOLTIP), @@ -371,6 +372,9 @@ public: max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget(WID_GL_DELETE_GROUP)->widget_data).height); max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget(WID_GL_REPLACE_PROTECTION)->widget_data).height); + /* ... minus the height of the group info ... */ + max_icon_height += (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; + /* Get a multiple of tiny_step_height of that amount */ size->height = Ceil(size->height - max_icon_height, tiny_step_height); break; @@ -403,6 +407,11 @@ public: *size = maxdim(*size, d); break; } + + case WID_GL_INFO: { + size->height = (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; + break; + } } } @@ -527,6 +536,44 @@ public: DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, DEFAULT_GROUP); break; + case WID_GL_INFO: { + Money this_year = 0; + Money last_year = 0; + uint32 occupancy = 0; + uint32 vehicle_count = this->vehicles.Length(); + + for (uint i = 0; i < vehicle_count; i++) { + const Vehicle *v = this->vehicles[i]; + assert(v->owner == this->owner); + + this_year += v->GetDisplayProfitThisYear(); + last_year += v->GetDisplayProfitLastYear(); + occupancy += v->trip_occupancy; + } + + const int left = r.left + WD_FRAMERECT_LEFT + 8; + const int right = r.right - WD_FRAMERECT_RIGHT - 8; + + int y = r.top + WD_FRAMERECT_TOP; + DrawString(left, right, y, STR_GROUP_PROFIT_THIS_YEAR, TC_BLACK); + SetDParam(0, this_year); + DrawString(left, right, y, STR_JUST_CURRENCY_LONG, TC_BLACK, SA_RIGHT); + + y += FONT_HEIGHT_NORMAL; + DrawString(left, right, y, STR_GROUP_PROFIT_LAST_YEAR, TC_BLACK); + SetDParam(0, last_year); + DrawString(left, right, y, STR_JUST_CURRENCY_LONG, TC_BLACK, SA_RIGHT); + + y += FONT_HEIGHT_NORMAL; + DrawString(left, right, y, STR_GROUP_OCCUPANCY, TC_BLACK); + if (vehicle_count > 0) { + SetDParam(0, occupancy / vehicle_count); + DrawString(left, right, y, STR_GROUP_OCCUPANCY_VALUE, TC_BLACK, SA_RIGHT); + } + + break; + } + case WID_GL_LIST_GROUP: { int y1 = r.top + WD_FRAMERECT_TOP; int max = min(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.Length()); diff --git a/src/lang/english.txt b/src/lang/english.txt index 141346d4d0..722459c353 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3367,6 +3367,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group +STR_GROUP_PROFIT_THIS_YEAR :Profit this year: +STR_GROUP_PROFIT_LAST_YEAR :Profit last year: +STR_GROUP_OCCUPANCY :Current usage: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 86ca590e4d..d7c7011890 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -375,6 +375,8 @@ void AfterLoadVehicles(bool part_of_load) FOR_ALL_VEHICLES(v) { assert(v->first != NULL); + v->trip_occupancy = CalcPercentVehicleFilled(v, NULL); + switch (v->type) { case VEH_TRAIN: { Train *t = Train::From(v); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index b686461316..4dbdf24dff 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2160,6 +2160,7 @@ void Vehicle::LeaveStation() st->loading_vehicles.remove(this); HideFillingPercent(&this->fill_percent_te_id); + trip_occupancy = CalcPercentVehicleFilled(this, NULL); if (this->type == VEH_TRAIN && !(this->vehstatus & VS_CRASHED)) { /* Trigger station animation (trains only) */ diff --git a/src/vehicle_base.h b/src/vehicle_base.h index f2a02072a2..fc40f22a62 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -308,6 +308,7 @@ public: uint16 refit_cap; ///< Capacity left over from before last refit. VehicleCargoList cargo; ///< The cargo this vehicle is carrying uint16 cargo_age_counter; ///< Ticks till cargo is aged next. + int8 trip_occupancy; ///< NOSAVE: Occupancy of vehicle of the current trip (updated after leaving a station). byte day_counter; ///< Increased by one for each day byte tick_counter; ///< Increased by one for each tick diff --git a/src/widgets/group_widget.h b/src/widgets/group_widget.h index bd0d90486b..41e0bcd45a 100644 --- a/src/widgets/group_widget.h +++ b/src/widgets/group_widget.h @@ -32,6 +32,7 @@ enum GroupListWidgets { WID_GL_DELETE_GROUP, ///< Delete group button. WID_GL_RENAME_GROUP, ///< Rename group button. WID_GL_REPLACE_PROTECTION, ///< Replace protection button. + WID_GL_INFO, ///< Group info. }; #endif /* WIDGETS_GROUP_WIDGET_H */ From 4255e2e136fb4da7a2054f6e1d0952f1fdce86ba Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 12:00:52 +0000 Subject: [PATCH 108/158] (svn r27823) -Fix: Vehicle viewport is not user scrollable so flag window as such. --- src/vehicle_gui.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index a77ea18df0..b9c24ddd01 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -2456,6 +2456,7 @@ private: public: VehicleViewWindow(WindowDesc *desc, WindowNumber window_number) : Window(desc) { + this->flags |= WF_DISABLE_VP_SCROLL; this->CreateNestedTree(); /* Sprites for the 'send to depot' button indexed by vehicle type. */ From 6ceb8a0d281ea983244c5eb5d2a5d6a92af841ae Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 24 Mar 2017 18:45:45 +0000 Subject: [PATCH 109/158] (svn r27824) -Update from Eints: catalan: 7 changes by juanjo croatian: 4 changes by VoyagerOne korean: 15 changes by telk5093 scottish gaelic: 54 changes by GunChleoc --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 1 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 8 +++ src/lang/croatian.txt | 5 ++ src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 1 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 1 + src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 1 + src/lang/gaelic.txt | 78 +++++++++++++++++++++--------- src/lang/galician.txt | 1 + src/lang/german.txt | 1 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 1 + src/lang/japanese.txt | 1 + src/lang/korean.txt | 20 ++++++-- src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 1 + src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 1 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 1 + src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 1 + src/lang/spanish_MX.txt | 1 + src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 1 + src/lang/unfinished/chuvash.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/ido.txt | 1 + src/lang/unfinished/macedonian.txt | 1 + src/lang/unfinished/maltese.txt | 1 + src/lang/unfinished/marathi.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 63 files changed, 143 insertions(+), 27 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 81bc7bca1c..19140416bd 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Verwyder alle v STR_GROUP_RENAME_CAPTION :{BLACK}Hernoem 'n groep + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuwe treine STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuwe Elektries Spoor Voertuie diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index cb6f643dee..8cb3b11787 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2886,6 +2886,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :أزل جميع STR_GROUP_RENAME_CAPTION :{BLACK}إعادة تسمية مجموعة + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :عربات قطار جديدة STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :عربات قطار كهربائية جديدة diff --git a/src/lang/basque.txt b/src/lang/basque.txt index f8b9913cc9..d31feeeb9d 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -3245,6 +3245,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ibilgailu guzti STR_GROUP_RENAME_CAPTION :{BLACK}Taldea berrizendatu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tren berriak STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tren elektriko berriak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 5742b9db05..3c4a255e49 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3693,6 +3693,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Выдаліц STR_GROUP_RENAME_CAPTION :{BLACK}Перайменаваць групу + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новы цягнік STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новы электрычны цягнік diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index f42d463010..87a8d1a7fc 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Locomotiva Elétrica diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 22b00078ab..afee4af7eb 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -3280,6 +3280,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Премахн STR_GROUP_RENAME_CAPTION :{BLACK}Преименовай група + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Нови Машини за Двурелсов път STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Нови електрически влакове diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 42411873ef..aeac5a18c8 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -3368,6 +3368,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els v STR_GROUP_RENAME_CAPTION :{BLACK}Canvia de nom el grup + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de nous vehicles ferroviaris STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Compra de nous vehicles ferroviaris per vies electrificades @@ -3399,6 +3400,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Totes les càrr STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipus d'aeronau: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Llista de selecció de trens i vagons. Clica al vehicle per més informació. Ctrl+Click per a alternar entre mostrar/ocultar el vehicle ferroviari STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Llista de models de vehicles de carretera. Clica sobre el model per més informació. Amb Ctrl+Clic, commuta entre mostrar o ocultar el model. @@ -3533,6 +3535,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING}{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING}{}Capacitat: {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING} Abast: {COMMA} caselles{}Capacitat: {CARGO_LONG}, {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Velocitat màx.: {VELOCITY}{}Tipus d'aeronau: {STRING} Abast: {COMMA} caselles{}Capacitat: {CARGO_LONG}{}Cost de circulació: {CURRENCY_LONG} per any # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING} @@ -3655,6 +3661,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} any{P " 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_TYPE :{BLACK}Velocitat màx.: {LTBLUE}{VELOCITY} {BLACK}Tipus d'aeronau: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocitat màx.: {LTBLUE}{VELOCITY} {BLACK}Tipus d'aeronau: {LTBLUE}{STRING} {BLACK}Abast: {LTBLUE}{COMMA} caselles 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}E.T. màx.: {LTBLUE}{FORCE} diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index c9bf2dd95b..9845ed1d7e 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3463,6 +3463,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozi STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj grupu +STR_GROUP_PROFIT_THIS_YEAR :Dobit ove godine: +STR_GROUP_PROFIT_LAST_YEAR :Dobit prošle godine: +STR_GROUP_OCCUPANCY :Trenutna uporaba: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova željeznička vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električna pružna vozila diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 448efacd9a..cbe4258c27 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -3455,6 +3455,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstranit všec STR_GROUP_RENAME_CAPTION :{BLACK}Přejmenovat skupinu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nové lokomotivy a vagony STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrické lokomotivy a vagony diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 378ccd72a2..a6f2b072b7 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kør STR_GROUP_RENAME_CAPTION :{BLACK}Omdøb en gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye jernbanekøretøjer STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nyt elektrisk lokomotiv diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 024b4e2e51..1bdaded5a5 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Verwijder alle STR_GROUP_RENAME_CAPTION :{BLACK}Hernoem een groep + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nieuwe railvoertuigen STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nieuwe elektrische railvoertuigen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index cf63178a4b..121fcb9803 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -3327,6 +3327,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 4d0e5e2524..c89e33fece 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -3365,6 +3365,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 28f6d9066c..8cb30a79d2 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2796,6 +2796,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Forigi ĉiujn v STR_GROUP_RENAME_CAPTION :{BLACK}Alinomi grupon + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novaj Relaj Veturiloj STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novaj Elektraj Relaj Veturiloj diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index fa93dbe660..4de30054a1 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -3418,6 +3418,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Eemalda kõik s STR_GROUP_RENAME_CAPTION :{BLACK}Rühma nime vahetamine + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Uued rööbassõidukid STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uus elektriraudteesõiduk diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 77b514c02c..c683d46c01 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2989,6 +2989,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bein øll flutn STR_GROUP_RENAME_CAPTION :{BLACK}Navngev ein bólk + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nýggj jarnbreyta flutningstól STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nýggj ravmagns jarnbreyta flutningstól diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 87e2e50a19..1aa02e76e9 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Poista kaikki a STR_GROUP_RENAME_CAPTION :{BLACK}Nimeä ryhmä + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Uusi juna STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uusi sähköjuna diff --git a/src/lang/french.txt b/src/lang/french.txt index 1d8926ddf1..9866f5eecc 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -3368,6 +3368,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Retirer tous le STR_GROUP_RENAME_CAPTION :{BLACK}Renommer un groupe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nouveaux véhicules ferroviaires STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nouveaux véhicules ferroviaires électriques diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 304d541354..51133c2c9d 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1963,6 +1963,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Thoir s STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Seall roghainnean sgriobt IF/geama STR_INTRO_TOOLTIP_QUIT :{BLACK}Fàg “OpenTTD" +STR_INTRO_BASESET :{BLACK}Tha {NUM} {P sprìd sprìd sprìdean sprìd} a dhìth air an t-seata grafaigeachd bhunasach a thagh thu. Thoir sùil airson ùrachaidhean an t-seata bhunasaich. STR_INTRO_TRANSLATION :{BLACK}Tha {NUM} {P sreang shreang sreangan sreang} a dhìth air an eadar-theangachadh seo. Nach toir thu cuideachadh dhuinn gus piseach a thort air OpenTTD ’s tu a' clàradh mar eadar-theangaiche? Thoir sùil air readme.txt airson fiosrachaidh. # Quit window @@ -2524,9 +2525,21 @@ STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Toglaich STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Iompaich/Àrdaich seòrsa na rèile. Toglaidh Shift togail/sealladh air tuairmse chosgaisean STR_RAIL_NAME_RAILROAD :Rathad-iarainn +STR_RAIL_NAME_RAILROAD.nom :rathad-iarainn +STR_RAIL_NAME_RAILROAD.gen :rathaid-iarainn +STR_RAIL_NAME_RAILROAD.dat :rathad-iarainn STR_RAIL_NAME_ELRAIL :Rathad-iarainn dealain +STR_RAIL_NAME_ELRAIL.nom :rathad-iarainn dealain +STR_RAIL_NAME_ELRAIL.gen :rathaid-iarainn dealain +STR_RAIL_NAME_ELRAIL.dat :rathad-iarainn dealain STR_RAIL_NAME_MONORAIL :Rathad-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.nom :rathad-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.gen :rathaid-iarainn aona-rèile +STR_RAIL_NAME_MONORAIL.dat :rathad-iarainn aona-rèile STR_RAIL_NAME_MAGLEV :Rathad-iarainn magnaiteach +STR_RAIL_NAME_MAGLEV.nom :rathad-iarainn magnaiteach +STR_RAIL_NAME_MAGLEV.gen :rathaid-iarainn mhagnaitich +STR_RAIL_NAME_MAGLEV.dat :rathad-iarainn magnaiteach # Rail depot construction window STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Comhair na trèan-lainn @@ -2800,6 +2813,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Ainm lea STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carago air a ghabhail ris: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Seòrsa an rèile: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Crìoch-luaiths rèile: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Crìoch-astair rathaid: {LTBLUE}{VELOCITY} @@ -2812,29 +2826,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Achaidhean STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Tìr sneachdach STR_LAI_CLEAR_DESCRIPTION_DESERT :Fàsach -STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe Rathad-iarainn -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe Rathad-iarainn le comharran bacaidh -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe Rathad-iarainn le ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe Rathad-iarainn le comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe Rathad-iarainn le comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe Rathad-iarainn le comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe Rathad-iarainn le comharran bacaidh is ro-chomharran -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran-bacaidh is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran a-mach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe Rathad-iarainn le ro-chomharran is comharran aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aonaichte -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe Rathad-iarainn le comharran a-mach is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran a-mach is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is slighe -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran aonaichte is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe Rathad-iarainn le comharran slighe is aon-shligheach -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann Rathad-iarainn +STR_LAI_RAIL_DESCRIPTION_TRACK :Slighe rathaid-iarainn +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Slighe rathaid-iarainn le comharran bacaidh +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Slighe rathaid-iarainn le ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Slighe rathaid-iarainn le comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Slighe rathaid-iarainn le comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Slighe rathaid-iarainn le comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Slighe rathaid-iarainn le comharran bacaidh is ro-chomharran +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran-bacaidh is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran a-mach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Slighe rathaid-iarainn le ro-chomharran is comharran aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Slighe rathaid-iarainn le comharran a-mach is aonaichte +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Slighe rathaid-iarainn le comharran a-mach is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran a-mach is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Slighe rathaid-iarainn le comharran aonaichte is slighe +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran aonaichte is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Slighe rathaid-iarainn le comharran slighe is aon-shligheach +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trèan-lann rathaid-iarainn STR_LAI_ROAD_DESCRIPTION_ROAD :Rathad STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rathad le solasan-rathaid @@ -3521,6 +3535,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Feum air STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Feum air +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}a' feitheamh +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING} @@ -3589,6 +3608,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Thoir a h-uile STR_GROUP_RENAME_CAPTION :{BLACK}Thoir ainm ùr air buidheann +STR_GROUP_PROFIT_THIS_YEAR :Prothaid am bliadhna: +STR_GROUP_PROFIT_LAST_YEAR :Prothaid an-uiridh: +STR_GROUP_OCCUPANCY :Cleachdadh an-dràsta: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Carbadan-rèile ùra STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Carbadan-rèile dealain ùra @@ -3620,6 +3644,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Na h-uile seòr STR_PURCHASE_INFO_ALL_BUT :Na h-uile ach {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Spàirn tàirnge as motha: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Astar: {GOLD}{COMMA} {P leac leac leacan leac} +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Seòrsa a' charbaid-adhair: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Liosta airson carbadan-rèile a thaghadh. Briog air carbad airson fiosrachaidh. Ctrl+briog gus toglachadh an tèid seòrsa a’ charbaid fhalach gus nach tèid STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Liosta airson carbadan-rathaid a thaghadh. Briog air carbad airson fiosrachaidh. Ctrl+briog gus toglachadh an tèid seòrsa a’ charbaid fhalach gus nach tèid @@ -3754,6 +3779,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :einnsean magnai STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cosgais: {CURRENCY_LONG} Cuideam: {WEIGHT_SHORT}{}Luaths: {VELOCITY} Cumhachd: {POWER} Neart: {6:FORCE}{}Cosgaisean ruith: {4:CURRENCY_LONG}/bliadhna{}Tomhas-lìonaidh: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Astar as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cogais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING} Astar: {COMMA} {P leacag leacag leacagan leacag}{}Tomhas-lìonaidh: {CARGO_LONG}, {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Astar as motha: {VELOCITY}{}Seòrsa carbaid-adhair: {STRING} Astar: {COMMA} {P leacag leacag leacagan leacag}{}Capacity: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING} @@ -3783,6 +3812,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Briog ai STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Gearr leum eadar uinneagan leasachadh nan einnseanan is nan carbadan STR_REPLACE_ENGINES :Einnseanan STR_REPLACE_WAGONS :Carbadan +STR_REPLACE_ALL_RAILTYPE :A h-uile carbad-rèile STR_REPLACE_HELP_RAILTYPE :{BLACK}Tagh an seòrsa dhe rèile is tu airson einnseanan a leasachadh air a shon STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Seallaidh seo an einnsean a tha ga chur an àite an einnsein a thagh thu air an taobh chlì, ma tha gin ann @@ -3875,6 +3905,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P bhli STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P bhliadhna bhliadhna bliadhna bliadhna} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Seòrsa carbaid-adhair: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Seòrsa carbaid-adhair: {LTBLUE}{STRING} {BLACK}Astar: {LTBLUE}{COMMA} {P leacag leacag leacagan leacag} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Cuideam: {LTBLUE}{WEIGHT_SHORT} {BLACK}Cumhachd: {LTBLUE}{POWER}{BLACK} Luaths as motha: {LTBLUE}{VELOCITY} {BLACK}Neart as motha: {LTBLUE}{FORCE} diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 93942d6e0b..b641022e7b 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -3307,6 +3307,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Borrar tódolos STR_GROUP_RENAME_CAPTION :{BLACK}Renomear un grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos vehículos ferroviarios STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos vehículos ferroviarios eléctricos diff --git a/src/lang/german.txt b/src/lang/german.txt index 2ea57b7710..f35e2eca9e 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Liste leeren STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe umbenennen + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Neue Schienenfahrzeuge STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Neue elektrische Schienenfahrzeuge diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 8174e9475a..3c051be48b 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3472,6 +3472,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεσ STR_GROUP_RENAME_CAPTION :{BLACK}Μετονομασία μίας ομάδας + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Νέα Οχήματα Σιδηρόδρομου STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Νέα Οχήματα Ηλεκτροδοτουμένου Σιδηρόδρομου diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index d92c1acfd9..db8ce931fb 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -3374,6 +3374,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כ STR_GROUP_RENAME_CAPTION :{BLACK}שנה שם קבוצה + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :רכבות חדשות STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :רכבות חשמליות חדשות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 3a5c36dbe8..b88e738c4f 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -3424,6 +3424,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Új vasúti járművek STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Új villamos vasúti járművek diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 8b975aa4a0..e4cd730624 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -3149,6 +3149,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjarlægja öll STR_GROUP_RENAME_CAPTION :{BLACK}Endurnefna hóp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Lestaúrval STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nýjir rafdrifnir lestarvagnar diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index d4fb0f97af..4b7dcafd23 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -3356,6 +3356,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Jual semua STR_GROUP_RENAME_CAPTION :{BLACK}Ubah nama kelompok + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Kereta Baru STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Kereta listrik baru diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 5a40971b66..d8284fef1a 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bain gach feith STR_GROUP_RENAME_CAPTION :{BLACK}Athainmnigh grúpa + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Feithiclí Iarnróid Nua STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Feithiclí Iarnróid Leictreacha Nua diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 60ab69ba4a..e610e1dc05 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -3397,6 +3397,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i STR_GROUP_RENAME_CAPTION :{BLACK}Rinomina un gruppo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuovi veicoli ferroviari STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuovi veicoli ferroviari elettrici diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 75821b07d4..07055e8db9 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3363,6 +3363,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :全輸送機器 STR_GROUP_RENAME_CAPTION :{BLACK}グループ名を変更 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :新規機関車(非電化) STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :新規機関車(電化)/電車 diff --git a/src/lang/korean.txt b/src/lang/korean.txt index bd40157012..5758f96fab 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3368,6 +3368,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :모든 차량 STR_GROUP_RENAME_CAPTION :{BLACK}그룹 이름 설정 +STR_GROUP_PROFIT_THIS_YEAR :올해 수익: +STR_GROUP_PROFIT_LAST_YEAR :작년 수익: +STR_GROUP_OCCUPANCY :현재 사용량: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :새 열차 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :새 전기 열차 @@ -3399,6 +3404,7 @@ STR_PURCHASE_INFO_ALL_TYPES :모든 화물 STR_PURCHASE_INFO_ALL_BUT :{CARGO_LIST} 이외의 모든 화물 STR_PURCHASE_INFO_MAX_TE :{BLACK}최고 견인력: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}항속거리: {GOLD}{COMMA} 칸 +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}항공기 종류: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}열차 차량 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}자동차/전차 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. @@ -3531,8 +3537,12 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}모노레 STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부상열차 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER}{}유지비: {CURRENCY_LONG}/년{}수송량: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}비용: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 T.E.: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}용량: {5:CARGO_LONG} -STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}가격: {CURRENCY_LONG} 무게: {WEIGHT_SHORT}{}속력: {VELOCITY} 힘: {POWER} 최대 견인력: {6:FORCE}{}유지비: {4:CURRENCY_LONG}/년{}수송량: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING}{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING} 항속거리: {COMMA}칸{}수송량: {CARGO_LONG}, {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고 속력: {VELOCITY}{}항공기 종류: {STRING} 항속거리: {COMMA}칸{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING} @@ -3655,8 +3665,10 @@ STR_VEHICLE_INFO_AGE :{COMMA}년 ({CO STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA}년 ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}최고 속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} -STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고속력: {LTBLUE}{VELOCITY} {BLACK}최고 T.E.: {LTBLUE}{FORCE} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항공기 종류: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}최고 속력: {LTBLUE}{VELOCITY} {BLACK}항공기 종류: {LTBLUE}{STRING} {BLACK}항속거리: {LTBLUE}{COMMA}칸 +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} {BLACK}최고 견인력: {LTBLUE}{FORCE} STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}올해 수익: {LTBLUE}{CURRENCY_LONG} (작년: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}신뢰도: {LTBLUE}{COMMA}% {BLACK}최근 점검 이후의 고장: {LTBLUE}{COMMA} diff --git a/src/lang/latin.txt b/src/lang/latin.txt index eb1e2f8033..8152b3a140 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -3567,6 +3567,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Removere omnia STR_GROUP_RENAME_CAPTION :{BLACK}Renominare gregem + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Vehicula Ferriviaria Nova STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Vehicula Ferriviaria Electrica Nova diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 45f80eaa09..ce4fd31d40 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -3293,6 +3293,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Novākt visus t STR_GROUP_RENAME_CAPTION :{BLACK}Pārdēvēt grupu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Jauni dzelzceļa transportlīdzekļi STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Jauni elektrificētā dzelzceļa transportlīdzekļi diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 83cf62075f..66091cd5f8 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3579,6 +3579,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Iškelti visas STR_GROUP_RENAME_CAPTION :{BLACK}Pervadinti grupę + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nauji lokomotyvai STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nauji elektriniai lokomotyvai diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index bb28119ea3..818e797457 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -3367,6 +3367,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :All Gefierer ew STR_GROUP_RENAME_CAPTION :{BLACK}Eng Grupp ëmbenennen + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nei Zich STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nei Elektrozich diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 5ed16decaf..427788ddee 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -3019,6 +3019,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Buang semua ken STR_GROUP_RENAME_CAPTION :{BLACK}Namakan semula kenderaan + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Keretapi Baru STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Keretapi Elektrik Baru diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 9f60b97ac8..eb2c613437 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -3364,6 +3364,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kjø STR_GROUP_RENAME_CAPTION :{BLACK}Endre navn på gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nye tog/vogner for elektrisk jernbane diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index 96ee8362bd..50eb2d809c 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -3277,6 +3277,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køy STR_GROUP_RENAME_CAPTION :{BLACK}Gje nytt namn til ei gruppe + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nytt elektrisk tog diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 4f137e1e89..d3b0e88a07 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3745,6 +3745,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Usuń wszystkie STR_GROUP_RENAME_CAPTION :{BLACK}Zmień nazwę grupy + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nowe pociągi STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nowe elektryczne pojazdy szynowe diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 0f77917da1..da8eb3afaf 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos comboios para carris electrificados diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 7fd3ee581d..7975471457 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -3317,6 +3317,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Elimină toate STR_GROUP_RENAME_CAPTION :{BLACK}Redenumeşte un grup + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Noi vehicule feroviare STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Noi Vehicule Electrice pe Sine diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 9f78d15b7f..e36fc18b66 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -3547,6 +3547,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Удалить STR_GROUP_RENAME_CAPTION :{BLACK}Название группы + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новый поезд STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новый электропоезд diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 076758eba2..d047538993 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3555,6 +3555,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozi STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj grupu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova Železnička Vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Železnička Električna Vozila diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index bb23f31af6..66f590d77b 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车 STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :购买普通列车 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :购买电气化列车 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index d9ca9debb7..69731252c7 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -3428,6 +3428,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstrániť vš STR_GROUP_RENAME_CAPTION :{BLACK}Premenovať skupinu + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nove vlaky STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrické lokomotívy a vagóny diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 15d1b85639..6d6abd5e07 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -3513,6 +3513,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstrani vsa vo STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj eno skupino + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nova železniška vozila STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električna tirna vozila diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index f3bd99aa48..7cffa0d740 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos Vehículos de Ferrocarril STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos Vehículos de Ferrocarril Eléctrico diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 7e5223f0fc..82da64c535 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -3363,6 +3363,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Cambiar nombre del grupo + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos trenes STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos trenes eléctricos diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index e9bc290f04..09468962f9 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ta bort alla fo STR_GROUP_RENAME_CAPTION :{BLACK}Döp om en grupp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nytt tågfordon STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nya elektriska järnvägsfordon diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index a1e4c43fac..6bb76a36da 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -2976,6 +2976,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :அனைத் STR_GROUP_RENAME_CAPTION :{BLACK}குழுவின் பெயரினை மாற்றவும் + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :புது இரயில் வாகனங்கள் STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :புது மின்சார இரயில் வாகனங்கள் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 72241e4d5e..c3e6916d3c 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -3290,6 +3290,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :ลบยาน STR_GROUP_RENAME_CAPTION :{BLACK}เปลี่ยนชื่อกลุ่ม + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :รถไฟใหม่ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :รถไฟฟ้าใหม่ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 7c207f60c4..92a7b1a5b3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移去所有運 STR_GROUP_RENAME_CAPTION :{BLACK}重新命名群組 + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :新購鐵路列車 STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :新購電氣化列車 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index bad2604fe6..3900920c03 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -3362,6 +3362,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Bütün araçla STR_GROUP_RENAME_CAPTION :{BLACK}Grubun ismini değiştir + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Yeni Tren STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Yeni Elektrikli Trenler diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 66546b7ef6..b48304d02d 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3491,6 +3491,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Позбути STR_GROUP_RENAME_CAPTION :{BLACK}Перейменувати групу + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новий неелектрифікований поїзд STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новий електрифікований поїзд diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt index 117e2dbbb8..a9f98fe138 100644 --- a/src/lang/unfinished/chuvash.txt +++ b/src/lang/unfinished/chuvash.txt @@ -1133,6 +1133,7 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу + # Build vehicle window diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index dc049e5d98..c84f894877 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -3097,6 +3097,7 @@ STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Ferwider STR_GROUP_REMOVE_ALL_VEHICLES :Alle fiertugen weihelje + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nije spoar weinen STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nije elektryske treinen diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index 1e5c942a14..ff0ad37f4e 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -967,6 +967,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 e6abadca01..f3b4cbaaec 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1448,6 +1448,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 473f4de2ab..628fe94cfc 100644 --- a/src/lang/unfinished/maltese.txt +++ b/src/lang/unfinished/maltese.txt @@ -839,6 +839,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 b2ccf18b67..2437182361 100644 --- a/src/lang/unfinished/marathi.txt +++ b/src/lang/unfinished/marathi.txt @@ -1310,6 +1310,7 @@ STR_GROUP_ALL_AIRCRAFTS :सर्व STR_GROUP_REMOVE_ALL_VEHICLES :सगळे वाहने काढा + # Build vehicle window STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :नवीन रस्त्यावरचे वाहन diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 10689c715a..14a70bab4e 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2951,6 +2951,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 934c405b22..324e073aa4 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2349,6 +2349,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}گروپ + # Build vehicle window STR_BUY_VEHICLE_AIRCRAFT_CAPTION :نیا طیارہ diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 7808129fa9..b650e1f5e7 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -3360,6 +3360,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Xoá tất cả STR_GROUP_RENAME_CAPTION :{BLACK}Đổi tên nhóm + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Tàu Hỏa Mới STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tàu Điện Mới diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index bc80a83111..e44e63893b 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -3361,6 +3361,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Dileu pob cerby STR_GROUP_RENAME_CAPTION :{BLACK}Ailenwi grŵp + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Cerbydau Rheilffordd Newydd STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Cerbydau Rheilffordd Trydan Newydd From 0e68f9db70d5380ab30e70bd003f35e8bd3679f8 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 18:55:16 +0000 Subject: [PATCH 110/158] (svn r27825) -Feature [FS#4950]: Add option to close windows with right click (Flamefire) --- src/lang/english.txt | 2 ++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/table/settings.ini | 8 ++++++++ src/window.cpp | 20 ++++++++++++++++---- 5 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/lang/english.txt b/src/lang/english.txt index 722459c353..5d794483c8 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1372,6 +1372,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Close window on right-click: {STRING2} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Closes a window by right-clicking inside it. Disables the tooltip on right-click! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING2} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index e20ac33073..6cde709b06 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1506,6 +1506,7 @@ static SettingsContainer &GetSettingsTree() general->Add(new SettingEntry("gui.errmsg_duration")); general->Add(new SettingEntry("gui.window_snap_radius")); general->Add(new SettingEntry("gui.window_soft_limit")); + general->Add(new SettingEntry("gui.right_mouse_wnd_close")); } SettingsPage *viewports = interface->Add(new SettingsPage(STR_CONFIG_SETTING_INTERFACE_VIEWPORTS)); diff --git a/src/settings_type.h b/src/settings_type.h index 41366a7719..2dc9ec92ec 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -113,6 +113,7 @@ struct GUISettings { uint8 scrollwheel_multiplier; ///< how much 'wheel' per incoming event from the OS? bool timetable_arrival_departure; ///< show arrivals and departures in vehicle timetables bool left_mouse_btn_scrolling; ///< left mouse button scroll + bool right_mouse_wnd_close; ///< close window with right click bool pause_on_newgame; ///< whether to start new games paused or not bool enable_signal_gui; ///< show the signal GUI when the signal button is pressed Year coloured_news_year; ///< when does newspaper become coloured? diff --git a/src/table/settings.ini b/src/table/settings.ini index 8e2aecac15..23fca32a43 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -2583,6 +2583,14 @@ str = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING strhelp = STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT cat = SC_BASIC +[SDTC_BOOL] +var = gui.right_mouse_wnd_close +flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC +def = false +str = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE +strhelp = STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT +cat = SC_BASIC + [SDTC_BOOL] var = gui.measure_tooltip flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC diff --git a/src/window.cpp b/src/window.cpp index f1c53f2045..2723612859 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -772,7 +772,15 @@ static void DispatchRightClickEvent(Window *w, int x, int y) if (w->OnRightClick(pt, wid->index)) return; } - if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); + /* Right-click close is enabled and there is a closebox */ + if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) + { + delete w; + } + else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) + { + GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); + } } /** @@ -2825,11 +2833,12 @@ static void MouseLoop(MouseClick click, int mousewheel) switch (click) { case MC_DOUBLE_LEFT: case MC_LEFT: - if (!HandleViewportClicked(vp, x, y) && - !(w->flags & WF_DISABLE_VP_SCROLL) && + if (HandleViewportClicked(vp, x, y)) return; + if (!(w->flags & WF_DISABLE_VP_SCROLL) && _settings_client.gui.left_mouse_btn_scrolling) { _scrolling_viewport = true; _cursor.fix_at = false; + return; } break; @@ -2841,13 +2850,16 @@ static void MouseLoop(MouseClick click, int mousewheel) /* clear 2D scrolling caches before we start a 2D scroll */ _cursor.h_wheel = 0; _cursor.v_wheel = 0; + return; } break; default: break; } - } else { + } + + if (vp == NULL || (w->flags & WF_DISABLE_VP_SCROLL)) { switch (click) { case MC_LEFT: case MC_DOUBLE_LEFT: From 95cab2738113e7d8c3c5914c673a810a86a9a9d7 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 24 Mar 2017 19:25:01 +0000 Subject: [PATCH 111/158] (svn r27826) -Fix (r27825): Wrong code style --- src/window.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/window.cpp b/src/window.cpp index 2723612859..8378f60f76 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -773,12 +773,9 @@ static void DispatchRightClickEvent(Window *w, int x, int y) } /* Right-click close is enabled and there is a closebox */ - if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) - { + if (_settings_client.gui.right_mouse_wnd_close && w->nested_root->GetWidgetOfType(WWT_CLOSEBOX)) { delete w; - } - else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) - { + } else if (_settings_client.gui.hover_delay_ms == 0 && wid->tool_tip != 0) { GuiShowTooltips(w, wid->tool_tip, 0, NULL, TCC_RIGHT_CLICK); } } From 98673c94b86e0930a8b5a1f816211835edf77a3c Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 25 Mar 2017 12:21:17 +0000 Subject: [PATCH 112/158] (svn r27827) -Codechange (r27819): Deduplicate code. (adf88) --- src/settings_gui.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 6cde709b06..0420ba15b3 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -36,8 +36,6 @@ #include "textfile_gui.h" #include "stringfilter_type.h" #include "querystring_gui.h" -#include "signs_func.h" -#include "station_func.h" #include @@ -534,9 +532,7 @@ struct GameOptionsWindow : Window { _gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index); UpdateCursorSize(); LoadStringWidthTable(); - UpdateAllSignVirtCoords(); - UpdateAllTownVirtCoords(); - UpdateAllStationVirtCoords(); + UpdateAllVirtCoords(); break; case WID_GO_BASE_GRF_DROPDOWN: From 7659ec05af2f42a7d2fcfe3b1a4181ad159856e5 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 25 Mar 2017 18:45:40 +0000 Subject: [PATCH 113/158] (svn r27828) -Update from Eints: croatian: 2 changes by VoyagerOne italian: 6 changes by lorenzodv english (us): 15 changes by Supercheese latin: 15 changes by Supercheese --- src/lang/croatian.txt | 2 ++ src/lang/english_US.txt | 15 +++++++++++++++ src/lang/italian.txt | 6 ++++++ src/lang/latin.txt | 15 +++++++++++++++ 4 files changed, 38 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 9845ed1d7e..32efffe157 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1468,6 +1468,8 @@ 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 karte povlačenjem pomoću lijevog gumba miša. Ovo je posebno korisno kada se koristi zaslon osjetljiv na dodir +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Zatvori prozor nakon desnog klika: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Zatvara prozor nakon desnog klika unutar prozora. S desnim klikom zatvaraju se i upute alata! STR_CONFIG_SETTING_AUTOSAVE :Automatsko snimanje: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Odaberite interval između automatskog snimanja igre diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index c89e33fece..4b039dc8ba 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1372,6 +1372,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Close window on right-click: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Closes a window by right-clicking inside it. Disables the tooltip on right-click! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Select interval between automatic game saves @@ -3297,6 +3299,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING} @@ -3365,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehi STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group +STR_GROUP_PROFIT_THIS_YEAR :Profit this year: +STR_GROUP_PROFIT_LAST_YEAR :Profit last year: +STR_GROUP_OCCUPANCY :Current usage: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles @@ -3397,6 +3405,7 @@ STR_PURCHASE_INFO_ALL_TYPES :All cargo types STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Aircraft type: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Train vehicle selection list. Click on vehicle for information. Ctrl+Click to toggle hiding of the vehicle type STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Road vehicle selection list. Click on vehicle for information. Ctrl+Click to toggle hiding of the vehicle type @@ -3531,6 +3540,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomoti STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Aircraft type: {STRING} Range: {COMMA} tiles{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING} @@ -3653,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} year{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} year{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. speed: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. speed: {LTBLUE}{VELOCITY} {BLACK}Aircraft type: {LTBLUE}{STRING} {BLACK}Range: {LTBLUE}{COMMA} tiles STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Weight: {LTBLUE}{WEIGHT_SHORT} {BLACK}Power: {LTBLUE}{POWER}{BLACK} Max. speed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} diff --git a/src/lang/italian.txt b/src/lang/italian.txt index e610e1dc05..6a82799cf7 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1396,6 +1396,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Chiudi finestra con clic destro: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita I suggerimenti attivati al clic col pulsante destro! STR_CONFIG_SETTING_AUTOSAVE :Salvataggi automatici: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleziona l'intervallo fra i salvataggi automatici della partita @@ -3397,6 +3399,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i STR_GROUP_RENAME_CAPTION :{BLACK}Rinomina un gruppo +STR_GROUP_PROFIT_THIS_YEAR :Profitto quest'anno: +STR_GROUP_PROFIT_LAST_YEAR :Profitto anno scorso: +STR_GROUP_OCCUPANCY :Utilizzo corrente: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuovi veicoli ferroviari diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 8152b3a140..58f9e63b76 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1560,6 +1560,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Neglecta STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Vagatio globuli sinistri: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Annuere tabulam vagari trahendo globuli sinistri. Magnopere utilis est cum tangendo navigas in scrinio +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Claudere fenestras globulo muris dextro: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Facit ut globulus muris dexter fenestras claudat. Cave: hac electa, non apparent nuntia adiuvantia globulo dextro. STR_CONFIG_SETTING_AUTOSAVE :Servare automatice: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Eligere crebritatem automatice ludum servandi @@ -3499,6 +3501,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}manet +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING.acc}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING} @@ -3567,6 +3571,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Removere omnia STR_GROUP_RENAME_CAPTION :{BLACK}Renominare gregem +STR_GROUP_PROFIT_THIS_YEAR :Lucrum huius anni: +STR_GROUP_PROFIT_LAST_YEAR :Lucrum anni prioris: +STR_GROUP_OCCUPANCY :Usus currens: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Vehicula Ferriviaria Nova @@ -3599,6 +3607,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Omnibus onerum STR_PURCHASE_INFO_ALL_BUT :Omnibus praeterquam {CARGO_LIST.dat} STR_PURCHASE_INFO_MAX_TE :{BLACK}Vis Tractionis Maxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Max. distantia volatus: {GOLD}{COMMA} tegulas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Typus aeroplani: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Index electionis vehiculorum ferriviariorum. Preme in vehiculum ut plura indicia monstrentur. Ctrl+Preme ut typus vehiculi celetur STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Index electionis vehiculorum viariorum. Preme in vehiculum ut plura indicia monstrentur. Ctrl+Preme ut typus vehiculi celetur @@ -3733,6 +3742,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam ma STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING}{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING} Max. Distantia Volatus: {COMMA} tegulas{}Capacitas: {CARGO_LONG}, {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Typus Aeroplani: {STRING} Max. Distantia Volatus: {COMMA} tegulas{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING} @@ -3855,6 +3868,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ann{P u STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ann{P us i} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Typus aeroplani: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}Typus aeroplani: {LTBLUE}{STRING} {BLACK}Max. distantia volatus: {LTBLUE}{COMMA} tegulas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Pondus: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potestas: {LTBLUE}{POWER}{BLACK} Velocitas maxima: {LTBLUE}{VELOCITY} {BLACK}V.T. Max.: {LTBLUE}{FORCE} From 01c8ba0d5dfa4e298b0b88a3df09b00d572206a0 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 25 Mar 2017 23:19:41 +0000 Subject: [PATCH 114/158] (svn r27829) -Fix (r27821): Occasional crash caused by mixing int/uint arithmetic. --- src/gfx_func.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gfx_func.h b/src/gfx_func.h index 44f5e5059f..99461f9079 100644 --- a/src/gfx_func.h +++ b/src/gfx_func.h @@ -149,7 +149,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh * @param size The height or width of the object to draw. * @return Offset of where to start drawing the object. */ -static inline int CenterBounds(int min, int max, uint size) +static inline int CenterBounds(int min, int max, int size) { return min + (max - min - size + 1) / 2; } From 485c64fcbe16683e25ff5fea0d1596451a0ca12c Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 26 Mar 2017 17:45:37 +0000 Subject: [PATCH 115/158] (svn r27830) -Update from Eints: catalan: 6 changes by juanjo italian: 1 change by lorenzodv russian: 6 changes by Lone_Wolf --- src/lang/catalan.txt | 6 ++++++ src/lang/italian.txt | 2 +- src/lang/russian.txt | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index aeac5a18c8..91df223fb7 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1373,6 +1373,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Tanca la finestra amb un clic dret del ratolí: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Tanca una finestra fent-hi un clic amb el botó dret del ratolí. Aquesta opció desactiva els indicadors de funció amb el mateix botó. STR_CONFIG_SETTING_AUTOSAVE :Desada automàtica: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona l'interval entre desades automàtiques de les partides. @@ -3368,6 +3370,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els v STR_GROUP_RENAME_CAPTION :{BLACK}Canvia de nom el grup +STR_GROUP_PROFIT_THIS_YEAR :Benefici d'enguany: +STR_GROUP_PROFIT_LAST_YEAR :Benefici de l'any passat: +STR_GROUP_OCCUPANCY :Ocupació actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de nous vehicles ferroviaris diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 6a82799cf7..988a95758a 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1397,7 +1397,7 @@ 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_RIGHT_MOUSE_WND_CLOSE :Chiudi finestra con clic destro: {STRING} -STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita I suggerimenti attivati al clic col pulsante destro! +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Consente di chiudere una finestra facendo clic col pulsante destro al suo interno. Disabilita i suggerimenti attivati al clic col pulsante destro! STR_CONFIG_SETTING_AUTOSAVE :Salvataggi automatici: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleziona l'intervallo fra i salvataggi automatici della partita diff --git a/src/lang/russian.txt b/src/lang/russian.txt index e36fc18b66..1285bc4cc7 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1524,6 +1524,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Закрывать окна щелчком ПКМ: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Закрывать окно щелчком правой кнопкой мыши в его пределах. При этом отключается появление подсказок по правой кнопке. STR_CONFIG_SETTING_AUTOSAVE :Автосохранения: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Укажите интервал между автоматическими сохранениями @@ -3547,6 +3549,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Удалить STR_GROUP_RENAME_CAPTION :{BLACK}Название группы +STR_GROUP_PROFIT_THIS_YEAR :Прибыль в текущем году: +STR_GROUP_PROFIT_LAST_YEAR :Прибыль в прошлом году: +STR_GROUP_OCCUPANCY :Средняя загрузка ТС: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новый поезд From 348607aa89020858508b6cf08a98a876cfade7dd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 26 Mar 2017 19:07:08 +0000 Subject: [PATCH 116/158] (svn r27831) -Fix (r24577): Misaligned resize icon (due to widget bounds being inclusive) --- src/widget.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/widget.cpp b/src/widget.cpp index 3aac9611b1..0f1743b907 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -507,11 +507,13 @@ static inline void DrawResizeBox(const Rect &r, Colours colour, bool at_left, bo { DrawFrameRect(r.left, r.top, r.right, r.bottom, colour, (clicked) ? FR_LOWERED : FR_NONE); if (at_left) { + Dimension d = GetSpriteSize(SPR_WINDOW_RESIZE_LEFT); DrawSprite(SPR_WINDOW_RESIZE_LEFT, PAL_NONE, r.left + WD_RESIZEBOX_RIGHT + clicked, - r.bottom - WD_RESIZEBOX_BOTTOM - GetSpriteSize(SPR_WINDOW_RESIZE_LEFT).height + clicked); + r.bottom + 1 - WD_RESIZEBOX_BOTTOM - d.height + clicked); } else { - DrawSprite(SPR_WINDOW_RESIZE_RIGHT, PAL_NONE, r.left + WD_RESIZEBOX_LEFT + clicked, - r.bottom - WD_RESIZEBOX_BOTTOM - GetSpriteSize(SPR_WINDOW_RESIZE_RIGHT).height + clicked); + Dimension d = GetSpriteSize(SPR_WINDOW_RESIZE_RIGHT); + DrawSprite(SPR_WINDOW_RESIZE_RIGHT, PAL_NONE, r.right + 1 - WD_RESIZEBOX_RIGHT - d.width + clicked, + r.bottom + 1 - WD_RESIZEBOX_BOTTOM - d.height + clicked); } } From 065a0547e23725ac08e7eb00838834b4cbe3a99e Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 27 Mar 2017 22:00:45 +0000 Subject: [PATCH 117/158] (svn r27832) -Fix: Missing or incorrect colour codes in translations --- src/lang/arabic_egypt.txt | 20 ++++++++++---------- src/lang/belarusian.txt | 2 +- src/lang/bulgarian.txt | 2 +- src/lang/czech.txt | 4 ++-- src/lang/dutch.txt | 2 +- src/lang/gaelic.txt | 2 +- src/lang/galician.txt | 4 ++-- src/lang/greek.txt | 4 ++-- src/lang/hebrew.txt | 6 +++--- src/lang/japanese.txt | 4 ++-- src/lang/korean.txt | 2 +- src/lang/lithuanian.txt | 2 +- src/lang/luxembourgish.txt | 2 +- src/lang/polish.txt | 2 +- src/lang/portuguese.txt | 2 +- src/lang/serbian.txt | 4 ++-- src/lang/simplified_chinese.txt | 2 +- src/lang/thai.txt | 20 ++++++++++---------- src/lang/traditional_chinese.txt | 4 ++-- src/lang/turkish.txt | 2 +- src/lang/ukrainian.txt | 2 +- 21 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 8cb3b11787..70e4734099 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -942,8 +942,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى -STR_GAME_OPTIONS_GUI_ZOOM_FRAME :حجم اللوحة -STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :حدد العنصر المطلوب +STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}حجم اللوحة +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد العنصر المطلوب STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :تقريب عادي STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2 @@ -1051,9 +1051,9 @@ STR_CITY_APPROVAL_HOSTILE :معاد STR_WARNING_NO_SUITABLE_AI :{WHITE}لايوجد ذكاء اصطناعي متاح ...{}تستطيع تجميل العديد من الذكاء الاصطناعي عن طريق اللانترنت # Settings tree window -STR_CONFIG_SETTING_TREE_CAPTION :الإعدادات -STR_CONFIG_SETTING_EXPAND_ALL :مدد الكل -STR_CONFIG_SETTING_COLLAPSE_ALL :إسحب الكل +STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}الإعدادات +STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}مدد الكل +STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}إسحب الكل STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK} فئة: STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}نوع: @@ -1408,7 +1408,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}لعب STR_INTRO_GAME_OPTIONS :{BLACK}إعدادات اللعبه STR_INTRO_HIGHSCORE :{BLACK}قائمه المتفوقين -STR_INTRO_CONFIG_SETTINGS_TREE :الاعدادات +STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}الاعدادات STR_INTRO_NEWGRF_SETTINGS :{BLACK} اعدادات NewGRF STR_INTRO_ONLINE_CONTENT :{BLACK} إبحث عن المحتوى عبر الشبكه العنكبوتيه STR_INTRO_SCRIPT_SETTINGS :{BLACK}إعدادات الذكاء الصناعى @@ -1427,7 +1427,7 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}اختي STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}اختيار نمط الألعاب STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}عرض خيارات اللعبة -STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :إعدادات العرض +STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}إعدادات العرض STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث STR_INTRO_TOOLTIP_QUIT :{BLACK}اغلاق'OpenTTD' @@ -2383,7 +2383,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM} -STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :تغيير أعلى ارتفاع للخريطة +STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}تغيير أعلى ارتفاع للخريطة STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية @@ -2463,7 +2463,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}معطل STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}متعارض مع هذا اللإصدار من Openttd # NewGRF save preset window -STR_SAVE_PRESET_CAPTION :{BLACK}حفظ الإعداد المسبق +STR_SAVE_PRESET_CAPTION :{WHITE}حفظ الإعداد المسبق STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}لائحة الإعدادات المسبقة. اختر واحدة لنسخها للإسم المحفوظ بالإسفل STR_SAVE_PRESET_TITLE :{BLACK}أدخل اسم للإعداد المسبق STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}الإسم المختار لحفظ الإعداد المسبق @@ -3871,7 +3871,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}لا ي STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... العربة تحطمت STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}لن تتوافر اى وسائل نقل على اﻹطلاق -STR_ERROR_NO_VEHICLES_AVAILABLE_YET :لا تتوافر اى آليه نقل بعد +STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}لا تتوافر اى آليه نقل بعد # Specific vehicle errors STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}لا يمكن السماح للقطار بالعبور من الاشارة في وضع الخطر diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 3c4a255e49..2db90c701a 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -1432,7 +1432,7 @@ 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}Усе тыпы наладак +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Тып {BLACK}да {WHITE}Усе тыпы наладак STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Паказаць усе вынікі пошуку па наладках{}{SILVER}Катэґорыя {BLACK}да {WHITE}{STRING} {BLACK}і {SILVER}Тып {BLACK}да {WHITE}Усе тыпы наладак STR_CONFIG_SETTINGS_NONE :{WHITE}- Няма - diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index afee4af7eb..cebed13468 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2776,7 +2776,7 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{G=n}{RED}Не # NewGRF save preset window STR_SAVE_PRESET_TITLE :{BLACK}Въведи име за шаблона STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Текущо избраното име за именуване на шаблона -STR_SAVE_PRESET_CANCEL :Отказ +STR_SAVE_PRESET_CANCEL :{BLACK}Отказ STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Не променяй шаблона STR_SAVE_PRESET_SAVE :{BLACK}Запис STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Запази шаблона за текущо избраното име diff --git a/src/lang/czech.txt b/src/lang/czech.txt index cbe4258c27..329645f0f0 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1884,7 +1884,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magick STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunely se mohou křížit: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Letadla nebudou na malých letištích havarovat (tak často): {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Upravit maximální výšku mapy: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Upravit maximální výšku hor na mapě +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Upravit maximální výšku hor na mapě STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :krajina mírného pásma STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :subarktická krajina STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :subtropická kraina @@ -3225,7 +3225,7 @@ STR_STATION_VIEW_VIA :{YELLOW}{CARGO_ STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT} do {STATION} STR_STATION_VIEW_FROM_ANY :{RED}{CARGO_SHORT} z neznámé stanice STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHORT} do kterékoliv stanice -STR_STATION_VIEW_VIA_ANY :{GREEN}{CARGO_SHORT} přes jakoukoliv stanici +STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} přes jakoukoliv stanici STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} z této stanice STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} zastavuje v této stanici STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} do této stanice diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 1bdaded5a5..c6d5cf6178 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -255,7 +255,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Toon ver STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Toon verborgen STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen treinen ook weergegeven -STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :Door het inschakelen van deze knop, worden de verborgen wegvoertuigen ook weergegeven +STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen wegvoertuigen ook weergegeven STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen schepen ook weergegeven STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Door het inschakelen van deze knop, worden de verborgen vliegtuig ook weergegeven diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 51133c2c9d..4501405781 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1999,7 +1999,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Bulldoz STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Faodaidh tunailean dol tarsainn càch a chèile: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Cha tachair tubaist (gu tric) le steall-phlèan air port-adhair beag: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Deasaich àirde as motha a’ mhapa: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Deasaich an àirde as motha dhe bheanntan air a’ mhapa +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Deasaich an àirde as motha dhe bheanntan air a’ mhapa STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Cruth-tìre measarra STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Cruth-tìre fo-artach STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Cruth-tìre fo-thropaigeach diff --git a/src/lang/galician.txt b/src/lang/galician.txt index b641022e7b..303c2c3da5 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -762,7 +762,7 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Mostrar STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Amosar/ocultar mapa de cotas do terreo STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Non amosar as propiedades de ningunha compañía no mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Amosar as propiedades de tódalas compañías no mapa -STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :BLACK}Non amosa ningunha carga no mapa +STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Non amosa ningunha carga no mapa STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Amosa tódolas cargas no mapa # Status bar messages @@ -3908,7 +3908,7 @@ STR_AI_DEBUG_CONTINUE :{BLACK}Continua STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}Quita-la pausa e continua-la IA STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Ve-la saída da depuración desta IA STR_AI_GAME_SCRIPT :{BLACK}Script do xogo -STR_AI_GAME_SCRIPT_TOOLTIP :BLACK}Comproba o log do script do xogo +STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Comproba o log do script do xogo STR_ERROR_AI_NO_AI_FOUND :Non se atopou ningunha IA adecuada para cargar.{} Esta IA é parva e non vai facer nada.{}Podes descargar varias IAs no sistema de contidos online. STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Fallou unha das IA en execución. Por favor, informa ao autor desta IA cunha captura da Fiestra de Depuración de IA. diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 3c051be48b..83dd9391f0 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -3142,7 +3142,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Δωρ # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} Στόχοι: -STR_GOALS_SPECTATOR_CAPTION :{BLACK}Καθολικοί στόχοι: +STR_GOALS_SPECTATOR_CAPTION :{WHITE}Καθολικοί στόχοι: STR_GOALS_GLOBAL_TITLE :{BLACK}Καθολικοί στόχοι: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Κανένας - @@ -3465,7 +3465,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Μετο STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Πατήστε για προστατέψετε αυτήν την ομάδα από την γενική αυτόματη αντικατάσταση STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Διαγραφή ομάδας -STR_GROUP_DELETE_QUERY_TEXT :Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ομάδα και οποιουσδήποτε απογόνους; STR_GROUP_ADD_SHARED_VEHICLE :Προσθήκη κοινόχρηστων οχημάτων STR_GROUP_REMOVE_ALL_VEHICLES :Αφαίρεση όλων των οχημάτων diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index db8ce931fb..a61443f8aa 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1810,7 +1810,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}טרק STR_CHEAT_CROSSINGTUNNELS :{ORANGE}{STRING}{LTBLUE} :מנהרות יכולות לחצות זו את זו STR_CHEAT_NO_JETCRASH :{LTBLUE}מטוסי סילון לא יתרסקו (לעיתים קרובות) בשדות תעופה קטנים: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}ערוך את הגובה המקסימלי במפה: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :ערוך את הגובה המקסימלי של הרים במפה +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}ערוך את הגובה המקסימלי של הרים במפה STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :אקלים ממוזג STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :אקלים קר STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :אקלים טרופי @@ -3444,7 +3444,7 @@ STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}תצוג STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}החלף בין הסתרה/הצגה של סוג רכבת STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}החלף בין הסתרה/הצגה של סוג רכב כביש -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :הסתר/הצג סוג של כלי שיט +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי שיט STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}הסתר/הצג סוג של כלי טיס STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}שנה את שם סוג קרון הרכבת @@ -4065,7 +4065,7 @@ STR_FEEDER :{YELLOW}העב STR_FEEDER_INCOME_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה:{CURRENCY_LONG} STR_FEEDER_INCOME :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {GREEN}הכנסה: {CURRENCY_LONG} STR_FEEDER_COST_TINY :{TINY_FONT}{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} -STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / עלות: {CURRENCY_LONG} +STR_FEEDER_COST :{YELLOW}העברה: {CURRENCY_LONG}{WHITE} / {RED}עלות: {CURRENCY_LONG} STR_MESSAGE_ESTIMATED_COST :{WHITE}{CURRENCY_LONG} :מחיר משוער STR_MESSAGE_ESTIMATED_INCOME :{WHITE}{CURRENCY_LONG} :הכנסה משוערת diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 07055e8db9..6127155912 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -3034,7 +3034,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}買収 # Goal window STR_GOALS_CAPTION :{WHITE}{COMPANY} 目標 -STR_GOALS_SPECTATOR_CAPTION :{BLACK}大目標 +STR_GOALS_SPECTATOR_CAPTION :{WHITE}大目標 STR_GOALS_GLOBAL_TITLE :{BLACK}大目標: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- なし - @@ -3175,7 +3175,7 @@ STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}中継 STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}メイン画面をこのブイの場所に移動します。Ctrl+クリックでこのブイの場所を新たなビューポートに表示します STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}ブイの名称を変更 -STR_EDIT_WAYPOINT_NAME :中継駅名を表示 +STR_EDIT_WAYPOINT_NAME :{WHITE}中継駅名を表示 # Finances window STR_FINANCES_CAPTION :{WHITE}{COMPANY} 経営状況 {BLACK}{COMPANY_NUM} diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 5758f96fab..d912e27de9 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3682,7 +3682,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}수송 STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}환승 수익: {LTBLUE}{CURRENCY_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}정비 간격: {LTBLUE}{COMMA}일마다{BLACK} 마지막 정비 날짜: {LTBLUE}{DATE_LONG} -STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 간격: {LTBLUE}{COMMA}% 이하일 때 마지막 정비 날짜: {LTBLUE}{DATE_LONG} +STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 간격: {LTBLUE}{COMMA}%{BLACK} 이하일 때 마지막 정비 날짜: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 올립니다. CTRL+클릭하면 점검 기준값을 5만큼 올립니다. STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 내립니다. CTRL+클릭하면 점검 기준값을 5만큼 내립니다. diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 66091cd5f8..7b5b1dda6b 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -3792,7 +3792,7 @@ STR_REPLACE_VEHICLE_SHIP :Laivas STR_REPLACE_VEHICLE_AIRCRAFT :Lėktuvas STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Naudojamos transporto priemonės -STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :BLACK}Stulpelis su informacija apie transporto priemones, kurias šiuo metu naudojate +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Stulpelis su informacija apie transporto priemones, kurias šiuo metu naudojate STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Galimos transporto priemonės STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Stulpelis su informacija apie transporto priemones, kuriomis galite pakeisti jau turimas diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 818e797457..ccdca5d916 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1119,7 +1119,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spillastellunge STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firmenastellungen (am Save gespäichert; betrëfft just nei Spiller) 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_TYPE_HIDES :{BLACK}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 STR_CONFIG_SETTINGS_NONE :{WHITE}- Keng - diff --git a/src/lang/polish.txt b/src/lang/polish.txt index d3b0e88a07..ffacc108b5 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3927,7 +3927,7 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Samolot STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Używane pojazdy STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Lista posiadanych pojazdów -STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{BLACK}Dostępne pojazdy +STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Dostępne pojazdy STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Lista pojazdów dostępnych do zamiany STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Wybierz typ pojazdu do zamiany diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index da8eb3afaf..e512d48fcc 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2842,7 +2842,7 @@ STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista de STR_SAVE_PRESET_TITLE :{BLACK}Intriduza um nome para a predefinição STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nome seleccionado actualmente para gravação da predefinição STR_SAVE_PRESET_CANCEL :{BLACK}Cancelar -STR_SAVE_PRESET_CANCEL_TOOLTIP :Não mudar a predefinição +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Não mudar a predefinição STR_SAVE_PRESET_SAVE :{BLACK}Grava STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Grava a predefinição com o nome seleccionado diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index d047538993..e20bfe3f35 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -3615,8 +3615,8 @@ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Promenit STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti -STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :Sakriti -STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :Sakriti +STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Sakriti STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Prikaz STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Prikaži diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 66f590d77b..47e709bb3e 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -3120,7 +3120,7 @@ STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}显示 STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}按月供应量与本地评比: STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%) -STR_STATION_VIEW_GROUP :群组方式 +STR_STATION_VIEW_GROUP :{BLACK}群组方式 STR_STATION_VIEW_WAITING_STATION :车站名:等候中 STR_STATION_VIEW_WAITING_AMOUNT :货物总量:等候中 STR_STATION_VIEW_PLANNED_STATION :车站名:计划中 diff --git a/src/lang/thai.txt b/src/lang/thai.txt index c3e6916d3c..091e5d496a 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -250,7 +250,7 @@ STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}ทำ # Show engines button -STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :ถ้าได้อนุญาตที่ปุ่มนี้แล้ว อากาศยานที่ซ่อนจะถูกแสดงออกมา +STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}ถ้าได้อนุญาตที่ปุ่มนี้แล้ว อากาศยานที่ซ่อนจะถูกแสดงออกมา # Query window STR_BUTTON_DEFAULT :{BLACK}ค่าปกติ @@ -317,7 +317,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}แส STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}แสดงข้อมูลทางการเงินของบริษัท STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}แสดงข้อมูลทั่วไปของบริษัท STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}แสดงสมุดบันทึก -STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :แสดงรายการเป้าหมายที่ต้องทำ +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}แสดงรายการเป้าหมายที่ต้องทำ STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}แสดงกราฟ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}แสดงตารางอันดับบริษัท STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}ลงทุนก่อสร้างอุตสาหกรรมใหม่ หรือ แสดงรายชื่ออุตสาหกรรมทั้งหมด @@ -1630,7 +1630,7 @@ STR_CONFIG_SETTING_SOUND :{ORANGE}เส STR_CONFIG_SETTING_INTERFACE :{ORANGE}ส่วนเชื่อมต่อผู้ใช้ STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}การก่อสร้าง STR_CONFIG_SETTING_VEHICLES :{ORANGE}ยานพาหนะ -STR_CONFIG_SETTING_VEHICLES_PHYSICS :กายภาพ +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}กายภาพ STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}การค้นหาเส้นทางของพาหนะ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}สิ่งแวดล้อม STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}เมือง @@ -2227,7 +2227,7 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}เป STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}ตั้งให้วัตถุมองไม่เห็นแทนการโปร่งใส # Linkgraph legend window -STR_LINKGRAPH_LEGEND_CAPTION :{WHITE}แสดงเส้นทางและความหนาแน่น +STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}แสดงเส้นทางและความหนาแน่น STR_LINKGRAPH_LEGEND_ALL :{BLACK}ทั้งหมด STR_LINKGRAPH_LEGEND_NONE :{BLACK}ไม่เลือก STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}เลือกบริษัทที่จะแสดง @@ -2780,7 +2780,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}ไม่ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}ไม่รองรับกับ OpenTTD เวอร์ชั่นนี้ # NewGRF save preset window -STR_SAVE_PRESET_SAVE_TOOLTIP :บันทึก ชุดการตั้งค่า ตามที่ได้เลือกไว้ +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}บันทึก ชุดการตั้งค่า ตามที่ได้เลือกไว้ # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}เปลี่ยนแปลง NewGRF parameters @@ -3090,9 +3090,9 @@ STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}จุ STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อสถานี STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}แสดงขบวนรถไฟที่มีรายการเข้าจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :แสดงยานพาหนะทางบกที่มีรายการเข้าจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :แสดงอากาศยานที่มีรายการลงจอดจอดที่สถานีนี้ -STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :แสดงเรือที่มีรายการเข้าเทียบท่าที่ท่านี้ +STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}แสดงยานพาหนะทางบกที่มีรายการเข้าจอดที่สถานีนี้ +STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}แสดงอากาศยานที่มีรายการลงจอดจอดที่สถานีนี้ +STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}แสดงเรือที่มีรายการเข้าเทียบท่าที่ท่านี้ STR_STATION_VIEW_RENAME_STATION_CAPTION :เปลี่ยนชื่อสถานี/พื้นที่รับส่งสินค้า @@ -3348,7 +3348,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}เป STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเรือ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}เปลี่ยนชื่อชนิดของเครื่องบิน -STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :ซ่อน +STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}ซ่อน STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}การแสดงผล @@ -3389,7 +3389,7 @@ STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}ขา STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}ขายอากาศยานทั้งหมดในโรงซ่อมบำรุง STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับรถไฟทั้งหมดในโรงซ่อมบำรุง -STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :แทนที่อัตโนมัติสำหรับยานพาหนะทางบกทั้งหมดในโรงซ่อมบำรุง +STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับยานพาหนะทางบกทั้งหมดในโรงซ่อมบำรุง STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับยานพาหนะทางน้ำทั้งหมดในอู่ STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}แทนที่อัตโนมัติสำหรับอากาศยานทั้งหมดในโรงซ่อมบำรุง diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 92a7b1a5b3..e0da7acb0b 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2085,7 +2085,7 @@ STR_NETWORK_CLIENT :用戶端 STR_NETWORK_SPECTATORS :旁觀者 STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}請輸入你要付出多少資金 -STR_NETWORK_TOOLBAR_LIST_SPECTATOR :(BLACK)旁觀者 +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}旁觀者 # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}不要儲存所輸入的密碼 @@ -3089,7 +3089,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}上一 STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}前往上一頁繼續觀看 STR_STORY_BOOK_NEXT_PAGE :{BLACK}下一頁 STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}前往下一頁繼續觀看 -STR_STORY_BOOK_INVALID_GOAL_REF :(RED)無效的目標參照 +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}無效的目標參照 # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}車站名稱 - 點選名稱可將車站置於畫面中央。按住 Ctrl 點選可於車站位置開啟新視窗視野 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 3900920c03..a41d70a517 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1797,7 +1797,7 @@ STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Sihirli STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tüneller kesişebilir: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Jetler küçük havalimanlarında (sıklıkla) düşmesin: {ORANGE}{STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Azami harita yüksekliğini değiştir: {ORANGE}{NUM} -STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{BLACK}Haritadaki azami dağ yüksekliğini düzenle +STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Haritadaki azami dağ yüksekliğini düzenle STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Ilıman iklim STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Soğuk iklim STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Tropik iklim diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index b48304d02d..80d6cf8ad5 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -3797,7 +3797,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Інте STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Збільшити інтервал техогляду на 10. Ctrl+клац мишою збільшує інтервал техогляду на 5 STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Зменшити період техогляду на 10. Ctrl+клац мишою зменшує інтервал техогляду на 5 -STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :Відлік інтервалу між техоглядами +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Відлік інтервалу між техоглядами STR_VEHICLE_DETAILS_DEFAULT :Стандартно STR_VEHICLE_DETAILS_DAYS :Дні STR_VEHICLE_DETAILS_PERCENT :Проценти From 4f3c7e74e70d104937bab9c06bd561a6871c0909 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 28 Mar 2017 21:44:40 +0000 Subject: [PATCH 118/158] (svn r27833) -Change: Trackdir maps directly to TrackdirBits --- src/track_type.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/track_type.h b/src/track_type.h index c0bfa0887f..2982288bba 100644 --- a/src/track_type.h +++ b/src/track_type.h @@ -104,22 +104,22 @@ typedef TinyEnumT TrackdirByte; * direction (corresponding to the Track enum) and 8-13 in the other direction. */ enum TrackdirBits { - TRACKDIR_BIT_NONE = 0x0000, ///< No track build - TRACKDIR_BIT_X_NE = 0x0001, ///< Track x-axis, direction north-east - TRACKDIR_BIT_Y_SE = 0x0002, ///< Track y-axis, direction south-east - TRACKDIR_BIT_UPPER_E = 0x0004, ///< Track upper, direction east - TRACKDIR_BIT_LOWER_E = 0x0008, ///< Track lower, direction east - TRACKDIR_BIT_LEFT_S = 0x0010, ///< Track left, direction south - TRACKDIR_BIT_RIGHT_S = 0x0020, ///< Track right, direction south + TRACKDIR_BIT_NONE = 0U, ///< No track build + TRACKDIR_BIT_X_NE = 1U << TRACKDIR_X_NE, ///< Track x-axis, direction north-east + TRACKDIR_BIT_Y_SE = 1U << TRACKDIR_Y_SE, ///< Track y-axis, direction south-east + TRACKDIR_BIT_UPPER_E = 1U << TRACKDIR_UPPER_E, ///< Track upper, direction east + TRACKDIR_BIT_LOWER_E = 1U << TRACKDIR_LOWER_E, ///< Track lower, direction east + TRACKDIR_BIT_LEFT_S = 1U << TRACKDIR_LEFT_S, ///< Track left, direction south + TRACKDIR_BIT_RIGHT_S = 1U << TRACKDIR_RIGHT_S, ///< Track right, direction south /* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */ - TRACKDIR_BIT_X_SW = 0x0100, ///< Track x-axis, direction south-west - TRACKDIR_BIT_Y_NW = 0x0200, ///< Track y-axis, direction north-west - TRACKDIR_BIT_UPPER_W = 0x0400, ///< Track upper, direction west - TRACKDIR_BIT_LOWER_W = 0x0800, ///< Track lower, direction west - TRACKDIR_BIT_LEFT_N = 0x1000, ///< Track left, direction north - TRACKDIR_BIT_RIGHT_N = 0x2000, ///< Track right, direction north - TRACKDIR_BIT_MASK = 0x3F3F, ///< Bitmask for bit-operations - INVALID_TRACKDIR_BIT = 0xFFFF, ///< Flag for an invalid trackdirbit value + TRACKDIR_BIT_X_SW = 1U << TRACKDIR_X_SW, ///< Track x-axis, direction south-west + TRACKDIR_BIT_Y_NW = 1U << TRACKDIR_Y_NW, ///< Track y-axis, direction north-west + TRACKDIR_BIT_UPPER_W = 1U << TRACKDIR_UPPER_W, ///< Track upper, direction west + TRACKDIR_BIT_LOWER_W = 1U << TRACKDIR_LOWER_W, ///< Track lower, direction west + TRACKDIR_BIT_LEFT_N = 1U << TRACKDIR_LEFT_N, ///< Track left, direction north + TRACKDIR_BIT_RIGHT_N = 1U << TRACKDIR_RIGHT_N, ///< Track right, direction north + TRACKDIR_BIT_MASK = 0x3F3F, ///< Bitmask for bit-operations + INVALID_TRACKDIR_BIT = 0xFFFF, ///< Flag for an invalid trackdirbit value }; DECLARE_ENUM_AS_BIT_SET(TrackdirBits) typedef SimpleTinyEnumT TrackdirBitsShort; From 5bcc54e0219c8a177e6bdcdcbcf2e097d3eb0d3d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Wed, 29 Mar 2017 17:36:46 +0000 Subject: [PATCH 119/158] (svn r27834) -Change: Parse extmidi command string for parameters to pass on. --- src/music/extmidi.cpp | 36 +++++++++++++++++++++++++++++------- src/music/extmidi.h | 2 +- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/music/extmidi.cpp b/src/music/extmidi.cpp index f4a35360c0..12b3689e2a 100644 --- a/src/music/extmidi.cpp +++ b/src/music/extmidi.cpp @@ -12,6 +12,7 @@ #include "../stdafx.h" #include "../debug.h" #include "../string_func.h" +#include "../core/alloc_func.hpp" #include "../sound/sound_driver.hpp" #include "../video/video_driver.hpp" #include "../gfx_func.h" @@ -42,9 +43,33 @@ const char *MusicDriver_ExtMidi::Start(const char * const * parm) } const char *command = GetDriverParam(parm, "cmd"); +#ifndef MIDI_ARG if (StrEmpty(command)) command = EXTERNAL_PLAYER; +#else + if (StrEmpty(command)) command = EXTERNAL_PLAYER " " MIDI_ARG; +#endif + + /* Count number of arguments, but include 3 extra slots: 1st for command, 2nd for song title, and 3rd for terminating NULL. */ + uint num_args = 3; + for (const char *t = command; *t != '\0'; t++) if (*t == ' ') num_args++; + + this->params = CallocT(num_args); + this->params[0] = stredup(command); + + /* Replace space with \0 and add next arg to params */ + uint p = 1; + while (true) { + this->params[p] = strchr(this->params[p - 1], ' '); + if (this->params[p] == NULL) break; + + this->params[p][0] = '\0'; + this->params[p]++; + p++; + } + + /* Last parameter is the song file. */ + this->params[p] = this->song; - this->command = stredup(command); this->song[0] = '\0'; this->pid = -1; return NULL; @@ -52,7 +77,8 @@ const char *MusicDriver_ExtMidi::Start(const char * const * parm) void MusicDriver_ExtMidi::Stop() { - free(command); + free(params[0]); + free(params); this->song[0] = '\0'; this->DoStop(); } @@ -91,11 +117,7 @@ void MusicDriver_ExtMidi::DoPlay() close(0); int d = open("/dev/null", O_RDONLY); if (d != -1 && dup2(d, 1) != -1 && dup2(d, 2) != -1) { - #if defined(MIDI_ARG) - execlp(this->command, "extmidi", MIDI_ARG, this->song, (char*)0); - #else - execlp(this->command, "extmidi", this->song, (char*)0); - #endif + execvp(this->params[0], this->params); } _exit(1); } diff --git a/src/music/extmidi.h b/src/music/extmidi.h index c6a9e08f8d..cfbd894596 100644 --- a/src/music/extmidi.h +++ b/src/music/extmidi.h @@ -16,7 +16,7 @@ class MusicDriver_ExtMidi : public MusicDriver { private: - char *command; + char **params; char song[MAX_PATH]; pid_t pid; From 4d3d43a70ec76841e35b6fa74898731d19c07541 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 29 Mar 2017 17:45:37 +0000 Subject: [PATCH 120/158] (svn r27835) -Update from Eints: norwegian (bokmal): 37 changes by eirik174 --- src/lang/norwegian_bokmal.txt | 53 ++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index eb2c613437..cc852eb300 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1003,7 +1003,7 @@ STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Velg mus STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} ødelagt{P "" e} fil{P "" er} STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Ytterligere informasjon om det originale musikksettet -STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Mislytes med å hente en liste over støttede oppløsninger +STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Mislyktes med å hente en liste over støttede oppløsninger STR_ERROR_FULLSCREEN_FAILED :{WHITE}Fullskjermmodus mislyktes # Custom currency window @@ -1375,6 +1375,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Av STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Venstre-klikk rulling: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Tillat rulling av kartet ved å dra det med den venstre museknappen. Dette er spesielt nyttig når du bruker en berøringsskjerm +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Lukk vinduet med høyreklikk: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Lukker et vindu ved å høyreklikke i det. Deaktiverer verktøytipset med høyreklikk! STR_CONFIG_SETTING_AUTOSAVE :Autolagring: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Velg intervall mellom automatiske lagringer av spillet @@ -1764,6 +1766,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Se etter STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Vis AI/Spillskript-innstillinger STR_INTRO_TOOLTIP_QUIT :{BLACK}Avslutt 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Det valgte innebygde grafikksettet mangler {NUM} sprite{P "" r}. Se etter oppdateringer for settet. STR_INTRO_TRANSLATION :{BLACK}Denne oversettelsen mangler {NUM} streng{P "" er}. Vennligst hjelp til å gjøre OpenTTD bedre ved å bli med i oversettergruppen. For detaljer, sjekk readme.txt. # Quit window @@ -2593,6 +2596,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Flyplass STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Godtatte varer: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Skinnetype: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Fartsgrense for jernbanespor: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Veiens fartsgrense: {LTBLUE}{VELOCITY} @@ -2611,23 +2615,23 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbanespor me STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbanespor med utgangssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbanespor med kombinasjonssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbanespor med avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blokk- og forsignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbanespor med enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbanespor med blokk- og forsignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blokk- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blokk- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbanespor med blokk- og kombinasjonssignaler STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blokk- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blokk- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med for- og utgangssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med for- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med for- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med for- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med utgangs- og kombinasjonssignaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med utgangs- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med utgangs- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinasjon- og avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinasjon- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med avanserte- og enveis avanserte signaler -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togstall +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbanespor med blokk- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbanespor med for- og utgangssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbanespor med for- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med forsignaler og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbanespor med for- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbanespor med utgangs- og kombinasjonssignaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbanespor med utgangs- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbanespor med utgangs- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbanespor med kombinasjon- og avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbanespor med kombinasjon- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbanespor med avanserte- og enveis avanserte signaler +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane-togstall STR_LAI_ROAD_DESCRIPTION_ROAD :Vei STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vei med gatelykter @@ -3296,6 +3300,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Trenger: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Krever +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}venter +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING} @@ -3364,6 +3373,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kjø STR_GROUP_RENAME_CAPTION :{BLACK}Endre navn på gruppe +STR_GROUP_PROFIT_THIS_YEAR :Profitt i år: +STR_GROUP_PROFIT_LAST_YEAR :Profitt i fjor: +STR_GROUP_OCCUPANCY :Gjeldende bruk: +STR_GROUP_OCCUPANCY_VALUE :{NUM} % # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye tog/vogner for jernbane @@ -3396,6 +3409,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle varetyper STR_PURCHASE_INFO_ALL_BUT :Alt utenom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks trekkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rekkevidde: {GOLD}{COMMA} ruter +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flytype: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Liste over tog/vogner - klikk på tog/vogn for mer informasjon. Ctrl+klikk for å skjule/vise denne typen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Liste over kjøretøy - klikk på kjøretøy for mer informasjon. Ctrl+klikk for å skjule/vise kjøretøytypen @@ -3530,6 +3544,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}magle STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING}{}Kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING} Rekkevidde: {COMMA} ruter{}kapasitet: {CARGO_LONG}, {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks. hastighet: {VELOCITY}{}Flytype: {STRING} Rekkevidde: {COMMA} ruter{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING} @@ -3559,6 +3577,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk de STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle mellom tog- og vognerstatningsvinduet STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner +STR_REPLACE_ALL_RAILTYPE :Status: Mangler STR_REPLACE_HELP_RAILTYPE :{BLACK}Velg jernbanetypen du vil bytte ut lokomotiv på STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Viser hvilket lokomotiv som overtar for det valgte lokomotivet på venstresiden @@ -3651,6 +3670,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE} From 2fb822d392fba9198b121841a508d1b75f6d5e74 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:39:55 +0100 Subject: [PATCH 121/158] Fix includes and header guards of container functions. --- src/core/container_func.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/container_func.hpp b/src/core/container_func.hpp index 1b8e8ad847..276c1f7f54 100644 --- a/src/core/container_func.hpp +++ b/src/core/container_func.hpp @@ -9,6 +9,11 @@ /** @file container_func.hpp Functions related to use of containers. */ +#ifndef CONTAINER_FUNC_HPP +#define CONTAINER_FUNC_HPP + +#include + template unsigned int container_unordered_remove_if (C &container, UP predicate) { unsigned int removecount = 0; for (auto it = container.begin(); it != container.end();) { @@ -33,3 +38,5 @@ template unsigned int container_unordered_remove(C &con return v == value; }); } + +#endif /* CONTAINER_FUNC_HPP */ From dd0666c5f47aa77fb6144747337c69611b1fbdae Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:41:06 +0100 Subject: [PATCH 122/158] Add support for save/loading std::strings. --- src/saveload/saveload.cpp | 54 +++++++++++++++++++++++++++++++++++++++ src/saveload/saveload.h | 21 +++++++++++++++ src/string.cpp | 11 ++------ src/string_func.h | 23 ++++++++++++++++- 4 files changed, 99 insertions(+), 10 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index fbaf207eaf..a94bbf785f 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1078,6 +1078,18 @@ static inline size_t SlCalcNetStringLen(const char *ptr, size_t length) return min(strlen(ptr), length - 1); } +/** + * Calculate the gross length of the std::string that it + * will occupy in the savegame. This includes the real length, + * and the length that the index will occupy. + * @param str reference to the std::string + * @return return the gross length of the string + */ +static inline size_t SlCalcStdStrLen(const std::string &str) +{ + return str.size() + SlGetArrayLength(str.size()); // also include the length of the index +} + /** * Calculate the gross length of the string that it * will occupy in the savegame. This includes the real length, returned @@ -1189,6 +1201,41 @@ static void SlString(void *ptr, size_t length, VarType conv) } } +/** + * Save/Load a std::string. + * @param ptr the std::string being manipulated + * @param conv must be SLE_FILE_STRING + */ +static void SlStdString(std::string &str, VarType conv) +{ + switch (_sl.action) { + case SLA_SAVE: { + SlWriteArrayLength(str.size()); + SlCopyBytes(const_cast(str.data()), str.size()); + break; + } + case SLA_LOAD_CHECK: + case SLA_LOAD: { + size_t len = SlReadArrayLength(); + str.resize(len); + SlCopyBytes(const_cast(str.c_str()), len); + + StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK; + if ((conv & SLF_ALLOW_CONTROL) != 0) { + settings = settings | SVS_ALLOW_CONTROL_CODE; + } + if ((conv & SLF_ALLOW_NEWLINE) != 0) { + settings = settings | SVS_ALLOW_NEWLINE; + } + str_validate(str, settings); + break; + } + case SLA_PTRS: break; + case SLA_NULL: break; + default: NOT_REACHED(); + } +} + /** * Return the size in bytes of a certain type of atomic array * @param length The length of the array counted in elements @@ -1491,6 +1538,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_LST: case SL_DEQ: case SL_VEC: + case SL_STDSTR: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) break; @@ -1502,6 +1550,7 @@ size_t SlCalcObjMemberLength(const void *object, const SaveLoad *sld) case SL_LST: return SlCalcListLen>(GetVariableAddress(object, sld)); case SL_DEQ: return SlCalcListLen>(GetVariableAddress(object, sld)); case SL_VEC: return SlCalcListLen>(GetVariableAddress(object, sld)); + case SL_STDSTR: return SlCalcStdStrLen(*static_cast(GetVariableAddress(object, sld))); default: NOT_REACHED(); } break; @@ -1550,6 +1599,9 @@ static bool IsVariableSizeRight(const SaveLoad *sld) /* These should be pointer sized, or fixed array. */ return sld->size == sizeof(void *) || sld->size == sld->length; + case SL_STDSTR: + return sld->size == sizeof(std::string); + default: return true; } @@ -1572,6 +1624,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_LST: case SL_DEQ: case SL_VEC: + case SL_STDSTR: /* CONDITIONAL saveload types depend on the savegame version */ if (!SlIsObjectValidInSavegame(sld)) return false; if (SlSkipVariableOnLoad(sld)) return false; @@ -1601,6 +1654,7 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) case SL_LST: SlList>(ptr, (SLRefType)conv); break; case SL_DEQ: SlList>(ptr, (SLRefType)conv); break; case SL_VEC: SlList>(ptr, (SLRefType)conv); break; + case SL_STDSTR: SlStdString(*static_cast(ptr), sld->conv); break; default: NOT_REACHED(); } break; diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index a4e6a69a7d..45968bf7ff 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -207,6 +207,7 @@ enum SaveLoadTypes { SL_LST = 4, ///< Save/load a list. SL_DEQ = 5, ///< Save/load a deque. SL_VEC = 6, ///< Save/load a vector. + SL_STDSTR = 7, ///< Save/load a std::string. /* non-normal save-load types */ SL_WRITEBYTE = 8, SL_VEH_INCLUDE = 9, @@ -300,6 +301,18 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLE_CONDSTR_X(base, variable, type, length, from, to, extver) SLE_GENERAL_X(SL_STR, base, variable, type, length, from, to, extver) #define SLE_CONDSTR(base, variable, type, length, from, to) SLE_CONDSTR_X(base, variable, type, length, from, to, SlXvFeatureTest()) +/** + * Storage of a std::string in some savegame versions. + * @param base Name of the class or struct containing the string. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + * @param from First savegame version that has the string. + * @param to Last savegame version that has the string. + * @param extver SlXvFeatureTest to test (along with from and to) which savegames have the field + */ +#define SLE_CONDSTDSTR_X(base, variable, type, from, to, extver) SLE_GENERAL_X(SL_STDSTR, base, variable, type, 0, from, to, extver) +#define SLE_CONDSTDSTR(base, variable, type, from, to) SLE_CONDSTDSTR_X(base, variable, type, from, to, SlXvFeatureTest()) + /** * Storage of a list in some savegame versions. * @param base Name of the class or struct containing the list. @@ -370,6 +383,14 @@ typedef SaveLoad SaveLoadGlobVarList; */ #define SLE_STR(base, variable, type, length) SLE_CONDSTR(base, variable, type, length, 0, SL_MAX_VERSION) +/** + * Storage of a std::string in every savegame version. + * @param base Name of the class or struct containing the string. + * @param variable Name of the variable in the class or struct referenced by \a base. + * @param type Storage of the data in memory and in the savegame. + */ +#define SLE_STDSTR(base, variable, type) SLE_CONDSTDSTR(base, variable, type, 0, SL_MAX_VERSION) + /** * Storage of a list in every savegame version. * @param base Name of the class or struct containing the list. diff --git a/src/string.cpp b/src/string.cpp index 1ceae6061b..343250a979 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -180,14 +180,7 @@ void str_fix_scc_encoded(char *str, const char *last) } -/** - * Scans the string for valid characters and if it finds invalid ones, - * replaces them with a question mark '?' (if not ignored) - * @param str the string to validate - * @param last the last valid character of str - * @param settings the settings for the string validation. - */ -void str_validate(char *str, const char *last, StringValidationSettings settings) +char *str_validate_intl(char *str, const char *last, StringValidationSettings settings) { /* Assume the ABSOLUTE WORST to be in str as it comes from the outside. */ @@ -228,7 +221,7 @@ void str_validate(char *str, const char *last, StringValidationSettings settings } } - *dst = '\0'; + return dst; } /** diff --git a/src/string_func.h b/src/string_func.h index dd9b42600d..70214ff8d1 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -27,6 +27,7 @@ #define STRING_FUNC_H #include +#include #include "core/bitmath_func.hpp" #include "string_type.h" @@ -41,7 +42,27 @@ 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); char *str_vfmt(const char *str, va_list ap); -void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK); +char *str_validate_intl(char *str, const char *last, StringValidationSettings settings); + +/** + * Scans the string for valid characters and if it finds invalid ones, + * replaces them with a question mark '?' (if not ignored) + * @param str the string to validate + * @param last the last valid character of str + * @param settings the settings for the string validation. + */ +static inline void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + *str_validate_intl(str, last, settings) = '\0'; +} + +static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + if (str.empty()) return; + char *buf = const_cast(str.c_str()); + str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); +} + void ValidateString(const char *str); void str_fix_scc_encoded(char *str, const char *last); From a3034891a1930fa0a2434eef09ffa02ef34fcc93 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 29 Mar 2017 19:46:30 +0100 Subject: [PATCH 123/158] Add missing include guard for dyn arena alloc header. --- src/core/dyn_arena_alloc.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/dyn_arena_alloc.hpp b/src/core/dyn_arena_alloc.hpp index 2bc4978d14..2a074d6aa1 100644 --- a/src/core/dyn_arena_alloc.hpp +++ b/src/core/dyn_arena_alloc.hpp @@ -9,6 +9,9 @@ /** @file dyn_arena_alloc.hpp Dynamic chunk-size arena allocator. */ +#ifndef DYN_ARENA_ALLOC_HPP +#define DYN_ARENA_ALLOC_HPP + #include /** @@ -95,3 +98,5 @@ class DynUniformArenaAllocator { this->items_per_chunk = items_per_chunk; } }; + +#endif /* DYN_ARENA_ALLOC_HPP */ From 4e9d4dd80adc4cbe9e06016c10535f4f0fea2bc6 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 4 Mar 2017 23:39:27 +0000 Subject: [PATCH 124/158] Add a PreCleanPool() static method to pool item types. (cherry picked from commit 87142ed840bb76361bc7a7219d643e49358487dd) --- src/core/pool_func.hpp | 1 + src/core/pool_type.hpp | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/core/pool_func.hpp b/src/core/pool_func.hpp index 5569addbd7..a5375e13fc 100644 --- a/src/core/pool_func.hpp +++ b/src/core/pool_func.hpp @@ -196,6 +196,7 @@ DEFINE_POOL_METHOD(void)::FreeItem(size_t index) DEFINE_POOL_METHOD(void)::CleanPool() { this->cleaning = true; + Titem::PreCleanPool(); for (size_t i = 0; i < this->first_unused; i++) { delete this->Get(i); // 'delete NULL;' is very valid } diff --git a/src/core/pool_type.hpp b/src/core/pool_type.hpp index 4d20ed1abb..70f6480103 100644 --- a/src/core/pool_type.hpp +++ b/src/core/pool_type.hpp @@ -286,6 +286,13 @@ struct Pool : PoolBase { * @note it's called only when !CleaningPool() */ static inline void PostDestructor(size_t index) { } + + /** + * Dummy function called before a pool is about to be cleaned. + * If you want to use it, override it in PoolItem's subclass. + * @note it's called only when CleaningPool() + */ + static inline void PreCleanPool() { } }; private: From a39bdc14a004a69291164e2169f99a9d4b0dddd5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 30 Mar 2017 17:45:36 +0000 Subject: [PATCH 125/158] (svn r27836) -Update from Eints: catalan: 2 changes by juanjo --- src/lang/catalan.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 91df223fb7..c88d940f0f 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. -STR_ABOUT_VERSION :{BLACK}OpenTTD versió {REV} +STR_ABOUT_VERSION :{BLACK}Versió {REV} de l'OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'equip de l'OpenTTD # Save/load game/scenario @@ -2939,7 +2939,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}' de '{COMPANY}' té una llargada invàlida, probablement a causa de problemes amb els NewGRF. La partida podria dessincronitzar-se o fallar. +STR_BROKEN_VEHICLE_LENGTH :{WHITE}El tren «{VEHICLE}» propietat de «{COMPANY}» té una llargada invàlida, probablement a causa de problemes amb els NewGRF. La partida podria dessincronitzar-se o fallar. 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 From 60d4d1db3ff261d7703436351bf491d932376c09 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Thu, 30 Mar 2017 21:33:40 +0000 Subject: [PATCH 126/158] (svn r27837) -Fix (r26969): Black remap did nothing in 8bpp-simple blitter. --- src/blitter/8bpp_simple.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blitter/8bpp_simple.cpp b/src/blitter/8bpp_simple.cpp index ed5dd3f7ae..2131a04682 100644 --- a/src/blitter/8bpp_simple.cpp +++ b/src/blitter/8bpp_simple.cpp @@ -48,7 +48,7 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom break; case BM_BLACK_REMAP: - colour = 0; + if (*src != 0) *dst = 0; break; default: From f17d38598a862011aad9942d45838d168a55ce1c Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 31 Mar 2017 23:09:50 +0000 Subject: [PATCH 127/158] (svn r27838) -Fix: Small news window's fake caption (r19943) was not sized to fit its text. --- src/news_gui.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 3800af8b57..6338b760b8 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -313,6 +313,15 @@ struct NewsWindow : Window { { StringID str = STR_NULL; switch (widget) { + case WID_N_CAPTION: { + /* Caption is not a real caption (so that the window cannot be moved) + * thus it doesn't get the default sizing of a caption. */ + Dimension d2 = GetStringBoundingBox(STR_NEWS_MESSAGE_CAPTION); + d2.height += WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM; + *size = maxdim(*size, d2); + return; + } + case WID_N_MGR_FACE: *size = maxdim(*size, GetSpriteSize(SPR_GRADIENT)); break; From 7e915f8bc7c3901d043c2e06e84f4ee519345a12 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 2 Apr 2017 17:36:53 +0000 Subject: [PATCH 128/158] (svn r27841) -Fix: Don't consider locks or ship depots as clear water when placing industries. --- src/industry_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 5971964fd7..8fea6953ae 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1383,7 +1383,7 @@ static CommandCost CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTil } if (gfx == GFX_WATERTILE_SPECIALCHECK) { - if (!IsTileType(cur_tile, MP_WATER) || + if (!IsWaterTile(cur_tile) || !IsTileFlat(cur_tile)) { return_cmd_error(STR_ERROR_SITE_UNSUITABLE); } From e37d54fb083bb10d027b67cb3c1a14da3a46a416 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 3 Apr 2017 17:45:36 +0000 Subject: [PATCH 129/158] (svn r27842) -Update from Eints: spanish: 9 changes by SilverSurferZzZ --- src/lang/spanish.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 7cffa0d740..60394841b8 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1762,7 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comproba STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' -STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s}. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta readme.txt para más detalles. +STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s} de texto. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el readme.txt para más detalles. # Quit window STR_QUIT_CAPTION :{WHITE}Salir @@ -2261,7 +2261,7 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no s STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No ha sido posible descomprimir el archivo descargado STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gráficos no encontrados -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no se pudo encontrar ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necesita gráficos para funcionar pero no pudo encontrarse ninguno. ¿Desea permitir que OpenTTD descargue e instale dichos gráficos? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descargar los gráficos STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, salir de OpenTTD @@ -2898,7 +2898,7 @@ STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} est STR_NEWGRF_ERROR_INVALID_PARAMETER :Parámetro incorrecto para {1:STRING}: párametro {STRING} ({NUM}) STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} debe ser cargado antes de {STRING} STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING} debe ser cargado después de {STRING} -STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} requiere OpenTTD versión {STRING} ó superior +STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} necesita la versión {STRING} ó superior de OpenTTD STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :El archivo GRF ha sido diseñado para ser traducido STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Demasiados NewGRFs han sido cargados STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Cargar {1:STRING} como NewGRF estático con {STRING} puede causar desincronizaciones @@ -3290,10 +3290,12 @@ STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La indu ############ range for requires starts STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING} -STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING} +STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necesita: {YELLOW}{STRING}{STRING}, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3362,6 +3364,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos Vehículos de Ferrocarril @@ -3811,7 +3814,7 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano STR_ORDER_CONDITIONAL :Salto de orden condicional STR_ORDER_SHARE :Compartir órdenes -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista. Ctrl sobre estaciones ordena 'Carga completa cualquier carga', sobre puntos de ruta ordena 'sin paradas' y sobre depósitos ordena 'mantenimiento'. Ctrl o Compartir órdenes permite a este vehículo compartir órdenes con el vehículo seleccionado. Click sobre un vehículo copia las órdenes. Una órden de depósito desactiva el mantenimiento automático del vehículo +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista. Ctrl sobre estaciones ordena 'Carga completa de cualquier carga', sobre puntos de ruta ordena 'sin paradas' y sobre depósitos ordena 'mantenimiento'. Ctrl o Compartir órdenes permite a este vehículo compartir órdenes con el vehículo seleccionado. Click sobre un vehículo copia las órdenes. Una órden de depósito desactiva el mantenimiento automático del vehículo STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos con el mismo calendario @@ -4108,7 +4111,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Mensaje # Generic construction errors STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Fuera del borde del mapa STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Demasiado cerca del borde del mapa -STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero - se requiere {CURRENCY_LONG} +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero - se necesita {CURRENCY_LONG} STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Se requiere terreno llano STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Tierra inclinada en dirección errónea STR_ERROR_CAN_T_DO_THIS :{WHITE}No se puede hacer eso... From 4b637781162ecfac36d68a12161ccc07f81e82e4 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 21:37:01 +0000 Subject: [PATCH 130/158] (svn r27843) -Change: (Yapf) Consider depot as destination before reversing path and applying penalty. --- src/pathfinder/yapf/yapf_costrail.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index 64cf963800..f8047955c3 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -403,6 +403,8 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Penalty for reversing in a depot. */ assert(IsRailDepot(cur.tile)); segment_cost += Yapf().PfGetSettings().rail_depot_reverse_penalty; + + } else if (IsRailDepotTile(cur.tile)) { /* We will end in this pass (depot is possible target) */ end_segment_reason |= ESRB_DEPOT; From 95acc016bad47b009454ea26ab9bf2e3c0ff52f3 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 21:53:51 +0000 Subject: [PATCH 131/158] (svn r27844) -Change: (Yapf) Treat max cost exceeded separately from path too long condition, as destination should not be considered in the former case. --- src/pathfinder/yapf/yapf_costrail.hpp | 5 ++++- src/pathfinder/yapf/yapf_type.hpp | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index f8047955c3..d9d89b12fa 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -479,7 +479,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th /* Finish if we already exceeded the maximum path cost (i.e. when * searching for the nearest depot). */ if (m_max_cost > 0 && (parent_cost + segment_entry_cost + segment_cost) > m_max_cost) { - end_segment_reason |= ESRB_PATH_TOO_LONG; + end_segment_reason |= ESRB_MAX_COST_EXCEEDED; } /* Move to the next tile/trackdir. */ @@ -555,6 +555,9 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th } // for (;;) + /* Don't consider path any further it if exceeded max_cost. */ + if (end_segment_reason & ESRB_MAX_COST_EXCEEDED) return false; + bool target_seen = false; if ((end_segment_reason & ESRB_POSSIBLE_TARGET) != ESRB_NONE) { /* Depot, station or waypoint. */ diff --git a/src/pathfinder/yapf/yapf_type.hpp b/src/pathfinder/yapf/yapf_type.hpp index 8d24eee5e2..b0d99d6602 100644 --- a/src/pathfinder/yapf/yapf_type.hpp +++ b/src/pathfinder/yapf/yapf_type.hpp @@ -19,6 +19,7 @@ enum EndSegmentReason { ESR_RAIL_TYPE, ///< the next tile has a different rail type than our tiles ESR_INFINITE_LOOP, ///< infinite loop detected ESR_SEGMENT_TOO_LONG, ///< the segment is too long (possible infinite loop) + ESR_MAX_COST_EXCEEDED, ///< maximum cost is exceeded ESR_CHOICE_FOLLOWS, ///< the next tile contains a choice (the track splits to more than one segments) ESR_DEPOT, ///< stop in the depot (could be a target next time) ESR_WAYPOINT, ///< waypoint encountered (could be a target next time) @@ -43,6 +44,7 @@ enum EndSegmentReasonBits { ESRB_RAIL_TYPE = 1 << ESR_RAIL_TYPE, ESRB_INFINITE_LOOP = 1 << ESR_INFINITE_LOOP, ESRB_SEGMENT_TOO_LONG = 1 << ESR_SEGMENT_TOO_LONG, + ESRB_MAX_COST_EXCEEDED = 1 << ESR_MAX_COST_EXCEEDED, ESRB_CHOICE_FOLLOWS = 1 << ESR_CHOICE_FOLLOWS, ESRB_DEPOT = 1 << ESR_DEPOT, ESRB_WAYPOINT = 1 << ESR_WAYPOINT, @@ -63,7 +65,7 @@ enum EndSegmentReasonBits { ESRB_CACHED_MASK = ESRB_DEAD_END | ESRB_RAIL_TYPE | ESRB_INFINITE_LOOP | ESRB_SEGMENT_TOO_LONG | ESRB_CHOICE_FOLLOWS | ESRB_DEPOT | ESRB_WAYPOINT | ESRB_STATION | ESRB_SAFE_TILE, /* Reasons to abort pathfinding in this direction. */ - ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, + ESRB_ABORT_PF_MASK = ESRB_DEAD_END | ESRB_PATH_TOO_LONG | ESRB_MAX_COST_EXCEEDED | ESRB_INFINITE_LOOP | ESRB_FIRST_TWO_WAY_RED, }; DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) @@ -71,7 +73,7 @@ DECLARE_ENUM_AS_BIT_SET(EndSegmentReasonBits) inline CStrA ValueStr(EndSegmentReasonBits bits) { static const char * const end_segment_reason_names[] = { - "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "CHOICE_FOLLOWS", + "DEAD_END", "RAIL_TYPE", "INFINITE_LOOP", "SEGMENT_TOO_LONG", "MAX_COST_EXCEEDED", "CHOICE_FOLLOWS", "DEPOT", "WAYPOINT", "STATION", "SAFE_TILE", "PATH_TOO_LONG", "FIRST_TWO_WAY_RED", "LOOK_AHEAD_END", "TARGET_REACHED" }; From df5923d7989d2efc7a7a7e1c400d25fca6aeac5d Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 3 Apr 2017 22:02:28 +0000 Subject: [PATCH 132/158] (svn r27845) -Change: (Yapf) Use FindDepotData struct to simplify depot finding code and remove need to return fake path distance. (juanjo) --- src/pathfinder/yapf/yapf_rail.cpp | 35 ++++++++++++------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/src/pathfinder/yapf/yapf_rail.cpp b/src/pathfinder/yapf/yapf_rail.cpp index 5324e4fc87..dccee36860 100644 --- a/src/pathfinder/yapf/yapf_rail.cpp +++ b/src/pathfinder/yapf/yapf_rail.cpp @@ -223,7 +223,7 @@ public: return 't'; } - static bool stFindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty, TileIndex *depot_tile, bool *reversed) + static FindDepotData stFindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty) { Tpf pf1; /* @@ -236,16 +236,16 @@ public: * depot orders and you do not disable automatic servicing. */ if (max_penalty != 0) pf1.DisableCache(true); - bool result1 = pf1.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty, depot_tile, reversed); + FindDepotData result1 = pf1.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty); if (_debug_desync_level >= 2) { Tpf pf2; - TileIndex depot_tile2 = INVALID_TILE; - bool reversed2 = false; pf2.DisableCache(true); - bool result2 = pf2.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty, &depot_tile2, &reversed2); - if (result1 != result2 || (result1 && (*depot_tile != depot_tile2 || *reversed != reversed2))) { - DEBUG(desync, 2, "CACHE ERROR: FindNearestDepotTwoWay() = [%s, %s]", result1 ? "T" : "F", result2 ? "T" : "F"); + FindDepotData result2 = pf2.FindNearestDepotTwoWay(v, t1, td1, t2, td2, max_penalty, reverse_penalty); + if (result1.tile != result2.tile || (result1.reverse != result2.reverse)) { + DEBUG(desync, 2, "CACHE ERROR: FindNearestDepotTwoWay() = [%s, %s]", + result1.tile != INVALID_TILE ? "T" : "F", + result2.tile != INVALID_TILE ? "T" : "F"); DumpState(pf1, pf2); } } @@ -253,7 +253,7 @@ public: return result1; } - inline bool FindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty, TileIndex *depot_tile, bool *reversed) + inline FindDepotData FindNearestDepotTwoWay(const Train *v, TileIndex t1, Trackdir td1, TileIndex t2, Trackdir td2, int max_penalty, int reverse_penalty) { /* set origin and destination nodes */ Yapf().SetOrigin(t1, td1, t2, td2, reverse_penalty, true); @@ -261,13 +261,10 @@ public: Yapf().SetMaxCost(max_penalty); /* find the best path */ - bool bFound = Yapf().FindPath(v); - if (!bFound) return false; + if (!Yapf().FindPath(v)) return FindDepotData(); - /* some path found - * get found depot tile */ + /* Some path found. */ Node *n = Yapf().GetBestNode(); - *depot_tile = n->GetLastTile(); /* walk through the path back to the origin */ Node *pNode = n; @@ -277,9 +274,7 @@ public: /* if the origin node is our front vehicle tile/Trackdir then we didn't reverse * but we can also look at the cost (== 0 -> not reversed, == reverse_penalty -> reversed) */ - *reversed = (pNode->m_cost != 0); - - return true; + return FindDepotData(n->GetLastTile(), n->m_cost, pNode->m_cost != 0); } }; @@ -611,15 +606,13 @@ bool YapfTrainCheckReverse(const Train *v) FindDepotData YapfTrainFindNearestDepot(const Train *v, int max_penalty) { - FindDepotData fdd; - const Train *last_veh = v->Last(); PBSTileInfo origin = FollowTrainReservation(v); TileIndex last_tile = last_veh->tile; Trackdir td_rev = ReverseTrackdir(last_veh->GetVehicleTrackdir()); - typedef bool (*PfnFindNearestDepotTwoWay)(const Train*, TileIndex, Trackdir, TileIndex, Trackdir, int, int, TileIndex*, bool*); + typedef FindDepotData (*PfnFindNearestDepotTwoWay)(const Train*, TileIndex, Trackdir, TileIndex, Trackdir, int, int); PfnFindNearestDepotTwoWay pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail1::stFindNearestDepotTwoWay; /* check if non-default YAPF type needed */ @@ -627,9 +620,7 @@ FindDepotData YapfTrainFindNearestDepot(const Train *v, int max_penalty) pfnFindNearestDepotTwoWay = &CYapfAnyDepotRail2::stFindNearestDepotTwoWay; // Trackdir, forbid 90-deg } - bool ret = pfnFindNearestDepotTwoWay(v, origin.tile, origin.trackdir, last_tile, td_rev, max_penalty, YAPF_INFINITE_PENALTY, &fdd.tile, &fdd.reverse); - fdd.best_length = ret ? max_penalty / 2 : UINT_MAX; // some fake distance or NOT_FOUND - return fdd; + return pfnFindNearestDepotTwoWay(v, origin.tile, origin.trackdir, last_tile, td_rev, max_penalty, YAPF_INFINITE_PENALTY); } bool YapfTrainFindNearestSafeTile(const Train *v, TileIndex tile, Trackdir td, bool override_railtype) From 2e52de3406f76acdba8b286557bc5cf66971120a Mon Sep 17 00:00:00 2001 From: peter1138 Date: Tue, 4 Apr 2017 00:00:43 +0000 Subject: [PATCH 133/158] (svn r27846) -Fix [FS#5926]: Infinite loop in pathfinder when checking safe waiting position from a waypoint. --- src/pathfinder/yapf/yapf_costrail.hpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/pathfinder/yapf/yapf_costrail.hpp b/src/pathfinder/yapf/yapf_costrail.hpp index d9d89b12fa..22103987ad 100644 --- a/src/pathfinder/yapf/yapf_costrail.hpp +++ b/src/pathfinder/yapf/yapf_costrail.hpp @@ -418,9 +418,16 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th CFollowTrackRail ft(v); TileIndex t = cur.tile; Trackdir td = cur.td; + /* Arbitrary maximum tiles to follow to avoid infinite loops. */ + uint max_tiles = 20; while (ft.Follow(t, td)) { assert(t != ft.m_new_tile); t = ft.m_new_tile; + if (t == cur.tile || --max_tiles == 0) { + /* We looped back on ourself or found another loop, bail out. */ + td = INVALID_TRACKDIR; + break; + } if (KillFirstBit(ft.m_new_td_bits) != TRACKDIR_BIT_NONE) { /* We encountered a junction; it's going to be too complex to * handle this perfectly, so just bail out. There is no simple From 9ed6c2ebe13d05b34be631eb3e9502d30d45e9ec Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 4 Apr 2017 17:45:36 +0000 Subject: [PATCH 134/158] (svn r27847) -Update from Eints: german: 19 changes by planetmaker --- src/lang/german.txt | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/lang/german.txt b/src/lang/german.txt index f35e2eca9e..037b5096b1 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1373,6 +1373,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Fenster mit Rechtsklick schließen: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Schließt ein Fenster mittels Rechts-Klick. Schaltet Tooltip mit Rechts-Klick ab! STR_CONFIG_SETTING_AUTOSAVE :Autosave: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Wähle das Interval zwischen automatischen Speicherungen @@ -1762,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Prüfe, STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zeige KI- und Skripteinstellungen STR_INTRO_TOOLTIP_QUIT :{BLACK}OpenTTD beenden +STR_INTRO_BASESET :{BLACK}Dem momentan ausgewählten Basisgrafiken fehl{P 0 "t" "en"} {NUM} Sprite{P 0 "" s}. Bitte überprüfe, ob es Updates für die Basisgrafiken gibt. STR_INTRO_TRANSLATION :{BLACK}Dieser Übersetzung fehl{P 0 t en} {NUM} String{P "" s}. Bitte hilf, OpenTTD zu verbessern und melde Dich als Übersetzer an. Siehe readme.txt für weitere Details. # Quit window @@ -2590,6 +2593,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Name des STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Angenommene Frachtarten: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Gleistyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Schiene: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straße: {LTBLUE}{VELOCITY} @@ -2602,7 +2606,7 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Ackerland STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Schneebedecktes Land STR_LAI_CLEAR_DESCRIPTION_DESERT :Wüste -STR_LAI_RAIL_DESCRIPTION_TRACK :Schienen: Gleise +STR_LAI_RAIL_DESCRIPTION_TRACK :Schienen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Schienen: Gleise mit Blocksignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Schienen: Gleise mit Vorsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Schienen: Gleise mit Ausfahrtsignal @@ -2615,7 +2619,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Schienen: Gleis STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Schienen: Gleise mit Block- und Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Schienen: Gleise mit Blocksignal und einseitigem Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Schienen: Gleise mit Vor- und Ausfahrtsignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schienen: Gleise mit Vor- und Kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Schienen mit Vor- und Kombinationssignalen STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Schienen: Gleise mit Vor- und Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Schienen: Gleise mit Vorsignal und einseitigem Pfadsignal STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Schienen: Gleise mit Ausfahrts- und Kombinationssignal @@ -3293,6 +3297,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Benötig STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}benötigt +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}wartend +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING} @@ -3361,6 +3370,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Liste leeren STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe umbenennen +STR_GROUP_PROFIT_THIS_YEAR :Gewinn in diesem Jahr: +STR_GROUP_PROFIT_LAST_YEAR :Gewinn im letzten Jahr: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Neue Schienenfahrzeuge @@ -3527,6 +3539,9 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschw STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschwindigk.: {VELOCITY} Leistung: {POWER}{}Betriebskosten: {CURRENCY_LONG} pro Jahr{}Kapazität: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preis: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Max. Geschwindigkeit: {VELOCITY} Leistung: {POWER} Max. Zugkraft: {6:FORCE}{}Betriebskosten: {4:CURRENCY_LONG}/yr{}Kapazität: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} Felder{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} @@ -3648,6 +3663,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} Jahr{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} Jahr{P "" e} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Flugzeugtyp: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Flugzeugtyp: {LTBLUE}{STRING} {BLACK}Reichweite: {LTBLUE}{COMMA} Felder STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Leistung: {LTBLUE}{POWER}{BLACK} Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Max. Zugkraft: {LTBLUE}{FORCE} From 3b6fa4e33fa6d74e9b8e96d537effb612c9cef89 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 6 Apr 2017 17:45:37 +0000 Subject: [PATCH 135/158] (svn r27848) -Update from Eints: korean: 43 changes by telk5093 spanish: 6 changes by SilverSurferZzZ --- src/lang/korean.txt | 84 +++++++++++++++++++++++--------------------- src/lang/spanish.txt | 9 +++-- 2 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index d912e27de9..7172fc15d8 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -316,7 +316,7 @@ STR_SORT_BY_RATING :등급 # Tooltips for the main toolbar STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}게임을 일시 정지합니다. STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}게임 시간을 빠르게 가도록 합니다. -STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}옵션을 엽니다. +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}게임 기본 설정을 엽니다. STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}게임을 저장하거나, 그만두거나, 게임을 종료합니다 STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}지도, 외부 화면, 팻말 목록을 보여줍니다. STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}도시 메뉴를 표시합니다. @@ -372,7 +372,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :게임 종료 ############ range for SE file menu starts ############ range for settings menu starts -STR_SETTINGS_MENU_GAME_OPTIONS :게임 옵션 +STR_SETTINGS_MENU_GAME_OPTIONS :게임 기본 설정 STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :설정 STR_SETTINGS_MENU_SCRIPT_SETTINGS :인공지능/게임 스크립트 설정 STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF 설정 @@ -715,7 +715,7 @@ STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}지도 STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}수송 기반시설과 경로를 지도에 표시합니다. STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}초목을 지도에 표시합니다. STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}부지의 소유주를 지도에 표시합니다. -STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}산업 시설 타입 표시를 전환하려면 클릭하십시오. CTRL+클릭하면 선택한 산업시설을 제외한 모든 종류를 비활성화합니다. 다시 CTRL+클릭하면 모든 산업시설이 활성화됩니다. +STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}산업시설 종류 표시를 전환하려면 클릭하십시오. CTRL+클릭하면 선택한 산업시설을 제외한 모든 종류를 비활성화합니다. 다시 CTRL+클릭하면 모든 산업시설이 활성화됩니다. STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}회사 속성의 표시를 전환하려면 회사를 클릭하십시오. CTRL+클릭으로 선택한 회사를 제외한 모든 회사를 비활성화하십시오. 다시 CTRL+클릭하면 다시 모든 회사가 활성화됩니다. STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}해당 화물의 흐름도를 표시하려면 클릭하십시오. CTRL+클릭하면 선택한 화물만 표시합니다. @@ -1155,11 +1155,11 @@ STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :보조금을 STR_CONFIG_SETTING_CONSTRUCTION_COSTS :건설 가격: {STRING} STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :건설 및 구매 가격의 수준을 설정하십시오. STR_CONFIG_SETTING_RECESSIONS :경제 불황: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :이 옵션을 켜면 몇 년마다 경제 불황이 발생할 수 있습니다. 불황 기간 동안에는 모든 화물의 생산량이 확연히 줄어듭니다. (불황이 끝나면 이전 수준으로 회복) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :이 설정을 켜면, 몇 년마다 경제 불황이 발생할 수 있습니다. 불황 기간 동안에는 모든 화물의 생산량이 확연하게 줄어듭니다. (불황이 끝나면 이전 수준으로 회복됩니다.) STR_CONFIG_SETTING_TRAIN_REVERSING :열차가 역 내에서 회차하는 것을 금지: {STRING} -STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 옵션을 켜면 회차했을 때 다음 목적지까지 가는 더 짧은 경로가 있어도 열차가 비두단식 역에서 회차할 수 없게 됩니다. +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :이 설정을 켜면. 열차가 뒤로 돌면 다음 목적지까지 더 짧은 경로로 갈 수 있다고 해도 열차가 비두단식 역에서 뒤로 돌 수 없게 됩니다. STR_CONFIG_SETTING_DISASTERS :재앙: {STRING} -STR_CONFIG_SETTING_DISASTERS_HELPTEXT :블록이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙 옵션을 켜거나 끕니다. +STR_CONFIG_SETTING_DISASTERS_HELPTEXT :일정 구역이나 차량, 기반시설을 간혹 파괴할 수도 있는 재앙을 켜거나 끕니다. STR_CONFIG_SETTING_CITY_APPROVAL :지역 개발에 대한 도시의 태도: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :회사가 유발하는 소음과 환경 파괴가 회사에 대한 도시의 평가치와 향후 해당 지역에서의 건설 행동에 얼마나 영향을 미칠지 선택하십시오. @@ -1187,7 +1187,7 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :경사도 설정 (자동차/전차용): {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :자동차/전차에 적용시킬 경사도를 설정합니다. 값이 높을수록 차량이 언덕을 오를 때 더 힘이 듭니다. STR_CONFIG_SETTING_FORBID_90_DEG :열차/선박의 90도 회전을 금지함: {STRING} -STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :─ 모양의 수평 선로와 │ 모양의 수직 선로가 바로 이어져 만날 때 90도 회전이 발생합니다. 이 옵션을 켜면 열차가 칸 가장자리를 통과할 때 90도로 회전할 수 있도록 허용합니다. 이 옵션은 선박의 회전 반경에도 적용됩니다. +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_INFLATION :인플레이션(화폐 가치 하락) 사용: {STRING} @@ -1204,16 +1204,16 @@ STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :건설 불가 STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :건설 가능 (위치 선택 가능, 7배 비용) STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :투자 (무작위 위치에 건설) STR_CONFIG_SETTING_INDUSTRY_PLATFORM :산업시설 주위의 평지: {STRING} -STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :산업시설 주변에 도로나 선로를 설치할 수 있는 평지 넓이를 설정합니다. 이 옵션을 통해 산업시설 주변에 선로나 역 등을 건설할 공간을 마련할 수 있습니다. +STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :산업시설 주변에 도로나 선로를 설치할 수 있는 평지 넓이를 설정합니다. 이 설정을 통해 산업시설 주변에 선로나 역 등을 건설할 공간을 마련할 수 있습니다. STR_CONFIG_SETTING_MULTIPINDTOWN :한 도시에 비슷한 산업시설을 여러 개 건설할 수 있게 허용: {STRING} -STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :일반적으로, 도시에는 각 종류의 산업시설이 하나까지만 있을 수 있습니다. 이 옵션을 설정하면 한 도시 안에 같은 종류의 산업 시설을 여러 개 설치할 수 있게 됩니다. +STR_CONFIG_SETTING_MULTIPINDTOWN_HELPTEXT :일반적으로 도시에는 각 종류의 산업시설이 하나까지만 있을 수 있습니다. 이 설정을 켜면, 한 도시 안에 같은 종류의 산업시설을 여러 개 설치할 수 있게 됩니다. STR_CONFIG_SETTING_SIGNALSIDE :신호기 보이기: {STRING} STR_CONFIG_SETTING_SIGNALSIDE_HELPTEXT :선로의 어느 쪽에 신호기를 설치할 지 선택합니다. STR_CONFIG_SETTING_SIGNALSIDE_LEFT :왼쪽에 STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :진행 방향에 STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :오른쪽에 STR_CONFIG_SETTING_SHOWFINANCES :연말에 자동으로 재정 창을 띄움: {STRING} -STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 옵션을 켜면 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다. +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}에 정지하도록 설정 @@ -1222,7 +1222,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :가까운쪽 STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :중간 STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :먼쪽 STR_CONFIG_SETTING_AUTOSCROLL :가장자리에 마우스를 가져가면 화면 움직이기: {STRING} -STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :이 옵션을 켜면, 마우스를 게임 및 외부 화면 창의 가장자리에 가까이 가져가면 화면을 이동시킵니다. +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :이 설정을 켜면, 마우스를 게임 및 외부 화면 창의 가장자리에 가까이 가져가면 화면을 이동시킵니다. STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :사용 안 함 STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :전체 화면에서 주 게임 화면만 STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :주 게임 화면만 @@ -1253,24 +1253,24 @@ STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :경쟁자 소 STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :다른 회사 소유의 도로 위에 버스 정류장을 건설하는 것을 허용합니다. STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}이미 차량이 존재하면 이 설정을 변경하실 수 없습니다. STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :기반시설 유지비: {STRING} -STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 옵션을 활성화하면 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. +STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 설정을 켜면, 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :옛날 공항을 사라지지 않고 계속 만들 수 있게 함: {STRING} -STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 옵션을 켜면 소형 공항을 포함한 모든 공항 종류를 도입 이후 계속 사용할 수 있게 됩니다. +STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 설정을 켜면, 소형 공항을 포함한 모든 공항 종류를 도입 이후에 계속 사용할 수 있게 됩니다. STR_CONFIG_SETTING_WARN_LOST_VEHICLE :차량이 길을 잃으면 경고: {STRING} STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :다음 목적지로 가기 위한 경로를 찾을 수 없는 차량이 있으면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_ORDER_REVIEW :차량의 경로를 검사: {STRING} -STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :이 옵션을 켜면 차량의 경로를 주기적으로 검사하여 문제가 발견되면 뉴스 메시지로 알려줍니다. +STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :이 설정을 켜면, 차량의 경로를 주기적으로 검사하여 문제가 발견되면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_ORDER_REVIEW_OFF :검사하지 않음 STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :정지한 차량을 제외하고 검사 STR_CONFIG_SETTING_ORDER_REVIEW_ON :모든 차량을 검사 STR_CONFIG_SETTING_WARN_INCOME_LESS :차량의 수입이 적자일때 경고하기: {STRING} -STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :이 옵션을 켜면 지난 해에 수익이 없는 차량이 있으면 뉴스 메시지로 알려줍니다. +STR_CONFIG_SETTING_WARN_INCOME_LESS_HELPTEXT :이 설정을 켜면, 지난 해에 수익이 없는 차량이 있으면 뉴스 메시지로 알려줍니다. STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :옛날 차량을 사라지지 않고 계속 만들 수 있게 함: {STRING} -STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :이 옵션을 켜면 오래된 차량 모델을 포함하여 모든 차량 모델을 도입 이후 계속 사용할 수 있게 됩니다. +STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :이 설정을 켜면, 오래된 차량 모델을 포함하여 모든 차량 모델을 도입 이후에 계속 사용할 수 있게 됩니다. STR_CONFIG_SETTING_AUTORENEW_VEHICLE :차량이 낡으면 차량을 자동으로 교체: {STRING} -STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :이 옵션을 켜면 제한 수명에 다다른 차량이 교체 조건을 만족할 경우 자동으로 차량을 교체할 수 있게 됩니다. +STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :이 설정을 켜면, 제한 수명에 다다른 차량이 교체 조건을 만족할 경우 자동으로 차량을 교체할 수 있게 됩니다. STR_CONFIG_SETTING_AUTORENEW_MONTHS :차량이 최대 수명의 {STRING}이면 자동 교체 STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :자동 교체가 필요한 차량의 상대적인 연령을 설정합니다. STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA}개월 전 @@ -1310,7 +1310,7 @@ 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_VARIETY_HELPTEXT :(천지창조 전용) 지도가 산지와 평지를 모두 갖도록 만들 것인 지를 결정합니다. 이 설정은 지형을 더 평평하게 만드므로, 다른 설정은 '산'으로 설정하시기 바랍니다. STR_CONFIG_SETTING_RIVER_AMOUNT :강의 양: {STRING} STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :강을 얼마나 만들지 선택하십시오. STR_CONFIG_SETTING_TREE_PLACER :나무 배치 알고리즘: {STRING} @@ -1342,7 +1342,7 @@ STR_CONFIG_SETTING_REVERSE_SCROLLING :스크롤 방 STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 옵션을 끄면 마우스 방향과 화면의 스크롤 방향이 같아집니다. 옵션을 켜면 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. STR_CONFIG_SETTING_SMOOTH_SCROLLING :게임 화면을 이동시킬 때 부드럽게 이동: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 옵션을 켜면 화면이 목표지점까지 부드럽게 이동하며, 옵션을 끄면 목표 화면으로 곧바로 넘어가게 됩니다. -STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 툴팁 표시: {STRING} +STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 도움말 표시: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :철도/도로 등의 기반시설을 건설할 때 거리와 높이 차이 등을 표시합니다. STR_CONFIG_SETTING_LIVERIES :차량 종류에 따라 회사의 색상을 구분하여 표시: {STRING} STR_CONFIG_SETTING_LIVERIES_HELPTEXT :회사 고유 색상을 따르지 않고 차량 종류에 따라 다른 차량 색상을 사용하는 것을 허용합니다. @@ -1350,7 +1350,7 @@ 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_HELPTEXT :이 옵션을 켜면 멀티 플레이시 같은 회사 간의 채팅을 키 대신 키로 할 수 있게 됩니다. +STR_CONFIG_SETTING_PREFER_TEAMCHAT_HELPTEXT :이 설정을 켜면, 멀티 플레이시 같은 회사 간의 채팅을 키 대신 키로 할 수 있게 됩니다. STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING :마우스 휠 동작: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_SCROLLING_HELPTEXT :상하좌우로 회전 가능한 마우스 휠(2차원 마우스휠)로 지도를 스크롤할 수 있게 허용합니다. STR_CONFIG_SETTING_SCROLLWHEEL_ZOOM :화면 확대/축소 @@ -1359,7 +1359,7 @@ STR_CONFIG_SETTING_SCROLLWHEEL_OFF :끄기 STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :지도 스크롤 속도: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :마우스 휠 스크롤의 민감도를 설정합니다. STR_CONFIG_SETTING_OSK_ACTIVATION :화상 키보드: {STRING} -STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :마우스와 같은 장치만을 이용하여 입력 칸에 글자를 입력하기 위해 화상 키보드를 어떤 방식으로 띄울지 선택하십시오. 이 옵션은 스마트폰 등 실제 키보드가 없는 소형 기기를 사용하는 분을 위한 기능입니다. +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 :한 번 클릭 (커서가 활성화되어 있을 때) @@ -1372,7 +1372,9 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :CTRL + 클릭 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_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :왼쪽 마우스 버튼을 드래그하여 지도를 스크롤 할 수 있도록 합니다. 터치 스크린 환경에서 이 설정을 켜면 매우 유용합니다. +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :오른쪽 클릭으로 창 닫기: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :창 내부를 오른쪽 클릭하여 창을 닫습니다. 오른쪽 클릭으로 도움말 표시 설정을 해제해야 합니다! STR_CONFIG_SETTING_AUTOSAVE :자동 저장: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :게임을 자동으로 저장할 간격을 선택하십시오. @@ -1384,7 +1386,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :짧은 (2012.01 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :국제표준규격 (2012-01-01) STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시정지: {STRING} -STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 옵션을 켜면, 새로은 게임을 시작할 때 지도를 더욱 살펴볼 수 있도록 게임을 자동으로 일시정시시킵니다. +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 설정을 켜면, 새로은 게임을 시작할 때 지도를 더욱 자세히 살펴볼 수 있도록 게임을 자동으로 일시정시합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :일시 정지 상태에서 가능한 행동: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :게임이 일시 정지된 동안에 할 수 있는 행동을 선택합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :아무 것도 못 함 @@ -1431,7 +1433,7 @@ STR_CONFIG_SETTING_SOUND_AMBIENT :주변 소리: STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :주변 풍경이나 산업시설, 도시의 효과음을 재생합니다. STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :사용 가능한 차량이 없을 경우 해당 기반시설 비활성화: {STRING} -STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :이 옵션을 켜면, 불필요하게 시간과 돈을 낭비하지 않도록 차량이 존재하지 않는 기반시설을 설치할 수 없게 됩니다. +STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :이 설정을 켜면, 불필요하게 시간과 돈을 낭비하지 않도록 사용 가능한 차량이 없는 기반시설은 설치할 수 없게 됩니다. STR_CONFIG_SETTING_MAX_TRAINS :회사당 최대 열차 수: {STRING} STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :한 회사가 소유할 수 있는 열차의 최대 수를 제한합니다. STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :회사당 최대 자동차/전차 수: {STRING} @@ -1442,13 +1444,13 @@ STR_CONFIG_SETTING_MAX_SHIPS :회사당 최 STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :한 회사가 소유할 수 있는 선박의 최대 수를 제한합니다. STR_CONFIG_SETTING_AI_BUILDS_TRAINS :컴퓨터의 철도 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 철도를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 철도를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :컴퓨터의 자동차/전차 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 자동차나 전차를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 자동차나 전차를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :컴퓨터의 항공기 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 항공기를 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 항공기를 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_BUILDS_SHIPS :컴퓨터의 선박 사용을 허가하지 않음: {STRING} -STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :이 옵션을 켜면 컴퓨터 플레이어가 선박을 사용할 수 없게 됩니다. +STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :이 설정을 켜면, 컴퓨터 플레이어가 선박을 사용할 수 없게 됩니다. STR_CONFIG_SETTING_AI_PROFILE :기본 설정 난이도: {STRING} STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :무작위 인공지능이 사용할 난이도 설정이나, 인공지능 또는 게임 스크립트를 추가할 때의 난이도 초기값을 고르십시오. @@ -1474,11 +1476,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :항공기에 STR_CONFIG_SETTING_SERVINT_SHIPS :선박에 대한 기본 점검 기준: {STRING} STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :선박에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다. STR_CONFIG_SETTING_NOSERVICE :차량 고장 설정이 비활성화된 경우 정비하지 않음: {STRING} -STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :'차량고장'이 비활성화되었을 때 이 옵션을 켜면, 차량 정비 설정을 무시합니다. +STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :이 설정을 켜면, 차량이 고장나지 않도록 설정되어 있는 경우 차량이 정비를 하러 가지 않습니다. STR_CONFIG_SETTING_WAGONSPEEDLIMITS :화물차 속력 제한 적용: {STRING} -STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :이 옵션을 켜면 화물차의 속력 제한값을 적용하여 열차의 최대 속력을 감소시킵니다. +STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :이 설정을 켜면, 화물차의 속력 제한값에 따라 열차의 최대 속력을 제한합니다. STR_CONFIG_SETTING_DISABLE_ELRAILS :전기 철도를 사용하지 않음: {STRING} -STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :이 옵션을 켜면 전기 기관차가 일반 철도에서도 달릴 수 있도록 요구사항을 제거합니다. +STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :이 설정을 켜면, 전기 기관차가 일반 철도에서도 달릴 수 있도록 만듭니다. STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :내 회사의 첫 차량 도착: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :나의 새 역사에 처음으로 차량이 도착하면 메시지로 알려줍니다. @@ -1497,7 +1499,7 @@ STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :거시적인 STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :내 회사에 의한 산업시설의 생산량 변동: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :내 회사가 수송하는 산업시설의 생산량이 변하면 소식으로 알려줍니다. STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :경쟁사에 의한 산업시설의 생산량 변동: {STRING} -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :경쟁사가 수송하고 있는 산업 시설의 생산량이 변하면 메시지로 알려줍니다. +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} @@ -1518,21 +1520,21 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :전체 메시 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :컬러로 된 뉴스가 시작되는 해: {STRING}년 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다. STR_CONFIG_SETTING_STARTING_YEAR :시작 연도: {STRING} -STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제(더욱 작은 변화) 옵션 사용: {STRING} -STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 옵션을 활성화하면 1차 산업시설의 생산량이 좁은 폭으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다. +STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제 변화 사용 (자주, 조금씩 변화): {STRING} +STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 설정을 켜면, 1차 산업시설의 생산량이 소량으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다. STR_CONFIG_SETTING_ALLOW_SHARES :다른 회사의 지분을 사는 것을 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 옵션을 켜면, 회사의 지분을 거래할 수 있게 됩니다. 회사의 지분을 거래하려면 해당 회사가 어느 정도 오래되어야 합니다. +STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 설정을 켜면, 회사의 지분을 거래할 수 있게 됩니다. 회사의 지분을 거래하려면 해당 회사가 어느 정도 오래되어야 합니다. STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :환승시 벌어들이는 중간 수익의 비율: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :더 많은 수익을 내기 위해, 수송 관계상 중간 구간에게 주어진 수익의 비율을 설정합니다. STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :신호기를 드래그로 설치하는 경우: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :신호기를 드래그할 때, 다음 장애물(신호기, 분기점 등)을 만날 때까지 신호기가 설치될 간격을 설정합니다. STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA}칸 간격으로 설치 STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :드래그할 때, 신호기 사이의 거리를 계속 고정: {STRING} -STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :신호기를 CTRL+드래그 하여 설치할 때의 행동을 선택합니다. 이 옵션을 끄면, 신호기가 없는 긴 폐색을 만들지 않기 위해 터널이나 다리 주변에 먼저 신호기가 설치될 것입니다. 이 옵션을 켜면, 신호기는 터널/다리와 상관없이 매 n개의 칸마다 설치될 것입니다. +STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :신호기를 CTRL+드래그 하여 설치할 때의 행동을 선택합니다. 이 설정을 끄면, 신호기가 없는 긴 폐색을 만들지 않기 위해 터널이나 다리 주변에 먼저 신호기가 설치될 것입니다. 이 설정을 켜면, 신호기는 터널/다리와 상관없이 매 n개의 칸마다 설치될 것입니다. STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :전자식 신호기의 사용: {STRING}년 이후에 STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :전자식 신호기를 사용할 수 있는 연도를 설정합니다. 이 이전에는 구식 신호기만 사용 가능합니다. (두 신호기는 기능적으로는 동일하고 모습만 다릅니다.) STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :신호기 설치시 신호기 선택 창을 띄움: {STRING} -STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :설치할 신호기 종류를 고를 수 있는 신호기 선택 창을 표시합니다. 이 옵션을 끄면 선택 창 없이 CTRL+클릭 만으로 신호기의 종류를 바꿔야 합니다. +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 :일반 신호기 @@ -1552,11 +1554,11 @@ 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_ALLOW_TOWN_ROADS :도시 스스로의 도로 건설 허용: {STRING} -STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :도시가 성장하기 위해 도로를 건설할 수 있도록 허용합니다. 도시 당국이 스스로 성장하지 못하도록 하려면 이 옵션을 끄십시오. +STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :도시가 성장하기 위해 도로를 건설할 수 있도록 허용합니다. 도시 당국이 스스로 도로를 만들지 못하도록 하려면 이 설정을 끄십시오. STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :도시가 회사 소유의 선로에 건널목을 만드는 것을 허용: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :도시가 회사 소유의 선로에 건널목을 건설할 수 있도록 허용합니다. STR_CONFIG_SETTING_NOISE_LEVEL :도시가 공항에서 나오는 소음을 제한하도록 함: {STRING} -STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :이 옵션을 끄면, 한 도시에는 공항을 2개까지 지을 수 있습니다. 이 옵션을 켜면, 한 도시에 지을 수 있는 공항의 수는 도시가 허용 가능한 소음 기준에 따라 달라집니다. 소음 기준은 도시 인구, 공항의 크기와 거리에 따라 다릅니다. +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :이 설정을 끄면, 한 도시에는 공항을 2개까지 지을 수 있습니다. 이 설정을 켜면, 한 도시에 지을 수 있는 공항의 수는 도시가 허용 가능한 소음 기준에 따라 달라집니다. 소음 기준은 도시 인구, 공항의 크기와 거리에 따라 다릅니다. STR_CONFIG_SETTING_TOWN_FOUNDING :게임 도중에 도시 건설: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :플레이어가 게임 중에 새로운 도시를 설립하는 것을 허용합니다. STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :금지 @@ -1564,7 +1566,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :허용 STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :허용, 도시 구조 선택 가능 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :게임 진행 중에 나무가 자동적으로 번식: {STRING} -STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :게임 중에 나무가 자동적으로 번식하는지 여부를 조절합니다. 이 옵션은 열대 우림의 벌목소처럼 나무의 성장에 의존하는 산업 시설에 영향을 끼칠 수 있습니다. +STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :게임 중에 나무가 자동적으로 번식하는지 여부를 조절합니다. 이 설정을 조정하면, 아열대 기후의 벌목소처럼 나무의 성장에 의존하는 산업시설에 영향을 끼칠 수 있습니다. STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :자라지 않음 {RED}(제재소에 의해 벌목될 수 있음) STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :열대 우림 지역에서만 STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :어디서나 @@ -2267,7 +2269,7 @@ STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}예, 그 STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}아니요, OpenTTD를 종료합니다. # Transparency settings window -STR_TRANSPARENCY_CAPTION :{WHITE}투명 옵션 +STR_TRANSPARENCY_CAPTION :{WHITE}투명 설정 STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}역명판 투명 전환. 고정하려면 CTRL+클릭하세요. STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}나무 투명 전환. 고정하려면 CTRL+클릭하세요. STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}집 투명 전환. 고정하려면 CTRL+클릭하세요. diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 60394841b8..866df1583d 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -286,7 +286,7 @@ STR_SORT_BY_TYPE :Tipo STR_SORT_BY_TRANSPORTED :Transportado STR_SORT_BY_NUMBER :Número STR_SORT_BY_PROFIT_LAST_YEAR :Beneficio año pasado -STR_SORT_BY_PROFIT_THIS_YEAR :Beneficio año actual +STR_SORT_BY_PROFIT_THIS_YEAR :Beneficio este año STR_SORT_BY_AGE :Edad STR_SORT_BY_RELIABILITY :Fiabilidad STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Capacidad por tipo de carga @@ -3316,7 +3316,7 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehícul STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Barcos - Click en barco para información STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronave - Click en la aeronave para información -STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Beneficio este año: {CURRENCY_LONG} (año anterior: {CURRENCY_LONG}) +STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Beneficio este año: {CURRENCY_LONG} (último año: {CURRENCY_LONG}) STR_VEHICLE_LIST_AVAILABLE_TRAINS :Trenes disponibles STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :Vehículos de carretera disponibles @@ -3364,6 +3364,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Renombrar un grupo +STR_GROUP_PROFIT_THIS_YEAR :Beneficio este año: +STR_GROUP_PROFIT_LAST_YEAR :Beneficio del último año: +STR_GROUP_OCCUPANCY :Uso actual: STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window @@ -3656,7 +3659,7 @@ STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocida STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} -STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Beneficios este año: {LTBLUE}{CURRENCY_LONG} (último año: {CURRENCY_LONG}) +STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Beneficio este año: {LTBLUE}{CURRENCY_LONG} (último año: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Averías desde el último mantenimiento: {LTBLUE}{COMMA} STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY_LONG} From c44b3db7a3c1e2c8026d67eb755f3afe2b7a26cd Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 8 Apr 2017 17:45:39 +0000 Subject: [PATCH 136/158] (svn r27849) -Update from Eints: korean: 4 changes by telk5093 --- src/lang/korean.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 7172fc15d8..cfd00d266b 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1215,9 +1215,9 @@ STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :오른쪽에 STR_CONFIG_SETTING_SHOWFINANCES :연말에 자동으로 재정 창을 띄움: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 설정을 켜면. 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다. STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :새로 지정하는 경로는 기본적으로 '직행'으로 처리: {STRING} -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 옵션을 켜면 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 설정을 켜면, 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 설정은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. STR_CONFIG_SETTING_STOP_LOCATION :새로 지정하는 역 정차 경로는 기본적으로 역의 {STRING}에 정지하도록 설정 -STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :열차가 기본적으로 정거장의 어느 위치에 정차할 것인지를 설정합니다. '가까운 쪽'은 역에 진입하는 곳과 가까운 곳에, '중간'은 역 중앙에, '먼쪽'은 진입하는 곳과 먼 곳에 정차합니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다. +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 :먼쪽 @@ -1339,9 +1339,9 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :녹색 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :어두운 녹색 STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :보라색 STR_CONFIG_SETTING_REVERSE_SCROLLING :스크롤 방향 뒤집기: {STRING} -STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 옵션을 끄면 마우스 방향과 화면의 스크롤 방향이 같아집니다. 옵션을 켜면 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. +STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :마우스 오른쪽 클릭으로 지도를 스크롤하는 방법을 선택합니다. 이 설정을을 끄면, 마우스 방향과 화면의 스크롤 방향이 같아집니다. 설정을 켜면, 마우스 방향과 화면의 스크롤 방향이 반대가 됩니다. STR_CONFIG_SETTING_SMOOTH_SCROLLING :게임 화면을 이동시킬 때 부드럽게 이동: {STRING} -STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 옵션을 켜면 화면이 목표지점까지 부드럽게 이동하며, 옵션을 끄면 목표 화면으로 곧바로 넘어가게 됩니다. +STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :소형 지도를 클릭하여 특정 지역으로 스크롤되거나 지도 상의 특정 장소로 이동하는 경우에 주 화면이 어떻게 스크롤 되는지를 설정합니다. 이 설정을 켜면, 화면이 목표 지점까지 부드럽게 이동하고, 설정을 끄면 목표 지점으로 곧바로 넘어가게 됩니다. STR_CONFIG_SETTING_MEASURE_TOOLTIP :건설도구 사용시 거리 도움말 표시: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :철도/도로 등의 기반시설을 건설할 때 거리와 높이 차이 등을 표시합니다. STR_CONFIG_SETTING_LIVERIES :차량 종류에 따라 회사의 색상을 구분하여 표시: {STRING} From 830a4b63c9b8ed04dd775df43079b3e81104cf59 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 9 Apr 2017 17:45:38 +0000 Subject: [PATCH 137/158] (svn r27850) -Update from Eints: korean: 3 changes by telk5093 spanish (mexican): 18 changes by Absay --- src/lang/korean.txt | 6 +++--- src/lang/spanish_MX.txt | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index cfd00d266b..8e25e71a66 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2370,9 +2370,9 @@ 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+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 가격을 볼 수 있습니다. -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}드래그시 신호기 증가 +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}드래그로 신호기를 설치하는 간격 증가 # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}철교 선택 diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 82da64c535..28f0757163 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Ninguno STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desplazamiento con botón izquierdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activar el desplazamiento del mapa al arrastrar con el botón izquierdo. Esto es especialmente útil al usar pantallas táctiles +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Cerrar ventana con clic derecho: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Cerrar la ventana haciendo clic derecho sobre ella. ¡Desactiva los mensajes de ayuda con clic derecho! STR_CONFIG_SETTING_AUTOSAVE :Guardado automático: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Intervalo entre guardados automáticos de la partida @@ -3295,6 +3297,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requiere +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3363,6 +3370,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos lo STR_GROUP_RENAME_CAPTION :{BLACK}Cambiar nombre del grupo +STR_GROUP_PROFIT_THIS_YEAR :Ganancias de este año: +STR_GROUP_PROFIT_LAST_YEAR :Ganancias del año pasado: +STR_GROUP_OCCUPANCY :Uso actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nuevos trenes @@ -3395,6 +3406,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de ca STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección trenes. Clic en un tren para más información. Ctrl+Clic para mostrar u ocultar el tipo de tren STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Clic en un vehículo para más información. Ctrl+Clic para mostrar u ocultar el tipo del vehículo @@ -3529,6 +3541,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Vel. máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} tiles{}Capacidad: {CARGO_LONG}{}Costo de operación: {CURRENCY_LONG} al año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} @@ -3651,6 +3667,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vel. máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. máx.: {LTBLUE}{FORCE} From 02b6c533aacf4c2efb032778797694b565ada2f2 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 9 Apr 2017 21:58:07 +0000 Subject: [PATCH 138/158] (svn r27851) -Fix [FS#6555]: StringID truncation to 16 bits broke string remapping test. --- src/newgrf_text.cpp | 4 ++-- src/newgrf_text.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index e4b3c382b3..eb4b11c5e0 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -691,7 +691,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne } AddGRFTextToList(&_grf_text[id].textholder, newtext); - grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s'", id, grfid, stringid, newtext->langid, newtext->text); + grfmsg(3, "Added 0x%X: grfid %08X string 0x%X lang 0x%X string '%s' (%X)", id, grfid, stringid, newtext->langid, newtext->text, MakeStringID(TEXT_TAB_NEWGRF_START, id)); return MakeStringID(TEXT_TAB_NEWGRF_START, id); } @@ -699,7 +699,7 @@ StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid_to_add, bool ne /** * Returns the index for this stringid associated with its grfID */ -StringID GetGRFStringID(uint32 grfid, uint16 stringid) +StringID GetGRFStringID(uint32 grfid, StringID stringid) { for (uint id = 0; id < _num_grf_texts; id++) { if (_grf_text[id].grfid == grfid && _grf_text[id].stringid == stringid) { diff --git a/src/newgrf_text.h b/src/newgrf_text.h index 6587fc1fed..033967d307 100644 --- a/src/newgrf_text.h +++ b/src/newgrf_text.h @@ -21,7 +21,7 @@ static const WChar NFO_UTF8_IDENTIFIER = 0x00DE; StringID AddGRFString(uint32 grfid, uint16 stringid, byte langid, bool new_scheme, bool allow_newlines, const char *text_to_add, StringID def_string); -StringID GetGRFStringID(uint32 grfid, uint16 stringid); +StringID GetGRFStringID(uint32 grfid, StringID stringid); const char *GetGRFStringFromGRFText(const struct GRFText *text); const char *GetGRFStringPtr(uint16 stringid); void CleanUpStrings(); From 6192780721d64e7a6b470c9b26096dcec700152f Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 10 Apr 2017 17:45:37 +0000 Subject: [PATCH 139/158] (svn r27852) -Update from Eints: catalan: 31 changes by juanjo spanish: 5 changes by SilverSurferZzZ --- src/lang/catalan.txt | 62 ++++++++++++++++++++++---------------------- src/lang/spanish.txt | 8 +++--- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index c88d940f0f..2909a9c82d 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -975,7 +975,7 @@ STR_GAME_OPTIONS_LANGUAGE :{BLACK}Idioma STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Selecciona l'idioma de la interfície STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Pantalla completa -STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marca la casella per tenir l'OpenTTD en pantalla completa +STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marqueu la casella per mostrar l'OpenTTD a pantalla completa. STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolució de pantalla STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla @@ -1119,9 +1119,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Paràmetres de STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Paràmetres de la partida (emmagatzemats a la partida actual; només afecten la partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Paràmetres de la companyia (emmagatzemats a les partides desades; només afectaran les partides noves) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Paràmetres de la companyia (emmagatzemats a la partida actual; només afecten la companyia actual) -STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostra tots els resultats de la cerca filtrada de {WHITE}{STRING} +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Mostra tots els resultats establint {SILVER}«Categoria» {BLACK}a {WHITE}«{STRING}»{BLACK}. STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Mostrar tots els resultats de la cerca filtrada amb {WHITE}tots els tipus de paràmetres -STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostra tots els resultats de la cerca filtrada de {WHITE}{STRING} {BLACK}i {WHITE}tots els tipus d'ajustaments +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Mostra tots els resultats de la cerca establint {SILVER}«Categoria» {BLACK}a {WHITE}«{STRING}» {BLACK}i {SILVER}«Tipus» {BLACK}a {WHITE}«Tots els paràmetres»{BLACK}. STR_CONFIG_SETTINGS_NONE :{WHITE}- Cap - STR_CONFIG_SETTING_OFF :Inactiu @@ -1129,8 +1129,8 @@ STR_CONFIG_SETTING_ON :Actiu STR_CONFIG_SETTING_DISABLED :Desactivat STR_CONFIG_SETTING_COMPANIES_OFF :Inactiu -STR_CONFIG_SETTING_COMPANIES_OWN :Pròpia companyia -STR_CONFIG_SETTING_COMPANIES_ALL :Totes les companyies +STR_CONFIG_SETTING_COMPANIES_OWN :Només de la companyia pròpia +STR_CONFIG_SETTING_COMPANIES_ALL :De totes les companyies STR_CONFIG_SETTING_NONE :Cap STR_CONFIG_SETTING_ORIGINAL :Original @@ -1160,16 +1160,16 @@ STR_CONFIG_SETTING_TRAIN_REVERSING :No permetis que 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 :Catàstrofes: {STRING} STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Permet o no que passin catàstrofes que puguin bloquejar o destruir ocasionalment vehicles o infraestructures -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 :Estableix quin nivell de soroll i de danys ambientals fets per les companyies afecten al seu prestigi davant de la població i futures accions de construcció a la zona +STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la població enfront les reestructuracions a la zona: {STRING} +STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Establiu com afecta al prestigi de les companyies el soroll i els danys ambientals que provoquen. Aquest prestigi influirà en la futura acceptació o denegació d'accions de construcció a la zona. STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Alçada màxima del mapa: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Estableix l'alçada màxima permesa del terreny en el mapa STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No es pot escollir aquesta alçada màxima del mapa: hi ha alguna zona del mapa actual que és més alta. STR_CONFIG_SETTING_AUTOSLOPE :Permet la modificació del terreny sota edificis, rails, etc.: {STRING} -STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permet modelar el terreny sota edificis i rails, sense eliminar-los +STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permet modelar el terreny sota les vies, els edificis i altres elements sense eliminar-los. STR_CONFIG_SETTING_CATCHMENT :Estableix una mida més real de l'àrea d'influència: {STRING} -STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permet tenir diferents mides de zones de captació per a diferents tipus d'estacions i aeroports +STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permet tenir diferents mides de zones de captació de càrrega per diferents tipus d'estacions (aeroports, estacions de tren, etc.). STR_CONFIG_SETTING_EXTRADYNAMITE :Permet l'esborrat de carreteres, ponts i túnels propietat de les poblacions: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Aquesta opció permet fer més fàcil l'esborrat d'infraestructures i construccions propietat de la població STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud màxima dels trens: {STRING} @@ -1214,7 +1214,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :Al costat de co STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :A la dreta STR_CONFIG_SETTING_SHOWFINANCES :Mostra la finestra de balanç al finalitzar cada any: {STRING} STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Si el paràmetre està activat, la finestra de finances apareix al final de cada any per permetre una inspecció fàcil de l'estat financer de la companyia. -STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :«Sense parada» per defecte a les noves ordres : {STRING} +STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :«Sense parada» per defecte a les ordres noves: {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalment, un vehicle para a cada estació per la que passa. Activant aquest paràmetre, no pararà a cap estació fins arribar al seu destí. Nota: aquest paràmetre només defineix el valor predeterminat per a les noves ordres. Un cop creada una ordre, aquesta es pot establir manualment al comportament desitjat. STR_CONFIG_SETTING_STOP_LOCATION :Noves ordres de trens: parar per defecte {STRING} de la plataforma STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Estableix en quin lloc de la plataforma els trens pararan per defecte. «Extrem més proper» significa a prop del punt d'entrada, «Al mig» significa al mig de la plataforma, i «Extrem més llunyà» significa lluny del punt d'entrada. Nota: aquest paràmetre només defineix el valor predeterminat per les noves ordres. Un cop creada una ordre, es pot modificar el comportament de forma manual. @@ -1222,7 +1222,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :A l'extrem més STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :Al mig STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :A l'extrem més llunyà STR_CONFIG_SETTING_AUTOSCROLL :Desplaça la finestra quan el ratolí sigui prop de la vora: {STRING} -STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Quan està activat, l'àrea de visualització començarà a desplaçar-se quan el ratolí sigui prop de la vora de la finestra. +STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Si s'activa aquesta opció, l'àrea de visualització començarà a desplaçar-se quan el ratolí sigui prop de 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 @@ -1387,12 +1387,12 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31 STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Posa en pausa automàticament quan comenci una nova partida: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quan està activat, el joc es posa en pausa 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} -STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Selecciona quines accions poden fer-se quan la partida està en pausa -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_COMMAND_PAUSE_LEVEL :Accions permeses mentre s'està fent una pausa a la partida: {STRING} +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Seleccioneu quines accions es poden realitzar mentre s'està fent una pausa a la partida. +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Cap +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Totes, excepte les de construcció +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Totes, excepte les que modifiquen el paisatge +STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Totes 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 avançades de vehicles per agrupar vehicles. STR_CONFIG_SETTING_LOADING_INDICATORS :Utilitza indicadors de càrrega: {STRING} @@ -1518,7 +1518,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Resum STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Complet STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Les notícies en color apareixen el: {STRING} -STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els diaris comencen a fer els anunciaments impresos en color. Abans d'aquest any, s'utilitza el blanc i negre +STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els diaris comencen a fer anuncis en color. Abans d'aquest any, imprimiran en blanc i negre. STR_CONFIG_SETTING_STARTING_YEAR :Any d'inici: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activa economia suau (més canvis però més petits): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quan està activat, els canvis de producció de la indústria són més habituals, i en passos més petits. Aquest paràmetre usualment no té efecte, si el tipus d'indústria estan proveïts per un NewGRF @@ -1605,7 +1605,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Proporció de p 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 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_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}{NBSP}di{P 0:2 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. @@ -1762,14 +1762,14 @@ STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostra l 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 +STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt de l'OpenTTD. STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu-ne si hi ha actualitzacions disponibles. -STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau ajuda a fer millor OpenTTD unint-te com a traductor. Veure readme.txt per més detalls. +STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau, ajudeu a fer millor l'OpenTTD unint-vos com a traductor. Vegeu el fitxer readme.txt per més detalls. # Quit window STR_QUIT_CAPTION :{WHITE}Surt -STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Estàs segur que vols abandonar aquesta partida i tornar a {STRING}? +STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}Esteu segur que voleu abandonar aquesta partida i tornar a {STRING}? STR_QUIT_YES :{BLACK}Sí STR_QUIT_NO :{BLACK}No @@ -1863,7 +1863,7 @@ STR_FACE_SIMPLE :{BLACK}Simple STR_FACE_SIMPLE_TOOLTIP :{BLACK}Selecció de cara simple STR_FACE_LOAD :{BLACK}Carrega STR_FACE_LOAD_TOOLTIP :{BLACK}Carrega la cara preferida -STR_FACE_LOAD_DONE :{WHITE}S'ha carregat la cara personalitzada des de l'arxiu de configuració de l'OpenTTD +STR_FACE_LOAD_DONE :{WHITE}S'ha carregat la cara personalitzada des de l'arxiu de configuració de l'OpenTTD. STR_FACE_FACECODE :{BLACK}Número de la cara STR_FACE_FACECODE_TOOLTIP :{BLACK}Veure i/o assigna el número de la cara del president STR_FACE_FACECODE_CAPTION :{WHITE}Veure i/o assigna el número de la cara del president @@ -1871,7 +1871,7 @@ STR_FACE_FACECODE_SET :{WHITE}El núme STR_FACE_FACECODE_ERR :{WHITE}No s'ha pogut assignar el número de cara del president - ha de ser un nombre entre 0 i 4,294,967,295! STR_FACE_SAVE :{BLACK}Desa STR_FACE_SAVE_TOOLTIP :{BLACK}Desa la cara preferida -STR_FACE_SAVE_DONE :{WHITE}Es desarà aquesta cara personalitzada a l'arxiu de configuració de l'OpenTTD +STR_FACE_SAVE_DONE :{WHITE}Es desarà aquesta cara personalitzada a l'arxiu de configuració de l'OpenTTD. STR_FACE_EUROPEAN :{BLACK}Europea STR_FACE_SELECT_EUROPEAN :{BLACK}Selecciona cares europees STR_FACE_AFRICAN :{BLACK}Africana @@ -2209,9 +2209,9 @@ STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Marca to STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Deselecciona tot STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Marca tots els continguts a no ser descarregats STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Cerca en webs externes -STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Cerca contingut no disponible al servei de continguts d'OpenTTD en webs no associades amb OpenTTD -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Estàs sortint de l'OpenTTD! -STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Els termes i condicions per descarregar contingut des de webs externes varia.{}Hauràs d'adreçar-te a les webs externes per trobar instruccions sobre com instal·lar contingut a OpenTTD.{}Vols continuar? +STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Cerca contingut no disponible al servei de continguts de l'OpenTTD en webs no associades. +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Esteu sortint de l'OpenTTD. +STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Els termes i condicions per descarregar contingut des de webs externes varia.{}Haureu d'adreçar-vos a les webs externes per trobar instruccions sobre com instal·lar contingut a l'OpenTTD.{}Voleu continuar? STR_CONTENT_FILTER_TITLE :{BLACK}Marca/anomena filtre: STR_CONTENT_OPEN_URL :{BLACK}Visita la web STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Visita la web per accedir a aquest contingut @@ -2264,9 +2264,9 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no e STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No s'han pogut descomprimir els arxius descarregats STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Gràfics que falten -STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD necessita gràfics per funcionar però no se n'ha trobat cap. Vols permetre a OpenTTD descarregar i instal·lar aquests gràfics? +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}L'OpenTTD necessita gràfics per funcionar, però no se n'han trobat. Voleu permetre a l'OpenTTD descarregar i instal·lar aquests gràfics? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descarregar els gràfics -STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt d'OpenTTD +STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt de l'OpenTTD. # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}Opcions de transparència @@ -2838,7 +2838,7 @@ STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paràmet STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hi ha informació disponible STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}No s'ha trobat cap arxiu coincident STR_NEWGRF_SETTINGS_DISABLED :{RED}Desactivat -STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Versió incompatible amb aquesta versió de OpenTTD +STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Versió incompatible amb aquesta versió de l'OpenTTD. # NewGRF save preset window STR_SAVE_PRESET_CAPTION :{WHITE}Guardar configuració NewGRF @@ -2917,7 +2917,7 @@ STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de dispo # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta! -STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Esteu a punt de fer canvis en una partida activa. Això pot fer que l'OpenTTD falli. No envieu cap informe d'error sobre això.{}Esteu completament segur que voleu fer-los? +STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Esteu a punt de fer canvis en una partida activa que poden fer que l'OpenTTD falli. No envieu cap informe d'error produït després d'efectuar aquests canvis crítics.{}Esteu completament segur que voleu fer-los? STR_NEWGRF_DUPLICATE_GRFID :{WHITE}No es pot afegir l'arxiu: ID GRF duplicada STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}No s'ha trobat un arxiu coincident (els GRF compatibles s'han carregat) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 866df1583d..30269f4057 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3295,6 +3295,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere ############ range for requires ends STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando ############ range for produces starts @@ -3312,7 +3313,7 @@ STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - Click en tren para información -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en vehículo para información +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en el vehículo para información STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Barcos - Click en barco para información STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Aeronave - Click en la aeronave para información @@ -3400,6 +3401,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todos los tipos STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}F.T máxima: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de los vehículos de ferrocarril. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de carretera. Click en el vehículo para más información. Ctrl+Click para mostrar/ocultar el tipo del vehículo @@ -3458,8 +3460,8 @@ STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} ve STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - arrastrar vehículo con Click izquierdo para añadir/retirar del tren, Click derecho para mostrar información. Mantén pulsado Ctrl para usar estos comandos con el resto del tren -STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehículos de carretera - Click derecho en vehículo para información -STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos - Click derecho en barco para información +STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vehículos de carretera - Click derecho en el vehículo para información +STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Barcos - Click derecho en el barco para información STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Aeronave - Click derecho en la aeronave para información STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Arrastrar aquí el vehículo de raíl para venderlo From cb9ffe1bd9211dea40ba3d798c7bf1c61472d017 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 11 Apr 2017 18:39:27 +0100 Subject: [PATCH 140/158] Move std::string str_validate to separate header This is to fix compilation of squirrel on MacOS/clang, as squirrel defines macros which clash with including --- source.list | 1 + src/saveload/saveload.cpp | 1 + src/string_func.h | 8 -------- src/string_func_extra.h | 23 +++++++++++++++++++++++ 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 src/string_func_extra.h diff --git a/source.list b/source.list index 26a7a0aa24..0fa314996c 100644 --- a/source.list +++ b/source.list @@ -344,6 +344,7 @@ story_type.h strgen/strgen.h string_base.h string_func.h +string_func_extra.h string_type.h stringfilter_type.h strings_func.h diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index a94bbf785f..a6472f4fc3 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -41,6 +41,7 @@ #include "../fileio_func.h" #include "../gamelog.h" #include "../string_func.h" +#include "../string_func_extra.h" #include "../fios.h" #include "../error.h" diff --git a/src/string_func.h b/src/string_func.h index 70214ff8d1..f5dd289499 100644 --- a/src/string_func.h +++ b/src/string_func.h @@ -27,7 +27,6 @@ #define STRING_FUNC_H #include -#include #include "core/bitmath_func.hpp" #include "string_type.h" @@ -56,13 +55,6 @@ static inline void str_validate(char *str, const char *last, StringValidationSet *str_validate_intl(str, last, settings) = '\0'; } -static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) -{ - if (str.empty()) return; - char *buf = const_cast(str.c_str()); - str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); -} - void ValidateString(const char *str); void str_fix_scc_encoded(char *str, const char *last); diff --git a/src/string_func_extra.h b/src/string_func_extra.h new file mode 100644 index 0000000000..9c320f3ea2 --- /dev/null +++ b/src/string_func_extra.h @@ -0,0 +1,23 @@ +/* $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 . + */ + +#ifndef STRING_FUNC_EXTRA_H +#define STRING_FUNC_EXTRA_H + +#include "string_func.h" +#include + +static inline void str_validate(std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) +{ + if (str.empty()) return; + char *buf = const_cast(str.c_str()); + str.resize(str_validate_intl(buf, buf + str.size(), settings) - buf); +} + +#endif /* STRING_FUNC_EXTRA_H */ From 3e772b0732ecb1ed61cf352f2a323bb06fc13134 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 11 Apr 2017 17:45:36 +0000 Subject: [PATCH 141/158] (svn r27853) -Update from Eints: spanish: 1 change by juanjo --- src/lang/spanish.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 30269f4057..3007b677b4 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3310,7 +3310,7 @@ STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Cambiar STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Trenes STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} Vehículos de Carretera STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} Barcos -STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave +STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} Aeronave{P "" s} STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Trenes - Click en tren para información STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vehículos de carretera - Click en el vehículo para información From 747a95092047b57ef405dfa0d0ba7cc68214e0f3 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 12 Apr 2017 17:45:37 +0000 Subject: [PATCH 142/158] (svn r27854) -Update from Eints: spanish: 30 changes by SilverSurferZzZ czech: 18 changes by djst --- src/lang/czech.txt | 18 ++++++++++++++ src/lang/spanish.txt | 59 ++++++++++++++++++++++---------------------- 2 files changed, 48 insertions(+), 29 deletions(-) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 329645f0f0..09c523bc38 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1459,6 +1459,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Zavírat okno kliknutím pravým tlačítkem myši: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Zavírat okno kliknutím pravým tlačítkem na něj. Znemožňuje využívat nápovědu zobrazující se při stisknutí pravého tlačítka myši! STR_CONFIG_SETTING_AUTOSAVE :Automaticky ukládat: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Zvol frekvenci automatického ukládání @@ -3387,6 +3389,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vyžaduj STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vyžaduje +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ček{P á ají á} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING} @@ -3455,6 +3462,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Odstranit všec STR_GROUP_RENAME_CAPTION :{BLACK}Přejmenovat skupinu +STR_GROUP_PROFIT_THIS_YEAR :Letošní zisk: +STR_GROUP_PROFIT_LAST_YEAR :Loňský zisk: +STR_GROUP_OCCUPANCY :Současné využití: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nové lokomotivy a vagony @@ -3487,6 +3498,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Všechny druhy STR_PURCHASE_INFO_ALL_BUT :Všechny kromě {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. tažná síla: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Dosah: {GOLD}{COMMA} polí +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Typ letadla: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Seznam vlaků - pro informace klikni na vlak. Ctrl+kliknutí způsobí přepínání skrytí typů lokomotiv a vagónů. STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Seznam silničních vozidel - klikni na vozidlo pro informace. Ctrl+kliknutí způsobí přepínání skrytí typu silničního vozidla. @@ -3624,6 +3636,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Magl STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING}{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING} Dosah: {COMMA} políč{P ko ka ek}{}Kapacita: {CARGO_LONG}, {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Typ letadla: {STRING} Dosah: {COMMA} políč{P ko ka ek}{}Kapacita: {CARGO_LONG}{}Provozní náklady: {CURRENCY_LONG}/rok # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING} @@ -3746,6 +3762,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} {P rok STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} {P rok roky let} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Typ letadla: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Typ letadla: {LTBLUE}{STRING} {BLACK}Dosah: {LTBLUE}{COMMA} políč{P ko ka ek} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Hmotnost: {LTBLUE}{WEIGHT_SHORT} {BLACK}Výkon: {LTBLUE}{POWER}{BLACK} Max. rychlost: {LTBLUE}{VELOCITY} {BLACK}Max. tažná síla: {LTBLUE}{FORCE} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3007b677b4..1b907928f9 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2377,10 +2377,10 @@ STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Elige pu STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Selección de puente - Click en el puente elegido para construirlo STR_SELECT_BRIDGE_INFO :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},{} {VELOCITY} -STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspensión, Acero +STR_BRIDGE_NAME_SUSPENSION_STEEL :Colgante, Acero STR_BRIDGE_NAME_GIRDER_STEEL :Tirantes, Acero -STR_BRIDGE_NAME_CANTILEVER_STEEL :Colgante, Acero -STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Suspensión, Hormigón +STR_BRIDGE_NAME_CANTILEVER_STEEL :Cantiléver, Acero +STR_BRIDGE_NAME_SUSPENSION_CONCRETE :Colgante, Hormigón STR_BRIDGE_NAME_WOODEN :Madera STR_BRIDGE_NAME_CONCRETE :Hormigón STR_BRIDGE_NAME_TUBULAR_STEEL :Tubular, Acero @@ -2615,10 +2615,10 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con señales de bloque y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con señales de bloque y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de ferrocarril con señales de bloque y de ruta de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y señales de salida +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Ferrocarril con señales de entrada y de salida STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de ferrocarril con señales de entrada y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de ferrocarril con señales de entrada y de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y señales de ruta de un solo sentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Ferrocarril con señales de entrada y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con señales de salida y combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con señales de salida y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferrocarril con señales de salida y de ruta de un solo sentido @@ -2664,7 +2664,7 @@ STR_LAI_TUNNEL_DESCRIPTION_ROAD :Túnel de carre STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_STEEL :Puente de ferrocarril de acero suspendido STR_LAI_BRIDGE_DESCRIPTION_RAIL_GIRDER_STEEL :Puente de ferrocarril de acero con tirantes -STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Puente de ferrocarril colgante de acero +STR_LAI_BRIDGE_DESCRIPTION_RAIL_CANTILEVER_STEEL :Puente de ferrocarril cantiléver de acero STR_LAI_BRIDGE_DESCRIPTION_RAIL_SUSPENSION_CONCRETE :Puente de ferrocarril de hormigón suspendido reforzado STR_LAI_BRIDGE_DESCRIPTION_RAIL_WOODEN :Puente de ferrocarril de madera STR_LAI_BRIDGE_DESCRIPTION_RAIL_CONCRETE :Puente de ferrocarril de hormigón @@ -2672,7 +2672,7 @@ STR_LAI_BRIDGE_DESCRIPTION_RAIL_TUBULAR_STEEL :Puente de ferro STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_STEEL :Puente de carretera de acero suspendido STR_LAI_BRIDGE_DESCRIPTION_ROAD_GIRDER_STEEL :Puente de carretera de acero con tirantes -STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Puente de carretera colgante de acero +STR_LAI_BRIDGE_DESCRIPTION_ROAD_CANTILEVER_STEEL :Puente de carretera cantiléver de acero STR_LAI_BRIDGE_DESCRIPTION_ROAD_SUSPENSION_CONCRETE :Puente de carretera de hormigón suspendido reforzado STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Puente de carretera de madera STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Puente de carretera de hormigón @@ -3231,7 +3231,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Ninguna STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Construir Sede -STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir sede de la empresa +STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Construir la sede de la empresa STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Ver Sede STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Ver sede de la empresa STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Reubicar Sede @@ -3658,6 +3658,7 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} @@ -4154,13 +4155,13 @@ STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}No se pu STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}No se puede cambiar nombre del presidente... STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... máxima cantidad de préstamo permitida es {CURRENCY_LONG} -STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}No se incrementar el préstamo... +STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}No se puede incrementar el préstamo... STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... no hay préstamo que pagar STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} requerido STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}No es posible pagar préstamo... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}No se puede dar dinero que ha sido prestado de un banco... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se puede comprar la empresa... -STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No se puede construir la sede de la empresa... +STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No puede construirse la sede de la empresa... STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones... STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones... STR_ERROR_PROTECTED :{WHITE}Esta empresa es demasiado reciente como para comerciar con acciones... @@ -4182,33 +4183,33 @@ STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no e # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... demasiadas industrias STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}No se pueden crear industrias... -STR_ERROR_CAN_T_BUILD_HERE :{WHITE}No se puede construir {STRING} aquí... +STR_ERROR_CAN_T_BUILD_HERE :{WHITE}No puede construirse {STRING} aquí... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}No se puede construir este tipo de industria aquí... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... demasiado cerca de otra industria STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... debe construirse un municipio primero STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... solo se permite uno por municipio -STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... sólo puede ser construido en municipios de al menos 1.200 habitantes -STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... sólo se puede construir en áreas de selva -STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... sólo se puede construir en áreas desérticas -STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... solo puede ser construido en municipios (reemplazando casas) -STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solamente puede construirse cerca del centro de un municipio +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... solo puede construirse en municipios de al menos 1.200 habitantes +STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... solo puede construirse en zonas selváticas +STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... solo puede construirse en zonas desérticas +STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... solo puede construirse en municipios (reemplazando casas) +STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... solo puede construirse cerca del centro de un municipio STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... solo puede construirse en zonas bajas -STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... sólo se puede colocar cerca de los bordes del mapa -STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... sólo se puede plantar bosques sobre la nieve -STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solamente puede construirse por encima de la línea de nieve -STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solamente puede construirse por debajo de la línea de nieve +STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... solo puede colocarse cerca de los bordes del mapa +STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... solo se pueden plantar bosques sobre la nieve +STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo puede construirse por encima de la línea de nieve +STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo puede construirse por debajo de la línea de nieve STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No había sitios apropiados disponibles para industrias '{STRING}' STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia los parámetros de generación del mapa para obtener un mapa mejor # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}No se puede construir estación de tren aquí... -STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}No se puede construir estación de autobuses... +STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}No puede construirse una estación de autobuses... STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}No se puede construir estación de camiones... STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}No se puede construir estación de tranvía de pasajeros... -STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puede construir estación de tranvía de carga... -STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No se pueden construir muelles aquí... -STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No se puede construir aeropuerto aquí... +STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}No puede construirse una estación de tranvía de carga... +STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}No pueden construirse muelles aquí... +STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}No puede construirse un aeropuerto aquí... STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Adjunta más de una estación/zona de carga existente STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... estación demasiado extendida @@ -4315,8 +4316,8 @@ STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no h STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hay tranvía # Waterway construction errors -STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No se pueden construir canales aquí... -STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No se pueden construir dársenas aquí... +STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No pueden construirse canales aquí... +STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}No pueden construirse dársenas aquí... STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}No se pueden situar ríos aquí... STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... debe construirse sobre el agua STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... no se puede construir sobre el agua @@ -4324,7 +4325,7 @@ STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... no s STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... no se puede construir en un canal STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... no se puede construir en un río STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Debes demoler el canal primero -STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No se puede construir un acueducto aquí +STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}No puede construirse un acueducto aquí # Tree related errors STR_ERROR_TREE_ALREADY_HERE :{WHITE}... ya hay árboles aquí @@ -4332,7 +4333,7 @@ STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... terr STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}No se pueden plantar árboles aquí... # Bridge related errors -STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}No se puede construir puente aquí... +STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}No puede construirse un puente aquí... STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Primero debe demolerse el puente STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}No se puede comenzar y acabar en la misma posición STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Las cabeceras del puente no están al mismo nivel @@ -4356,7 +4357,7 @@ STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... tún STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... demasiados objetos STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}No se puede construir objeto... STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Objeto en medio -STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... sede de empresa está en medio +STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... la sede de la empresa está en medio STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}No es posible comprar este terreno... STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ¡ya es de su propiedad! From 0f89d95459ecdade20184d431065de16f6d7105b Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 16 Apr 2017 17:45:36 +0000 Subject: [PATCH 143/158] (svn r27855) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1b907928f9..9c602ed6f0 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3533,9 +3533,10 @@ STR_ENGINE_PREVIEW_SHIP :{G=m}barco STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}locomotora de monorraíl STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora maglev -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} -STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} +STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} From 1327365d5739d35ee9c7c357e4396917f064c42c Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 20 Apr 2017 17:45:39 +0000 Subject: [PATCH 144/158] (svn r27856) -Update from Eints: galician: 78 changes by permudo --- src/lang/galician.txt | 78 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 303c2c3da5..8d2d1caf52 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -845,6 +845,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE 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 +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} ten nas súas ordes un aeroporto con unha pista moi corta 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 @@ -985,6 +986,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecion STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobre tamaño +STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaño do cadro STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conxunto básico de gráficos STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona o conxunto de gráficos básico a empregar @@ -1101,6 +1103,8 @@ STR_CONFIG_SETTING_TYPE_GAME_INGAME :Configuración STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categoría: +STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tipo: STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Restrinxe a seguinte lista amosando só os valores alterados STR_CONFIG_SETTING_RESTRICT_BASIC :Configuración básica STR_CONFIG_SETTING_RESTRICT_ADVANCED :Configuración avanzada @@ -1115,6 +1119,8 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Configuración STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Configuración da partida (almacénase nas partidas gravadas; afecta só á partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Amosa todos os resultados da procura por opción{}{SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración +STR_CONFIG_SETTINGS_NONE :{WHITE}- Ningún - STR_CONFIG_SETTING_OFF :Off STR_CONFIG_SETTING_ON :On @@ -1281,12 +1287,20 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Amosa a poboaci STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosor das liñas dos gráficos: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Ancho de liña nos gráficos. Unha liña fina lese con máis precisión, unha liña grosa é máis doada de ver e as cores son máis fáciles de distinguir +STR_CONFIG_SETTING_LANDSCAPE :Paisaxe: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :As paisaxes definen escenarios de xogo con diferentes requirimentos de mercadorías e de crecemento da poboación. Ainda que os scripts de xogo e os NewGRF permiten máis control STR_CONFIG_SETTING_LAND_GENERATOR :Xerador de terreo: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :O xerador orixinal depende do conxunto base de gráficos, e compón formas fixas de paisaxe. TerraGenesis é un xerador baseado no Ruido Perlin con maiores opcións de control STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Orixinal STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis +STR_CONFIG_SETTING_TERRAIN_TYPE :Tipo de terreo: {STRING} +STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis só) Cantidade de outeiros na paisaxe +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densidade industrial: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Establece cantas industrias deben xerarse e que nivel se debe manter durante o xogo STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distancia máxima das refinarías ao borde do mundo: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :As refinarías de petróleo só se constrúen preto do borde do mapa, isto é na costa para mapas de illas STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Cota de neve: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a que altitude comeza a nevar en paisaxes subárticas. A neve afecta tamén á xeración industrial e aos requirimentos de crecemento dos pobos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Desigualdade do terreo (só TerraGenesis) : {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(só TerraGenesis) Escolle a frequencia de montes: Suaviza as paisaxes tendo menos montes e máis espallados. Paisaxes escarpadas teñen moitos outos, que poderían semellar repetitivos STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Moi suave @@ -1357,6 +1371,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Apagado STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Desprazamento con click esquerdo: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Habilitar o desprazamento do mapa arrastrándoo co botón esquerdo do rato. Isto é especialmente útil se se emprega unha pantalla táctil para desprazarse +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Pechar a fiestra con click dereito: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Pecha a fiestra facendo botón dereito dentro de ela. Deshabilita a axuda contextual facendo click-dereito! STR_CONFIG_SETTING_AUTOSAVE :Autogravado: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona o intervalo entre gravados automáticos das partidas @@ -1589,9 +1605,21 @@ 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_LINKGRAPH_INTERVAL :Actualiza o gráfico de distribución cada {STRING}{NBSP}day{P 0:2 "" s} +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :Tempo entre recálculos subseguintes do gráfico de ligazóns. Cada recálculo calcula os plans para unha compoñente do gráfico. Isto non significa que un valor de X para esta opción supoña que o gráfico completo será actualizado cada X días. Só algunhas compoñentes o serán. Canto máis curto sexa, máis tempo de CPU será necesario para calculalo. Canto máis longo sexa, máis tempo levará ata que a distribución das mercadorías comeza para rutas novas. +STR_CONFIG_SETTING_LINKGRAPH_TIME :Leva {STRING}{NBSP}día{P 0:2 "" s} recalcular o gráfico de distribución +STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT :Tempo empregado para cada recálculo dunha compoñente do gráfico de ligazóns. Cando comeza un recálculo, creáse un fío que funciona por este número de días. Canto máis pequeno sexa este, é máis probable que o fío non remate cando se supón. Nese intre o xogo para para compensar este retardo. Canto máis longo sexa, máis tempo leva actualizar a distribución cando cambian as rutas. STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimétrica STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simétrica +STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modo de distribución para pasaxeiros: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"simétrico" singinfica que máis ou menos o mesmo número de pasaxeiros irán dende a estación A cada a estación B e tamén da B cara a A. "asimétrico" significa que calquera número de pasaxeiros pode ir en calquera dirección. "manual" significa que non haberá distribución automática para os pasaxeiros. +STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modo de distribución para correo: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simétrico" significa que máis ou menos a mesma cantidade de correo vai ser enviada da estación A cara a estación B como da estación B cara a A. "asimétrico" signigica que calquera cantidade de correo pode ser enviado en calquera dirección. "manual" significa que non hai distribución automática para o correo. +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modo de disitribución para o tipo de mercadoría BLINDADO: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :A calse de mercadoría BLINDADA contén obxectos de valor nos clima morno, diamantes no subtropical ou ouro no clima subártico. Os NewGRFs poden cambiar isto. "simétrico" significa que máis ou menos a mesma cantidade de esta mercadoría será enviadas dende a estación A cara a estación B así como da estación B para a A. "asimétrico" significa que calquera cantidade de esta mercadoría pode ser enviada en calquera dirección. "manual" significa que non haberá distribución automática para esta mercadoría. Recoméndase elixir asimétrico ou manual cando se xoguen mapas subárticos, xa que os bancos non van enviar ouro de volta ás minas. Para climas mornos e subtropicais podes escoller tamén simétrico xa que os bancos retornan valores aos bancos de orixe dalgunha carga de valores. +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Xeito de distribución para outros tipos de mercadoría: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asimétrico" significa que calquera cantidade de mercadorías pode ser enviada en calquera dirección. "manual" significa que non haberá distribución automática para estas mercadorías. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Precisión da distribución: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Canto máis alto sexa o valor, máis tempo de CPU levará o cálculo de distribución. Se leva demasiado tempo podes experimentar retraso. Se sen embargo o fixas nun valor baixo, a distribución será imprecisa, e pode que a carga non sexa enviada aos destinos que ti queres. STR_CONFIG_SETTING_DEMAND_DISTANCE :Efecto da distancia na demanda: {STRING} @@ -1638,11 +1666,23 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Métrico (m) STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localización +STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Gráficos STR_CONFIG_SETTING_SOUND :{ORANGE}Efectos de son STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interface +STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Xeral +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Fiestras de visualización STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construción +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Novas / Conselleiros +STR_CONFIG_SETTING_COMPANY :{ORANGE}Compañía +STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilidade STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehículos +STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Física STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Encamiñamento +STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitacións +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Desastres / Accidentes +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Xeración do mundo +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Contorno +STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoridades STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Cidades STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrias STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribución da carga @@ -1722,6 +1762,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Buscar c STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Motra-la configuración dos scripts de IA STR_INTRO_TOOLTIP_QUIT :{BLACK}Saír de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}A base gráfica seleccionada actualmente está perdendo {NUM} sprite{P "" s}. Por favor comproba se hai actualizacións para o conxunto base. STR_INTRO_TRANSLATION :{BLACK}A ista tradución fáltanlle {NUM} string{P "" s}. Por favor, axúdanos a mellorar OpenTTD rexistrándote coma tradutor. Bótalle un ollo ao readme.txt para máis detalles. # Quit window @@ -2046,6 +2087,7 @@ STR_NETWORK_CLIENT :Cliente STR_NETWORK_SPECTATORS :Espectadores STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}Introduce a cantidade de cartos que queres dar +STR_NETWORK_TOOLBAR_LIST_SPECTATOR :{BLACK}Espectador # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}Non grava-lo contrasinal introducido @@ -2549,7 +2591,9 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome do STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceptada: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de vía: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidade da vía: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidade da estrada: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Cons @@ -2665,6 +2709,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Gravar STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Salva-la partida actual, usando o nome seleccionado STR_SAVELOAD_LOAD_BUTTON :{BLACK}Cargar STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Carga-la partida seleccionada +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Carga o mapa de alturas seleccionado STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalles da partida STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Non hai información dispoñíbel STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2833,6 +2878,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir ao sprite anterior, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar ao inicio STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación do sprite seleccionado. A aliñación ignórase ao debuxar este sprite STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y +STR_SPRITE_ALIGNER_RESET_BUTTON :Reinicio relativo +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restablecer a compensación actual +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Absoluta) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Relativa) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Seleccionar sprite STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Seleccionar un sprite en calquera parte da pantalla @@ -2887,6 +2936,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Faltan arq STR_NEWGRF_BROKEN :{WHITE}O comportamento do NewGRF '{0:STRING}' pode causar desincronizacións e/ou colgues STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambiou o estado 'vagón con potencia' para '{1:ENGINE}' fóra dun depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Cambiou a lonxitude do vehículo a '{1:ENGINE}' cando non está nun depósito +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambiou a capacidade do vehículo en '{1:ENGINE}' cando non está nun depósito ou modificándose STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Esto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse STR_NEWGRF_BUGGY :{WHITE}O NewGRF '{0:STRING}' proporciona información incorrecta. @@ -2902,6 +2952,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}Escaneando NewGRFs @@ -3032,13 +3083,16 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Pincha no servizo para centrar a vista na industria/cidade. CTRL+Click abre unha nova fiestra na localización da industria/cidade # Story book window +STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Historial STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Historial global STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :Páxina {NUM} +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Vai a unha páxina específica seleccionandoa nesta lista despregable. STR_STORY_BOOK_PREV_PAGE :{BLACK}Anterior STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ir á páxina anterior STR_STORY_BOOK_NEXT_PAGE :{BLACK}Seguinte STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ir á páxina seguinte +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Referencia inválida de obxectivo # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nomes das estacións - pincha nun nome para centrar a vista na estación. CTRL+Click abre unha nova fiestra na localización da estación @@ -3241,6 +3295,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}agardando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} @@ -3301,12 +3357,18 @@ 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_QUERY_GROUP_DELETE_CAPTION :{WHITE}Borrar Grupo +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Seguro que queres borrar este grupo e calquera descendente? STR_GROUP_ADD_SHARED_VEHICLE :Engadir vehículos compartidos STR_GROUP_REMOVE_ALL_VEHICLES :Borrar tódolos vehículos STR_GROUP_RENAME_CAPTION :{BLACK}Renomear un grupo +STR_GROUP_PROFIT_THIS_YEAR :Beneficio este ano: +STR_GROUP_PROFIT_LAST_YEAR :Beneficio do último ano: +STR_GROUP_OCCUPANCY :Uso actual: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos vehículos ferroviarios @@ -3339,6 +3401,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Tódolos tipos STR_PURCHASE_INFO_ALL_BUT :Todos excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforzo máximo de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Autonomía: {GOLD}{COMMA} cadros +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos ferroviarios - pincha nun vehículo para obter información STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de selección de vehículos de estrada - pincha nun vehículo para obter información @@ -3473,6 +3536,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotora de m STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Custo operativo: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potencia: {POWER} Esforzo tractor máximo: {6:FORCE}{}Custo operativo: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo aeronave: {STRING} Distancia: {COMMA} tiles{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máxima: {VELOCITY}{}Tipo Aeronave: {STRING} Autonomía: {COMMA} tiles{}Capacidade: {CARGO_LONG}{}Custo Operativo: {CURRENCY_LONG}/ano # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING} @@ -3502,6 +3569,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de locomotoras e vagóns STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagóns +STR_REPLACE_ALL_RAILTYPE :Todos os veículos sobre raíl STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecciona o tipo de carril para o que queres substituír as locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra que máquina seleccionada á esquerda vai ser substituída, se é algunha. @@ -3594,6 +3662,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P " STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade máxima: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} cadros STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidade máxima: {LTBLUE}{VELOCITY} {BLACK}T.E. máx.: {LTBLUE}{FORCE} @@ -3838,6 +3908,9 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaxar (sen hor STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Viaxar polo menos a {2:VELOCITY} (sen horarios) STR_TIMETABLE_TRAVEL_FOR :Viaxar durante {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Viaxar por {STRING} polo menos a {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viaxe (para {STRING}, non calendarizada) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viaxe (para {STRING}, non calendarizado) con como máximo {VELOCITY} +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viaxe para {STRING}, sen calendarizar) STR_TIMETABLE_STAY_FOR :e parar durante {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaxar durante {STRING} STR_TIMETABLE_DAYS :{COMMA} día{P "" s} @@ -3967,6 +4040,8 @@ STR_AI_SETTINGS_START_DELAY :Número de día STR_TEXTFILE_README_CAPTION :{WHITE} "readme" de {STRING} {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}Rexistro de cambios de {STRING} {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE} licenza de {STRING}{STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Axustar texto +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Axusta o texto á fiestra de xeito que encaixa sen ter que facer scroll STR_TEXTFILE_VIEW_README :{BLACK}Ver "readme" STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Rexistro de cambios STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licenza @@ -4294,6 +4369,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... xa STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Non se pode crear o grupo... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Non se pode eliminar este grupo... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Non se pode renomear o grupo... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Non se pode establecer o grupo superior... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Non se pode borrar tódolos vehículos deste grupo... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Non se pode engadir o vehículo a este grupo... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Non se poden engadir vehículos compartidos ó grupo... @@ -4349,6 +4425,8 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Non se p STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... o vehículo está destruído +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá veículos dispoñibles +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambia a túa configuración NewGRF STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Aínda non hai vehículos dispoñíbeis STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comezar unha partida nova a partires de {DATE_SHORT} ou empregar un NewGRF que proporcione vehículos antigos From 24406b44c342a0383ce0946e6044b18d3f2bb3f7 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 21 Apr 2017 17:45:36 +0000 Subject: [PATCH 145/158] (svn r27857) -Update from Eints: galician: 27 changes by permudo --- src/lang/galician.txt | 48 ++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 8d2d1caf52..42cb7ee199 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1119,7 +1119,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Configuración STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Configuración da partida (almacénase nas partidas gravadas; afecta só á partida actual) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Configuración da compañía (almacénase nas partidas gravadas; afecta só ás novas partidas) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Configuración da compañía (almacénase nas partidas gravadas; afecta só á partida actual) +STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Amosa todos os resultados da procura por configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Amosa todos os resultados da procura por opción{}{SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Amosa todos os resultados de procura por configuración{}{SILVER}Categoría {BLACK}a {WHITE}{STRING} {BLACK}e {SILVER}Tipo {BLACK}a {WHITE}Todos os tipos de configuración STR_CONFIG_SETTINGS_NONE :{WHITE}- Ningún - STR_CONFIG_SETTING_OFF :Off @@ -2604,29 +2606,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Leiras STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Terra cuberta de neve STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto -STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de Ferrocarril -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de Ferrocarril con sinais de bloqueo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de Ferrocarril con sinais avanzados +STR_LAI_RAIL_DESCRIPTION_TRACK :Vía de ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vía de ferrocarril con sinais de bloqueo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vía de ferrocarril con sinais avanzados STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vía de Ferrocarril con sinais de saída STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vía de Ferrocarril con sinais combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de Ferrocarril con sinais de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con sinais de bloqueo e avanzados -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de Ferrocarril con sinais de bloqueo e saída -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de Ferrocarril con sinais de bloqueo e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vía de ferrocarril con sinais de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vía de ferrocarril con sinais de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vía de Ferrocarril con sinais de bloqueo e pre-sinais +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vía de ferrocarril con sinais de bloqueo e saída +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vía de ferrocarril con sinais de bloqueo e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vía de ferrocarril con sinais de bloqueo e de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de bloqueo e de ruta monosentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vía de Ferrocarril con sinais avanzados e de saída STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vía de Ferrocarril con sinais avanzados e combo STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de Ferrocarril con sinais avanzados e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de Ferrocarril con sinais de saída e combo -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vía de ferrocarril con sinais avanzados e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vía de ferrocarril con sinais de saída e combo +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vía de ferrocarril con sinais de saída e de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de saída e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de Ferrocarril con sinais combo e de ruta -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de Ferrocarril con sinais combo e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de Ferrocarril con sinais de ruta e de ruta monosentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario Ferrocarril +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con sinais combo e de ruta +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con sinais combo e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con sinais de ruta e de ruta monosentido +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito ferroviario de ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Estrada STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Estrada con iluminación @@ -2877,7 +2879,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ir ao sp STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir ao sprite anterior, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar ao inicio STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación do sprite seleccionado. A aliñación ignórase ao debuxar este sprite -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y. Ctrl+Click para movelo sprite oito unidades de golpe. STR_SPRITE_ALIGNER_RESET_BUTTON :Reinicio relativo STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restablecer a compensación actual STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Compensación eixo X: {NUM}, Compensación eixo Y: {NUM} (Absoluta) @@ -2937,7 +2939,7 @@ STR_NEWGRF_BROKEN :{WHITE}O compor STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambiou o estado 'vagón con potencia' para '{1:ENGINE}' fóra dun depósito STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Cambiou a lonxitude do vehículo a '{1:ENGINE}' cando non está nun depósito STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambiou a capacidade do vehículo en '{1:ENGINE}' cando non está nun depósito ou modificándose -STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Esto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse +STR_BROKEN_VEHICLE_LENGTH :{WHITE}O tren '{VEHICLE}' pertencente a '{COMPANY}' ten unha lonxitude inválida. Isto está causado probabelmente por problemas con NewGRFs. O xogo pode desincronizarse ou colgarse STR_NEWGRF_BUGGY :{WHITE}O NewGRF '{0:STRING}' proporciona información incorrecta. STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Información de carga/reforma para '{1:ENGINE}' difiire da lista de compra despois da construción. Isto pode causar que a renovación/reemprazo automáticos non reformen correctamente @@ -3295,7 +3297,10 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Require +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}agardando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts @@ -3569,7 +3574,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Presiona STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambia entre as fiestras de substitución de locomotoras e vagóns STR_REPLACE_ENGINES :Locomotoras STR_REPLACE_WAGONS :Vagóns -STR_REPLACE_ALL_RAILTYPE :Todos os veículos sobre raíl +STR_REPLACE_ALL_RAILTYPE :Todos os vehículos sobre raíl STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecciona o tipo de carril para o que queres substituír as locomotoras STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra que máquina seleccionada á esquerda vai ser substituída, se é algunha. @@ -3910,6 +3915,7 @@ STR_TIMETABLE_TRAVEL_FOR :Viaxar durante STR_TIMETABLE_TRAVEL_FOR_SPEED :Viaxar por {STRING} polo menos a {VELOCITY} STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viaxe (para {STRING}, non calendarizada) STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viaxe (para {STRING}, non calendarizado) con como máximo {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(permanece por {STRING}, non calendarizado) STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viaxe para {STRING}, sen calendarizar) STR_TIMETABLE_STAY_FOR :e parar durante {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :e viaxar durante {STRING} @@ -3996,7 +4002,7 @@ STR_AI_CONFIG_RANDOM_AI :IA aleatoria STR_AI_CONFIG_NONE :(ningunha) STR_AI_CONFIG_MOVE_UP :{BLACK}Subir -STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Mover a IA seleccionada hacia arriba na lista +STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}Mover a IA seleccionada cara arriba na lista STR_AI_CONFIG_MOVE_DOWN :{BLACK}Baixar STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Mover a IA seleccionada hacia abaixo na lista @@ -4425,7 +4431,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Non se p STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... o vehículo está destruído -STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá veículos dispoñibles +STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Non haberá vehículos dispoñibles STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambia a túa configuración NewGRF STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Aínda non hai vehículos dispoñíbeis STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comezar unha partida nova a partires de {DATE_SHORT} ou empregar un NewGRF que proporcione vehículos antigos From e9e44105eb566e2561cfa4a38217173e5f3540bd Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2017 09:19:32 +0000 Subject: [PATCH 146/158] (svn r27858) -Change [FS#6560]: Add missing game script event for ships arriving at a station. (juanjo) --- src/fontcache.cpp | 2 +- src/ship_cmd.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 6bea59c103..9307c2eddd 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -529,7 +529,7 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key) return glyph->sprite; } } - FT_Load_Glyph(this->face, key, FT_LOAD_DEFAULT); + FT_Load_Glyph(this->face, key, FT_LOAD_NO_HINTING); FT_Render_Glyph(this->face->glyph, aa ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO); /* Despite requesting a normal glyph, FreeType may have returned a bitmap */ diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index de1bf4f8c6..771863a24d 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -28,6 +28,7 @@ #include "vehicle_func.h" #include "sound_func.h" #include "ai/ai.hpp" +#include "game/game.hpp" #include "pathfinder/opf/opf_ship.h" #include "engine_base.h" #include "company_base.h" @@ -421,6 +422,7 @@ static void ShipArrivesAt(const Vehicle *v, Station *st) st->index ); AI::NewEvent(v->owner, new ScriptEventStationFirstVehicle(st->index, v->index)); + Game::NewEvent(new ScriptEventStationFirstVehicle(st->index, v->index)); } } From 5932c84011fde68d104cecec167134826418b5fb Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 23 Apr 2017 09:20:53 +0000 Subject: [PATCH 147/158] (svn r27859) -Revert (r27858): Committed too much :( --- src/fontcache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 9307c2eddd..6bea59c103 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -529,7 +529,7 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key) return glyph->sprite; } } - FT_Load_Glyph(this->face, key, FT_LOAD_NO_HINTING); + FT_Load_Glyph(this->face, key, FT_LOAD_DEFAULT); FT_Render_Glyph(this->face->glyph, aa ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO); /* Despite requesting a normal glyph, FreeType may have returned a bitmap */ From 9b4f7a6d4bcaada6518e638a59fda098dff881d1 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 28 Apr 2017 17:45:37 +0000 Subject: [PATCH 148/158] (svn r27860) -Update from Eints: scottish gaelic: 4 changes by GunChleoc --- src/lang/gaelic.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 4501405781..2263022c96 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1566,14 +1566,16 @@ STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Briogadh dùbai STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Aon bhriogadh (le fòcas) STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK :Aon bhriogadh (sa bhad) -STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Emulation a' bhriogaidh dheis: {STRING} -STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Tagh an dòigh sa thèid emulation a dhèanamh airson briogadh le putan deas na luchaige +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU :Riochdachadh a' bhriogaidh dheis: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_HELPTEXT :Tagh an dòigh sa thèid briogadh le putan deas na luchaige a riochdachadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Command+Briogadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+Briogadh STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Dheth STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Sgroladh le briogadh clì: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Cuir an comas gun tèid am mapa a sgroladh le slaodadh le putan clì na luchaige. Tha seo feumail gu h-àraidh nuair a chleachdas tu sgrìn-shuathaidh airson sgroladh +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Dùin an uinneag le briogadh deas: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Dùinidh seo uinneag le briogadh deas ’na broinn. Cuiridh e à comas an gliocas-sgrìn le briogadh deas! STR_CONFIG_SETTING_AUTOSAVE :Fèin-sàbhaladh: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Tagh dè cho tric ’s a thèid geamannan a shàbhaladh gu fèin-obrachail From 49ca5b01924884d5ce43124ffe76d4b7f201a922 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 29 Apr 2017 17:45:37 +0000 Subject: [PATCH 149/158] (svn r27861) -Update from Eints: swedish: 49 changes by Joel_A --- src/lang/swedish.txt | 77 ++++++++++++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 09468962f9..f08d8c0b4d 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1296,8 +1296,8 @@ STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Terrängtyp: {STRING} STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(TerraGenesis endast) Hilliness av landskapet -STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industri densitet: {STRING} -STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Ange hur många industrier ska genereras och vilken nivå bör bibehållas under spelet +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industritäthet: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Ange hur många industrier som ska genereras och vilken nivå som ska bibehållas under spelet STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximalt avstånd mellan oljeraffinaderier och kartans kant: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oljeraffinaderier byggs bara nära kartans kanter, alltså vid kusten om det är en ö-karta STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snölinjeshöjd: {STRING} @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Av STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Scrolla med vänster musknappsklick: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Aktivera skrollning av kartan genom att dra den med den vänstra musknappen. Detta är särskilt användbart för skrollning vid användning av en pekskärm +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Stäng fönster med högerklick: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Stänger fönster när man högerklickar inuti dem. Denna inställning inaktiverar tooltips vid högerklick! STR_CONFIG_SETTING_AUTOSAVE :Autospara: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Välj intervall mellan automatisk sparande @@ -1761,6 +1763,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Kolla ef STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Visa inställningar för datorspelare och spelskript STR_INTRO_TOOLTIP_QUIT :{BLACK}Avsluta 'OpenTTD' +STR_INTRO_BASESET :{BLACK}Det grafikpaket som för närvarande är valt som standard saknar {NUM} sprite{P "" s}. Vänligen kontrollera om det finns en uppdatering till paketet. STR_INTRO_TRANSLATION :{BLACK}Den här översättningen saknar {NUM} sträng{P "" ar}. Hjälp gärna till att förbättra OpenTTD genom att bli översättare. Se readme.txt för mer info. # Quit window @@ -1792,7 +1795,7 @@ STR_CHEATS_TOOLTIP :{BLACK}Checkbox STR_CHEATS_WARNING :{BLACK}Varning! Du är på väg att förråda dina motståndare. Kom ihåg att detta inte kommer glömmas STR_CHEAT_MONEY :{LTBLUE}Öka pengar med {CURRENCY_LONG} STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Spelar som företag:: {ORANGE}{COMMA} -STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magisk Bulldozer (ta bort industrier, oflyttbara objekt etc.): {ORANGE}{STRING} +STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magisk bulldozer (ta bort industrier, oflyttbara objekt etc.): {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnlar kan korsa varandra: {ORANGE}{STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Jetplan kommer inte att störta (frekvent) på små flygplatser: {ORANGE} {STRING} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Ändra maximal karthöjd: {ORANGE}{NUM} @@ -1803,7 +1806,7 @@ STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Sub-tropiskt la STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Leksakslandskap STR_CHEAT_CHANGE_DATE :{LTBLUE}Byt datum: {ORANGE} {DATE_SHORT} STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändra nuvarande år -STR_CHEAT_SETUP_PROD :{LTBLUE}Aktivera modifierande produceringsvärden: {ORANGE}{STRING} +STR_CHEAT_SETUP_PROD :{LTBLUE}Aktivera modifiering av produktionsvärden: {ORANGE}{STRING} # Livery window STR_LIVERY_CAPTION :{WHITE}Nytt färgval @@ -2552,7 +2555,7 @@ STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Grunda # Industry cargoes window STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Industrikedja för {STRING} industrin -STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industrikedja för {STRING} godset +STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}Industrikedja för godset {STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}Producerande industrier STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}Mottagande industrier STR_INDUSTRY_CARGOES_HOUSES :{WHITE}Hus @@ -2589,6 +2592,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Flygplat STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Accepterat gods: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Spårtyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Hastighetsgräns för järnvägsspår: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Hastighetsbegränsning på väg: {LTBLUE}{VELOCITY} @@ -2601,29 +2605,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fält STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snötäckt mark STR_LAI_CLEAR_DESCRIPTION_DESERT :Öken -STR_LAI_RAIL_DESCRIPTION_TRACK :Järnväg järnvägsspår -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Järnväg järnvägsspår med normal signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Järnväg järnvägsspår med försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Järnväg järnvägsspår med utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Järnväg järnvägsspår med kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Järnväg järnvägsspår med avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Järnväg järnvägsspår med normal signal och försignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Järnväg järnvägsspår med normal signal och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnväg järnvägsspår med normal signal och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Järnväg järnvägsspår med normal signal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Järnväg järnvägsspår med normal signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Järnväg järnvägsspår med för- och utfartssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Järnväg järnvägsspår med för- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Järnväg järnvägsspår med försignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Järnväg järnvägsspår med försignal och envägs avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Järnväg järnvägsspår med utfarts- och kombinationssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Järnväg järnvägsspår med utfartssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad signal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Järnväg järnvägsspår med kombinationssignal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Järnväg järnvägsspår med avancerad signal och avancerad envägssignal -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Järnväg järvägsdepå +STR_LAI_RAIL_DESCRIPTION_TRACK :Järnvägsspår +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Järnvägsspår med normal signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Järnvägsspår med försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Järnvägsspår med utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Järnvägsspår med kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Järnvägsspår med avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Järnvägsspår med avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Järnvägsspår med normal signal och försignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Järnvägsspår med normal signal och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Järnvägsspår med normal signal och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Järnvägsspår med normal signal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Järnvägsspår med normal signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Järnvägsspår med för- och utfartssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Järnvägsspår med för- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Järnvägsspår med försignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Järnvägsspår med försignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Järnvägsspår med utfarts- och kombinationssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Järnvägsspår med utfartssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Järnvägsspår med utfartssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Järnvägsspår med kombinationssignal och avancerad signal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Järnvägsspår med kombinationssignal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Järnvägsspår med avancerad signal och avancerad envägssignal +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Järnvägsdepå STR_LAI_ROAD_DESCRIPTION_ROAD :Väg STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Väg med gatubelysning @@ -3292,6 +3296,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kräver: STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kräver +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}väntar +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} @@ -3360,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Ta bort alla fo STR_GROUP_RENAME_CAPTION :{BLACK}Döp om en grupp +STR_GROUP_PROFIT_THIS_YEAR :Vinst i år: +STR_GROUP_PROFIT_LAST_YEAR :Vinst förra året: +STR_GROUP_OCCUPANCY :Nuvarande användning: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nytt tågfordon @@ -3392,6 +3405,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alla typer av l STR_PURCHASE_INFO_ALL_BUT :Allt utom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximal Dragkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Räckvidd: {GOLD}{COMMA} rutor +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flygplanstyp: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista av tågvagnar. Klicka på tågvagn för information. Ctrl+klick visar eller döljer vagnstypen STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vägfordonslista. Klicka på fordon för information. Ctrl+klick visar eller döljer fordonstypen @@ -3526,6 +3540,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastighet: {VELOCITY}{}Flygplanstyp: {STRING} Räckvidd: {COMMA} rutor{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING} @@ -3555,6 +3573,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryck f STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Växla mellan lok- och vagnersättningsfönster STR_REPLACE_ENGINES :Lok STR_REPLACE_WAGONS :Vagnar +STR_REPLACE_ALL_RAILTYPE :Alla järnvägsfordon STR_REPLACE_HELP_RAILTYPE :{BLACK}Välj vilken järnvägstyp du vill byta ut lok för STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Visa vilket fordon det vänstra fordonet byts ut till, om något @@ -3647,6 +3666,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maxhastiget: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Flygplanstyp: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maxhastighet: {LTBLUE}{VELOCITY} {BLACK}Flygplanstyp: {LTBLUE}{STRING} {BLACK}Räckvidd: {LTBLUE}{COMMA} rutor STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vikt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maxhastiget: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE} From 497aca8175910d6b4b200360497a23353e688903 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 5 May 2017 17:45:38 +0000 Subject: [PATCH 150/158] (svn r27868) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 9c602ed6f0..d844c123a8 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2625,7 +2625,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vía de ferroca STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vía de ferrocarril con señales combo y de ruta STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vía de ferrocarril con señales combo y de ruta de un solo sentido STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vía de ferrocarril con señales de dirección y de un solo sentido -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Ferrocarril depósito de tren +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de trenes del ferrocarril STR_LAI_ROAD_DESCRIPTION_ROAD :Carretera STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Carretera con farolas @@ -3536,6 +3536,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window @@ -3660,6 +3661,7 @@ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} a STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} casillas STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE} From 5d804175915591869949a13de05be2d94f74b844 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 8 May 2017 17:45:36 +0000 Subject: [PATCH 151/158] (svn r27869) -Update from Eints: spanish: 2 changes by SilverSurferZzZ hungarian: 6 changes by Brumi --- src/lang/hungarian.txt | 6 ++++++ src/lang/spanish.txt | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index b88e738c4f..fdbc4f2e9b 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1436,6 +1436,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Kikapcsolva STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Bal gombos térképmozgatás: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Bal egérgombbal történő térképmozgatás engedélyezése. Különösen hasznos érintőképernyős mozgatás használata esetén +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Ablakok bezárása jobb gombbal: {STRING} STR_CONFIG_SETTING_AUTOSAVE :Automatikus mentés: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Az automatikus mentések között eltelő idő @@ -2653,6 +2654,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Repülő STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Elfogad: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Vasút típusa: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vasúti pályasebesség: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Közúti sebességkorlátozás: {LTBLUE}{VELOCITY} @@ -3356,6 +3358,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} @@ -3424,6 +3427,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése +STR_GROUP_PROFIT_LAST_YEAR :Tavalyi nyereség: +STR_GROUP_OCCUPANCY :Jelenlegi kihasználtság: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Új vasúti járművek diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index d844c123a8..3b5e38710c 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -3538,6 +3538,8 @@ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: { STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING} From 4b7a30c44ebc45ff00516b1e5d767a160319c75b Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 9 May 2017 17:45:37 +0000 Subject: [PATCH 152/158] (svn r27870) -Update from Eints: hungarian: 38 changes by Brumi --- src/lang/hungarian.txt | 61 ++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index fdbc4f2e9b..b93d68ef0e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1437,6 +1437,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Kikapcsolva STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Bal gombos térképmozgatás: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Bal egérgombbal történő térképmozgatás engedélyezése. Különösen hasznos érintőképernyős mozgatás használata esetén STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Ablakok bezárása jobb gombbal: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :A jobb gombbal való kattintás az ablak területén bezárja az ablakot. Ez a beállítás kikapcsolja a segédletek jobb gombbal való megjelenítését! STR_CONFIG_SETTING_AUTOSAVE :Automatikus mentés: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Az automatikus mentések között eltelő idő @@ -1826,6 +1827,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Új és STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}MI és játékszkript beállítások megjelenítése STR_INTRO_TOOLTIP_QUIT :{BLACK}Kilépés az OpenTTD-ből +STR_INTRO_BASESET :{BLACK}A jelenleg kiválasztott grafikus alapcsomagból {NUM} sprite hiányzik. Frissítsd a grafikus alapcsomagot! STR_INTRO_TRANSLATION :{BLACK}Ebből a fordításból {NUM} sor hiányzik. Segíts Te is jobbá tenni az OpenTTD-t és jelentkezz fordítónak! További részletekért lásd a readme.txt-t. # Quit window @@ -2667,29 +2669,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Szántóföld STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Havas föld STR_LAI_CLEAR_DESCRIPTION_DESERT :Sivatag -STR_LAI_RAIL_DESCRIPTION_TRACK :Vasút vasúti pálya -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vasút vasúti pálya normál jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vasút vasúti pálya előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vasút vasúti pálya kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vasút vasúti pálya kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vasút vasúti pálya irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vasút vasúti pálya egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vasút vasúti pálya normál- és előjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vasút vasúti pálya normál- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vasút vasúti pálya normál- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vasút vasúti pálya normál- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vasút vasúti pálya normál- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vasút vasúti pálya elő- és kijárati jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vasút vasúti pálya elő- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vasút vasúti pálya elő- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vasút vasúti pálya elő- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vasút vasúti pálya kijárati- és kombinált jelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vasút vasúti pálya kijárati- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vasút vasúti pálya kijárati- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vasút vasúti pálya kombinált- és irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vasút vasúti pálya kombinált- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vasút vasúti pálya irány- és egyirányú irányjelzőkkel -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Vasút járműtelep +STR_LAI_RAIL_DESCRIPTION_TRACK :Vasúti pálya +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Vasúti pálya normál jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Vasúti pálya előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Vasúti pálya kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Vasúti pálya kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Vasúti pálya irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Vasúti pálya egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Vasúti pálya normál- és előjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Vasúti pálya normál- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Vasúti pálya normál- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Vasúti pálya normál- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Vasúti pálya normál- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Vasúti pálya elő- és kijárati jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Vasúti pálya elő- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Vasúti pálya elő- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Vasúti pálya elő- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Vasúti pálya kijárati- és kombinált jelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Vasúti pálya kijárati- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Vasúti pálya kijárati- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Vasúti pálya kombinált- és irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Vasúti pálya kombinált- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Vasúti pálya irány- és egyirányú irányjelzőkkel +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Vasúti járműtelep STR_LAI_ROAD_DESCRIPTION_ROAD :Út STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Út közvilágítással @@ -3358,7 +3360,11 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Felhaszn STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhasznál: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Elfogad: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}várakozik +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING} @@ -3427,6 +3433,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű STR_GROUP_RENAME_CAPTION :{BLACK}Csoport átnevezése +STR_GROUP_PROFIT_THIS_YEAR :Idei nyereség: STR_GROUP_PROFIT_LAST_YEAR :Tavalyi nyereség: STR_GROUP_OCCUPANCY :Jelenlegi kihasználtság: STR_GROUP_OCCUPANCY_VALUE :{NUM}% @@ -3462,6 +3469,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Minden rakomán STR_PURCHASE_INFO_ALL_BUT :Mindenre, kivéve {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximális vonóerő: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Hatótávolság: {GOLD}{COMMA} mező +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Típus: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Vasúti jármű kiválasztása - kattints egy járműre az adataihoz. Ctrl+kattintással a járműtípus elrejthető/felfedhető STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Közúti jármű kiválasztása - kattints egy járműre az adataihoz. Ctrl+kattintással a járműtípus elrejthető/felfedhető @@ -3596,6 +3604,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER}{}Üzemeltetés: {CURRENCY_LONG}/év{}Kapacitás: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Ár: {CURRENCY_LONG} Súly: {WEIGHT_SHORT}{}Sebesség: {VELOCITY} Teljesítmény: {POWER} Maximális vonóerő: {6:FORCE}{}Üzemeltetés: {4:CURRENCY_LONG}/év{}Kapacitás: {5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING}{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}, {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Sebesség: {VELOCITY}{}Típus: {STRING} Hatótávolság: {COMMA} mező{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING} @@ -3625,6 +3637,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Nyomd me STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Váltás a mozdony és a vagoncserélő ablak között STR_REPLACE_ENGINES :Mozdonyok STR_REPLACE_WAGONS :Vagonok +STR_REPLACE_ALL_RAILTYPE :Minden vasúti jármű STR_REPLACE_HELP_RAILTYPE :{BLACK}Cserélendő egységek vasúttípusának kiválasztása STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Megmutatja, hogy melyik bal oldali egységet akarod kicserélni @@ -3717,6 +3730,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} év ({C STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} év ({COMMA}) STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Végsebesség: {LTBLUE}{VELOCITY} +STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Sebesség: {LTBLUE}{VELOCITY} {BLACK}Típus: {LTBLUE}{STRING} +STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Sebesség: {LTBLUE}{VELOCITY} {BLACK}Típus: {LTBLUE}{STRING} {BLACK}Hatótávolság: {LTBLUE}{COMMA} mező STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Súly: {LTBLUE}{WEIGHT_SHORT} {BLACK}Teljesítmény: {LTBLUE}{POWER}{BLACK} Végsebesség: {LTBLUE}{VELOCITY} {BLACK}Vonóerő: {LTBLUE}{FORCE} From 092ede70fde838ea61b23eed1e4e3e00803890a5 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 11 May 2017 17:45:37 +0000 Subject: [PATCH 153/158] (svn r27871) -Update from Eints: korean: 2 changes by telk5093 spanish: 2 changes by SilverSurferZzZ german: 6 changes by mini1025 --- src/lang/german.txt | 8 ++++++-- src/lang/korean.txt | 4 ++-- src/lang/spanish.txt | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lang/german.txt b/src/lang/german.txt index 037b5096b1..f0cc17660d 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -3372,6 +3372,7 @@ STR_GROUP_RENAME_CAPTION :{BLACK}Gruppe u STR_GROUP_PROFIT_THIS_YEAR :Gewinn in diesem Jahr: STR_GROUP_PROFIT_LAST_YEAR :Gewinn im letzten Jahr: +STR_GROUP_OCCUPANCY :Aktuelle Nutzung: STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window @@ -3380,7 +3381,7 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Neue elektrisch STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Neue Einschienenbahnfahrzeuge STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Neue Magnetbahnfahrzeuge -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Eisenbahnfahrzeuge +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Schienenfahrzeuge STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Neue Fahrzeuge STR_BUY_VEHICLE_SHIP_CAPTION :Neue Schiffe STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neue Flugzeuge @@ -3405,6 +3406,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle Frachtarte STR_PURCHASE_INFO_ALL_BUT :Alles außer {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zugkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Reichweite: {GOLD}{COMMA} Felder +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Flugzeugtyp: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Schienenfahrzeugsliste - Einzelheiten durch Anklicken des Fahrzeuges. Strg+Klick schaltet um zwischen Verstecken und Zeigen des Fahrzeugtyps STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Straßenfahrzeugsliste - Klicke auf ein Fahrzeug für Einzelheiten. Strg+Klick schaltet um zwischen Verstecken und Zeigen des Fahrzeugtyps @@ -3542,6 +3544,7 @@ STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preis: { STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} Felder{}Capacity: {CARGO_LONG}, {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Geschw.: {VELOCITY}{}Flugzeugtyp: {STRING} Reichweite: {COMMA} tiles{}Kapazität: {CARGO_LONG}{}Laufende Kosten: {CURRENCY_LONG}/yr # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING} @@ -3571,10 +3574,11 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klick zu STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Umschalter für Lok- oder Waggonersetzung STR_REPLACE_ENGINES :Schienenfahrzeuge STR_REPLACE_WAGONS :Waggons +STR_REPLACE_ALL_RAILTYPE :Alle Schienenfahrzeuge STR_REPLACE_HELP_RAILTYPE :{BLACK}Gleistyp auswählen, für den Loks ersetzt werden sollen STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hier wird angezeigt, gegen welches Fahrzeug das auf der linken Seite gewählte ersetzt wird -STR_REPLACE_RAIL_VEHICLES :Eisenbahn +STR_REPLACE_RAIL_VEHICLES :Schienenfahrzeuge STR_REPLACE_ELRAIL_VEHICLES :elektrische Schienenfahrzeuge STR_REPLACE_MONORAIL_VEHICLES :Einschienenbahn STR_REPLACE_MAGLEV_VEHICLES :Magnetschwebebahn diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 8e25e71a66..75df75a573 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2585,8 +2585,8 @@ STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}지역 STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :없음 STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}좌표: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING}) STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}건설날짜: {LTBLUE}{DATE_LONG} -STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}정거장 등급: {LTBLUE}{STRING} -STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}정거장 종류: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}역 분류: {LTBLUE}{STRING} +STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}역 종류: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}공항 등급: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}공항 이름: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}공항 칸 이름: {LTBLUE}{STRING} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3b5e38710c..8bcd8a5318 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1373,6 +1373,8 @@ 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_RIGHT_MOUSE_WND_CLOSE :Cerrar ventana con click derecho: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Cierra una ventana al hacer click derecho dentro. ¡Quita la información al hacer click derecho! STR_CONFIG_SETTING_AUTOSAVE :Autoguardado: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecciona el intervalo entre guardados automáticos del juego From 8ab8a8f9b4d50130e0467c198ab82db8f25da702 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 13 May 2017 17:45:37 +0000 Subject: [PATCH 154/158] (svn r27872) -Update from Eints: swedish: 19 changes by Joel_A --- src/lang/swedish.txt | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index f08d8c0b4d..b127a99dbb 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -679,7 +679,7 @@ STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLA STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Töm STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Töm aktuell spellista (enbart Personlig1 eller Personlig2) STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klicka på ett musikstycke för att lägga till det i spellistan (enbart Personlig1 eller Personlig2) -STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klicka på ett musikstycket för att ta bort det från spellistan (endast Personlig1 och Personlig2) +STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klicka på ett musikstycke för att ta bort det från spellistan (endast Personlig1 och Personlig2) # Highscore window STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}De bästa företagen som nådde {NUM} @@ -1237,7 +1237,7 @@ STR_CONFIG_SETTING_ALLOW_FUND_ROAD_HELPTEXT :Tillåt att fö STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Tillåt skicka pengar till andra företag: {STRING} STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Tillåt överföring av pengar mellan företag i flerspelarläge STR_CONFIG_SETTING_FREIGHT_TRAINS :Godsfaktor för att simulera tunga tåg: {STRING} -STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Ställ in påverkan av att frakta gods i tåg. Ett högre värde gör att frakt-gods är mer krävande för tågen, speciellt vid lutningar +STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Ställ in påverkan av att frakta gods i tåg. Ett högre värde gör att fraktgods är mer krävande för tågen, speciellt vid lutningar STR_CONFIG_SETTING_PLANE_SPEED :Hastighetsfaktor för flygplan: {STRING} STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Ställ in relativ hastighet för flygplan relativt övriga fordonstyper. Detta reducerar inkomsterna för flygtransporter. STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} @@ -1246,10 +1246,10 @@ STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Ställ in hur s STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Inga STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducerad STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfarts-stopp på stadsägda vägar: {STRING} -STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillåt konstruktion av genomfarts-stopp på stadsägda vägar +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfartshållplatser på stadsägda vägar: {STRING} +STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Tillåt konstruktion av genomfartshållplatser 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_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Tillåt konstruktion av genomfartshållplatser på vägar som ägs av andra företag 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. @@ -1816,8 +1816,8 @@ STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Visa fä STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Visa färgscheman för vägfordon STR_LIVERY_SHIP_TOOLTIP :{BLACK}Visa färgscheman för skepp STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Visa färgschema för flygplan -STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Välj huvudfärg för det aktuella schemat. Ctrl+Click kommer att välja färgen för alla scheman -STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Välj andravalsfärgen för det aktuella schemat. Ctrl+Click kommer att välja färgen för alla scheman +STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Välj huvudfärg för det aktuella schemat. Ctrl+klick kommer att välja färgen för alla scheman +STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Välj andravalsfärgen för det aktuella schemat. Ctrl+klick kommer att välja färgen för alla scheman STR_LIVERY_PANEL_TOOLTIP :{BLACK}Välj ett färgschema att ändra eller välj flera genom CTRL+klick. Bocka för rutan för att använda scheman STR_LIVERY_DEFAULT :Normalt färgschema @@ -3207,7 +3207,7 @@ STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENC STR_FINANCES_BORROW_BUTTON :{BLACK}Låna {CURRENCY_LONG} STR_FINANCES_BORROW_TOOLTIP :{BLACK}Öka lånets storlek. Ctrl + Klick lånar så mycket som möjligt STR_FINANCES_REPAY_BUTTON :{BLACK}Återbetala {CURRENCY_LONG} -STR_FINANCES_REPAY_TOOLTIP :{BLACK}Återbetala en del av lånet. Ctrl+Klick återbetalar så mycket som möjligt +STR_FINANCES_REPAY_TOOLTIP :{BLACK}Återbetala en del av lånet. Ctrl+klick återbetalar så mycket som är möjligt STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infrastruktur # Company view @@ -3583,7 +3583,7 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail-fordon STR_REPLACE_MAGLEV_VEHICLES :Maglevfordon STR_REPLACE_REMOVE_WAGON :{BLACK}Vagnborttagning: {ORANGE}{STRING} -STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbytning behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre +STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbyte behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} @@ -3727,7 +3727,7 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapac STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Kostnad för anpassning: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}. {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Välj vilka fordon som ska anpassas. Genom att dra med musen kan flera fordon väljas. Klicka på en tom yta för att välja hela fordonet. Ctrl+Klick på ett fordon kommer att välja hela resterande kedjan +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Välj vilka fordon som ska anpassas. Genom att dra med musen kan flera fordon väljas. Klicka på en tom yta för att välja hela fordonet. Ctrl+klick på ett fordon kommer att välja det och hela den resterande kedjan STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Välj godstyp för tåget att bära STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Välj lasttyp för fordon @@ -4126,7 +4126,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Meddela # Generic construction errors STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Utanför kanten STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}För nära kanten av kartan -STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Inte tillräckligt med pengar - krävs {CURRENCY_LONG} +STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Inte tillräckligt med pengar - kräver {CURRENCY_LONG} STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Platt mark krävs STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Marken lutar åt fel håll STR_ERROR_CAN_T_DO_THIS :{WHITE}Kan inte utföra detta... @@ -4146,7 +4146,7 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Inte til # Local authority errors STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}De lokala myndigheterna i {TOWN} tillåter inte detta STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}De lokala myndigheterna i {TOWN} tillåter inte att ytterligare en flygplats byggs i staden -STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN}'s lokala myndigheter vägrar ge tillåtelse att bygga en flygplats på grund av ljudproblem +STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}De lokala myndigheterna i {TOWN} vägrar ge tillåtelse att bygga en flygplats på grund av ljudproblem STR_ERROR_BRIBE_FAILED :{WHITE}Ditt mutningsförsök upptäcktes av en regional granskare # Levelling errors @@ -4165,7 +4165,7 @@ STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}Kan inte STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... maximal storlek på lånet är {CURRENCY_LONG} STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kan inte låna mer pengar... -STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... lånet redan återbetalt +STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... lånet är redan återbetalt STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} krävs STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kan inte återbetala lånet... STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kan inte ge bort pengar som är lånade från banken... @@ -4221,19 +4221,19 @@ STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Kan inte STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Kan inte bygga flygplats här... STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Angränsar till mer än en station/hållplats -STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... station för utspridd +STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... stationen för utspridd STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}För många stationer/hållplatser STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}För många delar på järnvägsstationen STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}För många busshållplatser STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}För många lastbryggor -STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}För nära en annan stationer/hållplatser +STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}För nära en annan station/hållplats STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}För nära en annan hamn STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}För nära en annan flygplats STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan inte byta namn på station... STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... detta är en stadsägd väg STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... vägen pekar i fel riktning -STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... drive through stopp kan inte ha gatuhörn -STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... drive through stopp kan inte ha korsningar +STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... genomfartshållplatser kan inte ha gatuhörn +STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... genomfartshållplatser kan inte ha korsningar # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ej ta bort del av station... @@ -4279,7 +4279,7 @@ STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... mås STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... måste stoppas i en depå STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... måste stoppas i en hangar -STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Tåg kan bara ändras när det står still inuti en depå +STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Tåg kan bara ändras när det står stilla inuti en depå STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tåg för långt STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Kan inte byta fordonets riktning... STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... består av flera delar @@ -4374,7 +4374,7 @@ STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... du STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan inte skapa grupp... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan inte ta bort denna grupp... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan inte döpa om grupp... -STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan inte ställa föräldragrupp ... +STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan inte ställa in föräldragrupp ... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Kan inte ta bort alla fordon i denna grupp... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Kan inte lägga till fordon i denna grupp... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Kan inte lägga till delade fordon i denna grupp... From 8b1bf56b29af974874bde0da0edcfbf2ff09198a Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 15 May 2017 17:45:36 +0000 Subject: [PATCH 155/158] (svn r27873) -Update from Eints: spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 8bcd8a5318..525b29a312 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1764,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comproba STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar configuración de scripts de juego e IAs STR_INTRO_TOOLTIP_QUIT :{BLACK}Salir de 'OpenTTD' +STR_INTRO_BASESET :{BLACK}El conjunto de gráficos base actualmente seleccionado no encuentra {NUM} sprite{P "" s}. Comprueba si hay actualizaciones para el conjunto base, o usa otro totalmente actualizado. STR_INTRO_TRANSLATION :{BLACK}A esta traducción le faltan {NUM} cadena{P "" s} de texto. Considera ayudar a mejorar OpenTTD convirtiéndote en traductor. Consulta el readme.txt para más detalles. # Quit window @@ -3299,6 +3300,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando +STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING} ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} From cc650ca82b65f649f3d6d34ebbc5651ac186cbe8 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 16 May 2017 17:45:37 +0000 Subject: [PATCH 156/158] (svn r27874) -Update from Eints: luxembourgish: 6 changes by Phreeze --- src/lang/luxembourgish.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ccdca5d916..d1d26f75d4 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Aus STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Lénksklickscroll: {STRING} STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Schalt d'Scrollen vun der Kaart un, wann se mat der lénker Maustast gezunn gëtt +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fënster mat rietsem Mausklick zouman: {STRING} +STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Mécht eng Fenster mat engem Rietsklick zou, wann een an d'Fënster klickt. Schalt Tooltips aus déi per Rietsklick gemet ginn! STR_CONFIG_SETTING_AUTOSAVE :Autospäicheren: {STRING} STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Setz den Interval tëschend automateschen Späicherstänn @@ -3367,6 +3369,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :All Gefierer ew STR_GROUP_RENAME_CAPTION :{BLACK}Eng Grupp ëmbenennen +STR_GROUP_PROFIT_THIS_YEAR :Profit dëst Joer: +STR_GROUP_PROFIT_LAST_YEAR :Profit lescht Joer: +STR_GROUP_OCCUPANCY :Aktuell Benotzung: +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nei Zich From 063c8509b734c495b6537916ddef99fcc0b92658 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 23 May 2017 17:45:37 +0000 Subject: [PATCH 157/158] (svn r27875) -Update from Eints: chinese (simplified): 7 changes by chenwt0315 --- src/lang/simplified_chinese.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 47e709bb3e..1f7b219deb 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2589,6 +2589,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}机场 STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}接受货物:{LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) +STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}铁轨类型: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}轨道限速: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}道路限速:{LTBLUE}{VELOCITY} @@ -3292,6 +3293,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要 STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING} ############ range for requires ends +STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}等待中 ############ range for produces starts STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING} @@ -3360,6 +3363,8 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车 STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组 +STR_GROUP_PROFIT_LAST_YEAR :去年利润 +STR_GROUP_OCCUPANCY_VALUE :{NUM}% # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :购买普通列车 @@ -3392,6 +3397,7 @@ STR_PURCHASE_INFO_ALL_TYPES :所有类型 STR_PURCHASE_INFO_ALL_BUT :除了 {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}最大牵引力:{GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}航行距离: {GOLD}{COMMA} 格 +STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}飞机类型: {GOLD}{STRING} STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}列车车辆选择列表。点击车辆查看详细信息,或者按住 Ctrl 键再点击以切换是否隐藏车辆的种类 STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}路面车辆选择列表。点击车辆查看详细信息,或者按住 Ctrl 键再点击以切换是否隐藏车辆的种类 @@ -3526,6 +3532,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车 STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG} STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG} STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年 +STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}购买费用: {CURRENCY_LONG} 最大速度: {VELOCITY}{}飞机种类: {STRING} 最大航程: {COMMA} 格{}装载量: {CARGO_LONG}, {CARGO_LONG}{}运行费用: {CURRENCY_LONG}/年 # Autoreplace window STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING} From b153db2568a4882c10f210a396c58e53bdbe972b Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 27 May 2017 17:45:39 +0000 Subject: [PATCH 158/158] (svn r27876) -Update from Eints: swedish: 3 changes by Joel_A --- src/lang/swedish.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index b127a99dbb..a204cf1287 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2455,12 +2455,12 @@ STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Välj st STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Flygplatsklass STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Layout {NUM} -STR_AIRPORT_SMALL :Liten +STR_AIRPORT_SMALL :Liten flygplats STR_AIRPORT_CITY :Stad STR_AIRPORT_METRO :Storstads-flygplats STR_AIRPORT_INTERNATIONAL :Internationell flygplats STR_AIRPORT_COMMUTER :Pendlare -STR_AIRPORT_INTERCONTINENTAL :Interkontinental +STR_AIRPORT_INTERCONTINENTAL :Interkontinental flygplats STR_AIRPORT_HELIPORT :Helikopterplatta STR_AIRPORT_HELIDEPOT :Helikopterhangar STR_AIRPORT_HELISTATION :Helikopterstation @@ -2689,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD -STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig äganderätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas +STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig upphovsrätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet