diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml
index 789f8f6a32..bf2fb72324 100644
--- a/azure-pipelines-ci.yml
+++ b/azure-pipelines-ci.yml
@@ -25,6 +25,7 @@ jobs:
- template: azure-pipelines/templates/windows-build.yml
parameters:
BuildPlatform: $(BuildPlatform)
+ BuildConfiguration: Debug
- script: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86
cd projects
@@ -38,10 +39,14 @@ jobs:
strategy:
matrix:
- commit-checker: {}
- linux-amd64-clang-3.8: {}
- linux-amd64-gcc-6: {}
- linux-i386-gcc-6: {}
+ commit-checker:
+ Tag: 'commit-checker'
+ linux-amd64-clang-3.8:
+ Tag: 'linux-amd64-clang-3.8'
+ linux-amd64-gcc-6:
+ Tag: 'linux-amd64-gcc-6'
+ linux-i386-gcc-6:
+ Tag: 'linux-i386-gcc-6'
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
@@ -50,7 +55,7 @@ jobs:
- template: azure-pipelines/templates/linux-build.yml
parameters:
Image: compile-farm-ci
- Tag: $(Agent.JobName)
+ Tag: $(Tag)
- job: macos
displayName: 'MacOS'
diff --git a/azure-pipelines/templates/linux-build.yml b/azure-pipelines/templates/linux-build.yml
index 7f442904c4..a173f3364d 100644
--- a/azure-pipelines/templates/linux-build.yml
+++ b/azure-pipelines/templates/linux-build.yml
@@ -24,7 +24,7 @@ steps:
${{ if eq(parameters.Image, 'compile-farm-ci') }}:
displayName: 'Build and test'
# Run the commit-checker only if it is a Pull Request
- condition: and(succeeded(), or(ne(variables['Agent.JobName'], 'commit-checker'), eq(variables['Build.Reason'], 'PullRequest')))
+ condition: and(succeeded(), or(not(contains(variables['Agent.JobName'], 'commit-checker')), eq(variables['Build.Reason'], 'PullRequest')))
inputs:
command: 'Run an image'
imageName: openttd/${{ parameters.Image }}:${{ parameters.Tag }}
diff --git a/azure-pipelines/templates/release.yml b/azure-pipelines/templates/release.yml
index 7628d3c91e..ce37de669e 100644
--- a/azure-pipelines/templates/release.yml
+++ b/azure-pipelines/templates/release.yml
@@ -88,6 +88,7 @@ jobs:
- template: windows-build.yml
parameters:
BuildPlatform: $(BuildPlatform)
+ BuildConfiguration: Release
- bash: |
set -ex
make -f Makefile.msvc bundle_pdb bundle_zip PLATFORM=$(BundlePlatform) BUNDLE_NAME=openttd-$(Build.BuildNumber)-windows-$(BundlePlatform)
@@ -110,14 +111,22 @@ jobs:
strategy:
matrix:
- linux-ubuntu-xenial-i386-gcc: {}
- linux-ubuntu-xenial-amd64-gcc: {}
- linux-ubuntu-bionic-i386-gcc: {}
- linux-ubuntu-bionic-amd64-gcc: {}
- linux-debian-jessie-i386-gcc: {}
- linux-debian-jessie-amd64-gcc: {}
- linux-debian-stretch-i386-gcc: {}
- linux-debian-stretch-amd64-gcc: {}
+ linux-ubuntu-xenial-i386-gcc:
+ Tag: 'linux-ubuntu-xenial-i386-gcc'
+ linux-ubuntu-xenial-amd64-gcc:
+ Tag: 'linux-ubuntu-xenial-amd64-gcc'
+ linux-ubuntu-bionic-i386-gcc:
+ Tag: 'linux-ubuntu-bionic-i386-gcc'
+ linux-ubuntu-bionic-amd64-gcc:
+ Tag: 'linux-ubuntu-bionic-amd64-gcc'
+ linux-debian-jessie-i386-gcc:
+ Tag: 'linux-debian-jessie-i386-gcc'
+ linux-debian-jessie-amd64-gcc:
+ Tag: 'linux-debian-jessie-amd64-gcc'
+ linux-debian-stretch-i386-gcc:
+ Tag: 'linux-debian-stretch-i386-gcc'
+ linux-debian-stretch-amd64-gcc:
+ Tag: 'linux-debian-stretch-amd64-gcc'
steps:
- template: release-fetch-source.yml
@@ -125,7 +134,7 @@ jobs:
parameters:
Image: compile-farm
ContainerCommand: '$(Build.BuildNumber)'
- Tag: $(Agent.JobName)
+ Tag: $(Tag)
- template: linux-claim-bundles.yml
- template: release-bundles.yml
diff --git a/azure-pipelines/templates/windows-build.yml b/azure-pipelines/templates/windows-build.yml
index 5e12f2243f..117dd062c1 100644
--- a/azure-pipelines/templates/windows-build.yml
+++ b/azure-pipelines/templates/windows-build.yml
@@ -7,5 +7,5 @@ steps:
inputs:
solution: 'projects/openttd_vs141.sln'
platform: ${{ parameters.BuildPlatform }}
- configuration: Release
+ configuration: ${{ parameters.BuildConfiguration }}
maximumCpuCount: true
diff --git a/config.lib b/config.lib
index de4a8f6bd7..de154ed6f7 100644
--- a/config.lib
+++ b/config.lib
@@ -3207,6 +3207,12 @@ detect_png() {
}
detect_freetype() {
+ if [ "$with_freetype" = "1" ] && ([ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]); then
+ log 1 "checking freetype2... WIN32, skipping"
+ freetype_config=""
+ return 0
+ fi
+
detect_pkg_config "$with_freetype" "freetype2" "freetype_config" "2.2" "1"
}
diff --git a/docs/Readme_Windows_MSVC.md b/docs/Readme_Windows_MSVC.md
index 90ab2af657..247ad74e7e 100644
--- a/docs/Readme_Windows_MSVC.md
+++ b/docs/Readme_Windows_MSVC.md
@@ -32,7 +32,6 @@ by following the `Quick Start` intructions of their
After this, you can install the dependencies OpenTTD needs. We advise to use
the `static` versions, and OpenTTD currently needs the following dependencies:
-- freetype
- liblzma
- libpng
- lzo
@@ -41,8 +40,8 @@ the `static` versions, and OpenTTD currently needs the following dependencies:
To install both the x64 (64bit) and x86 (32bit) variants, you can use:
```ps
-.\vcpkg install freetype:x64-windows-static liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
-.\vcpkg install freetype:x86-windows-static liblzma:x86-windows-static libpng:x86-windows-static lzo:x86-windows-static zlib:x86-windows-static
+.\vcpkg install liblzma:x64-windows-static libpng:x64-windows-static lzo:x64-windows-static zlib:x64-windows-static
+.\vcpkg install liblzma:x86-windows-static libpng:x86-windows-static lzo:x86-windows-static zlib:x86-windows-static
```
## TTD Graphics files
diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj
index c2f574f285..c21d71d270 100644
--- a/projects/openttd_vs140.vcxproj
+++ b/projects/openttd_vs140.vcxproj
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/projects/openttd_vs140.vcxproj.in b/projects/openttd_vs140.vcxproj.in
index 17b4356cc2..b5628a23d3 100644
--- a/projects/openttd_vs140.vcxproj.in
+++ b/projects/openttd_vs140.vcxproj.in
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/projects/openttd_vs141.vcxproj b/projects/openttd_vs141.vcxproj
index 130fe69f8d..61e911bb63 100644
--- a/projects/openttd_vs141.vcxproj
+++ b/projects/openttd_vs141.vcxproj
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/projects/openttd_vs141.vcxproj.in b/projects/openttd_vs141.vcxproj.in
index 0b04ebacce..015c23d3c5 100644
--- a/projects/openttd_vs141.vcxproj.in
+++ b/projects/openttd_vs141.vcxproj.in
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/projects/openttd_vs142.vcxproj b/projects/openttd_vs142.vcxproj
index b22761c16f..9f01053b01 100644
--- a/projects/openttd_vs142.vcxproj
+++ b/projects/openttd_vs142.vcxproj
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/projects/openttd_vs142.vcxproj.in b/projects/openttd_vs142.vcxproj.in
index 37f0d6cf92..6b5c18d25c 100644
--- a/projects/openttd_vs142.vcxproj.in
+++ b/projects/openttd_vs142.vcxproj.in
@@ -107,7 +107,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -172,7 +172,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
@@ -230,7 +230,7 @@
Size
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
+ NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)
true
Sync
MultiThreaded
@@ -293,7 +293,7 @@
Disabled
true
..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)
- _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
+ _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LIBLZMA;WITH_PNG;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebug
diff --git a/src/3rdparty/squirrel/squirrel/sqmem.cpp b/src/3rdparty/squirrel/squirrel/sqmem.cpp
index 5c1b3966aa..f4fa6309ed 100644
--- a/src/3rdparty/squirrel/squirrel/sqmem.cpp
+++ b/src/3rdparty/squirrel/squirrel/sqmem.cpp
@@ -9,8 +9,10 @@
#include "../../../core/alloc_func.hpp"
#include "../../../safeguards.h"
-void *sq_vm_malloc(SQUnsignedInteger size){ return MallocT((size_t)size); }
+#ifdef SQUIRREL_DEFAULT_ALLOCATOR
+void *sq_vm_malloc(SQUnsignedInteger size) { return MallocT((size_t)size); }
-void *sq_vm_realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size){ return ReallocT(static_cast(p), (size_t)size); }
+void *sq_vm_realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size) { return ReallocT(static_cast(p), (size_t)size); }
-void sq_vm_free(void *p, SQUnsignedInteger size){ free(p); }
+void sq_vm_free(void *p, SQUnsignedInteger size) { free(p); }
+#endif
diff --git a/src/ai/ai_instance.cpp b/src/ai/ai_instance.cpp
index 41a8420853..edb7ebce0b 100644
--- a/src/ai/ai_instance.cpp
+++ b/src/ai/ai_instance.cpp
@@ -230,6 +230,7 @@ void AIInstance::Died()
void AIInstance::LoadDummyScript()
{
+ ScriptAllocatorScope alloc_scope(this->engine);
extern void Script_CreateDummy(HSQUIRRELVM vm, StringID string, const char *type);
Script_CreateDummy(this->engine->GetVM(), STR_ERROR_AI_NO_AI_FOUND, "AI");
}
diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp
index 1d0fed1886..8bd3a43853 100644
--- a/src/ai/ai_scanner.cpp
+++ b/src/ai/ai_scanner.cpp
@@ -31,6 +31,8 @@ void AIScannerInfo::Initialize()
{
ScriptScanner::Initialize("AIScanner");
+ ScriptAllocatorScope alloc_scope(this->engine);
+
/* Create the dummy AI */
free(this->main_script);
this->main_script = stredup("%_dummy");
diff --git a/src/core/smallvec_type.hpp b/src/core/smallvec_type.hpp
index 11ceb3fa84..3cf33f8b7e 100644
--- a/src/core/smallvec_type.hpp
+++ b/src/core/smallvec_type.hpp
@@ -52,21 +52,4 @@ int find_index(std::vector const& vec, T const& item)
return -1;
}
-/**
- * Helper function to append N default-constructed elements and get a pointer to the first new element
- * Consider using std::back_inserter in new code
- *
- * @param vec A reference to the vector to be extended
- * @param num Number of elements to be default-constructed
- *
- * @return Pointer to the first new element
- */
-template
-T* grow(std::vector& vec, std::size_t num)
-{
- std::size_t const pos = vec.size();
- vec.resize(pos + num);
- return vec.data() + pos;
-}
-
#endif /* SMALLVEC_TYPE_HPP */
diff --git a/src/currency.cpp b/src/currency.cpp
index b87f77393b..7bffdd0edd 100644
--- a/src/currency.cpp
+++ b/src/currency.cpp
@@ -64,6 +64,9 @@ static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
{ 4901, "", CF_NOEURO, "", NBSP "Rls", 1, STR_GAME_OPTIONS_CURRENCY_IRR }, ///< Iranian Rial
{ 80, "", CF_NOEURO, "", NBSP "rub", 1, STR_GAME_OPTIONS_CURRENCY_RUB }, ///< New Russian Ruble
{ 24, "", CF_NOEURO, "$", "", 0, STR_GAME_OPTIONS_CURRENCY_MXN }, ///< Mexican peso
+ { 40, "", CF_NOEURO, "NTD" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_NTD }, ///< new taiwan dollar
+ { 8, "", CF_NOEURO, "\xC2\xA5", "", 0, STR_GAME_OPTIONS_CURRENCY_CNY }, ///< chinese renminbi
+ { 10, "", CF_NOEURO, "HKD" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_HKD }, ///< hong kong dollar
};
/** Array of currencies used by the system */
diff --git a/src/currency.h b/src/currency.h
index 401df5ec1f..a3772951d2 100644
--- a/src/currency.h
+++ b/src/currency.h
@@ -60,6 +60,9 @@ enum Currencies {
CURRENCY_IRR, ///< Iranian Rial
CURRENCY_RUB, ///< New Russian Ruble
CURRENCY_MXN, ///< Mexican Peso
+ CURRENCY_NTD, ///< New Taiwan Dollar
+ CURRENCY_CNY, ///< Chinese Renminbi
+ CURRENCY_HKD, ///< Hong Kong Dollar
CURRENCY_END, ///< always the last item
};
diff --git a/src/fontcache.cpp b/src/fontcache.cpp
index 467c1c6d79..0453db9e10 100644
--- a/src/fontcache.cpp
+++ b/src/fontcache.cpp
@@ -19,6 +19,7 @@
#include "zoom_type.h"
#include "gfx_layout.h"
#include "zoom_func.h"
+#include "fileio_func.h"
#include "table/sprites.h"
#include "table/control_codes.h"
@@ -197,16 +198,16 @@ void UpdateFontHeightCache()
}
}
-#ifdef WITH_FREETYPE
-#include
-#include FT_FREETYPE_H
-#include FT_GLYPH_H
-#include FT_TRUETYPE_TABLES_H
+#if defined(WITH_FREETYPE) || defined(_WIN32)
-/** Font cache for fonts that are based on a freetype font. */
-class FreeTypeFontCache : public FontCache {
-private:
- FT_Face face; ///< The font face associated with this font.
+FreeTypeSettings _freetype;
+
+static const byte FACE_COLOUR = 1;
+static const byte SHADOW_COLOUR = 2;
+
+/** Font cache for fonts that are based on a TrueType font. */
+class TrueTypeFontCache : public FontCache {
+protected:
int req_size; ///< Requested font size.
int used_size; ///< Used font size.
@@ -237,11 +238,13 @@ private:
GlyphEntry *GetGlyphPtr(GlyphID key);
void SetGlyphPtr(GlyphID key, const GlyphEntry *glyph, bool duplicate = false);
- void SetFontSize(FontSize fs, FT_Face face, int pixels);
+
+ virtual const void *InternalGetFontTable(uint32 tag, size_t &length) = 0;
+ virtual const Sprite *InternalGetGlyph(GlyphID key, bool aa) = 0;
public:
- FreeTypeFontCache(FontSize fs, FT_Face face, int pixels);
- ~FreeTypeFontCache();
+ TrueTypeFontCache(FontSize fs, int pixels);
+ virtual ~TrueTypeFontCache();
virtual int GetFontSize() const { return this->used_size; }
virtual SpriteID GetUnicodeGlyph(WChar key) { return this->parent->GetUnicodeGlyph(key); }
virtual void SetUnicodeGlyph(WChar key, SpriteID sprite) { this->parent->SetUnicodeGlyph(key, sprite); }
@@ -252,22 +255,222 @@ public:
font_height_cache[this->fs] = this->GetHeight();
}
- virtual void ClearFontCache();
virtual const Sprite *GetGlyph(GlyphID key);
+ virtual const void *GetFontTable(uint32 tag, size_t &length);
+ virtual void ClearFontCache();
virtual uint GetGlyphWidth(GlyphID key);
virtual bool GetDrawGlyphShadow();
+ virtual bool IsBuiltInFont() { return false; }
+};
+
+/**
+ * Create a new TrueTypeFontCache.
+ * @param fs The font size that is going to be cached.
+ * @param pixels The number of pixels this font should be high.
+ */
+TrueTypeFontCache::TrueTypeFontCache(FontSize fs, int pixels) : FontCache(fs), req_size(pixels), glyph_to_sprite(nullptr)
+{
+}
+
+/**
+ * Free everything that was allocated for this font cache.
+ */
+TrueTypeFontCache::~TrueTypeFontCache()
+{
+ this->ClearFontCache();
+
+ for (auto &iter : this->font_tables) {
+ free(iter.second.second);
+ }
+}
+
+/**
+ * Reset cached glyphs.
+ */
+void TrueTypeFontCache::ClearFontCache()
+{
+ if (this->glyph_to_sprite == nullptr) return;
+
+ for (int i = 0; i < 256; i++) {
+ if (this->glyph_to_sprite[i] == nullptr) continue;
+
+ for (int j = 0; j < 256; j++) {
+ if (this->glyph_to_sprite[i][j].duplicate) continue;
+ free(this->glyph_to_sprite[i][j].sprite);
+ }
+
+ free(this->glyph_to_sprite[i]);
+ }
+
+ free(this->glyph_to_sprite);
+ this->glyph_to_sprite = nullptr;
+
+ Layouter::ResetFontCache(this->fs);
+}
+
+
+TrueTypeFontCache::GlyphEntry *TrueTypeFontCache::GetGlyphPtr(GlyphID key)
+{
+ if (this->glyph_to_sprite == nullptr) return nullptr;
+ if (this->glyph_to_sprite[GB(key, 8, 8)] == nullptr) return nullptr;
+ return &this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)];
+}
+
+void TrueTypeFontCache::SetGlyphPtr(GlyphID key, const GlyphEntry *glyph, bool duplicate)
+{
+ if (this->glyph_to_sprite == nullptr) {
+ DEBUG(freetype, 3, "Allocating root glyph cache for size %u", this->fs);
+ this->glyph_to_sprite = CallocT(256);
+ }
+
+ if (this->glyph_to_sprite[GB(key, 8, 8)] == nullptr) {
+ DEBUG(freetype, 3, "Allocating glyph cache for range 0x%02X00, size %u", GB(key, 8, 8), this->fs);
+ this->glyph_to_sprite[GB(key, 8, 8)] = CallocT(256);
+ }
+
+ DEBUG(freetype, 4, "Set glyph for unicode character 0x%04X, size %u", key, this->fs);
+ this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].sprite = glyph->sprite;
+ this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].width = glyph->width;
+ this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].duplicate = duplicate;
+}
+
+static void *AllocateFont(size_t size)
+{
+ return MallocT(size);
+}
+
+
+/* Check if a glyph should be rendered with anti-aliasing. */
+static bool GetFontAAState(FontSize size)
+{
+ /* AA is only supported for 32 bpp */
+ if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32) return false;
+
+ switch (size) {
+ default: NOT_REACHED();
+ case FS_NORMAL: return _freetype.medium.aa;
+ case FS_SMALL: return _freetype.small.aa;
+ case FS_LARGE: return _freetype.large.aa;
+ case FS_MONO: return _freetype.mono.aa;
+ }
+}
+
+bool TrueTypeFontCache::GetDrawGlyphShadow()
+{
+ return this->fs == FS_NORMAL && GetFontAAState(FS_NORMAL);
+}
+
+uint TrueTypeFontCache::GetGlyphWidth(GlyphID key)
+{
+ if ((key & SPRITE_GLYPH) != 0) return this->parent->GetGlyphWidth(key);
+
+ GlyphEntry *glyph = this->GetGlyphPtr(key);
+ if (glyph == nullptr || glyph->sprite == nullptr) {
+ this->GetGlyph(key);
+ glyph = this->GetGlyphPtr(key);
+ }
+
+ return glyph->width;
+}
+
+const Sprite *TrueTypeFontCache::GetGlyph(GlyphID key)
+{
+ if ((key & SPRITE_GLYPH) != 0) return this->parent->GetGlyph(key);
+
+ /* Check for the glyph in our cache */
+ GlyphEntry *glyph = this->GetGlyphPtr(key);
+ if (glyph != nullptr && glyph->sprite != nullptr) return glyph->sprite;
+
+ if (key == 0) {
+ GlyphID question_glyph = this->MapCharToGlyph('?');
+ if (question_glyph == 0) {
+ /* The font misses the '?' character. Use built-in sprite.
+ * Note: We cannot use the baseset as this also has to work in the bootstrap GUI. */
+#define CPSET { 0, 0, 0, 0, 1 }
+#define CP___ { 0, 0, 0, 0, 0 }
+ static SpriteLoader::CommonPixel builtin_questionmark_data[10 * 8] = {
+ CP___, CP___, CPSET, CPSET, CPSET, CPSET, CP___, CP___,
+ CP___, CPSET, CPSET, CP___, CP___, CPSET, CPSET, CP___,
+ CP___, CP___, CP___, CP___, CP___, CPSET, CPSET, CP___,
+ CP___, CP___, CP___, CP___, CPSET, CPSET, CP___, CP___,
+ CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
+ CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
+ CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
+ CP___, CP___, CP___, CP___, CP___, CP___, CP___, CP___,
+ CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
+ CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
+ };
+#undef CPSET
+#undef CP___
+ static const SpriteLoader::Sprite builtin_questionmark = {
+ 10, // height
+ 8, // width
+ 0, // x_offs
+ 0, // y_offs
+ ST_FONT,
+ builtin_questionmark_data
+ };
+
+ Sprite *spr = BlitterFactory::GetCurrentBlitter()->Encode(&builtin_questionmark, AllocateFont);
+ assert(spr != nullptr);
+ GlyphEntry new_glyph;
+ new_glyph.sprite = spr;
+ new_glyph.width = spr->width + (this->fs != FS_NORMAL);
+ this->SetGlyphPtr(key, &new_glyph, false);
+ return new_glyph.sprite;
+ } else {
+ /* Use '?' for missing characters. */
+ this->GetGlyph(question_glyph);
+ glyph = this->GetGlyphPtr(question_glyph);
+ this->SetGlyphPtr(key, glyph, true);
+ return glyph->sprite;
+ }
+ }
+
+ return this->InternalGetGlyph(key, GetFontAAState(this->fs));
+}
+
+const void *TrueTypeFontCache::GetFontTable(uint32 tag, size_t &length)
+{
+ const FontTable::iterator iter = this->font_tables.Find(tag);
+ if (iter != this->font_tables.data() + this->font_tables.size()) {
+ length = iter->second.first;
+ return iter->second.second;
+ }
+
+ const void *result = this->InternalGetFontTable(tag, length);
+
+ this->font_tables.Insert(tag, SmallPair(length, result));
+ return result;
+}
+
+
+#ifdef WITH_FREETYPE
+#include
+#include FT_FREETYPE_H
+#include FT_GLYPH_H
+#include FT_TRUETYPE_TABLES_H
+
+/** Font cache for fonts that are based on a freetype font. */
+class FreeTypeFontCache : public TrueTypeFontCache {
+private:
+ FT_Face face; ///< The font face associated with this font.
+
+ void SetFontSize(FontSize fs, FT_Face face, int pixels);
+ virtual const void *InternalGetFontTable(uint32 tag, size_t &length);
+ virtual const Sprite *InternalGetGlyph(GlyphID key, bool aa);
+
+public:
+ FreeTypeFontCache(FontSize fs, FT_Face face, int pixels);
+ ~FreeTypeFontCache();
+ virtual void ClearFontCache();
virtual GlyphID MapCharToGlyph(WChar key);
- virtual const void *GetFontTable(uint32 tag, size_t &length);
virtual const char *GetFontName() { return face->family_name; }
virtual bool IsBuiltInFont() { return false; }
};
FT_Library _library = nullptr;
-FreeTypeSettings _freetype;
-
-static const byte FACE_COLOUR = 1;
-static const byte SHADOW_COLOUR = 2;
/**
* Create a new FreeTypeFontCache.
@@ -275,7 +478,7 @@ static const byte SHADOW_COLOUR = 2;
* @param face The font that has to be loaded.
* @param pixels The number of pixels this font should be high.
*/
-FreeTypeFontCache::FreeTypeFontCache(FontSize fs, FT_Face face, int pixels) : FontCache(fs), face(face), req_size(pixels), glyph_to_sprite(nullptr)
+FreeTypeFontCache::FreeTypeFontCache(FontSize fs, FT_Face face, int pixels) : TrueTypeFontCache(fs, pixels), face(face)
{
assert(face != nullptr);
@@ -416,10 +619,6 @@ FreeTypeFontCache::~FreeTypeFontCache()
FT_Done_Face(this->face);
this->face = nullptr;
this->ClearFontCache();
-
- for (auto &iter : this->font_tables) {
- free(iter.second.second);
- }
}
/**
@@ -430,130 +629,14 @@ void FreeTypeFontCache::ClearFontCache()
/* Font scaling might have changed, determine font size anew if it was automatically selected. */
if (this->face != nullptr) this->SetFontSize(this->fs, this->face, this->req_size);
- if (this->glyph_to_sprite == nullptr) return;
-
- for (int i = 0; i < 256; i++) {
- if (this->glyph_to_sprite[i] == nullptr) continue;
-
- for (int j = 0; j < 256; j++) {
- if (this->glyph_to_sprite[i][j].duplicate) continue;
- free(this->glyph_to_sprite[i][j].sprite);
- }
-
- free(this->glyph_to_sprite[i]);
- }
-
- free(this->glyph_to_sprite);
- this->glyph_to_sprite = nullptr;
-
- Layouter::ResetFontCache(this->fs);
-}
-
-FreeTypeFontCache::GlyphEntry *FreeTypeFontCache::GetGlyphPtr(GlyphID key)
-{
- if (this->glyph_to_sprite == nullptr) return nullptr;
- if (this->glyph_to_sprite[GB(key, 8, 8)] == nullptr) return nullptr;
- return &this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)];
+ this->TrueTypeFontCache::ClearFontCache();
}
-void FreeTypeFontCache::SetGlyphPtr(GlyphID key, const GlyphEntry *glyph, bool duplicate)
+const Sprite *FreeTypeFontCache::InternalGetGlyph(GlyphID key, bool aa)
{
- if (this->glyph_to_sprite == nullptr) {
- DEBUG(freetype, 3, "Allocating root glyph cache for size %u", this->fs);
- this->glyph_to_sprite = CallocT(256);
- }
-
- if (this->glyph_to_sprite[GB(key, 8, 8)] == nullptr) {
- DEBUG(freetype, 3, "Allocating glyph cache for range 0x%02X00, size %u", GB(key, 8, 8), this->fs);
- this->glyph_to_sprite[GB(key, 8, 8)] = CallocT(256);
- }
-
- DEBUG(freetype, 4, "Set glyph for unicode character 0x%04X, size %u", key, this->fs);
- this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].sprite = glyph->sprite;
- this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].width = glyph->width;
- this->glyph_to_sprite[GB(key, 8, 8)][GB(key, 0, 8)].duplicate = duplicate;
-}
-
-static void *AllocateFont(size_t size)
-{
- return MallocT(size);
-}
-
-
-/* Check if a glyph should be rendered with antialiasing */
-static bool GetFontAAState(FontSize size)
-{
- /* AA is only supported for 32 bpp */
- if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() != 32) return false;
-
- switch (size) {
- default: NOT_REACHED();
- case FS_NORMAL: return _freetype.medium.aa;
- case FS_SMALL: return _freetype.small.aa;
- case FS_LARGE: return _freetype.large.aa;
- case FS_MONO: return _freetype.mono.aa;
- }
-}
-
-
-const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
-{
- if ((key & SPRITE_GLYPH) != 0) return this->parent->GetGlyph(key);
-
- /* Check for the glyph in our cache */
- GlyphEntry *glyph = this->GetGlyphPtr(key);
- if (glyph != nullptr && glyph->sprite != nullptr) return glyph->sprite;
-
FT_GlyphSlot slot = this->face->glyph;
- bool aa = GetFontAAState(this->fs);
-
- GlyphEntry new_glyph;
- if (key == 0) {
- GlyphID question_glyph = this->MapCharToGlyph('?');
- if (question_glyph == 0) {
- /* The font misses the '?' character. Use built-in sprite.
- * Note: We cannot use the baseset as this also has to work in the bootstrap GUI. */
-#define CPSET { 0, 0, 0, 0, 1 }
-#define CP___ { 0, 0, 0, 0, 0 }
- static SpriteLoader::CommonPixel builtin_questionmark_data[10 * 8] = {
- CP___, CP___, CPSET, CPSET, CPSET, CPSET, CP___, CP___,
- CP___, CPSET, CPSET, CP___, CP___, CPSET, CPSET, CP___,
- CP___, CP___, CP___, CP___, CP___, CPSET, CPSET, CP___,
- CP___, CP___, CP___, CP___, CPSET, CPSET, CP___, CP___,
- CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
- CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
- CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
- CP___, CP___, CP___, CP___, CP___, CP___, CP___, CP___,
- CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
- CP___, CP___, CP___, CPSET, CPSET, CP___, CP___, CP___,
- };
-#undef CPSET
-#undef CP___
- static const SpriteLoader::Sprite builtin_questionmark = {
- 10, // height
- 8, // width
- 0, // x_offs
- 0, // y_offs
- ST_FONT,
- builtin_questionmark_data
- };
-
- Sprite *spr = BlitterFactory::GetCurrentBlitter()->Encode(&builtin_questionmark, AllocateFont);
- assert(spr != nullptr);
- new_glyph.sprite = spr;
- new_glyph.width = spr->width + (this->fs != FS_NORMAL);
- this->SetGlyphPtr(key, &new_glyph, false);
- return new_glyph.sprite;
- } else {
- /* Use '?' for missing characters. */
- this->GetGlyph(question_glyph);
- glyph = this->GetGlyphPtr(question_glyph);
- this->SetGlyphPtr(key, glyph, true);
- return glyph->sprite;
- }
- }
FT_Load_Glyph(this->face, key, aa ? FT_LOAD_TARGET_NORMAL : FT_LOAD_TARGET_MONO);
FT_Render_Glyph(this->face->glyph, aa ? FT_RENDER_MODE_NORMAL : FT_RENDER_MODE_MONO);
@@ -597,6 +680,7 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
}
}
+ GlyphEntry new_glyph;
new_glyph.sprite = BlitterFactory::GetCurrentBlitter()->Encode(&sprite, AllocateFont);
new_glyph.width = slot->advance.x >> 6;
@@ -606,25 +690,6 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
}
-bool FreeTypeFontCache::GetDrawGlyphShadow()
-{
- return this->fs == FS_NORMAL && GetFontAAState(FS_NORMAL);
-}
-
-
-uint FreeTypeFontCache::GetGlyphWidth(GlyphID key)
-{
- if ((key & SPRITE_GLYPH) != 0) return this->parent->GetGlyphWidth(key);
-
- GlyphEntry *glyph = this->GetGlyphPtr(key);
- if (glyph == nullptr || glyph->sprite == nullptr) {
- this->GetGlyph(key);
- glyph = this->GetGlyphPtr(key);
- }
-
- return glyph->width;
-}
-
GlyphID FreeTypeFontCache::MapCharToGlyph(WChar key)
{
assert(IsPrintable(key));
@@ -636,14 +701,8 @@ GlyphID FreeTypeFontCache::MapCharToGlyph(WChar key)
return FT_Get_Char_Index(this->face, key);
}
-const void *FreeTypeFontCache::GetFontTable(uint32 tag, size_t &length)
+const void *FreeTypeFontCache::InternalGetFontTable(uint32 tag, size_t &length)
{
- const FontTable::iterator iter = this->font_tables.Find(tag);
- if (iter != this->font_tables.data() + this->font_tables.size()) {
- length = iter->second.first;
- return iter->second.second;
- }
-
FT_ULong len = 0;
FT_Byte *result = nullptr;
@@ -653,14 +712,329 @@ const void *FreeTypeFontCache::GetFontTable(uint32 tag, size_t &length)
result = MallocT(len);
FT_Load_Sfnt_Table(this->face, tag, 0, result, &len);
}
- length = len;
- this->font_tables.Insert(tag, SmallPair(length, result));
+ length = len;
return result;
}
+#elif defined(_WIN32)
+
+#include "os/windows/win32.h"
+#ifndef ANTIALIASED_QUALITY
+#define ANTIALIASED_QUALITY 4
+#endif
+
+/** Font cache for fonts that are based on a Win32 font. */
+class Win32FontCache : public TrueTypeFontCache {
+private:
+ LOGFONT logfont; ///< Logical font information for selecting the font face.
+ HFONT font = nullptr; ///< The font face associated with this font.
+ HDC dc = nullptr; ///< Cached GDI device context.
+ HGDIOBJ old_font; ///< Old font selected into the GDI context.
+ SIZE glyph_size; ///< Maximum size of regular glyphs.
+
+ void SetFontSize(FontSize fs, int pixels);
+ virtual const void *InternalGetFontTable(uint32 tag, size_t &length);
+ virtual const Sprite *InternalGetGlyph(GlyphID key, bool aa);
+
+public:
+ Win32FontCache(FontSize fs, const LOGFONT &logfont, int pixels);
+ ~Win32FontCache();
+ virtual void ClearFontCache();
+ virtual GlyphID MapCharToGlyph(WChar key);
+ virtual const char *GetFontName() { return WIDE_TO_MB(this->logfont.lfFaceName); }
+ virtual bool IsBuiltInFont() { return false; }
+ virtual void *GetOSHandle() { return &this->logfont; }
+};
+
+
+/**
+ * Create a new Win32FontCache.
+ * @param fs The font size that is going to be cached.
+ * @param logfont The font that has to be loaded.
+ * @param pixels The number of pixels this font should be high.
+ */
+Win32FontCache::Win32FontCache(FontSize fs, const LOGFONT &logfont, int pixels) : TrueTypeFontCache(fs, pixels), logfont(logfont)
+{
+ this->dc = CreateCompatibleDC(nullptr);
+ this->SetFontSize(fs, pixels);
+}
+
+Win32FontCache::~Win32FontCache()
+{
+ this->ClearFontCache();
+ DeleteDC(this->dc);
+ DeleteObject(this->font);
+}
+
+void Win32FontCache::SetFontSize(FontSize fs, int pixels)
+{
+ if (pixels == 0) {
+ /* Try to determine a good height based on the minimal height recommended by the font. */
+ int scaled_height = ScaleFontTrad(_default_font_height[this->fs]);
+ pixels = scaled_height;
+
+ HFONT temp = CreateFontIndirect(&this->logfont);
+ if (temp != nullptr) {
+ HGDIOBJ old = SelectObject(this->dc, temp);
+
+ UINT size = GetOutlineTextMetrics(this->dc, 0, nullptr);
+ LPOUTLINETEXTMETRIC otm = (LPOUTLINETEXTMETRIC)AllocaM(BYTE, size);
+ GetOutlineTextMetrics(this->dc, size, otm);
+
+ /* Font height is minimum height plus the difference between the default
+ * height for this font size and the small size. */
+ int diff = scaled_height - ScaleFontTrad(_default_font_height[FS_SMALL]);
+ pixels = Clamp(min(otm->otmusMinimumPPEM, 20) + diff, scaled_height, MAX_FONT_SIZE);
+
+ SelectObject(dc, old);
+ DeleteObject(temp);
+ }
+ } else {
+ pixels = ScaleFontTrad(pixels);
+ }
+ this->used_size = pixels;
+
+ /* Create GDI font handle. */
+ this->logfont.lfHeight = -pixels;
+ this->logfont.lfWidth = 0;
+ this->logfont.lfOutPrecision = ANTIALIASED_QUALITY;
+
+ if (this->font != nullptr) {
+ SelectObject(dc, this->old_font);
+ DeleteObject(this->font);
+ }
+ this->font = CreateFontIndirect(&this->logfont);
+ this->old_font = SelectObject(this->dc, this->font);
+
+ /* Query the font metrics we needed. */
+ UINT otmSize = GetOutlineTextMetrics(this->dc, 0, nullptr);
+ POUTLINETEXTMETRIC otm = (POUTLINETEXTMETRIC)AllocaM(BYTE, otmSize);
+ GetOutlineTextMetrics(this->dc, otmSize, otm);
+
+ this->units_per_em = otm->otmEMSquare;
+ this->ascender = otm->otmTextMetrics.tmAscent;
+ this->descender = otm->otmTextMetrics.tmDescent;
+ this->height = this->ascender + this->descender;
+ this->glyph_size.cx = otm->otmTextMetrics.tmMaxCharWidth;
+ this->glyph_size.cy = otm->otmTextMetrics.tmHeight;
+
+ DEBUG(freetype, 2, "Loaded font '%s' with size %d", FS2OTTD((LPTSTR)((BYTE *)otm + (ptrdiff_t)otm->otmpFullName)), pixels);
+}
+
+/**
+ * Reset cached glyphs.
+ */
+void Win32FontCache::ClearFontCache()
+{
+ /* GUI scaling might have changed, determine font size anew if it was automatically selected. */
+ if (this->font != nullptr) this->SetFontSize(this->fs, this->req_size);
+
+ this->TrueTypeFontCache::ClearFontCache();
+}
+
+/* virtual */ const Sprite *Win32FontCache::InternalGetGlyph(GlyphID key, bool aa)
+{
+ GLYPHMETRICS gm;
+ MAT2 mat = { {0, 1}, {0, 0}, {0, 0}, {0, 1} };
+
+ /* Make a guess for the needed memory size. */
+ DWORD size = this->glyph_size.cy * Align(aa ? this->glyph_size.cx : max(this->glyph_size.cx / 8l, 1l), 4); // Bitmap data is DWORD-aligned rows.
+ byte *bmp = AllocaM(byte, size);
+ size = GetGlyphOutline(this->dc, key, GGO_GLYPH_INDEX | (aa ? GGO_GRAY8_BITMAP : GGO_BITMAP), &gm, size, bmp, &mat);
+
+ if (size == GDI_ERROR) {
+ /* No dice with the guess. First query size of needed glyph memory, then allocate the
+ * memory and query again. This dance is necessary as some glyphs will only render with
+ * the exact matching size; e.g. the space glyph has no pixels and must be requested
+ * with size == 0, anything else fails. Unfortunately, a failed call doesn't return any
+ * info about the size and thus the triple GetGlyphOutline()-call. */
+ size = GetGlyphOutline(this->dc, key, GGO_GLYPH_INDEX | (aa ? GGO_GRAY8_BITMAP : GGO_BITMAP), &gm, 0, nullptr, &mat);
+ if (size == GDI_ERROR) usererror("Unable to render font glyph");
+ bmp = AllocaM(byte, size);
+ GetGlyphOutline(this->dc, key, GGO_GLYPH_INDEX | (aa ? GGO_GRAY8_BITMAP : GGO_BITMAP), &gm, size, bmp, &mat);
+ }
+
+ /* Add 1 pixel for the shadow on the medium font. Our sprite must be at least 1x1 pixel. */
+ uint width = max(1U, (uint)gm.gmBlackBoxX + (this->fs == FS_NORMAL));
+ uint height = max(1U, (uint)gm.gmBlackBoxY + (this->fs == FS_NORMAL));
+
+ /* Limit glyph size to prevent overflows later on. */
+ if (width > 256 || height > 256) usererror("Font glyph is too large");
+
+ /* GDI has rendered the glyph, now we allocate a sprite and copy the image into it. */
+ SpriteLoader::Sprite sprite;
+ sprite.AllocateData(ZOOM_LVL_NORMAL, width * height);
+ sprite.type = ST_FONT;
+ sprite.width = width;
+ sprite.height = height;
+ sprite.x_offs = gm.gmptGlyphOrigin.x;
+ sprite.y_offs = this->ascender - gm.gmptGlyphOrigin.y;
+
+ if (size > 0) {
+ /* All pixel data returned by GDI is in the form of DWORD-aligned rows.
+ * For a non anti-aliased glyph, the returned bitmap has one bit per pixel.
+ * For anti-aliased rendering, GDI uses the strange value range of 0 to 64,
+ * inclusively. To map this to 0 to 255, we shift left by two and then
+ * subtract one. */
+ uint pitch = Align(aa ? gm.gmBlackBoxX : max(gm.gmBlackBoxX / 8u, 1u), 4);
+
+ /* Draw shadow for medium size. */
+ if (this->fs == FS_NORMAL && !aa) {
+ for (uint y = 0; y < gm.gmBlackBoxY; y++) {
+ for (uint x = 0; x < gm.gmBlackBoxX; x++) {
+ if (aa ? (bmp[x + y * pitch] > 0) : HasBit(bmp[(x / 8) + y * pitch], 7 - (x % 8))) {
+ sprite.data[1 + x + (1 + y) * sprite.width].m = SHADOW_COLOUR;
+ sprite.data[1 + x + (1 + y) * sprite.width].a = aa ? (bmp[x + y * pitch] << 2) - 1 : 0xFF;
+ }
+ }
+ }
+ }
+
+ for (uint y = 0; y < gm.gmBlackBoxY; y++) {
+ for (uint x = 0; x < gm.gmBlackBoxX; x++) {
+ if (aa ? (bmp[x + y * pitch] > 0) : HasBit(bmp[(x / 8) + y * pitch], 7 - (x % 8))) {
+ sprite.data[x + y * sprite.width].m = FACE_COLOUR;
+ sprite.data[x + y * sprite.width].a = aa ? (bmp[x + y * pitch] << 2) - 1 : 0xFF;
+ }
+ }
+ }
+ }
+
+ GlyphEntry new_glyph;
+ new_glyph.sprite = BlitterFactory::GetCurrentBlitter()->Encode(&sprite, AllocateFont);
+ new_glyph.width = gm.gmCellIncX;
+
+ this->SetGlyphPtr(key, &new_glyph);
+
+ return new_glyph.sprite;
+}
+
+/* virtual */ GlyphID Win32FontCache::MapCharToGlyph(WChar key)
+{
+ assert(IsPrintable(key));
+
+ if (key >= SCC_SPRITE_START && key <= SCC_SPRITE_END) {
+ return this->parent->MapCharToGlyph(key);
+ }
+
+ /* Convert characters outside of the BMP into surrogate pairs. */
+ WCHAR chars[2];
+ if (key >= 0x010000U) {
+ chars[0] = (WCHAR)(((key - 0x010000U) >> 10) + 0xD800);
+ chars[1] = (WCHAR)(((key - 0x010000U) & 0x3FF) + 0xDC00);
+ } else {
+ chars[0] = (WCHAR)(key & 0xFFFF);
+ }
+
+ WORD glyphs[2] = {0, 0};
+ GetGlyphIndicesW(this->dc, chars, key >= 0x010000U ? 2 : 1, glyphs, GGI_MARK_NONEXISTING_GLYPHS);
+
+ return glyphs[0] != 0xFFFF ? glyphs[0] : 0;
+}
+
+/* virtual */ const void *Win32FontCache::InternalGetFontTable(uint32 tag, size_t &length)
+{
+ DWORD len = GetFontData(this->dc, tag, 0, nullptr, 0);
+
+ void *result = nullptr;
+ if (len != GDI_ERROR && len > 0) {
+ result = MallocT(len);
+ GetFontData(this->dc, tag, 0, result, len);
+ }
+
+ length = len;
+ return result;
+}
+
+/**
+ * Loads the GDI font.
+ * If a GDI font description is present, e.g. from the automatic font
+ * fallback search, use it. Otherwise, try to resolve it by font name.
+ * @param fs The font size to load.
+ */
+static void LoadWin32Font(FontSize fs)
+{
+ static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" };
+
+ FreeTypeSubSetting *settings = nullptr;
+ switch (fs) {
+ default: NOT_REACHED();
+ case FS_SMALL: settings = &_freetype.small; break;
+ case FS_NORMAL: settings = &_freetype.medium; break;
+ case FS_LARGE: settings = &_freetype.large; break;
+ case FS_MONO: settings = &_freetype.mono; break;
+ }
+
+ if (StrEmpty(settings->font)) return;
+
+ LOGFONT logfont;
+ MemSetT(&logfont, 0);
+ logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH;
+ logfont.lfCharSet = DEFAULT_CHARSET;
+ logfont.lfOutPrecision = OUT_OUTLINE_PRECIS;
+ logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
+
+ if (settings->os_handle != nullptr) {
+ logfont = *(const LOGFONT *)settings->os_handle;
+ } else if (strchr(settings->font, '.') != nullptr && FileExists(settings->font)) {
+ /* Might be a font file name, try load it. */
+ TCHAR fontPath[MAX_PATH];
+ convert_to_fs(settings->font, fontPath, lengthof(fontPath), false);
+
+ if (AddFontResourceEx(fontPath, FR_PRIVATE, 0) != 0) {
+ /* Try a nice little undocumented function first for getting the internal font name.
+ * Some documentation is fount at: http://www.undocprint.org/winspool/getfontresourceinfo */
+ typedef BOOL(WINAPI * PFNGETFONTRESOURCEINFO)(LPCTSTR, LPDWORD, LPVOID, DWORD);
+#ifdef UNICODE
+ static PFNGETFONTRESOURCEINFO GetFontResourceInfo = (PFNGETFONTRESOURCEINFO)GetProcAddress(GetModuleHandle(_T("Gdi32")), "GetFontResourceInfoW");
+#else
+ static PFNGETFONTRESOURCEINFO GetFontResourceInfo = (PFNGETFONTRESOURCEINFO)GetProcAddress(GetModuleHandle(_T("Gdi32")), "GetFontResourceInfoA");
+#endif
+
+ if (GetFontResourceInfo != nullptr) {
+ /* Try to query an array of LOGFONTs that describe the file. */
+ DWORD len = 0;
+ if (GetFontResourceInfo(fontPath, &len, nullptr, 2) && len >= sizeof(LOGFONT)) {
+ LOGFONT *buf = (LOGFONT *)AllocaM(byte, len);
+ if (GetFontResourceInfo(fontPath, &len, buf, 2)) {
+ logfont = *buf; // Just use first entry.
+ }
+ }
+ }
+
+ /* No dice yet. Use the file name as the font face name, hoping it matches. */
+ if (logfont.lfFaceName[0] == 0) {
+ TCHAR fname[_MAX_FNAME];
+ _tsplitpath(fontPath, nullptr, nullptr, fname, nullptr);
+
+ _tcsncpy_s(logfont.lfFaceName, lengthof(logfont.lfFaceName), fname, _TRUNCATE);
+ logfont.lfWeight = strcasestr(settings->font, " bold") != nullptr || strcasestr(settings->font, "-bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts.
+ }
+ } else {
+ ShowInfoF("Unable to load file '%s' for %s font, using default windows font selection instead", settings->font, SIZE_TO_NAME[fs]);
+ }
+ }
+
+ if (logfont.lfFaceName[0] == 0) {
+ logfont.lfWeight = strcasestr(settings->font, " bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts.
+ convert_to_fs(settings->font, logfont.lfFaceName, lengthof(logfont.lfFaceName), false);
+ }
+
+ HFONT font = CreateFontIndirect(&logfont);
+ if (font == nullptr) {
+ ShowInfoF("Unable to use '%s' for %s font, Win32 reported error 0x%lX, using sprite font instead", settings->font, SIZE_TO_NAME[fs], GetLastError());
+ return;
+ }
+ DeleteObject(font);
+
+ new Win32FontCache(fs, logfont, settings->size);
+}
+
#endif /* WITH_FREETYPE */
+#endif /* defined(WITH_FREETYPE) || defined(_WIN32) */
+
/**
* (Re)initialize the freetype related things, i.e. load the non-sprite fonts.
* @param monospace Whether to initialise the monospace or regular fonts.
@@ -675,6 +1049,8 @@ void InitFreeType(bool monospace)
#ifdef WITH_FREETYPE
LoadFreeTypeFont(fs);
+#elif defined(_WIN32)
+ LoadWin32Font(fs);
#endif
}
}
diff --git a/src/fontcache.h b/src/fontcache.h
index e13fb5802f..90c339fa63 100644
--- a/src/fontcache.h
+++ b/src/fontcache.h
@@ -129,6 +129,15 @@ public:
*/
virtual const void *GetFontTable(uint32 tag, size_t &length) = 0;
+ /**
+ * Get the native OS font handle, if there is one.
+ * @return Opaque OS font handle.
+ */
+ virtual void *GetOSHandle()
+ {
+ return nullptr;
+ }
+
/**
* Get the name of this font.
* @return The name of the font.
@@ -206,13 +215,15 @@ static inline bool GetDrawGlyphShadow(FontSize size)
return FontCache::Get(size)->GetDrawGlyphShadow();
}
-#ifdef WITH_FREETYPE
+#if defined(WITH_FREETYPE) || defined(_WIN32)
/** Settings for a single freetype font. */
struct FreeTypeSubSetting {
char font[MAX_PATH]; ///< The name of the font, or path to the font.
uint size; ///< The (requested) size of the font.
bool aa; ///< Whether to do anti aliasing or not.
+
+ const void *os_handle = nullptr; ///< Optional native OS font info.
};
/** Settings for the freetype fonts. */
@@ -225,7 +236,7 @@ struct FreeTypeSettings {
extern FreeTypeSettings _freetype;
-#endif /* WITH_FREETYPE */
+#endif /* defined(WITH_FREETYPE) || defined(_WIN32) */
void InitFreeType(bool monospace);
void UninitFreeType();
diff --git a/src/fontdetection.cpp b/src/fontdetection.cpp
index 3a5893e115..7b2a6756ca 100644
--- a/src/fontdetection.cpp
+++ b/src/fontdetection.cpp
@@ -9,7 +9,7 @@
/** @file fontdetection.cpp Detection of the right font. */
-#ifdef WITH_FREETYPE
+#if defined(WITH_FREETYPE) || defined(_WIN32)
#include "stdafx.h"
#include "debug.h"
@@ -17,7 +17,9 @@
#include "string_func.h"
#include "strings_func.h"
+#ifdef WITH_FREETYPE
extern FT_Library _library;
+#endif /* WITH_FREETYPE */
/**
* Get the font loaded into a Freetype face by using a font-name.
@@ -37,6 +39,7 @@ extern FT_Library _library;
#include "safeguards.h"
+#ifdef WITH_FREETYPE
/**
* Get the short DOS 8.3 format for paths.
* FreeType doesn't support Unicode filenames and Windows' fopen (as used
@@ -241,6 +244,7 @@ err2:
err1:
return ret_font_name == nullptr ? WIDE_TO_MB((const TCHAR*)logfont->elfFullName) : ret_font_name;
}
+#endif /* WITH_FREETYPE */
class FontList {
protected:
@@ -317,6 +321,7 @@ static int CALLBACK EnumFontCallback(const ENUMLOGFONTEX *logfont, const NEWTEXT
char font_name[MAX_PATH];
convert_from_fs((const TCHAR *)logfont->elfFullName, font_name, lengthof(font_name));
+#ifdef WITH_FREETYPE
/* Add english name after font name */
const char *english_name = GetEnglishFontName(logfont);
strecpy(font_name + strlen(font_name) + 1, english_name, lastof(font_name));
@@ -337,8 +342,13 @@ static int CALLBACK EnumFontCallback(const ENUMLOGFONTEX *logfont, const NEWTEXT
}
if (!found) return 1;
+#else
+ const char *english_name = font_name;
+#endif /* WITH_FREETYPE */
- info->callback->SetFontNames(info->settings, font_name);
+ PLOGFONT os_data = MallocT(1);
+ *os_data = logfont->elfLogFont;
+ info->callback->SetFontNames(info->settings, font_name, os_data);
if (info->callback->FindMissingGlyphs(nullptr)) return 1;
DEBUG(freetype, 1, "Fallback font: %s (%s)", font_name, english_name);
return 0; // stop enumerating
diff --git a/src/fontdetection.h b/src/fontdetection.h
index edb961e6d3..01e0223cd6 100644
--- a/src/fontdetection.h
+++ b/src/fontdetection.h
@@ -27,6 +27,9 @@
*/
FT_Error GetFontByFaceName(const char *font_name, FT_Face *face);
+#endif /* WITH_FREETYPE */
+
+#if defined(WITH_FREETYPE) || defined(_WIN32)
/**
* We would like to have a fallback font as the current one
* doesn't contain all characters we need.
@@ -39,6 +42,6 @@ FT_Error GetFontByFaceName(const char *font_name, FT_Face *face);
*/
bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, int winlangid, class MissingGlyphSearcher *callback);
-#endif /* WITH_FREETYPE */
+#endif /* defined(WITH_FREETYPE) || defined(WIN32)*/
#endif
diff --git a/src/framerate_gui.cpp b/src/framerate_gui.cpp
index fe8338899d..10014b4f41 100644
--- a/src/framerate_gui.cpp
+++ b/src/framerate_gui.cpp
@@ -22,6 +22,9 @@
#include "guitimer_func.h"
#include "company_base.h"
#include "ai/ai_info.hpp"
+#include "ai/ai_instance.hpp"
+#include "game/game.hpp"
+#include "game/game_instance.hpp"
#include "widgets/framerate_widget.h"
#include "safeguards.h"
@@ -365,6 +368,9 @@ static const NWidgetPart _framerate_window_widgets[] = {
NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_NAMES), SetScrollbar(WID_FRW_SCROLLBAR),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_CURRENT), SetScrollbar(WID_FRW_SCROLLBAR),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_AVERAGE), SetScrollbar(WID_FRW_SCROLLBAR),
+ NWidget(NWID_SELECTION, INVALID_COLOUR, WID_FRW_SEL_MEMORY),
+ NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_ALLOCSIZE), SetScrollbar(WID_FRW_SCROLLBAR),
+ EndContainer(),
EndContainer(),
NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_INFO_DATA_POINTS), SetDataTip(STR_FRAMERATE_DATA_POINTS, 0x0),
EndContainer(),
@@ -378,6 +384,7 @@ static const NWidgetPart _framerate_window_widgets[] = {
struct FramerateWindow : Window {
bool small;
+ bool showing_memory;
GUITimer next_update;
int num_active;
int num_displayed;
@@ -424,6 +431,7 @@ struct FramerateWindow : Window {
{
this->InitNested(number);
this->small = this->IsShaded();
+ this->showing_memory = true;
this->UpdateData();
this->num_displayed = this->num_active;
this->next_update.SetInterval(100);
@@ -453,6 +461,7 @@ struct FramerateWindow : Window {
void UpdateData()
{
double gl_rate = _pf_data[PFE_GAMELOOP].GetRate();
+ bool have_script = false;
this->rate_gameloop.SetRate(gl_rate, _pf_data[PFE_GAMELOOP].expected_rate);
this->speed_gameloop.SetRate(gl_rate / _pf_data[PFE_GAMELOOP].expected_rate, 1.0);
if (this->small) return; // in small mode, this is everything needed
@@ -463,7 +472,16 @@ struct FramerateWindow : Window {
for (PerformanceElement e = PFE_FIRST; e < PFE_MAX; e++) {
this->times_shortterm[e].SetTime(_pf_data[e].GetAverageDurationMilliseconds(8), MILLISECONDS_PER_TICK);
this->times_longterm[e].SetTime(_pf_data[e].GetAverageDurationMilliseconds(NUM_FRAMERATE_POINTS), MILLISECONDS_PER_TICK);
- if (_pf_data[e].num_valid > 0) new_active++;
+ if (_pf_data[e].num_valid > 0) {
+ new_active++;
+ if (e == PFE_GAMESCRIPT || e >= PFE_AI0) have_script = true;
+ }
+ }
+
+ if (this->showing_memory != have_script) {
+ NWidgetStacked *plane = this->GetWidget(WID_FRW_SEL_MEMORY);
+ plane->SetDisplayedPlane(have_script ? 0 : SZSP_VERTICAL);
+ this->showing_memory = have_script;
}
if (new_active != this->num_active) {
@@ -545,7 +563,8 @@ struct FramerateWindow : Window {
}
case WID_FRW_TIMES_CURRENT:
- case WID_FRW_TIMES_AVERAGE: {
+ case WID_FRW_TIMES_AVERAGE:
+ case WID_FRW_ALLOCSIZE: {
*size = GetStringBoundingBox(STR_FRAMERATE_CURRENT + (widget - WID_FRW_TIMES_CURRENT));
SetDParam(0, 999999);
SetDParam(1, 2);
@@ -582,6 +601,37 @@ struct FramerateWindow : Window {
}
}
+ void DrawElementAllocationsColumn(const Rect &r) const
+ {
+ const Scrollbar *sb = this->GetScrollbar(WID_FRW_SCROLLBAR);
+ uint16 skip = sb->GetPosition();
+ int drawable = this->num_displayed;
+ int y = r.top;
+ DrawString(r.left, r.right, y, STR_FRAMERATE_MEMORYUSE, TC_FROMSTRING, SA_CENTER, true);
+ y += FONT_HEIGHT_NORMAL + VSPACING;
+ for (PerformanceElement e : DISPLAY_ORDER_PFE) {
+ if (_pf_data[e].num_valid == 0) continue;
+ if (skip > 0) {
+ skip--;
+ } else if (e == PFE_GAMESCRIPT || e >= PFE_AI0) {
+ if (e == PFE_GAMESCRIPT) {
+ SetDParam(0, Game::GetInstance()->GetAllocatedMemory());
+ } else {
+ SetDParam(0, Company::Get(e - PFE_AI0)->ai_instance->GetAllocatedMemory());
+ }
+ DrawString(r.left, r.right, y, STR_FRAMERATE_BYTES_GOOD, TC_FROMSTRING, SA_RIGHT);
+ y += FONT_HEIGHT_NORMAL;
+ drawable--;
+ if (drawable == 0) break;
+ } else {
+ /* skip non-script */
+ y += FONT_HEIGHT_NORMAL;
+ drawable--;
+ if (drawable == 0) break;
+ }
+ }
+ }
+
void DrawWidget(const Rect &r, int widget) const override
{
switch (widget) {
@@ -618,6 +668,9 @@ struct FramerateWindow : Window {
/* Render averages of all recorded values */
DrawElementTimesColumn(r, STR_FRAMERATE_AVERAGE, this->times_longterm);
break;
+ case WID_FRW_ALLOCSIZE:
+ DrawElementAllocationsColumn(r);
+ break;
}
}
diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp
index 45baef60ad..b69b8f46be 100644
--- a/src/game/game_text.cpp
+++ b/src/game/game_text.cpp
@@ -111,7 +111,7 @@ std::unique_ptr ReadRawLanguageStrings(const char *file)
while (i > 0 && (buffer[i - 1] == '\r' || buffer[i - 1] == '\n' || buffer[i - 1] == ' ')) i--;
buffer[i] = '\0';
- ret->lines.emplace_back(buffer, buffer + i);
+ ret->lines.emplace_back(buffer, i);
if (len > to_read) {
to_read = 0;
diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt
index 57379d3bc3..eb3741e928 100644
--- a/src/lang/afrikaans.txt
+++ b/src/lang/afrikaans.txt
@@ -2394,6 +2394,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bou tonn
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Skakel bou/verwydering van pad konstruksie
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Skakel bou/verwyder vir tremweg konstruksie
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Pad Depot Oriëntering
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Kies pad voertuig depot orientasie
@@ -3350,10 +3351,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuwe Elektries
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuwe monospoor voertuie
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuwe Maglev Voertuie
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Spoorweg Voertuie
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuwe Pad Voertuie
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Spoorweg Voertuie
STR_BUY_VEHICLE_SHIP_CAPTION :Nuwe Skepe
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nuwe Vliegtuig
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Koste: {GOLD}{CURRENCY_LONG}{BLACK} Gewig: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Spoed: {GOLD}{VELOCITY}{BLACK} Krag: {GOLD}{POWER}
@@ -3501,13 +3505,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}U staan
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Boodskap van voertuig fabrikant
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Ons het sopas 'n nuwe {STRING} ontwerp, sal jy belangstel om hierdie voertuig eksklusief vir 'n jaar te gebruik. Hierdie word gedoen om te kyk hoe die voertuig doen voordat hy wereld wyd in produksie gesit word?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :spoorweg lokomotief
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :padvoertuig
-STR_ENGINE_PREVIEW_AIRCRAFT :vliegtuig
-STR_ENGINE_PREVIEW_SHIP :skip
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monospoor lokomotief
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotief
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :padvoertuig
+
+STR_ENGINE_PREVIEW_AIRCRAFT :vliegtuig
+STR_ENGINE_PREVIEW_SHIP :skip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koste: {CURRENCY_LONG} Massa: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER}{}Loopkoste: {CURRENCY_LONG}/jr{}Kapasitiet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koste: {CURRENCY_LONG} Gewig: {WEIGHT_SHORT}{}Spoed: {VELOCITY} Krag: {POWER} Maks. Treg Krag: {6:FORCE}{}Lopende Koste: {4:CURRENCY_LONG}/jaar{}Kapasitiet: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koste: {CURRENCY_LONG} Maks. Spoed: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Lopende Koste: {CURRENCY_LONG}/jaar
@@ -3548,6 +3555,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektriese trei
STR_REPLACE_MONORAIL_VEHICLES :Monospoor voertuie
STR_REPLACE_MAGLEV_VEHICLES :Maglev Voertuie
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Wa verwydering: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Maak autovervanging die lengte van 'n trein dieselfde hou deur verwydering waens (deur voor te begin), indien die enjin vervanging die trein langer sal maak
diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt
index ecce7f65c5..4c76dd4f19 100644
--- a/src/lang/arabic_egypt.txt
+++ b/src/lang/arabic_egypt.txt
@@ -2034,6 +2034,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}بناء
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}بدل بناء/إزالة الطرق
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}بدل بناء / ازالة طرق الترام
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}اتجاه ورشة الصيانة
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}اختر اتجاة ورشة صيانة العربات
@@ -2881,10 +2882,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :عربات قط
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :عربات قطار احادي جديدة
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :عربات قطار ممغنط جديدة
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :عربات قطار
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :عربات جديدة
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :عربات قطار
STR_BUY_VEHICLE_SHIP_CAPTION :سفن جديدة
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :طائرة جديدة
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK} التكلفة: {GOLD}{CURRENCY_LONG}{BLACK} الوزن: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}السرعة: {GOLD}{VELOCITY}{BLACK} الطاقة: {GOLD}{POWER}
@@ -3019,13 +3023,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}أنت
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}رسالة من المصنعين
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}قد صممنا موديل جديد من {STRING} - هل ترغب في استخدام سنة حصري لهذه المركبة, لنستطيع تقييمها للأستخدام العام
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :قاطرة سكة حديد
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :مركبة
-STR_ENGINE_PREVIEW_AIRCRAFT :طائرة
-STR_ENGINE_PREVIEW_SHIP :سفينة
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :قاطرة سكة قطار احادية
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سكة قطار ممغنطة
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :مركبة
+
+STR_ENGINE_PREVIEW_AIRCRAFT :طائرة
+STR_ENGINE_PREVIEW_SHIP :سفينة
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة
@@ -3059,6 +3066,7 @@ STR_REPLACE_ELRAIL_VEHICLES :سكة حديد
STR_REPLACE_MONORAIL_VEHICLES :عربات احادية السكة
STR_REPLACE_MAGLEV_VEHICLES :مركبات ممغنطة
+
STR_REPLACE_REMOVE_WAGON :{BLACK} إزالة العربات: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK} المحافظة على طول القطار بازالة عربات ابتداء من المقدمة عند التبديل - عندما يكون التبدل ينتج قطارا اطول.
diff --git a/src/lang/basque.txt b/src/lang/basque.txt
index 40f1048cdd..4120748df9 100644
--- a/src/lang/basque.txt
+++ b/src/lang/basque.txt
@@ -2297,6 +2297,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tranbia
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Errepidea ezabatu
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Tranbia ezabatu
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Errepide gordailuen norabidea
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Aukeratu errepide biltokien norabidea
@@ -3237,10 +3238,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tren elektriko
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Monorail tren berriak
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Tren magnetiko berriak
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Tren berriak
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Errepide ibilgailu berriak
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Tren berriak
STR_BUY_VEHICLE_SHIP_CAPTION :Itsasontzi berriak
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Hegazkin berriak
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kosteak: {GOLD}{CURRENCY_LONG}{BLACK} Pisua: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Abiadura: {GOLD}{VELOCITY}{BLACK} Potentzia: {GOLD}{POWER}
@@ -3384,13 +3388,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Gordail
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Ibilgailu frabrikaren mezua
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}{STRING} berria diesinatu dugu - Nahiko zenuke ibilgailu honen urte baterako erabilera esklusiboa izatea? Bere funtzionamendua ikusi ahalko genuke publiko egin aurretik.
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :Lokomotora
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :Errepide ibilgailua
-STR_ENGINE_PREVIEW_AIRCRAFT :Hegazkina
-STR_ENGINE_PREVIEW_SHIP :Itsasontzia
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail lokomotora
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Lokomotora magnetikoa
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :Errepide ibilgailua
+
+STR_ENGINE_PREVIEW_AIRCRAFT :Hegazkina
+STR_ENGINE_PREVIEW_SHIP :Itsasontzia
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostea: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Pisua: {VELOCITY} Potentzia: {POWER}{}Mantenimendua: {CURRENCY_LONG}/urtero{}Edukiera: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostua: {CURRENCY_LONG} Pisua: {WEIGHT_SHORT}{}Abiadura: {VELOCITY} Potentzia: {POWER} Gehienezko trakzioa: {6:FORCE}{}Mantinemendua: {4:CURRENCY_LONG}/urtero{}Edukiera: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostea: {CURRENCY_LONG} Gehienezko abiadura: {VELOCITY}{}Edukiera: {CARGO_LONG}{}Mantenimendua: {CURRENCY_LONG}/urtero
@@ -3429,6 +3436,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Tren ibilgailu
STR_REPLACE_MONORAIL_VEHICLES :Monorail trenak
STR_REPLACE_MAGLEV_VEHICLES :Tren magnetikoak
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Bagoiak ezabatu: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ordezkatze automatikoari agindu trenaren luzera errespetatzea, bagoiak ezabatuz luzera handitzen badute (trenaren hasierako bagoietik hasita)
diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt
index 2d0adba740..3d28fc712a 100644
--- a/src/lang/belarusian.txt
+++ b/src/lang/belarusian.txt
@@ -2736,6 +2736,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Буда
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Будаўніцтва/выдаленьне аўтамабільных дарогаў
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Будаўніцтва/выдаленьне трамвайных каляінаў
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Кірунак гаража
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Выберыце кірунак гаража
@@ -3706,10 +3707,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новы эле
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Новы монарэйкавы цягнік
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Новы маґнітарэйкавы цягнік
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Новы цягнiк
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Новы аўтамабiль
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Новы цягнiк
STR_BUY_VEHICLE_SHIP_CAPTION :Новы карабель
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Новы авiятранспарт
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Кошт: {GOLD}{CURRENCY_LONG}{BLACK} Вага: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Хуткасьць: {GOLD}{VELOCITY}{BLACK} Магутнасьць: {GOLD}{POWER}
@@ -3858,18 +3862,10 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Уве
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Паведамленьне ад вытворцы транспарту
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Мы стварылі новую мадэль {STRING.gen}. Цi зацікаўлены Вы ў яе гадавым эксклюзіўным выкарыстаньні для праверкі перад запускам у масавую вытворчасьць?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=m}чыгуначны лякаматыў
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.gen :чыгуначнага лакаматыва
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.acc :чыгуначны лякаматыў
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}аўтамабiль
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.gen :аўтамабiля
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.acc :аўтамабіль
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=m}авiятранспарт
-STR_ENGINE_PREVIEW_AIRCRAFT.gen :авiятранспарту
-STR_ENGINE_PREVIEW_AIRCRAFT.acc :авіятранспарт
-STR_ENGINE_PREVIEW_SHIP :{G=m}карабель
-STR_ENGINE_PREVIEW_SHIP.gen :карабля
-STR_ENGINE_PREVIEW_SHIP.acc :карабель
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=m}монарэйкавы лякаматыў
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.gen :монарэйкавага лякаматыва
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.acc :монарэйкавы лякаматыў
@@ -3877,6 +3873,17 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=m}маґні
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магнiтарэйкавага лякаматыва
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :магнітарэйкавы лякаматыў
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}аўтамабiль
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.gen :аўтамабiля
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.acc :аўтамабіль
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=m}авiятранспарт
+STR_ENGINE_PREVIEW_AIRCRAFT.gen :авiятранспарту
+STR_ENGINE_PREVIEW_AIRCRAFT.acc :авіятранспарт
+STR_ENGINE_PREVIEW_SHIP :{G=m}карабель
+STR_ENGINE_PREVIEW_SHIP.gen :карабля
+STR_ENGINE_PREVIEW_SHIP.acc :карабель
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER}{}Кошт абслуг.: {CURRENCY_LONG}/год{}Ёмістасьць: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Кошт: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Хуткасьць: {VELOCITY} Магутнасьць: {POWER} Макс. ЦН: {6:FORCE}{}Кошт абслуг.: {4:CURRENCY_LONG}/год{}Ёмістасьць: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Кошт: {CURRENCY_LONG} Макс. хуткасьць: {VELOCITY}{}Ёмістасьць: {CARGO_LONG}{}Кошт абслуг.: {CURRENCY_LONG}/год
@@ -3930,6 +3937,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Чыгунач
STR_REPLACE_MONORAIL_VEHICLES :Монарэйкавыя ТС
STR_REPLACE_MAGLEV_VEHICLES :Маґнітныя ТС
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Выдаленьне ваґонаў: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Дазволіць пры аўтазамене захоўваць даўжыню цягнікоў шляхам выдаленьня ваґонаў (пачынаючы з галавы цягніка), калі пры аўтазамене лякаматыва павялічыцца даўжыня цягніка.
@@ -4581,7 +4589,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... гэ
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... няправільны кірунак дарогі
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... на прахадных прыпынках нельга рабіць павароты
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... на прахадных прыпынках нельга рабіць скрыжаваньнi
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... дарога аднабаковая ці заблакавана
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Немагчыма выдаліць частку станцыi...
diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt
index 65e1bce25a..6bc057e2c3 100644
--- a/src/lang/brazilian_portuguese.txt
+++ b/src/lang/brazilian_portuguese.txt
@@ -2411,6 +2411,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Alternar construir/remover para contrução rodoviária
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alternar construir/remover linhas de bonde e sinais
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientação da Garagem
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Selecionar a orientação da garagem
@@ -3416,10 +3417,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Locomotiva
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova Locomotiva Monotrilho
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova Locomotiva Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trens
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Automóveis
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trens
STR_BUY_VEHICLE_SHIP_CAPTION :Novas Embarcações
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Preço: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Velocidade: {GOLD}{VELOCITY}{BLACK} Potência: {GOLD}{POWER}
@@ -3568,13 +3572,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Você e
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensagem de um fabricante de veículos
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Projetamos um novo {STRING} - estaria interessado em um ano de exclusividade do uso deste veículo, de modo a que possamos avaliar a sua performance antes de o disponibilizar para todos ?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :locomotiva ferroviária
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :automóvel
-STR_ENGINE_PREVIEW_AIRCRAFT :aeronave
-STR_ENGINE_PREVIEW_SHIP :embarcação
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotiva monotrilho
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :automóvel
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aeronave
+STR_ENGINE_PREVIEW_SHIP :embarcação
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano
@@ -3620,6 +3627,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Locomotivas El
STR_REPLACE_MONORAIL_VEHICLES :Monotrilho
STR_REPLACE_MAGLEV_VEHICLES :Maglevs
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Remoção de vagões: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz autosubstituição manter o tamanho do trem removendo vagões (começando pela frente), se ao substituir a locomotiva o trem ficar maior
@@ -4271,7 +4279,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... é u
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... rua na direção errada
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... paradas "drive-thru" não podem ter esquinas
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... paradas "drive-thru" não podem ter junções
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... rua é mão única ou está bloqueada
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Impossível remover parte da estação...
diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt
index c5cd135cd9..3e01876317 100644
--- a/src/lang/bulgarian.txt
+++ b/src/lang/bulgarian.txt
@@ -191,6 +191,7 @@ STR_COLOUR_ORANGE :Оранжев
STR_COLOUR_BROWN :Кафяво
STR_COLOUR_GREY :Сиво
STR_COLOUR_WHITE :Бяло
+STR_COLOUR_DEFAULT :По подразбиране
# Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA} мил{P я и}/ч
@@ -236,6 +237,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Избе
STR_BUTTON_SORT_BY :{BLACK}Сортирай по
STR_BUTTON_LOCATION :{BLACK}Позиция
STR_BUTTON_RENAME :{BLACK}Преименувай
+STR_BUTTON_CATCHMENT :{BLACK}Покритие
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Затвори прозореца
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Заглавие на прозорец - преместване на прозореца с мишката
@@ -462,6 +464,7 @@ STR_TOOLBAR_SOUND_MUSIC :Звук/муз
############ range for message menu starts
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Последно съобщение/новини
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :История на съобщенията
+STR_NEWS_MENU_DELETE_ALL_MESSAGES :Изтрий всички съобщения
############ range ends here
############ range for about menu starts
@@ -473,6 +476,7 @@ STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Напълно увеличен в кадъра.
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Увеличение по подразбиране
STR_ABOUT_MENU_GIANT_SCREENSHOT :Огромен Screenshot
+STR_ABOUT_MENU_SHOW_FRAMERATE :Показване на честотата на кадрите
STR_ABOUT_MENU_ABOUT_OPENTTD :Относно 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Подравнител на спрайтове
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Активиране слепване на прозорците
@@ -704,11 +708,13 @@ STR_SMALLMAP_TYPE_OWNERS :Собстве
STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP :{BLACK}Покажи земните контури на картата
STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP :{BLACK}Покажи превозните средства
STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP :{BLACK}Покажи индустриите на картата
+STR_SMALLMAP_TOOLTIP_SHOW_LINK_STATS_ON_MAP :{BLACK}Покажи на картата потока на товарите
STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON :{BLACK}Покажи транспортните маршрути на картата
STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP :{BLACK}Покажи растителността на картата
STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP :{BLACK}Покажи собствениците на земя на картата
STR_SMALLMAP_TOOLTIP_INDUSTRY_SELECTION :{BLACK}Натисни върху вид индустрия за превключване на показването.Click on an industry type to toggle displaying it. Ctrl деактивира всички освен избраната. Ctrl отново за активиране на всички
STR_SMALLMAP_TOOLTIP_COMPANY_SELECTION :{BLACK}Натисни върху компания за показване/скриване на нейната собственост. Ctrl деактивира всички компании освен избраната. Ctrl отново за активиране на всички компании
+STR_SMALLMAP_TOOLTIP_CARGO_SELECTION :{BLACK}Кликнете върху товара, за да превключите показването на неговите данни. Ctrl+Click изключва всички товари без текущо избрания. Направете отново Ctrl+Click въху него, за да включите отново всички товари
STR_SMALLMAP_LEGENDA_ROADS :{TINY_FONT}{BLACK}Пътища
STR_SMALLMAP_LEGENDA_RAILROADS :{TINY_FONT}{BLACK}ЖП
@@ -914,6 +920,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Южноафр
STR_GAME_OPTIONS_CURRENCY_CUSTOM :друга...
STR_GAME_OPTIONS_CURRENCY_GEL :Грузинско лари (ГЕЛ)
STR_GAME_OPTIONS_CURRENCY_IRR :Ирански Риал (ИРР)
+STR_GAME_OPTIONS_CURRENCY_NTD :Нов тайвански долар
+STR_GAME_OPTIONS_CURRENCY_HKD :Хонгконгски долар (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Движение по пътищата
@@ -1107,6 +1115,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Игрови н
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Игрови настройки (съхраняват се в записаната игра; важат само за текущата игра)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Настройки за компанията (съхраняват се в записаната игра; важат само за нови игри)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Настройки за компанията (съхраняват се в записаната игра; важат само за текущата компания)
+STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Покажете всички резултати от търсенето като зададете{}{SILVER}Категория {BLACK}на {WHITE}{STRING} {BLACK}и {SILVER}Тип {BLACK}на {WHITE}Всички видове настройки
STR_CONFIG_SETTINGS_NONE :{WHITE}- Нищо -
STR_CONFIG_SETTING_OFF :изключено
@@ -1283,10 +1292,12 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Показва
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Дебелина на линиите в графиките: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Дебелина на линиите в графиките. Тънките линии са по-лесни за разчитане, но по-дебелите се забелязват и разграничават по-лесно.
-STR_CONFIG_SETTING_LANDSCAPE :Пейзаж: {STRING}
+STR_CONFIG_SETTING_LANDSCAPE :Терен: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR :Генератор на земя: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :оригинален
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :тера-генезис
+STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(само за TerraGenesis) Хълмистост на терена
+STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Задайте колко индустрии да се генерират и какво ниво да се поддържа по време на играта
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Максимално разстояние от ръба за нефтените рафинерии: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Нефтените рафинерии се изграждат само близо до края на картата
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Снежната ивица: {STRING}
@@ -1296,6 +1307,7 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :полегат
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :стръмен
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :много стръмен
STR_CONFIG_SETTING_RIVER_AMOUNT :Количество на реките: {STRING}
+STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Изберете колко реки да се генерират
STR_CONFIG_SETTING_TREE_PLACER :Алгоритъм за поставяне на дървета: {STRING}
STR_CONFIG_SETTING_TREE_PLACER_NONE :без дървета
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :оригинален
@@ -1583,6 +1595,11 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Без
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Множител за големината на града: {STRING}
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Относителен размер на мегаполисите в сравнение с градовете в началото на играта
+STR_CONFIG_SETTING_LINKGRAPH_TIME :Вземи {STRING}{NBSP}дни{P 0:2 "" s} за преизчисляване на графа за резпределение
+STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :ръчно
+STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :симетричен
+STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"симетрично" означава, че приблизително един и същ брой пътници ще пътуват от спирка А до спирка Б и обратно. "асиметрично" означава, че произволен брой пътници могат да пътуват във всяка от посоките. "ръчно" означава, че няма да има автоматично разпределение за пътниците.
+STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Режим на разпределение на други класове товари: {STRING}
STR_CONFIG_SETTING_DEMAND_SIZE :Количество на връщания товар при симетричнен режим: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Единици за скорост: {STRING}
@@ -1628,6 +1645,7 @@ STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Осн
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Строене
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Автомобили
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Маршрутизация
+STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ограничения
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Права
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Градове
STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Индустрии
@@ -1903,6 +1921,7 @@ STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Пост
STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Защитаване на вашата игра с парола за да не е публично достъпна
STR_NETWORK_START_SERVER_UNADVERTISED :Не
+STR_NETWORK_START_SERVER_ADVERTISED :Да
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} клиент{P "" s}
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Макс. брой играчи:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Избор на максималния брой клиенти. Не всички слотове трябва да се попълнят
@@ -2339,6 +2358,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Пост
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Премахване на асфалтов път
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Превключване строене/разрушаване на трамвайни консктрукции
+STR_ROAD_NAME_ROAD :Път
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ориентация на гараж
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Ориентация на гараж
@@ -2622,9 +2643,21 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 The OpenTTD team
# Framerate display window
+STR_FRAMERATE_CAPTION :{WHITE}Скорост на кадрите
+STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Скороср на симулация: {STRING}
+STR_FRAMERATE_SPEED_FACTOR :{BLACK}Текущ коефициент за скорост на играта: {DECIMAL}x
+STR_FRAMERATE_CURRENT :{WHITE}Текущ
+STR_FRAMERATE_AVERAGE :{WHITE}Средно
+STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} кадри/сек
############ Leave those lines in this order!!
+STR_FRAMERATE_GL_ECONOMY :Обработка на товари:
+STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Тактове на света:
############ End of leave-in-this-order
############ Leave those lines in this order!!
+STR_FRAMETIME_CAPTION_GAMELOOP :Цикъл на играта
+STR_FRAMETIME_CAPTION_DRAWING :Графична обработка
+STR_FRAMETIME_CAPTION_VIDEO :Видео изход
+STR_FRAMETIME_CAPTION_ALLSCRIPTS :Общо GS/AI скриптове
############ End of leave-in-this-order
@@ -2774,6 +2807,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Изклю
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{G=n}{RED}Несъвместимо с тази версия на OpenTTD
# NewGRF save preset window
+STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Списък на наличните предварително зададени настройки. Изберете една, за да я откопирате в името за запис по-долу
STR_SAVE_PRESET_TITLE :{BLACK}Въведи име за шаблона
STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Текущо избраното име за именуване на шаблона
STR_SAVE_PRESET_CANCEL :{BLACK}Отказ
@@ -2871,6 +2905,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Информация за товар/преобразувания на '{1:ENGINE}' се различава от листа с покупките. Това може да доведе до грешка при подновяване/преустройване
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' предизвика вечен цикъл в callback на производството
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Подизпълнение {1:HEX} върна неизвестен/невалиден резултат {2:HEX}
+STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' Върнат е невалиден тип товар в продуктивен callback на {2:HEX}
# 'User removed essential NewGRFs'-placeholders for stuff without specs
STR_NEWGRF_INVALID_CARGO :<невалиден товар>
@@ -2904,6 +2939,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Въве
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Градове
STR_TOWN_DIRECTORY_NONE :{ORANGE}- Отсъства -
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
+STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Град){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Имена на градовете - натисни на името за да фокусираш този град. Ctrl отваря нов изглед към града.
STR_TOWN_POPULATION :{BLACK}Обща популация на картата: {COMMA}
@@ -3184,6 +3220,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Инфр
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Релсови части:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Сигнали
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Пътни части:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Трамвайни вагони:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Водни части:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Канали
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Станции:
@@ -3282,10 +3319,14 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Нови еле
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Нови Машини за Монорелсов път
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Нови Машини за Магниторелсов път
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Нови ЖП превозни средства
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Нова кола
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Нови ЖП превозни средства
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Ново пътно превозно средство
STR_BUY_VEHICLE_SHIP_CAPTION :Нови Кораби
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Нова летателна машина
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Цена: {GOLD}{CURRENCY_LONG}{BLACK} Тегло: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Скорост: {GOLD}{VELOCITY}{BLACK} Мощност: {GOLD}{POWER}
@@ -3298,12 +3339,15 @@ STR_PURCHASE_INFO_REFITTABLE :(преустр
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Модел: {GOLD}{NUM}{BLACK} Живот: {GOLD}{COMMA} години
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Макс. надеждност: {GOLD}{COMMA}%
STR_PURCHASE_INFO_COST :{BLACK}Цена: {GOLD}{CURRENCY_LONG}
+STR_PURCHASE_INFO_COST_REFIT :{BLACK}Цена: {GOLD}{CURRENCY_LONG}{BLACK} (Цена за преустройване: {GOLD}{CURRENCY_LONG}{BLACK})
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Тегло: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Цема {GOLD}{CURRENCY_LONG}{BLACK} Скорост: {GOLD}{VELOCITY}
+STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Цена: {GOLD}{CURRENCY_LONG}{BLACK} (Цена за преустройване: {GOLD}{CURRENCY_LONG}{BLACK}) Скорост: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Капацитет: {GOLD}{CARGO_LONG}, {CARGO_LONG}
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Вагони с мощност: {GOLD}+{POWER}{BLACK} Тегло: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Преобразуваем на: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Всички видове товар
+STR_PURCHASE_INFO_NONE :Нищо
STR_PURCHASE_INFO_ALL_BUT :Всичко освен {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Макс. теглеща сила: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Обхват: {GOLD}{COMMA} полета
@@ -3318,6 +3362,8 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Купи
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Купи Кораб
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Купи самолет
+STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Купуване и преустройване на кораб
+STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Купуване и преустройване на самолет
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Купи маркираният влак. Shift строеж/цена за построяване
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Купи посоченото МПС. Shift строеж/цена за построяване
@@ -3433,13 +3479,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Иск
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Съобщение от производител
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Създадохме нов {STRING}.{}Интересувате ли се от изключителното право да използвате това ПС за една година, за да видим как то работи преди да го пуснем на пазара за масова употреба?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :локомотив за двурелсов път
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобил
-STR_ENGINE_PREVIEW_AIRCRAFT :самолет
-STR_ENGINE_PREVIEW_SHIP :кораб
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :локомотив за еднорелсов път
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :локомотив за магниторелсов път
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобил
+
+STR_ENGINE_PREVIEW_AIRCRAFT :самолет
+STR_ENGINE_PREVIEW_SHIP :кораб
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER}{}Разход: {CURRENCY_LONG}/г.{}Капацитет: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Тегло: {WEIGHT_SHORT}{}Скорост: {VELOCITY} Мощност: {POWER} Макс. Т.С.: {6:FORCE}{}Експлоатационни разходи: {4:CURRENCY_LONG}/год.{}Вместимост: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. Скорост: {VELOCITY}{}Вместимост: {CARGO_LONG}{}Експлоатационни разходи: {CURRENCY_LONG}/год.
@@ -3474,14 +3523,17 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Прев
STR_REPLACE_ENGINES :Двигатели
STR_REPLACE_WAGONS :Вагони
STR_REPLACE_ALL_RAILTYPE :Всички ЖП композиции
+STR_REPLACE_ALL_ROADTYPE :Всички пътни превозни средства
STR_REPLACE_HELP_RAILTYPE :{BLACK}Избор на ЖП линия с която да се заменят локомотивите
+STR_REPLACE_HELP_ROADTYPE :Изберете типа път, за който искате да подмените двигателите.
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Показване с кой двигател се заменя ляво избрания, ако има
STR_REPLACE_RAIL_VEHICLES :ЖП влакове
STR_REPLACE_ELRAIL_VEHICLES :Електрически локомотиви
STR_REPLACE_MONORAIL_VEHICLES :Монорелсови локомотиви
STR_REPLACE_MAGLEV_VEHICLES :Маглев влакове
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Премахване на вагон: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Автоматичната замяна ще запази дължината на влака като премахне вагони (започвайки от предните), ако замяната довежда до по-дълъг влак.
@@ -3621,7 +3673,7 @@ STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Капа
# Vehicle refit
STR_REFIT_CAPTION :{WHITE}{VEHICLE} (Преустройване)
STR_REFIT_TITLE :{GOLD}Изберете вид товар за превозване:
-STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нов капацитет: {GOLD}{CARGO_LONG}{}{BLACK}Цена за преустройство: {RED}{CURRENCY_LONG}
+STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нов капацитет: {GOLD}{CARGO_LONG}{}{BLACK}Цена за преустройсване: {RED}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Нов капцитет: {GOLD}{CARGO_LONG}{}{BLACK}Приход от преустройване: {GREEN}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Нова вместимост: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Цена за преоборудване: {RED}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Нов капацитет: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Проход от преустройване: {GREEN}{CURRENCY_LONG}
@@ -3807,9 +3859,12 @@ STR_TIMETABLE_TOOLTIP :{BLACK}Разп
STR_TIMETABLE_NO_TRAVEL :Без преминаване
STR_TIMETABLE_NOT_TIMETABLEABLE :Пътувай (автоматично; включено в разписанието, чрез следващата ваша заповед)
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Пътувай (без разписание)
-STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Пътувай с не повече от {2:VELOCITY} (not timetabled)
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Пътувай (без разписание) с не повече от {2:VELOCITY}
STR_TIMETABLE_TRAVEL_FOR :Пътувай за {STRING}
STR_TIMETABLE_TRAVEL_FOR_SPEED :Пътувай за {STRING} с не повече от {VELOCITY}
+STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Пътувай (за {STRING}, без разписание)
+STR_TIMETABLE_STAY_FOR_ESTIMATED :(престой за {STRING}, без разписание)
+STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(Пътувай към {STRING}, без разписание)
STR_TIMETABLE_STAY_FOR :и остани за {STRING}
STR_TIMETABLE_AND_TRAVEL_FOR :и отпътувай към {STRING}
STR_TIMETABLE_DAYS :{COMMA}{NBSP}ден{P "" а}
@@ -3825,6 +3880,7 @@ STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}Това
STR_TIMETABLE_STATUS_START_AT :{BLACK}Това разписание ще започне на {STRING}
STR_TIMETABLE_STARTING_DATE :{BLACK}Дата на започване
+STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK} Изберете начална дата на това разписание. Ctrl + Click задава началната дата и равномерно разпределя всички превозни средства, които споделят тази поръчка, на базата на тяхната относителна поръчка, ако поръчката е изцяло по разписание
STR_TIMETABLE_CHANGE_TIME :{BLACK}Промени времето
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Промени времетраенето на маркираната заповед
@@ -4215,6 +4271,8 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Пътя
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Не може да се разруши трамвайната линия...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... тук няма път
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... няма трамвайни линии
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Няма подходящ път
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... несъвместима трамвайна линия
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Тук не е възможно да се прокопае канал...
@@ -4377,6 +4435,7 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Оригина
STR_BASESOUNDS_WIN_DESCRIPTION :Оригинални звуци на Transport Tycoon Deluxe за Windows.
STR_BASESOUNDS_NONE_DESCRIPTION :Празен звуков пакет.
STR_BASEMUSIC_WIN_DESCRIPTION :Оригинална музика на Transport Tycoon Deluxe за Windows.
+STR_BASEMUSIC_TTO_DESCRIPTION :Оригинална Transport Tycoon (Original/World Editor) музика за DOS.
STR_BASEMUSIC_NONE_DESCRIPTION :Празен музикален пакет.
##id 0x2000
diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt
index 9c3c4ffee4..17e2af490f 100644
--- a/src/lang/catalan.txt
+++ b/src/lang/catalan.txt
@@ -2428,6 +2428,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construe
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Intercanvia funció construeix/treu per la construcció de carreteres
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Canvia construeix/treu de la construcció de vies de tramvia
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientació de la cotxera
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Seleccioneu l'orientació desitjada de la cotxera per a vehicles de carretera.
@@ -3459,10 +3460,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Compra de nous
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Compra de nous vehicles monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Compra de nous vehicles Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Compra de nous vehicles sobre vies
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Compra de nous vehicles de carretera
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Compra de nous vehicles sobre vies
STR_BUY_VEHICLE_SHIP_CAPTION :Compra de nous vaixells
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Compra de noves aeronaus
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Pes: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Velocitat: {GOLD}{VELOCITY}{BLACK} Potència: {GOLD}{POWER}
@@ -3612,13 +3616,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Estàs
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Missatge del fabricant de vehicles
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Acabem de dissenyar {G un una} {G nou nova} {STRING}. Esteu interessats en fer ús exclusiu d'aquest vehicle durant un any, per veure com va, abans del seu llançament mundial?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=Femenin}locomotora de tren
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=Masculin}automòbil
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=Masculin}avió
-STR_ENGINE_PREVIEW_SHIP :{G=Masculin}vaixell
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=Femenin}locomotora de monorail
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}locomotora de maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=Masculin}automòbil
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=Masculin}avió
+STR_ENGINE_PREVIEW_SHIP :{G=Masculin}vaixell
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER}{}Cost de circulació: {CURRENCY_LONG}/any{}Capacitat: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pes: {WEIGHT_SHORT}{}Velocitat: {VELOCITY} Potència: {POWER} Màx. E.T.: {6:FORCE}{}Cost d'utilització: {4:CURRENCY_LONG}/any{}Capacitat: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Vel. Màx: {VELOCITY}{}Capacitat: {CARGO_LONG}{}Cost d'utilització: {CURRENCY_LONG}/any
@@ -3664,6 +3671,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Trens Elèctric
STR_REPLACE_MONORAIL_VEHICLES :Trens monorail
STR_REPLACE_MAGLEV_VEHICLES :Trens maglev
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Treure vagons: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fer que la substitució automàtica mantingui la llargada del tren eliminant vagons (començant pel front), si substituint la màquina el tren es fa més llarg
@@ -4316,7 +4324,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... aque
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... sentit de la carretera en la direcció incorrecta
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... les estacions d'autobús de pas no poden tenir cantonades
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... les estacions d'autobús de pas no poden tenir interseccions
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... la carretera és d'un sol sentit o està blocada.
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No es pot treure part de la estació...
diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt
index 1c639c239e..e5d400a26b 100644
--- a/src/lang/croatian.txt
+++ b/src/lang/croatian.txt
@@ -437,6 +437,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Približ
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Udalji pogled
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Izgradi željezničku prugu
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Izgradi ceste
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Izgradi tramvajsku prugu
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Izgradi pristaništa za brodove
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Izgradi zračne luke
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Otvori alatnu traku za krajolik kako bi spustio/izdignuo zemlju, posadio drveće, itd.
@@ -457,6 +458,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Stvaranj
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Stvaranje gradova
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Stvaranje industrije
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Izgradnja ceste
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Izgradnja tramvajske pruge
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Posadi drveće. Shift mijenja prikaz građenje/procjena troškova.
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Postavi znak
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Postavi objekt. Shift mijenja prikaz građenje/procjena troškova.
@@ -1032,6 +1034,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Gruzijski Lari
STR_GAME_OPTIONS_CURRENCY_IRR :Iranski Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Nove ruske rublje (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Meksički Pesos (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :Novi Tajvanski Dolar (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Kineski Renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hongkonški Dolar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Cestovna vozila
@@ -1582,6 +1587,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Dopusti UI u mr
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Dopusti UI računalnim-igračima da sudjeluju u igrama za više igrača
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#op-kodova prije prekida skripte: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Najveći broj računalnih koraka koje skripta može poduzeti u jednom krugu
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Maksimalno korištenje memorije po skripti: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Koliko memorija svaka pojedina skripta može iskoristiti prije nego bude prisilno zatvorena. Ova postavka treba biti povećana za velike mape.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Servisni su intervali u postotcima: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Odaberi hoće li servis vozila potaknuti količina vremana koja je prošla od zadnjeg servisa ili postotni pad u odnosu na najveću pouzdanost
@@ -2527,6 +2535,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Izgradi
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Izgradi tramvajski tunel. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Aktiviraj izgradnju/uklanjanje za izgradnju ceste
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Aktiviraj izgradnju/uklanjanje za izgradnju tramvaja
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Pretvori/nadogradi vrstu ceste. Shift mijenja prikaz građenje/procjena troškova.
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Pretvori/nadogradi vrstu tramvajske pruge. Shift mijenja prikaz građenje/procjena troškova.
+
+STR_ROAD_NAME_ROAD :Cesta
+STR_ROAD_NAME_TRAM :Tramvajska pruga
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Smjer cestovnog spremišta
@@ -2711,8 +2724,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Prihvaćeni teret: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Vrsta željeznice: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Vrsta ceste: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Vrsta tramvaja: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Najveća brzina željeznice: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Ograničenje brzine na cesti: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Limit brzine tramvaja: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stijenje
@@ -2822,6 +2838,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Trenutni
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Koliko brzo se igra izvodi trenutno u usporedbi sa očekivanom brzinom u uobičajenoj simulaciji.
STR_FRAMERATE_CURRENT :{WHITE}Trenutno
STR_FRAMERATE_AVERAGE :{WHITE}Prosječno
+STR_FRAMERATE_MEMORYUSE :{WHITE}Memorija
STR_FRAMERATE_DATA_POINTS :{BLACK}Podaci bazirani na {COMMA} mjerama
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2829,6 +2846,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} sličica/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} sličica/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} sličica/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3454,6 +3474,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Dijelovi pruge:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signali
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Dijelovi ceste:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Dijelovi tramvaja:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Polje s vodom:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanali
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Postaje:
@@ -3561,10 +3582,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električn
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova jednotračna željeznička vozila
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova vozila Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nova pružna vozila
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nova cestovna vozila
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Novi tramvaji
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nova pružna vozila
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nova cestovna vozila
STR_BUY_VEHICLE_SHIP_CAPTION :Novi brodovi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Novi zrakoplov
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cijena: {GOLD}{CURRENCY_LONG}{BLACK} Težina {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Cijena : {GOLD}{CURRENCY_LONG}{BLACK} (Cijena prenamjene: {GOLD}{CURRENCY_LONG}{BLACK}) Težina: {GOLD}{WEIGHT_SHORT}
@@ -3725,13 +3751,18 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Upravo
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Poruka od proizvođača vozila
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Upravo smo dizajnirali novi {STRING} - jeste li zainteresirani za jednogodišnje ekskluzivno pravo uporabe ovog vozila, kako bi vidjeli kako se vozilo ponaša prije nego što postane univerzalno dostupno?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :željeznička lokomotiva
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :cestovno vozilo
-STR_ENGINE_PREVIEW_AIRCRAFT :zrakoplov
-STR_ENGINE_PREVIEW_SHIP :brod
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :lokomotiva za elektrificiranu željeznicu
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :jednotračna željeznička lokomotiva
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotiva
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :cestovno vozilo
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :tramvaj
+
+STR_ENGINE_PREVIEW_AIRCRAFT :zrakoplov
+STR_ENGINE_PREVIEW_SHIP :brod
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cijena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Trošak uporabe: {CURRENCY_LONG}/god{}Kapacitet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Trošak: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Maks. T.E.: {6:FORCE}{}Trošak uporabe: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Trošak: {CURRENCY_LONG} Maks. brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Trošak uporabe: {CURRENCY_LONG}/god
@@ -3769,14 +3800,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebaci
STR_REPLACE_ENGINES :Lokomotive
STR_REPLACE_WAGONS :Vagoni
STR_REPLACE_ALL_RAILTYPE :Sva pružna vozila
+STR_REPLACE_ALL_ROADTYPE :Sva cestovna vozila
STR_REPLACE_HELP_RAILTYPE :{BLACK}Odaberite vrstu željeznice za koju želite zamijeniti lokomotive
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Odaberite vrstu ceste za koju želite zamijeniti vozila
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Prikazuje sa kojom se lokomotivom zamjenjuje lijevo odabrana lokomotiva, ako postoji koji
STR_REPLACE_RAIL_VEHICLES :Pružna vozila
STR_REPLACE_ELRAIL_VEHICLES :Električna pružna vozila
STR_REPLACE_MONORAIL_VEHICLES :Jednotračna vozila
STR_REPLACE_MAGLEV_VEHICLES :Željeznička vozila Maglev
+STR_REPLACE_ROAD_VEHICLES :Cestovna vozila
+STR_REPLACE_TRAM_VEHICLES :Tramvaji
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Uklanjanje vagona: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automatska zamjena zadržava istu dužinu vlaka tako da ukloni suvišne vagone (počevši od naprijed), ako bi zamjena lokomotive učinila vlak dužim
@@ -4429,7 +4465,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ovo
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... cesta je orijentirana u krivom smjeru
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... prolazne postaje ne mogu imati zavoje
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... prolazne postaje ne mogu imati raskrižja
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... cesta je jednosmjerna ili je blokirana
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nije moguće ukloniti dio postaje...
@@ -4500,6 +4535,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Nije pri
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Najprije je potrebno ukloniti željezničku prugu
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Cesta je jednosmjerna ili je blokirana
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Pružni prijelazi nisu dopušteni za ovu vrstu pruge
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Pružni prijelazi nisu dopušteni za ovu vrstu ceste
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Ovdje nije moguće postaviti signale...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Ovdje nije moguće izgraditi željezničke tračnice...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Nije moguće ukloniti željezničku prugu odavde...
@@ -4519,6 +4555,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Nije mog
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Nije moguće ukloniti tramvaj odavde...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... nema ceste
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... nema tramvajske pruge
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Ovdje nije moguće pretvoriti cestu...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Ovdje nije moguće pretvoriti tramvajsku prugu...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nema prikladne ceste
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nema prikladne tramvajske pruge
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nekompatibilna cesta
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nekompatibilna tramvajska pruga
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Ovdje nije moguće izgraditi kanale...
diff --git a/src/lang/czech.txt b/src/lang/czech.txt
index 943ac7f891..c40375fb7f 100644
--- a/src/lang/czech.txt
+++ b/src/lang/czech.txt
@@ -264,6 +264,7 @@ STR_COLOUR_ORANGE :Oranžová
STR_COLOUR_BROWN :Hnědá
STR_COLOUR_GREY :Šedá
STR_COLOUR_WHITE :Bílá
+STR_COLOUR_RANDOM :Náhodná
# Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}m{P íle íle il}/h
@@ -310,6 +311,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Vyber t
STR_BUTTON_SORT_BY :{BLACK}Řadit podle
STR_BUTTON_LOCATION :{BLACK}Umístění
STR_BUTTON_RENAME :{BLACK}Přejmenovat
+STR_BUTTON_CATCHMENT :{BLACK}Pokrytí
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Zavřít okno
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titulek okna - tahej pro posun okna
@@ -411,6 +413,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Přiblí
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Oddálit pohled
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Budovat železnici
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Budovat silniční síť
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Výstavba tramvajových tratí
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Budovat vodní cesty
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Stavět letiště
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Otevřít nástrojovou lištu na úpravu terénu, výsadbu stromů, atd.
@@ -539,6 +542,7 @@ STR_TOOLBAR_SOUND_MUSIC :Zvuk/Hudba
############ range for message menu starts
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Poslední zpráva nebo článek
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historie zpráv
+STR_NEWS_MENU_DELETE_ALL_MESSAGES :Smazat všechny zprávy
############ range ends here
############ range for about menu starts
@@ -1014,6 +1018,8 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Vlastní...
STR_GAME_OPTIONS_CURRENCY_GEL :Georgijské Lari (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Íránský Riál (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Ruský rubl (RUB)
+STR_GAME_OPTIONS_CURRENCY_NTD :Nový taiwanský dolar (NTD)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongský dolar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Silniční vozidla jezdí
@@ -1077,6 +1083,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dvojnásobná v
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Čtyřnásobná velikost
+STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Běžné
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Základní sada grafiky
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zvol základní sadu grafiky
@@ -1260,6 +1267,7 @@ STR_CONFIG_SETTING_AUTOSLOPE :Povolit srovná
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Povoluje změnu terénu pod budovami a tratěmi bez jejich odstranění
STR_CONFIG_SETTING_CATCHMENT :Povolit u oblasti pokrytí realističtější velikost: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Rozdílná velikost oblasti pokrytí u různých stanic a letišť
+STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Pokud je zapnuto, průmysl s vlastní stanicí (např. ropné plošiny) může být obsluhován i prostřednictvím společnostmi vlastněných stanic v okolí. Pokud je vypnuto, tento průmysl může být obsluhován pouze prostřednictvím vlastní stanice. Společnostmi vlastněné stanice v okolí nebudou moci tento průmysl obsluhovat a vlastní stanice tohoto průmyslu nebude moci obsluhovat žádný jiný průmysl ani domy v okolí.
STR_CONFIG_SETTING_EXTRADYNAMITE :Povolit bourání více městských silnic, mostů a tunelů: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Usnadňuje odstranění městských staveb a silnic
STR_CONFIG_SETTING_TRAIN_LENGTH :Maximální délka vlaků: {STRING}
@@ -1429,6 +1437,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Barva terénu n
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :zelená
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :tmavě zelená
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :fialová
+STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Pohyb v mapě pomocí pravého tlačítka myši, poloha myši uzamčena
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Plynulé posouvání po mapě: {STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Ovládá jak se hlavní pohled posouvá na specifické místo na mapě, kliknutím na minimapu nebo spuštěním příkazu na posun na specifický objekt na mapě. Pokud zapnuto, pohled se posouvá plynule, pokud vypnuto, skáče pohled přímo na cílové místo
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Ukázat rozměry při použití stavebních nástrojů: {STRING}
@@ -1549,6 +1558,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Povolit AI v s
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Umožňuje AI počítačem řízeným hráčům připojit se do hry s více hráči
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes před skripty než budou pozastaveny: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximální počet výpočetních kroků, které může skript vykonat za jeden tah
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervaly servisů v procentech: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Vyber, jestli potřebu návštěvy servisu určuje čas od poslední návštěvy nebo určitý pokles % spolehlivosti od jejího maxima.
@@ -1651,6 +1661,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Povoluje hráč
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Zakázáno
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Povoleno
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Povoleno s výběrem rozložení a velikosti města
+STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Kvadratický (původní)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Umístění stromů ve hře: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Náhodné umisťování stromů během hry. Může ovlivnit průmysl závisející na růstu stromů, například pily.
@@ -2488,6 +2499,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Postavit
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Postavit tramvajový tunel. Stisknutý Shift pro zobrazení odhadu ceny
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Stavět nebo bourat silnici nebo zastávku
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Přepínání mezi výstavbou a bouráním tramvajové tratě
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Změnit nebo vylepšit typ silnice (na tento). Stisknutý Shift pro zobrazení odhadu ceny
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientace garáže
@@ -2678,6 +2691,8 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
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_ROAD_TYPE :{BLACK}Typ silnice: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Typ tramvaje: {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}
@@ -2783,20 +2798,33 @@ STR_FRAMERATE_CAPTION :{WHITE}Počet s
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Počet snímků videa vykreslovaných za sekundu.
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Aktuální činitel rychlosti hry: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Rychlost, kterou hra právě běží, v porovnání s očekávanou rychlostí při běžné rychlosti simulace.
+STR_FRAMERATE_CURRENT :{WHITE}Aktuální
STR_FRAMERATE_AVERAGE :{WHITE}Průměr
+STR_FRAMERATE_DATA_POINTS :{BLACK}Podle {COMMA} měření
+STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE} sním{P "ek" "ky" "ků"}/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE} sním{P "ek" "ky" "ků"}/s
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
STR_FRAMERATE_GL_ECONOMY :{WHITE} Manipulace s nákladem:
+STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Zpoždění grafu spojení:
STR_FRAMERATE_DRAWING :{WHITE}Vykreslování grafiky:
+STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Pohledy:
+STR_FRAMERATE_VIDEO :{BLACK}Video:
+STR_FRAMERATE_SOUND :{BLACK}Míchání zvuků:
+STR_FRAMERATE_GAMESCRIPT :{BLACK} Herní skript:
############ End of leave-in-this-order
############ Leave those lines in this order!!
+STR_FRAMETIME_CAPTION_GAMELOOP :Herní smyčka
STR_FRAMETIME_CAPTION_GL_ECONOMY :Manipulace s nákladem
STR_FRAMETIME_CAPTION_DRAWING :Vykreslování grafiky
STR_FRAMETIME_CAPTION_SOUND :Míchání zvuků
+STR_FRAMETIME_CAPTION_GAMESCRIPT :Herní skript
+STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRING}
############ End of leave-in-this-order
@@ -2822,6 +2850,8 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Vlastnos
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Není dostupná žádná informace
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}Grafiky: {WHITE}{STRING}
+STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtr:
+STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Přepsat soubor
STR_SAVELOAD_OSKTITLE :{BLACK}Zadej jméno pro uloženou hru
@@ -2940,6 +2970,7 @@ STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Minimál
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parametry: {SILVER}{STRING}
+STR_NEWGRF_SETTINGS_PARAMETER_NONE :Žádný
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Informace nejsou k dispozici
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Nenalezen odpovídající soubor
@@ -3193,6 +3224,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Kliknut
# Story book window
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Kniha příběhů
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Globální kniha příběhů
+STR_STORY_BOOK_SPECTATOR :Globální kniha příběhů
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Strana {NUM}
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Skoč na určitou stranu vybranou v tomto seznamu
@@ -3397,6 +3429,7 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Vystřed
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produkce: {YELLOW}{COMMA}%
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Průmysl oznámila blížící se uzavření!
+STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING}{STRING}
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vyžaduje:
STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
@@ -3450,6 +3483,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Nezařazená si
STR_GROUP_DEFAULT_SHIPS :Nezařazené lodě
STR_GROUP_DEFAULT_AIRCRAFTS :Nezařazená letadla
+STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COMMA} (+{COMMA})
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Skupiny - Kliknutím na skupinu se zobrazí seznam vozidel ve skupině. Přetáhnutím skupin je uspořádáš.
STR_GROUP_CREATE_TOOLTIP :{BLACK}Kliknutím vytvoříš skupinu
@@ -3476,10 +3510,14 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrick
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nové lokomotivy a vagony pro monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nové lokomotivy a vagony Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nová železniční vozidla
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nová silniční vozidla
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nové tramvaje
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nová železniční vozidla
STR_BUY_VEHICLE_SHIP_CAPTION :Nové lodě
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nové letadlo
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Hmotnost: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Rychlost: {GOLD}{VELOCITY}{BLACK} Výkon: {GOLD}{POWER}
@@ -3494,6 +3532,7 @@ STR_PURCHASE_INFO_RELIABILITY :{BLACK}Max. spo
STR_PURCHASE_INFO_COST :{BLACK}Cena: {GOLD}{CURRENCY_LONG}
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Hmotnost: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Rychlost: {GOLD}{VELOCITY}
+STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} (Cena přestavby: {GOLD}{CURRENCY_LONG}{BLACK}) Rychlost: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapacita: {GOLD}{CARGO_LONG}, {CARGO_LONG}
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Poháněné vagony: {GOLD}+{POWER}{BLACK} Hmotnost: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refitovatelné na: {GOLD}{STRING}
@@ -3513,12 +3552,17 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Koupit v
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Koupit loď
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Koupit letadlo
+STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Koupit a přestavět vozidlo
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Kup označený vagon/lokomotivu. Stisknutý Shift pro zobrazení odhadu ceny
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Koupit označené vozidlo. Stisknutý Shift pro zobrazení odhadu ceny
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Koupit označenou loď. Stisknutý Shift pro zobrazení odhadu ceny
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Koupit označené letadlo. Stisknutý Shift pro zobrazení odhadu ceny
+STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :Koupit a přestavět označený vagon/lokomotivu. Stiskněte Shift pro zobrazení odhadu ceny.
+STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Koupit a přestavět označené vozidlo. Stiskněte Shift pro zobrazení odhadu ceny.
+STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Koupit a přestavět označenou loď. Stiskněte Shift pro zobrazení odhadu ceny.
+STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Koupit a přestavět označené letadlo. Stiskněte Shift pro zobrazení odhadu ceny.
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Přejmenovat
STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Přejmenovat
@@ -3628,16 +3672,21 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Chceš
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Zpráva od výrobce dopravních prostředků
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Právě jsme vyvinuli nov{G ý ou é é é é á} {STRING.acc}. Měl byste zájem o roční výhradní právo na používání tohoto prostředku, aby byl otestován před uvedením na trh?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}lokomotiva
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.acc :lokomotivu
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}silniční vozidlo
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}letadlo
-STR_ENGINE_PREVIEW_SHIP :{G=f}loď
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :elektrická lokomotiva
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}lokomotiva pro monorail
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.acc :lokomotivu pro monorail
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}lokomotiva Maglev
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}silniční vozidlo
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :tramvaj
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}letadlo
+STR_ENGINE_PREVIEW_SHIP :{G=f}loď
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. rychlost: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Cena provozu: {CURRENCY_LONG} ročně
@@ -3675,6 +3724,7 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne
STR_REPLACE_ENGINES :lokomotivy
STR_REPLACE_WAGONS :vagony
STR_REPLACE_ALL_RAILTYPE :Všechna drážní vozidla
+STR_REPLACE_ALL_ROADTYPE :Všechna silnič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
@@ -3683,6 +3733,9 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrické lok
STR_REPLACE_MONORAIL_VEHICLES :Lokomotivy pro monorail
STR_REPLACE_MAGLEV_VEHICLES :Lokomotivy Maglev
+STR_REPLACE_ROAD_VEHICLES :Silniční vozidla
+STR_REPLACE_TRAM_VEHICLES :Tramvaje
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Odebírání vagonů: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Funkce automatického vylepšování vlaků může udržovat stejnou délku vlaku odstraňovaním vagonů (od začátku vlaku), pokud by změna mašiny vlak prodloužila
@@ -4334,7 +4387,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... tato
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... silnice je otočena jiným směrem
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... průjezdné zastávky nemohou být v zatáčce
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... průjezdné zastávky nemohou být na křižovatce
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... silnice je jednosměrná nebo uzavřená.
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nelze odstranit část stanice...
@@ -4404,7 +4456,8 @@ STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Je nutn
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Žádné použitelné koleje
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Je nutné nejprve odstranit koleje
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Silnice je jednosměrná nebo zablokovaná
-STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Železniční přejezd není povolen pro tento typ kolejí
+STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Tento typ kolejí nedovoluje výstavbu železničních přejezdů
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Tento typ silnice nedovoluje výstavbu železničních přejezdů.
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Zde nelze postavit semafory...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Zde nelze postavit koleje...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Odsud nelze odstranit koleje...
@@ -4424,6 +4477,7 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Odsud ne
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Odsud nelze odstranit tramvajovou trať...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... není zde žádná silnice
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... není zde žádná tramvajová trať
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Zde nelze změnit typ silnice...
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Zde nelze postavit průplav...
diff --git a/src/lang/danish.txt b/src/lang/danish.txt
index 638cbd1971..4a4db3242b 100644
--- a/src/lang/danish.txt
+++ b/src/lang/danish.txt
@@ -2430,6 +2430,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Byg en s
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Skift mellem bygning/fjernelse af veje
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Skift mellem bygning/fjernelse af sporveje
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Retning af værksted
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Vælg retning for værksted
@@ -3462,10 +3463,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nye elektriske
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nye monorailkøretøjer
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nye magnetskinnekøretøjer
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Jernbanekøretøjer
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nye køretøjer
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Jernbanekøretøjer
STR_BUY_VEHICLE_SHIP_CAPTION :Nye skibe
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nyt fly
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Pris: {GOLD}{CURRENCY_LONG}{BLACK} Vægt: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hastighed: {GOLD}{VELOCITY}{BLACK} Styrke: {GOLD}{POWER}
@@ -3615,13 +3619,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du er v
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Besked fra køretøjsfabrikken
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Vi har lige designet et nyt {STRING} - er du interesseret i et års ekslusiv testkørsel, så vi kan se hvordan det klarer sig inden vi gør det frit tilgængeligt?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :jernbanelokomotiv
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :vejkøretøj
-STR_ENGINE_PREVIEW_AIRCRAFT :fly
-STR_ENGINE_PREVIEW_SHIP :skib
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoraillokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnettog
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :vejkøretøj
+
+STR_ENGINE_PREVIEW_AIRCRAFT :fly
+STR_ENGINE_PREVIEW_SHIP :skib
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år
@@ -3667,6 +3674,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Eltog
STR_REPLACE_MONORAIL_VEHICLES :Monorail
STR_REPLACE_MAGLEV_VEHICLES :Magnetskinnetog
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Fjern vogn: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Få autoudskift til at bevare længden af tog ved at fjerne vogne (startende fra fronten), hvis autoudskiftningen gør toget længere.
@@ -4319,7 +4327,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... denn
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... vejen peger i den forkerte retning
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... drive-through stops kan ikke have hjørner
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... drive-through stops kan ikke have kryds
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}vejen er ensrettet eller blokeret
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ikke fjerne en del af en station...
diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt
index ded83968ea..a8863f864e 100644
--- a/src/lang/dutch.txt
+++ b/src/lang/dutch.txt
@@ -341,6 +341,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Inzoomen
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Uitzoomen
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Spoorwegen bouwen
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Wegen bouwen
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Tramsporen bouwen
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Dokken en havens bouwen
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Vliegvelden bouwen
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Hiermee open je de landschapsbalk om land te verhogen/verlagen, bomen te planten, enz.
@@ -361,6 +362,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Landscha
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Stadsontwikkeling
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industrieontwikkeling
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Wegenbouw
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Tramsporen bouwen
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Bomen planten. Shift schakelt tussen planten/inschatting van de kosten
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Bord plaatsen
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Object plaatsen. Shift schakelt tussen bouwen/inschatting van de kosten
@@ -936,6 +938,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgische Lari
STR_GAME_OPTIONS_CURRENCY_IRR :Iraanse Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Nieuwe Russische Roebel (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexicaanse peso (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :Nieuwe Taiwanse dollar (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Wegvoertuigen
@@ -1486,6 +1491,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Computerspelers
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Computerspelers toestaan in netwerkspellen
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Aantal opcodes voordat scripts worden gestopt: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximumaantal berekeningsstappen die een script kan maken in een beurt
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Max. geheugengebruik per script: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :De hoeveelheid geheugen die een script mag gebruiken voordat het geforceerd wordt beëindigd. Voor grote kaarten moet deze waarde misschien verhoogd worden.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Onderhoudstermijnen in procenten: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Kiest of onderhoud van de voertuigen wordt geactiveerd door verstreken tijd sinds het laatste onderhoud of door het zakken van de betrouwbaarheid met een bepaald percentage van de maximale betrouwbaarheid
@@ -1864,7 +1872,7 @@ STR_LIVERY_PASSENGER_SHIP :Passagiersschip
STR_LIVERY_FREIGHT_SHIP :Vrachtschip
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Klein vliegtuig
-STR_LIVERY_LARGE_PLANE :Groot Vliegtuig
+STR_LIVERY_LARGE_PLANE :Groot vliegtuig
STR_LIVERY_PASSENGER_TRAM :Passagierstram
STR_LIVERY_FREIGHT_TRAM :Vrachttram
@@ -2413,7 +2421,7 @@ STR_BRIDGE_TUBULAR_SILICON :Buis, silicium
# Road construction toolbar
STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Wegen bouwen
-STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Bouw tramsporen
+STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Tramsporen bouwen
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Weg bouwen. Ctrl schakelt tussen bouwen/verwijderen van de weg. Shift schakelt tussen bouwen/inschatting van de kosten.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Bouw tramsporen. Ctrl schakelt tussen bouwen/verwijderen van tramsporen. Shift schakelt tussen bouwen/inschatting van de kosten
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}Wegen bouwen met de automatische methode. Ctrl schakelt tussen bouwen/verwijderen van de weg. Shift schakelt tussen bouwen/inschatting van de kosten.
@@ -2431,6 +2439,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Wegtunne
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramtunnel bouwen. Shift schakelt tussen bouwen/inschatting van de kosten.
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Kies tussen bouwen en verwijderen bij wegenbouw
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Kies tussen bouwen en verwijderen bij tramspooraanleg
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Converteer/opwaardeer het type weg. Shift schakelt tussen bouwen/inschatting van de kosten.
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Converteer/opwaardeer het type tram. Shift schakelt tussen bouwen/inschatting van de kosten.
+
+STR_ROAD_NAME_ROAD :Weg
+STR_ROAD_NAME_TRAM :Tramspoor
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Richting van garage
@@ -2615,8 +2628,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
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}Spoortype: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Wegtype: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tramtype: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Spoorsnelheidslimiet: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Snelheidslimiet weg: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Tramsnelheidslimiet: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rotsen
@@ -2726,6 +2742,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Huidige
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Hoe snel het spel momenteel draait, vergeleken met de verwachte snelheid bij een normale simulatiesnelheid.
STR_FRAMERATE_CURRENT :{WHITE}Huidig
STR_FRAMERATE_AVERAGE :{WHITE}Gemiddeld
+STR_FRAMERATE_MEMORYUSE :{WHITE}Geheugen
STR_FRAMERATE_DATA_POINTS :{BLACK}Gegevens gebaseerd op {COMMA} metingen
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2733,6 +2750,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frames/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frames/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3118,7 +3138,7 @@ STR_LOCAL_AUTHORITY_ACTION_BRIBE :Gemeentebestuur
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
-STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een herstelling van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG}
+STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een reconstructie van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe commerciële gebouwen in de stad financieren.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1 jaar exclusieve transportrechten kopen in deze plaats. Het gemeentebestuur staat alleen passagiers en vracht toe bij jouw stations.{}Kosten: {CURRENCY_LONG}
@@ -3358,6 +3378,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Spoordelen:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Seinen
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Wegdelen:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Tramdelen:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Watertegels:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanalen
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stations:
@@ -3465,10 +3486,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nieuwe elektris
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nieuwe monorailvoertuigen
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nieuwe zweefspoorvoertuigen
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nieuwe spoorvoertuigen
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nieuwe wegvoertuigen
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nieuwe trams
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nieuwe spoorvoertuigen
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nieuwe wegvoertuigen
STR_BUY_VEHICLE_SHIP_CAPTION :Nieuwe schepen
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nieuwe vliegtuigen
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} Gewicht: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} (ombouwkosten: {GOLD}{CURRENCY_LONG}{BLACK}) Gewicht: {GOLD}{WEIGHT_SHORT}
@@ -3629,13 +3655,18 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Je staa
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Bericht van voertuigenfabrikant
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}We hebben zojuist een nieuwe {STRING} ontworpen - ben je geïnteresseerd in een jaar lang exclusief gebruik van dit voertuig, zodat we kunnen zien of het goed werkt voordat we het wereldwijd beschikbaar maken?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :spoorlocomotief
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :wegvoertuig
-STR_ENGINE_PREVIEW_AIRCRAFT :vliegtuig
-STR_ENGINE_PREVIEW_SHIP :schip
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :elektrische locomotief
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoraillocomotief
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :wegvoertuig
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :tram
+
+STR_ENGINE_PREVIEW_AIRCRAFT :vliegtuig
+STR_ENGINE_PREVIEW_SHIP :schip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Lopende kosten: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Lopende kosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
@@ -3673,14 +3704,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel t
STR_REPLACE_ENGINES :Motoren
STR_REPLACE_WAGONS :Wagons
STR_REPLACE_ALL_RAILTYPE :Alle treinen
+STR_REPLACE_ALL_ROADTYPE :Alle wegvoertuigen
STR_REPLACE_HELP_RAILTYPE :{BLACK}Selecteer een spoortype waar je locomotieven voor wilt vervangen
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Kies het type weg waar je voertuigen voor wilt vervangen
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Dit geeft weer waarmee de links geselecteerde locomotief vervangen wordt
STR_REPLACE_RAIL_VEHICLES :Spoorvoertuigen
STR_REPLACE_ELRAIL_VEHICLES :Elektrische spoorvoertuigen
STR_REPLACE_MONORAIL_VEHICLES :Monorailvoertuigen
STR_REPLACE_MAGLEV_VEHICLES :Magneetzweefspoorvoertuigen
+STR_REPLACE_ROAD_VEHICLES :Wegvoertuigen
+STR_REPLACE_TRAM_VEHICLES :Trams
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagons verwijderen: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}De te vervangen trein behoudt zijn lengte door wagons weg te halen (startend aan de voorkant), als het vervangen de trein langer zou maken
@@ -4039,7 +4075,7 @@ STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Verander
STR_TIMETABLE_CLEAR_TIME :{BLACK}Tijd wissen
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Verwijder de tijdsduur die de geselecteerde order mag duren
-STR_TIMETABLE_CHANGE_SPEED :{BLACK}Wijzig Maximumsnelheid
+STR_TIMETABLE_CHANGE_SPEED :{BLACK}Maximumsnelheid wijzigen
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Wijzig de maximumsnelheid voor de gekozen order
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Snelheidslimiet wissen
@@ -4333,7 +4369,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... deze
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... weg is in de verkeerde richting
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... doorrij haltes kunnen geen bochten hebben
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... doorrij haltes kunnen geen kruisingen hebben
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... weg is eenrichtingsverkeer of geblokkeerd
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan deel van station niet verwijderen...
@@ -4404,6 +4439,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Geen bru
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Moet spoor eerst verwijderen
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Weg is eenrichtingsverkeer of geblokkeerd
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Gelijkvloerse kruisingen zijn niet toegestaan voor dit type spoor
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Gelijkvloerse kruisingen zijn niet toegestaan voor dit type weg
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kan hier geen seinen plaatsen...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kan hier geen spoor leggen...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kan hier geen spoor verwijderen...
@@ -4423,6 +4459,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan hier
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan de tramrails hier niet verwijderen...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}...er is geen weg
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}...er is geen tramlijn
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan wegtype hier niet converteren...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan tramtype hier niet converteren...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Geen geschikte weg
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Geen geschikt tramspoor
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... weg niet geschikt
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... treinspoor niet geschikt
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kan hier geen kanaal bouwen...
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 41ba688cd7..c7852bf989 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -947,6 +947,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari (
STR_GAME_OPTIONS_CURRENCY_IRR :Iranian Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :New Russian Ruble (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexican Peso (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :New Taiwan Dollar (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Road vehicles
@@ -1619,6 +1622,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Allow AIs in mu
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Allow AI computer players to participate in multiplayer games
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes before scripts are suspended: {STRING2}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximum number of computation steps that a script can take in one turn
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Max memory usage per script: {STRING2}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :How much memory a single script may consume before it's forcibly terminated. This may need to be increased for large maps.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SHARING_RAIL :Enable sharing of railways: {STRING2}
STR_CONFIG_SETTING_SHARING_ROAD :Enable sharing of road stops and depots: {STRING2}
@@ -3282,6 +3288,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Current
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}How fast the game is currently running, compared to the expected speed at normal simulation rate.
STR_FRAMERATE_CURRENT :{WHITE}Current
STR_FRAMERATE_AVERAGE :{WHITE}Average
+STR_FRAMERATE_MEMORYUSE :{WHITE}Memory
STR_FRAMERATE_DATA_POINTS :{BLACK}Data based on {COMMA} measurements
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -3289,6 +3296,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frames/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frames/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -5244,7 +5254,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... this
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... road facing in the wrong direction
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... drive through stops can't have corners
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... drive through stops can't have junctions
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... road is one way or blocked
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Can't remove part of station...
diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt
index feeb4a6a29..40b876878d 100644
--- a/src/lang/english_AU.txt
+++ b/src/lang/english_AU.txt
@@ -2368,6 +2368,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Build tr
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Toggle build/remove for road construction
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Toggle build/remove for tramway construction
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Road Depot Orientation
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Select road vehicle depot orientation
@@ -3316,10 +3317,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Ra
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :New Monorail Vehicles
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :New Maglev Vehicles
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :New Rail Vehicles
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :New Road Vehicles
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :New Rail Vehicles
STR_BUY_VEHICLE_SHIP_CAPTION :New Ships
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :New Aircraft
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Weight: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Speed: {GOLD}{VELOCITY}{BLACK} Power: {GOLD}{POWER}
@@ -3455,13 +3459,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}You are
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Message from vehicle manufacturer
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}We have just designed a new {STRING} - would you be interested in a year's exclusive use of this vehicle, so we can see how it performs before making it universally available?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :railway locomotive
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :road vehicle
-STR_ENGINE_PREVIEW_AIRCRAFT :aircraft
-STR_ENGINE_PREVIEW_SHIP :ship
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail locomotive
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomotive
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :road vehicle
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aircraft
+STR_ENGINE_PREVIEW_SHIP :ship
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr
@@ -3498,6 +3505,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Electrified Rai
STR_REPLACE_MONORAIL_VEHICLES :Monorail Vehicles
STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Wagon removal: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing wagons (starting at the front), if replacing the engine would make the train longer
diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt
index c1d0b2438c..d07cceb96a 100644
--- a/src/lang/english_US.txt
+++ b/src/lang/english_US.txt
@@ -237,6 +237,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Select f
STR_BUTTON_SORT_BY :{BLACK}Sort by
STR_BUTTON_LOCATION :{BLACK}Location
STR_BUTTON_RENAME :{BLACK}Rename
+STR_BUTTON_CATCHMENT :{BLACK}Coverage
+STR_TOOLTIP_CATCHMENT :{BLACK}Toggle coverage area display
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Close window
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Window title - drag this to move window
@@ -265,6 +267,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}By enabl
STR_BUTTON_DEFAULT :{BLACK}Default
STR_BUTTON_CANCEL :{BLACK}Cancel
STR_BUTTON_OK :{BLACK}OK
+STR_WARNING_PASSWORD_SECURITY :{YELLOW}Warning: Server administrators may be able to read any text entered here.
# On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
@@ -338,6 +341,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Zoom the
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Zoom the view out
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Build railroad track
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Build roads
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Build streetcar lines
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Build ship docks
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Build airports
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Open the landscaping toolbar to raise/lower land, plant trees, etc.
@@ -358,6 +362,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Landscap
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Town generation
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industry generation
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Road construction
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Streetcar line construction
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plant trees. Shift toggles building/showing cost estimate
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Place sign
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Place object. Shift toggles building/showing cost estimate
@@ -933,6 +938,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgian Lari (
STR_GAME_OPTIONS_CURRENCY_IRR :Iranian Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :New Russian Ruble (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexican Peso (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :New Taiwan Dollar (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Road vehicles
@@ -1483,6 +1491,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Allow AIs in mu
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Allow AI computer players to participate in multiplayer games
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes before scripts are suspended: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximum number of computation steps that a script can take in one turn
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Max memory usage per script: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :How much memory a single script may consume before it's forcibly terminated. This may need to be increased for large maps.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Maintenance intervals are in percents: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choose whether maintenance of vehicles is triggered by the time passed since last maintenance or by reliability dropping by a certain percentage of the maximum reliability
@@ -2428,6 +2439,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Build ro
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Build streetcar tunnel. Shift toggles building/showing cost estimate
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Toggle build/remove for road construction
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Toggle build/remove for streetcar track construction
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Convert/Upgrade the type of road. Shift toggles building/showing cost estimate
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Convert/Upgrade the type of streetcar. Shift toggles building/showing cost estimate
+
+STR_ROAD_NAME_ROAD :Road
+STR_ROAD_NAME_TRAM :Streetcar line
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Road Depot Orientation
@@ -2612,8 +2628,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargo accepted: {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_ROAD_TYPE :{BLACK}Road type: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Streetcar type: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Road speed limit: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Tram speed limit: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocks
@@ -2723,6 +2742,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Current
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}How fast the game is currently running, compared to the expected speed at normal simulation rate.
STR_FRAMERATE_CURRENT :{WHITE}Current
STR_FRAMERATE_AVERAGE :{WHITE}Average
+STR_FRAMERATE_MEMORYUSE :{WHITE}Memory
STR_FRAMERATE_DATA_POINTS :{BLACK}Data based on {COMMA} measurements
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2730,6 +2750,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frames/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frames/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3355,6 +3378,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Rail pieces:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signals
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Road pieces:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Streetcar pieces:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Water tiles:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canals
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stations:
@@ -3462,10 +3486,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Ra
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :New Monorail Vehicles
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :New Maglev Vehicles
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :New Rail Vehicles
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :New Road Vehicles
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :New Streetcars
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :New Rail Vehicles
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :New Road Vehicles
STR_BUY_VEHICLE_SHIP_CAPTION :New Ships
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :New Aircraft
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Weight: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} (Refit Cost: {GOLD}{CURRENCY_LONG}{BLACK}) Weight: {GOLD}{WEIGHT_SHORT}
@@ -3626,13 +3655,18 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}You are
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Message from vehicle manufacturer
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}We have just designed a new {STRING} - would you be interested in a year's exclusive use of this vehicle, so we can see how it performs before making it universally available ?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :railroad locomotive
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :road vehicle
-STR_ENGINE_PREVIEW_AIRCRAFT :aircraft
-STR_ENGINE_PREVIEW_SHIP :ship
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :electrified railway locomotive
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail locomotive
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev locomotive
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :road vehicle
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :streetcar
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aircraft
+STR_ENGINE_PREVIEW_SHIP :ship
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER}{}Running Cost: {CURRENCY_LONG}/yr{}Capacity: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Weight: {WEIGHT_SHORT}{}Speed: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Running Cost: {4:CURRENCY_LONG}/yr{}Capacity: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Max. Speed: {VELOCITY}{}Capacity: {CARGO_LONG}{}Running Cost: {CURRENCY_LONG}/yr
@@ -3670,14 +3704,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch b
STR_REPLACE_ENGINES :Engines
STR_REPLACE_WAGONS :Cars
STR_REPLACE_ALL_RAILTYPE :All rail vehicles
+STR_REPLACE_ALL_ROADTYPE :All road vehicles
STR_REPLACE_HELP_RAILTYPE :{BLACK}Choose the rail type you want to replace engines for
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Choose the road type you want to replace engines for
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Displays which engine the left selected engine is being replaced with, if any
STR_REPLACE_RAIL_VEHICLES :Rail Vehicles
STR_REPLACE_ELRAIL_VEHICLES :Electrified Rail Vehicles
STR_REPLACE_MONORAIL_VEHICLES :Monorail Vehicles
STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles
+STR_REPLACE_ROAD_VEHICLES :Road Vehicles
+STR_REPLACE_TRAM_VEHICLES :Streetcars
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Car removal: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Make autoreplace keep the length of a train the same by removing cars (starting at the front), if replacing the engine would make the train longer
@@ -4330,7 +4369,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... this
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... road facing in the wrong direction
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... drive through stops can't have corners
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... drive through stops can't have junctions
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... road is one way or blocked
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Can't remove part of station...
@@ -4401,6 +4439,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}No suita
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Must remove railroad track first
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Road is one way or blocked
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Grade crossings not allowed for this rail type
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Level crossings not allowed for this road type
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Can't build signals here...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Can't build railroad track here...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Can't remove railroad track from here...
@@ -4420,6 +4459,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Can't re
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Can't remove streetcar track from here...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... there is no road
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... there is no streetcar track
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Can't convert road type here...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Can't convert streetcar type here...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}No suitable road
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}No suitable streetcar line
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... incompatible road
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... incompatible streetcar line
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Can't build canals here...
diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt
index 6eb35a8272..69fb41ce11 100644
--- a/src/lang/esperanto.txt
+++ b/src/lang/esperanto.txt
@@ -1999,6 +1999,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Konstruu
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Konstrui tramtunelon. Baskulu inter konstrui/(kosto)taksi per maljuskliga klavo
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Ĉu konstrui ĉu forigi por vojkonstruado
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Direkto de la stratveturila garaĝo
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elekti direkton de la stratveturila garaĝo
@@ -2791,10 +2792,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novaj Elektraj
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Novaj Unurelaj Veturiloj
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Novaj Maglevaj Veturiloj
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novaj stratveturiloj
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novaj stratveturiloj
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novaj stratveturiloj
STR_BUY_VEHICLE_SHIP_CAPTION :Novaj Ŝipoj
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Novaj Aviadiloj
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kosto: {GOLD}{CURRENCY_LONG}{BLACK} Pezo: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Rapido: {GOLD}{VELOCITY}{BLACK} Forto: {GOLD}{POWER}
@@ -2936,13 +2940,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Vi vend
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mesaĝo de veturil-produktanto
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Nova {STRING} estas inventita - ĉu vi ŝatus jaron ekskluzive uzi la veturilon, por ke ni povu vidi ĝian funkciadon antaŭ ol ĝi estos plene havebla?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :fervoja lokomotivo
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :stratveturilo
-STR_ENGINE_PREVIEW_AIRCRAFT :aviadilo
-STR_ENGINE_PREVIEW_SHIP :ŝipo
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :unurellokomotivo
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomotivo
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :stratveturilo
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aviadilo
+STR_ENGINE_PREVIEW_SHIP :ŝipo
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY_LONG} jare{}Kapablo: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosto: {CURRENCY_LONG} Pezo: {WEIGHT_SHORT}{}Rapido: {VELOCITY} Povo: {POWER} Maks. T.E.: {6:FORCE}{}Irkosto: {4:CURRENCY_LONG}/jaro{}Kapacito: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosto: {CURRENCY_LONG} Maks. Rapido: {VELOCITY}{}Kapacito: {CARGO_LONG}{}Irkosto: {CURRENCY_LONG}/jaro
@@ -2976,6 +2983,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektraj Relaj
STR_REPLACE_MONORAIL_VEHICLES :Unurelaj Veturiloj
STR_REPLACE_MAGLEV_VEHICLES :Maglevaj Veturiloj
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagonforigo: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ĉe aŭtomata anstataŭigo tenu saman longecon de la trajno per forigo de vagonoj (defronte), se per nova maŝino la trajno plilongiĝas
diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt
index defd29ecc8..8235bcbca4 100644
--- a/src/lang/estonian.txt
+++ b/src/lang/estonian.txt
@@ -2456,6 +2456,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Ehita tr
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Lülitu maanteede ehitamise ja lammutamise vahel
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Lülitu trammitee ehitamise ja lammutamise vahel
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Depoo suund
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Vali depoole suund
@@ -3428,10 +3429,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uus elektriraud
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Uus monorelsssõiduk
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Uus magnethõljuksõiduk
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Rööbassõidukid
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Uued mootorsõidukid
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Rööbassõidukid
STR_BUY_VEHICLE_SHIP_CAPTION :Uued laevad
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Uus lennuk
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Hind: {GOLD}{CURRENCY_LONG}{BLACK} Tühimass: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Tippkiirus: {GOLD}{VELOCITY}{BLACK} Võimsus: {GOLD}{POWER}
@@ -3579,13 +3583,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Sa oled
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Teade veovahendite tootjalt
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Me töötasime välja uue {STRING}. Kas te oleksite huvitatud selle ainuõiguslikust katsetamisest järgneva aasta jooksul, et me saaksime jälgida kuidas see toimib?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :raudteevedur
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :mootorsõiduk
-STR_ENGINE_PREVIEW_AIRCRAFT :lennuk
-STR_ENGINE_PREVIEW_SHIP :laev
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorelssvedur
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnethõljukvedur
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :mootorsõiduk
+
+STR_ENGINE_PREVIEW_AIRCRAFT :lennuk
+STR_ENGINE_PREVIEW_SHIP :laev
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Tippkiirus: {VELOCITY} Võimsus: {POWER}{}Käituskulud: {CURRENCY_LONG}/aastas{}Kandevõime: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
@@ -3629,6 +3636,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrirongid
STR_REPLACE_MONORAIL_VEHICLES :Monorelssveerem
STR_REPLACE_MAGLEV_VEHICLES :Magnethõljukveerem
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagunite eemaldus: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Sunni automaatset asendust hoidma rongi pikkust selleks (eest alustades) veeremit eemaldades, juhul kui uus vagun muudaks rongi pikemaks.
@@ -4279,7 +4287,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... see
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... tee on vales suunas
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... nurgad ei saa läbisõidupeatustes olla
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... ristmikud ei saa olla läbisõidupeatustes
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... tee on ühesuunaline või blokeeritud
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Siinset jaamablokki ei saa lammutada...
diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt
index e76aa218ff..deea1d02a2 100644
--- a/src/lang/faroese.txt
+++ b/src/lang/faroese.txt
@@ -2161,6 +2161,7 @@ STR_BRIDGE_TUBULAR_SILICON :Rør, silikon
STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Vegagerð
STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Sporvogna bygging
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Akfars goymslu ætt
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Vel hvønn veg akfars goymslan skal venda
@@ -2981,10 +2982,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nýggj ravmagns
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nýggj einsporaði jarnbreyta flutningstól
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nýggj maglev flutningstól
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nýggj jarnbreyta flutningstól
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nýggj akfør
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nýggj jarnbreyta flutningstól
STR_BUY_VEHICLE_SHIP_CAPTION :Nýggj skip
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nýggj flogfør
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kostnaður: {GOLD}{CURRENCY_LONG}{BLACK} Vekt: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Ferð: {GOLD}{VELOCITY}{BLACK} Megi: {GOLD}{POWER}
@@ -3120,13 +3124,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Tú er
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Boð frá framleiðarinum av flutningstólinum
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Vit hava júst sniðgivi eitt nýtt {STRING} - hevði tú havt áhuga í einkarrættindum at nýtt hetta flutningstóli í eitt ár, so vit kunnu síggja hvussu ta virkar áðrenn vit gera ta tøkt á marknaðinum?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :jarnbreyta lokomotiv
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}akfar
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}flogfar
-STR_ENGINE_PREVIEW_SHIP :skip
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :einsporað lokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotiv
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}akfar
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}flogfar
+STR_ENGINE_PREVIEW_SHIP :skip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár{}Pláss: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnaður: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Ferð: {VELOCITY} Megi: {POWER} Maks. D.Ó.: {6:FORCE}{}Rakstrar kostnaður: {4:CURRENCY_LONG}/ár{}Pláss: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnaður: {CURRENCY_LONG} Maks. Ferð: {VELOCITY}{}Pláss: {CARGO_LONG}{}Rakstrar kostnaður: {CURRENCY_LONG}/ár
@@ -3163,6 +3170,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Ravmagns jarnbr
STR_REPLACE_MONORAIL_VEHICLES :Einsporaði jarnbreyta flutningstól
STR_REPLACE_MAGLEV_VEHICLES :Maglev flutningstól
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vogn burturrudding: {ORANGE}{STRING}
# Vehicle view
diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt
index 68d53fd7d9..a346a9640d 100644
--- a/src/lang/finnish.txt
+++ b/src/lang/finnish.txt
@@ -341,6 +341,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Lähenn
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Loitonna näkymää
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Rakenna rautateitä
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Rakenna teitä
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Rakenna raitioteitä
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Rakenna satamia
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Rakenna lentokenttiä
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Avaa maastonmuokkaustyökalupalkki maan kohottamiseen/madaltamiseen, puiden istuttamiseen, jne.
@@ -361,6 +362,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Maaston
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Kuntien luonti
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Teollisuuden luonti
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Tienrakennus
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Raitiotien rakentaminen
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Istuta puita. Shift vaihtaa istutustilan ja kustannusarvion välillä
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Sijoita kyltti
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Sijoita objekti. Shift vaihtaa rakennustilan ja kustannusarvion välillä
@@ -936,6 +938,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgian lari (
STR_GAME_OPTIONS_CURRENCY_IRR :Iranin rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Uusi Venäjän rupla (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Meksikon peso (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :Uusi Taiwanin dollari (TWD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Kiinan renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongin dollari (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kulkuneuvot
@@ -1486,6 +1491,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Salli tekoälyt
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Sallii tietokonepelaajien osallistumisen moninpeleihin
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodet ennen skriptin pysäyttämistä: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Suurin sallittu määrä laskutoimituksia, jonka skripti voi suorittaa yhden vuoron aikana
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Skriptikohtainen muistinkäyttö enintään: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Kuinka paljon muistia yksittäinen skripti saa käyttää, ennen kuin se pakotetaan lopettamaan. Jos kartta on iso, tätä arvoa voi joutua suurentamaan.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Huoltovälit ovat prosentteina: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Määritä, aiheuttaako edellisestä huollosta kulunut aika vai luotettavuuden laskeminen kulkuneuvon huoltamisen
@@ -2431,6 +2439,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Rakenna
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Rakenna raitiotietunneli. Shift vaihtaa rakennustilan ja kustannusarvion välillä
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Tien rakentaminen/siirtäminen päälle/pois
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Vaihda raitiotien rakentamisen ja purkamisen välillä
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Muunna tai päivitä tien tyyppi. Shift vaihtaa muuntotilan ja kustannusarvion välillä
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Muunna tai päivitä raitiotien tyyppi. Shift vaihtaa muuntotilan ja kustannusarvion välillä
+
+STR_ROAD_NAME_ROAD :Tie
+STR_ROAD_NAME_TRAM :Raitiotie
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Autovarikon suunta
@@ -2615,8 +2628,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Vastaanottaa rahtia: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Raidetyyppi: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Tien tyyppi: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Raitiotien tyyppi: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Radan nopeusrajoitus: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Tien nopeusrajoitus: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Raitiotien nopeusrajoitus: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kalliota
@@ -2726,6 +2742,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Pelin ny
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Pelin tämänhetkinen nopeus verrattuna normaalilla simulaationopeudella odotettavissa olevaan
STR_FRAMERATE_CURRENT :{WHITE}Nykyinen
STR_FRAMERATE_AVERAGE :{WHITE}Keskiarvo
+STR_FRAMERATE_MEMORYUSE :{WHITE}Muisti
STR_FRAMERATE_DATA_POINTS :{BLACK}Data perustuu {COMMA} mittaukseen
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2733,6 +2750,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} kuvaa/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} kuvaa/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} kuvaa/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3358,6 +3378,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}{COMPANY
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Rautatiepalat:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Opastimet
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Teiden palat:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Raitiotiepalat:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Vesiruudut:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanavat
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Asemat:
@@ -3465,10 +3486,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Uusi sähköjun
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Uusi yksiraidejuna
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Uusi Maglev-juna
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Uudet junat
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Uusia ajoneuvoja
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Uusia raitiovaunuja
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Uudet junat
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Uusia ajoneuvoja
STR_BUY_VEHICLE_SHIP_CAPTION :Uusia laivoja
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Uusi lentokone
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Hinta: {GOLD}{CURRENCY_LONG}{BLACK} Paino: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Hinta: {GOLD}{CURRENCY_LONG}{BLACK} (Sovituskustannus: {GOLD}{CURRENCY_LONG}{BLACK}) Paino: {GOLD}{WEIGHT_SHORT}
@@ -3629,13 +3655,18 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Olet my
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Viesti kulkuneuvovalmistajalta
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Olemme juuri suunnitelleet uuden {STRING} – oletteko kiinnostunut vuoden yksinoikeutetusta kokeilusta, jotta näemme miten tuote suoriutuu ennen kuin julkistamme sen yleiseen käyttöön?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :veturin
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :ajoneuvon
-STR_ENGINE_PREVIEW_AIRCRAFT :lentokoneen
-STR_ENGINE_PREVIEW_SHIP :laivan
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :sähköradan veturi
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :yksiraiteisen veturin
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :ajoneuvon
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :raitiovaunu
+
+STR_ENGINE_PREVIEW_AIRCRAFT :lentokoneen
+STR_ENGINE_PREVIEW_SHIP :laivan
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER}{}Käyttökustannukset: {CURRENCY_LONG}/vuosi{}Kapasiteetti: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hinta: {CURRENCY_LONG} Paino: {WEIGHT_SHORT}{}Nopeus: {VELOCITY} Teho: {POWER} Maks. vetovoima: {6:FORCE}{}Käyttökustannukset: {4:CURRENCY_LONG}/v{}Kapasiteetti: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hinta: {CURRENCY_LONG} Maks. nopeus: {VELOCITY}{}Kapasiteetti: {CARGO_LONG}{}Käyttökustannukset: {CURRENCY_LONG}/v
@@ -3673,14 +3704,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Vaihda t
STR_REPLACE_ENGINES :Veturit
STR_REPLACE_WAGONS :Vaunut
STR_REPLACE_ALL_RAILTYPE :Kaikki junat
+STR_REPLACE_ALL_ROADTYPE :Kaikki ajoneuvot
STR_REPLACE_HELP_RAILTYPE :{BLACK}Valitse rautatietyyppi, jolle veturikorvaukset tehdään.
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Valitse tien tyyppi, jolle ajoneuvojen korvaukset tehdään
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Näyttää, millä vasemmalta valittu veturi korvataan, jos millään.
STR_REPLACE_RAIL_VEHICLES :Junat
STR_REPLACE_ELRAIL_VEHICLES :Sähköjunat
STR_REPLACE_MONORAIL_VEHICLES :Yksiraiteiset
STR_REPLACE_MAGLEV_VEHICLES :Maglev-junat
+STR_REPLACE_ROAD_VEHICLES :Ajoneuvot
+STR_REPLACE_TRAM_VEHICLES :Raitiovaunut
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vaunun poisto: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automaattikorvauksessa junapituus pidetään samana poistamalla vaunuja (edestä) jos veturi pidentäisi junaa
@@ -4333,7 +4369,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... kunt
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... tie on väärin päin
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... läpiajettavissa pysäkeissä ei voi olla mutkia
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... läpiajettavissa pysäkeissä ei voi olla risteyksiä
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... tie on yksisuuntainen tai suljettu
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Aseman osaa ei voi poistaa...
@@ -4404,6 +4439,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Ei kelvo
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Rautatie pitää poistaa ensin.
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Tie on yksisuuntainen tai suljettu
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Tasoristeykset eivät ole sallittu tälle raidetyypille
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Tasoristeykset eivät ole sallittuja tälle tietyypille
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Opastinta ei voi rakentaa.
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Rautatietä ei voi rakentaa.
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Rautatietä ei voi poistaa.
@@ -4423,6 +4459,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Tietä e
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Tästä ei voi poistaa raitiotietä.
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... tässä ei ole tietä
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... tässä ei ole raitiotietä
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Tien tyyppiä ei voi muuntaa tässä...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Raitiotien tyyppiä ei voi muuntaa tässä...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ei sopivaa tietä
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ei sopivaa raitiotietä
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... yhteensopimaton tie
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... yhteensopimaton raitiotie
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kanaalia ei voi rakentaa tähän...
diff --git a/src/lang/french.txt b/src/lang/french.txt
index 0357f31425..59c182f684 100644
--- a/src/lang/french.txt
+++ b/src/lang/french.txt
@@ -238,6 +238,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Choisir
STR_BUTTON_SORT_BY :{BLACK}Trier par
STR_BUTTON_LOCATION :{BLACK}Emplacement
STR_BUTTON_RENAME :{BLACK}Renommer
+STR_BUTTON_CATCHMENT :{BLACK}Couverture
+STR_TOOLTIP_CATCHMENT :{BLACK}Basculer l'affichage de la zone couverte
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fermer la fenêtre
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titre de fenêtre - Faire glisser pour déplacer la fenêtre
@@ -266,6 +268,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}En activ
STR_BUTTON_DEFAULT :{BLACK}Défaut
STR_BUTTON_CANCEL :{BLACK}Annuler
STR_BUTTON_OK :{BLACK}OK
+STR_WARNING_PASSWORD_SECURITY :{YELLOW}Attention{NBSP}: Les administrateurs du serveur pourraient lire tout texte entré ici.
# On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :²&é"'(-è_çà)= azertyuiop^$qsdfghjklmù*
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}전차를 지원하지 않는 버전으로 게임이 저장되었습니다. 모든 전차는 제거되었습니다.
@@ -5068,17 +5104,17 @@ STR_GAME_SAVELOAD_ERROR_HELI_OILRIG_BUG :저장 파일
# Map generation messages
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}지도 생성이 중지되었습니다...{}... 도시를 건설할 적절한 곳이 존재하지 않습니다
-STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... 시나리오에 도시가 없습니다.
+STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... 시나리오에 도시가 없습니다
-STR_ERROR_PNGMAP :{WHITE}PNG파일로부터 지형을 불러올 수 없습니다...
-STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... 파일이 없습니다.
-STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... 이미지 타입을 변경할 수 없습니다. 8 또는 24-bit의 PNG 이미지가 필요합니다.
-STR_ERROR_PNGMAP_MISC :{WHITE}... 뭔가 잘못되었습니다. 죄송합니다. (손상된 파일로 추정됨)
+STR_ERROR_PNGMAP :{WHITE}PNG 파일에서 지형을 불러올 수 없습니다...
+STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... 파일이 없습니다
+STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... 이미지 타입을 변경할 수 없습니다. 8bit 또는 24bit의 PNG 이미지가 필요합니다
+STR_ERROR_PNGMAP_MISC :{WHITE}... 뭔가가 잘못되었습니다 (파일이 손상된 것으로 추정됨)
-STR_ERROR_BMPMAP :{WHITE}BMP파일로부터 지형을 불러올 수 없습니다...
-STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... 이미지 타입을 변경할 수 없습니다.
+STR_ERROR_BMPMAP :{WHITE}BMP 파일에서 지형을 불러올 수 없습니다...
+STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... 이미지 타입을 변경할 수 없습니다
-STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... 이미지가 너무 큽니다.
+STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... 이미지가 너무 큽니다
STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}지도 크기 경고
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}원본 지도의 크기를 너무 많이 조절하는 것은 좋지 않습니다. 그래도 계속하시겠습니까?
@@ -5090,7 +5126,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}게임
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}대형 스크린 샷
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}스크린 샷의 이미지 크기는 {COMMA} x {COMMA} 픽셀이 될 것입니다. 스크린 샷을 찍는 데에는 시간이 다소 걸릴 수 있습니다. 계속하시겠습니까?
-STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}스크린 샷이 '{STRING}' 로 저장되었습니다.
+STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}스크린 샷이 '{STRING}'로 저장되었습니다
STR_ERROR_SCREENSHOT_FAILED :{WHITE}스크린 샷을 찍지 못했습니다!
# Error message titles
@@ -5098,18 +5134,18 @@ STR_ERROR_MESSAGE_CAPTION :{YELLOW}알림
STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}{STRING} 회사가 보낸 메시지
# Generic construction errors
-STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}지도 가장자리에서 너무 멉니다!
-STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}지도 가장자리와 너무 가깝습니다!
-STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}재정이 부족합니다 - {CURRENCY_LONG} 이(가) 필요합니다
-STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}평지가 필요합니다!
+STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}지도 가장자리에서 너무 멉니다
+STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}지도 가장자리와 너무 가깝습니다
+STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}재정이 부족합니다 - {CURRENCY_LONG} 만큼의 돈이 필요합니다
+STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}평지가 필요합니다
STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}잘못된 방향으로 땅이 기울어졌습니다
STR_ERROR_CAN_T_DO_THIS :{WHITE}그렇게 할 수 없습니다...
-STR_ERROR_BUILDING_MUST_BE_DEMOLISHED :{WHITE}건물을 먼저 제거하십시오.
+STR_ERROR_BUILDING_MUST_BE_DEMOLISHED :{WHITE}건물을 먼저 제거해야 합니다
STR_ERROR_CAN_T_CLEAR_THIS_AREA :{WHITE}이 지역을 파괴할 수 없습니다...
-STR_ERROR_SITE_UNSUITABLE :{WHITE}... 알맞지 않은 장소입니다!
+STR_ERROR_SITE_UNSUITABLE :{WHITE}... 알맞지 않은 장소입니다
STR_ERROR_ALREADY_BUILT :{WHITE}... 이미 지어져있습니다
-STR_ERROR_OWNED_BY :{WHITE}... {STRING}의 소유입니다.
-STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... 다른 회사의 소유지입니다!
+STR_ERROR_OWNED_BY :{WHITE}... {STRING}의 소유입니다
+STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... 다른 회사의 소유지입니다
STR_ERROR_TERRAFORM_LIMIT_REACHED :{WHITE}... 지형 편집 제한에 다다랐습니다
STR_ERROR_CLEARING_LIMIT_REACHED :{WHITE}... 칸 제거 제한에 다다랐습니다
STR_ERROR_TREE_PLANT_LIMIT_REACHED :{WHITE}... 나무 심기 제한에 다다랐습니다
@@ -5119,28 +5155,28 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}일시
# Local authority errors
STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}{TOWN} 지역 당국이 이 행동을 거부했습니다.
-STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}{TOWN} 지역 당국이 이 도시에 다른 공항이 들어서는 것을 거부하였습니다!
+STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}{TOWN} 지역 당국이 이 도시에 다른 공항이 들어서는 것을 거부하였습니다
STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN} 지역 당국이 소음 문제로 인해 공항 건설을 거부하였습니다
-STR_ERROR_BRIBE_FAILED :{WHITE}당신의 뇌물 수수 행위가 지역 당국에 의해 발각되었습니다!
+STR_ERROR_BRIBE_FAILED :{WHITE}당신의 뇌물 수수 행위가 지역 당국에 의해 발각되었습니다
# Levelling errors
STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}이곳의 땅을 올릴 수 없습니다...
STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}이곳의 땅을 내릴 수 없습니다...
STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}이 땅의 높이를 조절할 수 없습니다...
-STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}터널 때문에 지형을 편집할 수 없습니다.
-STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}이미 해수면에 도달했습니다
-STR_ERROR_TOO_HIGH :{WHITE}너무 높습니다!
-STR_ERROR_ALREADY_LEVELLED :{WHITE}... 이미 평평합니다.
-STR_ERROR_BRIDGE_TOO_HIGH_AFTER_LOWER_LAND :{WHITE}다리가 끝나는 부분의 높이가 너무 높습니다.
+STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}터널 때문에 지형을 편집할 수 없습니다
+STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}... 이미 해수면에 도달했습니다
+STR_ERROR_TOO_HIGH :{WHITE}... 너무 높습니다
+STR_ERROR_ALREADY_LEVELLED :{WHITE}... 이미 평평합니다
+STR_ERROR_BRIDGE_TOO_HIGH_AFTER_LOWER_LAND :{WHITE}다리가 끝나는 부분의 높이가 너무 높습니다
# Company related errors
STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}회사 이름을 바꿀 수 없습니다...
STR_ERROR_CAN_T_CHANGE_PRESIDENT :{WHITE}사장의 이름을 바꿀 수 없습니다...
-STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... 허용된 최대 대출금은 {CURRENCY_LONG} 입니다.
-STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}더이상 돈을 빌릴 수 없습니다...
-STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... 값아야 할 대출금이 없습니다.
-STR_ERROR_CURRENCY_REQUIRED :{WHITE}...{CURRENCY_LONG} 필요합니다.
+STR_ERROR_MAXIMUM_PERMITTED_LOAN :{WHITE}... 최대로 빌릴 수 있는 대출금은 {CURRENCY_LONG} 입니다
+STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}돈을 더 빌릴 수 없습니다...
+STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... 값아야 할 대출금이 없습니다
+STR_ERROR_CURRENCY_REQUIRED :{WHITE}... {CURRENCY_LONG} 만큼의 돈이 필요합니다
STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}대출금을 갚을 수 없습니다...
STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}은행에서 빌린 돈은 송금할 수 없습니다...
STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}회사를 인수할 수 없습니다...
@@ -5150,19 +5186,19 @@ STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}이 회
STR_ERROR_PROTECTED :{WHITE}이 회사는 지분을 거래할 수 있을 만큼 오래되지 않았습니다...
# Town related errors
-STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}도시를 만들 수 없습니다!
+STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}도시를 만들 수 없습니다
STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}도시 이름을 바꿀 수 없습니다...
STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}여기에 도시를 건설할 수 없습니다...
STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}도시를 확장할 수 없습니다...
STR_ERROR_CAN_T_BUILD_HOUSE_HERE :{WHITE}건물을 지을 수 없습니다...
-STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... 지도 가장자리와 너무 가깝습니다!
-STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... 다른 도시와 너무 가깝습니다!
-STR_ERROR_TOO_MANY_TOWNS :{WHITE}... 도시가 너무 많습니다!
-STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... 지도에 더이상 공간이 없습니다!
+STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... 지도 가장자리와 너무 가깝습니다
+STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... 다른 도시와 너무 가깝습니다
+STR_ERROR_TOO_MANY_TOWNS :{WHITE}... 도시가 너무 많습니다
+STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... 지도에 더 이상 공간이 없습니다
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}도시가 도로를 짓지 않을 것입니다. [설정→환경→도시]에서 도로를 지을 수 있도록 설정을 변경하실 수 있습니다.
-STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}도로 작업이 진행중입니다
+STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}도로 작업이 진행 중입니다
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}이 도시를 삭제할 수 없습니다...{}도시나 도시 소유의 땅에 역, 정류장, 항구, 공항 또는 차량기지, 차고지, 정박소 등이 존재하면 도시를 삭제할 수 없습니다.
-STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... 이 도시의 중심에 동상을 세우기 적합한 장소가 없습니다.
+STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... 이 도시의 중심에 동상을 세우기 적합한 장소가 없습니다
STR_ERROR_BUILDING_NOT_ALLOWED_IN_THIS_TOWN_ZONE :{WHITE}... 이 도시 구역에 생성될 수 없습니다.
STR_ERROR_BUILDING_NOT_ALLOWED_ABOVE_SNOW_LINE :{WHITE}... 설선 위에 건설할 수 없습니다.
STR_ERROR_BUILDING_NOT_ALLOWED_BELOW_SNOW_LINE :{WHITE}... 설선 아래에 건설할 수 없습니다.
@@ -5174,130 +5210,130 @@ STR_ERROR_ONLY_ONE_BUILDING_ALLOWED_PER_TOWN :{WHITE}... 이
STR_ERROR_BUILDING_NOT_ALLOWED :{WHITE}... 허가되지 않았습니다.
# Industry related errors
-STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... 산업시설이 너무 많습니다!
+STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... 산업시설이 너무 많습니다
STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}산업시설을 생성할 수 없습니다...
STR_ERROR_CAN_T_BUILD_HERE :{WHITE}여기에 {STRING}{G 0 "을" "를"} 건설할 수 없습니다...
STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}여기는 산업시설을 건설할 수 없는 곳입니다...
-STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... 다른 산업시설과 너무 가깝습니다.
-STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... 도시를 먼저 만드십시오
-STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... 한 도시에 하나만 건설 가능합니다!
-STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... 인구 1200명 이상의 도시에만 건설할 수 있습니다!
-STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... 열대우림 지역에만 건설할 수 있습니다!
-STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... 사막 지역에만 건설할 수 있습니다!
-STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... 도시에만 건설할 수 있습니다! (집이 있는 위치에만)
-STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... 도시의 가운데 근처에만 설치할 수 있습니다.
-STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... 낮은 지역에만 건설할 수 있습니다!
-STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... 지도 가장자리에만 위치할 수 있습니다.
-STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... 숲은 만년설 높이 이상의 고도에만 심을 수 있습니다.
+STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... 다른 산업시설과 너무 가깝습니다
+STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... 도시를 먼저 만들어야 합니다
+STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... 한 도시에 하나만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... 인구 1200명 이상의 도시에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... 열대우림 지역에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... 사막 지역에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... 도시 안의 집이 있는 위치에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... 도시의 가운데 근처에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... 낮은 지역에만 지을 수 있습니다
+STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... 지도 가장자리 근처에만 놓을 수 있습니다
+STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... 숲은 만년설 높이 이상의 고도에만 지을 수 있습니다
STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... 만년설 고도 위에만 지을 수 있습니다
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... 만년설 고도 아래에만 지을 수 있습니다
-STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}적당한 장소가 없어 '{STRING}'{G 0 "이" "가"} 지어지지 않았습니다.
-STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}더 나은 지도가 생성되도록 설정 값을 변경해보십시오.
+STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}적당한 장소가 없어 '{STRING}'{G 0 "이" "가"} 지어지지 않았습니다
+STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}더 나은 지도가 생성되도록 설정 값을 변경해보십시오
# Station construction related errors
-STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}여기에 역을 건설할 수 없습니다...
+STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}여기에 역을 지을 수 없습니다...
STR_ERROR_CAN_T_BUILD_BUS_STATION :{WHITE}버스 정류장을 지을 수 없습니다...
STR_ERROR_CAN_T_BUILD_TRUCK_STATION :{WHITE}트럭 적하장을 지을 수 없습니다...
-STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}여기에 여객 전차역을 건설할 수 없습니다...
-STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}여기에 화물 전차역을 건설할 수 없습니다...
-STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}여기에 항구를 건설할 수 없습니다...
-STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}여기에 공항을 만들 수 없습니다...
+STR_ERROR_CAN_T_BUILD_PASSENGER_TRAM_STATION :{WHITE}여기에 여객 전차역을 지을 수 없습니다...
+STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}여기에 화물 전차역을 지을 수 없습니다...
+STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}여기에 항구를 지을 수 없습니다...
+STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}여기에 공항을 지을 수 없습니다...
-STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}2개 이상의 역이 인접합니다
-STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... 역이 너무 큽니다.
+STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}두 개 이상의 역이 인접합니다
+STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... 역이 너무 크게 퍼져있습니다
STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}역이 너무 많습니다
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}철도역 조각이 너무 많습니다
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}버스 정류장이 너무 많습니다
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}트럭 적하장이 너무 많습니다
-STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}다른 항구와 너무 가깝습니다!
+STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}다른 항구와 너무 가깝습니다
STR_ERROR_TOO_MANY_DOCKS :{WHITE}항구가 너무 많습니다!
-STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다!
+STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}역 이름을 바꿀 수 없습니다...
-STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... 여기는 도시 소유의 도로입니다
-STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... 도로의 방향과 일치하지 않습니다.
-STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... 도로 통과 정류장은 곡선도로에 건설할 수 없습니다.
-STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... 도로 통과 정류장은 교차로에 건설할 수 없습니다.
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... 도로가 일방통행이거나 차단되었습니다.
+STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... 여기는 도시 소유의 도로 입니다
+STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... 도로의 방향과 일치하지 않습니다
+STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... 통과식 도로 정류장은 굽은 도로에 건설할 수 없습니다
+STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... 통과식 도로 정류장은 교차로에 건설할 수 없습니다
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}역의 일부를 제거할 수 없습니다...
STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}먼저 철도역을 제거해야 합니다
-STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}버스 정류장을 철거할 수 없습니다...
+STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}버스 정류장을 제거할 수 없습니다...
STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}트럭 터미널을 제거할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}여객 전차역을 철거할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}화물 전차역을 철거할 수 없습니다...
-STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}정류장을 먼저 제거하십시오.
-STR_ERROR_THERE_IS_NO_STATION :{WHITE}... 여기에는 정거장이 없습니다.
+STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}여객 전차역을 제거할 수 없습니다...
+STR_ERROR_CAN_T_REMOVE_CARGO_TRAM_STATION :{WHITE}화물 전차역을 제거할 수 없습니다...
+STR_ERROR_MUST_REMOVE_ROAD_STOP_FIRST :{WHITE}정류장을 먼저 제거하십시오
+STR_ERROR_THERE_IS_NO_STATION :{WHITE}... 여기에는 정거장이 없습니다
-STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}철도역을 먼저 철거하십시오.
-STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}버스 정류장을 먼저 철거하십시오.
-STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}트럭 적하장을 먼저 제거하십시오.
-STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}여객 전차역을 먼저 제거하십시오.
-STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}화물 전차역을 먼저 제거하십시오.
-STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}항구를 먼저 제거하십시오!
-STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}공항을 먼저 제거하십시오!
+STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}철도역을 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}버스 정류장을 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}트럭 적하장을 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}여객 전차역을 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}화물 전차역을 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}항구를 먼저 제거하십시오
+STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}공항을 먼저 제거하십시오
# Waypoint related errors
-STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}최소한 하나 이상의 경유지와 연결하십시오.
+STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}최소한 하나 이상의 경유지와 연결하십시오
STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}다른 경유지와 너무 가깝습니다!
-STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}여기에 열차 경유지를 건설할 수 없습니다.
+STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}여기에 열차 경유지를 건설할 수 없습니다
STR_ERROR_CAN_T_POSITION_BUOY_HERE :{WHITE}여기에 부표를 설치할 수 없습니다...
STR_ERROR_CAN_T_CHANGE_WAYPOINT_NAME :{WHITE}경유지의 이름을 변경할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}이 열차 경유지를 제거할 수 없습니다.
-STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}열차 경유지를 먼저 제거하십시오.
-STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... 도중에 부표가 있습니다.
+STR_ERROR_CAN_T_REMOVE_TRAIN_WAYPOINT :{WHITE}이 열차 경유지를 제거할 수 없습니다
+STR_ERROR_MUST_REMOVE_RAILWAYPOINT_FIRST :{WHITE}열차 경유지를 먼저 제거하십시오
+STR_ERROR_BUOY_IN_THE_WAY :{WHITE}... 도중에 부표가 있습니다
STR_ERROR_BUOY_IS_IN_USE :{WHITE}... 다른 회사에서 사용 중인 부표입니다!
# Depot related errors
-STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}여기에 차량기지를 건설할 수 없습니다...
+STR_ERROR_CAN_T_BUILD_TRAIN_DEPOT :{WHITE}여기에 차량기지를 지을 수 없습니다...
STR_ERROR_CAN_T_BUILD_ROAD_DEPOT :{WHITE}여기에 차고지를 지을 수 없습니다...
-STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}여기에 차량기지를 건설할 수 없습니다...
+STR_ERROR_CAN_T_BUILD_TRAM_DEPOT :{WHITE}여기에 차량기지를 지을 수 없습니다...
STR_ERROR_CAN_T_BUILD_SHIP_DEPOT :{WHITE}여기에 정박소를 지을 수 없습니다...
STR_ERROR_CAN_T_RENAME_DEPOT :{WHITE}차량기지의 이름을 바꿀 수 없습니다...
-STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... 차량기지 안에 정지되어 있어야 합니다
+STR_ERROR_TRAIN_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... 차량기지 안에 정지해 있어야 합니다
STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... 차고지 안에 정지해 있어야 합니다
-STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... 정박소 내에 정지해 있어야 합니다!
-STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... 격납고 내에서 정지되어 있어야합 니다
+STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... 정박소 안에 정지해 있어야 합니다
+STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... 격납고 안에 정지해 있어야 합니다
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}차량기지 내에서 정지한 경우에만 개조할 수 있습니다
STR_ERROR_TRAIN_TOO_LONG :{WHITE}열차가 너무 깁니다!
-STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}차량의 방향을 뒤집을 수 없습니다...
+STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}차량을 유턴시킬 수 없습니다...
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}여러 대가 연결된 차량은 뒤집을 수 없습니다...
-STR_ERROR_INCOMPATIBLE_RAIL_TYPES :알맞지 않은 철도 타입
+STR_ERROR_INCOMPATIBLE_RAIL_TYPES :알맞지 않은 철도 타입입니다
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}차량을 옮길 수 없습니다...
-STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}뒷쪽 기관차는 앞쪽것을 항상 따라다닐 것입니다.
+STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}뒷쪽 기관차는 앞쪽 기관차를 항상 따라다닐 것입니다
STR_ERROR_UNABLE_TO_FIND_ROUTE_TO :{WHITE}근처에 있는 차량기지로 가는 길을 찾을 수 없습니다
STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}근처에 있는 차고지를 찾을 수 없습니다
-STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :잘못된 차량기지 종류
+STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :잘못된 차량기지 종류입니다
# Autoreplace related errors
-STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} : 교체된지 너무 오래되었습니다.
-STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}자동 교체/갱신 규칙이 적용되지 않았습니다.
-STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(자금 제한)
+STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} : 교체된지 너무 오래되었습니다
+STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}자동 교체/갱신 규칙이 적용되지 않았습니다
+STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(자금 부족)
# Rail construction errors
STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}불가능한 트랙 조합입니다
STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}신호기를 먼저 제거하십시오
-STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}알맞지 않은 선로입니다.
-STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}선로를 먼저 제거하십시오.
+STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}적합한 철도 선로가 없습니다
+STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}선로를 먼저 제거하십시오
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}도로가 일방통행이거나 막혔습니다
-STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}이 철도 타입에서는 건널목을 만들 수 없습니다.
+STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}이 선로에는 건널목을 만들 수 없습니다.
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}이 도로에는 건널목을 만들 수 없습니다
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}여기에 신호기를 건설할 수 없습니다...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}여기에 선로를 건설할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}이 선로를 철거할 수 없습니다...
+STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}이 선로를 제거할 수 없습니다...
STR_ERROR_CAN_T_REMOVE_SIGNALS_FROM :{WHITE}이곳의 신호기를 제거할 수 없습니다...
-STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}이곳의 신호기를 변환할 수 없습니다...
-STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... 선로가 없습니다.
-STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... 신호기가 없습니다.
+STR_ERROR_SIGNAL_CAN_T_CONVERT_SIGNALS_HERE :{WHITE}이곳의 신호기를 바꿀 수 없습니다...
+STR_ERROR_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... 선로가 없습니다
+STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... 신호기가 없습니다
-STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}이 선로의 형식을 바꿀 수 없습니다...
+STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}이곳의 선로를 바꿀 수 없습니다...
STR_ERROR_SIGNAL_CHANGES :{WHITE}프로그램 신호기가 한 번에 바꿀 수 있는 제한 횟수를 넘어섰습니다.
@@ -5306,16 +5342,22 @@ STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}도로
STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... 일방통행로에는 교차로를 만들 수 없습니다.
STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}도로를 건설할 수 없습니다...
STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}여기에 전찻길을 건설할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}도로를 제거할 수 없습니다...
-STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}이 전찻길을 철거할 수 없습니다...
-STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... 도로가 없습니다.
-STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... 전찻길이 없습니다.
+STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}이 도로를 제거할 수 없습니다...
+STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}이 전찻길을 제거할 수 없습니다...
+STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... 도로가 없습니다
+STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... 전찻길이 없습니다
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}이곳의 도로를 바꿀 수 없습니다...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}이곳의 전찻길을 바꿀 수 없습니다...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}적합한 도로가 없습니다
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}적합한 전찻길이 없습니다
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... 적합하지 않은 도로입니다
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... 적합하지 않은 전찻길입니다
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}여기에 운하를 건설할 수 없습니다...
STR_ERROR_CAN_T_BUILD_LOCKS :{WHITE}여기에 갑문을 지을 수 없습니다...
STR_ERROR_CAN_T_PLACE_RIVERS :{WHITE}여기에 강을 만들 수 없습니다...
-STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... 물 위에 지어져야 합니다!
+STR_ERROR_MUST_BE_BUILT_ON_WATER :{WHITE}... 물 위에 지어야 합니다!
STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... 물 위에 지을 수 없습니다
STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... 바다 위에 지을 수 없습니다
STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... 운하 위에 지을 수 없습니다
@@ -5324,8 +5366,8 @@ STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}운하
STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}여기에 수도교를 지을 수 없습니다...
# Tree related errors
-STR_ERROR_TREE_ALREADY_HERE :{WHITE}... 이미 나무가 심어져 있습니다.
-STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... 지형에 맞지 않는 나무타입입니다.
+STR_ERROR_TREE_ALREADY_HERE :{WHITE}... 이미 나무가 심어져 있습니다
+STR_ERROR_TREE_WRONG_TERRAIN_FOR_TREE_TYPE :{WHITE}... 지형에 맞지 않는 나무 종류입니다
STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}여기에 나무를 심을 수 없습니다...
# Bridge related errors
@@ -5333,10 +5375,10 @@ STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}여기
STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}다리를 먼저 제거하십시오
STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}같은 위치에서 시작하고 끝낼 수 없습니다
STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}다리는 같은 높이를 연결해야 합니다
-STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}그 지형은 다리를 건설하기에 너무 낮습니다
+STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}이 지형에 다리를 설치하기에는 고도가 너무 낮습니다.
STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}이 지형에 다리를 설치하기에는 고도가 너무 높습니다.
-STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}시작과 끝은 한 줄 위에 있어야 합니다
-STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... 다리의 양 끝은 모두 땅이어야합니다.
+STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}시작과 끝 지점은 일직선 상에 있어야 합니다
+STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... 다리의 양 끝은 모두 땅이어야 합니다
STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... 다리가 너무 깁니다!
STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}다리 끝이 지도 밖을 넘어갑니다.
STR_ERROR_BRIDGE_TOO_LOW_FOR_STATION :{WHITE}여기에 역을 짓기에는 다리가 너무 낮습니다.
@@ -5344,10 +5386,10 @@ STR_ERROR_BRIDGE_PILLARS_OBSTRUCT_STATION :{WHITE}다리
# Tunnel related errors
STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}여기에 터널을 지을 수 없습니다...
-STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}터널 입구에 알맞지 않은 장소입니다
+STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}터널 입구를 짓기에 적절하지 않은 장소입니다
STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}터널을 먼저 제거하십시오
-STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}도중에 다른 터널이 있습니다
-STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}터널이 지도 맨끝을 통과합니다
+STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}중간에 다른 터널이 있습니다
+STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}터널을 지도 맨 끝까지 건설할 수 없습니다
STR_ERROR_CHUNNEL_THROUGH_MAP_BORDER :{WHITE}해저 터널이 지도 맨끝을 통과합니다
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}지형 문제로 터널의 반대쪽 출구를 만들 수 없습니다
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... 터널이 너무 깁니다!
@@ -5358,10 +5400,10 @@ STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY_FOR_CHUNNEL :{WHITE}다른
STR_ERROR_CHUNNEL_ONLY_OVER_SEA :{WHITE}해저 터널은 바다에만 건설할 수 있습니다...
# Object related errors
-STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... 오브젝트가 너무 많습니다.
+STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... 오브젝트가 너무 많습니다
STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}오브젝트를 건설할 수 없습니다...
STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}중간에 오브젝트가 있습니다
-STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... 중간에 회사 본사가 있습니다.
+STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... 중간에 회사 본사가 있습니다
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}이 지역을 매입할 수 없습니다...
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... 이미 소유중입니다!
STR_ERROR_PURCHASE_LAND_LIMIT_REACHED :{WHITE}... 이미 가능한 모든 토지 소유권을 구매했습니다!
@@ -5369,16 +5411,16 @@ STR_ERROR_PURCHASE_LAND_LIMIT_REACHED :{WHITE}... 이
# Group related errors
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}그룹을 만들 수 없습니다...
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}이 그룹을 지울 수 없습니다...
-STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}그룹의 이름을 바꿀 수 없습니다.
+STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}그룹의 이름을 바꿀 수 없습니다
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}상위 그룹으로 설정할 수 없습니다...
-STR_ERROR_GROUP_CAN_T_SET_PARENT_RECURSION :{WHITE}... 상위 그룹을 하위 그룹 아래로 옮길 수 없습니다.
-STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}이 그룹의 모든 차량을 제거할 수 없습니다.
+STR_ERROR_GROUP_CAN_T_SET_PARENT_RECURSION :{WHITE}... 상위 그룹을 하위 그룹 아래로 옮길 수 없습니다
+STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}이 그룹의 모든 차량을 제거할 수 없습니다
STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}이 그룹에 차량을 추가할 수 없습니다...
STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}이 그룹에 공유된 차량을 추가할 수 없습니다...
# Generic vehicle errors
STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}중간에 열차가 있습니다
-STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}중간에 차량이 있습니다.
+STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}중간에 차량이 있습니다
STR_ERROR_SHIP_IN_THE_WAY :{WHITE}중간에 선박이 있습니다
STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}중간에 항공기가 있습니다
@@ -5387,15 +5429,15 @@ STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}차량
STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}선박을 개조할 수 없습니다...
STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}항공기를 개조할 수 없습니다...
-STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}열차 이름을 지정할 수 없습니다...
-STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}차량의 이름을 지정할 수 없습니다...
+STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}열차 이름을 바꿀 수 없습니다...
+STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}차량의 이름을 바꿀 수 없습니다...
STR_ERROR_CAN_T_RENAME_SHIP :{WHITE}선박의 이름을 바꿀 수 없습니다...
-STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}항공기의 이름을 지정할 수 없습니다...
+STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}항공기의 이름을 바꿀 수 없습니다...
STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}열차를 운행/정지시킬 수 없습니다...
STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}차량을 운행/정지시킬 수 없습니다...
-STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}선박을 운행/중지시킬 수 없습니다...
-STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}항공기를 운행/중지시킬 수 없습니다...
+STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}선박을 운행/정지시킬 수 없습니다...
+STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}항공기를 운행/정지시킬 수 없습니다...
STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}열차를 차량기지로 보낼 수 없습니다...
STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}차량을 차고지로 보낼 수 없습니다...
@@ -5407,8 +5449,8 @@ STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}차량
STR_ERROR_CAN_T_BUY_SHIP :{WHITE}선박을 구입할 수 없습니다...
STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}항공기를 구입할 수 없습니다...
-STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}열차의 차량 이름을 다시 지정할 수 없습니다...
-STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}차종명을 다시 지정할 수 없습니다...
+STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}열차의 모델명을 다시 지정할 수 없습니다...
+STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}차종의 이름을 바꿀 수 없습니다...
STR_ERROR_CAN_T_RENAME_SHIP_TYPE :{WHITE}선박의 차량 이름을 다시 지정할 수 없습니다...
STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}항공기의 차량 이름을 다시 지정할 수 없습니다...
@@ -5440,12 +5482,12 @@ STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}너무
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}열차를 회차시킬 수 없습니다...
STR_ERROR_TRAIN_START_NO_POWER :동력차가 없습니다
-STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}차량을 U턴시킬 수 없습니다...
+STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}차량을 유턴시킬 수 없습니다...
STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}항공기가 운항중입니다
# Order related errors
-STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}더이상 경로를 지정할 공간이 없습니다
+STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}더 이상 경로를 지정할 공간이 없습니다
STR_ERROR_TOO_MANY_ORDERS :{WHITE}경로가 너무 많습니다!
STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}새 경로를 삽입할 수 없습니다...
STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}이 경로를 제거할 수 없습니다...
@@ -5454,8 +5496,8 @@ STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}이 경
STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}현재 경로를 건너 뛸 수 없습니다...
STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}선택한 경로로 건너 뛸 수 없습니다...
STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... 차량이 모든 정거장에 갈 수 없습니다
-STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... 차량이 그 정거장에 갈 수 없습니다.
-STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... 경로를 공유하고 있는 차량이 그 정거장에 갈 수 없습니다.
+STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... 차량이 그 정거장에 갈 수 없습니다
+STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... 경로를 공유하고 있는 차량이 그 정거장에 갈 수 없습니다
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}경로를 공유할 수 없습니다...
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}경로 공유를 중단할 수 없습니다...
@@ -5465,8 +5507,8 @@ STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... 항
# Timetable related errors
STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}차량의 시간표를 정할 수 없습니다...
-STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}차량은 정거장에서만 기다릴 수 있습니다.
-STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}이 차량은 이 정거장에 서지 않습니다.
+STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}차량은 정거장에서만 기다릴 수 있습니다
+STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}이 차량은 이 정거장에 서지 않습니다
# Sign related errors
STR_ERROR_TOO_MANY_SIGNS :{WHITE}... 팻말 수가 너무 많습니다
@@ -5486,14 +5528,14 @@ STR_DESKTOP_SHORTCUT_COMMENT :트랜스포트
# Translatable descriptions in media/baseset/*.ob* files
STR_BASEGRAPHICS_DOS_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다.
STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다.
-STR_BASEGRAPHICS_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 그래픽입니다.
+STR_BASEGRAPHICS_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 Windows 에디션의 그래픽입니다.
STR_BASESOUNDS_DOS_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 효과음입니다.
-STR_BASESOUNDS_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 효과음입니다.
+STR_BASESOUNDS_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 Windows 에디션의 효과음입니다.
STR_BASESOUNDS_NONE_DESCRIPTION :아무런 효과음도 없는 효과음 팩입니다.
-STR_BASEMUSIC_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 음악입니다.
-STR_BASEMUSIC_DOS_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 음악입니다.
-STR_BASEMUSIC_TTO_DESCRIPTION :오리지널 트랜스포트 타이쿤(오리지널/월드 에디터) 도스 에디션의 음악입니다.
-STR_BASEMUSIC_NONE_DESCRIPTION :실제 음악이 없는 음악 목록입니다.
+STR_BASEMUSIC_WIN_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 Windows 에디션의 음악입니다.
+STR_BASEMUSIC_DOS_DESCRIPTION :오리지널 트랜스포트 타이쿤 디럭스 DOS 에디션의 음악입니다.
+STR_BASEMUSIC_TTO_DESCRIPTION :오리지널 트랜스포트 타이쿤 (오리지널/월드 에디터) DOS 에디션의 음악입니다.
+STR_BASEMUSIC_NONE_DESCRIPTION :실제 음악이 없는 음악 팩입니다.
##id 0x2000
# Town building names
@@ -5529,7 +5571,7 @@ STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1 :쇼핑몰
STR_TOWN_BUILDING_NAME_IGLOO_1 :이글루
STR_TOWN_BUILDING_NAME_TEPEES_1 :천막
STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :찻잔 집
-STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :돼지 저금통
+STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :돼지 은행
##id 0x4800
# industry names
@@ -5588,7 +5630,7 @@ STR_SV_STNAME_EAST :동{STRING}
STR_SV_STNAME_WEST :서{STRING}
STR_SV_STNAME_CENTRAL :{STRING}중앙
STR_SV_STNAME_TRANSFER :{STRING} 환승
-STR_SV_STNAME_HALT :{STRING} 정류장
+STR_SV_STNAME_HALT :{STRING} 간이역
STR_SV_STNAME_VALLEY :{STRING} 계곡
STR_SV_STNAME_HEIGHTS :{STRING} 언덕
STR_SV_STNAME_WOODS :{STRING} 숲
@@ -5697,10 +5739,10 @@ STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_TOY_VAN :장난감 수
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_BATTERY_TRUCK :건전지 수송차량
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_FIZZY_DRINK_TRUCK :탄산음료 수송차량
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PLASTIC_TRUCK :플라스틱 수송차량
-STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (전기)
-STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (전기)
-STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (전기)
-STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (전기)
+STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV1_LEVIATHAN_ELECTRIC :Lev1 '레비아탄' (전기)
+STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 '사이클롭스' (전기)
+STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 '페가수스' (전기)
+STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 '키메라' (전기)
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :승객 수송차량
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :우편 수송차량
diff --git a/src/lang/latin.txt b/src/lang/latin.txt
index f9fe0924d3..e785b7e99e 100644
--- a/src/lang/latin.txt
+++ b/src/lang/latin.txt
@@ -2628,6 +2628,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Struere
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Mutare inter vias struendas/removendas
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Mutare inter ferrivias stratarias struendas/removendas
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Directio receptaculi viarii
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Eligere directionem receptaculi viarii
@@ -3621,10 +3622,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Vehicula Ferriv
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Vehicula Monoorbitalia Nova
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Vehicula Maglev Nova
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Vehicula Ferriviaria Nova
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Vehicula Viaria Nova
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Vehicula Ferriviaria Nova
STR_BUY_VEHICLE_SHIP_CAPTION :Naves Novae
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Aeroplana Nova
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Pretium: {GOLD}{CURRENCY_LONG}{BLACK} Pondus: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Pretium: {GOLD}{CURRENCY_LONG}{BLACK} (Pretium Reficiendi: {GOLD}{CURRENCY_LONG}{BLACK}) Pondus: {GOLD}{WEIGHT_SHORT}
@@ -3785,13 +3789,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Omnia v
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Nuntium a fabricatore vehiculorum
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Nuper fabricamus nov{G um am um os as a} {STRING} - visne uti hoc vehiculo unum annum, ut videamus quomodo operatur antequam omnibus venum damus?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}hamaxam
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}vehiculum viarium
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}aeroplanum
-STR_ENGINE_PREVIEW_SHIP :{G=f}navem
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}hamaxam monoorbitalem
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}hamaxam maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}vehiculum viarium
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}aeroplanum
+STR_ENGINE_PREVIEW_SHIP :{G=f}navem
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER}{}Pretium Operandi: {CURRENCY_LONG} per annum{}Capacitas: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pretium: {CURRENCY_LONG} Pondus: {WEIGHT_SHORT}{}Velocitas: {VELOCITY} Potestas: {POWER} V.T. Max.: {6:FORCE}{}Pretium Operandi: {4:CURRENCY_LONG} per annum{}Capacitas: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pretium: {CURRENCY_LONG} Velocitas Maxima: {VELOCITY}{}Capacitas: {CARGO_LONG}{}Pretium Operandi: {CURRENCY_LONG} per annum
@@ -3837,6 +3844,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Vehicula Ferriv
STR_REPLACE_MONORAIL_VEHICLES :Vehicula Monoorbitalia
STR_REPLACE_MAGLEV_VEHICLES :Vehicula Maglev
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Ablatio curruum: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Facere ut automutatio longitudinem traminis contineat ablatione curruum (primo primorum), si tramen longius fiat mutatione hamaxae
@@ -4491,7 +4499,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... via
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... viae directio non convenit
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... stationi perviae non licet esse curva
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... stationi perviae non licet compita habere
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... via est monodromus vel obstructa
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Non licet partem stationis removere...
diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt
index 42047bc4ad..1c2f294eab 100644
--- a/src/lang/latvian.txt
+++ b/src/lang/latvian.txt
@@ -2338,6 +2338,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Būvēt
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Pārslēgties starp ceļa būvēšanas/nojaukšanas režīmiem
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Pārslēgt būvēt/novākt tramvaju būvei
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Autotransporta depo virziens
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Izvēlēties autotransporta depo virzienu
@@ -3293,10 +3294,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Jauni elektrifi
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Jauni viensliedes vilcieni
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Jauni magleva vilcieni
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Jauni vilcieni
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Jauni autotransporta līdzekļi
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Jauni vilcieni
STR_BUY_VEHICLE_SHIP_CAPTION :Jauni kuģi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Jauns lidaparāts
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Svars: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Ātrums: {GOLD}{VELOCITY}{BLACK} Jauda: {GOLD}{POWER}
@@ -3444,13 +3448,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Jūs gr
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Ziņojums no transportlīdzekļu ražotāja
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mēs tikko esam izstrādājuši jaunu transportlīdzekli - {STRING}. Vai esat ieinteresēts iegūt izņēmuma tiesības izmantot šo transportlīdzekli uz vienu gadu, lai mēs redzētu tā iespējas pirms padaram pieejamu visiem?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :dzelzceļa lokomotīve
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :autotransporta līdzeklis
-STR_ENGINE_PREVIEW_AIRCRAFT :lidaparāts
-STR_ENGINE_PREVIEW_SHIP :kuģis
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :viensliedes lokomotīve
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomotīve
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :autotransporta līdzeklis
+
+STR_ENGINE_PREVIEW_AIRCRAFT :lidaparāts
+STR_ENGINE_PREVIEW_SHIP :kuģis
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā{}Ietilpība: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Svars: {WEIGHT_SHORT}{}Ātrums: {VELOCITY} Jauda: {POWER} Maks. spēks: {6:FORCE}{}Kārtējās izmaksas: {4:CURRENCY_LONG} gadā{}Ietilpība: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Maks. ātrums: {VELOCITY}{}Ietilpība: {CARGO_LONG}{}Kārtējās izmaksas: {CURRENCY_LONG} gadā
@@ -3489,6 +3496,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrificētā
STR_REPLACE_MONORAIL_VEHICLES :Viensliedes transportlīdzekļi
STR_REPLACE_MAGLEV_VEHICLES :Magleva transportlīdzekļi
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagona noņemšana: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automātiskā aizvietošana saglabās esošo vilciena garumu noņemot vagonus (sākot no priekšgala), ja mainot lokomotīvi tas kļūtu garāks
diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt
index 248fe75232..a4de89048a 100644
--- a/src/lang/lithuanian.txt
+++ b/src/lang/lithuanian.txt
@@ -2612,6 +2612,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Statyti
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Aktyvinti automobilių kelių ir stotelių šalinimo veikseną
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Aktyvinti tramvajaus bėgių ir stotelių šalinimo veikseną
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Pasirinkite garažo kryptį
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Pasirinkite automobilių garažo kryptį
@@ -3568,10 +3569,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nauji elektrini
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nauji vienbėgiai lokomotyvai
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nauji „Maglev“ lokomotyvai
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nauji lokomotyvai
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nauji automobiliai
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nauji lokomotyvai
STR_BUY_VEHICLE_SHIP_CAPTION :Nauji laivai
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nauji lėktuvai
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kaina: {GOLD}{CURRENCY_LONG}{BLACK} Svoris: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Greitis: {GOLD}{VELOCITY}{BLACK} Galia: {GOLD}{POWER}
@@ -3719,6 +3723,7 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Ar tikr
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Žinutė nuo transporto priemonių gamintojo
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mes ką tik sukūrėme naują {STRING.ka}! Ar norėtumėte vienerius metus išskirtinėmis teisėmis bandyti šią transporto priemonę, kol dar nepradėta jos serijinė gamyba?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotyvas
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.kas :lokomotyvas
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.ko :lokomotyvo
@@ -3726,27 +3731,6 @@ STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.kam :lokomotyvui
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.ka :lokomotyvą
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.kuo :lokomotyvu
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.kur :lokomotyve
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :automobilis
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.kas :automobilis
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.ko :automobilio
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.kam :automobiliui
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.ka :automobilį
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.kuo :automobiliu
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.kur :automobilyje
-STR_ENGINE_PREVIEW_AIRCRAFT :lėktuvas
-STR_ENGINE_PREVIEW_AIRCRAFT.kas :lėktuvas
-STR_ENGINE_PREVIEW_AIRCRAFT.ko :lėktuvo
-STR_ENGINE_PREVIEW_AIRCRAFT.kam :lėktuvui
-STR_ENGINE_PREVIEW_AIRCRAFT.ka :lėktuvą
-STR_ENGINE_PREVIEW_AIRCRAFT.kuo :lėktuvu
-STR_ENGINE_PREVIEW_AIRCRAFT.kur :lėktuve
-STR_ENGINE_PREVIEW_SHIP :laivas
-STR_ENGINE_PREVIEW_SHIP.kas :laivas
-STR_ENGINE_PREVIEW_SHIP.ko :laivo
-STR_ENGINE_PREVIEW_SHIP.kam :laivui
-STR_ENGINE_PREVIEW_SHIP.ka :laivą
-STR_ENGINE_PREVIEW_SHIP.kuo :laivu
-STR_ENGINE_PREVIEW_SHIP.kur :laive
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :vienbėgis lokomotyvas
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.kas :vienbėgis lokomotyvas
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.ko :vienbėgio lokomotyvo
@@ -3762,6 +3746,29 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.ka :„Maglev“ lo
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kuo :„Maglev“ lokomotyvu
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.kur :„Maglev“ lokomotyve
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :automobilis
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.kas :automobilis
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.ko :automobilio
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.kam :automobiliui
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.ka :automobilį
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.kuo :automobiliu
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.kur :automobilyje
+
+STR_ENGINE_PREVIEW_AIRCRAFT :lėktuvas
+STR_ENGINE_PREVIEW_AIRCRAFT.kas :lėktuvas
+STR_ENGINE_PREVIEW_AIRCRAFT.ko :lėktuvo
+STR_ENGINE_PREVIEW_AIRCRAFT.kam :lėktuvui
+STR_ENGINE_PREVIEW_AIRCRAFT.ka :lėktuvą
+STR_ENGINE_PREVIEW_AIRCRAFT.kuo :lėktuvu
+STR_ENGINE_PREVIEW_AIRCRAFT.kur :lėktuve
+STR_ENGINE_PREVIEW_SHIP :laivas
+STR_ENGINE_PREVIEW_SHIP.kas :laivas
+STR_ENGINE_PREVIEW_SHIP.ko :laivo
+STR_ENGINE_PREVIEW_SHIP.kam :laivui
+STR_ENGINE_PREVIEW_SHIP.ka :laivą
+STR_ENGINE_PREVIEW_SHIP.kuo :laivu
+STR_ENGINE_PREVIEW_SHIP.kur :laive
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksploatavimo išlaidos: {CURRENCY_LONG} per metus{}Talpa: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kaina: {CURRENCY_LONG} Svoris: {WEIGHT_SHORT}{}Greitis: {VELOCITY} Galia: {POWER} Maks. T.E.: {6:FORCE}{}Einamosios išlaidos: {4:CURRENCY_LONG}/yr{}Talpa: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kaina: {CURRENCY_LONG} Didž. Greitis: {VELOCITY}{}Talpa: {CARGO_LONG}{}Eksploatacijos išlaidos: {CURRENCY_LONG}/metams
@@ -3804,6 +3811,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrifikuoti
STR_REPLACE_MONORAIL_VEHICLES :Vienbegiai traukiniai
STR_REPLACE_MAGLEV_VEHICLES :„Maglev“ traukiniai
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagono pašalinimas: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Pakeitimo metu išlaikyti traukinio ilgį atjungiant vagonus (pradedant nuo priekio), jeigu pakeitus garvežį traukinys pailgėtų
diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt
index 19810495c5..6945fde5cb 100644
--- a/src/lang/luxembourgish.txt
+++ b/src/lang/luxembourgish.txt
@@ -2423,6 +2423,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramtunn
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wiesselt bauen/ofrappen vu Stroossekonstruktiounen
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Wiesselt tëscht bauen/ofrappen beim Trambau
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ausriichtung vum Stroossendepot
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Wielt d'Stroossendepot Ausriichtung
@@ -3440,10 +3441,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nei Elektrozich
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nei Monorailgefierer
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nei Magnéitbunngefierer
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nei Zich
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nei Stroossegefierer
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nei Zich
STR_BUY_VEHICLE_SHIP_CAPTION :Nei Schëffer
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neie Fliger
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Käschten: {GOLD}{CURRENCY_LONG}{BLACK} Gewiicht: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Käschten: {GOLD}{CURRENCY_LONG}{BLACK} (Embaukäschten: {GOLD}{CURRENCY_LONG}{BLACK}) Gewiicht: {GOLD}{WEIGHT_SHORT}
@@ -3601,13 +3605,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du verk
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meldung vum Gefierkonstrukteur
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mir hunn elo en neien {STRING} gebaut - bass du dorun interesséiert dëst Gefier 1 Joer exklusiv ze notzen, fir ze testen op et komplett maarträif ass?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :Lokomotiv
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier
-STR_ENGINE_PREVIEW_AIRCRAFT :Fliger
-STR_ENGINE_PREVIEW_SHIP :Schëff
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier
+
+STR_ENGINE_PREVIEW_AIRCRAFT :Fliger
+STR_ENGINE_PREVIEW_SHIP :Schëff
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Käschten: {CURRENCY_LONG} Gewiicht: {WEIGHT_SHORT}{}Geschwindegkeet: {VELOCITY} Kraaft: {POWER}{}Betribskäschten {CURRENCY_LONG}/Jr{}Kapazitéit: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Käschten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Geschw.: {VELOCITY} Kraaft: {POWER} Max. T.E.: {6:FORCE}{}Betribskäschten: {4:CURRENCY_LONG}/Jr{}Kapazitéit: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Käschten: {CURRENCY_LONG} Max. Geschwindegkeet: {VELOCITY}{}Kapazitéit: {CARGO_LONG}{}Betribskäschten: {CURRENCY_LONG}/Jr
@@ -3653,6 +3660,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektresch Zich
STR_REPLACE_MONORAIL_VEHICLES :Monorail Gefierer
STR_REPLACE_MAGLEV_VEHICLES :Magnéitbunn Gefierer
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon raushuelen: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Mécht dass d'automatescht Austauschen d'Längt vum Zuch behält, an dem e Waggonen (vu lénks un) wechhëllt, wann d'Lok den Zuch ze laang mécht
@@ -4305,7 +4313,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... d'St
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Strooss geet an dei falsch Richtung
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... Duerchfahrtstops kënnen keng Kéiren hunn
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... Duerchfahrtstops kënnen keng Kräizungen hunn
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... Einbahnstrooss oder blockéiert
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kann den Deel vun der Gare net ofrappen...
diff --git a/src/lang/malay.txt b/src/lang/malay.txt
index 68adfbc39e..1edf65ce8a 100644
--- a/src/lang/malay.txt
+++ b/src/lang/malay.txt
@@ -2141,6 +2141,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bina ter
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Bina atau buang untuk pembinaan jalanraya
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Bina atau buang untuk pembinaan laluan trem
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Penghalaan Depoh Kenderaan Jalanraya
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Pilih penghalaan depoh kenderaan jalanraya
@@ -3049,10 +3050,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Keretapi Elektr
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Monorel Baru
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Maglev Baru
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Keretapi Baru
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Kenderaan Jalanraya Baru
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Keretapi Baru
STR_BUY_VEHICLE_SHIP_CAPTION :Kapal Baru
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Pesawat Baru
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kos: {GOLD}{CURRENCY_LONG}{BLACK} Berat: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Kelajuan: {GOLD}{VELOCITY}{BLACK} Kuasa: {GOLD}{POWER}
@@ -3200,13 +3204,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Anda ak
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Pesanan daripada pengusaha kenderaan
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Kami baru sahaja mereka {STRING} yang baru - adakah anda berminat untuk menggunakan kenderaan ini secara eksklusif, supaya kami dapat menilai tahap kelancarannya sebelum kami menjualnya kepada pihak awam?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :keretapi
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :kenderaan jalanraya
-STR_ENGINE_PREVIEW_AIRCRAFT :pesawat
-STR_ENGINE_PREVIEW_SHIP :kapal
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :keretapi monorel
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :keretapi maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :kenderaan jalanraya
+
+STR_ENGINE_PREVIEW_AIRCRAFT :pesawat
+STR_ENGINE_PREVIEW_SHIP :kapal
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER}{}Kos Pengendalian: {CURRENCY_LONG}/thn{}Kapasiti: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kos: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kelajuan: {VELOCITY} Kuasa: {POWER} Maks. E.K.: {6:FORCE}{}Kos Pengendalian: {4:CURRENCY_LONG}/thn{}Kapasiti: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kos: {CURRENCY_LONG} Kelajuan Maks.: {VELOCITY}{}Kapasiti: {CARGO_LONG}{}Kos Pengendalian: {CURRENCY_LONG}/thn
@@ -3240,6 +3247,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Kenderaan Keret
STR_REPLACE_MONORAIL_VEHICLES :Monorel Kenderaan
STR_REPLACE_MAGLEV_VEHICLES :Kenderaan Maglev
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Penghapusan wagon: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Membuat penukaran secara automatik menyimpan kepanjangan keretapi yang sama dengan mengeluarkan gerabak (bermula dari bahagian hadapan), sekiranya menyebabkan kereta api lebih panjang
diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt
index 3d9df13003..a9ac483412 100644
--- a/src/lang/norwegian_bokmal.txt
+++ b/src/lang/norwegian_bokmal.txt
@@ -239,6 +239,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Velg fil
STR_BUTTON_SORT_BY :{BLACK}Sorter etter
STR_BUTTON_LOCATION :{BLACK}Gå til
STR_BUTTON_RENAME :{BLACK}Gi nytt navn
+STR_BUTTON_CATCHMENT :{BLACK}Dekning
+STR_TOOLTIP_CATCHMENT :{BLACK}Veksle mellom visning av dekningsområde
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Lukk vindu
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Vindustittel - dra her for å flytte vindu
@@ -267,6 +269,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Ved å a
STR_BUTTON_DEFAULT :{BLACK}Standard
STR_BUTTON_CANCEL :{BLACK}Avbryt
STR_BUTTON_OK :{BLACK}OK
+STR_WARNING_PASSWORD_SECURITY :{YELLOW}Advarsel: Server-administratorer kan lese tekst som blir skrevet her.
# On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
@@ -340,6 +343,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Zoom inn
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Zoom ut
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Bygg jernbanespor
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Bygg veier
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Bygg trikkespor
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Bygg havner
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Bygg flyplasser
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Åpne landskapsverktøylinjen for å heve/senke land, plante trær, osv.
@@ -360,6 +364,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Landskap
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Bygenerering
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industrigenerering
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Veibygging
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Bygg trikkespor
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plant trær. Shift slår av/på kostnadsestimat
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Plasser skilt
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Plasser objekt. Shift slår av/på kostnadsestimat
@@ -838,7 +843,7 @@ STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLAC
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}Nye oljereserver funnet i {INDUSTRY}!{}En dobling i produksjonen ventes!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}Forbedring i gårdbruksmetoder på {INDUSTRY} forventes å doble produksjonen!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}Produksjonen av {STRING} ved {INDUSTRY} øker med {COMMA}{NBSP}%!
-STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}{INDUSTRY} sin produksjon har sunket med 50{NBSP}%
+STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLACK}Produksjonen ved {INDUSTRY} har sunket med 50{NBSP}%
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}Insektinvasjon gjør stor skade på {INDUSTRY}!{}Produksjonen synker med 50{NBSP}%
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}Produksjonen av {STRING} ved {INDUSTRY} synker med {COMMA}{NBSP}%!
@@ -935,6 +940,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgisk lari (
STR_GAME_OPTIONS_CURRENCY_IRR :Iransk rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Ny russisk rubel (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Meksikansk peso (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :Ny Taiwan Dollar (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminbi (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kjøretøy
@@ -1242,9 +1250,9 @@ STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :bortenden
STR_CONFIG_SETTING_AUTOSCROLL :Flytt på bildet hvis pilen er nær ytterkantene av skjermen: {STRING}
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Når aktivert, vil synsfeltet begynne å rulle når musen er nær kanten av vinduet
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Deaktivert
-STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hoved tillegsvindu, bare fullskjerm
-STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :hoved tillegsvindu
-STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :alle tillegsvindu
+STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Hovedvindu, bare fullskjerm
+STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Hovedvindu
+STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :alle tilleggsvindu
STR_CONFIG_SETTING_BRIBE :Tillat bestikkelser av bystyret: {STRING}
STR_CONFIG_SETTING_BRIBE_HELPTEXT :Tillat firmaer å prøve å bestikke de lokale myndighetene i byen. Hvis bestikkelsen blir oppdaget av en inspektør, vil selskapet ikke være i stand til å gjøre forretninger i byen de neste seks månedene
STR_CONFIG_SETTING_BRIBE_HELPTEXT.small :firma
@@ -1418,7 +1426,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Alt utenom kons
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Alt utenom landskapsendringer
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Alle handlinger
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Bruk grupper i kjøretøyliste: {STRING}
-STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Aktiver bruk av de avanserte kjøretøyslistene for guppering av kjøretøy
+STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Aktiver bruk av avanserte kjøretøylister for guppering av kjøretøy
STR_CONFIG_SETTING_LOADING_INDICATORS :Bruk lastingsindikatorer: {STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Velg hvorvidt lasteindikatorer vises over kjøretøy som lastes eller losses
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Vis rutetabell i antall tikk i stedet for antall dager: {STRING}
@@ -1469,7 +1477,7 @@ STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Maksimalt antal
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Hindre datamaskinen i å bygge tog: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Aktivering av denne innstillingen gjør bygging av tog umulig for en datamaskin-spiller
-STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Hindre datamaskinen i å bygge kjøretøy: {STRING}
+STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Hindre datamaskinen i å bygge veikjøretøy: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Aktivering av denne innstillingen gjør bygging av veikjøretøy umulig for en datamaskin-spiller
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Hindre datamaskinen i å bygge luftfartøy: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Aktivering av denne innstillingen gjør bygging av fly umulig for en datamaskin-spiller
@@ -1486,6 +1494,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Tillat AI-er i
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Tillat datamaskin-spillere å delta i flerspiller-spill
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes før skript er avbrutt: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maksimalt antall beregningstrinn et skript kan ta i én omgang
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Maks minnebruk pr. script: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Hvor mye minne ett enkelt script kan bruke før det blir stoppet av systemet. Denne verdien må kanskje økes for store kart.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Vedlikeholdsintervaller er i prosent: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Velge om vedlikehold av kjøretøyer utløses av tiden som er forløpt fra siste gjennomførte vedlikehold, eller av at pålitelighet dropper under en bestemt prosent av maksimal pålitelighet
@@ -2432,6 +2443,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Bygg vei
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bygg trikkesportunnel. Shift slår av/på kostnadsestimat
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Veksle mellom bygging/fjerning for veibygging
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Veksle mellom bygging/fjerning for trikkesporkonstruksjon
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Konverter/oppgrader veitypen. Shift slår av/på kostnadsestimat
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Konverter/oppgrader trikketypen. Shift slår av/på kostnadsestimat
+
+STR_ROAD_NAME_ROAD :Vei
+STR_ROAD_NAME_TRAM :Trikkespor
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garasjens retning
@@ -2616,8 +2632,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Godtatte varer: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Skinnetype: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Veitype: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Trikketype: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Fartsgrense for jernbanespor: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Veiens fartsgrense: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Fartsgrense for trikk: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Steiner
@@ -2727,6 +2746,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Gjeldend
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Hvor raskt spillet kjører i forhold til forventet hastighet ved normal simulering.
STR_FRAMERATE_CURRENT :{WHITE}Gjeldende
STR_FRAMERATE_AVERAGE :{WHITE}Middels
+STR_FRAMERATE_MEMORYUSE :{WHITE}Minne
STR_FRAMERATE_DATA_POINTS :{BLACK}Data basert på {COMMA} målinger
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2734,6 +2754,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} bilder/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Bilder/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frames/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3359,6 +3382,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Jernbanebiter:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signaler
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Veibiter:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Trikkevogner:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Vannruter:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanaler
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stasjoner:
@@ -3466,10 +3490,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nye tog/vogner
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nye tog/vogner for monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nye tog/vogner for maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nye tog/vogner
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nye kjøretøy
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nye trikkekjøretøy
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nye tog/vogner
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nye veikjøretøy
STR_BUY_VEHICLE_SHIP_CAPTION :Nye skip
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nye luftfartøy
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} Vekt: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} (Ombyggingskostnad: {GOLD}{CURRENCY_LONG}{BLACK}) Vekt: {GOLD}{WEIGHT_SHORT}
@@ -3629,14 +3658,19 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du er n
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Melding fra kjøretøysprodusent
-STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Vi har nettopp designet e{G n i t} ny{G "" "" tt} {STRING} - er du interessert i et års ekslusivt bruk av dette, slik at vi kan se hvordan det virker før det blir allment tilgjengelig?
+STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Vi har nettopp designet e{G n i t} ny{G "" "" tt} {STRING} - er du interessert i ett års ekslusivt bruk av dette, slik at vi kan se hvordan det virker før det blir allment tilgjengelig?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=neuter}lokomotiv
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=neuter}kjøretøy
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=neuter}luftfartøy
-STR_ENGINE_PREVIEW_SHIP :{G=neuter}skip
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :{G=neuter}elektrisk lokomotiv
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=neuter}monorail-lokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=neuter}maglev-lokomotiv
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=neuter}kjøretøy
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :trikkekjøretøy
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=neuter}luftfartøy
+STR_ENGINE_PREVIEW_SHIP :{G=neuter}skip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft: {POWER} Maks trekkraft: {6:FORCE}{}Vedlikehold: {4:CURRENCY_LONG}/år{}Kapasitet: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maks hastighet: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnader: {CURRENCY_LONG}/år
@@ -3673,15 +3707,20 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk de
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle mellom tog- og vognerstatningsvinduet
STR_REPLACE_ENGINES :Lokomotiv
STR_REPLACE_WAGONS :Vogner
-STR_REPLACE_ALL_RAILTYPE :Status: Mangler
+STR_REPLACE_ALL_RAILTYPE :Alle jernbanekjøretøy
+STR_REPLACE_ALL_ROADTYPE :Alle veikjøretøy
STR_REPLACE_HELP_RAILTYPE :{BLACK}Velg jernbanetypen du vil bytte ut lokomotiv på
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Velg veitypen du vil bytte ut kjøretøy på
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Viser hvilket lokomotiv som overtar for det valgte lokomotivet på venstresiden
STR_REPLACE_RAIL_VEHICLES :Jernbanekjøretøy
STR_REPLACE_ELRAIL_VEHICLES :Elektriske jernbanekjøretøy
STR_REPLACE_MONORAIL_VEHICLES :Monorail-kjøretøy
STR_REPLACE_MAGLEV_VEHICLES :Maglev-kjøretøy
+STR_REPLACE_ROAD_VEHICLES :Veikjøretøy
+STR_REPLACE_TRAM_VEHICLES :Trikkekjøretøy
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vognfjerning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}La autoerstatningen beholde lengen på toget ved å fjerne vogner (fra første vogn), hvis utskiftningen gjør toget lengre.
@@ -3765,11 +3804,11 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Alder: {
STR_VEHICLE_INFO_AGE :{COMMA} år ({COMMA})
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA})
-STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks hastighet: {LTBLUE}{VELOCITY}
-STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING}
-STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Maks. hastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter
-STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY}
-STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Maks hastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE}
+STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Topphastighet: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Topphastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Topphastighet: {LTBLUE}{VELOCITY} {BLACK}Flytype: {LTBLUE}{STRING} {BLACK}Rekkevidde: {LTBLUE}{COMMA} ruter
+STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Topphastighet: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vekt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kraft: {LTBLUE}{POWER}{BLACK} Topphastighet: {LTBLUE}{VELOCITY} {BLACK}Maks trekkraft: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Fortjeneste i år: {LTBLUE}{CURRENCY_LONG} (i fjor: {CURRENCY_LONG})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Pålitelighet: {LTBLUE}{COMMA}{NBSP}% {BLACK}Havarier siden siste vedlikehold: {LTBLUE}{COMMA}
@@ -3896,7 +3935,7 @@ STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Kjøret
# Conditional order variables, must follow order of OrderConditionVariable enum
STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Lastprosent
STR_ORDER_CONDITIONAL_RELIABILITY :Pålitelighet
-STR_ORDER_CONDITIONAL_MAX_SPEED :Maks hastighet
+STR_ORDER_CONDITIONAL_MAX_SPEED :Topphastighet
STR_ORDER_CONDITIONAL_AGE :Alder (år)
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Trenger vedlikehold
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Alltid
@@ -4335,7 +4374,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... denn
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... veien vender i feil retning
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... gjennomkjøringsstopper kan ikke ha hjørner
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... gjennomkjøringsstopper kan ikke ha kryss
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... veien er enveiskjørt eller blokkert
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ikke fjerne del av stasjonen...
@@ -4406,6 +4444,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Ingen pa
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Må fjerne jernbanespor først
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Veien er enveiskjørt eller blokkert
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Denne jernbanetypen tillater ikke planoverganger
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Denne veitypen tillater ikke planoverganger
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kan ikke bygge signaler her...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kan ikke bygge jernbanespor her...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kan ikke fjerne jernbanespor herfra...
@@ -4425,6 +4464,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan ikke
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan ikke fjerne trikkespor herfra...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... det finnes ingen vei
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... det finnes ingen trikkespor
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan ikke konvertere veitype her...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan ikke konvertere trikketype her...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ingen passende vei
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ingen passende trikkespor
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... inkompatibel vei
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... ingen passende trikkespor
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kan ikke bygge kanaler her...
diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt
index b692a7c97d..9c3885cd91 100644
--- a/src/lang/norwegian_nynorsk.txt
+++ b/src/lang/norwegian_nynorsk.txt
@@ -2316,6 +2316,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bygg tri
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Byt mellom bygging/fjerning for vegbygging
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Byt mellom bygge/fjerne for trikkesporbygging
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garasjens retning
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Vel retning på garasje
@@ -3268,10 +3269,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nytt elektrisk
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nye tog/vogner for monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nye tog/vogner for maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nye tog/vogner
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nye køyretøy
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nye tog/vogner
STR_BUY_VEHICLE_SHIP_CAPTION :Nye skip
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nytt luftfartøy
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} Vekt: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hastigheit: {GOLD}{VELOCITY}{BLACK} Kraft: {GOLD}{POWER}
@@ -3419,13 +3423,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du er i
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Melding frå køyretøysprodusent
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Me har nyleg designa eit nytt {STRING} - er du interessert i å teste denne farkosten i eit år, slik at me kan sjå korleis det verkar før me gjer han tilgjengeleg på markedet?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotiv
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :køyretøy
-STR_ENGINE_PREVIEW_AIRCRAFT :luftfartøy
-STR_ENGINE_PREVIEW_SHIP :skip
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail-lokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lokomotiv
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :køyretøy
+
+STR_ENGINE_PREVIEW_AIRCRAFT :luftfartøy
+STR_ENGINE_PREVIEW_SHIP :skip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER}{}Driftskostnader: {CURRENCY_LONG}/år{}Kapasitet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vekt: {WEIGHT_SHORT}{}Hastigheit: {VELOCITY} Kraft: {POWER} Maks. trekkraft: {6:FORCE}{}Driftskostnad: {4:CURRENCY_LONG}/yr{}Kapasitet: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hastigheit: {VELOCITY}{}Kapasitet: {CARGO_LONG}{}Driftskostnad: {CURRENCY_LONG}/år
@@ -3466,6 +3473,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektriske jern
STR_REPLACE_MONORAIL_VEHICLES :Monorail-køyretøy
STR_REPLACE_MAGLEV_VEHICLES :Maglev-køyretøy
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vognfjerning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Lat den automatiske utskiftinga behalde lengda på toget ved å fjerne vogner (frå første vogn), dersom utskiftinga gjer toget lenger.
diff --git a/src/lang/polish.txt b/src/lang/polish.txt
index 0a37201449..7537816aac 100644
--- a/src/lang/polish.txt
+++ b/src/lang/polish.txt
@@ -2795,6 +2795,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Zbuduj t
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Przełącz buduj/usuń dla konstrukcji dróg
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Przełącz buduj/usuń dla konstrukcji tramwajowej
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ukierunkowanie zajezdni samochodowej
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Wybierz umiejscowienie zajezdni samochodowej
@@ -3799,10 +3800,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nowe elektryczn
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nowe pociągi jednoszynowe
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nowe pociągi Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nowe Pojazdy Szynowe
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nowy pojazd drogowy
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nowe Pojazdy Szynowe
STR_BUY_VEHICLE_SHIP_CAPTION :Nowe statki
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nowy samolot
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Koszt: {GOLD}{CURRENCY_LONG}{BLACK} Masa: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Prędkość: {GOLD}{VELOCITY}{BLACK} Moc: {GOLD}{POWER}
@@ -3952,19 +3956,22 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Sprzeda
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Wiadomość od producenta pojazdów
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Właśnie zaprojektowaliśmy now{G y ą e} {STRING.b} - czy jesteś zainteresowany w rocznej wyłączności na użycie tego pojazdu, żebyśmy mogli zobaczyć przed wypuszczeniem na rynek jak się sprawuje?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}lokomotywa
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.b :lokomotywę
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}pojazd
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.b :pojazd
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=m}samolot
-STR_ENGINE_PREVIEW_AIRCRAFT.b :samolot
-STR_ENGINE_PREVIEW_SHIP :{G=m}statek
-STR_ENGINE_PREVIEW_SHIP.b :statek
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}lokomotywa jednoszynowa
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.b :lokomotywę jednoszynową
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}lokomotywa Maglev
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.b :lokomotywę Maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}pojazd
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.b :pojazd
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=m}samolot
+STR_ENGINE_PREVIEW_AIRCRAFT.b :samolot
+STR_ENGINE_PREVIEW_SHIP :{G=m}statek
+STR_ENGINE_PREVIEW_SHIP.b :statek
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER}{}Koszt utrzymania: {CURRENCY_LONG}/rok{}Ładowność: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Koszt: {CURRENCY_LONG} Masa: {WEIGHT_SHORT}{}Prędkość: {VELOCITY} Moc: {POWER} Maksymalna siła pociągowa: {6:FORCE}{}Koszt utrzymania: {4:CURRENCY_LONG}/rok{}Ładowność: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Koszt: {CURRENCY_LONG} Prędkość maksymalna: {VELOCITY}{}Ładowność: {CARGO_LONG}{}Koszt utrzymania: {CURRENCY_LONG}/rok
@@ -4010,6 +4017,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Kolej elektrycz
STR_REPLACE_MONORAIL_VEHICLES :Kolej jednoszynowa
STR_REPLACE_MAGLEV_VEHICLES :Kolej Maglev
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Usunięcie wagonów: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Autowymiana zachowuje długość pociągu poprzez usuwanie wagonów (począwszy od początku), jeśli wymiana lokomotywy spowoduje wydłużenie pociągu
@@ -4662,7 +4670,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ta d
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... droga jest zorientowana w złym kierunku
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... przystanki przelotowe nie mogą mieć zakrętów
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... przystanki przelotowe nie mogą mieć skrzyżowań
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... droga jest jednokierunkowa lub zablokowana
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nie można usunąć części stacji...
diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt
index 8c43aadd84..a2a0fa594f 100644
--- a/src/lang/portuguese.txt
+++ b/src/lang/portuguese.txt
@@ -2430,6 +2430,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Alternar entre construir/remover estradas
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alternar construir/remover linhas de eléctricos e sinais
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientação do Depósito
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Seleccionar a orientação do depósito
@@ -3463,10 +3464,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Novos Veículos
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Novos Veículos Monocarril
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Novos Veículos Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novos Veículos Ferroviários
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Veículos Rodoviários
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Novos Veículos Ferroviários
STR_BUY_VEHICLE_SHIP_CAPTION :Novos Barcos
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Custo: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Custo: {GOLD}{CURRENCY_LONG}{BLACK} (Custo da conversão: {GOLD}{CURRENCY_LONG}{BLACK}) Peso: {GOLD}{WEIGHT_SHORT}
@@ -3627,13 +3631,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Está p
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensagem de um fabricante de veículos
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Projectámos um novo modelo de {STRING} - gostaria de ter um ano de exclusividade de uso deste veículo, de modo a que possamos avaliar o seu desempenho antes de o disponibilizar globalmente?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :locomotiva ferroviária
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :veículo rodoviário
-STR_ENGINE_PREVIEW_AIRCRAFT :aeronave
-STR_ENGINE_PREVIEW_SHIP :barco
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotiva monocarril
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :veículo rodoviário
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aeronave
+STR_ENGINE_PREVIEW_SHIP :barco
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade Máx.: {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 Máx.: {VELOCITY} Potência: {POWER} F.T. Máx.: {6:FORCE}{}Custo de Circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
@@ -3679,6 +3686,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Comboios eléct
STR_REPLACE_MONORAIL_VEHICLES :Monocarris
STR_REPLACE_MAGLEV_VEHICLES :Maglevs
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Remover vagões: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Forçar a substituição automática a manter o comprimento do comboio, removendo vagões (do início), nas situações em que a substituição da locomotiva pode resultar num comboio mais comprido.
@@ -4331,7 +4339,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... esta
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... estrada orientada na direcção incorrecta
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... estações de passagem não podem ter curvas
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... estações de passagem não podem ter cruzamentos
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... estrada de sentido único ou bloqueada
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Não é possível remover parte da estação...
diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt
index 931de0d19e..25775d3c1b 100644
--- a/src/lang/romanian.txt
+++ b/src/lang/romanian.txt
@@ -2375,6 +2375,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Comutator pentru construcţie/înlăturare şosele
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Comută construcţie/înlăturare pentru şine de tramvai
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientarea autobazei
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Alege orientarea autobazei
@@ -3336,10 +3337,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Noi Vehicule El
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Noi vehicule monoşină
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Noi vehicule pe Pernă Magnetică
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Vehicule pe şine
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Autovehicule noi
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Vehicule pe şine
STR_BUY_VEHICLE_SHIP_CAPTION :Nave noi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Aeronavă nouă
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Greutate: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Viteză: {GOLD}{VELOCITY}{BLACK} Putere: {GOLD}{POWER}
@@ -3487,13 +3491,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Eşti p
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mesaj de la producătorul de vehicule
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Am creat un nou tip de {STRING}. Aţi fi interesaţi de folosirea exclusivă pentru un an a acestui vehicul, astfel ca noi să-i putem observa performanţele înaintea lansării oficiale?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :locomotivă
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :autovehicul
-STR_ENGINE_PREVIEW_AIRCRAFT :aeronavă
-STR_ENGINE_PREVIEW_SHIP :navă
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotivă monoşină
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă pernă magnetică
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :autovehicul
+
+STR_ENGINE_PREVIEW_AIRCRAFT :aeronavă
+STR_ENGINE_PREVIEW_SHIP :navă
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an
@@ -3535,6 +3542,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Vehicule Electr
STR_REPLACE_MONORAIL_VEHICLES :Vehicule Monorail
STR_REPLACE_MAGLEV_VEHICLES :Vehicule Pernă Magnetică
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Retragere vagoane: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fă optiunea de autoînlocuire să păstreze identică lungimea unui tren prin eliminarea vagoanelor (începând din faţă) dacă înlocuirea locomotivei ar face trenul mai lung
diff --git a/src/lang/russian.txt b/src/lang/russian.txt
index d190c0c336..21533614b9 100644
--- a/src/lang/russian.txt
+++ b/src/lang/russian.txt
@@ -468,6 +468,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Приб
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Отдалить
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Строительство железных дорог
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Строительство автомобильных дорог
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Строительство трамвайных путей
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Строительство водных коммуникаций
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Строительство аэропортов
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Открыть панель ландшафта для изменения рельефа, посадки деревьев и т.д.
@@ -488,6 +489,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Созд
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Создание городов
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Создание предприятий
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Строительство автомобильных дорог
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Строительство трамвайных путей
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Посадить деревья. При нажатом Shift - оценка стоимости высадки.
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Поставить метку
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Разместить объект. При нажатом Shift - оценка стоимости строительства.
@@ -1082,6 +1084,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Грузинс
STR_GAME_OPTIONS_CURRENCY_IRR :Иранский риал (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Российский новый рубль (RUR)
STR_GAME_OPTIONS_CURRENCY_MXN :Мексиканский песо (MXN)
+STR_GAME_OPTIONS_CURRENCY_NTD :Новый тайваньский доллар (NTD)
+STR_GAME_OPTIONS_CURRENCY_CNY :Китайский юань (CNY)
+STR_GAME_OPTIONS_CURRENCY_HKD :Гонконгский доллар (HKD)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Движение автомобилей
@@ -1580,8 +1585,8 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Показыв
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Показывать ожидаемое время прибытия и отправления в графиках движения
STR_CONFIG_SETTING_QUICKGOTO :Быстрое создание заданий транспорта: {STRING}
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Открывать окно маршрута с нажатой кнопкой «Следовать»
-STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Тип рельсов по умолчанию (после старта/загрузки): {STRING}
-STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Тип рельсов, выбираемый по умолчанию после старта или загрузки игры.{}«Первые доступные» - самый старый тип рельсов.{}«Последние доступные» - самый новый тип.{}«Наиболее используемые» - тип рельсов, наиболее широко используемых в игре.
+STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Тип ж/д путей по умолчанию (после старта/загрузки): {STRING}
+STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Тип железнодорожных путей, выбираемый по умолчанию после старта или загрузки игры.{}«Первые доступные» - самый старый тип рельсов.{}«Последние доступные» - самый новый тип.{}«Наиболее используемые» - тип рельсов, наиболее широко используемых в игре.
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :первые доступные
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :последние доступные
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :наиболее используемые
@@ -1639,6 +1644,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Разреши
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Разрешить игрокам, управляемым компьютером, участвовать в сетевых играх
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Количество операций перед остановкой скрипта: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Максимальное количество операций, которое скрипт может выполнить за один цикл
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Макс. объём памяти для скрипта: {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Объём памяти, который может использовать скрипт. При превышении этого объёма скрипт будет принудительно завершён. Для больших карт это значение, возможно, потребуется увеличить.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} Мбайт
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Интервал обслуживания в процентах: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Выберите, должно ли техническое обслуживание транспорта выполняться через определённые промежутки времени, либо при снижении надёжности транспортного средства на определённый процент от максимума
@@ -2610,6 +2618,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Стро
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Строительство трамвайных туннелей. При нажатом Shift - оценка стоимости строительства.
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Строительство/удаление автомобильных дорог и станций
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Строительство/удаление трамвайных путей и станций
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Реконструкция/изменение типа дорожного полотна. С нажатым Shift - оценка стоимости строительства.
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Реконструкция трамвайных путей. С нажатым Shift - оценка стоимости строительства.
+
+STR_ROAD_NAME_ROAD :Автомобильная дорога
+STR_ROAD_NAME_TRAM :Трамвайные пути
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Направление гаража
@@ -2799,8 +2812,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Принимает: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип ж/д полотна: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Тип дорожного полотна: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Тип трамвайных путей: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Макс. скорость ж/д: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Макс. скорость авто: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Ограничение скорости трамваев: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Камни
@@ -2835,9 +2851,9 @@ 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 :Дорога с уличным освещением
-STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Дорога с озеленением
+STR_LAI_ROAD_DESCRIPTION_ROAD :Автодорога
+STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Освещённая автодорога
+STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Автодорога с озеленением
STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :Гараж
STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Железнодорожный переезд
STR_LAI_ROAD_DESCRIPTION_TRAMWAY :Трамвайные пути
@@ -2912,6 +2928,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Теку
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Фактическая скорость игры
STR_FRAMERATE_CURRENT :{WHITE}Сейчас
STR_FRAMERATE_AVERAGE :{WHITE}В среднем
+STR_FRAMERATE_MEMORYUSE :{WHITE}Объём памяти
STR_FRAMERATE_DATA_POINTS :{BLACK}Данные по {COMMA} измерени{P ю ям ям}
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} мс
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} мс
@@ -2919,6 +2936,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} кадр{P "" а ов}/с
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} кадр{P "" а ов}/с
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} кадр{P "" а ов}/с
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} мс
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} с
############ Leave those lines in this order!!
@@ -3544,6 +3564,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Инфр
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Ж/д участки:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Сигналы
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Дорожные участки:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Трамвайные участки:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Водные участки:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Каналы
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Станции:
@@ -3651,10 +3672,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новый эл
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Новый монорельсовый поезд
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Новый магниторельсовый поезд
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Новый поезд
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Новый автомобиль
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Новые трамваи
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Новый поезд
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Новый дорожный транспорт
STR_BUY_VEHICLE_SHIP_CAPTION :Новый корабль
-STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Новый авиатранспорт
+STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Новое воздушное судно
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Цена: {GOLD}{CURRENCY_LONG}{BLACK} Вес: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Цена: {GOLD}{CURRENCY_LONG}{BLACK} (Стоимость переоборудования: {GOLD}{CURRENCY_LONG}{BLACK}) Вес: {GOLD}{WEIGHT_SHORT}
@@ -3818,19 +3844,26 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Вес
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Сообщение от производителя транспорта
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Мы создали новую модель {STRING.gen}. Заинтересованы ли вы в его годовом эксклюзивном использовании для проверки перед запуском в серийное производство?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :ж/д локомотив
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.gen :ж/д локомотива
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобиль
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.gen :автомобиля
-STR_ENGINE_PREVIEW_AIRCRAFT :воздушное судно
-STR_ENGINE_PREVIEW_AIRCRAFT.gen :воздушного судна
-STR_ENGINE_PREVIEW_SHIP :корабль
-STR_ENGINE_PREVIEW_SHIP.gen :корабля
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :электровоз
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE.gen :электровоза
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :монорельсовый локомотив
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.gen :монорельсового локомотива
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магниторельсовый локомотив
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.gen :магниторельсового локомотива
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобиль
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.gen :автомобиля
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :трамвай
+STR_ENGINE_PREVIEW_TRAM_VEHICLE.gen :трамвая
+
+STR_ENGINE_PREVIEW_AIRCRAFT :воздушное судно
+STR_ENGINE_PREVIEW_AIRCRAFT.gen :воздушного судна
+STR_ENGINE_PREVIEW_SHIP :корабль
+STR_ENGINE_PREVIEW_SHIP.gen :корабля
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER}{}Стоимость обслуж.: {CURRENCY_LONG}/год{}Ёмкость: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Цена: {CURRENCY_LONG} Вес: {WEIGHT_SHORT}{}Скорость: {VELOCITY} Мощность: {POWER} Макс. ТУ: {6:FORCE}{}Стоимость обслуж.: {4:CURRENCY_LONG}/год{}Ёмкость: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Цена: {CURRENCY_LONG} Макс. скорость: {VELOCITY}{}Ёмкость: {CARGO_LONG}{}Стоимость обслуж.: {CURRENCY_LONG}/год
@@ -3855,8 +3888,8 @@ STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Здес
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Доступные ТС
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Здесь перечислены модели транспортных средств, доступные для замены
-STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Выбор типа транспорта для замены
-STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Выбор типа транспорта, на который следует заменить
+STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Выбор заменяемой модели транспортного средства
+STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Выбор заменяющей модели транспортного средства
STR_REPLACE_VEHICLES_START :{BLACK}Начать замену
STR_REPLACE_VEHICLES_NOW :Начать замену всех ТС
@@ -3872,14 +3905,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Пере
STR_REPLACE_ENGINES :Локомотивы
STR_REPLACE_WAGONS :Вагоны
STR_REPLACE_ALL_RAILTYPE :Весь ж/д транспорт
+STR_REPLACE_ALL_ROADTYPE :Весь дорожный транспорт
STR_REPLACE_HELP_RAILTYPE :{BLACK}Тип ж/д транспорта, подлежащего замене
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Выбор вида транспорта для замены
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Транспорт, на который происходит замена
STR_REPLACE_RAIL_VEHICLES :Поезда
STR_REPLACE_ELRAIL_VEHICLES :Электропоезда
STR_REPLACE_MONORAIL_VEHICLES :Монорельсовые
STR_REPLACE_MAGLEV_VEHICLES :Магнитные
+STR_REPLACE_ROAD_VEHICLES :Автотранспорт
+STR_REPLACE_TRAM_VEHICLES :Трамваи
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Удаление вагонов: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Разрешить при автозамене сохранять длину поездов путём удаления вагонов (начиная с головы поезда), если при автозамене локомотива увеличится длина поезда.
@@ -4542,7 +4580,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... эт
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... неверное направление дороги
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... на проходных остановках нельзя делать повороты
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... на проходных остановках нельзя делать перекрёстки
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... дорога односторонняя или заблокирована
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Невозможно удалить часть станции...
@@ -4613,6 +4650,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Нет
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Сначала удалите рельсы
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Дорога односторонняя или заблокирована
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Через этот вид рельсов запрещено строить переезды
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Пересечение дорог такого типа недопустимо
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Здесь невозможно поставить сигнал...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Здесь невозможно проложить рельсы...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Не удалось удалить рельсы...
@@ -4632,6 +4670,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Не у
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Не удалось удалить трамвайные пути...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... здесь нет дороги
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... здесь нет трамвайных путей
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Здесь невозможно изменить тип дорожного полотна...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Невозможно сменить тип трамвайных рельсов...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Нет подходящего дорожного полотна
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Нет подходящих трамвайных путей
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... несовместимый тип дороги
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... несовместимый тип трамвайных путей
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Здесь невозможно построить канал...
diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt
index 9731fb3f4f..67263e5259 100644
--- a/src/lang/serbian.txt
+++ b/src/lang/serbian.txt
@@ -2601,6 +2601,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Izgradnj
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Uključi građenje/rušenje drumskih puteva
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Uključi građenje/rušenje tramvajskih građevina
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orijentacija drumskog depoa
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Izbor orijentacije drumskog depoa
@@ -3567,10 +3568,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova Železnič
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova Jednošinska Vozila
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova Maglev Vozila
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Šinska Vozila
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nova Drumska Vozila
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Šinska Vozila
STR_BUY_VEHICLE_SHIP_CAPTION :Novi Brodovi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nove Letilice
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Težina: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Brzina: {GOLD}{VELOCITY}{BLACK} Snaga: {GOLD}{POWER}
@@ -3719,19 +3723,22 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Upravo
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Poruka od proizvođača vozila
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Upravo smo završili projektovanje nov{G og e og} {STRING.aku} - da li ste zainteresovani za jednogodišnja eksluzivna prava upotrebe ovog vozila, kako bi smo proverili radne osobine pre puštanja u masovnu proizvodnju?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=srednji}železničko vučno vozilo
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.aku :železničkog vučnog vozila
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=srednji}drumsko vozilo
-STR_ENGINE_PREVIEW_ROAD_VEHICLE.aku :drumskog vozila
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=ženski}letilica
-STR_ENGINE_PREVIEW_AIRCRAFT.aku :letilice
-STR_ENGINE_PREVIEW_SHIP :{G=muški}brod
-STR_ENGINE_PREVIEW_SHIP.aku :broda
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=srednji}jednopružno žel. vučno vozilo
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.aku :jednopružnog žel. vučnog vozila
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=srednji}megnetno žel. vučno vozilo
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.aku :magnetnog žel. vučnog vozila
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=srednji}drumsko vozilo
+STR_ENGINE_PREVIEW_ROAD_VEHICLE.aku :drumskog vozila
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=ženski}letilica
+STR_ENGINE_PREVIEW_AIRCRAFT.aku :letilice
+STR_ENGINE_PREVIEW_SHIP :{G=muški}brod
+STR_ENGINE_PREVIEW_SHIP.aku :broda
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER}{}Cena Održavanja: {CURRENCY_LONG}/god.{}Nosivost: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Težina: {WEIGHT_SHORT}{}Brzina: {VELOCITY} Snaga: {POWER} Najveća vučna snaga: {6:FORCE}{}Cena Održavanja: {4:CURRENCY_LONG}/god{}Nosivost: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Najveća Brzina: {VELOCITY}{}Nosivost: {CARGO_LONG}{}Cena Održavanja: {CURRENCY_LONG}/god.
@@ -3787,6 +3794,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrošinska
STR_REPLACE_MONORAIL_VEHICLES :Jednošinska Vozila
STR_REPLACE_MAGLEV_VEHICLES :Magnetnošinska Vozila
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Ukanjanje vagona: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ukoliko bi se zamenom kompozicija produžila, automatska obnova će ukloniti vagone (sa početka) kako bi se zadržala dužina kompozicije
@@ -4438,7 +4446,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ova
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... ulica je okrenuta u drugom pravcu
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... stajalište ne može biti na krivini
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... stajalište ne može biti na raskrsnici
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... put je jednosmeran ili blokiran.
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Deo stanice se ne može ukloniti...
diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt
index e51df206a0..1ceaaff4b2 100644
--- a/src/lang/simplified_chinese.txt
+++ b/src/lang/simplified_chinese.txt
@@ -2403,6 +2403,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}建设
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}建设/拆除 公路
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}建设/拆除 电车轨道
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}汽车车库的方向……
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}选择汽车车库方向
@@ -3380,10 +3381,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :购买电气化
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :购买单轨列车
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :购买磁悬浮列车
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :新列车
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :购买汽车
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :新列车
STR_BUY_VEHICLE_SHIP_CAPTION :购买船只
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :购买飞机
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}售价:{GOLD}{CURRENCY_LONG}{BLACK} 重量:{GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}速度:{GOLD}{VELOCITY}{BLACK} 功率:{GOLD}{POWER}
@@ -3532,13 +3536,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}你将
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}来自供货商的消息
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}我们新近设计了一款{STRING}{}您愿意在产品正式上市前试用一年吗?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :火车机车
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :汽车
-STR_ENGINE_PREVIEW_AIRCRAFT :飞机
-STR_ENGINE_PREVIEW_SHIP :船只
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :单轨机车
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁悬浮机车
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :汽车
+
+STR_ENGINE_PREVIEW_AIRCRAFT :飞机
+STR_ENGINE_PREVIEW_SHIP :船只
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}运行费用:{CURRENCY_LONG}/年{}运载能力: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}售价:{CURRENCY_LONG} 重量:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牵引力:{6:FORCE}{}运行费用{4:CURRENCY_LONG}/年{}运载能力:{5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}售价:{CURRENCY_LONG} 最大速度:{VELOCITY}{}运载能力:{CARGO_LONG}{}运行成本:{CURRENCY_LONG} /年
@@ -3584,6 +3591,7 @@ STR_REPLACE_ELRAIL_VEHICLES :电力机车
STR_REPLACE_MONORAIL_VEHICLES :单轨列车
STR_REPLACE_MAGLEV_VEHICLES :磁悬浮列车
+
STR_REPLACE_REMOVE_WAGON :{BLACK}清理挂车:{ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}当车辆升级可能造成列车变长时{}自动从最前面的挂车去掉若干节以保证列车长度不变
diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt
index 62784af6b8..8ea31336c9 100644
--- a/src/lang/slovak.txt
+++ b/src/lang/slovak.txt
@@ -2461,6 +2461,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Postavi
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Prepnúť stavbu/odstraňovanie cesty
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Prepnúť stavbu/odstraňovanie električkovej dráhy
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientacia garaze
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Zvoľte orientáciu garáže
@@ -3417,10 +3418,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nové elektrick
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nové jednokoľajové vlaky
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nové magnetické vlaky
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Železnicne vozidlá
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nové automobily
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Železnicne vozidlá
STR_BUY_VEHICLE_SHIP_CAPTION :Nové lode
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nove Lietadlo
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Hmotnosť: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Rýchlosť: {GOLD}{VELOCITY}{BLACK} Výkon: {GOLD}{POWER}
@@ -3568,13 +3572,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Chystá
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Správa od výrobcu dopravných prostriedkov
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Práve sme navrhli nov{G "ý" "ú" "é"} {STRING} - máte záujem o právo exkluzívneho používania na 1 rok? Chceme otestovať vlastnosti tohto modelu pred jeho uvedením na trh.
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=z}železničná lokomotíva
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}automobil
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=s}lietadlo
-STR_ENGINE_PREVIEW_SHIP :{G=z}loď
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=z}jednokoľajová lokomotíva
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=z}magnetická lokomotíva
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}automobil
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=s}lietadlo
+STR_ENGINE_PREVIEW_SHIP :{G=z}loď
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Výkon: {POWER}{}Prevádzkové náklady: {CURRENCY_LONG}/rok{}Kapacita: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Hmotnosť: {WEIGHT_SHORT}{}Rýchlosť: {VELOCITY} Sila: {POWER} Max. T.E.: {6:FORCE}{}Prevádzkové náklady: {4:CURRENCY_LONG}/yr{}Kapacita: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. Rýchlosť: {VELOCITY}{}Kapacita: {CARGO_LONG}{}Prevádzkové náklady: {CURRENCY_LONG}/rok
@@ -3615,6 +3622,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrické lok
STR_REPLACE_MONORAIL_VEHICLES :Lokomotíva pre jednokoľajku
STR_REPLACE_MAGLEV_VEHICLES :Lokomotíva pre magnetickú dráhu
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Odstránenie vagónu: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Zachovanie pôvodnej dĺžky vlaku, odstránením vagónov (odpredu), keď by funkcia automatickej zmeny rušňa vlak predĺžila
diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt
index f91fad236f..c8ff288bc6 100644
--- a/src/lang/slovenian.txt
+++ b/src/lang/slovenian.txt
@@ -2547,6 +2547,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Zgradi p
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Preklopi gradnja/rušenje cestnih konstrukcij
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Preklop gradi/odstrani za tramvaj progo
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Smer garaže
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Izberi smer garaže
@@ -3503,10 +3504,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nova električn
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova enotirna vozila
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova magnetna vozila
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nova tirna vozila
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nova cestna vozila
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nova tirna vozila
STR_BUY_VEHICLE_SHIP_CAPTION :Nove ladje
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova letala
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cena: {GOLD}{CURRENCY_LONG}{BLACK} Teža: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hitrost: {GOLD}{VELOCITY}{BLACK} Moč: {GOLD}{POWER}
@@ -3654,13 +3658,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Priprav
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Sporočilo od proizvajalca vozila
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Na novo smo izdelali {STRING} - ali te zanima enoletna izključna pravica do{}uporabe tega vozila, preden ga ponudimo{}na trgu?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :železniška lokomotiva
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :cestno vozilo
-STR_ENGINE_PREVIEW_AIRCRAFT :letalo
-STR_ENGINE_PREVIEW_SHIP :ladja
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :enotirna lokomotiva
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomotiva
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :cestno vozilo
+
+STR_ENGINE_PREVIEW_AIRCRAFT :letalo
+STR_ENGINE_PREVIEW_SHIP :ladja
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto
@@ -3702,6 +3709,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Električna tir
STR_REPLACE_MONORAIL_VEHICLES :Enotirna vozila
STR_REPLACE_MAGLEV_VEHICLES :Magnetna tirna vozila
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Odstranitev vagonov: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Dovoli samozamenjavi, da z odstranitvijo vagonov, začenši na začetku, ohrani isto dolžino vlaka, če bi ga menjava lokomotive podaljšala
diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt
index ec0d995004..bef3e463ca 100644
--- a/src/lang/spanish.txt
+++ b/src/lang/spanish.txt
@@ -2408,6 +2408,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Cambiar entre construir/retirar carretera
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Activar construir/quitar para construcciones de tranvía
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientación del depósito
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Elegir orientación del depósito de carretera
@@ -3407,10 +3408,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos Vehícul
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuevos Vehículos de Monorraíl
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuevos Vehículos Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuevos Vehículos de Ferrocarril
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuevos Vehículos de Carretera
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuevos Vehículos de Ferrocarril
STR_BUY_VEHICLE_SHIP_CAPTION :Nuevos Barcos
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nueva Aeronave
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Coste: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Velocidad: {GOLD}{VELOCITY}{BLACK} Potencia: {GOLD}{POWER}
@@ -3559,13 +3563,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Está a
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensaje del fabricante de vehículos
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Hemos diseñado un{G "" a} nuev{G o a} {STRING} - ¿estaría interesado en el uso exclusivo por un año de este vehículo, para que podamos comprobar cómo rinde antes de que esté universalmente disponible?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}locomotora
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}vehículo de carretera
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave
-STR_ENGINE_PREVIEW_SHIP :{G=m}barco
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}locomotora de monorraíl
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}vehículo de carretera
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave
+STR_ENGINE_PREVIEW_SHIP :{G=m}barco
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Mantenimiento: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste Mantenimiento: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
@@ -3611,6 +3618,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Vehículos de F
STR_REPLACE_MONORAIL_VEHICLES :Vehículos de Monorraíl
STR_REPLACE_MAGLEV_VEHICLES :Vehículos Maglev
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Retirar vagón: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Hacer que el reemplazo automático mantenga la longitud del tren quitando vagones (empezando por el frente), si el cambio de locomotora produce un tren más largo
@@ -4263,7 +4271,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... esta
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... carretera en la dirección incorrecta
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... las estaciones de autobús de paso no pueden tener esquinas
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... las estaciones de autobús de paso no pueden tener intersecciones
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... carretera de un solo sentido o bloqueada
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No se puede retirar parte de la estación...
diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt
index 0d28c27c3d..9e96c75f8e 100644
--- a/src/lang/spanish_MX.txt
+++ b/src/lang/spanish_MX.txt
@@ -342,6 +342,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Acercar
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Alejar vista
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir vías férreas
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Construir carreteras
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Construir tranvías
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Construir muelles
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Construir aeropuertos
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Abrir herramienta para nivelar o elevar el terreno, plantar árboles, etc.
@@ -362,6 +363,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Generaci
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Generación de pueblos
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Generación de industrias
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Construcción de carreteras
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Construcción de tranvía
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Plantar árboles. Mayús muestra una estimación del precio
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Poner cartel
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Colocar objeto. Mayús muestra una estimación del precio
@@ -1485,6 +1487,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permitir jugado
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permitir a los jugadores controlados por la computadora participar en partidas de varios jugadores
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes disponibles antes de que los scripts sean suspendidos: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de operaciones que un script puede realizar por turno
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Máx. uso de memoria por script : {STRING}
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Cantidad de memoria que puede consumir un script individual antes de ser finalizado. Puede que deba incrementarse para mapas grandes.
+STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervalo de mantenimiento en porcentajes: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Escoger si el mantenimiento de vehículos comenzará debido al tiempo pasado desde el último mantenimiento o por una reducción de la fiabilidad menor de un porcentaje determinado
@@ -2430,6 +2435,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construir túnel de tranvía. Mayús muestra una estimación del precio
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Quitar carretera
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Quitar carriles de tranvía
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Convertir o actualizar tipo de carretera. Mayús muestra una estimación del precio
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Convertir o actualizar tipo de tranvía. Mayús muestra una estimación del precio
+
+STR_ROAD_NAME_ROAD :Carretera
+STR_ROAD_NAME_TRAM :Tranvía
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientación del depósito
@@ -2614,8 +2624,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargamento aceptado: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de vía: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Tipo de carretera: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tipo de tranvía: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Límite de velocidad de ferrocarril: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Límite de velocidad de carretera: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Velocidad límite de tranvía: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocas
@@ -2725,6 +2738,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Factor d
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Rapidez actual del juego comparada con la esperada durante una simulación normal.
STR_FRAMERATE_CURRENT :{WHITE}Actual
STR_FRAMERATE_AVERAGE :{WHITE}Promedio
+STR_FRAMERATE_MEMORYUSE :{WHITE}Memoria
STR_FRAMERATE_DATA_POINTS :{BLACK}Información de {COMMA} mediciones
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2732,6 +2746,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} cuadros/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} cuadros/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} cuadros/s
+STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
+STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
+STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!!
@@ -3357,6 +3374,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraest
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Tramos de vías férreas:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Señales
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Tramos de carretera:
+STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Tramos de tranvía:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Casillas de agua:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canales
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estaciones:
@@ -3464,10 +3482,15 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuevos trenes e
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuevos monorrieles
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuevos trenes maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuevos trenes
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuevos vehículos de carretera
+STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nuevos tranvías
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuevos trenes
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nuevos vehículos de carretera
STR_BUY_VEHICLE_SHIP_CAPTION :Nuevos barcos
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nuevas aeronaves
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Costo: {GOLD}{CURRENCY_LONG}{BLACK} Peso: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Costo: {GOLD}{CURRENCY_LONG}{BLACK} (Costo de reformación: {GOLD}{CURRENCY_LONG}{BLACK}) Peso: {GOLD}{WEIGHT_SHORT}
@@ -3628,13 +3651,18 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Se vend
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensaje del fabricante de vehículos
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Hemos diseñado un{G "" a} nuev{G o a} {STRING}. ¿Le interesaría el uso exclusivo de este vehículo por un año para que podamos probar su desempeño antes de lanzarlo al público?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}locomotora
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}vehículo de carretera
-STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave
-STR_ENGINE_PREVIEW_SHIP :{G=m}barco
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :locomotora eléctrica
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}locomotora de monorriel
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora maglev
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}vehículo de carretera
+STR_ENGINE_PREVIEW_TRAM_VEHICLE :tranvía
+
+STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}aeronave
+STR_ENGINE_PREVIEW_SHIP :{G=m}barco
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Costo de operación: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Costo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} Máx. F.T.: {6:FORCE}{}Costo de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Costo: {CURRENCY_LONG} Velocidad máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Costo de mantenimiento: {CURRENCY_LONG}/año
@@ -3672,14 +3700,19 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Cambiar
STR_REPLACE_ENGINES :Locomotoras
STR_REPLACE_WAGONS :Vagones
STR_REPLACE_ALL_RAILTYPE :Todos los vehículos ferroviarios
+STR_REPLACE_ALL_ROADTYPE :Todos los vehículos de carretera
STR_REPLACE_HELP_RAILTYPE :{BLACK}Elegir el tipo de vías férreas para las que se desea reemplazar locomotoras
+STR_REPLACE_HELP_ROADTYPE :{BLACK}Elegir el tipo de carretera para el que se desea reemplazar locomotoras
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostrar el vehículo que reemplazará al otro de la izquierda
STR_REPLACE_RAIL_VEHICLES :Trenes
STR_REPLACE_ELRAIL_VEHICLES :Trenes eléctricos
STR_REPLACE_MONORAIL_VEHICLES :Trenes de monorriel
STR_REPLACE_MAGLEV_VEHICLES :Trenes maglev
+STR_REPLACE_ROAD_VEHICLES :Vehículos de carretera
+STR_REPLACE_TRAM_VEHICLES :Vehículos de tranvía
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Quitar vagón: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Hacer que el reemplazo automático mantenga la longitud del tren quitando vagones (empezando por el frente), si el cambio de locomotora produce un tren más largo
@@ -4332,7 +4365,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... esta
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... carretera en el sentido incorrecto
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... las estaciones y paradas intermedias no pueden ponerse sobre esquinas
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... las estaciones y paradas intermedias no pueden ponerse sobre intersecciones
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... la carretera está bloqueada o es de un solo sentido
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}No se puede quitar parte de la estación...
@@ -4403,6 +4435,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tramo de
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Primero se debe quitar el tramo de vías férreas
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Carretera de un solo sentido o bloqueada
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}No se permiten pasos a nivel para este tipo de vías férreas
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}No se permiten pasos a nivel para este tipo de carretera
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}No se pueden instalar señales aquí...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}No se pueden construir vías férreas aquí...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}No se pueden quitar vías férreas de aquí...
@@ -4422,6 +4455,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}No se pu
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}No se puede quitar tranvía de aquí...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no hay carretera
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hay tranvía
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}No es posible transformar esta carretera...
+STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}No es posible transformar esta vía de tranvía...
+STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Carretera no apta
+STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Tranvía no apto
+STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... carretera no compatible
+STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvía no compatible
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}No se pueden construir canales aquí...
diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt
index 488619d123..c28f0410c6 100644
--- a/src/lang/swedish.txt
+++ b/src/lang/swedish.txt
@@ -237,6 +237,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Angre kr
STR_BUTTON_SORT_BY :{BLACK}Sortera efter
STR_BUTTON_LOCATION :{BLACK}Plats
STR_BUTTON_RENAME :{BLACK}Byt namn
+STR_TOOLTIP_CATCHMENT :{BLACK}Växla visning av upptagningsområde
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Stäng fönster
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Fönstertitel - dra för att flytta fönstret
@@ -265,6 +266,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}När den
STR_BUTTON_DEFAULT :{BLACK}Standardinställning
STR_BUTTON_CANCEL :{BLACK}Avbryt
STR_BUTTON_OK :{BLACK}OK
+STR_WARNING_PASSWORD_SECURITY :{YELLOW}Varning: Serveradministratörer kan ha möjlighet att läsa text som skrivs här.
# On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
@@ -466,6 +468,7 @@ STR_TOOLBAR_SOUND_MUSIC :Ljud/musik
############ range for message menu starts
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Senaste meddelandet/nyheten
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Meddelandehistorik
+STR_NEWS_MENU_DELETE_ALL_MESSAGES :Ta bort alla meddelanden
############ range ends here
############ range for about menu starts
@@ -988,13 +991,16 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Välj vi
STR_GAME_OPTIONS_RESOLUTION_OTHER :annan
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Gränssnittstorlek
-STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken gränssnittsstorlek som används
+STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken gränssnittsstorlek som ska användas
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dubbel storlek
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Fyrdubbel storlek
+STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Storlek på typsnitt
+STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken storlek som ska användas på gränssnittets typsnitt
+STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbel storlek
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikpaket som standard
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Välj vilket grafikpaket som ska användas som standard
@@ -1194,8 +1200,8 @@ STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Lutningsgrad f
STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Sluttningars lutningsgrad för vägfordon: {STRING}
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Lutningsgrad för lutande rutor för vägfordon. Högre värden gör det svårare att komma upp för en backe
-STR_CONFIG_SETTING_FORBID_90_DEG :Förbjud tåg och skepp att göra 90° svängar: {STRING}
-STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-graderssvängar inträffar då ett horisontellt spår följs direkt av ett vertikalt spår på angränsande ruta och därmed gör så att tåget svänger 90-grader om de kör längs med spåret. Detta i motsats till andra kombinationer av spårbitar där tåget svänger 45 grader i taget. Denna inställning påverkar även svängradien för fartyg
+STR_CONFIG_SETTING_FORBID_90_DEG :Förbjud tåg att göra 90°-svängar: {STRING}
+STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-graderssvängar inträffar då ett horisontellt spår följs direkt av ett vertikalt spår på angränsande ruta, vilket tvingar tåget att svänga 90 grader om det kör utefter spåret. Detta i motsats till andra kombinationer av spårbitar där tåget svänger 45 grader i taget.
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Tillåt att stationer som inte är byggda direkt brevid varandra slås ihop: {STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Tillåt att lägga till delar till en station utan att de är i direktkontakt med existerande delar. Kräver Ctrl+klick vid placering av nya stationsdelar.
STR_CONFIG_SETTING_INFLATION :Inflation: {STRING}
@@ -1251,8 +1257,8 @@ STR_CONFIG_SETTING_PLANE_SPEED :Hastighetsfakto
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Ställ in relativ hastighet för flygplan relativt övriga fordonstyper. Detta reducerar inkomsterna för flygtransporter.
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
STR_CONFIG_SETTING_PLANE_CRASHES :Antal flygplanskrascher: {STRING}
-STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Ställ in hur stor risken för en flygolycka ska vara
-STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Inga
+STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Ställ in hur stor sannolikheten för en slumpmässig flygkrasch ska vara.{}* Stora flygplan löper alltid en risk att krascha när de landar på små flygfält
+STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Inga*
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reducerad
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Tillåt genomfartshållplatser på stadsägda vägar: {STRING}
@@ -1577,6 +1583,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Om denna instä
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Förbjuden
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Tillåten
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Tillåten, vanlig stads-layout
+STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linjär
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Placering av träd i spelläge: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Kontrollera den slumpmässiga uppkomsten av träd under spelets gång. Detta kan påverka industrier som är beroende av växande träd, till exempel sågverk
@@ -2078,6 +2085,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Koppla i
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servern är skyddad. Ange lösenord
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Företaget är skyddat. Ange lösenord
+STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Klientlista
# Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Klientlista
@@ -2123,7 +2131,7 @@ STR_NETWORK_CHAT_ALL :[Alla] {STRING}
STR_NETWORK_CHAT_OSKTITLE :{BLACK}Mata in text för nätverkschat
# Network messages
-STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}Inget nätverkskort funnet eller så är spelet kompilerat utan ENABLE_NETWORK
+STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}Inget nätverkskort funnet
STR_NETWORK_ERROR_NOSERVER :{WHITE}Kunde inte hitta några nätverksspel
STR_NETWORK_ERROR_NOCONNECTION :{WHITE}Servern svarade inte på förfrågan
STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}Kunde inte ansluta på grund av att NewGRF är omaka
@@ -2415,6 +2423,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Bygg vä
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bygg spårvägstunnel. Shift växlar mellan att bygga/visa beräknad kostnad
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Växla mellan att bygga/riva väg
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Växla mellan att bygga/riva spårväg
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Konvertera/Uppgradera spårvagnstyp. Shift växlar mellan att bygga/visa beräknad kostnad
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Riktning för vägfordonsdepå
@@ -2601,6 +2611,7 @@ STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STR
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Spårtyp: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Hastighetsgräns för järnvägsspår: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Hastighetsbegränsning på väg: {LTBLUE}{VELOCITY}
+STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Hastighetsgräns för spårvagnar: {LTBLUE}{VELOCITY}
# Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stenar
@@ -2732,6 +2743,7 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafikå
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Vyfönster:
STR_FRAMERATE_VIDEO :{BLACK}Videoutmatning:
STR_FRAMERATE_SOUND :{BLACK}Ljudmixning:
+STR_FRAMERATE_GAMESCRIPT :{BLACK} Spelskript:
############ End of leave-in-this-order
############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Spel-loop
@@ -2746,6 +2758,7 @@ STR_FRAMETIME_CAPTION_DRAWING :Grafikåtergivn
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Återgivning av vyer
STR_FRAMETIME_CAPTION_VIDEO :Videoutmatning
STR_FRAMETIME_CAPTION_SOUND :Ljudmixning
+STR_FRAMETIME_CAPTION_GAMESCRIPT :Spelskript
############ End of leave-in-this-order
@@ -3104,6 +3117,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Muta d
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globala mål
+STR_GOALS_SPECTATOR :Globala mål
STR_GOALS_GLOBAL_TITLE :{BLACK}Globala mål:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Inga -
@@ -3439,10 +3453,14 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nya elektriska
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nytt monorailfordon
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nytt maglevfordon
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nya rälsfordon
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nytt Vägfordon
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nya rälsfordon
+STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nya vägfordon
STR_BUY_VEHICLE_SHIP_CAPTION :Nytt skepp
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nytt flygplan
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} Vikt: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hastighet: {GOLD}{VELOCITY}{BLACK} Kraft: {GOLD}{POWER}
@@ -3455,6 +3473,7 @@ STR_PURCHASE_INFO_REFITTABLE :(anpassningsbar
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Designår: {GOLD}{NUM}{BLACK} Livslängd: {GOLD}{COMMA} år
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Max. tillförlitlighet: {GOLD}{COMMA} %
STR_PURCHASE_INFO_COST :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}
+STR_PURCHASE_INFO_COST_REFIT :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} (Anpassningskostnad: {GOLD}{CURRENCY_LONG}{BLACK})
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Vikt: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Kostnad: {GOLD}{CURRENCY_LONG}{BLACK} Hastighet: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapacitet: {GOLD}{CARGO_LONG}, {CARGO_LONG}
@@ -3477,12 +3496,16 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Köp for
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Köp skepp
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Köp flygplan
+STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Köp och anpassa fordon
+STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Köp och anpassa fordon
+STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Köp och anpassa flygplan
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Köp markerad tågvagn. Shift+klick visar kostnad utan att köpa
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Köp markerat vägfordon. Shift+klick visar kostnad utan att köpa
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Köp markerat skepp. Shift+klick visar kostnad utan att köpa
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Köp markerat flygplan. Shift+klick visar kostnad utan att köpa
+STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Köp och anpassa markerat flygplan. Shift+klick visar kostnad utan att köpa
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Byt namn på
STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Byt namn på
@@ -3592,13 +3615,17 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Du är
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meddelande från fordonstillverkare
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Vi har just designat ett nytt {STRING} - är du intresserad av ett års exklusiv användning av detta fordon, så vi kan se hur det presterar innan vi gör det allmänt tillgängligt?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :järnvägslok
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :vägfordon
-STR_ENGINE_PREVIEW_AIRCRAFT :flygplan
-STR_ENGINE_PREVIEW_SHIP :skepp
+STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :elektrifierat järnvägslok
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail-lok
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :vägfordon
+
+STR_ENGINE_PREVIEW_AIRCRAFT :flygplan
+STR_ENGINE_PREVIEW_SHIP :skepp
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Kraft {POWER}{}Löpande kostnad: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kostnad: {CURRENCY_LONG} Vikt: {WEIGHT_SHORT}{}Hastighet: {VELOCITY} Effekt: {POWER} Max. T.E.: {6:FORCE}{}Löpande kostnad: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kostnad: {CURRENCY_LONG} Maxhastiget: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Körkostnad: {CURRENCY_LONG}/år
@@ -3636,6 +3663,7 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Växla m
STR_REPLACE_ENGINES :Lok
STR_REPLACE_WAGONS :Vagnar
STR_REPLACE_ALL_RAILTYPE :Alla järnvägsfordon
+STR_REPLACE_ALL_ROADTYPE :Alla vägfordon
STR_REPLACE_HELP_RAILTYPE :{BLACK}Välj vilken järnvägstyp du vill byta ut lok för
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Visa vilket fordon det vänstra fordonet byts ut till, om något
@@ -3644,6 +3672,8 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektriska jär
STR_REPLACE_MONORAIL_VEHICLES :Monorail-fordon
STR_REPLACE_MAGLEV_VEHICLES :Maglevfordon
+STR_REPLACE_ROAD_VEHICLES :Vägfordon
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagnborttagning: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gör så att automatiskt utbyte behåller ett tågs längd genom att ta bort vagnar (med början längst fram) om utbytandet av loket skulle göra tåget längre
@@ -3785,7 +3815,7 @@ STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapacite
# Vehicle refit
STR_REFIT_CAPTION :{WHITE}{VEHICLE} (Anpassa)
STR_REFIT_TITLE :{GOLD}Välj godstyp att frakta:
-STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}{}{BLACK}Anpassningens kostnad: {RED}{CURRENCY_LONG}
+STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}{}{BLACK}Kostnad för anpassning: {RED}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Kostnad för anpassning: {RED}{CURRENCY_LONG}
STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO_LONG}. {GOLD}{CARGO_LONG}{}{BLACK}Inkomstens vinst: {GREEN}{CURRENCY_LONG}
@@ -4296,7 +4326,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dett
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... vägen pekar i fel riktning
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... genomfartshållplatser kan inte ha gatuhörn
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... genomfartshållplatser kan inte ha korsningar
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... vägen är enkelriktad eller blockerad
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ej ta bort del av station...
@@ -4367,6 +4396,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Inget pa
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Måste ta bort järnväg först
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Vägen är enkelriktad eller blockerad
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Plankorsningar är inte tillåtna för denna typ av spår
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Plankorsningar är inte tillåtna för denna vägtyp
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kan inte bygga signaler här...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kan inte bygga järnvägsspår här...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kan inte ta bort järnvägspår här...
@@ -4386,6 +4416,7 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kan inte
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kan inte ta bort spårvagnsrälsen härifrån...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... det finns ingen väg
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... det finns ingen spårvagnsräls
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan inte konvertera vägtyp här...
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kan inte bygga kanaler här...
diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt
index 473fba7f77..8ce86ffbf4 100644
--- a/src/lang/tamil.txt
+++ b/src/lang/tamil.txt
@@ -2100,6 +2100,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}ட்
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}சாலை கட்டுமானம் செய்யவும்/நீக்கவும்
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}ட்ராம்வே கட்டுமானம் செய்யவும்/நீக்கவும்
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}சாலை வாகன பணிமனை திசையமைப்பு
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}சாலை வாகன பணிமனை திசையமைப்பினை தேர்ந்தெடுக்கவும்
@@ -2968,10 +2969,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :புது
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :புது மோனோ இரயில் வாகனங்கள்
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :புதிய மேக்லெவ் வாகனங்கள்
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :புது இரயில் வாகனங்கள்
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :புது சாலை வாகனங்கள்
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :புது இரயில் வாகனங்கள்
STR_BUY_VEHICLE_SHIP_CAPTION :புது கப்பல்கள்
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :புது விமானம்
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}செலவு: {GOLD}{CURRENCY_LONG}{BLACK} எடை: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}வேகம்: {GOLD}{VELOCITY}{BLACK} திறன்: {GOLD}{POWER}
@@ -3097,13 +3101,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}நீ
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}வாகன உற்பத்தியாலரிடமிருந்து ஓர் தகவல்
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :இரயில்வே வாகனம்
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :சாலை வாகனம்
-STR_ENGINE_PREVIEW_AIRCRAFT :விமானம்
-STR_ENGINE_PREVIEW_SHIP :கப்பல்
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :மோனோ இரயில் வாகனம்
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :மேக்லெவ் வாகனம்
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :சாலை வாகனம்
+
+STR_ENGINE_PREVIEW_AIRCRAFT :விமானம்
+STR_ENGINE_PREVIEW_SHIP :கப்பல்
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER}{}ஓட்டுவதற்கான செலவு: {CURRENCY_LONG}/வரு{}கொள்ளளவு: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}செலவு: {CURRENCY_LONG} எடை: {WEIGHT_SHORT}{}வேகம்: {VELOCITY} திறன்: {POWER} அதி. T.E.: {6:FORCE}{}ஓட்டுவதற்கான செலவு: {4:CURRENCY_LONG}/வரு{}கொள்ளளவு: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}செலவு: {CURRENCY_LONG} அதி. வேகம்: {VELOCITY}{}கொள்ளளவு: {CARGO_LONG}{}ஓட்டும் செலவு: {CURRENCY_LONG}/ஆண்டிற்கு
@@ -3134,6 +3141,7 @@ STR_REPLACE_ELRAIL_VEHICLES :மின்ச
STR_REPLACE_MONORAIL_VEHICLES :மோனோ இரயில் வாகனங்கள்
STR_REPLACE_MAGLEV_VEHICLES :மேக்லெவ் வாகனங்கள்
+
STR_REPLACE_REMOVE_WAGON :{BLACK}பெட்டி நீக்கம்: {ORANGE}{STRING}
# Vehicle view
diff --git a/src/lang/thai.txt b/src/lang/thai.txt
index 89e78f5e8f..b2f6885d84 100644
--- a/src/lang/thai.txt
+++ b/src/lang/thai.txt
@@ -2342,6 +2342,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}สร
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}สลับโหมด สร้าง/ลบ ถนน
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}สลับโหมด สร้าง/ลบ รางสำหรับรถราง
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}ทิศทางของอู่รถ
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}เลือกทิศทางของอู่รถ
@@ -3279,10 +3280,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :รถไฟฟ
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :รถไฟฟ้ารางเดี่ยวใหม่
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Maglev (รถไฟพลังแม่เหล็ก) ใหม่
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :ประเถทไฟที่สามารถซื้อได้
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :ประเถทรถที่สามารถซื้อได้
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :ประเถทไฟที่สามารถซื้อได้
STR_BUY_VEHICLE_SHIP_CAPTION :ประเถทเรือที่สามารถซื้อได้
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :ประเถทอากาศยานที่สามารถซื้อได้
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}มูลค่า: {GOLD}{CURRENCY_LONG}{BLACK} น้ำหนัก: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}ความเร็ว: {GOLD}{VELOCITY}{BLACK} พลังขับเคลื่อน: {GOLD}{POWER}
@@ -3422,13 +3426,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}คุ
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}ข้อความจากผู้ผลิตยานพาหนะ
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}เราได้ออกแบบ {STRING} ใหม่ - หากคุณต้องการที่จะนำไปทดลองใช้ เราจะให้คุณนำไปใช้งานก่อนที่จะนำออกไปจำหน่ายในตลาดปกติ{}คุณต้องการนำไปทดลองใช้หรือไม่ ?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :หัวรถจักร
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :ยานพาหนะทางบก
-STR_ENGINE_PREVIEW_AIRCRAFT :อากาศยาน
-STR_ENGINE_PREVIEW_SHIP :ยานพาหนะทางน้ำ
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :รถไฟรางเดี่ยว
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :รถไฟรางแม่เหล็กไฟฟ้า
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :ยานพาหนะทางบก
+
+STR_ENGINE_PREVIEW_AIRCRAFT :อากาศยาน
+STR_ENGINE_PREVIEW_SHIP :ยานพาหนะทางน้ำ
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี{}ความจุ: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}มูลค่า: {CURRENCY_LONG} น้ำหนัก: {WEIGHT_SHORT}{}ความเร็ว: {VELOCITY}พลังขับเคลื่อน: {POWER} กำัลังลากจูงสูงสุด: {6:FORCE}{}ค่าปฎิบัติการ: {4:CURRENCY_LONG}/ปี{}ความจุ: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}มูลค่า: {CURRENCY_LONG} ความเร็วสูงสุด: {VELOCITY}{}ความจุ: {CARGO_LONG}{}ค่าปฏิบัติการ: {CURRENCY_LONG}/ปี
@@ -3466,6 +3473,7 @@ STR_REPLACE_ELRAIL_VEHICLES :ยานพา
STR_REPLACE_MONORAIL_VEHICLES :ยานพาหนะประเภทรถไฟรางเดี่ยว
STR_REPLACE_MAGLEV_VEHICLES :รถไฟพลังงานแม่แหล็ก
+
STR_REPLACE_REMOVE_WAGON :{BLACK}ขายรถพ่วง: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}ทำให้การแทนที่ขบวนรถไฟทำให้ความยาวของขบวนยังเท่าเดิม
diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt
index e754a40a24..029d20c3f4 100644
--- a/src/lang/traditional_chinese.txt
+++ b/src/lang/traditional_chinese.txt
@@ -2393,6 +2393,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}挖掘
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}切換鋪設/移除公路
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}切換鋪設電車軌
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}車廠方向
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}選擇車廠方向
@@ -3349,10 +3350,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :新購電氣化
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :新購單軌車輛
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :新購磁浮車輛
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :新購鐵路列車
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :新購車輛
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :新購鐵路列車
STR_BUY_VEHICLE_SHIP_CAPTION :新購船舶
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :新購飛機
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}費用:{GOLD}{CURRENCY_LONG}{BLACK} 載重:{GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}速度:{GOLD}{VELOCITY}{BLACK} 功率:{GOLD}{POWER}
@@ -3500,13 +3504,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}您正
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}運輸工具製造商的訊息
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}我們剛設計了一種新{STRING} - 您有興趣獨家使用它一年,讓我們在正式上市之前先 觀察它的表現嗎?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :鐵路機車頭
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :車輛
-STR_ENGINE_PREVIEW_AIRCRAFT :飛機
-STR_ENGINE_PREVIEW_SHIP :船舶
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :單軌機車頭
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :磁浮機車頭
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :車輛
+
+STR_ENGINE_PREVIEW_AIRCRAFT :飛機
+STR_ENGINE_PREVIEW_SHIP :船舶
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER}{}營運成本:{CURRENCY_LONG} / 年{}容量:{CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}費用:{CURRENCY_LONG} 載重:{WEIGHT_SHORT}{}速度:{VELOCITY} 功率:{POWER} 最大牽引力:{6:FORCE}{}營運成本:{4:CURRENCY_LONG}/年{}容量:{5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}費用:{CURRENCY_LONG} 最高速度:{VELOCITY}{}容量:{CARGO_LONG}{}營運成本:{CURRENCY_LONG}/年
@@ -3547,6 +3554,7 @@ STR_REPLACE_ELRAIL_VEHICLES :電氣化列車
STR_REPLACE_MONORAIL_VEHICLES :單軌列車
STR_REPLACE_MAGLEV_VEHICLES :磁浮列車
+
STR_REPLACE_REMOVE_WAGON :{BLACK}移除車廂:{ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}如果替換後的車廂較長的話,讓自動替換功能移除多餘的車廂 (從頭開始) 以便維持列車長度
diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt
index c15545d7be..382587da90 100644
--- a/src/lang/turkish.txt
+++ b/src/lang/turkish.txt
@@ -2422,6 +2422,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramvay
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Yol yap/sil arasında geçiş yap
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Tramvay yapımı/yıkımı
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garaj Yönü
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Garaj yönünü seç
@@ -3448,10 +3449,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Yeni Elektrikli
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Yeni Monoray
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Yeni Maglev
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trenler
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Yeni Karayolu Araçları
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trenler
STR_BUY_VEHICLE_SHIP_CAPTION :Yeni gemi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Yeni Hava Aracı
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}{BLACK} Ağırlık: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hız: {GOLD}{VELOCITY}{BLACK} Güç: {GOLD}{POWER}
@@ -3601,13 +3605,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Garajda
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Araç üreticisinden mesaj
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Yeni bir {STRING} tasarladık - bizim için bunu bir yıl denemeyi kabul ediyor musunuz?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotif
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :karayolu aracı
-STR_ENGINE_PREVIEW_AIRCRAFT :uçak
-STR_ENGINE_PREVIEW_SHIP :gemi
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoray lokomotifi
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotifi
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :karayolu aracı
+
+STR_ENGINE_PREVIEW_AIRCRAFT :uçak
+STR_ENGINE_PREVIEW_SHIP :gemi
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Fiyat: {CURRENCY_LONG} Ağırlık: {WEIGHT_SHORT}{}Hız: {VELOCITY} Güç: {POWER}{}İşletme Gideri: {CURRENCY_LONG}/yıl{}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}{}İşletme Gideri: {4:CURRENCY_LONG}/yıl{}Kapasite: {5:CARGO_LONG}
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
@@ -3653,6 +3660,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrikli Tren
STR_REPLACE_MONORAIL_VEHICLES :Monoray Araçları
STR_REPLACE_MAGLEV_VEHICLES :Maglev Araçları
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon kaldırma: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Otomatik yenilemede tren boyutunun artması gerekiyorsa vagonları kaldır (en önden başlayarak yeterli sayıda vagon silinir)
@@ -4305,7 +4313,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... bu y
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... yol yanlış yönde
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... yol üstü duraklar köşe üzerine inşa edilemez
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... yol üstü duraklar kavşak üzerine inşa edilemez
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... yol tek yön ya da engellenmiş
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}İstasyonun parçasi kaldırılamaz...
diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt
index dd0930672b..da4d05bce0 100644
--- a/src/lang/ukrainian.txt
+++ b/src/lang/ukrainian.txt
@@ -463,6 +463,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Збіл
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Зменшити
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Будувати залізницю
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Будувати дороги
+STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Будувати трамвайну колію
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Будувати порти
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Будувати аеропорти
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Змінити ландшафт
@@ -483,6 +484,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Ство
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Створення міст
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Створення виробництва
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Будівництво доріг
+STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Будівництво трамвайних колій
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Насадження дерев. Утримуйте Shift для показу витрат на висаджування
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Встановити позначку
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Встановити об'єкт. Утримуйте Shift для показу витрат на розміщення
@@ -567,7 +569,7 @@ STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Будівни
############ range for road construction menu starts
STR_ROAD_MENU_ROAD_CONSTRUCTION :Будівництво автомобільних доріг
-STR_ROAD_MENU_TRAM_CONSTRUCTION :Будівництво трамвайних доріг
+STR_ROAD_MENU_TRAM_CONSTRUCTION :Будівництво трамвайних колій
############ range ends here
############ range for waterways construction menu starts
@@ -2541,7 +2543,7 @@ STR_BRIDGE_TUBULAR_SILICON :Трубчас
# Road construction toolbar
STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Автомобільне будівництво
-STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Трамвайне будівництво
+STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Будівництво трамвайних колій
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Будувати дорогу. Ctrl переключає побудову/знесення для будівництва доріг. Утримуйте Shift для показу витрат
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Будувати трамвайну колію. Ctrl переключає побудову/знесення для будівництва трамвайної колії. Утримуйте Shift для показу витрат на будівництво
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}Будувати дорогу в режимі Автобудування. Ctrl переключає побудову/знесення для будівництва доріг. Утримуйте Shift для показу витрат на будівництво
@@ -2559,6 +2561,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Буду
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Побудувати трамвайний тунель. Утримуйте Shift для показу витрат на придбання
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Будувати/зруйнувати дорогу
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Будувати/демонтувати колію
+STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Модернізувати дорогу. Утримуйте Shift для показу витрат на модернізацію
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Орієнтація депо
@@ -2743,6 +2747,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Приймає: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип зал.колії: {LTBLUE}{STRING}
+STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Тип дороги: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ліміт швидкості залізниці: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Ліміт швидкості авто: {LTBLUE}{VELOCITY}
@@ -3563,6 +3568,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Незгруп
STR_GROUP_DEFAULT_SHIPS :Незгруповані кораблі
STR_GROUP_DEFAULT_AIRCRAFTS :Незгруповані літаки
+STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COMMA} (+{COMMA})
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Групи - клацніть мишою на групі, щоб побачити список транспорту цієї групи. Перетягуйте групи, щоб змінити ієрархію.
STR_GROUP_CREATE_TOOLTIP :{BLACK}Клацніть мишою, щоб створити групу
@@ -3590,10 +3596,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Новий ел
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Новий монорейковий поїзд
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Новий магнітний поїзд
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Нові потяги
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Нові автомобілі
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Нові потяги
STR_BUY_VEHICLE_SHIP_CAPTION :Нові кораблі
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Нові літаки
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Ціна: {GOLD}{CURRENCY_LONG}{BLACK} Вага: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Швидкість: {GOLD}{VELOCITY}{BLACK} Потужність: {GOLD}{POWER}
@@ -3743,13 +3752,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Ви в
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Повідомлення від виробника транспорту
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Ми розробили новий {STRING} - чи бажаєте ексклюзивно користуватись ним протягом року, так ми побачимо, як він зарекомендує себе, перед тим як буде доступним для всіх?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :локомотив
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобіль
-STR_ENGINE_PREVIEW_AIRCRAFT :літак
-STR_ENGINE_PREVIEW_SHIP :корабель
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :монорейковий локомотив
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітний локомотив
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :автомобіль
+
+STR_ENGINE_PREVIEW_AIRCRAFT :літак
+STR_ENGINE_PREVIEW_SHIP :корабель
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік
@@ -3795,6 +3807,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Електри
STR_REPLACE_MONORAIL_VEHICLES :Монорейкові поїзди
STR_REPLACE_MAGLEV_VEHICLES :Магнітні поїзди
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Ліквідація зайвих вагонів: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Дозволити автооновленню видаляти вагони, зберігаючи довжину потягу (починаючи спереду), якщо оновлення робить поїзд довшим
@@ -4447,7 +4460,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ця
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... дорога не в тому напрямку
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... проїзні зупинки не можуть мати поворотів
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... проїзні зупинки не можуть мати перехресть
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... дорога одностороння або заблокована
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Не можна зруйнувати частину станції...
@@ -4463,7 +4475,7 @@ STR_ERROR_MUST_DEMOLISH_RAILROAD :{WHITE}Споч
STR_ERROR_MUST_DEMOLISH_BUS_STATION_FIRST :{WHITE}Спочатку зруйнуйте зупинку
STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST :{WHITE}Спочатку зруйнуйте вантажну станцію
STR_ERROR_MUST_DEMOLISH_PASSENGER_TRAM_STATION_FIRST :{WHITE}Спочатку треба знести пасажирську трамвайну станцію
-STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Спочатку треба знести вантажну трамвайну станцію
+STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST :{WHITE}Спочатку зруйнуйте товарну трамвайну станцію
STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Спочатку зруйнуйте порт
STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Спочатку зруйнуйте аеропорт
@@ -4518,6 +4530,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Неві
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Спочатку приберіть колію
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Дорога з одностороннім рухом або блокована
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Переїзди для такого виду колії є забороненими
+STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Переїзди для такого виду дороги є забороненими
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Неможливо будувати сигнали тут...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Неможливо будувати колію тут...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Неможливо прибрати колію звідси...
@@ -4537,6 +4550,7 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Немо
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Не можна прибрати трамвайну колію звідси...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... тут немає дороги
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... тут немає трамвайних шляхів
+STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Тут не можна модернізувати дорогу...
# Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Неможливо будувати канал тут...
@@ -4589,6 +4603,7 @@ STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Не м
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Не можна стерти групу...
STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Не можна перейменувати групу...
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Неможливо встановити головну групу...
+STR_ERROR_GROUP_CAN_T_SET_PARENT_RECURSION :{WHITE}... ієрархія груп не може містити циклів
STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Не можна позбутися всього транспорту цієї групи...
STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Не можна додати цей транспорт у групу...
STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Не можна додати спільний транспорт у групу...
diff --git a/src/lang/unfinished/chuvash.txt b/src/lang/unfinished/chuvash.txt
index 2e3b4fff56..6bcbbc7f18 100644
--- a/src/lang/unfinished/chuvash.txt
+++ b/src/lang/unfinished/chuvash.txt
@@ -860,6 +860,7 @@ STR_CONTENT_DETAIL_VERSION :{SILVER}Вер
# Road construction toolbar
+
# Road depot construction window
# Road vehicle station construction window
@@ -1138,6 +1139,9 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ҫу
# Build vehicle window
+############ range for vehicle availability starts
+############ range for vehicle availability ends
+
@@ -1175,6 +1179,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Engine preview window
+
+
+
# Autoreplace window
@@ -1183,6 +1190,7 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt
index 6b5afc40cc..ec5feb4a85 100644
--- a/src/lang/unfinished/frisian.txt
+++ b/src/lang/unfinished/frisian.txt
@@ -2200,6 +2200,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Bou in t
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wikselje tusken bou en fuortheljen fan dyken
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Wikselje tusken bou en fuortheljen fan tramwei
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Autodepot rjochting
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Kies rjochting foar autodepot
@@ -3087,8 +3088,11 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nije elektryske
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nije Maglev Treinen
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nije Weinen
+
+############ range for vehicle availability starts
STR_BUY_VEHICLE_SHIP_CAPTION :Nije Skepen
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nije fleantugen
+############ range for vehicle availability ends
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Snelheid: {GOLD}{VELOCITY}{BLACK} Kracht: {GOLD}{POWER}
STR_PURCHASE_INFO_SPEED :{BLACK}Snelheid: {GOLD}{VELOCITY}
@@ -3198,13 +3202,16 @@ STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Klik om
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Berjocht fan fiertúgenfabrikant
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Wy hawwe sakrekt in nije {STRING} ûntwurpen - bisto ynteressearre yn in jier lang eksklusyf gebrûk fan dit fiertúch, sadat wy kinne sjen oft it goed wurket foardat wy it wrâldwiid beskikber meitsjen?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotyf
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :wein
-STR_ENGINE_PREVIEW_AIRCRAFT :fleantúch
-STR_ENGINE_PREVIEW_SHIP :skip
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail lokomotyf
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglevlokomotyf
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :wein
+
+STR_ENGINE_PREVIEW_AIRCRAFT :fleantúch
+STR_ENGINE_PREVIEW_SHIP :skip
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Underhâldskosten: {CURRENCY_LONG}/jr{}Kapasiteit: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Maks. Faasje: {VELOCITY}{}Kapasiteit: {CARGO_LONG}{}Underhâldskosten: {CURRENCY_LONG}/jr
@@ -3228,6 +3235,7 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail weinen
STR_REPLACE_MAGLEV_VEHICLES :Maglev treinen
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt
index f964e28eab..a5a4dd82da 100644
--- a/src/lang/unfinished/ido.txt
+++ b/src/lang/unfinished/ido.txt
@@ -701,6 +701,7 @@ STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Aceptas:
# Road construction toolbar
+
# Road depot construction window
# Road vehicle station construction window
@@ -976,6 +977,9 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Negrupigita aer
# Build vehicle window
+############ range for vehicle availability starts
+############ range for vehicle availability ends
+
@@ -1015,6 +1019,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Engine preview window
+
+
+
# Autoreplace window
STR_REPLACE_VEHICLE_TRAIN :Treno
STR_REPLACE_VEHICLE_ROAD_VEHICLE :Voy-vehilo
@@ -1027,6 +1034,7 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Aeronavo
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt
index dc54d04e89..0db7b504bd 100644
--- a/src/lang/unfinished/macedonian.txt
+++ b/src/lang/unfinished/macedonian.txt
@@ -1088,6 +1088,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Изгр
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}Изгради трамвајски мост
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Изгради трамвајски тунел
+
# Road depot construction window
# Road vehicle station construction window
@@ -1449,8 +1450,11 @@ STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Испрати
# Build vehicle window
+
+############ range for vehicle availability starts
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Шински возила
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Нов авион
+############ range for vehicle availability ends
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Опсег: {GOLD}{COMMA} плочки
@@ -1503,6 +1507,9 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Цент
# Engine preview window
+
+
+
# Autoreplace window
STR_REPLACE_VEHICLE_TRAIN :Воз
STR_REPLACE_VEHICLE_ROAD_VEHICLE :Патно возило
@@ -1515,6 +1522,7 @@ STR_REPLACE_VEHICLE_AIRCRAFT :Летало
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/maltese.txt b/src/lang/unfinished/maltese.txt
index 343ab042a8..7691a8f9ed 100644
--- a/src/lang/unfinished/maltese.txt
+++ b/src/lang/unfinished/maltese.txt
@@ -628,6 +628,7 @@ STR_SELECT_BRIDGE_SCENEDIT_INFO :{GOLD}{STRING},
# Road construction toolbar
+
# Road depot construction window
# Road vehicle station construction window
@@ -848,6 +849,9 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN
# Build vehicle window
+############ range for vehicle availability starts
+############ range for vehicle availability ends
+
@@ -887,6 +891,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Engine preview window
+
+
+
# Autoreplace window
@@ -895,6 +902,7 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/marathi.txt b/src/lang/unfinished/marathi.txt
index fdd7d99191..9194b6c3ac 100644
--- a/src/lang/unfinished/marathi.txt
+++ b/src/lang/unfinished/marathi.txt
@@ -1031,6 +1031,7 @@ STR_BRIDGE_NAME_WOODEN :लाकडी
# Road construction toolbar
+
# Road depot construction window
# Road vehicle station construction window
@@ -1312,8 +1313,11 @@ STR_GROUP_REMOVE_ALL_VEHICLES :सगळे
# Build vehicle window
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :नवीन रस्त्यावरचे वाहन
+
+############ range for vehicle availability starts
STR_BUY_VEHICLE_SHIP_CAPTION :नवीन जहाज
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :नवीन विमान
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}किंमत: {GOLD}{CURRENCY_LONG}{BLACK} वजन: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}गती: {GOLD}{VELOCITY}{BLACK} शक्ती: {GOLD}{POWER}
@@ -1356,6 +1360,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Engine preview window
+
+
+
STR_ENGINE_PREVIEW_AIRCRAFT :विमान
STR_ENGINE_PREVIEW_SHIP :जहाज
@@ -1370,6 +1377,7 @@ STR_REPLACE_VEHICLE_AIRCRAFT :विमान
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt
index 7595fddb77..d500ee4ce7 100644
--- a/src/lang/unfinished/persian.txt
+++ b/src/lang/unfinished/persian.txt
@@ -2101,6 +2101,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}ساخت
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK} تغییر بین ساخت/حذف جاده
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}تغییر حالت بین ساخت/جذف برای ساخت و ساز تراموا
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}جهت گاراژ خودروی جاده ای
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}جهت گاراژ خودرو جاده ای را انتخاب نمایید
@@ -2941,9 +2942,12 @@ STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :قطار جدی
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :قطار جدید مونوریل
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :قطار جدید ریل مغناطیسی
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :وسایل ریل خط آهن
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :ماشین های جدید
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :وسایل ریل خط آهن
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :هواپیمای جدید
+############ range for vehicle availability ends
STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}سرعت در اقیانوس: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_SPEED_CANAL :{BLACK}سرعت در کانال/رودخانه: {GOLD}{VELOCITY}
@@ -3034,13 +3038,16 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}نمای
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}پیغام از سازنده ی وسیله نقلیه
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}ما به تازگی {STRING} را طراحی کرده ایم- آیا مایلید در یک سال اولان را به شگل انحصاری مورد تست قرار دهید تا نحوه عملکرد وسیله را قبل از عرضه ی جهانی مورد بررسی قرار دهیم؟
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :لوکوموتیو راه آهن
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :ماشین جاده ای
-STR_ENGINE_PREVIEW_AIRCRAFT :هواپیما
-STR_ENGINE_PREVIEW_SHIP :کشتی
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :لوکوموتیو مونوریل
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :لوکوموتیو ریل مغناطیسی
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :ماشین جاده ای
+
+STR_ENGINE_PREVIEW_AIRCRAFT :هواپیما
+STR_ENGINE_PREVIEW_SHIP :کشتی
+
# Autoreplace window
STR_REPLACE_VEHICLE_TRAIN :قطار
@@ -3060,6 +3067,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}برای
STR_REPLACE_ELRAIL_VEHICLES :وسایل نقلیه ریلی برقی
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt
index 3973454b16..d15a9785f8 100644
--- a/src/lang/unfinished/urdu.txt
+++ b/src/lang/unfinished/urdu.txt
@@ -1973,6 +1973,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}ٹرام
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}سڑک کی تعمیر / خاتمے میں تدویم کریں
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}ٹرام وے کی تعمیر / خاتمے میں تدویم کریں
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}گاڑیوں کے ڈپو کا رخ
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}گاڑیوں کے ڈپو کا رخ منتخب کریں
@@ -2344,7 +2345,10 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}گروپ
# Build vehicle window
+
+############ range for vehicle availability starts
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :نیا طیارہ
+############ range for vehicle availability ends
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}پہنچ: {GOLD}{COMMA} ٹائلیں
@@ -2401,6 +2405,9 @@ STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG}
# Engine preview window
+
+
+
# Autoreplace window
STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}استعمالکردہ گاڑیاں
@@ -2411,6 +2418,7 @@ STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}میس
+
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt
index 0beeb0db98..e4d8c65085 100644
--- a/src/lang/vietnamese.txt
+++ b/src/lang/vietnamese.txt
@@ -2410,6 +2410,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Xây h
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Bật chế độ xây/phá đường bộ
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Bật chế độ xây/phá đường xe điện
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Hướng Của Xưởng Ôtô
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Chọn hướng đặt xưởng xe ôtô
@@ -3419,10 +3420,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Tàu Điện M
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Tàu Đơn Ray Mới
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Tàu Đệm Từ Mới
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Tàu Hỏa Mới
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Xe Cộ Mới
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Tàu Hỏa Mới
STR_BUY_VEHICLE_SHIP_CAPTION :Tàu Mới
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Máy Bay Mới
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Chi phí: {GOLD}{CURRENCY_LONG}{BLACK} Tải trọng: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Tốc độ: {GOLD}{VELOCITY}{BLACK} Công suất: {GOLD}{POWER}
@@ -3571,13 +3575,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Bạn
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Thông cáo từ nhà sản xuất phương tiện vận tải
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Chúng tôi vừa thiết kế một {STRING} mới - bạn có muốn mua nó trước khi chúng tôi hoàn thiện 1 năm, để chúng tôi đánh giá nó trước khi bán rộng rãi?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :đầu máy tầu hoả
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :ôtô
-STR_ENGINE_PREVIEW_AIRCRAFT :máy bay
-STR_ENGINE_PREVIEW_SHIP :tàu thuỷ
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :đầu máy ray đơn
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :đầu máy đệm từ
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :ôtô
+
+STR_ENGINE_PREVIEW_AIRCRAFT :máy bay
+STR_ENGINE_PREVIEW_SHIP :tàu thuỷ
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Giá thành: {CURRENCY_LONG} Tải trọng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER}{}Chi phí hoạt động: {CURRENCY_LONG}/năm{}Sức chứa: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Giá: {CURRENCY_LONG} Nặng: {WEIGHT_SHORT}{}Tốc độ: {VELOCITY} Công suất: {POWER} Max. T.E.: {6:FORCE}{}Giá vận hành: {4:CURRENCY_LONG}/yr{}Năng suất: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_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
@@ -3623,6 +3630,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Đầu máy/toa
STR_REPLACE_MONORAIL_VEHICLES :Đầu máy ray đơn
STR_REPLACE_MAGLEV_VEHICLES :Đầu máy đệm từ
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Xoá bỏ toa xe: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Tự động thay thế sẽ giữ nguyên độ dài đoàn tàu bằng cách bỏ bớt toa xe (bỏ từ phía đầu), nếu như việc thay thế đầu máy làm đoàn tàu dài hơn.
@@ -4274,7 +4282,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... đâ
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... đường quay mặt sai hướng
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... đi qua điểm dừng không thể đi qua góc
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... đi qua điểm dừng không thể có ngã rẽ
-STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... đường 1 chiều hoặc bị chặn
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Không thể xoá bỏ một phần của ga...
diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt
index d7c83eca99..53e16db919 100644
--- a/src/lang/welsh.txt
+++ b/src/lang/welsh.txt
@@ -2396,6 +2396,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Adeiladu
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}toglu adeiladu/clirio ar gyfer adeiladu ffyrdd
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Toglu adeiladu/dileu ar gyfer adeiladu tramffordd
+
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Cyfeiriad Depo Ffordd
STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Dewiswch gyfeiriad depo cerbyd ffordd
@@ -3360,10 +3361,13 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Cerbydau Rheilf
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Cerbydau Monoreilffordd Newydd
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Cerbydau Maglef Newydd
-STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Cerbydau Rheilffordd Newydd
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Cerbydau Ffordd Newydd
+
+############ range for vehicle availability starts
+STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Cerbydau Rheilffordd Newydd
STR_BUY_VEHICLE_SHIP_CAPTION :Llongau Newydd
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Awyrennau Newydd
+############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Pwysau: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Cyflymder: {GOLD}{VELOCITY}{BLACK} Pŵer: {GOLD}{POWER}
@@ -3512,13 +3516,16 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Rydych
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Neges gan wneuthurwr cerbydau
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Rydyn ni newydd gynllunio {STRING} newydd - a fyddai gennych chi ddiddordeb mewn cael defnydd cyfyngol o'r cerbyd hwn am flwyddyn er mwyn i ni gael profi ei berfformiad cyn y bydd ar gael i bawb?
+
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :trên
-STR_ENGINE_PREVIEW_ROAD_VEHICLE :cerbyd ffordd
-STR_ENGINE_PREVIEW_AIRCRAFT :awyren
-STR_ENGINE_PREVIEW_SHIP :llong
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :trên monoreilffordd
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :trên maglef
+STR_ENGINE_PREVIEW_ROAD_VEHICLE :cerbyd ffordd
+
+STR_ENGINE_PREVIEW_AIRCRAFT :awyren
+STR_ENGINE_PREVIEW_SHIP :llong
+
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Côst: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER}{}Côst Rhedeg: {CURRENCY_LONG}/bl{}Gallu cludo: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Pwysau: {WEIGHT_SHORT}{}Cyflymder: {VELOCITY} Pŵer: {POWER} Grym Uchaf: {6:FORCE}{}Cost Rhedeg: {4:CURRENCY_LONG}/bl{}Cynhwysedd: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Cyflym. Uchaf: {VELOCITY}{}Cynhwysedd: {CARGO_LONG}{}Cost Rhedeg: {CURRENCY_LONG}/bl
@@ -3564,6 +3571,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Cerbydau Rheilf
STR_REPLACE_MONORAIL_VEHICLES :Cerbydau Monoreilffordd
STR_REPLACE_MAGLEV_VEHICLES :Cerbydau Maglef
+
STR_REPLACE_REMOVE_WAGON :{BLACK}Tynnu wagenni: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Gwneud i awtoddisodli gadw hyd y trên yr un peth drwy dynnu wagenni (gan ddechrau yn y blaen), os byddai newid yr injan yn gwneud y trên yn hirach
diff --git a/src/music/midifile.cpp b/src/music/midifile.cpp
index 3717ad5d3d..0259181b34 100644
--- a/src/music/midifile.cpp
+++ b/src/music/midifile.cpp
@@ -113,7 +113,7 @@ public:
/**
* Read bytes into a buffer.
- * @param[out] dest buffer to copy info
+ * @param[out] dest buffer to copy into
* @param length number of bytes to read
* @return true if the requested number of bytes were available
*/
@@ -126,6 +126,21 @@ public:
return true;
}
+ /**
+ * Read bytes into a MidiFile::DataBlock.
+ * @param[out] dest DataBlock to copy into
+ * @param length number of bytes to read
+ * @return true if the requested number of bytes were available
+ */
+ bool ReadDataBlock(MidiFile::DataBlock *dest, size_t length)
+ {
+ if (this->IsEnd()) return false;
+ if (this->buflen - this->pos < length) return false;
+ dest->data.insert(dest->data.end(), this->buf + this->pos, this->buf + this->pos + length);
+ this->pos += length;
+ return true;
+ }
+
/**
* Skip over a number of bytes in the buffer.
* @param count number of bytes to skip over
@@ -208,7 +223,6 @@ static bool ReadTrackChunk(FILE *file, MidiFile &target)
/* Regular channel message */
last_status = status;
running_status:
- byte *data;
switch (status & 0xF0) {
case MIDIST_NOTEOFF:
case MIDIST_NOTEON:
@@ -216,20 +230,19 @@ static bool ReadTrackChunk(FILE *file, MidiFile &target)
case MIDIST_CONTROLLER:
case MIDIST_PITCHBEND:
/* 3 byte messages */
- data = grow(block->data, 3);
- data[0] = status;
- if (!chunk.ReadBuffer(&data[1], 2)) {
+ block->data.push_back(status);
+ if (!chunk.ReadDataBlock(block, 2)) {
return false;
}
break;
case MIDIST_PROGCHG:
case MIDIST_CHANPRESS:
/* 2 byte messages */
- data = grow(block->data, 2);
- data[0] = status;
- if (!chunk.ReadByte(data[1])) {
+ block->data.push_back(status);
+ if (!chunk.ReadByte(buf[0])) {
return false;
}
+ block->data.push_back(buf[0]);
break;
default:
NOT_REACHED();
@@ -266,12 +279,11 @@ static bool ReadTrackChunk(FILE *file, MidiFile &target)
if (!chunk.ReadVariableLength(length)) {
return false;
}
- byte *data = grow(block->data, length + 1);
- data[0] = 0xF0;
- if (!chunk.ReadBuffer(data + 1, length)) {
+ block->data.push_back(0xF0);
+ if (!chunk.ReadDataBlock(block, length)) {
return false;
}
- if (data[length] != 0xF7) {
+ if (block->data.back() != 0xF7) {
/* Engage Casio weirdo mode - convert to normal sysex */
running_sysex = true;
block->data.push_back(0xF7);
@@ -284,8 +296,7 @@ static bool ReadTrackChunk(FILE *file, MidiFile &target)
if (!chunk.ReadVariableLength(length)) {
return false;
}
- byte *data = grow(block->data, length);
- if (!chunk.ReadBuffer(data, length)) {
+ if (!chunk.ReadDataBlock(block, length)) {
return false;
}
} else {
@@ -335,8 +346,7 @@ static bool FixupMidiData(MidiFile &target)
merged_blocks.push_back(block);
last_ticktime = block.ticktime;
} else {
- byte *datadest = grow(merged_blocks.back().data, block.data.size());
- memcpy(datadest, block.data.data(), block.data.size());
+ merged_blocks.back().data.insert(merged_blocks.back().data.end(), block.data.begin(), block.data.end());
}
}
std::swap(merged_blocks, target.blocks);
diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp
index 2a4fdd761e..b5a7897f62 100644
--- a/src/network/network_content.cpp
+++ b/src/network/network_content.cpp
@@ -581,7 +581,7 @@ void ClientNetworkContentSocketHandler::OnReceiveData(const char *data, size_t l
if (this->http_response_index == -1) {
if (data != nullptr) {
/* Append the rest of the response. */
- memcpy(grow(this->http_response, (uint)length), data, length);
+ this->http_response.insert(this->http_response.end(), data, data + length);
return;
} else {
/* Make sure the response is properly terminated. */
diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp
index 7347d7443e..93b351f38f 100644
--- a/src/newgrf_debug_gui.cpp
+++ b/src/newgrf_debug_gui.cpp
@@ -1010,7 +1010,7 @@ struct SpriteAlignerWindow : Window {
this->offs_start_map.Insert(this->current_sprite, XyOffs(spr->x_offs, spr->y_offs));
}
switch (widget) {
- /* Move ten units at a time if ctrl is pressed. */
+ /* Move eight units at a time if ctrl is pressed. */
case WID_SA_UP: spr->y_offs -= _ctrl_pressed ? 8 : 1; break;
case WID_SA_DOWN: spr->y_offs += _ctrl_pressed ? 8 : 1; break;
case WID_SA_LEFT: spr->x_offs -= _ctrl_pressed ? 8 : 1; break;
@@ -1024,7 +1024,7 @@ struct SpriteAlignerWindow : Window {
case WID_SA_RESET_REL:
/* Reset the starting offsets for the current sprite. */
- this->offs_start_map.erase(this->offs_start_map.begin() + this->current_sprite);
+ this->offs_start_map.Erase(this->current_sprite);
this->SetDirty();
break;
}
diff --git a/src/newgrf_sound.cpp b/src/newgrf_sound.cpp
index a25c3abcc2..0756d798f7 100644
--- a/src/newgrf_sound.cpp
+++ b/src/newgrf_sound.cpp
@@ -32,9 +32,9 @@ static std::vector _sounds;
*/
SoundEntry *AllocateSound(uint num)
{
- SoundEntry *sound = grow(_sounds, num);
- MemSetT(sound, 0, num);
- return sound;
+ size_t pos = _sounds.size();
+ _sounds.insert(_sounds.end(), num, SoundEntry());
+ return &_sounds[pos];
}
diff --git a/src/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp
index 8c4e11d3fb..c91803089e 100644
--- a/src/os/windows/string_uniscribe.cpp
+++ b/src/os/windows/string_uniscribe.cpp
@@ -148,6 +148,8 @@ void UniscribeResetScriptCache(FontSize size)
/** Load the matching native Windows font. */
static HFONT HFontFromFont(Font *font)
{
+ if (font->fc->GetOSHandle() != nullptr) return CreateFontIndirect((PLOGFONT)font->fc->GetOSHandle());
+
LOGFONT logfont;
ZeroMemory(&logfont, sizeof(LOGFONT));
logfont.lfHeight = font->fc->GetHeight();
@@ -195,15 +197,19 @@ static bool UniscribeShapeRun(const UniscribeParagraphLayoutFactory::CharType *b
}
for (int i = 0; i < range.len; i++) {
if (buff[range.pos + i] >= SCC_SPRITE_START && buff[range.pos + i] <= SCC_SPRITE_END) {
- range.ft_glyphs[range.char_to_glyph[i]] = range.font->fc->MapCharToGlyph(buff[range.pos + i]);
- range.offsets[range.char_to_glyph[i]].dv = range.font->fc->GetAscender() - range.font->fc->GetGlyph(range.ft_glyphs[range.char_to_glyph[i]])->height - 1; // Align sprite glyphs to font baseline.
+ auto pos = range.char_to_glyph[i];
+ range.ft_glyphs[pos] = range.font->fc->MapCharToGlyph(buff[range.pos + i]);
+ range.offsets[pos].dv = range.font->fc->GetAscender() - range.font->fc->GetGlyph(range.ft_glyphs[pos])->height - 1; // Align sprite glyphs to font baseline.
+ range.advances[pos] = range.font->fc->GetGlyphWidth(range.ft_glyphs[pos]);
}
}
- /* FreeType and GDI/Uniscribe seems to occasionally disagree over the width of a glyph. */
range.total_advance = 0;
for (size_t i = 0; i < range.advances.size(); i++) {
+#ifdef WITH_FREETYPE
+ /* FreeType and GDI/Uniscribe seems to occasionally disagree over the width of a glyph. */
if (range.advances[i] > 0 && range.ft_glyphs[i] != 0xFFFF) range.advances[i] = range.font->fc->GetGlyphWidth(range.ft_glyphs[i]);
+#endif
range.total_advance += range.advances[i];
}
break;
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index 2ba8707433..fce9a23f6f 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -85,8 +85,8 @@ void ResolveRoadTypeGUISprites(RoadTypeInfo *rti)
{
SpriteID cursors_base = GetCustomRoadSprite(rti, INVALID_TILE, ROTSG_CURSORS);
if (cursors_base != 0) {
- rti->gui_sprites.build_x_road = cursors_base + 0;
- rti->gui_sprites.build_y_road = cursors_base + 1;
+ rti->gui_sprites.build_y_road = cursors_base + 0;
+ rti->gui_sprites.build_x_road = cursors_base + 1;
rti->gui_sprites.auto_road = cursors_base + 2;
rti->gui_sprites.build_depot = cursors_base + 3;
rti->gui_sprites.build_tunnel = cursors_base + 4;
@@ -1431,7 +1431,7 @@ static CommandCost ClearTile_Road(TileIndex tile, DoCommandFlag flags)
/* Must iterate over the roadtypes in a reverse manner because
* tram tracks must be removed before the road bits. */
for (RoadTramType rtt : { RTT_TRAM, RTT_ROAD }) {
- if (GetRoadType(tile, rtt) == INVALID_ROADTYPE) continue;
+ if (!MayHaveRoad(tile) || GetRoadType(tile, rtt) == INVALID_ROADTYPE) continue;
CommandCost tmp_ret = RemoveRoad(tile, flags, GetCrossingRoadBits(tile), rtt, false);
if (tmp_ret.Failed()) return tmp_ret;
diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h
index 04aa762e86..9710235ad3 100644
--- a/src/saveload/saveload.h
+++ b/src/saveload/saveload.h
@@ -303,6 +303,8 @@ enum SaveLoadVersion : uint16 {
SLV_TREES_WATER_CLASS, ///< 213 PR#7405 WaterClass update for tree tiles.
SLV_ROAD_TYPES, ///< 214 PR#6811 NewGRF road types.
+ SLV_SCRIPT_MEMLIMIT, ///< 215 PR#7516 Limit on AI/GS memory consumption.
+
SL_MAX_VERSION, ///< Highest possible saveload version
SL_SPRING_2013_v2_0_102 = 220,
diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq
index 19bf111121..aee0bd6c13 100644
--- a/src/script/api/game/game_window.hpp.sq
+++ b/src/script/api/game/game_window.hpp.sq
@@ -470,6 +470,8 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_NAMES, "WID_FRW_TIMES_NAMES");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_CURRENT, "WID_FRW_TIMES_CURRENT");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_AVERAGE, "WID_FRW_TIMES_AVERAGE");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_ALLOCSIZE, "WID_FRW_ALLOCSIZE");
+ SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_SEL_MEMORY, "WID_FRW_SEL_MEMORY");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_SCROLLBAR, "WID_FRW_SCROLLBAR");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_CAPTION, "WID_FGW_CAPTION");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_GRAPH, "WID_FGW_GRAPH");
diff --git a/src/script/api/script_object.cpp b/src/script/api/script_object.cpp
index c6ff41cf3e..3303c3df2a 100644
--- a/src/script/api/script_object.cpp
+++ b/src/script/api/script_object.cpp
@@ -40,7 +40,7 @@ static ScriptStorage *GetStorage()
/* static */ ScriptInstance *ScriptObject::ActiveInstance::active = nullptr;
-ScriptObject::ActiveInstance::ActiveInstance(ScriptInstance *instance)
+ScriptObject::ActiveInstance::ActiveInstance(ScriptInstance *instance) : alc_scope(instance->engine)
{
this->last_active = ScriptObject::ActiveInstance::active;
ScriptObject::ActiveInstance::active = instance;
diff --git a/src/script/api/script_object.hpp b/src/script/api/script_object.hpp
index 6725f0ed16..55dd5e39b7 100644
--- a/src/script/api/script_object.hpp
+++ b/src/script/api/script_object.hpp
@@ -18,6 +18,7 @@
#include "script_types.hpp"
#include "../script_suspend.hpp"
+#include "../squirrel.hpp"
/**
* The callback function for Mode-classes.
@@ -48,6 +49,7 @@ protected:
~ActiveInstance();
private:
ScriptInstance *last_active; ///< The active instance before we go instantiated.
+ ScriptAllocatorScope alc_scope; ///< Keep the correct allocator for the script instance activated
static ScriptInstance *active; ///< The global current active instance.
};
diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp
index dcbb5d9110..a4c1a92ba0 100644
--- a/src/script/api/script_window.hpp
+++ b/src/script/api/script_window.hpp
@@ -1333,6 +1333,8 @@ public:
WID_FRW_TIMES_NAMES = ::WID_FRW_TIMES_NAMES,
WID_FRW_TIMES_CURRENT = ::WID_FRW_TIMES_CURRENT,
WID_FRW_TIMES_AVERAGE = ::WID_FRW_TIMES_AVERAGE,
+ WID_FRW_ALLOCSIZE = ::WID_FRW_ALLOCSIZE,
+ WID_FRW_SEL_MEMORY = ::WID_FRW_SEL_MEMORY,
WID_FRW_SCROLLBAR = ::WID_FRW_SCROLLBAR,
};
diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp
index 336d3366ae..5734c2c83b 100644
--- a/src/script/script_instance.cpp
+++ b/src/script/script_instance.cpp
@@ -95,7 +95,7 @@ void ScriptInstance::Initialize(const char *main_script, const char *instance_na
return;
}
ScriptObject::SetAllowDoCommand(true);
- } catch (Script_FatalError e) {
+ } catch (Script_FatalError &e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -153,6 +153,8 @@ void ScriptInstance::Died()
DEBUG(script, 0, "The script died unexpectedly.");
this->is_dead = true;
+ this->last_allocated_memory = this->GetAllocatedMemory(); // Update cache
+
if (this->instance != nullptr) this->engine->ReleaseObject(this->instance);
delete this->engine;
this->instance = nullptr;
@@ -186,7 +188,7 @@ void ScriptInstance::GameLoop()
}
try {
this->callback(this);
- } catch (Script_Suspend e) {
+ } catch (Script_Suspend &e) {
this->suspend = e.GetSuspendTime();
this->callback = e.GetSuspendCallback();
@@ -216,10 +218,10 @@ void ScriptInstance::GameLoop()
ScriptObject::SetAllowDoCommand(true);
/* Start the script by calling Start() */
if (!this->engine->CallMethod(*this->instance, "Start", _settings_game.script.script_max_opcode_till_suspend) || !this->engine->IsSuspended()) this->Died();
- } catch (Script_Suspend e) {
+ } catch (Script_Suspend &e) {
this->suspend = e.GetSuspendTime();
this->callback = e.GetSuspendCallback();
- } catch (Script_FatalError e) {
+ } catch (Script_FatalError &e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -237,10 +239,10 @@ void ScriptInstance::GameLoop()
/* Continue the VM */
try {
if (!this->engine->Resume(_settings_game.script.script_max_opcode_till_suspend)) this->Died();
- } catch (Script_Suspend e) {
+ } catch (Script_Suspend &e) {
this->suspend = e.GetSuspendTime();
this->callback = e.GetSuspendCallback();
- } catch (Script_FatalError e) {
+ } catch (Script_FatalError &e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -494,7 +496,7 @@ void ScriptInstance::Save()
this->engine->CrashOccurred();
return;
}
- } catch (Script_FatalError e) {
+ } catch (Script_FatalError &e) {
/* If we don't mark the script as dead here cleaning up the squirrel
* stack could throw Script_FatalError again. */
this->is_dead = true;
@@ -698,3 +700,9 @@ void ScriptInstance::InsertEvent(class ScriptEvent *event)
ScriptEventController::InsertEvent(event);
}
+
+size_t ScriptInstance::GetAllocatedMemory() const
+{
+ if (this->engine == nullptr) return this->last_allocated_memory;
+ return this->engine->GetAllocatedMemory();
+}
diff --git a/src/script/script_instance.hpp b/src/script/script_instance.hpp
index 56e830367c..653ec38840 100644
--- a/src/script/script_instance.hpp
+++ b/src/script/script_instance.hpp
@@ -198,6 +198,8 @@ public:
*/
bool IsSleeping() { return this->suspend != 0; }
+ size_t GetAllocatedMemory() const;
+
protected:
class Squirrel *engine; ///< A wrapper around the squirrel vm.
const char *versionAPI; ///< Current API used by this script.
@@ -241,6 +243,7 @@ private:
int suspend; ///< The amount of ticks to suspend this script before it's allowed to continue.
bool is_paused; ///< Is the script paused? (a paused script will not be executed until unpaused)
Script_SuspendCallbackProc *callback; ///< Callback that should be called in the next tick the script runs.
+ size_t last_allocated_memory; ///< Last known allocated memory value (for display for crashed scripts)
/**
* Call the script Load function if it exists and data was loaded
diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp
index 2812ef65ed..c4205bbc45 100644
--- a/src/script/script_scanner.cpp
+++ b/src/script/script_scanner.cpp
@@ -17,6 +17,7 @@
#include "../script/squirrel.hpp"
#include "script_scanner.hpp"
#include "script_info.hpp"
+#include "script_fatalerror.hpp"
#include "../network/network_content.h"
#include "../3rdparty/md5/md5.h"
@@ -52,8 +53,12 @@ bool ScriptScanner::AddFile(const char *filename, size_t basepath_length, const
if (!FioCheckFileExists(filename, this->subdir) || !FioCheckFileExists(this->main_script, this->subdir)) return false;
this->ResetEngine();
- this->engine->LoadScript(filename);
-
+ try {
+ this->engine->LoadScript(filename);
+ } catch (Script_FatalError &e) {
+ DEBUG(script, 0, "Fatal error '%s' when trying to load the script '%s'.", e.GetErrorMessage(), filename);
+ return false;
+ }
return true;
}
diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp
index fd0478bb52..275a89c74c 100644
--- a/src/script/squirrel.cpp
+++ b/src/script/squirrel.cpp
@@ -10,17 +10,128 @@
/** @file squirrel.cpp the implementation of the Squirrel class. It handles all Squirrel-stuff and gives a nice API back to work with. */
#include
+#include