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
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/baseset/no_music.obm b/bin/baseset/no_music.obm
index 40c3f76060..7a70e3b55d 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.
@@ -40,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_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.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.
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.
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/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/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/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 711693bcf7..9685624462 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
@@ -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/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 5e4b8009de..da7f444534 100644
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -145,6 +145,9 @@
MachineX86
true
+
+ dpi_aware.manifest
+
@@ -188,6 +191,9 @@
MachineX86
+
+ dpi_aware.manifest
+
@@ -244,6 +250,9 @@
MachineX64
true
+
+ dpi_aware.manifest
+
@@ -289,6 +298,9 @@
1048576
MachineX64
+
+ dpi_aware.manifest
+
diff --git a/projects/openttd_vs100.vcxproj.in b/projects/openttd_vs100.vcxproj.in
index c6b16455a9..c8e71c4234 100644
--- a/projects/openttd_vs100.vcxproj.in
+++ b/projects/openttd_vs100.vcxproj.in
@@ -145,6 +145,9 @@
MachineX86
true
+
+ dpi_aware.manifest
+
@@ -188,6 +191,9 @@
MachineX86
+
+ dpi_aware.manifest
+
@@ -244,6 +250,9 @@
MachineX64
true
+
+ dpi_aware.manifest
+
@@ -289,6 +298,9 @@
1048576
MachineX64
+
+ dpi_aware.manifest
+
!!FILES!!
diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj
index d238e77b3f..5b32f8e06d 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!!
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/ai/ai_gui.cpp b/src/ai/ai_gui.cpp
index a0720e2ea5..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)
@@ -531,21 +532,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();
}
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/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 a0a022e49f..1b35c17663 100644
--- a/src/blitter/32bpp_anim.hpp
+++ b/src/blitter/32bpp_anim.hpp
@@ -20,14 +20,18 @@ 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;
+ }
~Blitter_32bppAnim();
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
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/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/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) {
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);
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/engine_gui.cpp b/src/engine_gui.cpp
index 899543c189..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_CAPACITY_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_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_CAPACITY_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST;
+ return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST;
}
}
@@ -224,7 +225,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 +253,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/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/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/gfxinit.cpp b/src/gfxinit.cpp
index 61b8eda198..607adde1cc 100644
--- a/src/gfxinit.cpp
+++ b/src/gfxinit.cpp
@@ -314,6 +314,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;
@@ -322,7 +324,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);
@@ -337,6 +342,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/industry_gui.cpp b/src/industry_gui.cpp
index c160142249..b9077b9d77 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -56,6 +56,20 @@ 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 {
+ CargoSuffixDisplay display; ///< How to display the cargo and text.
+ char text[512]; ///< Cargo suffix text.
+};
+
static void ShowIndustryCargoesWindow(IndustryType id);
/**
@@ -71,20 +85,51 @@ 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';
+ 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);
+ 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);
- } 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);
- StopTextRefStackUsage();
+ return;
}
}
}
@@ -105,9 +150,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 +358,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 +368,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 +382,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 +477,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 +487,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 +502,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,44 +758,57 @@ 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;
}
- 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;
- 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]);
- DrawString(left + WD_FRAMETEXT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_WAITING_STOCKPILE_CARGO);
+ CargoSuffix cargo_suffix[3];
+ GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix);
+ 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 {
- 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++) {
- 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]);
- }
- 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);
@@ -767,7 +825,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 +1262,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 +1270,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 */
diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt
index 3bef69ef75..81bc7bca1c 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
@@ -3293,9 +3293,8 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING}
@@ -3651,7 +3647,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/arabic_egypt.txt b/src/lang/arabic_egypt.txt
index 5f463a22f5..cb6f643dee 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}حفظ اللعبة
@@ -2818,9 +2818,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
+
############ 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
@@ -3038,8 +3037,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: {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_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 eee84eb0ad..f8b9913cc9 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
@@ -2582,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
@@ -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
@@ -3166,9 +3178,8 @@ 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_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
@@ -3394,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_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_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Ordezkatu {STRING} - {STRING}
@@ -3517,7 +3525,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}
@@ -4050,6 +4057,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 +4323,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/belarusian.txt b/src/lang/belarusian.txt
index a179b30ac2..5742b9db05 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}Захаваць гульню
@@ -3625,9 +3625,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
+
############ 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
@@ -3870,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_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_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} — {STRING}
@@ -4003,7 +3999,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 6da939d664..f42d463010 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
@@ -3293,9 +3293,8 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING}
@@ -3651,7 +3647,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 2922780761..22b00078ab 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}Запази играта
@@ -3214,9 +3214,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
+
############ 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
@@ -3445,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_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_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год.
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Замяна {STRING} - {STRING}
@@ -3570,7 +3566,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 4d45a15519..42411873ef 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
@@ -3295,9 +3295,13 @@ 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_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
@@ -3528,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_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_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substitueix {STRING} - {STRING}
@@ -3654,7 +3655,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 0d8b9a6a78..ea5e064f67 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
@@ -2784,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
@@ -3389,9 +3390,13 @@ 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
+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_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
@@ -3622,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_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_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamijeni {STRING} - {STRING}
@@ -3748,7 +3750,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 4c5d796648..448efacd9a 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
@@ -2780,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
@@ -3385,9 +3387,8 @@ 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_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
@@ -3621,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_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_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Vyměňování {STRING} - {STRING}
@@ -3654,6 +3652,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
@@ -3746,7 +3745,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}
@@ -4186,7 +4184,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
diff --git a/src/lang/danish.txt b/src/lang/danish.txt
index 1a6577ed96..378ccd72a2 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
@@ -3292,9 +3292,8 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING}
@@ -3650,7 +3646,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 20cedb565d..024b4e2e51 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
@@ -2687,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
@@ -3292,9 +3294,8 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING}
@@ -3558,6 +3556,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
@@ -3650,7 +3649,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.txt b/src/lang/english.txt
index 47d8fe8a87..8dc3dc34f3 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -2816,7 +2816,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
@@ -3421,9 +3421,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
@@ -3521,6 +3525,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
@@ -3654,10 +3659,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_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_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} - {STRING1}
@@ -3780,7 +3786,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/lang/english_AU.txt b/src/lang/english_AU.txt
index 6f4e7144f5..cf63178a4b 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
@@ -3259,9 +3259,8 @@ 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_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
@@ -3480,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_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_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING}
@@ -3601,7 +3597,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 f5b199a125..4d0e5e2524 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
@@ -2688,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
@@ -3293,9 +3294,11 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Replace {STRING} - {STRING}
@@ -3652,7 +3652,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/esperanto.txt b/src/lang/esperanto.txt
index 4251151a8a..28f6d9066c 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
@@ -2731,9 +2731,8 @@ 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_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
@@ -2955,8 +2954,7 @@ 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_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 7cd7a571a4..fa93dbe660 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
@@ -3350,9 +3350,8 @@ 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_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
@@ -3583,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_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_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING}
@@ -3708,7 +3704,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 c51b54e476..77b514c02c 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
@@ -2923,9 +2923,8 @@ 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_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
@@ -3142,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_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_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Být um {STRING} - {STRING}
@@ -3231,7 +3227,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 7c26474842..87e2e50a19 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
@@ -3292,9 +3292,8 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. Nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/yr
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Korvaa {STRING} - {STRING}
@@ -3650,7 +3646,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 96a9724fe7..1d8926ddf1 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
@@ -2689,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
@@ -3294,9 +3295,13 @@ 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_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
@@ -3394,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
@@ -3527,10 +3533,11 @@ 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_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}
@@ -3653,7 +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_RANGE :{BLACK}Vitesse max.{NBSP}: {LTBLUE}{VELOCITY}{BLACK} − Rayon d'action{NBSP}: {LTBLUE}{COMMA} cases
+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/gaelic.txt b/src/lang/gaelic.txt
index 44e96cab07..304d541354 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
@@ -3521,9 +3521,8 @@ 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_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
@@ -3754,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_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_RUNCOST :{BLACK}Cosgais: {CURRENCY_LONG} Luaths as motha: {VELOCITY}{}Tomhas-lìonaidh: {CARGO_LONG}{}Cosgaisean ruith: {CURRENCY_LONG}/bliadhna
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Leasaich {STRING} - {STRING}
@@ -3879,7 +3875,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 b16ddf43f6..93942d6e0b 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
@@ -3241,9 +3241,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
+
############ 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
@@ -3472,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_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_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade máxima: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo operativo: {CURRENCY_LONG}/ano
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituír {STRING} - {STRING}
@@ -3597,7 +3593,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 68a9856a58..2ea57b7710 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
@@ -3293,9 +3293,8 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Preis: {CURRENCY_LONG} Höchstgeschw.: {VELOCITY}{}Kapazität: {CARGO_LONG}{}Betriebskosten: {CURRENCY_LONG}/Jahr
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} ersetzen - {STRING}
@@ -3651,7 +3647,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 0d06360366..6cb475ba43 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}Πετρέλαιο
@@ -1870,6 +1868,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 +2697,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 +2710,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 :Δρόμος με φωτισμό
@@ -2796,7 +2796,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}Αποθήκευση Παιχνιδιού
@@ -3401,9 +3401,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}σε αναμονή
+
############ 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
@@ -3640,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_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_RUNCOST :{BLACK}Κόστος: {CURRENCY_LONG} Μέγ. Ταχύτητα: {VELOCITY}{}Χωρητικότητα: {CARGO_LONG}{}Κόστος Λειτουργίας: {CURRENCY_LONG}/έτος
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Αντικατάσταση {STRING} - {STRING}
@@ -3673,6 +3672,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}Εμφανίζει ποια μηχανή αυτή στα αριστερά θα αντικατασταθεί, εάν υπάρχει
@@ -3765,7 +3765,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 ffead604f3..d92c1acfd9 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}שמור משחק
@@ -3306,9 +3306,8 @@ 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_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
@@ -3539,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_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_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING}
@@ -3664,7 +3660,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 af5ebb055f..3a5c36dbe8 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
@@ -3356,9 +3356,8 @@ 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_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
@@ -3589,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_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_RUNCOST :{BLACK}Ár: {CURRENCY_LONG} Végsebesség: {VELOCITY}{}Kapacitás: {CARGO_LONG}{}Üzemeltetés: {CURRENCY_LONG}/év
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} lecserélése - {STRING}
@@ -3714,7 +3710,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 d989692495..8b975aa4a0 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
@@ -3083,9 +3083,8 @@ 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_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
@@ -3302,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_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_RUNCOST :{BLACK}Verð: {CURRENCY_LONG} Hámarkshraði: {VELOCITY}{}Burðargeta: {CARGO_LONG}{}Rekstrarkostnaður: {CURRENCY_LONG} á ári
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Endurnýja {STRING} - {STRING}
@@ -3423,7 +3419,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 12cc31a6d5..d4fb0f97af 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
@@ -3288,9 +3288,8 @@ 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_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
@@ -3521,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_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_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING}
@@ -3646,7 +3642,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 026d6dac9a..5a40971b66 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
@@ -3292,9 +3292,8 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}Costas: {CURRENCY_LONG} Luas Uasta: {VELOCITY}{}Toilleadh: {CARGO_LONG}{}Costas Coinneála: {CURRENCY_LONG}/bl
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Ionadaigh{STRING} - {STRING}
@@ -3650,7 +3646,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 762c2669f4..60ab69ba4a 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
@@ -3324,9 +3324,13 @@ 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_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
@@ -3424,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
@@ -3557,10 +3562,11 @@ 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_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}
@@ -3683,7 +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_RANGE :{BLACK}Velocità max.: {LTBLUE}{VELOCITY} {BLACK}Autonomia: {LTBLUE}{COMMA} riquadr{P o i}
+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/japanese.txt b/src/lang/japanese.txt
index 7655620ff6..75821b07d4 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}
@@ -2687,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}ゲームを保存
@@ -3292,9 +3293,10 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}価格: {CURRENCY_LONG} 最高速度: {VELOCITY}{}収容量: {CARGO_LONG}{}運用費: {CURRENCY_LONG}/年
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING}の自動置換 - {STRING}
@@ -3558,6 +3557,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}左で選択された機関車の置換対象を(あれば)表示します
@@ -3650,7 +3650,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 e9834a27ae..bd40157012 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}
@@ -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
@@ -2689,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}게임 저장
@@ -2870,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}현재 상대값 좌표를 초기화
@@ -2906,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})
@@ -2936,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}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다.
@@ -3294,9 +3295,13 @@ 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_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
@@ -3527,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_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_RUNCOST :{BLACK}가격: {CURRENCY_LONG} 최고속력: {VELOCITY}{}수송량: {CARGO_LONG}{}유지비: {CURRENCY_LONG}/년
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}{STRING} 교체 - {STRING}
@@ -3653,7 +3655,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 a143ab02ee..eb1e2f8033 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,9 +3496,11 @@ 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_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
@@ -3728,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_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_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Mutare {STRING} - {STRING}
@@ -3854,7 +3854,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 9abe75c426..45f80eaa09 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
@@ -3226,9 +3226,8 @@ 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_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
@@ -3458,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_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_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Nomainīt {STRING} - {STRING}
@@ -3581,7 +3577,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 a62f42e6df..83cf62075f 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ą
@@ -3511,9 +3511,8 @@ 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_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
@@ -3780,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_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_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Keisti tr. priemones {STRING} - {STRING}
@@ -3907,7 +3903,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 ba13c3a02e..bb28119ea3 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
@@ -2687,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
@@ -3292,9 +3294,13 @@ 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
+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_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
@@ -3392,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
@@ -3523,12 +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_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_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}
@@ -3558,6 +3566,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
@@ -3650,7 +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_RANGE :{BLACK}Max. Geschw.: {LTBLUE}{VELOCITY} {BLACK}Distanz: {LTBLUE}{COMMA} Felder
+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}
diff --git a/src/lang/malay.txt b/src/lang/malay.txt
index afc99c19b0..5ed16decaf 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
@@ -2394,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
@@ -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,9 +2952,9 @@ 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_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
@@ -3173,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_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_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Gantikan {STRING} - {STRING}
@@ -3291,7 +3298,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}
@@ -3311,6 +3317,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
@@ -4033,6 +4040,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...
@@ -4079,6 +4087,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
diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt
index 8125c58a90..9f60b97ac8 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
@@ -3296,9 +3296,8 @@ 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_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
@@ -3529,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_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_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatte {STRING} - {STRING}
@@ -3654,7 +3650,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 a30f8e028e..96ee8362bd 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
@@ -3209,9 +3209,8 @@ 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_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
@@ -3442,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_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_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Erstatt {STRING} - {STRING}
@@ -3567,7 +3563,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 5f93b98652..4f137e1e89 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
@@ -3068,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ę
@@ -3673,9 +3674,11 @@ 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_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
@@ -3912,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_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_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Zastąp {STRING} - {STRING}
@@ -4038,7 +4038,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 dbe540afca..0f77917da1 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
@@ -3293,9 +3293,8 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING}
@@ -3651,7 +3647,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 885c5ddf79..7fd3ee581d 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
@@ -3250,9 +3250,8 @@ 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_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
@@ -3482,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_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_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING}
@@ -3607,7 +3603,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 4aabacaa20..1e83056e0a 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
@@ -2868,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}Сохранить игру
@@ -3161,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 е е е ю}тся зимой
@@ -3298,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}Группировать
@@ -3315,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 :Откуда - Куда - Через
@@ -3461,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}%
@@ -3473,9 +3474,13 @@ 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_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
@@ -3712,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_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_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Замена {STRING.gen} - {STRING}
@@ -3842,7 +3844,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 318caa8fd3..076758eba2 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
@@ -3487,9 +3487,8 @@ 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_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
@@ -3726,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_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_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god.
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Zameni {STRING} - {STRING}
@@ -3861,7 +3857,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 1dbfef8e2e..bb23f31af6 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}保存游戏
@@ -3292,9 +3292,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
+
############ 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
@@ -3525,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_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_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}更新 {STRING} - {STRING}
@@ -3650,7 +3646,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 63fdd2d317..d9ca9debb7 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
@@ -3360,9 +3360,8 @@ 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_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
@@ -3593,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_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_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Výmena {STRING} - {STRING}
@@ -3718,7 +3714,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 079d4661d6..15d1b85639 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
@@ -3445,9 +3445,8 @@ 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_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
@@ -3678,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_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_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING}
@@ -3803,7 +3799,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 3d963eadc6..f3bd99aa48 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
@@ -3294,9 +3294,8 @@ 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_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
@@ -3527,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_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_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING}
@@ -3653,7 +3649,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 bd90ed8f63..7e5223f0fc 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
@@ -2689,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
@@ -3294,9 +3295,8 @@ 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_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
@@ -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_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_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING}
@@ -3653,7 +3650,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 4ff38b2067..e9bc290f04 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
@@ -3292,9 +3292,8 @@ 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_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
@@ -3525,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_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_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Byt ut {STRING} - {STRING}
@@ -3650,7 +3646,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 14885c8fe9..a1e4c43fac 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}ஆட்டத்தை பதிவு செய்
@@ -2912,9 +2912,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
+
############ 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
@@ -3119,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_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_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}மாற்று {STRING} - {STRING}
@@ -3229,7 +3225,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 f3ef3c1e7c..72241e4d5e 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}บันทึกเกม
@@ -3224,9 +3224,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
+
############ 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
@@ -3447,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_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_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}เปลี่ยน {STRING} - {STRING}
@@ -3569,7 +3565,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 471c491bb3..7c207f60c4 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}儲存遊戲
@@ -3292,9 +3292,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
+
############ 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
@@ -3525,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_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_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}替換 {STRING} - {STRING}
@@ -3650,7 +3646,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 b69a01822e..bad2604fe6 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
@@ -3294,9 +3294,8 @@ 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_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
@@ -3527,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_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_RUNCOST :{BLACK}Maliyet: {CURRENCY_LONG} Azami Hız: {VELOCITY}{}Kapasite: {CARGO_LONG}{}İşletme Gideri: {CURRENCY_LONG}/yıl
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Değiştir {STRING} - {STRING}
@@ -3653,7 +3649,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 b49a7f7faa..66546b7ef6 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}Зберегти гру
@@ -3423,9 +3423,8 @@ 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_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
@@ -3656,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_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_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING}
@@ -3781,7 +3777,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/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 6fddf2f8ab..dc049e5d98 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
@@ -3043,8 +3043,8 @@ 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_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
@@ -3220,8 +3220,7 @@ 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
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Ferfang {STRING} - {STRING}
@@ -3388,6 +3387,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 +3597,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
diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt
index 2e8a41161e..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
@@ -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..e6abadca01 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}Оптоварување
@@ -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
@@ -1500,8 +1501,6 @@ 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}/год
# Autoreplace window
STR_REPLACE_VEHICLE_TRAIN :Воз
@@ -1548,7 +1547,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/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 3125899304..b2ccf18b67 100644
--- a/src/lang/unfinished/marathi.txt
+++ b/src/lang/unfinished/marathi.txt
@@ -1279,8 +1279,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
+
############ 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/unfinished/persian.txt b/src/lang/unfinished/persian.txt
index df2824e434..10689c715a 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}ذخیره ی بازی
@@ -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}
@@ -3053,8 +3054,6 @@ 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}/درسال
# Autoreplace window
STR_REPLACE_VEHICLE_TRAIN :قطار
@@ -3127,7 +3126,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 a2bae741d3..934c405b22 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
@@ -2404,8 +2405,6 @@ 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} سالانہ
# Autoreplace window
@@ -2446,7 +2445,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 65167b54a9..7808129fa9 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
@@ -3292,9 +3292,8 @@ 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_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
@@ -3525,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_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_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
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Thay thế {STRING} - {STRING}
@@ -3650,7 +3646,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 50d9297ee0..bc80a83111 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
@@ -3293,9 +3293,8 @@ 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_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
@@ -3526,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_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_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Disodli {STRING} - {STRING}
@@ -3652,7 +3648,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}
diff --git a/src/language.h b/src/language.h
index fed138e635..d33ba81892 100644
--- a/src/language.h
+++ b/src/language.h
@@ -16,18 +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_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.
-
/** Header of a language file. */
struct LanguagePackHeader {
static const uint32 IDENT = 0x474E414C; ///< Identifier for OpenTTD language files, big endian for "LANG"
@@ -37,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/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());
}
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 57da911700..e2b342f560 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -553,24 +553,29 @@ 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, 0xD800, 0xE000)) {
+ /* General text provided by NewGRF.
+ * 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);
+ } 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;
@@ -5477,13 +5482,12 @@ 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:
+ if (IsInsideMM(id, 0xD000, 0xD400) || IsInsideMM(id, 0xD800, 0xE000)) {
+ 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) {
@@ -5518,14 +5522,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;
@@ -7255,7 +7251,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 >= 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;
}
diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp
index df00ef3419..e4b3c382b3 100644
--- a/src/newgrf_text.cpp
+++ b/src/newgrf_text.cpp
@@ -35,9 +35,6 @@
#include "safeguards.h"
-#define GRFTAB 28
-#define TABSIZE 11
-
/**
* Explains the newgrf shift bit positioning.
* the grf base will not be used in order to find the string, but rather for
@@ -159,7 +156,7 @@ struct GRFTextEntry {
static uint _num_grf_texts = 0;
-static GRFTextEntry _grf_text[(1 << TABSIZE) * 3];
+static GRFTextEntry _grf_text[TAB_SIZE_NEWGRF];
static byte _currentLangID = GRFLX_ENGLISH; ///< by default, english is used.
/**
@@ -696,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 (GRFTAB << TABSIZE) + id;
+ return MakeStringID(TEXT_TAB_NEWGRF_START, id);
}
/**
@@ -706,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 (GRFTAB << TABSIZE) + id;
+ return MakeStringID(TEXT_TAB_NEWGRF_START, id);
}
}
diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in
index 4214f3b23f..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
@@ -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"
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/rail_cmd.cpp b/src/rail_cmd.cpp
index 3d0dd193ef..19052a1b07 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -1606,7 +1606,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;
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/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) {
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp
index 9b541a766b..7adc532b6b 100644
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
@@ -69,24 +69,10 @@ 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
};
-/** 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
@@ -935,7 +921,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]);
@@ -1001,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);
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp
index c2655b2fde..383def2e47 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/saveload/company_sl.cpp b/src/saveload/company_sl.cpp
index 6ac22c2685..733bc0eaf9 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"
@@ -243,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),
@@ -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) == TEXT_TAB_OLD_CUSTOM) {
cprops->name_1 = STR_GAME_SAVELOAD_NOT_AVAILABLE;
}
- if (GB(cprops->president_name_1, 11, 5) == 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/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()
diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp
index 1f5486fb99..f8e1599766 100644
--- a/src/saveload/saveload.cpp
+++ b/src/saveload/saveload.cpp
@@ -263,9 +263,10 @@
* 193 26802
* 194 26881 1.5.x, 1.6.0
* 195 27572 1.6.x
- * 2001 Trace restrict patch
+ * 196 27778 1.7.x
+ * 2002 Trace restrict patch
*/
-extern const uint16 SAVEGAME_VERSION = 2001; ///< Current savegame version of OpenTTD.
+extern const uint16 SAVEGAME_VERSION = 2002; ///< 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.
@@ -1996,7 +1997,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");
@@ -2018,7 +2019,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;
}
};
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/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;
diff --git a/src/saveload/strings_sl.cpp b/src/saveload/strings_sl.cpp
index 73f2a1e2e1..aa2fdd3e60 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) != 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 7db6a7aa6f..3af5171b87 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) != TEXT_TAB_OLD_CUSTOM) {
SlErrorCorrupt("Invalid town name generator");
}
diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp
index 2d0fe01f8d..db1c6eb2a2 100644
--- a/src/script/api/ai_changelog.hpp
+++ b/src/script/api/ai_changelog.hpp
@@ -15,23 +15,19 @@
* functions may still be available if you return an older API version
* in GetAPIVersion() in info.nut.
*
- * \b 1.7.0
- *
- * 1.7.0 is not yet released. The following changes are not set in stone yet.
+ * \b 1.8.0
*
- * \b 1.6.0
+ * 1.8.0 is not yet released. The following changes are not set in stone yet.
*
- * No changes
- *
- * \b 1.5.3
+ * \b 1.7.0
*
* No changes
*
- * \b 1.5.2
+ * \b 1.6.1 - 1.6.0
*
* No changes
*
- * \b 1.5.1
+ * \b 1.5.3 - 1.5.1
*
* No changes
*
@@ -53,20 +49,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 +70,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 +89,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 +156,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 +187,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 +301,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..00b9539590 100644
--- a/src/script/api/game_changelog.hpp
+++ b/src/script/api/game_changelog.hpp
@@ -15,23 +15,19 @@
* functions may still be available if you return an older API version
* in GetAPIVersion() in info.nut.
*
- * \b 1.7.0
- *
- * 1.7.0 is not yet released. The following changes are not set in stone yet.
+ * \b 1.8.0
*
- * \b 1.6.0
+ * 1.8.0 is not yet released. The following changes are not set in stone yet.
*
- * No changes
- *
- * \b 1.5.3
+ * \b 1.7.0
*
* No changes
*
- * \b 1.5.2
+ * \b 1.6.1 - 1.6.0
*
* No changes
*
- * \b 1.5.1
+ * \b 1.5.3 - 1.5.1
*
* No changes
*
@@ -58,11 +54,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 +98,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 +124,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
*
diff --git a/src/script/api/script_error.cpp b/src/script/api/script_error.cpp
index d30ad9c66d..24c4919952 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,17 +32,17 @@ 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)) {
- case 26: case 28: case 29: case 30: // NewGRF strings.
- return ERR_NEWGRF_SUPPLIED_ERROR;
+ uint index = GetStringIndex(internal_string_id);
+ switch (GetStringTab(internal_string_id)) {
+ case TEXT_TAB_NEWGRF_START:
+ case TEXT_TAB_GAMESCRIPT_START:
+ 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/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/ship_cmd.cpp b/src/ship_cmd.cpp
index 2a760e2ca7..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);
@@ -456,27 +451,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 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);
- 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);
@@ -599,9 +573,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;
@@ -642,7 +615,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);
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);
}
}
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();
diff --git a/src/strings.cpp b/src/strings.cpp
index ea278dd28b..ec59d6011f 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -188,21 +188,19 @@ 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 (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 TEXT_TAB_GAMESCRIPT_START: 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 TEXT_TAB_OLD_NEWGRF: NOT_REACHED();
+ case TEXT_TAB_NEWGRF_START: return GetGRFStringPtr(GetStringIndex(string));
+ default: return _langpack_offs[_langtab_start[GetStringTab(string)] + GetStringIndex(string)];
}
}
@@ -220,43 +218,40 @@ 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);
+ 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_START:
return FormatString(buffr, GetGameStringPtr(index), args, last, case_index, true);
- case 26:
+ case TEXT_TAB_OLD_NEWGRF:
NOT_REACHED();
- case 28:
+ case TEXT_TAB_NEWGRF_START:
return FormatString(buffr, GetGRFStringPtr(index), args, last, case_index);
- case 29:
- return FormatString(buffr, GetGRFStringPtr(index + 0x0800), args, last, case_index);
-
- case 30:
- return FormatString(buffr, GetGRFStringPtr(index + 0x1000), args, last, case_index);
+ default:
+ break;
}
if (index >= _langtab_num[tab]) {
@@ -987,17 +982,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);
@@ -1045,13 +1039,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 = (GAME_TEXT_TAB << TAB_COUNT_OFFSET) + param;
+ param = MakeStringID(TEXT_TAB_GAMESCRIPT_START, param);
}
sub_args.SetParam(i++, param);
@@ -1066,7 +1060,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(TEXT_TAB_GAMESCRIPT_START, stringid), &sub_args, last, true);
}
for (int i = 0; i < 20; i++) {
@@ -1182,7 +1176,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) != 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 */
@@ -1201,7 +1195,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) != TEXT_TAB_GAMESCRIPT_START) break;
uint size = b - SCC_STRING1 + 1;
if (game_script && size > args->GetDataLeft()) {
buff = strecat(buff, "(too many parameters)", last);
@@ -1917,13 +1911,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);
@@ -2232,12 +2226,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 410414f600..3a2b54f991 100644
--- a/src/strings_func.h
+++ b/src/strings_func.h
@@ -15,6 +15,49 @@
#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 StringTab GetStringTab(StringID str)
+{
+ 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;
+}
+
+/**
+ * Extract the StringIndex from a StringID.
+ * @param str String identifier
+ * @return StringIndex from \a str
+ */
+static inline uint GetStringIndex(StringID str)
+{
+ return str - (GetStringTab(str) << TAB_SIZE_BITS);
+}
+
+/**
+ * Create a StringID
+ * @param tab StringTab
+ * @param index StringIndex
+ * @return StringID composed from \a tab and \a index
+ */
+static inline StringID MakeStringID(StringTab tab, uint 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 {
StringParameters *parent; ///< If not NULL, this instance references data from this parent instance.
diff --git a/src/strings_type.h b/src/strings_type.h
index c6eebd54d8..aa3ed788c3 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
@@ -26,6 +26,33 @@ 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_OLD_NEWGRF = 26,
+ 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 */
+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 {
diff --git a/src/table/settings.ini b/src/table/settings.ini
index 5d68bc0dd0..c40991fe03 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
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);
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)];
}
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 437fc1dc51..e2fea096c7 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -1702,8 +1702,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) {
@@ -2256,16 +2256,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. */
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index 9d117687ea..89d4c4639d 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -2084,9 +2084,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;
}
diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp
index 4ee96db778..3668f86020 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);
@@ -830,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();
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;
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);