From 3469a2a4452099e4f7e8441693472d4c7333e1f3 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 2 May 2019 19:45:47 +0200 Subject: [PATCH 01/59] Update: Translations from eints dutch: 27 changes by JanWillem french: 29 changes by glx hungarian: 3 changes by Brumi korean: 71 changes by telk5093 --- src/lang/afrikaans.txt | 16 +++- src/lang/arabic_egypt.txt | 16 +++- src/lang/basque.txt | 16 +++- src/lang/belarusian.txt | 28 +++--- src/lang/brazilian_portuguese.txt | 16 +++- src/lang/bulgarian.txt | 16 +++- src/lang/catalan.txt | 16 +++- src/lang/croatian.txt | 16 +++- src/lang/czech.txt | 16 +++- src/lang/danish.txt | 16 +++- src/lang/dutch.txt | 45 ++++++++-- src/lang/english_AU.txt | 16 +++- src/lang/english_US.txt | 16 +++- src/lang/esperanto.txt | 16 +++- src/lang/estonian.txt | 16 +++- src/lang/faroese.txt | 16 +++- src/lang/finnish.txt | 16 +++- src/lang/french.txt | 46 ++++++++-- src/lang/gaelic.txt | 16 +++- src/lang/galician.txt | 16 +++- src/lang/german.txt | 16 +++- src/lang/greek.txt | 22 +++-- src/lang/hebrew.txt | 16 +++- src/lang/hungarian.txt | 19 ++++- src/lang/icelandic.txt | 16 +++- src/lang/indonesian.txt | 16 +++- src/lang/irish.txt | 16 +++- src/lang/italian.txt | 16 +++- src/lang/japanese.txt | 16 +++- src/lang/korean.txt | 131 ++++++++++++++++++----------- src/lang/latin.txt | 16 +++- src/lang/latvian.txt | 16 +++- src/lang/lithuanian.txt | 52 +++++++----- src/lang/luxembourgish.txt | 16 +++- src/lang/malay.txt | 16 +++- src/lang/norwegian_bokmal.txt | 16 +++- src/lang/norwegian_nynorsk.txt | 16 +++- src/lang/polish.txt | 22 +++-- src/lang/portuguese.txt | 16 +++- src/lang/romanian.txt | 16 +++- src/lang/russian.txt | 22 +++-- src/lang/serbian.txt | 22 +++-- src/lang/simplified_chinese.txt | 16 +++- src/lang/slovak.txt | 16 +++- src/lang/slovenian.txt | 16 +++- src/lang/spanish.txt | 16 +++- src/lang/spanish_MX.txt | 16 +++- src/lang/swedish.txt | 16 +++- src/lang/tamil.txt | 16 +++- src/lang/thai.txt | 16 +++- src/lang/traditional_chinese.txt | 16 +++- src/lang/turkish.txt | 16 +++- src/lang/ukrainian.txt | 16 +++- src/lang/unfinished/chuvash.txt | 8 ++ src/lang/unfinished/frisian.txt | 14 ++- src/lang/unfinished/ido.txt | 8 ++ src/lang/unfinished/macedonian.txt | 8 ++ src/lang/unfinished/maltese.txt | 8 ++ src/lang/unfinished/marathi.txt | 8 ++ src/lang/unfinished/persian.txt | 16 +++- src/lang/unfinished/urdu.txt | 8 ++ src/lang/vietnamese.txt | 16 +++- src/lang/welsh.txt | 16 +++- 63 files changed, 896 insertions(+), 311 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index c253c33370..8340207dc3 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2397,6 +2397,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 @@ -3351,10 +3352,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} @@ -3502,13 +3506,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 @@ -3549,6 +3556,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 0bd31917c3..a2227de0ef 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2036,6 +2036,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 841540c7ea..f6d5cbeb48 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2300,6 +2300,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 @@ -3238,10 +3239,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} @@ -3385,13 +3389,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 @@ -3430,6 +3437,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 5ddd3f8330..9413ccce5f 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2739,6 +2739,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}Выберыце кірунак гаража @@ -3707,10 +3708,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} @@ -3859,18 +3863,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 :монарэйкавы лякаматыў @@ -3878,6 +3874,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}/год @@ -3931,6 +3938,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/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 4b839a5b03..19e7315912 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2414,6 +2414,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 @@ -3417,10 +3418,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} @@ -3569,13 +3573,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 @@ -3621,6 +3628,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 diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 4d3301f2af..a2a43bc6a7 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.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}Ориентация на гараж @@ -3283,10 +3284,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} @@ -3434,13 +3438,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}/год. @@ -3483,6 +3490,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/catalan.txt b/src/lang/catalan.txt index f6c1b3a688..75bd441ea8 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -2431,6 +2431,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. @@ -3460,10 +3461,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} @@ -3613,13 +3617,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 @@ -3665,6 +3672,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 diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 0b161d60ef..aed0d583ea 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2531,6 +2531,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Izgradi 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 + # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Smjer cestovnog spremišta STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Odaberi smjer spremišta cestovnih vozila @@ -3562,10 +3563,13 @@ 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 + +############ range for vehicle availability starts +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nova pružna 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} @@ -3726,13 +3730,16 @@ 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_MONORAIL_LOCOMOTIVE :jednotračna željeznička lokomotiva STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotiva +STR_ENGINE_PREVIEW_ROAD_VEHICLE :cestovno vozilo + +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 @@ -3778,6 +3785,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Električna pru STR_REPLACE_MONORAIL_VEHICLES :Jednotračna vozila STR_REPLACE_MAGLEV_VEHICLES :Željeznička vozila Maglev + 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 diff --git a/src/lang/czech.txt b/src/lang/czech.txt index a2dcd9f03e..b970f6c276 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2492,6 +2492,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Postavit 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ě + # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientace garáže STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Výběr orientace garáže @@ -3477,10 +3478,13 @@ 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 + +############ 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} @@ -3629,16 +3633,19 @@ 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_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_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ě @@ -3684,6 +3691,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrické lok STR_REPLACE_MONORAIL_VEHICLES :Lokomotivy pro monorail STR_REPLACE_MAGLEV_VEHICLES :Lokomotivy Maglev + 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 diff --git a/src/lang/danish.txt b/src/lang/danish.txt index b993b59619..c5045b9d1d 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2432,6 +2432,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. diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index b8da710ec1..d090498fec 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 @@ -2416,7 +2418,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. @@ -2434,6 +2436,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 @@ -2618,8 +2625,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 @@ -3359,6 +3369,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: @@ -3466,10 +3477,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} @@ -3630,13 +3646,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 @@ -3674,14 +3695,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 @@ -4040,7 +4066,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 @@ -4405,6 +4431,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... @@ -4424,6 +4451,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_AU.txt b/src/lang/english_AU.txt index 50a35eee38..f20c10058f 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2371,6 +2371,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 @@ -3317,10 +3318,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} @@ -3456,13 +3460,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 @@ -3499,6 +3506,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 3bf1874872..a5744673e4 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2432,6 +2432,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Build st 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 + # 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 @@ -3463,10 +3464,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_COST_REFIT_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} (Refit Cost: {GOLD}{CURRENCY_LONG}{BLACK}) Weight: {GOLD}{WEIGHT_SHORT} @@ -3627,13 +3631,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 :railroad 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 @@ -3679,6 +3686,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Electrified Rai STR_REPLACE_MONORAIL_VEHICLES :Monorail Vehicles STR_REPLACE_MAGLEV_VEHICLES :Maglev Vehicles + 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 diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 2ff87d0347..b7f657523c 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2001,6 +2001,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 44abe21965..68ecd43d3e 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -2459,6 +2459,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 @@ -3429,10 +3430,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} @@ -3580,13 +3584,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 @@ -3630,6 +3637,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. diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 9f288edb6f..890f085fca 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2163,6 +2163,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 c9d86cd791..83a60edddd 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2435,6 +2435,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Rakenna 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ä + # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Autovarikon suunta STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}Valitse autovarikon suunta @@ -3466,10 +3467,13 @@ 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 + +############ range for vehicle availability starts +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Uudet junat 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} @@ -3630,13 +3634,16 @@ 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_MONORAIL_LOCOMOTIVE :yksiraiteisen veturin STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin +STR_ENGINE_PREVIEW_ROAD_VEHICLE :ajoneuvon + +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 @@ -3682,6 +3689,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Sähköjunat STR_REPLACE_MONORAIL_VEHICLES :Yksiraiteiset STR_REPLACE_MAGLEV_VEHICLES :Maglev-junat + 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 diff --git a/src/lang/french.txt b/src/lang/french.txt index 9a90176f39..9d58338776 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ù* Date: Thu, 2 May 2019 22:17:09 +0200 Subject: [PATCH 02/59] Fix: [AzurePipeline] ${Agent.JobName} content changed (#7556) * Fix: [AzurePipeline] ${Agent.JobName} content changed * Fix: [AzurePipeline] also update commit-checker condition --- azure-pipelines-ci.yml | 14 +++++++----- azure-pipelines/templates/linux-build.yml | 2 +- azure-pipelines/templates/release.yml | 26 +++++++++++++++-------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml index 789f8f6a32..19c185894c 100644 --- a/azure-pipelines-ci.yml +++ b/azure-pipelines-ci.yml @@ -38,10 +38,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 +54,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..0297782f18 100644 --- a/azure-pipelines/templates/release.yml +++ b/azure-pipelines/templates/release.yml @@ -110,14 +110,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-ubuntu-jessie-i386-gcc' + linux-debian-jessie-amd64-gcc: + Tag: 'linux-ubuntu-jessie-amd64-gcc' + linux-debian-stretch-i386-gcc: + Tag: 'linux-ubuntu-stretch-i386-gcc' + linux-debian-stretch-amd64-gcc: + Tag: 'linux-ubuntu-stretch-amd64-gcc' steps: - template: release-fetch-source.yml @@ -125,7 +133,7 @@ jobs: parameters: Image: compile-farm ContainerCommand: '$(Build.BuildNumber)' - Tag: $(Agent.JobName) + Tag: $(Tag) - template: linux-claim-bundles.yml - template: release-bundles.yml From 82989ef076a5e375954bcec65a81ea4fc902ebb3 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sun, 28 Apr 2019 01:24:58 +0100 Subject: [PATCH 03/59] Fix: Clicking on scrollbar 'thumb' moved position up instantly. --- src/window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/window.cpp b/src/window.cpp index 1b73aadf3f..9786459dba 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2414,7 +2414,7 @@ static void HandleScrollbarScrolling(Window *w) } /* Find the item we want to move to and make sure it's inside bounds. */ - int pos = min(max(0, i + _scrollbar_start_pos) * sb->GetCount() / _scrollbar_size, max(0, sb->GetCount() - sb->GetCapacity())); + int pos = min(RoundDivSU(max(0, i + _scrollbar_start_pos) * sb->GetCount(), _scrollbar_size), max(0, sb->GetCount() - sb->GetCapacity())); if (rtl) pos = max(0, sb->GetCount() - sb->GetCapacity() - pos); if (pos != sb->GetPosition()) { sb->SetPosition(pos); From 585c45d6c2963757d4c25a69992f3f9353daf46f Mon Sep 17 00:00:00 2001 From: glx22 Date: Thu, 2 May 2019 23:40:36 +0200 Subject: [PATCH 04/59] Fix 8fc2b48db: [AzurePipeline] copy/paste error (#7557) --- azure-pipelines/templates/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/templates/release.yml b/azure-pipelines/templates/release.yml index 0297782f18..a1438c4a58 100644 --- a/azure-pipelines/templates/release.yml +++ b/azure-pipelines/templates/release.yml @@ -119,13 +119,13 @@ jobs: linux-ubuntu-bionic-amd64-gcc: Tag: 'linux-ubuntu-bionic-amd64-gcc' linux-debian-jessie-i386-gcc: - Tag: 'linux-ubuntu-jessie-i386-gcc' + Tag: 'linux-debian-jessie-i386-gcc' linux-debian-jessie-amd64-gcc: - Tag: 'linux-ubuntu-jessie-amd64-gcc' + Tag: 'linux-debian-jessie-amd64-gcc' linux-debian-stretch-i386-gcc: - Tag: 'linux-ubuntu-stretch-i386-gcc' + Tag: 'linux-debian-stretch-i386-gcc' linux-debian-stretch-amd64-gcc: - Tag: 'linux-ubuntu-stretch-amd64-gcc' + Tag: 'linux-debian-stretch-amd64-gcc' steps: - template: release-fetch-source.yml From d1ef13fc04d378a805711dd256ff696301da1e34 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Fri, 26 Apr 2019 21:34:55 +0200 Subject: [PATCH 05/59] Fix #7481: Just remove oil rig stations right away, don't clean them first --- src/station_cmd.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 0ba824c0d0..1a483d29d2 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -4029,16 +4029,9 @@ void DeleteOilRig(TileIndex tile) MakeWaterKeepingClass(tile, OWNER_NONE); - st->dock_tile = INVALID_TILE; - st->airport.Clear(); - st->facilities &= ~(FACIL_AIRPORT | FACIL_DOCK); - st->airport.flags = 0; - - st->rect.AfterRemoveTile(st, tile); - - st->UpdateVirtCoord(); - st->RecomputeCatchment(); - if (!st->IsInUse()) delete st; + /* The oil rig station is not supposed to be shared with anything else */ + assert(st->facilities == (FACIL_AIRPORT | FACIL_DOCK) && st->airport.type == AT_OILRIG); + delete st; } static void ChangeTileOwner_Station(TileIndex tile, Owner old_owner, Owner new_owner) From 6f33cfd05999dd80131e41ca3de905296f1400b3 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 3 May 2019 19:45:46 +0200 Subject: [PATCH 06/59] Update: Translations from eints korean: 536 changes by telk5093 --- src/lang/korean.txt | 1072 +++++++++++++++++++++---------------------- 1 file changed, 536 insertions(+), 536 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 13be9ed699..b79d20e308 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -251,7 +251,7 @@ STR_TOOLTIP_RESIZE :{BLACK}이 창 STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}창 크기를 대형/소형으로 전환합니다. STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}스크롤 바 - 목록을 상/하로 스크롤하세요. STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}스크롤 바 - 목록을 좌/우로 스크롤하세요. -STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}직사각형 모양의 영역에 있는 건물과 땅 등을 부숩니다. CTRL 키를 누른 채로 사용하면 대각선 영역 선택이 가능합니다. SHIFT 키를 누른채로 사용하면 예상 가격을 볼 수 있습니다. +STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}직사각형 모양의 영역에 있는 건물과 땅 등을 부숩니다. CTRL 키를 누른 채로 사용하면 대각선 영역 선택이 가능합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 # Show engines button STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}숨겨진 차량 보기 @@ -364,9 +364,9 @@ 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_PLANT_TREES :{BLACK}나무를 심습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}팻말을 답니다. -STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}오브젝트를 설치합니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. +STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}오브젝트를 설치합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 ############ range for SE file menu starts STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :시나리오 저장 @@ -1840,7 +1840,7 @@ STR_LIVERY_CAPTION :{WHITE}{COMPANY STR_LIVERY_GENERAL_TOOLTIP :{BLACK}기본 색상 선택 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}열차 색상 선택 -STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}자동차/전차 색상 선택 +STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}차량 색상 선택 STR_LIVERY_SHIP_TOOLTIP :{BLACK}선박 색상 선택 STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}항공기 색상 선택 STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}선택한 색상을 1차 색상으로 선택합니다. CTRL+클릭하면 모든 항목에 적용됩니다. @@ -1997,7 +1997,7 @@ STR_NETWORK_START_SERVER_UNADVERTISED :아니요 STR_NETWORK_START_SERVER_ADVERTISED :예 STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM}명 STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}최대 접속자 수: -STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}최대 접속자수를 선택합니다. 모든 슬롯이 차있을 필요는 없습니다. +STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}최대 접속자 수를 선택합니다. 모든 자리가 다 차 있을 필요는 없습니다 STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM}개 STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}최대 회사수: STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}서버의 회사의 수를 제한합니다 @@ -2005,7 +2005,7 @@ STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM}명 STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}최대 관전자수: STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}게임을 관전하는 접속자의 수를 제한합니다 STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}대화 언어: -STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}서버에서 주로 사용하는 언어를 고르십시오. +STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}서버에서 주로 사용하는 언어를 고르십시오 STR_NETWORK_START_SERVER_NEW_GAME_NAME_OSKTITLE :{BLACK}네트워크 게임에서 사용할 이름을 입력하세요 @@ -2053,7 +2053,7 @@ STR_NETWORK_LANG_LATVIAN :라트비아어 STR_NETWORK_GAME_LOBBY_CAPTION :{WHITE}멀티플레이 게임 대기실 STR_NETWORK_GAME_LOBBY_PREPARE_TO_JOIN :{BLACK}참가 준비중: {ORANGE}{STRING} -STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}이 게임에 있는 회사의 목록입니다. 다른 회사에 같이 참가하거나 (빈 슬롯이 있을 경우) 새로운 회사로 시작할 수 있습니다. +STR_NETWORK_GAME_LOBBY_COMPANY_LIST_TOOLTIP :{BLACK}이 게임에 있는 회사의 목록입니다. 다른 회사에 같이 참가하거나, 빈 자리가 있을 경우 새로운 회사로 시작할 수 있습니다 STR_NETWORK_GAME_LOBBY_COMPANY_INFO :{SILVER}회사 정보 STR_NETWORK_GAME_LOBBY_COMPANY_NAME :{SILVER}회사 이름: {WHITE}{STRING} @@ -2070,23 +2070,23 @@ STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}플레 STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}새 회사 STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}새 회사를 만듭니다 STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}게임 관전 -STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}게임에 참여하지 않고 보기만 합니다. +STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}게임에 참여하지 않고 보기만 합니다 STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}회사 참여 -STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}이 회사를 도와 플레이합니다. +STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}이 회사를 도와 플레이합니다 # Network connecting window STR_NETWORK_CONNECTING_CAPTION :{WHITE}접속중... ############ Leave those lines in this order!! -STR_NETWORK_CONNECTING_1 :{BLACK}(1/6) 접속중... +STR_NETWORK_CONNECTING_1 :{BLACK}(1/6) 접속 중... STR_NETWORK_CONNECTING_2 :{BLACK}(2/6) 권한 부여중... STR_NETWORK_CONNECTING_3 :{BLACK}(3/6) 기다리는 중... -STR_NETWORK_CONNECTING_4 :{BLACK}(4/6) 지도 다운로드중... -STR_NETWORK_CONNECTING_5 :{BLACK}(5/6) 데이터 처리중... -STR_NETWORK_CONNECTING_6 :{BLACK}(6/6) 등록중... +STR_NETWORK_CONNECTING_4 :{BLACK}(4/6) 지도 다운로드 중... +STR_NETWORK_CONNECTING_5 :{BLACK}(5/6) 데이터 처리 중... +STR_NETWORK_CONNECTING_6 :{BLACK}(6/6) 등록 중... STR_NETWORK_CONNECTING_SPECIAL_1 :{BLACK}게임 정보 가져오는 중... -STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}회사 정보 가져오는 중.. +STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}회사 정보 가져오는 중... ############ End of leave-in-this-order STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM}명의 접속자가 먼저 기다리고 있습니다 STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}지금까지 {BYTES}를 다운로드하였습니다 @@ -2094,8 +2094,8 @@ STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}접속 끊기 -STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}서버 암호가 걸려있습니다. 암호를 입력하세요. -STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}회사 암호가 걸려있습니다. 암호를 입력하세요. +STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}서버 암호가 걸려있습니다. 암호를 입력하세요 +STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}회사 암호가 걸려있습니다. 암호를 입력하세요 STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}접속자 목록 # Network company list added strings @@ -2115,7 +2115,7 @@ STR_NETWORK_SERVER :서버 STR_NETWORK_CLIENT :접속자 STR_NETWORK_SPECTATORS :관전자 -STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}송금하고 싶은 양을 입력하세요. +STR_NETWORK_GIVE_MONEY_CAPTION :{WHITE}송금하고 싶은 양을 입력하세요 # Network set password STR_COMPANY_PASSWORD_CANCEL :{BLACK}입력한 비밀번호는 저장하지 않기 @@ -2142,31 +2142,31 @@ STR_NETWORK_CHAT_TO_COMPANY :[팀] {STRING} STR_NETWORK_CHAT_CLIENT :[귓속말] {STRING}: {WHITE}{STRING} STR_NETWORK_CHAT_TO_CLIENT :[귓속말] {STRING}에게: {WHITE}{STRING} STR_NETWORK_CHAT_ALL :[모두] {STRING}: {WHITE}{STRING} -STR_NETWORK_CHAT_OSKTITLE :{BLACK}채팅 메시지를 입력하세요. +STR_NETWORK_CHAT_OSKTITLE :{BLACK}채팅 메시지를 입력하세요 # Network messages STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}사용할 수 있는 네트워크 장치가 없습니다. -STR_NETWORK_ERROR_NOSERVER :{WHITE}네트워크 게임이 존재하지 않습니다. -STR_NETWORK_ERROR_NOCONNECTION :{WHITE}서버가 요청을 받지 않습니다. -STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}NewGRF이 맞지 않아서 연결할 수 없습니다 -STR_NETWORK_ERROR_DESYNC :{WHITE}네트워크와 게임을 동기화하는 데 실패하였습니다. -STR_NETWORK_ERROR_LOSTCONNECTION :{WHITE}네트워크와의 연결이 끊어졌습니다. +STR_NETWORK_ERROR_NOSERVER :{WHITE}네트워크 게임이 존재하지 않습니다 +STR_NETWORK_ERROR_NOCONNECTION :{WHITE}서버가 요청을 받지 않습니다 +STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}NewGRF가 맞지 않아서 연결할 수 없습니다 +STR_NETWORK_ERROR_DESYNC :{WHITE}네트워크와 게임을 동기화하는 데 실패하였습니다 +STR_NETWORK_ERROR_LOSTCONNECTION :{WHITE}네트워크와 연결이 끊어졌습니다 STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}게임 저장 파일을 불러올 수 없습니다 STR_NETWORK_ERROR_SERVER_START :{WHITE}서버를 시작할 수 없습니다 STR_NETWORK_ERROR_CLIENT_START :{WHITE}접속할 수 없습니다 -STR_NETWORK_ERROR_TIMEOUT :{WHITE}연결 #{NUM}가 시간초과되었습니다. +STR_NETWORK_ERROR_TIMEOUT :{WHITE}접속자 #{NUM}의 입력 시간이 초과되었습니다 STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}프로토콜 오류가 발생되어 연결이 끊어졌습니다 -STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}이 접속자의 교정내용이 서버의 것과 일치하지 않습니다. +STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}이 접속자의 게임 버전이 서버의 버전과 일치하지 않습니다 STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}잘못된 암호입니다 -STR_NETWORK_ERROR_SERVER_FULL :{WHITE}서버가 가득 찼습니다. -STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}서버 관리자에 의해 접속이 차단되었습니다. -STR_NETWORK_ERROR_KICKED :{WHITE}서버에서 강제로 추방되었습니다. -STR_NETWORK_ERROR_CHEATER :{WHITE}이 서버에서 치트를 사용할 수 없습니다! -STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}서버에 너무 많은 명령을 보냈습니다. -STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}비밀번호 입력 시간을 초과하였습니다. -STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}사용자의 컴퓨터가 서버와의 연결을 유지할 수 있을만큼 빠르지 않습니다. +STR_NETWORK_ERROR_SERVER_FULL :{WHITE}서버에 인원이 가득 찼습니다 +STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}서버 관리자에 의해 접속이 차단되었습니다 +STR_NETWORK_ERROR_KICKED :{WHITE}서버에서 강제로 추방되었습니다 +STR_NETWORK_ERROR_CHEATER :{WHITE}이 서버에서 치트를 사용할 수 없습니다 +STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}서버에 너무 많은 명령을 보냈습니다 +STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}비밀번호 입력 시간을 초과하였습니다 +STR_NETWORK_ERROR_TIMEOUT_COMPUTER :{WHITE}사용자의 컴퓨터가 서버와 연결을 유지할 수 있을 만큼 빠르지 않습니다 STR_NETWORK_ERROR_TIMEOUT_MAP :{WHITE}지도 다운로드 시간을 초과하였습니다 -STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}서버 접속 시간을 초과하였습니다. +STR_NETWORK_ERROR_TIMEOUT_JOIN :{WHITE}서버 접속 시간을 초과하였습니다 ############ Leave those lines in this order!! STR_NETWORK_ERROR_CLIENT_GENERAL :일반 오류 @@ -2209,17 +2209,17 @@ STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :수동 STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :게임 스크립트 ############ End of leave-in-this-order STR_NETWORK_MESSAGE_CLIENT_LEAVING :게임 종료 -STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} 님이 입장하셨습니다. -STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} 님이 입장하셨습니다. ({2:NUM}번 접속자) -STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} 님이 {2:NUM}번 회사에 참여하셨습니다. -STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} 님이 관전을 시작하셨습니다. -STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} 님이 새로운 회사({2:NUM}번)를 창설하셨습니다. -STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} 님이 퇴장하셨습니다. (사유: {2:STRING}) -STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} 님의 이름이 {STRING}(으)로 바뀌었습니다. -STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} 님이 당신에게 {2:CURRENCY_LONG}만큼의 돈을 보내셨습니다. -STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {1:STRING} 님에게 {2:CURRENCY_LONG}만큼의 돈을 보냈습니다. -STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}서버가 게임을 종료하였습니다. -STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}서버 재가동중...{}기다려주세요... +STR_NETWORK_MESSAGE_CLIENT_JOINED :*** {STRING} 님이 입장하셨습니다 +STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} 님이 입장하셨습니다 ({2:NUM}번 접속자) +STR_NETWORK_MESSAGE_CLIENT_COMPANY_JOIN :*** {STRING} 님이 {2:NUM}번 회사에 참여하셨습니다 +STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} 님이 관전을 시작하셨습니다 +STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} 님이 새로운 회사({2:NUM}번)를 창설하셨습니다 +STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} 님이 퇴장하셨습니다 (사유: {2:STRING}) +STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} 님의 이름이 {STRING}(으)로 바뀌었습니다 +STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} 님이 당신에게 {2:CURRENCY_LONG}만큼의 돈을 보내셨습니다 +STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {1:STRING} 님에게 {2:CURRENCY_LONG}만큼의 돈을 보냈습니다 +STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}서버가 게임을 종료하였습니다 +STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}서버가 재시작되고 있습니다...{}기다려주세요... # Content downloading window STR_CONTENT_TITLE :{WHITE}콘텐츠 다운로드 @@ -2229,28 +2229,28 @@ STR_CONTENT_NAME_CAPTION :{BLACK}이름 STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}콘텐츠의 이름 STR_CONTENT_MATRIX_TOOLTIP :{BLACK}항목을 클릭하면 자세히 볼 수 있습니다{}다운로드할 항목을 누르세요 STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}모두 선택 -STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}모든 콘텐츠를 선택합니다. +STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}모든 콘텐츠를 선택합니다 STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}업데이트 선택 STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}업데이트 항목이 있는 컨텐츠를 선택합니다. -STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}모두 선택해제 +STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}모두 선택 해제 STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}모든 콘텐츠의 선택을 해제합니다. STR_CONTENT_SEARCH_EXTERNAL :{BLACK}외부 사이트에서 검색 STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}OpenTTD의 온라인 콘텐츠 서비스에서 다운로드할 수 없는 콘텐츠를 OpenTTD와 관련이 없는 외부 사이트에서 검색합니다. STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}OpenTTD를 종료하는 중입니다! STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}외부 웹사이트에서 콘텐츠를 다운로드할 때에는 그에 대한 약관과 조건이 다양합니다.{}이 콘텐츠를 OpenTTD에 설치하는 방법은 외부 사이트에서 찾아보아야 합니다.{}계속하시겠습니까? STR_CONTENT_FILTER_TITLE :{BLACK}태그/이름 검색: -STR_CONTENT_OPEN_URL :{BLACK}웹사이트 방문 -STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}이 컨텐츠의 웹사이트를 방문합니다. +STR_CONTENT_OPEN_URL :{BLACK}웹 사이트 방문 +STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}이 컨텐츠의 웹 사이트를 방문합니다 STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}다운로드 -STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}선택한 콘텐츠의 다운로드를 시작합니다. +STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}선택한 콘텐츠의 다운로드를 시작합니다 STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER}다운로드 할 파일의 총 용량: {WHITE}{BYTES} STR_CONTENT_DETAIL_TITLE :{SILVER}콘텐츠 정보 -STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}이 콘텐츠를 선택하지 않았습니다. -STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}이 콘텐츠를 다운로드하기 위해 선택하였습니다. -STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}이 콘텐츠는 다른 콘텐츠에서 필요하므로 자동 선택되었습니다. -STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}이미 가지고 있는 콘텐츠입니다. +STR_CONTENT_DETAIL_SUBTITLE_UNSELECTED :{SILVER}이 콘텐츠를 선택하지 않았습니다 +STR_CONTENT_DETAIL_SUBTITLE_SELECTED :{SILVER}이 콘텐츠를 다운로드하기 위해 선택하였습니다 +STR_CONTENT_DETAIL_SUBTITLE_AUTOSELECTED :{SILVER}이 콘텐츠는 다른 콘텐츠에서 필요하므로 자동 선택되었습니다 +STR_CONTENT_DETAIL_SUBTITLE_ALREADY_HERE :{SILVER}이미 가지고 있는 콘텐츠입니다 STR_CONTENT_DETAIL_SUBTITLE_DOES_NOT_EXIST :{SILVER}이 콘텐츠는 알려지지 않은 콘텐츠이고 OpenTTD 게임 상에서 받을 수 없는 것입니다 -STR_CONTENT_DETAIL_UPDATE :{SILVER}이 콘텐츠는 기존에 존재하던 {STRING}{G 0 "을" "를"} 업데이트합니다. +STR_CONTENT_DETAIL_UPDATE :{SILVER}이 콘텐츠는 기존에 존재하던 {STRING}{G 0 "을" "를"} 업데이트합니다 STR_CONTENT_DETAIL_NAME :{SILVER}이름: {WHITE}{STRING} STR_CONTENT_DETAIL_VERSION :{SILVER}버전: {WHITE}{STRING} STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}설명: {WHITE}{STRING} @@ -2260,7 +2260,7 @@ STR_CONTENT_DETAIL_FILESIZE :{SILVER}파일 STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{WHITE}{STRING}{SILVER} 때문에 선택됨 STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}필요한 요소: {WHITE}{STRING} STR_CONTENT_DETAIL_TAGS :{SILVER}태그: {WHITE}{STRING} -STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD가 "zlib" 지원 기능을 포함하지 않고 만들어졌습니다... +STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD가 "zlib" 지원 기능이 없는 상태에서 빌드되었습니다... STR_CONTENT_NO_ZLIB_SUB :{WHITE}... 콘텐츠를 다운로드 할 수 없습니다! # Order of these is important! @@ -2285,27 +2285,27 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} # Content downloading error messages STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}콘텐츠 서버에 접속할 수 없습니다... STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}다운로드 실패... -STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... 접속이 끊겼습니다. -STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... 파일 쓰기가 불가능합니다. +STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... 접속이 끊어졌습니다 +STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... 파일 쓰기가 불가능합니다 STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}다운로드한 파일의 압축을 풀 수 없습니다 -STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}그래픽 없음 +STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}그래픽이 없습니다 STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD를 실행시키기 위해서는 그래픽 파일이 필요하지만 컴퓨터에서 그래픽 파일을 찾을 수 없습니다. OpenTTD를 실행시키기 위해 그래픽을 다운로드 받아서 설치하시겠습니까? -STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}예, 그래픽을 다운로드 받습니다. -STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}아니요, OpenTTD를 종료합니다. +STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}예, 그래픽을 다운로드 받습니다 +STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}아니요, OpenTTD를 종료합니다 # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}투명 설정 -STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}역명판 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}나무 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}집 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}산업시설 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}정거장, 차량기지, 경유지 등과 같은 건물을 보이지 않도록 설정할 수 있습니다. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}다리를 투명하게 합니다. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}등대나 안테나 같은 구조물 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}전차선 보이기/숨기기. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}적재율 투명 전환. 고정하려면 CTRL+클릭하세요. -STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}투명이 아니라 아예 안보이게 할 항목을 선택하세요 +STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}역명판을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_TREES_TOOLTIP :{BLACK}나무를 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}집을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_INDUSTRIES_TOOLTIP :{BLACK}산업시설을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_BUILDINGS_TOOLTIP :{BLACK}정거장, 차량기지, 경유지 등과 같은 건물을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_BRIDGES_TOOLTIP :{BLACK}다리를 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_STRUCTURES_TOOLTIP :{BLACK}등대나 안테나 같은 구조물을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_CATENARY_TOOLTIP :{BLACK}전차선을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}적재율을 보여줄 지 선택합니다. 고정하려면 CTRL+클릭하세요 +STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}반투명 대신 아예 안 보이게 할 항목을 선택하세요 # Linkgraph legend window STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}화물 흐름 범례 @@ -2323,8 +2323,8 @@ STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLA STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}역세권 표시 STR_STATION_BUILD_COVERAGE_OFF :{BLACK}끄기 STR_STATION_BUILD_COVERAGE_ON :{BLACK}켜기 -STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}역세권을 표시하지 않습니다. -STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}역세권을 표시합니다. +STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}역세권을 표시하지 않습니다 +STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}역세권을 표시합니다 STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}받음: {GOLD}{CARGO_LIST} STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}공급: {GOLD}{CARGO_LIST} @@ -2341,15 +2341,15 @@ STR_RAIL_TOOLBAR_ELRAIL_CONSTRUCTION_CAPTION :전기선로 STR_RAIL_TOOLBAR_MONORAIL_CONSTRUCTION_CAPTION :모노레일 건설 STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :자기부상열차 건설 -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}선로를 건설합니다. CTRL 키를 누르면 건설모드/철거모드로 전환합니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}자동건설 모드로 선로를 건설합니다. CTRL 키를 누르면 건설/철거모드를 바꿀 수 있습니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}차량기지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}선로에 경유지를 설치합니다. CTRL 키를 사용하면 같은 이름의 경유지를 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}철도역을 짓습니다. CTRL 키를 사용하면 같은 이름의 역을 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}신호기를 설치합니다. CTRL 키를 누르면 구식/전자식으로 전환합니다.{}선로를 따라 드래그해서 설치할 수 있습니다. CTRL을 누른채 드래그하면 다음 분기점이나 다음 신호기까지 신호기를 설치합니다.{}CTRL 키를 누른 채 클릭하면 신호기 선택 창을 전환합니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}철교를 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}터널을 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}선로, 신호기, 경유지, 역 등의 철도 시설 건설/철거 모드를 켜거나 끌 수 있습니다. CTRL 키를 누르고 있어도 선로에서 경유지와 역을 제거할 수 있습니다. +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}선로를 건설합니다. CTRL 키를 누르면 건설모드/철거모드로 전환합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}자동건설 모드로 선로를 건설합니다. CTRL 키를 누르면 건설/철거모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}차량기지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}선로에 경유지를 설치합니다. CTRL 키를 사용하면 같은 이름의 경유지를 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}철도역을 짓습니다. CTRL 키를 사용하면 같은 이름의 역을 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}신호기를 설치합니다. CTRL 키를 누르면 구식/전자식으로 전환합니다.{}선로를 따라 드래그해서 설치할 수 있습니다. CTRL 키를 누른 채로 드래그하면 다음 분기점이나 다음 신호기까지 신호기를 설치합니다.{}CTRL 키를 누른 채 클릭하면 신호기 선택 창을 전환합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}철교를 짓습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}터널을 짓습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}선로, 신호기, 경유지, 역 등의 철도 시설 건설/철거 모드를 켜거나 끌 수 있습니다. CTRL 키를 누르고 있어도 선로에서 경유지와 역을 제거할 수 있습니다 STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}철도 선로 종류를 변경하거나 업그레이드 합니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. STR_RAIL_NAME_RAILROAD :철도 @@ -2359,7 +2359,7 @@ STR_RAIL_NAME_MAGLEV :자기부상열 # Rail depot construction window STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}차량기지 방향 선택 -STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}차량기지의 방향을 선택하세요. +STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}차량기지의 방향을 선택하세요 # Rail waypoint construction window STR_WAYPOINT_CAPTION :{WHITE}경유지 @@ -2368,13 +2368,13 @@ STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}경유 # Rail station construction window STR_STATION_BUILD_RAIL_CAPTION :{WHITE}철도 역사 선택 STR_STATION_BUILD_ORIENTATION :{BLACK}방향 선택 -STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}철도역 방향을 설정합니다. +STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}철도역 방향을 설정합니다 STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}선로 수 -STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}철도역 플랫폼 개수를 설정합니다. +STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}철도역 플랫폼 개수를 설정합니다 STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}플랫폼 길이 -STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}철도역 길이를 설정합니다. +STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}철도역 길이를 설정합니다 STR_STATION_BUILD_DRAG_DROP :{BLACK}드래그 & 드롭 -STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}드래그 & 드롭으로 역 건설 +STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}드래그 & 드롭으로 역을 건설합니다 STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}표시할 역의 종류를 선택합니다 STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}건설할 역의 종류를 선택합니다 @@ -2396,7 +2396,7 @@ STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}출구 STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}복합 신호기 (전자식){}복합 신호기는 입구 신호기와 출구 신호기의 역할을 동시에 합니다. 이 신호기는 사전 신호기의 거대한 "나뭇가지식 구조"를 건설할 수 있도록 도와줍니다. STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 경로 신호기는 반대편에서 통과가 가능합니다. STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}단방향 경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 단방향 경로 신호기는 반대편에서 통과가 불가능합니다. -STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}신호기 변환{}이 버튼을 선택한 뒤 이미 설치된 신호기를 클릭하면, 신호기의 종류(일반/입구/출구/복합/경로)와 형식(구식↔전자식)을 변경하고, CTRL+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 가격을 볼 수 있습니다. +STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}신호기 변환{}이 버튼을 선택한 뒤 이미 설치된 신호기를 클릭하면, 신호기의 종류(일반/입구/출구/복합/경로)와 형식(구식↔전자식)을 변경하고, CTRL+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 비용을 볼 수 있습니다 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 감소 STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}드래그로 신호기를 설치하는 간격 증가 @@ -2420,71 +2420,71 @@ STR_BRIDGE_TUBULAR_SILICON :실리콘 원 # Road construction toolbar STR_ROAD_TOOLBAR_ROAD_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 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}자동건설 모드로 전차 선로를 짓습니다. CTRL 키를 누르고 있으면 건설/제거 모드를 바꿀 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}전차 차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}버스 정류장을 짓습니다. CTRL 키를 사용하면 근처 정류장과 연결할 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}여객 전차역을 짓습니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}트럭 적하장을 짓습니다. CTRL 키를 사용하면 근처 적하장과 연결할 수 있습니다. SHIFT 키를 누르면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}화물 전차역을 짓습니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}일방통행 도로 건설 모드를 켜거나 끕니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}다리를 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}전차교를 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}터널을 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -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_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 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}자동건설 모드로 전차 선로를 짓습니다. CTRL 키를 누르고 있으면 건설/제거 모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}전차 차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}버스 정류장을 짓습니다. CTRL 키를 사용하면 근처 정류장과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}여객 전차역을 짓습니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}트럭 적하장을 짓습니다. CTRL 키를 사용하면 근처 적하장과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}화물 전차역을 짓습니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}일방통행 도로 건설 모드를 켜거나 끕니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}다리를 짓습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_BRIDGE :{BLACK}전차 다리를 짓습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}터널을 짓습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +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}차고지 방향 선택 -STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}차고지의 방향을 선택하세요. +STR_BUILD_DEPOT_ROAD_ORIENTATION_SELECT_TOOLTIP :{BLACK}차고지의 방향을 선택합니다 STR_BUILD_DEPOT_TRAM_ORIENTATION_CAPTION :{WHITE}전차 차량기지 방향 선택 -STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}차량기지의 방향을 선택하세요 +STR_BUILD_DEPOT_TRAM_ORIENTATION_SELECT_TOOLTIP :{BLACK}차량기지의 방향을 선택합니다 # Road vehicle station construction window STR_STATION_BUILD_BUS_ORIENTATION :{WHITE}버스 정류장 방향 선택 -STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP :{BLACK}버스 정류장 방향을 선택합니다. +STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP :{BLACK}버스 정류장 방향을 선택합니다 STR_STATION_BUILD_TRUCK_ORIENTATION :{WHITE}트럭 적하장 방향 선택 -STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP :{BLACK}트럭 적하장의 방향을 선택합니다. +STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP :{BLACK}트럭 적하장의 방향을 선택합니다 STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION :{WHITE}여객 전차역 방향 선택 -STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP :{BLACK}여객 전차역의 방향을 선택하세요. +STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP :{BLACK}여객 전차역의 방향을 선택합니다 STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}화물 전차역 방향 선택 -STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}화물 전차역의 방향을 선택하세요. +STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}화물 전차역의 방향을 선택합니다 # Waterways toolbar (last two for SE only) STR_WATERWAYS_TOOLBAR_CAPTION :{WHITE}수로 건설 STR_WATERWAYS_TOOLBAR_CAPTION_SE :{WHITE}항만 -STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}운하를 만듭니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}갑문을 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}선박 구입과 점검을 위한 정박소를 만듭니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}항구 건설. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}경유지로 사용할 부표를 설치합니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}수도교를 짓습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. -STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}벽으로 물을 막고 있는 운하를 만듭니다.{}해수면 높이에서 CTRL 키를 누른 채로 사용하면 벽 없이 물을 만들어 바다나 호수를 만들 수 있습니다. -STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}강을 만듭니다. +STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}운하를 만듭니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}갑문을 만듭니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}선박 구입과 점검을 위한 정박소를 만듭니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}항구를 만듭니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}경유지로 사용할 수 있는 부표를 만듭니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}수도교를 만듭니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}벽으로 물을 막고 있는 운하를 만듭니다.{}해수면 높이에서 CTRL 키를 누른 채로 사용하면 벽 없이 물을 만들어 바다나 호수를 만들 수 있습니다 +STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}강을 만듭니다 # Ship depot construction window STR_DEPOT_BUILD_SHIP_CAPTION :{WHITE}정박소 방향 선택 -STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP :{BLACK}정박소의 방향을 선택합니다. +STR_DEPOT_BUILD_SHIP_ORIENTATION_TOOLTIP :{BLACK}정박소의 방향을 선택합니다 # Dock construction window STR_STATION_BUILD_DOCK_CAPTION :{WHITE}항구 # Airport toolbar STR_TOOLBAR_AIRCRAFT_CAPTION :{WHITE}공항 -STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}공항 건설. CTRL 키를 사용하면 같은 이름의 역을 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. +STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}공항을 만듭니다. CTRL 키를 사용하면 같은 이름의 역을 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 # Airport construction window STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}공항 선택 -STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}공항의 크기/종류를 선택합니다. +STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}공항의 크기/종류를 선택합니다 STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}공항 등급 STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}레이아웃 {NUM} @@ -2507,10 +2507,10 @@ STR_STATION_BUILD_NOISE :{BLACK}발생 # Landscaping toolbar STR_LANDSCAPING_TOOLBAR :{WHITE}지형 편집 -STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}땅의 모퉁이를 낮춥니다. 드래그하면 시작점의 땅을 낮추고 선택한 영역의 도착점까지 지형을 적절히 맞춥니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 가격을 볼 수 있습니다. -STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}땅의 모퉁이를 높입니다. 드래그하면 시작점의 땅을 높이고 선택한 영역의 도착점까지 지형을 적절히 맞춥니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 가격을 볼 수 있습니다. -STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}처음 선택한 모퉁이의 고도에 맞추어 땅을 평평하게 고릅니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 가격을 볼 수 있습니다. -STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}나중에 그 땅을 사용하기 위해 소유권을 구입합니다. SHIFT 키를 사용하면 예상 가격을 볼 수 있습니다. +STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}땅의 모퉁이를 낮춥니다. 드래그하면 시작점의 땅을 낮추고 선택한 영역의 도착점까지 지형을 적절히 맞춥니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}땅의 모퉁이를 높입니다. 드래그하면 시작점의 땅을 높이고 선택한 영역의 도착점까지 지형을 적절히 맞춥니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}처음 선택한 모퉁이의 고도에 맞추어 땅을 평평하게 고릅니다. CTRL 키를 누르면 대각선 방향의 영역을 선택할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 +STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}나중에 그 땅을 사용하기 위해 소유권을 구입합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다 # Object construction window STR_OBJECT_BUILD_CAPTION :{WHITE}오브젝트 선택 @@ -2524,16 +2524,16 @@ STR_OBJECT_CLASS_TRNS :송신기 # Tree planting window (last two for SE only) STR_PLANT_TREE_CAPTION :{WHITE}나무 -STR_PLANT_TREE_TOOLTIP :{BLACK}심고싶은 나무의 종류를 선택합니다. 이미 나무가 심어져있는 경우에는 선택한 나무의 크기를 키웁니다. +STR_PLANT_TREE_TOOLTIP :{BLACK}심고싶은 나무의 종류를 선택합니다. 이미 나무가 심어져있는 경우에는 선택한 나무의 크기를 키웁니다 STR_TREES_RANDOM_TYPE :{BLACK}여러 종류의 나무 같이 심기 -STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}여러 종류의 나무를 심습니다. SHIFT 키를 누르고 나무를 심으면 예상 가격을 볼 수 있습니다. +STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}여러 종류의 나무를 심습니다. SHIFT 키를 이용하면 예상 비용을 볼 수 있습니다 STR_TREES_RANDOM_TREES_BUTTON :{BLACK}무작위로 나무 심기 -STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}전 지역에 걸쳐 무작위로 나무를 심습니다. +STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}전 지역에 걸쳐 무작위로 나무를 심습니다 # Land generation window (SE) STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}지형 만들기 -STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}암석 지역을 위치시킵니다. -STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}사막 지역을 지정합니다.{}CTRL 키를 누르고 있으면 제거할 수 있습니다. +STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}암석 지역을 지정합니다 +STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}사막 지역을 지정합니다.{}CTRL 키를 누르고 있으면 제거할 수 있습니다 STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}지형 편집툴의 크기를 키움 STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}지형 편집툴의 크기를 줄임 STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}무작위로 지형 만들기 @@ -2547,11 +2547,11 @@ STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}이 작 # Town generation window (SE) STR_FOUND_TOWN_CAPTION :{WHITE}도시 만들기 STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}새 도시 -STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}새 도시를 건설합니다. SHIFT+클릭으로 예상 가격을 볼 수 있습니다. +STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}새 도시를 건설합니다. SHIFT+클릭으로 예상 비용을 볼 수 있습니다 STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}무작위로 도시 건설 -STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}무작위 위치에 도시를 건설합니다. +STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}무작위 위치에 도시를 건설합니다 STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}무작위로 여러 도시 건설 -STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}무작위로 도시를 건설합니다. +STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}무작위로 도시를 건설합니다 STR_FOUND_TOWN_NAME_TITLE :{YELLOW}도시 이름: STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}도시 이름 입력 @@ -2566,7 +2566,7 @@ STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}대형 STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}임의 STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}도시 크기 선택 STR_FOUND_TOWN_CITY :{BLACK}대도시로 만듦 -STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}대도시는 도시보다 빠르게 성장합니다.{}도시를 만들었을 때, 위 설정에 따라 더욱 커집니다. +STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}대도시는 도시보다 빠르게 성장합니다.{}도시를 만들었을 때, 위 설정에 따라 더욱 커집니다 STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}도시 도로 설계: STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}이 도시에 사용할 도로 설계를 선택합니다 @@ -2580,7 +2580,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}임의 STR_FUND_INDUSTRY_CAPTION :{WHITE}새 산업시설 건설 STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}목록에서 적당한 산업시설을 선택하십시오 STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :무작위 산업시설 건설 -STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}무작위로 산업시설을 건설합니다. +STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}무작위로 산업시설을 건설합니다 STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}가격: {YELLOW}{CURRENCY_LONG} STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}답사 STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}건설 @@ -2592,16 +2592,16 @@ STR_INDUSTRY_CARGOES_CARGO_CAPTION :{WHITE}{STRING} STR_INDUSTRY_CARGOES_PRODUCERS :{WHITE}생산 산업시설 STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}소비 산업시설 STR_INDUSTRY_CARGOES_HOUSES :{WHITE}도시 가구 -STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}이 산업시설의 공급자와 고객을 보려면 클릭하세요. -STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}이 화물의 공급자와 고객을 보려면 클릭하세요. +STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}이 산업시설의 공급자와 고객을 보려면 클릭하세요 +STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}이 화물의 공급자와 고객을 보려면 클릭하세요 STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}산업시설 연계도 보기 -STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}이 산업시설에서 생산/소비하는 화물을 보여줍니다. +STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}이 산업시설에서 생산/소비하는 화물을 보여줍니다 STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}지도에 표시 -STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}위 산업망에 표시된 산업을 소형지도에서 볼 수 있게 합니다. +STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}위 산업망에 표시된 산업을 소형 지도에서 볼 수 있게 합니다 STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}화물 선택 -STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}표시할 화물을 선택하세요. +STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}표시할 화물을 선택하세요 STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}산업시설 선택 -STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}표시할 산업시설을 선택하세요. +STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}표시할 산업시설을 선택하세요 # Land area window STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}이 지역의 지형 정보 @@ -2762,7 +2762,7 @@ STR_FRAMERATE_DRAWING :{BLACK}그래 STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} 세계 화면: STR_FRAMERATE_VIDEO :{BLACK}비디오 출력: STR_FRAMERATE_SOUND :{BLACK}사운드 합성: -STR_FRAMERATE_ALLSCRIPTS :{BLACK} 총 게임 스크립트/AI: +STR_FRAMERATE_ALLSCRIPTS :{BLACK} 총 게임 스크립트/인공지능: STR_FRAMERATE_GAMESCRIPT :{BLACK} 게임 스크립트: STR_FRAMERATE_AI :{BLACK} 인공지능 {NUM} {STRING} ############ End of leave-in-this-order @@ -2779,7 +2779,7 @@ STR_FRAMETIME_CAPTION_DRAWING :그래픽 렌 STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :세계 화면 렌더링 STR_FRAMETIME_CAPTION_VIDEO :비디오 출력 STR_FRAMETIME_CAPTION_SOUND :사운드 합성 -STR_FRAMETIME_CAPTION_ALLSCRIPTS :게임 스크립트/인공지능의 전체 스크립트 양입니다. +STR_FRAMETIME_CAPTION_ALLSCRIPTS :총 게임 스크립트/인공지능 STR_FRAMETIME_CAPTION_GAMESCRIPT :게임 스크립트 STR_FRAMETIME_CAPTION_AI :인공지능 {NUM} {STRING} ############ End of leave-in-this-order @@ -2795,16 +2795,16 @@ STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}높이 STR_SAVELOAD_HOME_BUTTON :{BLACK}기본 저장/불러오기 폴더로 이동하려면 여기를 클릭하세요 STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} 남음 STR_SAVELOAD_LIST_TOOLTIP :{BLACK}드라이브, 폴더, 저장된 게임 파일의 목록입니다 -STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}현재 입력된 게임 저장 파일의 이름입니다. +STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}현재 입력된 게임 저장 파일의 이름입니다 STR_SAVELOAD_DELETE_BUTTON :{BLACK}파일 삭제 -STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}현재 선택한 게임 저장 파일을 삭제합니다. +STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}현재 선택한 게임 저장 파일을 삭제합니다 STR_SAVELOAD_SAVE_BUTTON :{BLACK}저장 STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}선택한 이름으로 현재 게임을 저장합니다 STR_SAVELOAD_LOAD_BUTTON :{BLACK}불러오기 -STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}선택한 게임을 불러옵니다. -STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}선택한 높이맵을 불러옵니다. +STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}선택한 게임을 불러옵니다 +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}선택한 높이맵을 불러옵니다 STR_SAVELOAD_DETAIL_CAPTION :{BLACK}게임 상세 정보 -STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}사용 가능한 정보 없음. +STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}사용 가능한 정보 없음 STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_FILTER_TITLE :{BLACK}검색할 문자열: @@ -2816,14 +2816,14 @@ STR_SAVELOAD_OSKTITLE :{BLACK}게임 # World generation STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}세계 제작 STR_MAPGEN_MAPSIZE :{BLACK}지도 크기: -STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}지도의 크기를 칸 수 기준으로 선택하십시오. 사용 가능한 지도의 칸 수는 선택한 값보다 조금 적습니다. +STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}지도의 크기를 칸 수 기준으로 선택하십시오. 사용 가능한 지도의 칸 수는 선택한 값보다 조금 적습니다 STR_MAPGEN_BY :{BLACK}x STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}도시의 수: STR_MAPGEN_DATE :{BLACK}날짜: STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}산업시설 수: STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}최대 지형 높이: -STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}최대 지형 높이를 1칸 높입니다. -STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}최대 지형 높이를 1칸 낮춥니다. +STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}최대 지형 높이를 1칸 높입니다 +STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}최대 지형 높이를 1칸 낮춥니다 STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}설선 고도: STR_MAPGEN_SNOW_LINE_UP :{BLACK}설선 고도를 1칸 높입니다 STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}설선 고도를 1칸 낮춥니다 @@ -2854,8 +2854,8 @@ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}크기: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}최대 지형 고도값 변경 -STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}설선 고도를 변경 -STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}시작 연도를 변경합니다. +STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}설선 고도 변경 +STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}시작 연도 변경 # SE Map generation STR_SE_MAPGEN_CAPTION :{WHITE}시나리오 종류 @@ -2863,13 +2863,13 @@ STR_SE_MAPGEN_FLAT_WORLD :{WHITE}평평 STR_SE_MAPGEN_FLAT_WORLD_TOOLTIP :{BLACK}평평한 땅 만들기 STR_SE_MAPGEN_RANDOM_LAND :{WHITE}무작위 지형 STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}평지의 높이: -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}평지의 높이를 1칸 낮춥니다. -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}평지의 높이를 1칸 낮춥니다 +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}평지의 높이를 1칸 낮춥니다 +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}평지의 높이를 1칸 높입니다 STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}평지의 높이 변경 # Map generation progress -STR_GENERATION_WORLD :{WHITE}세계 만드는 중.. +STR_GENERATION_WORLD :{WHITE}세계 만드는 중... STR_GENERATION_ABORT :{BLACK}중지 STR_GENERATION_ABORT_CAPTION :{WHITE}세계 제작 중지 STR_GENERATION_ABORT_MESSAGE :{YELLOW}세계 만들기를 중지하시겠습니까? @@ -2881,9 +2881,9 @@ STR_GENERATION_TREE_GENERATION :{BLACK}나무 STR_GENERATION_OBJECT_GENERATION :{BLACK}움직일수 없는 객체 만드는 중 STR_GENERATION_CLEARING_TILES :{BLACK}거친 암석지대 만드는 중 STR_GENERATION_SETTINGUP_GAME :{BLACK}게임 설정 중 -STR_GENERATION_PREPARING_TILELOOP :{BLACK}타일 루프 실행중 -STR_GENERATION_PREPARING_SCRIPT :{BLACK}스크립트 생성중 -STR_GENERATION_PREPARING_GAME :{BLACK}게임 준비중 +STR_GENERATION_PREPARING_TILELOOP :{BLACK}타일 루프 실행 중 +STR_GENERATION_PREPARING_SCRIPT :{BLACK}스크립트 생성 중 +STR_GENERATION_PREPARING_GAME :{BLACK}게임 준비 중 # NewGRF settings STR_NEWGRF_SETTINGS_CAPTION :{WHITE}NewGRF 설정 @@ -2892,34 +2892,34 @@ STR_NEWGRF_SETTINGS_ACTIVE_LIST :{WHITE}적용 STR_NEWGRF_SETTINGS_INACTIVE_LIST :{WHITE}적용하지 않은 NewGRF 파일 STR_NEWGRF_SETTINGS_SELECT_PRESET :{ORANGE}프리셋 선택: STR_NEWGRF_FILTER_TITLE :{ORANGE}검색할 문자열: -STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}선택한 프리셋을 불러옵니다. +STR_NEWGRF_SETTINGS_PRESET_LIST_TOOLTIP :{BLACK}선택한 프리셋을 불러옵니다 STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}프리셋 저장 -STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}현재 목록을 프리셋으로 저장합니다. +STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}현재 목록을 프리셋으로 저장합니다 STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}프리셋 이름 입력 STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}프리셋 제거 -STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}현재 선택한 프리셋을 삭제합니다. +STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}현재 선택한 프리셋을 삭제합니다 STR_NEWGRF_SETTINGS_ADD :{BLACK}추가 -STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}선택한 NewGRF 파일을 내 설정에 추가합니다. +STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}선택한 NewGRF 파일을 내 설정에 추가합니다 STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}파일 재검색 -STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}사용 가능한 NewGRF 파일을 다시 검색합니다. +STR_NEWGRF_SETTINGS_RESCAN_FILES_TOOLTIP :{BLACK}사용 가능한 NewGRF 파일을 다시 검색합니다 STR_NEWGRF_SETTINGS_REMOVE :{BLACK}제거 -STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}선택한 NewGRF 파일을 목록에서 제거합니다. +STR_NEWGRF_SETTINGS_REMOVE_TOOLTIP :{BLACK}선택한 NewGRF 파일을 목록에서 제거합니다 STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}위로 -STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 위로 올립니다. +STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 위로 올립니다 STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}아래로 -STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 아래로 내립니다. +STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}선택한 NewGRF 파일의 순서를 아래로 내립니다 STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}업데이트 -STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}새 버전이 있는 NewGRF 파일을 업데이트합니다. -STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}설치된 NewGRF의 목록입니다. +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}새 버전이 있는 NewGRF 파일을 업데이트합니다 +STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}설치된 NewGRF의 목록입니다 STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}매개 변수 설정 STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}매개변숫값 보기 STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}색상표 바꾸기 -STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}NewGRF의 색상표를 바꿉니다.{}게임에서 그래픽이 분홍색으로 보일때 이 기능을 사용하십시오. +STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}NewGRF의 색상표를 바꿉니다.{}게임에서 그래픽이 분홍색으로 보일 때 이 기능을 사용하십시오 STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}변경사항 적용 STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}온라인에서 없는 파일 검색 -STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}온라인에서 없는 파일을 검색하여 다운로드할 수 있는지 확인합니다. +STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}온라인에서 없는 파일을 검색하여 다운로드할 수 있는지 확인합니다 STR_NEWGRF_SETTINGS_FILENAME :{BLACK}파일명: {SILVER}{STRING} STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING} @@ -2941,19 +2941,19 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}이 OpenTT # NewGRF save preset window STR_SAVE_PRESET_CAPTION :{WHITE}프리셋 저장 -STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}사용 가능한 프리셋 목록입니다. 아래에 같은 이름을 복사하려면 선택하십시오. +STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}사용 가능한 프리셋 목록입니다. 아래에 같은 이름을 복사하려면 선택하십시오 STR_SAVE_PRESET_TITLE :{BLACK}프리셋의 이름을 입력하세요 -STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}저장할 프리셋에 지정할 이름입니다. +STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}저장할 프리셋에 지정할 이름입니다 STR_SAVE_PRESET_CANCEL :{BLACK}취소 -STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}프리셋을 바꾸지 않습니다. +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}프리셋을 바꾸지 않습니다 STR_SAVE_PRESET_SAVE :{BLACK}저장 -STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}이 프리셋을 선택한 이름으로 저장합니다. +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}이 프리셋을 선택한 이름으로 저장합니다 # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF 매개 변숫값 변경 STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}닫기 STR_NEWGRF_PARAMETERS_RESET :{BLACK}초기화 -STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}모든 매개 변숫값을 기본값으로 설정합니다. +STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}모든 매개 변숫값을 기본값으로 설정합니다 STR_NEWGRF_PARAMETERS_DEFAULT_NAME :매개 변수 {NUM}번 STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING} STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}매개 변수 번호: {ORANGE}{NUM} @@ -2974,17 +2974,17 @@ STR_SPRITE_ALIGNER_CAPTION :{WHITE}스프 STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}다음 스프라이트 STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다. STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}스프라이트 번호 입력 -STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}입력한 스프라이트 번호로 이동합니다. 만약 입력한 번호의 스프라이트가 일반 스프라이트가 아닐경우, 그 다음으로 오는 일반 스프라이트로 이동합니다. +STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}입력한 스프라이트 번호로 이동합니다. 만약 입력한 번호의 스프라이트가 일반 스프라이트가 아닐경우, 그 다음으로 오는 일반 스프라이트로 이동합니다 STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}이전 스프라이트 STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다. STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표현합니다. 이 스프라이트를 표현할 때, 정렬 상태는 무시하고 표현합니다. -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X축이나 Y축 방향으로 스프라이트를 이동시킵니다. CTRL+클릭하면 한 번에 8씩 이동시킬 수 있습니다. +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X축이나 Y축 방향으로 스프라이트를 이동시킵니다. CTRL+클릭하면 한 번에 8씩 이동시킬 수 있습니다 STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}상대값 초기화 STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}현재 상대값 좌표를 초기화 STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X 좌표: {NUM}, Y 좌표: {NUM} (절댓값) STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X 좌표: {NUM}, Y 좌표: {NUM} (상대값) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}스프라이트 선택 -STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}화면에서 스프라이트를 골라 냅니다. +STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}화면에서 스프라이트를 선택합니다 STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}스프라이트 번호 입력 @@ -2994,20 +2994,20 @@ STR_NEWGRF_ERROR_MSG_WARNING :{RED}경고: {S STR_NEWGRF_ERROR_MSG_ERROR :{RED}오류: {SILVER}{STRING} STR_NEWGRF_ERROR_MSG_FATAL :{RED}치명적 오류: {SILVER}{STRING} STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}치명적인 NewGRF 오류가 발생했습니다:{}{STRING} -STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING}은 OpenTTD에서 보고된 TTD패치 버전에서 작동하지 않을 것입니다. -STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING}{G 1 "은" "는"} {STRING} 버전의 TTD를 위한 것입니다. +STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING}{G 1 "은" "는"} OpenTTD에서 보고된 TTDPatch 버전에서 작동하지 않을 것입니다 +STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING}{G 1 "은" "는"} {STRING} 버전의 TTD를 위한 것입니다 STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING}{G 1 "은" "는"} {STRING}{G 1 "와" "과"} 같이 사용해야 합니다 STR_NEWGRF_ERROR_INVALID_PARAMETER :{1:STRING}의 매개 변숫값이 유효하지 않습니다: {STRING}번 변수 ({NUM}) -STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING}{G 1 "은" "는"} 반드시 {STRING} 앞에 불러와야 합니다. -STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING}{G 1 "은" "는"} 반드시 {STRING} 뒤에 불러와야 합니다. -STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING}는 OpenTTD {STRING} 버전이나 그 이상이 필요합니다. +STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING}{G 1 "은" "는"} 반드시 {STRING} 앞에 불러와야 합니다 +STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING}{G 1 "은" "는"} 반드시 {STRING} 뒤에 불러와야 합니다 +STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING}{G 1 "은" "는"} OpenTTD {STRING} 버전이나 그 이상이 필요합니다 STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF 파일이 번역을 위해 만들어졌습니다 -STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :NewGRF이 너무 많습니다. -STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :{2:STRING}{G 2 "을" "를"} 포함한 정적 NewGRF {1:STRING}{G 1 "을" "를"} 불러오는 것은 비동기화를 일으킬 수 있습니다. +STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :NewGRF이 너무 많습니다 +STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :{2:STRING}{G 2 "을" "를"} 포함한 정적 NewGRF {1:STRING}{G 1 "을" "를"} 불러오는 것은 비동기화를 일으킬 수 있습니다 STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :예기치 않은 스프라이트 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :알려지지 않은 액션 0 속성 {4:HEX} (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_INVALID_ID :유효하지 않은 ID 사용 시도 (스프라이트 {3:NUM}) -STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} 에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다. +STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING}에 손상된 객체가 있습니다. 모든 손상된 객체는 붉은 물음표로 보일 것입니다 STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :여러 개의 Action 8 엔트리 포함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :유사 스프라이트의 끝이었던 부분을 읽으려고 시도함 (스프라이트 {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF 자원을 사용할 수 없음 (스프라이트 {3:NUM}) @@ -3022,31 +3022,31 @@ STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}게임 STR_NEWGRF_DUPLICATE_GRFID :{WHITE}파일 추가 불가: 중복된 GRF 아이디 STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}해당 파일을 찾을 수 없습니다. (대체 GRF를 불러옵니다) -STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}파일을 추가할 수 없습니다: NewGRF 파일이 너무 많습니다. +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}파일을 추가할 수 없습니다: NewGRF 파일이 너무 많습니다 -STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}대체할 수 있는 GRF를 불러왔습니다. -STR_NEWGRF_DISABLED_WARNING :{WHITE}없는 GRF 파일은 비활성화됩니다. +STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}대체할 수 있는 GRF를 불러왔습니다 +STR_NEWGRF_DISABLED_WARNING :{WHITE}없는 GRF 파일은 비활성화됩니다 STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}GRF 파일 없음 STR_NEWGRF_UNPAUSE_WARNING :{WHITE}일시정지 해제 시 오류가 발생하거나 게임이 종료될 수 있으며, 이와 관련된 버그 리포트는 접수받지 않습니다.{}정말로 일시정지를 해제하시겠습니까? # NewGRF status STR_NEWGRF_LIST_NONE :없음 STR_NEWGRF_LIST_ALL_FOUND :필요한 모든 GRF파일 있음 -STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}호환되는 파일을 찾았습니다. +STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}호환되는 파일을 찾았습니다 STR_NEWGRF_LIST_MISSING :{RED}파일 없음 # NewGRF 'it's broken' warnings -STR_NEWGRF_BROKEN :{WHITE}'{0:STRING}' NewGRF이 적용되는 과정에서 비동기화나 충돌이 일어날 수 있습니다. -STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}차고지 안에 있지 않은 '{1:ENGINE}'에 대한 동력 차량 상태가 바뀌었습니다. -STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:ENGINE}'{G 1 "이" "가"} 차고지 안에 있지 않으면 차량 길이가 바뀝니다. -STR_NEWGRF_BROKEN_CAPACITY :{WHITE}차량이 기지 안에 있지 않거나 개조가 불가능한 상태에서 '{1:ENGINE}'의 수송량이 변경되었습니다. +STR_NEWGRF_BROKEN :{WHITE}'{0:STRING}' NewGRF이 적용되는 과정에서 비동기화나 충돌이 일어날 수 있습니다 +STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}차고지 안에 있지 않은 '{1:ENGINE}'에 대한 동력 차량 상태가 바뀌었습니다 +STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:ENGINE}'{G 1 "이" "가"} 차고지 안에 있지 않으면 차량 길이가 바뀝니다 +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}차량이 기지 안에 있지 않거나 개조가 불가능한 상태에서 '{1:ENGINE}'의 수송량이 변경되었습니다 STR_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:COMPANY}'에 속한 열차 '{0:VEHICLE}'의 길이가 잘못된 값을 가지고 있습니다. NewGRF에 의한 문제로 보입니다. 게임이 비동기화 또는 충돌을 일으킬 수 있습니다. -STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}' (이)가 잘못된 정보를 제공하고 있습니다. -STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}{1:ENGINE}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다. -STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' 때문에 결과물 콜백 과정에서 무한 루프가 발생하고 있습니다. -STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}콜백 함수({1:HEX})가 알 수 없거나 잘못된 결과 값({2:HEX})을 반환했습니다. -STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' - 생산 콜백 함수의 {2:HEX}에서 잘못된 화물 종류를 반환했습니다. +STR_NEWGRF_BUGGY :{WHITE}NewGRF '{STRING}'에서 잘못된 정보를 제공하고 있습니다 +STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}{1:ENGINE}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다 +STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' 때문에 결과물 콜백 과정에서 무한 루프가 발생하고 있습니다 +STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}콜백 함수({1:HEX})가 알 수 없거나 잘못된 결과 값({2:HEX})을 반환했습니다 +STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' - 생산 콜백 함수의 {2:HEX}에서 잘못된 화물 종류를 반환했습니다 # 'User removed essential NewGRFs'-placeholders for stuff without specs STR_NEWGRF_INVALID_CARGO :<알 수 없는 화물> @@ -3067,7 +3067,7 @@ STR_NEWGRF_SCAN_ARCHIVES :자료 검색 # Sign list window STR_SIGN_LIST_CAPTION :{WHITE}팻말 목록 - 팻말 {COMMA}개 STR_SIGN_LIST_MATCH_CASE :{BLACK}대소문자 구분 -STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}팻말의 이름을 비교할 때 검색 문자열의 대소문자 구분할지 여부를 선택합니다. +STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}팻말의 이름을 비교할 때 검색 문자열의 대소문자 구분할지 여부를 선택합니다 # Sign window STR_EDIT_SIGN_CAPTION :{WHITE}팻말 내용 고치기 @@ -3081,7 +3081,7 @@ 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_DIRECTORY_LIST_TOOLTIP :{BLACK}도시 이름 - 이 도시로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 도시 위치를 기준으로 새로운 외부 화면을 엽니다 STR_TOWN_POPULATION :{BLACK}총 인구 수: {COMMA} # Town view window @@ -3099,9 +3099,9 @@ STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}도시 STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}도시가 {ORANGE}{COMMA}{BLACK}일마다 성장합니다. (투자됨) STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}도시는 {RED}성장하지 않고{BLACK} 있습니다. STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}현재 소음 수준: {ORANGE}{COMMA}{BLACK} 최대 허용 수준: {ORANGE}{COMMA} -STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}이 도시의 위치로 시점을 변경합니다. CTRL+클릭하면 이 도시 위치를 기준으로 새로운 외부 화면을 엽니다. +STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}이 도시의 위치로 시점을 변경합니다. CTRL+클릭하면 이 도시 위치를 기준으로 새로운 외부 화면을 엽니다 STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}지역 당국 -STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}지역 당국의 정보를 보여줍니다. +STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}지역 당국의 정보를 보여줍니다 STR_TOWN_VIEW_RENAME_TOOLTIP :{BLACK}이 도시 이름을 변경합니다. STR_TOWN_VIEW_EXPAND_BUTTON :{BLACK}확장 @@ -3149,13 +3149,13 @@ STR_GOALS_SPECTATOR_NONE :{ORANGE}- 적 STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} STR_GOALS_COMPANY_TITLE :{BLACK}회사 목표: -STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/마을/지도의 위치로 화면을 이동하려면 클릭하십시오. CTRL+클릭하면 산업시설/마을/지도를 표시하는 외부화면을 엽니다. +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/마을/칸의 위치로 화면을 이동하려면 클릭하십시오. CTRL+클릭하면 산업시설/마을/칸의 위치를 기준으로 새로운 외부 화면을 엽니다 # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :{G=m}질문 STR_GOAL_QUESTION_CAPTION_INFORMATION :{G=f}정보 STR_GOAL_QUESTION_CAPTION_WARNING :{G=f}경고 -STR_GOAL_QUESTION_CAPTION_ERROR :오류 +STR_GOAL_QUESTION_CAPTION_ERROR :{G=f}오류 ############ Start of Goal Question button list STR_GOAL_QUESTION_BUTTON_CANCEL :취소 @@ -3185,7 +3185,7 @@ STR_SUBSIDIES_OFFERED_FROM_TO :{ORANGE}{1:STRI STR_SUBSIDIES_NONE :{ORANGE}없음 STR_SUBSIDIES_SUBSIDISED_TITLE :{BLACK}이미 지급 중인 보조금: STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{1:STRING}에서 {2:STRING}까지 {0:STRING} 수송{YELLOW} ({3:COMPANY}{YELLOW}, {DATE_SHORT}까지) -STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/도시의 위치로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 산업시설/도시의 위치를 기준으로 새로운 외부 화면을 엽니다. +STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업시설/도시의 위치로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 산업시설/도시의 위치를 기준으로 새로운 외부 화면을 엽니다 # Story book window STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY}의 스토리 북 @@ -3193,15 +3193,15 @@ STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}전체 STR_STORY_BOOK_SPECTATOR :전체 스토리 북 STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :{NUM}쪽 -STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}드롭 다운 목록에서 이동하고자 하는 쪽수를 선택하세요. +STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}드롭 다운 목록에서 이동하고자 하는 쪽수를 선택하세요 STR_STORY_BOOK_PREV_PAGE :{BLACK}이전 -STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}이전 쪽으로 이동합니다. +STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}이전 쪽으로 이동합니다 STR_STORY_BOOK_NEXT_PAGE :{BLACK}다음 -STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}다음 쪽으로 이동합니다. +STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}다음 쪽으로 이동합니다 STR_STORY_BOOK_INVALID_GOAL_REF :{RED}잘못된 목표 참조 # Station list window -STR_STATION_LIST_TOOLTIP :{BLACK}역 이름 - 이 역의 위치로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 역 위치를 기준으로 새로운 외부 화면을 엽니다. +STR_STATION_LIST_TOOLTIP :{BLACK}역 이름 - 이 역의 위치로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 역 위치를 기준으로 새로운 외부 화면을 엽니다 STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}1개 이상의 아이템을 선택하려면 CTRL 키를 누르세요 STR_STATION_LIST_CAPTION :{WHITE}{COMPANY} - {COMMA}개 역사 STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES} @@ -3263,24 +3263,24 @@ STR_CARGO_RATING_EXCELLENT :훌륭함 STR_CARGO_RATING_OUTSTANDING :매우 훌륭함 ############ range for rating ends -STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}이 역의 위치로 시점을 변경합니다. CTRL+클릭하면 이 역 위치를 기준으로 새로운 외부 화면을 엽니다. -STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}이 역의 이름을 변경합니다. +STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}이 역의 위치로 시점을 변경합니다. CTRL+클릭하면 이 역 위치를 기준으로 새로운 외부 화면을 엽니다 +STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}이 역의 이름을 변경합니다 -STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 열차를 표시합니다 -STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 자동차/전차를 보여줍니다. -STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 항공기를 표시합니다 -STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 선박을 표시합니다 +STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 열차를 보여줍니다 +STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 차량을 보여줍니다 +STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 항공기를 보여줍니다 +STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}이 역을 거쳐가는 모든 선박을 보여줍니다 -STR_STATION_VIEW_RENAME_STATION_CAPTION :이 역의 이름을 변경합니다. +STR_STATION_VIEW_RENAME_STATION_CAPTION :이 역의 이름을 변경합니다 STR_STATION_VIEW_CLOSE_AIRPORT :{BLACK}공항 폐쇄 -STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}이 공항에 항공기가 착륙하는 것을 금지합니다. +STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}이 공항에 항공기가 착륙하는 것을 금지합니다 # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}이 경유지의 위치로 시점을 변경합니다. CTRL+클릭하면 이 경유지 위치를 기준으로 새로운 외부 화면을 엽니다. -STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}이 경유지의 이름을 변경합니다. -STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}이 부표의 위치로 시점을 변경합니다. CTRL+클릭하면 이 부표 위치를 기준으로 새로운 외부화면을 엽니다. +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}이 경유지의 위치로 시점을 변경합니다. CTRL+클릭하면 이 경유지 위치를 기준으로 새로운 외부 화면을 엽니다 +STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}이 경유지의 이름을 변경합니다 +STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}이 부표의 위치로 시점을 변경합니다. CTRL+클릭하면 이 부표 위치를 기준으로 새로운 외부 화면을 엽니다 STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}부표 이름 바꾸기 STR_EDIT_WAYPOINT_NAME :{WHITE}경유지 이름 설정 @@ -3292,7 +3292,7 @@ STR_FINANCES_YEAR :{WHITE}{NUM} STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}건설 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}신규 차량 구입 STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}열차 유지비 -STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}자동차/전차 유지비 +STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}차량 유지비 STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}항공기 유지비 STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}선박 유지비 STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}유지보수비 @@ -3310,9 +3310,9 @@ STR_FINANCES_LOAN_TITLE :{WHITE}대출 STR_FINANCES_MAX_LOAN :{WHITE}최대 대출: {BLACK}{CURRENCY_LONG} STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG} STR_FINANCES_BORROW_BUTTON :{BLACK}{CURRENCY_LONG} 빌리기 -STR_FINANCES_BORROW_TOOLTIP :{BLACK}돈을 빌립니다. CTRL+클릭하면 빌릴 수 있는만큼 빌립니다. +STR_FINANCES_BORROW_TOOLTIP :{BLACK}돈을 빌립니다. CTRL+클릭하면 빌릴 수 있는 만큼 빌립니다 STR_FINANCES_REPAY_BUTTON :{BLACK}{CURRENCY_LONG} 갚기 -STR_FINANCES_REPAY_TOOLTIP :{BLACK}돈을 갚습니다. CTRL+클릭하면 갚을 수 있는 만큼 갚습니다. +STR_FINANCES_REPAY_TOOLTIP :{BLACK}돈을 갚습니다. CTRL+클릭하면 갚을 수 있는 만큼 갚습니다 STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}기반시설 # Company view @@ -3338,27 +3338,27 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}공항 { STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}없음 STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}본사 건설 -STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}회사 본사를 건설합니다. +STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}회사 본사를 건설합니다 STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}본사 보기 -STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}회사 본사 위치로 이동합니다. +STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}회사 본사 위치로 이동합니다 STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}본사 위치 변경 -STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}회사가치의 1% 가격을 들여 본사를 다른 위치로 옮깁니다. SHIFT+클릭하면 예상 가격을 볼 수 있습니다. +STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}회사가치의 1% 가격을 들여 본사를 다른 위치로 옮깁니다. SHIFT+클릭을 사용하면 예상 비용을 볼 수 있습니다 STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}상세정보 -STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}기반시설 상세정보 창을 엽니다. +STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}기반시설 상세정보 창을 엽니다 STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}새 얼굴 -STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}사장의 얼굴을 선택합니다. +STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}사장의 얼굴을 선택합니다 STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}색상 -STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}회사 차량의 색상을 변경합니다. +STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}회사 차량의 색상을 변경합니다 STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}회사 이름 -STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}회사 이름을 변경합니다. +STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}회사 이름을 변경합니다 STR_COMPANY_VIEW_PRESIDENT_NAME_BUTTON :{BLACK}사장 이름 -STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}사장의 이름을 변경합니다. +STR_COMPANY_VIEW_PRESIDENT_NAME_TOOLTIP :{BLACK}사장의 이름을 변경합니다 STR_COMPANY_VIEW_BUY_SHARE_BUTTON :{BLACK}회사 지분의 25%를 매입 STR_COMPANY_VIEW_SELL_SHARE_BUTTON :{BLACK}회사 지분의 25%를 매도 -STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매입합니다. SHIFT+클릭으로 예상 매입 가격을 볼 수 있습니다. -STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매도합니다. SHIFT+클릭으로 예상 매도 가격을 볼 수 있습니다. +STR_COMPANY_VIEW_BUY_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매입합니다. SHIFT+클릭으로 예상 매입 가격을 볼 수 있습니다 +STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}이 회사 지분의 25%를 매도합니다. SHIFT+클릭으로 예상 매도 가격을 볼 수 있습니다 STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :회사 이름 STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :사장 이름 @@ -3384,13 +3384,13 @@ STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}(없음 STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% 운반됨) STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}/{CARGO_LONG}{STRING}){YELLOW} ({COMMA}%/{COMMA}%가 각각 운반됨) STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} -STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}산업시설 이름 - 산업시설로 시점을 변경하려면 클릭하세요. CTRL+클릭하면 이 산업시설의 위치를 기준으로 새로운 외부 화면을 엽니다. +STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}산업시설 이름 - 산업시설로 이동하려면 이름을 클릭하세요. CTRL+클릭하면 이 산업시설의 위치를 기준으로 새로운 외부 화면을 엽니다 # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}지난달 생산량: STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} ({COMMA}% 수송됨) -STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}이 산업시설로 이동합니다. CTRL+클릭하면 이 산업시설을 기준으로 새로운 외부 화면을 엽니다. +STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}이 산업시설로 이동합니다. CTRL+클릭하면 이 산업시설을 기준으로 새로운 외부 화면을 엽니다 STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}생산 수준: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}산업시설이 곧 폐쇄됩니다! @@ -3400,7 +3400,7 @@ STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRI STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} -STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} 대기중{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} 대기 중{STRING} STR_CONFIG_GAME_PRODUCTION :{WHITE}생산량 변경 (8의 배수, 최대 2040) STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}생산 등급 변경 (퍼센트, 800%까지) @@ -3411,21 +3411,21 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA}대의 선박 STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA}대의 항공기 -STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}열차 - 열차 정보를 보려면 클릭 -STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}차량 - 자세히 보려면 클릭 -STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}선박 - 선박의 정보를 보려면 클릭하세요. -STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}항공기 - 항공기 정보를 보려면 클릭하세요. +STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}열차 - 열차의 정보를 보려면 클릭하세요 +STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}차량 - 차량의 정보를 보려면 클릭하세요 +STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}선박 - 선박의 정보를 보려면 클릭하세요 +STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}항공기 - 항공기 정보를 보려면 클릭하세요 STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}올해 수입: {CURRENCY_LONG} (작년: {CURRENCY_LONG}) -STR_VEHICLE_LIST_AVAILABLE_TRAINS :사용 가능 열차 +STR_VEHICLE_LIST_AVAILABLE_TRAINS :사용 가능한 열차 STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :사용 가능한 차량 -STR_VEHICLE_LIST_AVAILABLE_SHIPS :사용 가능 선박 -STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :사용 가능 항공기 -STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}이 차량 타입에 사용할 수 있는 기관차의 목록 보기 +STR_VEHICLE_LIST_AVAILABLE_SHIPS :사용 가능한 선박 +STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :사용 가능한 항공기 +STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}이 차량 종류에 사용할 수 있는 기관차의 목록을 봅니다 STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}관리 -STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 열차에게 지시 +STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 열차에 지시를 내려 관리합니다 STR_VEHICLE_LIST_REPLACE_VEHICLES :차량 교체 STR_VEHICLE_LIST_SEND_FOR_SERVICING :정비하러 보내기 @@ -3434,8 +3434,8 @@ STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :차고지로 STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :정박소로 보내기 STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :격납고로 보내기 -STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}이 목록의 모든 차량의 운행을 중지시킵니다. -STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 차량의 운행을 시작합니다. +STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 차량의 운행을 중지합니다 +STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 차량의 운행을 시작합니다 STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}경로를 공유 중인 차량 {COMMA}대 @@ -3452,12 +3452,12 @@ 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}그룹 만들기 -STR_GROUP_DELETE_TOOLTIP :{BLACK}선택한 그룹 삭제 -STR_GROUP_RENAME_TOOLTIP :{BLACK}선택한 그룹 이름 바꾸기 -STR_GROUP_LIVERY_TOOLTIP :{BLACK}선택한 그룹의 차량 색상을 변경합니다. -STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}클릭하여 전체 자동 교체로부터 이 그룹을 보호합니다. +STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}그룹 - 클릭해서 그룹에 속한 차량을 모두 나열합니다. 상하위 그룹을 바꾸려면 드래그 앤 드롭하십시오 +STR_GROUP_CREATE_TOOLTIP :{BLACK}클릭해서 그룹을 만듭니다 +STR_GROUP_DELETE_TOOLTIP :{BLACK}선택한 그룹을 삭제합니다 +STR_GROUP_RENAME_TOOLTIP :{BLACK}선택한 그룹의 이름을 바꿉니다 +STR_GROUP_LIVERY_TOOLTIP :{BLACK}선택한 그룹의 차량 색상을 변경합니다 +STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}클릭해서 전체 자동 교체로부터 이 그룹을 보호합니다 STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}그룹 삭제 STR_GROUP_DELETE_QUERY_TEXT :{WHITE}이 그룹과 하위 그룹을 정말 삭제하시겠습니까? @@ -3483,7 +3483,7 @@ 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_ROAD_VEHICLE_ALL_CAPTION :새 차량 STR_BUY_VEHICLE_SHIP_CAPTION :새 선박 STR_BUY_VEHICLE_AIRCRAFT_CAPTION :새 항공기 ############ range for vehicle availability ends @@ -3511,13 +3511,13 @@ 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} 칸 +STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}항속거리: {GOLD}{COMMA}칸 STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}항공기 종류: {GOLD}{STRING} -STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}열차 차량 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. -STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}자동차/전차 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다. -STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}선박 구매 목록입니다. 선박의 정보를 보려면 선박을 클릭하세요. CTRL + 클릭하면 해당 선박을 숨김/표시 처리할 수 있습니다. -STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}항공기 구매 목록입니다. 항공기의 정보를 보려면 클릭하세요. CTRL + 클릭하면 해당 항공기를 숨김/표시 처리할 수 있습니다. +STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}열차 차량 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL+클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다 +STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}차량 구매 목록입니다. 차량의 정보를 보려면 클릭하세요. CTRL+클릭하면 해당 차량을 숨김/표시 처리할 수 있습니다 +STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}선박 구매 목록입니다. 선박의 정보를 보려면 선박을 클릭하세요. CTRL+클릭하면 해당 선박을 숨김/표시 처리할 수 있습니다 +STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}항공기 구매 목록입니다. 항공기의 정보를 보려면 클릭하세요. CTRL+클릭하면 해당 항공기를 숨김/표시 처리할 수 있습니다 STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}차량 구입 STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}차량 구입 @@ -3530,24 +3530,24 @@ 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+클릭하면 예상 구입 비용을 볼 수 있습니다. -STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}선택한 선박을 구입합니다. SHIFT+클릭으로 예상 구입 비용을 볼 수 있습니다. -STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}선택한 항공기를 구입합니다. SHIFT+클릭으로 예상 구입 비용을 볼 수 있습니다. +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}선택한 차량을 구입합니다. SHIFT+클릭하면 예상 구입 비용을 볼 수 있습니다 +STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}선택한 선박을 구입합니다. SHIFT+클릭으로 예상 구입 비용을 볼 수 있습니다 +STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}선택한 항공기를 구입합니다. SHIFT+클릭으로 예상 구입 비용을 볼 수 있습니다 -STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 차량을 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다. -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 자동차를 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다. -STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 선박을 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다. -STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 항공기를 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다. +STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 차량을 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 자동차를 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 선박을 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}선택한 항공기를 구입하고 개조합니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 -STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}이름 +STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}이름 지정 STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}이름 지정 STR_BUY_VEHICLE_SHIP_RENAME_BUTTON :{BLACK}이름 지정 STR_BUY_VEHICLE_AIRCRAFT_RENAME_BUTTON :{BLACK}이름 지정 -STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}열차의 차량 이름을 변경합니다. +STR_BUY_VEHICLE_TRAIN_RENAME_TOOLTIP :{BLACK}열차의 모델명을 변경합니다 STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}차종의 이름을 변경합니다. -STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}선박의 차량 이름을 변경합니다. -STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}항공기의 차량 이름을 변경합니다. +STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}선박의 모델명을 변경합니다 +STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}항공기의 모델명을 변경합니다 STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}숨김 STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}숨김 @@ -3559,20 +3559,20 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}보이 STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}보이기 STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}보이기 -STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 열차 차량을 목록에 보여주거나 숨깁니다. -STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 자동차/전차 차량을 목록에 보여주거나 숨깁니다. -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 선박을 목록에 보여주거나 숨깁니다. -STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 항공기를 목록에 보여주거나 숨깁니다. +STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 열차 모델을 목록에 보여주거나 숨깁니다 +STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 차량 모델을 목록에 보여주거나 숨깁니다 +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 선박 모델을 목록에 보여주거나 숨깁니다 +STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}숨김 처리한 항공기 모델을 목록에 보여주거나 숨깁니다 -STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}열차의 차량 이름을 변경합니다. +STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}열차의 모델명을 변경합니다 STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}차종 이름을 변경합니다. -STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}선박의 차량 이름을 변경합니다. -STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}항공기의 차량 이름을 변경합니다. +STR_QUERY_RENAME_SHIP_TYPE_CAPTION :{WHITE}선박의 모델명을 변경합니다 +STR_QUERY_RENAME_AIRCRAFT_TYPE_CAPTION :{WHITE}항공기의 모델명을 변경합니다 # Depot window STR_DEPOT_CAPTION :{WHITE}{DEPOT} -STR_DEPOT_RENAME_TOOLTIP :{BLACK}이 차량기지의 이름을 변경합니다. +STR_DEPOT_RENAME_TOOLTIP :{BLACK}이 차량기지의 이름을 변경합니다 STR_DEPOT_RENAME_DEPOT_CAPTION :차량기지 이름 변경 STR_DEPOT_NO_ENGINE :{BLACK}- @@ -3580,67 +3580,67 @@ STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE} STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}차량 {NUM}대{STRING} STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT}) -STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}열차 - 열차에 차량을 추가하거나 제거하려면 차량을 왼쪽 클릭으로 드래그하시고, 열차 정보를 보려면 오른쪽 클릭하십시오. 두 기능을 해당 차량 뒤에 딸려오는 차량에 적용하고 싶다면 CTRL 키를 누르고 계십시오. -STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}차량을 오른쪽 클릭하면 해당 차량의 간단한 정보를 볼 수 있습니다. -STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}선박 - 선박의 정보를 보려면 오른쪽 클릭하세요. -STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}항공기 - 항공기의 정보를 보려면 오른쪽 클릭하세요. +STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}열차 - 열차에 차량을 추가하거나 제거하려면 차량을 왼쪽 클릭으로 드래그하시고, 열차 정보를 보려면 오른쪽 클릭하십시오. 두 기능을 해당 차량 뒤에 딸려오는 차량에 적용하고 싶다면 CTRL 키를 누르고 계십시오 +STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}차량 - 차량의 정보를 보려면 오른쪽 클릭하세요 +STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}선박 - 선박의 정보를 보려면 오른쪽 클릭하세요 +STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}항공기 - 항공기의 정보를 보려면 오른쪽 클릭하세요 -STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}기관차/객차/화물차 한량만 제거하려면 여기로 드래그하세요 -STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}차량을 팔려면 여기로 드래그하세요. -STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}선박을 팔려면 여기로 드래그하세요. -STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}항공기를 팔려면 여기로 드래그하세요. +STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}기관차/객차/화차 한 량만 팔려면 여기로 드래그하세요 +STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}차량을 팔려면 여기로 드래그하세요 +STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}선박을 팔려면 여기로 드래그하세요 +STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}항공기를 팔려면 여기로 드래그하세요 STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}열차 전체를 팔려면 기관차를 여기로 드래그하세요 -STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}이 차량기지에 있는 모든 열차를 팝니다. -STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지에 있는 모든 차량을 팝니다. -STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}이 정박소에 있는 모든 선박을 팝니다. -STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}이 격납고에 있는 모든 항공기를 팝니다. +STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}이 차량기지에 있는 모든 열차를 팝니다 +STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지에 있는 모든 차량을 팝니다 +STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}이 정박소에 있는 모든 선박을 팝니다 +STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}이 격납고에 있는 모든 항공기를 팝니다 -STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}이 차량기지에 있는 모든 열차를 자동으로 교체합니다. -STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지에 있는 모든 차량을 자동으로 교체합니다. -STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}이 정박소에 있는 모든 선박을 자동으로 교체합니다. -STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}이 격납고에 있는 모든 항공기를 자동으로 교체합니다. +STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}이 차량기지에 있는 모든 열차를 자동으로 교체합니다 +STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지에 있는 모든 차량을 자동으로 교체합니다 +STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}이 정박소에 있는 모든 선박을 자동으로 교체합니다 +STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}이 격납고에 있는 모든 항공기를 자동으로 교체합니다 STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}새 열차 STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}새 차량 STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}새 선박 STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}새 항공기 -STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}새 열차를 구입합니다. -STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}새 차량을 구입합니다. -STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}새 선박을 구입합니다. -STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}새 항공기를 구입합니다. +STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}새 열차를 구입합니다 +STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}새 차량을 구입합니다 +STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}새 선박을 구입합니다 +STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}새 항공기를 구입합니다 STR_DEPOT_CLONE_TRAIN :{BLACK}열차 복제 STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}차량 복제 STR_DEPOT_CLONE_SHIP :{BLACK}선박 복제 STR_DEPOT_CLONE_AIRCRAFT :{BLACK}항공기 복제 -STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}객차/화차를 포함한 열차 전체를 복제합니다. 이 버튼을 클릭하고 차량기지 안이나 밖에 있는 열차를 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다. -STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}차량을 복제합니다. 이 버튼을 클릭하고 차고지 안이나 밖에 있는 차량을 클릭하십시오. CTRL+클릭하면 경로도 함께 공유합니다. -STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}선박을 복제합니다. 이 버튼을 누르고 정류소의 안이나 밖에 있는 선박을 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다. -STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}항공기를 복제합니다. 격납고 안이나 밖에 있는 항공기를 선택하십시오. CTRL+클릭하면 경로를 같이 공유합니다. +STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}객차/화차를 포함한 열차 전체를 복제합니다. 이 버튼을 클릭하고 차량기지 안이나 밖에 있는 열차를 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다 +STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}차량을 복제합니다. 이 버튼을 클릭하고 차고지 안이나 밖에 있는 열차를 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다 +STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}선박을 복제합니다. 이 버튼을 누르고 정류소의 안이나 밖에 있는 선박을 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다 +STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}항공기를 복제합니다. 이 버튼을 누르고 격납고의 안이나 밖에 있는 항공기를 클릭하십시오. CTRL+클릭하면 경로를 같이 공유합니다 -STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}이 차량기지로 이동합니다. CTRL+클릭하면 이 차량기지의 위치를 기준으로 새로운 외부 화면을 엽니다. -STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}차고지가 있는 곳으로 화면을 이동합니다. CTRL+클릭하면 이 차고지의 위치를 기준으로 외부화면 창을 띄웁니다. -STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}이 정박소로 이동합니다. CTRL+클릭하면 이 정박소의 위치를 기준으로 새로운 외부 화면을 엽니다. -STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}이 격납고의 위치로 시점을 이동합니다. CTRL+클릭하면 이 격납고의 위치를 기준으로 새로운 외부 화면을 엽니다. +STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}이 차량기지로 이동합니다. CTRL+클릭하면 이 차량기지의 위치를 기준으로 새로운 외부 화면을 엽니다 +STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}이 차고지로 이동합니다. CTRL+클릭하면 이 차고지의 위치를 기준으로 새로운 외부 화면을 엽니다 +STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}이 정박소로 이동합니다. CTRL+클릭하면 이 정박소의 위치를 기준으로 새로운 외부 화면을 엽니다 +STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}이 격납고로 이동합니다. CTRL+클릭하면 이 격납고의 위치를 기준으로 새로운 외부 화면을 엽니다 -STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}이 차량기지를 거쳐가는 모든 열차의 목록을 보여줍니다. -STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지를 거쳐가는 모든 차량의 목록을 보여줍니다. -STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}이 정박소를 거쳐가는 모든 선박의 목록을 보여줍니다. -STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}이 격납고를 거쳐가는 모든 항공기의 목록을 보여줍니다. +STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}이 차량기지를 거쳐가는 모든 열차의 목록을 보여줍니다 +STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지를 거쳐가는 모든 차량의 목록을 보여줍니다 +STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}이 정박소를 거쳐가는 모든 선박의 목록을 보여줍니다 +STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}이 격납고를 거쳐가는 모든 항공기의 목록을 보여줍니다 -STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}이 차량기지 안에 있는 모든 열차의 운행을 중지시킵니다. -STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지 안에 있는 모든 차량의 운행을 중지시키려면 클릭하세요. -STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}이 정박소 안에 있는 모든 선박의 운행을 중지시킵니다. -STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}이 격납고 안에 있는 모든 항공기의 운행을 중지시킵니다. +STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}클릭하면 이 차량기지 안에 있는 모든 열차의 운행을 중지합니다 +STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}클릭하면 이 차고지 안에 있는 모든 차량의 운행을 중지합니다 +STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}클릭하면 이 정박소 안에 있는 모든 선박의 운행을 중지합니다 +STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}클릭하면 이 격납고 안에 있는 모든 항공기의 운행을 중지합니다 -STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}이 차량기지 안에 있는 모든 열차의 운행을 시작합니다. -STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지 안에 있는 모든 차량의 운행을 시작하려면 클릭하세요. -STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}이 정박소 안에 있는 모든 선박의 운행을 시작합니다. -STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}이 격납고 안에 있는 모든 항공기의 운행을 시작합니다. +STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}이 차량기지 안에 있는 모든 열차의 운행을 시작합니다 +STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}이 차고지 안에 있는 모든 차량의 운행을 시작합니다 +STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}이 정박소 안에 있는 모든 선박의 운행을 시작합니다 +STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}이 격납고 안에 있는 모든 항공기의 운행을 시작합니다 STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}이 안에 있는 모든 차량을 판매하려고 합니다. 계속하시겠습니까? @@ -3649,12 +3649,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}차량 STR_ENGINE_PREVIEW_MESSAGE :{GOLD}저희는 이제 막 새로운 {STRING}{G 0 "을" "를"} 개발했습니다. 1년 먼저 이 차량을 사용하셔서 모두에게 공개되기 전에 잘 작동하는지 확인해주시겠습니까? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}철도 기관차 -STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :전기선로 기관차 +STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :{G=f}전기선로 기관차 STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}모노레일 기관차 STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}자기부상열차 -STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=f}자동차/전차 -STR_ENGINE_PREVIEW_TRAM_VEHICLE :전차 차량 +STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=f}자동차 +STR_ENGINE_PREVIEW_TRAM_VEHICLE :{G=f}전차 STR_ENGINE_PREVIEW_AIRCRAFT :{G=f}항공기 STR_ENGINE_PREVIEW_SHIP :{G=m}선박 @@ -3675,12 +3675,12 @@ STR_REPLACE_VEHICLE_SHIP :{G=m}선박 STR_REPLACE_VEHICLE_AIRCRAFT :{G=f}항공기 STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}사용 중인 차량 -STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}이 열은 현재 사용 중인 차량 목록입니다. +STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}이 열은 현재 보유하고 있는 차량 목록입니다 STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}교체할 수 있는 차량 -STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}이 열은 교체할 수 있는 차량 목록입니다. +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 :모든 차량을 지금 교체 @@ -3688,19 +3688,19 @@ STR_REPLACE_VEHICLES_WHEN_OLD :오래된 차 STR_REPLACE_HELP_START_BUTTON :{BLACK}왼쪽에서 선택한 기관차를 오른쪽의 새 기관차로 교체하려면 누르세요 STR_REPLACE_NOT_REPLACING :{BLACK}교체 안 됨 STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}차량이 선택되지 않았음 -STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGINE}(으)로 교체 +STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGINE}{G "으" ""}로 교체 STR_REPLACE_VEHICLES_STOP :{BLACK}차량 교체 중지 -STR_REPLACE_HELP_STOP_BUTTON :{BLACK}왼쪽에서 선택한 기관차 종류의 차량교체를 중지하려면 이 버튼을 누르세요. +STR_REPLACE_HELP_STOP_BUTTON :{BLACK}왼쪽에서 선택한 기관차의 차량교체를 중지하려면 이 버튼을 누르세요 -STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}기관차/화물차 교체 창으로 전환합니다. +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_HELP_ROADTYPE :{BLACK}교체할 차량이 속한 도로 종류를 고르세요 +STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}왼쪽의 선택한 기관차가 어떤 기관차로 교체되고 있는지 표시합니다 STR_REPLACE_RAIL_VEHICLES :철도 차량 STR_REPLACE_ELRAIL_VEHICLES :전기철도 차량 STR_REPLACE_MONORAIL_VEHICLES :모노레일 차량 @@ -3710,45 +3710,45 @@ STR_REPLACE_ROAD_VEHICLES :자동차 STR_REPLACE_TRAM_VEHICLES :전차 차량 STR_REPLACE_REMOVE_WAGON :{BLACK}화물차 제거: {ORANGE}{STRING} -STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}자동 교체시 열차의 길이가 교체 전보다 길어지면 앞쪽부터 화물칸를 제거하여 열차의 전체 길이가 달라지지 않도록 합니다. +STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}자동 교체시 열차의 길이가 교체 전보다 길어지면 객차/화차를 (앞쪽부터) 제거하여 열차의 전체 길이가 달라지지 않도록 합니다 # Vehicle view STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE} -STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}이 열차가 있는 곳으로 이동합니다. CTRL+클릭하면 이 열차를 따라갑니다. -STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}이 차량이 있는 곳으로 이동합니다. CTRL+클릭하면 이 차량을 따라갑니다. -STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}이 선박이 있는 곳으로 이동합니다. CTRL+클릭하면 이 선박을 따라갑니다. -STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}이 항공기가 있는 곳으로 이동합니다. CTRL+클릭하면 이 항공기를 따라갑니다. +STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}이 열차가 있는 곳으로 이동합니다. CTRL+클릭하면 이 열차를 따라갑니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}이 차량이 있는 곳으로 이동합니다. CTRL+클릭하면 이 차량을 따라갑니다 +STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}이 선박이 있는 곳으로 이동합니다. CTRL+클릭하면 이 선박을 따라갑니다 +STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}이 항공기가 있는 곳으로 이동합니다. CTRL+클릭하면 이 항공기를 따라갑니다 -STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}열차를 차량기지로 보냅니다. CTRL+클릭하면 점검만 합니다. -STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}차량을 차고지로 보냅니다. CTRL+클릭하면 점검만 합니다. -STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}선박을 정박소로 보냅니다. CTRL+클릭하면 정비만 합니다. -STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}항공기를 격납고로 보냅니다. CTRL+클릭하면 점검만 합니다 +STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}열차를 차량기지로 보냅니다. CTRL+클릭하면 정비를 하러 차량기지에 들르기만 합니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}차량을 차고지로 보냅니다. CTRL+클릭하면 정비를 하러 차고지에 들르기만 합니다 +STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}선박을 정박소로 보냅니다. CTRL+클릭하면 정비를 하러 정박소에 들르기만 합니다 +STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}항공기를 격납고로 보냅니다. CTRL+클릭하면 정비를 하러 격납고에 들르기만 합니다 -STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}객차/화차를 포함한 열차 전체를 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. -STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}차량을 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. -STR_VEHICLE_VIEW_CLONE_SHIP_INFO :{BLACK}선박을 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. -STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}항공기를 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. +STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}객차/화차를 포함한 열차 전체를 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}차량을 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_VEHICLE_VIEW_CLONE_SHIP_INFO :{BLACK}선박을 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 +STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}항공기를 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다 -STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}신호를 무시하고 열차를 진행시킵니다. +STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}신호를 무시하고 열차를 진행시킵니다 -STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}다른 종류의 화물을 실을 수 있도록 열차를 개조 -STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}차량이 다른 종류의 화물을 싣을 수 있도록 개조합니다. -STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}이 선박이 다른 종류의 화물을 실을 수 있도록 개조합니다. -STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}이 항공기가 다른 종류의 화물을 실을 수 있도록 개조합니다. +STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}열차가 다른 종류의 화물을 실을 수 있도록 개조합니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}차량이 다른 종류의 화물을 실을 수 있도록 개조합니다 +STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}선박이 다른 종류의 화물을 실을 수 있도록 개조합니다 +STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}항공기가 다른 종류의 화물을 실을 수 있도록 개조합니다 -STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}열차를 회차시킵니다. -STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}차량을 유턴시킵니다. +STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}열차를 회차시킵니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}차량을 유턴시킵니다 -STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}열차의 경로를 보여줍니다. CTRL+클릭하면 열차의 시간표를 보여줍니다. -STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}차량의 경로를 보여줍니다. CTRL+클릭하면 차량의 시간표를 보여줍니다. -STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}선박의 경로를 보여줍니다. CTRL+클릭하면 선박의 시간표를 보여줍니다. -STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}항공기의 경로를 보여줍니다. CTRL+클릭하면 항공기의 시간표를 보여줍니다. +STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}열차의 경로를 보여줍니다. CTRL+클릭하면 열차의 시간표를 보여줍니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}차량의 경로를 보여줍니다. CTRL+클릭하면 차량의 시간표를 보여줍니다 +STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}선박의 경로를 보여줍니다. CTRL+클릭하면 선박의 시간표를 보여줍니다 +STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}항공기의 경로를 보여줍니다. CTRL+클릭하면 항공기의 시간표를 보여줍니다 -STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}열차의 상세정보를 보여줍니다. -STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}차량 상세정보 보기 -STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}선박 상세정보 보기 -STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}항공기 상세정보 보기 +STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}열차의 상세정보를 보여줍니다 +STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}차량의 상세정보를 보여줍니다 +STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}선박의 상세정보를 보여줍니다 +STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}항공기의 상세정보를 보여줍니다 STR_VEHICLE_VIEW_TRAIN_STATE_START_STOP_TOOLTIP :{BLACK}현재 열차 행동 - 열차를 운행/정지시키려면 클릭하세요. CTRL+클릭하면 목적지를 볼 수 있습니다. STR_VEHICLE_VIEW_ROAD_VEHICLE_STATE_START_STOP_TOOLTIP :{BLACK}현재 차량 행동 - 운행/정지시키려면 클릭하세요. CTRL+클릭하면 목적지를 볼 수 있습니다. @@ -3757,14 +3757,14 @@ STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}현재 # Messages in the start stop button in the vehicle view STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}싣는 중 / 내리는 중 -STR_VEHICLE_STATUS_LEAVING :{LTBLUE}떠남 -STR_VEHICLE_STATUS_CRASHED :{RED}충돌!! +STR_VEHICLE_STATUS_LEAVING :{LTBLUE}출발 중 +STR_VEHICLE_STATUS_CRASHED :{RED}충돌! STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}고장 STR_VEHICLE_STATUS_STOPPED :{RED}정지함 STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}멈추는 중, {VELOCITY} STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}기관차 없음 STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}빈 경로 탐색중 -STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}다음 목적지가 너무 멀리 있습니다. +STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}다음 목적지가 너무 멀리 있습니다 STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}다음 목적지: {STATION} ({VELOCITY}) STR_VEHICLE_STATUS_NO_ORDERS_VEL :{LTBLUE}경로 없음 ({VELOCITY}) @@ -3811,10 +3811,10 @@ STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}환승 STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}정비 간격: {LTBLUE}{COMMA}일마다{BLACK} 마지막 정비 날짜: {LTBLUE}{DATE_LONG} STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 간격: {LTBLUE}{COMMA}%{BLACK} 이하일 때 마지막 정비 날짜: {LTBLUE}{DATE_LONG} -STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 올립니다. CTRL+클릭하면 점검 기준값을 5만큼 올립니다. -STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 내립니다. CTRL+클릭하면 점검 기준값을 5만큼 내립니다. +STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 올립니다. CTRL+클릭하면 점검 기준값을 5만큼 올립니다 +STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 내립니다. CTRL+클릭하면 점검 기준값을 5만큼 내립니다 -STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}정비 기준 설정을 변경합니다. +STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}정비 기준 설정을 변경합니다 STR_VEHICLE_DETAILS_DEFAULT :기본 STR_VEHICLE_DETAILS_DAYS :날짜 STR_VEHICLE_DETAILS_PERCENT :신뢰도 @@ -3837,13 +3837,13 @@ STR_VEHICLE_DETAILS_CARGO_FROM :{LTBLUE}{CARGO_ STR_VEHICLE_DETAILS_CARGO_FROM_MULT :{LTBLUE}{CARGO_LONG} (출발지: {STATION}) (x{NUM}) STR_VEHICLE_DETAIL_TAB_CARGO :{BLACK}화물 -STR_VEHICLE_DETAILS_TRAIN_CARGO_TOOLTIP :{BLACK}현재 싣고있는 화물 정보를 보여줌 +STR_VEHICLE_DETAILS_TRAIN_CARGO_TOOLTIP :{BLACK}현재 싣고 있는 화물 정보를 보여줍니다 STR_VEHICLE_DETAIL_TAB_INFORMATION :{BLACK}정보 -STR_VEHICLE_DETAILS_TRAIN_INFORMATION_TOOLTIP :{BLACK}각 차량의 상세 정보를 보여줌 +STR_VEHICLE_DETAILS_TRAIN_INFORMATION_TOOLTIP :{BLACK}각 차량의 상세 정보를 보여줍니다 STR_VEHICLE_DETAIL_TAB_CAPACITIES :{BLACK}수용량 -STR_VEHICLE_DETAILS_TRAIN_CAPACITIES_TOOLTIP :{BLACK}각 차량의 수송량 정보를 보여줌 +STR_VEHICLE_DETAILS_TRAIN_CAPACITIES_TOOLTIP :{BLACK}각 차량의 수송량 정보를 보여줍니다 STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}총 화물량 -STR_VEHICLE_DETAILS_TRAIN_TOTAL_CARGO_TOOLTIP :{BLACK}각 화물 종류에 따른 총 수송량 보여줌 +STR_VEHICLE_DETAILS_TRAIN_TOTAL_CARGO_TOOLTIP :{BLACK}각 화물 종류에 따른 총 수송량을 보여줍니다 STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}수송량: {LTBLUE} @@ -3854,21 +3854,21 @@ STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}변경 STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}변경 수송량: {GOLD}{CARGO_LONG}{}{BLACK}개조시 회수되는 비용: {GREEN}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}변경 수송량: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}개조 비용: {RED}{CURRENCY_LONG} STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}변경 수송량: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}개조시 회수되는 비용: {GREEN}{CURRENCY_LONG} -STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}개조할 차량을 선택하십시오. 마우스로 드래그하면 여러 개의 차량을 선택 가능합니다. 빈 곳을 클릭하면 전체를 선택합니다. CTRL+클릭하면 차량 전체를 선택할 수 있습니다. +STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}개조할 차량을 선택하십시오. 마우스로 드래그하면 여러 개의 차량을 선택 가능합니다. 빈 곳을 클릭하면 전체를 선택합니다. CTRL+클릭하면 차량 전체를 선택할 수 있습니다 -STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}열차가 수송할 화물의 종류를 선택하세요. -STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}차량이 수송할 화물의 종류를 선택하세요. -STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}선박이 운반할 화물의 종류를 선택하십시오 -STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}이 항공기가 수송할 화물의 종류를 선택하십시오 +STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}열차가 수송할 화물의 종류를 선택하세요 +STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}차량이 수송할 화물의 종류를 선택하세요 +STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}선박이 수송할 화물의 종류를 선택하세요 +STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}항공기가 수송할 화물의 종류를 선택하세요 STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}열차 개조 STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}차량 개조 STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}선박 개조 STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}항공기 개조 -STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}선택된 화물을 수송하도록 열차를 개조 -STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}선택한 화물을 싣도록 차량을 개조합니다. -STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}선택한 화물을 운반하도록 선박을 개조 +STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}선택된 화물을 싣도록 열차를 개조합니다 +STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}선택한 화물을 싣도록 차량를 개조합니다 +STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}선택된 화물을 싣도록 선박을 개조합니다 STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}선택한 화물을 싣도록 항공기를 개조합니다 # Order view @@ -3876,7 +3876,7 @@ STR_ORDERS_CAPTION :{WHITE}{VEHICLE STR_ORDERS_TIMETABLE_VIEW :{BLACK}시간표 STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}시간표 보기 전환 -STR_ORDERS_LIST_TOOLTIP :{BLACK}이 열차의 경로 - 선택하려면 클릭하세요. CTRL+클릭하시면 그 역이 있는 장소로 이동합니다. +STR_ORDERS_LIST_TOOLTIP :{BLACK}이 열차의 경로 - 선택하려면 클릭하세요. CTRL+클릭하시면 그 역이 있는 장소로 이동합니다 STR_ORDER_INDEX :{COMMA}:{NBSP} STR_ORDER_TEXT :{STRING} {STRING} {STRING} @@ -3909,16 +3909,16 @@ STR_ORDER_REFIT :{BLACK}개조 STR_ORDER_REFIT_TOOLTIP :{BLACK}이 경로에서 열차를 어떤 화물을 받을 수 있게 개조할 것인지 선택하십시오. CTRL+클릭하면 개조 설정을 해제합니다. STR_ORDER_REFIT_AUTO :{BLACK}개조 STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}이 경로에서 개조할 화물의 종류를 선택하세요. CTRL+클릭하면 개조 설정을 해제합니다. 개조 기능은 개조 가능한 차량에서만 사용할 수 있습니다. -STR_ORDER_DROP_REFIT_AUTO :화물 종류 고정 -STR_ORDER_DROP_REFIT_AUTO_ANY :이용가능한 화물 +STR_ORDER_DROP_REFIT_AUTO :특정 화물로 +STR_ORDER_DROP_REFIT_AUTO_ANY :이용 가능한 화물로 STR_ORDER_SERVICE :{BLACK}정비 STR_ORDER_DROP_GO_ALWAYS_DEPOT :항상 감 STR_ORDER_DROP_SERVICE_DEPOT :필요하면 정비 STR_ORDER_DROP_HALT_DEPOT :멈춤 -STR_ORDER_SERVICE_TOOLTIP :{BLACK}정비가 필요하지 않으면 이 경로를 건너뜁니다. +STR_ORDER_SERVICE_TOOLTIP :{BLACK}정비가 필요하지 않으면 이 경로를 건너뜁니다 -STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}경로를 건너뛰기 위한 비교조건을 선택합니다. +STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}경로를 건너뛰기 위한 비교 조건을 선택합니다 # Conditional order variables, must follow order of OrderConditionVariable enum STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :적재율 @@ -3930,7 +3930,7 @@ STR_ORDER_CONDITIONAL_UNCONDITIONALLY :항상 STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :남은 수명 (년) STR_ORDER_CONDITIONAL_MAX_RELIABILITY :최대 신뢰도 -STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}왼쪽의 비교조건과 오른쪽의 입력값을 비교할 연산자를 선택합니다. +STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}왼쪽의 비교조건과 오른쪽의 입력값을 비교할 연산자를 선택합니다 STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS := STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :≠ STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :< @@ -3940,24 +3940,24 @@ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :≥ STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :이 있을 때 STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :이 없을 때 -STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}비교조건에 대한 입력값입니다. -STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}비교할 값을 입력하세요. +STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}비교 조건에 대한 입력값입니다 +STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}비교할 값을 입력하세요 STR_ORDERS_SKIP_BUTTON :{BLACK}건너뛰기 -STR_ORDERS_SKIP_TOOLTIP :{BLACK}현재 경로를 건너뜁니다, 그리고 다음 경로를 시작합니다. CTRL+클릭하면 선택한 경로로 건너뜁니다. +STR_ORDERS_SKIP_TOOLTIP :{BLACK}현재 경로를 건너뛰고, 다음 경로를 시작합니다. CTRL+클릭하면 현재 선택된 경로로 건너뜁니다 STR_ORDERS_DELETE_BUTTON :{BLACK}삭제 -STR_ORDERS_DELETE_TOOLTIP :{BLACK}선택된 경로를 삭제합니다. +STR_ORDERS_DELETE_TOOLTIP :{BLACK}선택된 경로를 삭제합니다 STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}모든 경로 삭제 STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}경로 공유 해제 -STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}경로 공유를 해제합니다. CTRL+클릭하면 경로 공유를 해제하면서 모든 경로를 삭제합니다. +STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}경로 공유를 해제합니다. CTRL+클릭하면 경로 공유를 해제하면서 모든 경로를 삭제합니다 STR_ORDERS_GO_TO_BUTTON :{BLACK}행선지 STR_ORDER_GO_TO_NEAREST_DEPOT :가까운 차량기지/차고지로 STR_ORDER_GO_TO_NEAREST_HANGAR :가까운 격납고로 STR_ORDER_CONDITIONAL :조건부 경로 건너뛰기 STR_ORDER_SHARE :경로 공유하기 -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}선택된 경로 바로 전이나 목록 맨 끝에 새 경로를 삽입합니다. CTRL 키와 함께 누르면, 역에서는 '아무 화물이나 가득 싣기'로, 경유지에서는 '직행'으로, 차량기지에서는 '점검'으로 지정됩니다. '공유된 경로'를 클릭하거나 CTRL 키를 누르면 선택했던 차량과 이 차량의 경로를 공유하게 됩니다. 단순히 클릭하면 그 차량의 경로를 복사하기만 합니다. 차량기지를 경로에 포함시키면 이 차량은 자동 정비를 할 수 없게 됩니다. +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}선택된 경로 바로 전이나 목록 맨 끝에 새 경로를 삽입합니다. CTRL 키와 함께 누르면, 역에서는 '아무 화물이나 가득 싣기'로, 경유지에서는 '직행'으로, 차량기지에서는 '점검'으로 지정됩니다. '공유된 경로'를 클릭하거나 CTRL 키를 누르면 선택했던 차량과 이 차량의 경로를 공유하게 됩니다. 단순히 클릭하면 그 차량의 경로를 복사하기만 합니다. 차량기지를 경로에 포함시키면 이 차량은 자동 정비를 할 수 없게 됩니다 STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}이 경로를 공유하고 있는 모든 차량을 표시합니다. @@ -4032,7 +4032,7 @@ STR_TIMETABLE_TITLE :{WHITE}{VEHICLE STR_TIMETABLE_ORDER_VIEW :{BLACK}행선지표 STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}행선지표 창으로 전환 -STR_TIMETABLE_TOOLTIP :{BLACK}시간표 - 경로를 클릭하여 선택하세요. +STR_TIMETABLE_TOOLTIP :{BLACK}시간표 - 경로를 클릭하여 선택하세요 STR_TIMETABLE_NO_TRAVEL :운행정보 없음 STR_TIMETABLE_NOT_TIMETABLEABLE :이동 (자동; 다음 경로에 의해 시간표 작성) @@ -4052,36 +4052,36 @@ STR_TIMETABLE_TICKS :{COMMA}틱 STR_TIMETABLE_TOTAL_TIME :{BLACK}이 시간표는 완주하는데 {STRING}이 걸릴 것입니다. STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}이 시간표를 완주하는데 최소 {STRING}이 필요합니다 (시간표가 일부만 지정됨) -STR_TIMETABLE_STATUS_ON_TIME :{BLACK}이 차량은 지금 정시운행 중입니다. +STR_TIMETABLE_STATUS_ON_TIME :{BLACK}이 차량은 지금 정시운행 중입니다 STR_TIMETABLE_STATUS_LATE :{BLACK}이 차량은 현재 {STRING} 늦게 운행하고 있습니다 STR_TIMETABLE_STATUS_EARLY :{BLACK}이 차량은 현재 {STRING} 빨리 운행하고 있습니다 -STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}이 시간표는 아직 시작되지 않았습니다. -STR_TIMETABLE_STATUS_START_AT :{BLACK}이 시간표는 {STRING}에 시작될 것입니다. +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+클릭하면 이 차량과 경로를 공유하는 모든 차량에 대하여, 만약 시간표가 완전히 작성되어 있다면 그 경로의 상대적인 순서에 따라 시간표의 시작점을 설정하고 적절히 분배합니다. +STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}이 시간표의 시작 날짜를 선택하세요. CTRL+클릭하면 이 차량과 경로를 공유하는 모든 차량에 대하여, 만약 시간표가 완전히 작성되어 있다면 그 경로의 상대적인 순서에 따라 시간표의 시작점을 설정하고 적절히 분배합니다 STR_TIMETABLE_CHANGE_TIME :{BLACK}시간값 변경 -STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}선택한 경로에서 소요되는 시간 값을 변경합니다. +STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}선택한 경로에서 소요되는 시간 값을 변경합니다 STR_TIMETABLE_CLEAR_TIME :{BLACK}시간값 초기화 -STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}선택한 경로의 시간 값을 초기화합니다. +STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}선택한 경로에서 소요되는 시간 값을 초기화합니다 STR_TIMETABLE_CHANGE_SPEED :{BLACK}속력 제한 -STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}선택한 경로의 최대 여행 속력을 제한합니다. +STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}선택한 경로의 최대 여행 속력을 제한합니다 STR_TIMETABLE_CLEAR_SPEED :{BLACK}속력 제한값 초기화 -STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}선택한 경로의 최대 여행 속력 제한값을 초기화합니다. +STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}선택한 경로의 최대 여행 속력 제한값을 초기화합니다 STR_TIMETABLE_RESET_LATENESS :{BLACK}지연 시간 초기화 -STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}이 차량의 지연 시간값을 초기화하여 정시운행 상태로 바꿉니다. +STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}이 차량의 지연 시간값을 초기화하여, 정시운행 상태로 바꿉니다 STR_TIMETABLE_AUTOFILL :{BLACK}자동 시간 설정 -STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}다음 운행시 자동으로 값을 얻어 시간표를 완성합니다. (역에 머무르는 시간값을 유지하려면 CTRL+클릭하십시오) +STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}다음 운행시 자동으로 값을 얻어 시간표를 완성합니다 (역에 머무르는 시간값을 유지하려면 CTRL+클릭하십시오) STR_TIMETABLE_EXPECTED :{BLACK}예정일 기준 STR_TIMETABLE_SCHEDULED :{BLACK}예정 소요시간 기준 -STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}시간표 검사 기준을 도착 예정일과 도착 예정 시간 기준 중에서 선택합니다. +STR_TIMETABLE_EXPECTED_TOOLTIP :{BLACK}시간표 검사 기준을 도착 예정일과 도착 예정 시간 기준 중에서 선택합니다 STR_TIMETABLE_ARRIVAL_ABBREVIATION :도착: STR_TIMETABLE_DEPARTURE_ABBREVIATION :출발: @@ -4099,42 +4099,42 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}년(年) # AI debug window STR_AI_DEBUG :{WHITE}인공지능/게임 스크립트 디버그 STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM}) -STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}이 인공지능의 이름입니다. +STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}이 인공지능의 이름입니다 STR_AI_DEBUG_SETTINGS :{BLACK}설정 -STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}인공지능과 관련된 설정을 변경합니다. +STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}인공지능과 관련된 설정을 변경합니다 STR_AI_DEBUG_RELOAD :{BLACK}인공지능 재시작 -STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}인공지능을 종료시키고 스크립트를 다시 불러온 다음, 인공지능을 재시작합니다. -STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}인공지능 기록 메시지에서 중단 문구가 나타났을 때 인공지능을 중단할지 여부를 설정합니다. +STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}인공지능을 종료시키고 스크립트를 다시 불러온 다음, 인공지능을 재시작합니다 +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}인공지능 기록 메시지에서 중단 문구가 나타났을 때 인공지능을 중단할지 여부를 설정합니다 STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}중단 문구: STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}중단 문구 -STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}인공지능 로그 메시지가 이 문자열과 일치하면 게임을 일시 정지시킵니다. +STR_AI_DEBUG_BREAK_STR_TOOLTIP :{BLACK}인공지능 기록 메시지에 이 문자열과 일치하는 내용이 있으면 게임을 일시 정지시킵니다 STR_AI_DEBUG_MATCH_CASE :{BLACK}대소문자 구분 -STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}인공지능 기록 메시지에서 중단 문구를 검색할 때 대소문자를 구분할지 여부를 선택합니다. +STR_AI_DEBUG_MATCH_CASE_TOOLTIP :{BLACK}인공지능 기록 메시지에서 중단 문구를 검색할 때 대소문자를 구분할지 여부를 선택합니다 STR_AI_DEBUG_CONTINUE :{BLACK}계속 -STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}중단된 인공지능의 연산을 재개합니다. +STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}중단된 인공지능의 연산을 재개합니다 STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}이 인공지능에서 출력된 기록 메시지를 보여줍니다. -STR_AI_GAME_SCRIPT :{G=f}{BLACK}게임 스크립트 +STR_AI_GAME_SCRIPT :{BLACK}게임 스크립트 STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}게임 스크립트 기록 체크 -STR_ERROR_AI_NO_AI_FOUND :사용할 수 있는 인공지능이 없습니다.{}따라서 이 경쟁사는 아무 것도 하지 못하는 회사입니다.{}'온라인 컨텐츠 다운로드'에서 새로운 인공지능을 다운로드받으세요. -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}작동 중이던 스크립트 중 하나에서 오류가 발생하여 중단되었습니다. 인공지능 / 게임 스크립트 디버그 창에서 스크린샷을 찍어 스크립트 제작자에게 보고하십시오. +STR_ERROR_AI_NO_AI_FOUND :사용할 수 있는 인공지능이 없습니다.{}따라서 이 경쟁사는 아무 것도 하지 못하는 회사입니다.{}'온라인 컨텐츠 다운로드'에서 새로운 인공지능을 다운로드받으세요 +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}작동 중이던 스크립트 중 하나에서 오류가 발생하여 중단되었습니다. 인공지능/게임 스크립트 디버그 창에서 스크린샷을 찍어 스크립트 제작자에게 보고하십시오 STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}인공지능/게임 스크립트 디버그창은 오직 서버만 사용 가능합니다 # AI configuration window STR_AI_CONFIG_CAPTION :{WHITE}인공지능 / 게임 스크립트 설정 -STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}다음에 게임을 시작할 때 이 게임 스크립트를 불러올 것입니다. +STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}다음에 게임을 시작할 때 이 게임 스크립트를 불러올 것입니다 STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}다음에 게임을 시작할 때 이 인공지능을 불러올 것입니다 STR_AI_CONFIG_HUMAN_PLAYER :사용자 플레이어 STR_AI_CONFIG_RANDOM_AI :무작위 인공지능 STR_AI_CONFIG_NONE :(없음) STR_AI_CONFIG_MOVE_UP :{BLACK}위로 이동 -STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}목록에서 선택한 인공지능의 순서를 한 칸 위로 옮깁니다. +STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}목록에서 선택한 인공지능의 순서를 한 칸 위로 옮깁니다 STR_AI_CONFIG_MOVE_DOWN :{BLACK}아래로 이동 -STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}목록에서 선택한 인공지능의 순서를 한 칸 아래로 옮깁니다. +STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}목록에서 선택한 인공지능의 순서를 한 칸 아래로 옮깁니다 -STR_AI_CONFIG_GAMESCRIPT :{G=f}{SILVER}게임 스크립트 -STR_AI_CONFIG_AI :{G=m}{SILVER}인공지능 +STR_AI_CONFIG_GAMESCRIPT :{SILVER}게임 스크립트 +STR_AI_CONFIG_AI :{SILVER}인공지능 STR_AI_CONFIG_CHANGE :{BLACK}{STRING} 선택하기 STR_AI_CONFIG_CHANGE_NONE : @@ -4142,13 +4142,13 @@ STR_AI_CONFIG_CHANGE_AI :인공지능 STR_AI_CONFIG_CHANGE_GAMESCRIPT :게임 스크립트 STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}다른 스크립트 불러오기 STR_AI_CONFIG_CONFIGURE :{BLACK}설정 -STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}인공지능의 매개 변수를 설정합니다. +STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}인공지능의 매개 변수를 설정합니다 # Available AIs window STR_AI_LIST_CAPTION :{WHITE}사용 가능한 {STRING} STR_AI_LIST_CAPTION_AI :인공지능 STR_AI_LIST_CAPTION_GAMESCRIPT :게임 스크립트 -STR_AI_LIST_TOOLTIP :{BLACK}스크립트를 선택하려면 클릭하세요. +STR_AI_LIST_TOOLTIP :{BLACK}스크립트를 선택하려면 클릭하세요 STR_AI_LIST_AUTHOR :{LTBLUE}저자: {ORANGE}{STRING} STR_AI_LIST_VERSION :{LTBLUE}버전: {ORANGE}{NUM} @@ -4205,34 +4205,34 @@ STR_MESSAGE_ESTIMATED_COST :{WHITE}예상 STR_MESSAGE_ESTIMATED_INCOME :{WHITE}예상 수익: {CURRENCY_LONG} # Saveload messages -STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}저장중입니다,{}끝날때까지 기다려주세요 +STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}저장 중입니다.{}끝날 때까지 기다려주세요! STR_ERROR_AUTOSAVE_FAILED :{WHITE}자동 저장 실패 -STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}드라이브를 읽을 수 없습니다. +STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}드라이브를 읽을 수 없습니다 STR_ERROR_GAME_SAVE_FAILED :{WHITE}게임 저장 실패{}{STRING} -STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}파일을 삭제할 수 없습니다. +STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}파일을 삭제할 수 없습니다 STR_ERROR_GAME_LOAD_FAILED :{WHITE}게임 불러오기 실패{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :내부 오류: {STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :손상된 게임 저장 파일 - {STRING} STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :상위 버전의 게임 저장 파일입니다 STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :파일을 읽을 수 없습니다 STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :파일을 쓸 수 없습니다 -STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :데이터 무결성 검사 실패 +STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :데이터 무결성 검사에 실패하였습니다 STR_GAME_SAVELOAD_NOT_AVAILABLE :<사용 불가능> STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}전차를 지원하지 않는 버전으로 게임이 저장되었습니다. 모든 전차는 제거되었습니다. # 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}원본 지도의 크기를 너무 많이 조절하는 것은 좋지 않습니다. 그래도 계속하시겠습니까? @@ -4244,7 +4244,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 @@ -4252,18 +4252,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}... 나무 심기 제한에 다다랐습니다 @@ -4273,28 +4273,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}회사를 인수할 수 없습니다... @@ -4304,142 +4304,142 @@ 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_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}... 이 도시의 중심에 동상을 세우기 적합한 장소가 없습니다 # 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_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다! +STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{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_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}역의 일부를 제거할 수 없습니다... 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_ROAD :{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_THERE_IS_NO_RAILROAD_TRACK :{WHITE}... 선로가 없습니다 +STR_ERROR_THERE_ARE_NO_SIGNALS :{WHITE}... 신호기가 없습니다 STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}이곳의 선로를 바꿀 수 없습니다... @@ -4448,22 +4448,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_NO_SUITABLE_ROAD :{WHITE}적합한 도로가 없습니다 +STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}적합한 전찻길이 없습니다 STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... 적합하지 않은 도로입니다 -STR_ERROR_INCOMPATIBLE_TRAMWAY :{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}... 운하 위에 지을 수 없습니다 @@ -4472,8 +4472,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 @@ -4481,18 +4481,18 @@ 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}다리 끝이 지도 밖을 넘어갑니다 # 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_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}중간에 다른 터널이 있습니다 STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}터널을 지도 맨 끝까지 건설할 수 없습니다 STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}지형 문제로 터널의 반대쪽 출구를 만들 수 없습니다 STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... 터널이 너무 깁니다! @@ -4546,7 +4546,7 @@ 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_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}항공기의 차량 이름을 다시 지정할 수 없습니다... From 515202da7bfe8c55d2eeaf800620a01af6a372fb Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 3 May 2019 21:35:24 +0200 Subject: [PATCH 07/59] Fix 6f33cfd05: incorrect {G} usage in korean translation --- src/lang/korean.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index b79d20e308..a6190a464d 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -3688,7 +3688,7 @@ STR_REPLACE_VEHICLES_WHEN_OLD :오래된 차 STR_REPLACE_HELP_START_BUTTON :{BLACK}왼쪽에서 선택한 기관차를 오른쪽의 새 기관차로 교체하려면 누르세요 STR_REPLACE_NOT_REPLACING :{BLACK}교체 안 됨 STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}차량이 선택되지 않았음 -STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGINE}{G "으" ""}로 교체 +STR_REPLACE_REPLACING_WHEN_OLD :낡으면 {ENGINE}{G 0 "으" ""}로 교체 STR_REPLACE_VEHICLES_STOP :{BLACK}차량 교체 중지 STR_REPLACE_HELP_STOP_BUTTON :{BLACK}왼쪽에서 선택한 기관차의 차량교체를 중지하려면 이 버튼을 누르세요 From 6b492057453d9eb5017ca2d2684654cb58efe4a7 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 4 May 2019 19:45:44 +0200 Subject: [PATCH 08/59] Update: Translations from eints spanish (mexican): 16 changes by Absay russian: 18 changes by Lone_Wolf --- src/lang/russian.txt | 22 ++++++++++++++++++---- src/lang/spanish_MX.txt | 16 ++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 8a2ce1cf53..913e38bf82 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -467,6 +467,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}Открыть панель ландшафта для изменения рельефа, посадки деревьев и т.д. @@ -487,6 +488,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 - оценка стоимости строительства. @@ -1579,8 +1581,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 :наиболее используемые @@ -2799,8 +2801,10 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Принимает: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип ж/д полотна: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Тип трамвайных путей: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Макс. скорость ж/д: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Макс. скорость авто: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Ограничение скорости трамваев: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Камни @@ -3540,6 +3544,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}Станции: @@ -3648,6 +3653,7 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Новый мо STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Новый магниторельсовый поезд STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Новый автомобиль +STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Новые трамваи ############ range for vehicle availability starts STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Новый поезд @@ -3824,6 +3830,7 @@ 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_AIRCRAFT :воздушное судно STR_ENGINE_PREVIEW_AIRCRAFT.gen :воздушного судна @@ -3854,8 +3861,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 :Начать замену всех ТС @@ -3873,12 +3880,14 @@ STR_REPLACE_WAGONS :Вагоны STR_REPLACE_ALL_RAILTYPE :Весь ж/д транспорт 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_REMOVE_WAGON :{BLACK}Удаление вагонов: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Разрешить при автозамене сохранять длину поездов путём удаления вагонов (начиная с головы поезда), если при автозамене локомотива увеличится длина поезда. @@ -4603,6 +4612,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}Не удалось удалить рельсы... @@ -4622,6 +4632,10 @@ 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_TRAMWAY :{WHITE}Невозможно сменить тип трамвайных рельсов... +STR_ERROR_NO_SUITABLE_ROAD :{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/spanish_MX.txt b/src/lang/spanish_MX.txt index afe937a2ec..ee4559401f 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2618,8 +2618,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 @@ -3359,6 +3362,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: @@ -3467,9 +3471,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuevos monorrie STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuevos trenes maglev 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 @@ -3635,10 +3641,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensaje 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_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 @@ -3680,6 +3688,7 @@ 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_REPLACE_INFO_TAB :{BLACK}Mostrar el vehículo que reemplazará al otro de la izquierda @@ -4412,6 +4421,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í... @@ -4431,6 +4441,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í... From d0d4fc73a7e06d6be1426e574ea21b850399105e Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 3 May 2019 16:27:01 +0200 Subject: [PATCH 09/59] Codechange: replace grow() usage in AllocateSound() --- src/newgrf_sound.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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]; } From 212140b88bc08172b4f90ccfcde0c6d479adbb55 Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 3 May 2019 16:55:11 +0200 Subject: [PATCH 10/59] Codechange: replace grow() usage in ClientNetworkContentSocketHandler::OnReceiveData() --- src/network/network_content.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 8768d314e6..762a8c308a 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -574,7 +574,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. */ From 9184a62958815393db5a505cc3b3ca9ab6d3076e Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 3 May 2019 18:11:14 +0200 Subject: [PATCH 11/59] Codechange: replace grow() usage for MidiFile --- src/music/midifile.cpp | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) 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); From 26aa3b86233b5ed9c1d3bfe67e2826ca6ff48ca7 Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 3 May 2019 18:17:58 +0200 Subject: [PATCH 12/59] Remove: grow() helper function --- src/core/smallvec_type.hpp | 17 ----------------- 1 file changed, 17 deletions(-) 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 */ From 1fe580cd2bac8a3214f35ff79f17730044fdd6f3 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 4 May 2019 18:25:13 +0100 Subject: [PATCH 13/59] Fix c02ef3e456: Incorrect order of road toolbar icons. --- src/road_cmd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 325dd0f6ea..9ade036f0c 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; From 7ef2f11c4c0191e3300fce60c3fc7fe4a88e6910 Mon Sep 17 00:00:00 2001 From: Transportman Date: Sat, 4 May 2019 20:31:56 +0200 Subject: [PATCH 14/59] Fix #7570: Show Github URL in the crashlog window --- src/os/macosx/crashlog_osx.cpp | 2 +- src/os/windows/crashlog_win.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/os/macosx/crashlog_osx.cpp b/src/os/macosx/crashlog_osx.cpp index 16c0296393..25389d1ca7 100644 --- a/src/os/macosx/crashlog_osx.cpp +++ b/src/os/macosx/crashlog_osx.cpp @@ -203,7 +203,7 @@ public: char message[1024]; seprintf(message, lastof(message), "Please send the generated crash information and the last (auto)save to the developers. " - "This will greatly help debugging. The correct place to do this is http://bugs.openttd.org.\n\n" + "This will greatly help debugging. The correct place to do this is https://github.com/OpenTTD/OpenTTD/issues.\n\n" "Generated file(s):\n%s\n%s\n%s", this->filename_log, this->filename_save, this->filename_screenshot); diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index a197899766..a64228bfb4 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -582,7 +582,7 @@ static bool _expanded; static const TCHAR _crash_desc[] = _T("A serious fault condition occurred in the game. The game will shut down.\n") _T("Please send the crash information and the crash.dmp file (if any) to the developers.\n") - _T("This will greatly help debugging. The correct place to do this is http://bugs.openttd.org. ") + _T("This will greatly help debugging. The correct place to do this is https://github.com/OpenTTD/OpenTTD/issues. ") _T("The information contained in the report is displayed below.\n") _T("Press \"Emergency save\" to attempt saving the game. Generated file(s):\n") _T("%s"); From 402e18b460efdb2c1bc4d5623e8019bd913f6db7 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 27 Apr 2019 19:36:02 +0100 Subject: [PATCH 15/59] Change: Allow building road stops over self-owned one-way/blocked road. --- src/station_cmd.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 1a483d29d2..9dbe356e7b 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1004,13 +1004,16 @@ static CommandCost CheckFlatLandRoadStop(TileArea tile_area, DoCommandFlag flags if (RoadTypeIsRoad(rt) && !HasPowerOnRoad(rt, road_rt)) return_cmd_error(STR_ERROR_NO_SUITABLE_ROAD); + if (GetDisallowedRoadDirections(cur_tile) != DRD_NONE) { + CommandCost ret = CheckOwnership(road_owner); + if (ret.Failed()) return ret; + } + cost.AddCost(RoadBuildCost(road_rt) * (2 - num_pieces)); } else if (RoadTypeIsRoad(rt)) { cost.AddCost(RoadBuildCost(rt) * 2); } - if (GetDisallowedRoadDirections(cur_tile) != DRD_NONE) return_cmd_error(STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD); - /* There is a tram, check if we can build road+tram stop over it. */ RoadType tram_rt = GetRoadType(cur_tile, RTT_TRAM); if (tram_rt != INVALID_ROADTYPE) { From a1de834104f517dfe1d2676b808a20d06bc080a5 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 27 Apr 2019 20:14:31 +0100 Subject: [PATCH 16/59] Cleanup: Remove unused string. --- src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/catalan.txt | 1 - src/lang/croatian.txt | 1 - src/lang/czech.txt | 1 - src/lang/danish.txt | 1 - src/lang/dutch.txt | 1 - src/lang/english.txt | 1 - src/lang/english_US.txt | 1 - src/lang/estonian.txt | 1 - src/lang/finnish.txt | 1 - src/lang/french.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/german.txt | 1 - src/lang/greek.txt | 1 - src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/italian.txt | 1 - src/lang/korean.txt | 1 - src/lang/latin.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/polish.txt | 1 - src/lang/portuguese.txt | 1 - src/lang/russian.txt | 1 - src/lang/serbian.txt | 1 - src/lang/spanish.txt | 1 - src/lang/spanish_MX.txt | 1 - src/lang/swedish.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/vietnamese.txt | 1 - 33 files changed, 33 deletions(-) diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 9413ccce5f..5a7011e3b2 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -4590,7 +4590,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 19e7315912..5e688f006b 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -4280,7 +4280,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/catalan.txt b/src/lang/catalan.txt index 75bd441ea8..52fed2d757 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -4325,7 +4325,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 aed0d583ea..98d691a158 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -4438,7 +4438,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... diff --git a/src/lang/czech.txt b/src/lang/czech.txt index b970f6c276..f797a94ac8 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -4343,7 +4343,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... diff --git a/src/lang/danish.txt b/src/lang/danish.txt index c5045b9d1d..deb41bef25 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -4327,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 d090498fec..5b1b87fd37 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -4360,7 +4360,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... diff --git a/src/lang/english.txt b/src/lang/english.txt index 9641ecc041..cfe03b6d04 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -4360,7 +4360,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_US.txt b/src/lang/english_US.txt index a5744673e4..aca755c704 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -4339,7 +4339,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/estonian.txt b/src/lang/estonian.txt index 68ecd43d3e..ea32d2a4fe 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -4288,7 +4288,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/finnish.txt b/src/lang/finnish.txt index 83a60edddd..be048b3d03 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -4342,7 +4342,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... diff --git a/src/lang/french.txt b/src/lang/french.txt index 9d58338776..58bdcf0fc9 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -4361,7 +4361,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... cett STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... mauvaise orientation de la route STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... les arrêts ne peuvent pas avoir de virages STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... les arrêts ne peuvent pas avoir de jonctions -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... la route est à sens unique ou bloquée # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Impossible de supprimer une partie de la gare... diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 78b5d5cc99..056bbe387a 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -4500,7 +4500,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... tha STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... tha comhair an rathaid cearr STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... chan urrainn dha dh’oiseanan a bhith aig stèiseanan draibhidh troimhe STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... chan urrainn dha ghoibhlean a bhith aig stèiseanan draibhidh troimhe -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... rathad aon-shligheach no bacte # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Cha ghabh pàirt dhen stèisean toirt air falbh... diff --git a/src/lang/german.txt b/src/lang/german.txt index f7cb7807c9..f1940b1ec1 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -4306,7 +4306,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dies STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Straße verläuft in die falsche Richtung STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... Bus- und Lkw-Haltestellen können nicht um die Kurve gehen STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... Bus- und Lkw-Haltestellen können keine Abzweigung haben -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}...Einbahnstraße oder blockierter Weg # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Dieser Teil der Station kann nicht entfernt werden... diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 66d084b204..2ff31a610d 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -4451,7 +4451,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}Δεν μπορεί να αφαιρεθεί μέρος του σταθμού... diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index f644a8d60d..3c576bdf4d 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -4279,7 +4279,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}... לא ניתן לבטל חלק מהתחנה diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 24ea6a7f4b..8f494ab02b 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -4406,7 +4406,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ez e STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... az út a másik irányba vezet STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... áthaladó megállóhelyeken nem lehet kanyar STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... áthaladó megállóhelyeken nem lehet elágazás -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... az út egyirányú vagy blokkolt # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nem lehet eltávolítani az állomás részét... diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 439f6c57ee..c35f02079f 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -4270,7 +4270,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... jala STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... menghadap pada arah yang salah STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... terminal lintas-lalu tak bisa memiliki sudut STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... terminal lintas-lalu tak bisa memiliki simpangan -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... jalannya satu arah atau terhalang # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Tidak dapat menghapus bagian dari stasiun... diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 9c5557f2a1..65ad01bd9a 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -4372,7 +4372,6 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ques STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... strada rivolta nella direzione sbagliata STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... le fermate passanti non possono trovarsi in curva STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... le fermate passanti non possono avere raccordi -STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... la strada è bloccata o a senso unico # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Impossibile rimuovere parte della stazione... diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a6190a464d..7b3f4300b1 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -4361,7 +4361,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}역의 일부를 제거할 수 없습니다... diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 80d279eef9..a9cd508745 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -4500,7 +4500,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/luxembourgish.txt b/src/lang/luxembourgish.txt index 00885e99ab..1b976dd7e8 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -4314,7 +4314,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/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index ac1a632d96..0506cb2b40 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -4344,7 +4344,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... diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 8606156b23..285096874b 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4671,7 +4671,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 2bd09a8450..f90aaaefbb 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -4340,7 +4340,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/russian.txt b/src/lang/russian.txt index 913e38bf82..60c60bf9e0 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -4541,7 +4541,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}Невозможно удалить часть станции... diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 25e2ccec33..4568168083 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -4447,7 +4447,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/spanish.txt b/src/lang/spanish.txt index 69af33c51e..97cac76def 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -4272,7 +4272,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 ee4559401f..5f6442f0f0 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -4350,7 +4350,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... diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 2684c7c613..5c124b8575 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -4305,7 +4305,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... diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 0262ac9b4e..8e6e5196aa 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -4314,7 +4314,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 03baf76e0b..cbe266a59f 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -4456,7 +4456,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}Не можна зруйнувати частину станції... diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 87b9892cee..8bd361273d 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -4283,7 +4283,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... From 4d0ee65b51e5b61f559212bb687bbef6f87f52aa Mon Sep 17 00:00:00 2001 From: Corns McGowan Date: Mon, 6 May 2019 00:18:52 +1000 Subject: [PATCH 17/59] Change: Set default setting in server browser of "Advertised" to "Yes". (#7568) --- src/table/settings.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/table/settings.ini b/src/table/settings.ini index 5e57e5216c..ab35b20237 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -3740,7 +3740,7 @@ var = network.lan_internet type = SLE_UINT8 flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC guiflags = SGF_NETWORK_ONLY -def = 0 +def = 1 min = 0 max = 1 From d04383ccf06e5f44e92e5287e391138aa78a3b7a Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 5 May 2019 19:45:41 +0200 Subject: [PATCH 18/59] Update: Translations from eints croatian: 25 changes by VoyagerOne --- src/lang/croatian.txt | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 98d691a158..3c09176d6a 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. @@ -2530,7 +2532,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 @@ -2715,8 +2721,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 @@ -3456,6 +3465,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: @@ -3564,9 +3574,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova jednotrač STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova vozila Maglev 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 @@ -3732,10 +3744,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Poruka o 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_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 @@ -3777,14 +3791,18 @@ 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 @@ -4508,6 +4526,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... @@ -4527,6 +4546,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... From 652268ad1a66c2fa7d9b4b1146595751276043f4 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 7 May 2019 19:45:45 +0200 Subject: [PATCH 19/59] Update: Translations from eints swedish: 31 changes by Joel_A dutch: 2 changes by JanWillem hungarian: 25 changes by Brumi --- src/lang/dutch.txt | 4 ++-- src/lang/hungarian.txt | 25 +++++++++++++++++++++++++ src/lang/swedish.txt | 38 +++++++++++++++++++++++++++++++------- 3 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 5b1b87fd37..d31823bbf6 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1866,7 +1866,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 @@ -3131,7 +3131,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} diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 8f494ab02b..907d42a19e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -404,6 +404,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Közelí STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Távolítás STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Vasúti pálya építése STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Út építése +STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Villamospálya építése STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Vízi út építése STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Repülőtér építése STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Nyisd meg a tájrendező ablakot a talaj emeléséhez vagy süllyesztéséhez, faültetéshez stb. @@ -424,6 +425,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Táj sze STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Település-generálás STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Gazdasági épület-generálás STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Út építése +STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Villamospálya építése STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Faültetés. Shift lenyomásával megmutatja a becsült építési költséget STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Felirat lerakása STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Objektum elhelyezése. Shift lenyomásával megmutatja a várható költséget @@ -2498,7 +2500,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Közúti STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Villamos-alagút építése. Shift lenyomásával megmutatja a becsült építési költséget STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Építés és felszedés közötti váltás utaknál STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Építés és bontás közötti váltás villamospályáknál +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Út átalakítása a kiválasztott típusra. Shift lenyomásával megmutatja a becsült építési költséget +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Villamospálya átalakítása a kiválasztott típusra. Shift lenyomásával megmutatja a becsült építési költséget +STR_ROAD_NAME_ROAD :Út +STR_ROAD_NAME_TRAM :Villamospálya # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garázs helyzete @@ -2683,8 +2689,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Elfogad: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Vasút típusa: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Út típusa: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Villamospálya típusa: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Vasúti pályasebesség: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Közúti sebességkorlátozás: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Villamosok sebességkorlátozása: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kövek @@ -3424,6 +3433,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}{COMPANY STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Vasúti elemek: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Vasúti jelzők STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Közúti elemek: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Villamospálya elemek: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Vízi elemek: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Csatornák STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Állomások: @@ -3532,9 +3542,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Új egysínű j STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Új Maglev járművek STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Új közúti járművek +STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Új villamosok ############ range for vehicle availability starts STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Új vasúti járművek +STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Új közúti járművek STR_BUY_VEHICLE_SHIP_CAPTION :Új hajók STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Új repülőgépek ############ range for vehicle availability ends @@ -3700,10 +3712,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Üzenet STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Most készültek el egy új {STRING} tervei - érdekelne a jármű egy éves kizárólagos használata, hogy megnézhessük a képességeit, mielőtt mindenki számára elérhetővé tesszük? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :vasúti mozdony +STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :villamos vasúti mozdony STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :egysínű mozdony STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev mozdony STR_ENGINE_PREVIEW_ROAD_VEHICLE :közúti jármű +STR_ENGINE_PREVIEW_TRAM_VEHICLE :villamos STR_ENGINE_PREVIEW_AIRCRAFT :repülőgép STR_ENGINE_PREVIEW_SHIP :hajó @@ -3745,14 +3759,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Váltás STR_REPLACE_ENGINES :Mozdonyok STR_REPLACE_WAGONS :Vagonok STR_REPLACE_ALL_RAILTYPE :Minden vasúti jármű +STR_REPLACE_ALL_ROADTYPE :Minden típus STR_REPLACE_HELP_RAILTYPE :{BLACK}Cserélendő egységek vasúttípusának kiválasztása +STR_REPLACE_HELP_ROADTYPE :{BLACK}Cserélendő járművek úttípusának kiválasztása STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Megmutatja, hogy melyik bal oldali egységet akarod kicserélni STR_REPLACE_RAIL_VEHICLES :Normál vasúti járművek STR_REPLACE_ELRAIL_VEHICLES :Villamosított vasúti járművek STR_REPLACE_MONORAIL_VEHICLES :Egysínű Vasutak STR_REPLACE_MAGLEV_VEHICLES :Maglev Járművek +STR_REPLACE_ROAD_VEHICLES :Közúti járművek +STR_REPLACE_TRAM_VEHICLES :Villamosok STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon törlés: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Az automatikus cserénél a szerelvény hosszának a megtartása vagonok eltávolításával (mozdony utántól kezdve), ha a csere után a szerelvény hosszabb lenne @@ -4476,6 +4494,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Nincs me STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Előbb le kell rombolnod a vasúti pályát STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}... az út egyirányú vagy blokkolt STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Ehhez a síntipushoz nem megengedett vasúti átjárók építése +STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Ehhez az úttípushoz nem megengedett vasúti átjárók építése STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Nem helyezhetsz ide jelzőt... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Nem építhetsz ide vasúti pályát... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Nem szedheted fel innen a vasúti pályát... @@ -4495,6 +4514,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Nem romb STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Innen nem lehet villamospályát eltávolítani... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... nincs itt út STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... nincs itt villamospálya +STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Nem lehet itt az út típusát átalakítani... +STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Nem lehet itt a villamospálya típusát átalakítani... +STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nincs megfelelő út +STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nincs megfelelő villamospálya +STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nem kompatibilis az út +STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nem kompatibilis a villamospálya # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Ide nem lehet csatornát építeni... diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 5c124b8575..6f09523d61 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 @@ -2126,7 +2134,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 @@ -2418,6 +2426,7 @@ 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 @@ -2605,6 +2614,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 @@ -2736,6 +2746,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 @@ -2750,6 +2761,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 @@ -3108,6 +3120,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 - @@ -3445,6 +3458,7 @@ 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 @@ -3460,6 +3474,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} @@ -3482,12 +3497,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å @@ -3599,6 +3618,7 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meddelan 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_ELRAIL_LOCOMOTIVE :elektrifierat järnvägslok STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monorail-lok STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-lok @@ -3644,6 +3664,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 @@ -3652,6 +3673,7 @@ 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 @@ -3794,7 +3816,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} @@ -4375,6 +4397,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... @@ -4394,6 +4417,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... From 51dd751f4aa20bfe0a2e08a5f9030b7946b5b546 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Sat, 4 May 2019 16:02:36 +0100 Subject: [PATCH 20/59] Fix #7565: Incorrect cursor used for placing road/tram tunnels. --- src/table/roadtypes.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/table/roadtypes.h b/src/table/roadtypes.h index 348cdb677b..4fcd3d6e76 100644 --- a/src/table/roadtypes.h +++ b/src/table/roadtypes.h @@ -36,7 +36,7 @@ static const RoadTypeInfo _original_roadtypes[] = { SPR_CURSOR_ROAD_NWSE, SPR_CURSOR_AUTOROAD, SPR_CURSOR_ROAD_DEPOT, - SPR_CURSOR_TUNNEL_RAIL, + SPR_CURSOR_ROAD_TUNNEL, SPR_CURSOR_CONVERT_ROAD, }, @@ -116,7 +116,7 @@ static const RoadTypeInfo _original_roadtypes[] = { SPR_CURSOR_TRAMWAY_NWSE, SPR_CURSOR_AUTOTRAM, SPR_CURSOR_ROAD_DEPOT, - SPR_CURSOR_TUNNEL_RAIL, + SPR_CURSOR_ROAD_TUNNEL, SPR_CURSOR_CONVERT_TRAM, }, From be53ef24c1ea63772016b3f85e79df99d19c4d13 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 9 May 2019 19:45:46 +0200 Subject: [PATCH 21/59] Update: Translations from eints ukrainian: 11 changes by odisseus --- src/lang/ukrainian.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index cbe266a59f..3246627685 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 @@ -2544,7 +2546,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 для показу витрат на будівництво @@ -2562,6 +2564,7 @@ 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 @@ -2747,6 +2750,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} @@ -3565,6 +3569,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}Клацніть мишою, щоб створити групу @@ -4471,7 +4476,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}Спочатку зруйнуйте аеропорт @@ -4526,6 +4531,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}Неможливо прибрати колію звідси... @@ -4545,6 +4551,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}Неможливо будувати канал тут... @@ -4597,6 +4604,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}Не можна додати спільний транспорт у групу... From 47fdbdd324261dcb6c8cc4e4d7b13fc14ff06311 Mon Sep 17 00:00:00 2001 From: glx22 Date: Fri, 10 May 2019 14:22:07 +0200 Subject: [PATCH 22/59] Fix: ignore C++ standard library headers in depend (#7578) --- src/depend/depend.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/depend/depend.cpp b/src/depend/depend.cpp index 76c186265c..5f95ffc426 100644 --- a/src/depend/depend.cpp +++ b/src/depend/depend.cpp @@ -507,6 +507,9 @@ private: */ const char *GeneratePath(const char *dirname, const char *filename, bool local) { + /* Ignore C++ standard library headers. */ + if (strchr(filename, '.') == nullptr) return nullptr; + if (local) { if (access(filename, R_OK) == 0) return strdup(filename); From 7a0e2923e50cfe1318b8db580b75e639a1a60f68 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 10 May 2019 19:45:45 +0200 Subject: [PATCH 23/59] Update: Translations from eints norwegian (bokmal): 28 changes by Leifbk russian: 17 changes by Lone_Wolf korean: 14 changes by telk5093 --- src/lang/korean.txt | 28 ++++++++++++++-------------- src/lang/norwegian_bokmal.txt | 28 ++++++++++++++++++++++++++++ src/lang/russian.txt | 21 +++++++++++++++++---- 3 files changed, 59 insertions(+), 18 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 7b3f4300b1..6262f4156c 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -290,8 +290,8 @@ STR_SORT_BY_PRODUCTION :생산 STR_SORT_BY_TYPE :종류 STR_SORT_BY_TRANSPORTED :수송량 STR_SORT_BY_NUMBER :번호 -STR_SORT_BY_PROFIT_LAST_YEAR :작년 수익 -STR_SORT_BY_PROFIT_THIS_YEAR :올해 수익 +STR_SORT_BY_PROFIT_LAST_YEAR :작년 이익 +STR_SORT_BY_PROFIT_THIS_YEAR :올해 이익 STR_SORT_BY_AGE :연령 STR_SORT_BY_RELIABILITY :신뢰도 STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :화물당 총 수송량 @@ -625,15 +625,15 @@ STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}이 회 STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}차량: STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}역: STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}최소 이익: -STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}최소 수입: -STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}최대 수입: +STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}최소 수익: +STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}최대 수익: STR_PERFORMANCE_DETAIL_DELIVERED :{BLACK}수송량: STR_PERFORMANCE_DETAIL_CARGO :{BLACK}화물: STR_PERFORMANCE_DETAIL_MONEY :{BLACK}재정: STR_PERFORMANCE_DETAIL_LOAN :{BLACK}대출: STR_PERFORMANCE_DETAIL_TOTAL :{BLACK}종합: ############ End of order list -STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}작년에 수익을 낸 차량의 수를 나타냅니다. 자동차/전차, 열차, 선박, 항공기를 포함합니다. +STR_PERFORMANCE_DETAIL_VEHICLES_TOOLTIP :{BLACK}작년에 이익을 낸 차량의 수를 나타냅니다. 자동차/전차, 열차, 선박, 항공기를 포함합니다. STR_PERFORMANCE_DETAIL_STATIONS_TOOLTIP :{BLACK}현재 영업 중인 역사의 수를 나타냅니다. 기차역, 버스 정류장, 공항 등은 같은 역으로 묶여있어도 따로 집계됩니다. STR_PERFORMANCE_DETAIL_MIN_PROFIT_TOOLTIP :{BLACK}가장 낮은 수입을 가진 차량의 이익입니다. (2년 이상된 차량만 계산) STR_PERFORMANCE_DETAIL_MIN_INCOME_TOOLTIP :{BLACK}지난 12분기 동안 최소 이익을 달성한 차량이 벌어들인 돈의 양입니다. @@ -863,7 +863,7 @@ STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} : 차량이 매우 낡아 교체가 시급합니다 STR_NEWS_TRAIN_IS_STUCK :{WHITE}{VEHICLE} : 다음 목적지로 가는 경로를 찾을 수 없습니다. STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} : 아직 다음 목적지에 도착하지 못했습니다. -STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}{VEHICLE}의 작년 수익이 {CURRENCY_LONG} 입니다. +STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}{VEHICLE}의 작년 이익이 {CURRENCY_LONG} 입니다. STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}거리가 너무 멀어서 {VEHICLE}이 다음 목적지에 도착할 수 없습니다 STR_NEWS_ORDER_REFIT_FAILED :{WHITE}경로 상에 있던 개조에 실패하여 {VEHICLE}의 운행을 멈췄습니다. @@ -1262,7 +1262,7 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :멀티 플레 STR_CONFIG_SETTING_FREIGHT_TRAINS :화물 무게가중치 (무거운 열차를 구현할 때 사용): {STRING}배 STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :열차가 싣고 있는 화물이 열차 속력에 미치는 영향에 대해 설정합니다. 값을 높게 설정하면 화물을 수송하는데 더 큰 힘이 필요합니다. (특히 언덕을 오를 때 심해집니다) STR_CONFIG_SETTING_PLANE_SPEED :항공기 속력 조절: {STRING} -STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :항공 수송에 대한 수익을 제한하기 위해, 다른 운송 수단의 속력을 1로 보았을 때의 항공기의 속력 비율을 설정합니다. +STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :항공 수송에 대한 수입을 제한하기 위해, 다른 운송 수단의 속력을 1로 보았을 때의 항공기의 속력 비율을 설정합니다. STR_CONFIG_SETTING_PLANE_SPEED_VALUE :(실제 속력) x {COMMA}분의 1 STR_CONFIG_SETTING_PLANE_CRASHES :항공기 추락 빈도수: {STRING} STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :항공기 충돌 사고가 일어날 수 있는지 여부를 설정합니다.{}* 대형 항공기는 소형 공항에 착륙할 때 항상 충돌 사고를 일으킬 가능성이 있습니다. @@ -1412,7 +1412,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :긴 (2012년 1 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :짧은 (2012.01.01) STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :국제표준규격 (2012-01-01) -STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시정지: {STRING} +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시 정지: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 설정을 켜면, 새로운 게임을 시작할 때 지도를 더욱 자세히 살펴볼 수 있도록 게임을 자동으로 일시정지합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :일시 정지 상태에서 가능한 행동: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :게임이 일시 정지된 동안에 할 수 있는 행동을 선택합니다. @@ -3027,7 +3027,7 @@ STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}파일 STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}대체할 수 있는 GRF를 불러왔습니다 STR_NEWGRF_DISABLED_WARNING :{WHITE}없는 GRF 파일은 비활성화됩니다 STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}GRF 파일 없음 -STR_NEWGRF_UNPAUSE_WARNING :{WHITE}일시정지 해제 시 오류가 발생하거나 게임이 종료될 수 있으며, 이와 관련된 버그 리포트는 접수받지 않습니다.{}정말로 일시정지를 해제하시겠습니까? +STR_NEWGRF_UNPAUSE_WARNING :{WHITE}일시 정지 해제 시 오류가 발생하거나 게임이 종료될 수 있으며, 이와 관련된 버그 리포트는 접수받지 않습니다.{}정말로 일시 정지를 해제하시겠습니까? # NewGRF status STR_NEWGRF_LIST_NONE :없음 @@ -3287,7 +3287,7 @@ STR_EDIT_WAYPOINT_NAME :{WHITE}경유 # Finances window STR_FINANCES_CAPTION :{WHITE}{COMPANY}의 재정 {BLACK}{COMPANY_NUM} -STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}지출/수입 +STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}수입/지출 STR_FINANCES_YEAR :{WHITE}{NUM} STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}건설 STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}신규 차량 구입 @@ -3416,7 +3416,7 @@ STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}차량 - STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}선박 - 선박의 정보를 보려면 클릭하세요 STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}항공기 - 항공기 정보를 보려면 클릭하세요 -STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}올해 수입: {CURRENCY_LONG} (작년: {CURRENCY_LONG}) +STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}올해 이익: {CURRENCY_LONG} (작년: {CURRENCY_LONG}) STR_VEHICLE_LIST_AVAILABLE_TRAINS :사용 가능한 열차 STR_VEHICLE_LIST_AVAILABLE_ROAD_VEHICLES :사용 가능한 차량 @@ -3467,8 +3467,8 @@ STR_GROUP_REMOVE_ALL_VEHICLES :모든 차량 STR_GROUP_RENAME_CAPTION :{BLACK}그룹 이름 설정 -STR_GROUP_PROFIT_THIS_YEAR :올해 수익: -STR_GROUP_PROFIT_LAST_YEAR :작년 수익: +STR_GROUP_PROFIT_THIS_YEAR :올해 이익: +STR_GROUP_PROFIT_LAST_YEAR :작년 이익: STR_GROUP_OCCUPANCY :현재 사용량: STR_GROUP_OCCUPANCY_VALUE :{NUM}% @@ -3798,7 +3798,7 @@ STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}최고 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}무게: {LTBLUE}{WEIGHT_SHORT} {BLACK}힘: {LTBLUE}{POWER}{BLACK} 최고 속력: {LTBLUE}{VELOCITY} {BLACK}최고 견인력: {LTBLUE}{FORCE} -STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}올해 수익: {LTBLUE}{CURRENCY_LONG} (작년: {CURRENCY_LONG}) +STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}올해 이익: {LTBLUE}{CURRENCY_LONG} (작년: {CURRENCY_LONG}) STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}신뢰도: {LTBLUE}{COMMA}% {BLACK}최근 점검 이후의 고장: {LTBLUE}{COMMA} STR_VEHICLE_INFO_BUILT_VALUE :{LTBLUE}{ENGINE} {BLACK}생산: {LTBLUE}{NUM}{BLACK} 가격: {LTBLUE}{CURRENCY_LONG} diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 0506cb2b40..c9485e3d68 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 @@ -2435,7 +2440,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 @@ -2620,8 +2629,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 @@ -3361,6 +3373,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: @@ -3469,9 +3482,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nye tog/vogner STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nye tog/vogner for maglev 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 @@ -3637,10 +3652,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Melding 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_RAILROAD_LOCOMOTIVE :{G=neuter}lokomotiv +STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :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 @@ -3682,14 +3699,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle m STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner STR_REPLACE_ALL_RAILTYPE :Status: Mangler +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. @@ -4414,6 +4435,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... @@ -4433,6 +4455,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/russian.txt b/src/lang/russian.txt index 60c60bf9e0..34ea621f07 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2612,7 +2612,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}Направление гаража @@ -2801,6 +2805,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_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} @@ -2839,9 +2844,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 :Трамвайные пути @@ -3657,8 +3662,9 @@ 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} @@ -3823,6 +3829,8 @@ STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Мы со STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :ж/д локомотив STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.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 :магниторельсовый локомотив @@ -3831,6 +3839,7 @@ 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 :воздушного судна @@ -3878,6 +3887,7 @@ 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}Выбор вида транспорта для замены @@ -3888,6 +3898,7 @@ 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}Разрешить при автозамене сохранять длину поездов путём удаления вагонов (начиная с головы поезда), если при автозамене локомотива увеличится длина поезда. @@ -4631,8 +4642,10 @@ 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}... несовместимый тип трамвайных путей From 24c59283ecc334615bf68bf4d8a2fb258339a278 Mon Sep 17 00:00:00 2001 From: stormcone <48624099+stormcone@users.noreply.github.com> Date: Fri, 10 May 2019 19:19:07 +0200 Subject: [PATCH 24/59] Fix #7224: Drag and drop vehicle group creation does not work correctly. When drag and drop a vehicle into an empty slot in the vehicle group window it tries to create the new group as the subgroup of the first group (GroupID = 0). This is failing if the dragged vehicle's type is different than the first group's vehicle type. --- src/group_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index 9915546eb9..a9451ee8f8 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -537,7 +537,7 @@ CommandCost CmdAddVehicleGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, u if (new_g == NEW_GROUP) { /* Create new group. */ - CommandCost ret = CmdCreateGroup(0, flags, v->type, 0, nullptr); + CommandCost ret = CmdCreateGroup(0, flags, v->type, INVALID_GROUP, nullptr); if (ret.Failed()) return ret; new_g = _new_group_id; From f4921d2c3ee25139c77278da5fc33194f0cbf075 Mon Sep 17 00:00:00 2001 From: PeterN Date: Fri, 10 May 2019 21:07:38 +0100 Subject: [PATCH 25/59] Fix #7576: Crash when destroying rail/tram crossing. (#7579) --- src/road_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 9ade036f0c..87da8186ce 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1263,7 +1263,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; From 83c1678f9eb75e1a470e477dbeb02e95ad75eabc Mon Sep 17 00:00:00 2001 From: PeterN Date: Fri, 10 May 2019 21:36:03 +0100 Subject: [PATCH 26/59] Fix #7577: Check if linkgraph station index is valid before dereferencing. (#7583) --- src/saveload/linkgraph_sl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/saveload/linkgraph_sl.cpp b/src/saveload/linkgraph_sl.cpp index e8f10d3cd3..0280cb1f69 100644 --- a/src/saveload/linkgraph_sl.cpp +++ b/src/saveload/linkgraph_sl.cpp @@ -233,7 +233,8 @@ void AfterLoadLinkGraphs() LinkGraph *lg; FOR_ALL_LINK_GRAPHS(lg) { for (NodeID node_id = 0; node_id < lg->Size(); ++node_id) { - (*lg)[node_id].UpdateLocation(Station::Get((*lg)[node_id].Station())->xy); + const Station *st = Station::GetIfValid((*lg)[node_id].Station()); + if (st != nullptr) (*lg)[node_id].UpdateLocation(st->xy); } } @@ -241,7 +242,8 @@ void AfterLoadLinkGraphs() FOR_ALL_LINK_GRAPH_JOBS(lgj) { lg = &(const_cast(lgj->Graph())); for (NodeID node_id = 0; node_id < lg->Size(); ++node_id) { - (*lg)[node_id].UpdateLocation(Station::Get((*lg)[node_id].Station())->xy); + const Station *st = Station::GetIfValid((*lg)[node_id].Station()); + if (st != nullptr) (*lg)[node_id].UpdateLocation(st->xy); } } } From 2e7a27d2eecca7405d5ab3a13868793c0362a4c9 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Fri, 10 May 2019 22:20:10 +0200 Subject: [PATCH 27/59] Codechange: [AzurePipelines] Speed up non-published CI-builds by doing Debug Windows builds. --- azure-pipelines-ci.yml | 1 + azure-pipelines/templates/release.yml | 1 + azure-pipelines/templates/windows-build.yml | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/azure-pipelines-ci.yml b/azure-pipelines-ci.yml index 19c185894c..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 diff --git a/azure-pipelines/templates/release.yml b/azure-pipelines/templates/release.yml index a1438c4a58..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) 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 From 0344e7a0a14e0e2661cc0fb4fca142720aabf2b5 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sat, 11 May 2019 13:07:29 +0200 Subject: [PATCH 28/59] Fix #7463: Promote scroll mode setting to basic category. --- src/table/settings.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/src/table/settings.ini b/src/table/settings.ini index ab35b20237..9e3fa00547 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -2604,6 +2604,7 @@ max = 3 str = STR_CONFIG_SETTING_SCROLLMODE strhelp = STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT strval = STR_CONFIG_SETTING_SCROLLMODE_DEFAULT +cat = SC_BASIC [SDTC_BOOL] var = gui.smooth_scroll From c9fe6e7b8fde3a23f6aab3b55fd8cca639d49696 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sat, 23 Mar 2019 11:17:27 +0100 Subject: [PATCH 29/59] Fix #7371: Avoid dependency on foundations of town tile during saveload --- src/viewport.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index 8a1319072c..da1e01feb9 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2183,7 +2183,9 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeTown(TownID id) item.id.town = id; const Town *town = Town::Get(id); - Point pt = RemapCoords2(TileX(town->xy) * TILE_SIZE, TileY(town->xy) * TILE_SIZE); + /* Avoid using RemapCoords2, it has dependency on the foundations status of the tile, and that can be unavailable during saveload, leading to crashes. + * Instead "fake" foundations by taking the highest Z coordinate of any corner of the tile. */ + Point pt = RemapCoords(TileX(town->xy) * TILE_SIZE, TileY(town->xy) * TILE_SIZE, GetTileMaxZ(town->xy) * TILE_HEIGHT); pt.y -= 24 * ZOOM_LVL_BASE; From 140a96b3a0fa652b66c701ac941cebc17ff24622 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Mon, 15 Apr 2019 19:49:30 +0200 Subject: [PATCH 30/59] Change: Limit memory allocations for each Squirrel instance This can avoid out-of-memory situations due to single scripts using up the entire address space. Instead, scripts that go above the maximum are killed. The maximum is default 1 GB per script, but can be configured by a setting. --- src/3rdparty/squirrel/squirrel/sqmem.cpp | 8 +- src/ai/ai_instance.cpp | 1 + src/ai/ai_scanner.cpp | 2 + src/lang/english.txt | 3 + src/saveload/saveload.h | 2 + src/script/api/script_object.cpp | 2 +- src/script/api/script_object.hpp | 2 + src/script/script_instance.cpp | 8 ++ src/script/script_instance.hpp | 3 + src/script/squirrel.cpp | 148 ++++++++++++++++++++++- src/script/squirrel.hpp | 30 +++++ src/settings_gui.cpp | 1 + src/settings_type.h | 1 + src/table/settings.ini | 15 +++ 14 files changed, 221 insertions(+), 5 deletions(-) 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/lang/english.txt b/src/lang/english.txt index cfe03b6d04..675617dcd4 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1488,6 +1488,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_SERVINT_ISPERCENT :Service intervals are in percents: {STRING2} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choose whether servicing of vehicles is triggered by the time passed since last service or by reliability dropping by a certain percentage of the maximum reliability diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 7ac602a540..fd8b3695fc 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -300,6 +300,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 }; diff --git a/src/script/api/script_object.cpp b/src/script/api/script_object.cpp index 67ab7e40dc..62a71574ff 100644 --- a/src/script/api/script_object.cpp +++ b/src/script/api/script_object.cpp @@ -38,7 +38,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/script_instance.cpp b/src/script/script_instance.cpp index 336d3366ae..9670e37c19 100644 --- a/src/script/script_instance.cpp +++ b/src/script/script_instance.cpp @@ -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; @@ -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/squirrel.cpp b/src/script/squirrel.cpp index fd0478bb52..ea63944ea9 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -10,17 +10,127 @@ /** @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 #include "../stdafx.h" #include "../debug.h" #include "squirrel_std.hpp" #include "../fileio_func.h" #include "../string_func.h" +#include "script_fatalerror.hpp" +#include "../settings_type.h" #include #include <../squirrel/sqpcheader.h> #include <../squirrel/sqvm.h> +#include "../core/alloc_func.hpp" #include "../safeguards.h" +/* + * If changing the call paths into the scripting engine, define this symbol to enable full debugging of allocations. + * This lets you track whether the allocator context is being switched correctly in all call paths. +#define SCRIPT_DEBUG_ALLOCATIONS +*/ + +struct ScriptAllocator { + size_t allocated_size; ///< Sum of allocated data size + size_t allocation_limit; ///< Maximum this allocator may use before allocations fail + + static const size_t SAFE_LIMIT = 0x8000000; ///< 128 MiB, a safe choice for almost any situation + +#ifdef SCRIPT_DEBUG_ALLOCATIONS + std::map allocations; +#endif + + void CheckLimit() const + { + if (this->allocated_size > this->allocation_limit) throw Script_FatalError("Maximum memory allocation exceeded"); + } + + void *Malloc(SQUnsignedInteger size) + { + void *p = MallocT(size); + this->allocated_size += size; + +#ifdef SCRIPT_DEBUG_ALLOCATIONS + assert(p != nullptr); + assert(this->allocations.find(p) == this->allocations.end()); + this->allocations[p] = size; +#endif + + return p; + } + + void *Realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size) + { + if (p == nullptr) { + return this->Malloc(size); + } + if (size == 0) { + this->Free(p, oldsize); + return nullptr; + } + +#ifdef SCRIPT_DEBUG_ALLOCATIONS + assert(this->allocations[p] == oldsize); + this->allocations.erase(p); +#endif + + void *new_p = ReallocT(static_cast(p), size); + + this->allocated_size -= oldsize; + this->allocated_size += size; + +#ifdef SCRIPT_DEBUG_ALLOCATIONS + assert(new_p != nullptr); + assert(this->allocations.find(p) == this->allocations.end()); + this->allocations[new_p] = size; +#endif + + return new_p; + } + + void Free(void *p, SQUnsignedInteger size) + { + if (p == nullptr) return; + free(p); + +#ifdef SCRIPT_DEBUG_ALLOCATIONS + assert(this->allocations.at(p) == size); + this->allocations.erase(p); +#endif + } + + ScriptAllocator() + { + this->allocated_size = 0; + this->allocation_limit = static_cast(_settings_game.script.script_max_memory_megabytes) << 20; + if (this->allocation_limit == 0) this->allocation_limit = SAFE_LIMIT; // in case the setting is somehow zero + } + + ~ScriptAllocator() + { +#ifdef SCRIPT_DEBUG_ALLOCATIONS + assert(this->allocations.size() == 0); +#endif + } +}; + +ScriptAllocator *_squirrel_allocator = nullptr; + +/* See 3rdparty/squirrel/squirrel/sqmem.cpp for the default allocator implementation, which this overrides */ +#ifndef SQUIRREL_DEFAULT_ALLOCATOR +void *sq_vm_malloc(SQUnsignedInteger size) { return _squirrel_allocator->Malloc(size); } +void *sq_vm_realloc(void *p, SQUnsignedInteger oldsize, SQUnsignedInteger size) { return _squirrel_allocator->Realloc(p, oldsize, size); } +void sq_vm_free(void *p, SQUnsignedInteger size) { _squirrel_allocator->Free(p, size); } +#endif + +size_t Squirrel::GetAllocatedMemory() const noexcept +{ + assert(this->allocator != nullptr); + return this->allocator->allocated_size; +} + + void Squirrel::CompileError(HSQUIRRELVM vm, const SQChar *desc, const SQChar *source, SQInteger line, SQInteger column) { SQChar buf[1024]; @@ -115,6 +225,8 @@ void Squirrel::PrintFunc(HSQUIRRELVM vm, const SQChar *s, ...) void Squirrel::AddMethod(const char *method_name, SQFUNCTION proc, uint nparam, const char *params, void *userdata, int size) { + ScriptAllocatorScope alloc_scope(this); + sq_pushstring(this->vm, method_name, -1); if (size != 0) { @@ -130,6 +242,8 @@ void Squirrel::AddMethod(const char *method_name, SQFUNCTION proc, uint nparam, void Squirrel::AddConst(const char *var_name, int value) { + ScriptAllocatorScope alloc_scope(this); + sq_pushstring(this->vm, var_name, -1); sq_pushinteger(this->vm, value); sq_newslot(this->vm, -3, SQTrue); @@ -137,6 +251,8 @@ void Squirrel::AddConst(const char *var_name, int value) void Squirrel::AddConst(const char *var_name, bool value) { + ScriptAllocatorScope alloc_scope(this); + sq_pushstring(this->vm, var_name, -1); sq_pushbool(this->vm, value); sq_newslot(this->vm, -3, SQTrue); @@ -144,6 +260,8 @@ void Squirrel::AddConst(const char *var_name, bool value) void Squirrel::AddClassBegin(const char *class_name) { + ScriptAllocatorScope alloc_scope(this); + sq_pushroottable(this->vm); sq_pushstring(this->vm, class_name, -1); sq_newclass(this->vm, SQFalse); @@ -151,6 +269,8 @@ void Squirrel::AddClassBegin(const char *class_name) void Squirrel::AddClassBegin(const char *class_name, const char *parent_class) { + ScriptAllocatorScope alloc_scope(this); + sq_pushroottable(this->vm); sq_pushstring(this->vm, class_name, -1); sq_pushstring(this->vm, parent_class, -1); @@ -164,6 +284,8 @@ void Squirrel::AddClassBegin(const char *class_name, const char *parent_class) void Squirrel::AddClassEnd() { + ScriptAllocatorScope alloc_scope(this); + sq_newslot(vm, -3, SQFalse); sq_pop(vm, 1); } @@ -171,6 +293,8 @@ void Squirrel::AddClassEnd() bool Squirrel::MethodExists(HSQOBJECT instance, const char *method_name) { assert(!this->crashed); + ScriptAllocatorScope alloc_scope(this); + int top = sq_gettop(this->vm); /* Go to the instance-root */ sq_pushobject(this->vm, instance); @@ -187,6 +311,8 @@ bool Squirrel::MethodExists(HSQOBJECT instance, const char *method_name) bool Squirrel::Resume(int suspend) { assert(!this->crashed); + ScriptAllocatorScope alloc_scope(this); + /* Did we use more operations than we should have in the * previous tick? If so, subtract that from the current run. */ if (this->overdrawn_ops > 0 && suspend > 0) { @@ -200,23 +326,29 @@ bool Squirrel::Resume(int suspend) this->crashed = !sq_resumecatch(this->vm, suspend); this->overdrawn_ops = -this->vm->_ops_till_suspend; + this->allocator->CheckLimit(); return this->vm->_suspended != 0; } void Squirrel::ResumeError() { assert(!this->crashed); + ScriptAllocatorScope alloc_scope(this); sq_resumeerror(this->vm); } void Squirrel::CollectGarbage() { + ScriptAllocatorScope alloc_scope(this); sq_collectgarbage(this->vm); } bool Squirrel::CallMethod(HSQOBJECT instance, const char *method_name, HSQOBJECT *ret, int suspend) { assert(!this->crashed); + ScriptAllocatorScope alloc_scope(this); + this->allocator->CheckLimit(); + /* Store the stack-location for the return value. We need to * restore this after saving or the stack will be corrupted * if we're in the middle of a DoCommand. */ @@ -325,17 +457,20 @@ bool Squirrel::CallBoolMethod(HSQOBJECT instance, const char *method_name, bool bool Squirrel::CreateClassInstance(const char *class_name, void *real_instance, HSQOBJECT *instance) { + ScriptAllocatorScope alloc_scope(this); return Squirrel::CreateClassInstanceVM(this->vm, class_name, real_instance, instance, nullptr); } Squirrel::Squirrel(const char *APIName) : - APIName(APIName) + APIName(APIName), allocator(new ScriptAllocator()) { this->Initialize(); } void Squirrel::Initialize() { + ScriptAllocatorScope alloc_scope(this); + this->global_pointer = nullptr; this->print_func = nullptr; this->crashed = false; @@ -432,6 +567,8 @@ static SQInteger _io_file_read(SQUserPointer file, SQUserPointer buf, SQInteger SQRESULT Squirrel::LoadFile(HSQUIRRELVM vm, const char *filename, SQBool printerror) { + ScriptAllocatorScope alloc_scope(this); + FILE *file; size_t size; if (strncmp(this->GetAPIName(), "AI", 2) == 0) { @@ -517,6 +654,8 @@ SQRESULT Squirrel::LoadFile(HSQUIRRELVM vm, const char *filename, SQBool printer bool Squirrel::LoadScript(HSQUIRRELVM vm, const char *script, bool in_root) { + ScriptAllocatorScope alloc_scope(this); + /* Make sure we are always in the root-table */ if (in_root) sq_pushroottable(vm); @@ -549,6 +688,8 @@ Squirrel::~Squirrel() void Squirrel::Uninitialize() { + ScriptAllocatorScope alloc_scope(this); + /* Clean up the stuff */ sq_pop(this->vm, 1); sq_close(this->vm); @@ -562,6 +703,8 @@ void Squirrel::Reset() void Squirrel::InsertResult(bool result) { + ScriptAllocatorScope alloc_scope(this); + sq_pushbool(this->vm, result); if (this->IsSuspended()) { // Called before resuming a suspended script? vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); @@ -571,6 +714,8 @@ void Squirrel::InsertResult(bool result) void Squirrel::InsertResult(int result) { + ScriptAllocatorScope alloc_scope(this); + sq_pushinteger(this->vm, result); if (this->IsSuspended()) { // Called before resuming a suspended script? vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); @@ -600,6 +745,7 @@ void Squirrel::CrashOccurred() bool Squirrel::CanSuspend() { + ScriptAllocatorScope alloc_scope(this); return sq_can_suspend(this->vm); } diff --git a/src/script/squirrel.hpp b/src/script/squirrel.hpp index bec41f575d..d0d02e80f8 100644 --- a/src/script/squirrel.hpp +++ b/src/script/squirrel.hpp @@ -20,7 +20,11 @@ enum ScriptType { ST_GS, ///< The script is for Game scripts. }; +struct ScriptAllocator; + class Squirrel { + friend class ScriptAllocatorScope; + private: typedef void (SQPrintFunc)(bool error_msg, const SQChar *message); @@ -30,6 +34,7 @@ private: bool crashed; ///< True if the squirrel script made an error. int overdrawn_ops; ///< The amount of operations we have overdrawn. const char *APIName; ///< Name of the API used for this squirrel. + std::unique_ptr allocator; ///< Allocator object used by this script. /** * The internal RunError handler. It looks up the real error and calls RunError with it. @@ -272,6 +277,31 @@ public: * Completely reset the engine; start from scratch. */ void Reset(); + + /** + * Get number of bytes allocated by this VM. + */ + size_t GetAllocatedMemory() const noexcept; +}; + + +extern ScriptAllocator *_squirrel_allocator; + +class ScriptAllocatorScope { + ScriptAllocator *old_allocator; + +public: + ScriptAllocatorScope(const Squirrel *engine) + { + this->old_allocator = _squirrel_allocator; + /* This may get called with a nullptr engine, in case of a crashed script */ + _squirrel_allocator = engine != nullptr ? engine->allocator.get() : nullptr; + } + + ~ScriptAllocatorScope() + { + _squirrel_allocator = this->old_allocator; + } }; #endif /* SQUIRREL_HPP */ diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index a6993cbf6a..bde6e05579 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1757,6 +1757,7 @@ static SettingsContainer &GetSettingsTree() { npc->Add(new SettingEntry("script.settings_profile")); npc->Add(new SettingEntry("script.script_max_opcode_till_suspend")); + npc->Add(new SettingEntry("script.script_max_memory_megabytes")); npc->Add(new SettingEntry("difficulty.competitor_speed")); npc->Add(new SettingEntry("ai.ai_in_multiplayer")); npc->Add(new SettingEntry("ai.ai_disable_veh_train")); diff --git a/src/settings_type.h b/src/settings_type.h index f2fbd283cd..9315cdd968 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -339,6 +339,7 @@ struct AISettings { struct ScriptSettings { uint8 settings_profile; ///< difficulty profile to set initial settings of scripts, esp. random AIs uint32 script_max_opcode_till_suspend; ///< max opcode calls till scripts will suspend + uint32 script_max_memory_megabytes; ///< limit on memory a single script instance may have allocated }; /** Settings related to the new pathfinder. */ diff --git a/src/table/settings.ini b/src/table/settings.ini index 9e3fa00547..800d6f79c1 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -1555,6 +1555,21 @@ strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT strval = STR_JUST_COMMA cat = SC_EXPERT +[SDT_VAR] +base = GameSettings +var = script.script_max_memory_megabytes +type = SLE_UINT32 +from = SLV_SCRIPT_MEMLIMIT +guiflags = SGF_NEWGAME_ONLY +def = 1024 +min = 8 +max = 8192 +interval = 8 +str = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY +strhelp = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT +strval = STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE +cat = SC_EXPERT + ## [SDT_VAR] base = GameSettings From e7f6f07599e822779665cc0883d313cdf55ea3e6 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Mon, 15 Apr 2019 20:29:37 +0200 Subject: [PATCH 31/59] Add: Show memory allocations by GS and AI in framerate window --- src/framerate_gui.cpp | 57 +++++++++++++++++++++++++- src/lang/english.txt | 4 ++ src/script/api/game/game_window.hpp.sq | 2 + src/script/api/script_window.hpp | 2 + src/widgets/framerate_widget.h | 2 + 5 files changed, 65 insertions(+), 2 deletions(-) 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/lang/english.txt b/src/lang/english.txt index 675617dcd4..84cc43210b 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2742,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 @@ -2749,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!! diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 7fa2f62af3..da1d30dde5 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -468,6 +468,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_window.hpp b/src/script/api/script_window.hpp index 58226ea5b2..902b19244a 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -1309,6 +1309,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/widgets/framerate_widget.h b/src/widgets/framerate_widget.h index 2c82c85e5e..b03d3aef73 100644 --- a/src/widgets/framerate_widget.h +++ b/src/widgets/framerate_widget.h @@ -22,6 +22,8 @@ enum FramerateWindowWidgets { WID_FRW_TIMES_NAMES, WID_FRW_TIMES_CURRENT, WID_FRW_TIMES_AVERAGE, + WID_FRW_ALLOCSIZE, + WID_FRW_SEL_MEMORY, WID_FRW_SCROLLBAR, }; From 38bb6b7d1b04e0e9402b489758bf7471d37cc36f Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 11 May 2019 19:45:44 +0200 Subject: [PATCH 32/59] Update: Translations from eints dutch: 7 changes by JanWillem --- src/lang/dutch.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index d31823bbf6..218fc18507 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1488,6 +1488,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 @@ -2739,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 @@ -2746,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!! From 2d0352d67f1c9a6583b04a6bebb89520cf2bee29 Mon Sep 17 00:00:00 2001 From: PeterN Date: Mon, 13 May 2019 12:27:35 +0100 Subject: [PATCH 33/59] Fix e8d397e4ee: Avoid using RemapCoords2 during savegame conversion. (#7588) --- src/viewport.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index da1e01feb9..534de090b5 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2142,7 +2142,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeStation(StationID id) item.id.station = id; const Station *st = Station::Get(id); - Point pt = RemapCoords2(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE); + Point pt = RemapCoords(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE, GetTileMaxZ(st->xy) * TILE_HEIGHT); pt.y -= 32 * ZOOM_LVL_BASE; if ((st->facilities & FACIL_AIRPORT) && st->airport.type == AT_OILRIG) pt.y -= 16 * ZOOM_LVL_BASE; @@ -2163,7 +2163,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeWaypoint(StationID id) item.id.station = id; const Waypoint *st = Waypoint::Get(id); - Point pt = RemapCoords2(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE); + Point pt = RemapCoords(TileX(st->xy) * TILE_SIZE, TileY(st->xy) * TILE_SIZE, GetTileMaxZ(st->xy) * TILE_HEIGHT); pt.y -= 32 * ZOOM_LVL_BASE; From f8fb9fda6bb050d22b878dea16c4b5dfaa8607f9 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 13 May 2019 19:45:45 +0200 Subject: [PATCH 34/59] Update: Translations from eints russian: 7 changes by Lone_Wolf --- src/lang/russian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 34ea621f07..17512ff53a 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1640,6 +1640,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 :Выберите, должно ли техническое обслуживание транспорта выполняться через определённые промежутки времени, либо при снижении надёжности транспортного средства на определённый процент от максимума @@ -2919,6 +2922,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} мс @@ -2926,6 +2930,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!! From a8b6e9f23cc7f8c0835743d462fd27a20af6518e Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sun, 25 Nov 2018 01:32:48 +0100 Subject: [PATCH 35/59] Codechange: Refactor the Freetype font cache into a generic part that does not depend on Freetype and into one that does. This makes it easier to add other TrueType font rendering engines. --- src/fontcache.cpp | 397 +++++++++++++++++++++--------------- src/settings.cpp | 4 + src/table/misc_settings.ini | 24 +-- 3 files changed, 244 insertions(+), 181 deletions(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index ac09a3e937..50600de404 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -199,16 +199,16 @@ bool SpriteFontCache::GetDrawGlyphShadow() /* static */ FontCache *FontCache::caches[FS_END] = { new SpriteFontCache(FS_NORMAL), new SpriteFontCache(FS_SMALL), new SpriteFontCache(FS_LARGE), new SpriteFontCache(FS_MONO) }; -#ifdef WITH_FREETYPE -#include -#include FT_FREETYPE_H -#include FT_GLYPH_H -#include FT_TRUETYPE_TABLES_H +#if defined(WITH_FREETYPE) -/** 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. @@ -239,31 +239,233 @@ 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); } virtual void InitializeUnicodeGlyphMap() { this->parent->InitializeUnicodeGlyphMap(); } - 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. @@ -271,7 +473,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); @@ -410,10 +612,6 @@ FreeTypeFontCache::~FreeTypeFontCache() FT_Done_Face(this->face); this->face = nullptr; this->ClearFontCache(); - - for (auto &iter : this->font_tables) { - free(iter.second.second); - } } /** @@ -424,130 +622,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); @@ -591,6 +673,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; @@ -600,25 +683,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)); @@ -630,14 +694,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; @@ -647,14 +705,15 @@ 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; } #endif /* WITH_FREETYPE */ +#endif /* defined(WITH_FREETYPE) */ + /** * (Re)initialize the freetype related things, i.e. load the non-sprite fonts. * @param monospace Whether to initialise the monospace or regular fonts. diff --git a/src/settings.cpp b/src/settings.cpp index 5c0dc4a984..74a8bd8d8c 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -68,6 +68,10 @@ #include "void_map.h" #include "station_base.h" +#if defined(WITH_FREETYPE) +#define HAS_TRUETYPE_FONT +#endif + #include "table/strings.h" #include "table/settings.h" diff --git a/src/table/misc_settings.ini b/src/table/misc_settings.ini index a1159aee08..f920f515d2 100644 --- a/src/table/misc_settings.ini +++ b/src/table/misc_settings.ini @@ -144,35 +144,35 @@ var = _rightclick_emulate def = false [SDTG_STR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""small_font"" type = SLE_STRB var = _freetype.small.font def = nullptr [SDTG_STR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""medium_font"" type = SLE_STRB var = _freetype.medium.font def = nullptr [SDTG_STR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""large_font"" type = SLE_STRB var = _freetype.large.font def = nullptr [SDTG_STR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""mono_font"" type = SLE_STRB var = _freetype.mono.font def = nullptr [SDTG_VAR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""small_size"" type = SLE_UINT var = _freetype.small.size @@ -181,7 +181,7 @@ min = 0 max = 72 [SDTG_VAR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""medium_size"" type = SLE_UINT var = _freetype.medium.size @@ -190,7 +190,7 @@ min = 0 max = 72 [SDTG_VAR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""large_size"" type = SLE_UINT var = _freetype.large.size @@ -199,7 +199,7 @@ min = 0 max = 72 [SDTG_VAR] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""mono_size"" type = SLE_UINT var = _freetype.mono.size @@ -208,25 +208,25 @@ min = 0 max = 72 [SDTG_BOOL] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""small_aa"" var = _freetype.small.aa def = false [SDTG_BOOL] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""medium_aa"" var = _freetype.medium.aa def = false [SDTG_BOOL] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""large_aa"" var = _freetype.large.aa def = false [SDTG_BOOL] -ifdef = WITH_FREETYPE +ifdef = HAS_TRUETYPE_FONT name = ""mono_aa"" var = _freetype.mono.aa def = false From 2675762ae9c58c47dc442b422927206c7bee13a8 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sun, 25 Nov 2018 02:00:42 +0100 Subject: [PATCH 36/59] Add: [Win32] GDI engine for font glyph rendering as a replacement for including FreeType. Building with FreeType is still possible and will take precedence over the GDI renderer, but the project files don't include FreeType anymore by default. Combining GDI rendering with ICU text layout is untested. --- config.lib | 6 + docs/Readme_Windows_MSVC.md | 5 +- projects/openttd_vs140.vcxproj | 8 +- projects/openttd_vs140.vcxproj.in | 8 +- projects/openttd_vs141.vcxproj | 8 +- projects/openttd_vs141.vcxproj.in | 8 +- projects/openttd_vs142.vcxproj | 8 +- projects/openttd_vs142.vcxproj.in | 8 +- src/fontcache.cpp | 275 +++++++++++++++++++++++++++++- src/fontcache.h | 4 +- src/fontdetection.cpp | 10 +- src/fontdetection.h | 5 +- src/settings.cpp | 4 +- src/strings.cpp | 4 +- src/textfile_gui.cpp | 2 +- 15 files changed, 325 insertions(+), 38 deletions(-) diff --git a/config.lib b/config.lib index f65aaa535e..e8f77adc78 100644 --- a/config.lib +++ b/config.lib @@ -2786,6 +2786,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 53c0fb623e..070a3a144d 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 fb671ef1b5..6fd1388c9b 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 16a7bf7aa5..ee2886e717 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/fontcache.cpp b/src/fontcache.cpp index 50600de404..778af3440a 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -199,7 +199,7 @@ bool SpriteFontCache::GetDrawGlyphShadow() /* static */ FontCache *FontCache::caches[FS_END] = { new SpriteFontCache(FS_NORMAL), new SpriteFontCache(FS_SMALL), new SpriteFontCache(FS_LARGE), new SpriteFontCache(FS_MONO) }; -#if defined(WITH_FREETYPE) +#if defined(WITH_FREETYPE) || defined(_WIN32) FreeTypeSettings _freetype; @@ -710,9 +710,278 @@ const void *FreeTypeFontCache::InternalGetFontTable(uint32 tag, size_t &length) 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; } +}; + + +/** + * 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) +{ + 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.lfWeight = strcasestr(settings->font, " bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts. + logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH; + logfont.lfCharSet = DEFAULT_CHARSET; + logfont.lfOutPrecision = OUT_OUTLINE_PRECIS; + logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; + convert_to_fs(settings->font, logfont.lfFaceName, lengthof(logfont.lfFaceName), false); + + HFONT font = CreateFontIndirect(&logfont); + if (font == nullptr) { + static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" }; + 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) */ +#endif /* defined(WITH_FREETYPE) || defined(_WIN32) */ /** * (Re)initialize the freetype related things, i.e. load the non-sprite fonts. @@ -728,6 +997,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 9a08ba09f2..62ce596f30 100644 --- a/src/fontcache.h +++ b/src/fontcache.h @@ -202,7 +202,7 @@ 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 { @@ -221,7 +221,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..f7465a2684 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,6 +342,9 @@ 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); if (info->callback->FindMissingGlyphs(nullptr)) return 1; 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/settings.cpp b/src/settings.cpp index 74a8bd8d8c..88cd95b710 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -39,7 +39,7 @@ #include "sound_func.h" #include "company_func.h" #include "rev.h" -#ifdef WITH_FREETYPE +#if defined(WITH_FREETYPE) || defined(_WIN32) #include "fontcache.h" #endif #include "textbuf_gui.h" @@ -68,7 +68,7 @@ #include "void_map.h" #include "station_base.h" -#if defined(WITH_FREETYPE) +#if defined(WITH_FREETYPE) || defined(_WIN32) #define HAS_TRUETYPE_FONT #endif diff --git a/src/strings.cpp b/src/strings.cpp index 1ed679e27a..fda92d8a70 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -2070,7 +2070,7 @@ class LanguagePackGlyphSearcher : public MissingGlyphSearcher { void SetFontNames(FreeTypeSettings *settings, const char *font_name) override { -#ifdef WITH_FREETYPE +#if defined(WITH_FREETYPE) || defined(_WIN32) strecpy(settings->small.font, font_name, lastof(settings->small.font)); strecpy(settings->medium.font, font_name, lastof(settings->medium.font)); strecpy(settings->large.font, font_name, lastof(settings->large.font)); @@ -2096,7 +2096,7 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) static LanguagePackGlyphSearcher pack_searcher; if (searcher == nullptr) searcher = &pack_searcher; bool bad_font = !base_font || searcher->FindMissingGlyphs(nullptr); -#ifdef WITH_FREETYPE +#if defined(WITH_FREETYPE) || defined(_WIN32) if (bad_font) { /* We found an unprintable character... lets try whether we can find * a fallback font that can print the characters in the current language. */ diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index 7a2eb44ca2..07851e12fb 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -196,7 +196,7 @@ void TextfileWindow::SetupScrollbars() /* virtual */ void TextfileWindow::SetFontNames(FreeTypeSettings *settings, const char *font_name) { -#ifdef WITH_FREETYPE +#if defined(WITH_FREETYPE) || defined(_WIN32) strecpy(settings->mono.font, font_name, lastof(settings->mono.font)); #endif /* WITH_FREETYPE */ } From d2ed4260772e0a2ce8805e9c40525d0abb9345ea Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sun, 25 Nov 2018 02:02:20 +0100 Subject: [PATCH 37/59] Codechange: [Win32] Pass a native GDI font description around when we have one, instead of repeatedly guessing the font. --- src/fontcache.cpp | 16 ++++++++++------ src/fontcache.h | 11 +++++++++++ src/fontdetection.cpp | 4 +++- src/os/windows/string_uniscribe.cpp | 2 ++ src/strings.cpp | 15 +++++++++++++-- src/strings_func.h | 3 ++- src/textfile_gui.cpp | 6 ++++-- src/textfile_gui.h | 2 +- 8 files changed, 46 insertions(+), 13 deletions(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 778af3440a..709b8a7d6f 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -737,6 +737,7 @@ public: 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; } }; @@ -960,13 +961,16 @@ static void LoadWin32Font(FontSize fs) LOGFONT logfont; MemSetT(&logfont, 0); + if (settings->os_handle != nullptr) logfont = *(const LOGFONT *)settings->os_handle; - logfont.lfWeight = strcasestr(settings->font, " bold") != nullptr ? FW_BOLD : FW_NORMAL; // Poor man's way to allow selecting bold fonts. - logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH; - logfont.lfCharSet = DEFAULT_CHARSET; - logfont.lfOutPrecision = OUT_OUTLINE_PRECIS; - logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; - convert_to_fs(settings->font, logfont.lfFaceName, lengthof(logfont.lfFaceName), false); + 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. + logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH; + logfont.lfCharSet = DEFAULT_CHARSET; + logfont.lfOutPrecision = OUT_OUTLINE_PRECIS; + logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; + convert_to_fs(settings->font, logfont.lfFaceName, lengthof(logfont.lfFaceName), false); + } HFONT font = CreateFontIndirect(&logfont); if (font == nullptr) { diff --git a/src/fontcache.h b/src/fontcache.h index 62ce596f30..7416103953 100644 --- a/src/fontcache.h +++ b/src/fontcache.h @@ -125,6 +125,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. @@ -209,6 +218,8 @@ 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. */ diff --git a/src/fontdetection.cpp b/src/fontdetection.cpp index f7465a2684..7b2a6756ca 100644 --- a/src/fontdetection.cpp +++ b/src/fontdetection.cpp @@ -346,7 +346,9 @@ static int CALLBACK EnumFontCallback(const ENUMLOGFONTEX *logfont, const NEWTEXT 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/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp index 8c4e11d3fb..01f0e5e3bd 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(); diff --git a/src/strings.cpp b/src/strings.cpp index fda92d8a70..5d186e7177 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -2068,13 +2068,18 @@ class LanguagePackGlyphSearcher : public MissingGlyphSearcher { return false; } - void SetFontNames(FreeTypeSettings *settings, const char *font_name) override + void SetFontNames(FreeTypeSettings *settings, const char *font_name, const void *os_data) override { #if defined(WITH_FREETYPE) || defined(_WIN32) strecpy(settings->small.font, font_name, lastof(settings->small.font)); strecpy(settings->medium.font, font_name, lastof(settings->medium.font)); strecpy(settings->large.font, font_name, lastof(settings->large.font)); -#endif /* WITH_FREETYPE */ + + free(settings->medium.os_handle); // Only free one, they are all the same pointer. + settings->small.os_handle = os_data; + settings->medium.os_handle = os_data; + settings->large.os_handle = os_data; +#endif } }; @@ -2103,8 +2108,14 @@ void CheckForMissingGlyphs(bool base_font, MissingGlyphSearcher *searcher) FreeTypeSettings backup; memcpy(&backup, &_freetype, sizeof(backup)); + _freetype.mono.os_handle = nullptr; + _freetype.medium.os_handle = nullptr; + bad_font = !SetFallbackFont(&_freetype, _langpack->isocode, _langpack->winlangid, searcher); + free(_freetype.mono.os_handle); + free(_freetype.medium.os_handle); + memcpy(&_freetype, &backup, sizeof(backup)); if (bad_font && base_font) { diff --git a/src/strings_func.h b/src/strings_func.h index d0fbde4956..26ca56fbd5 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -275,8 +275,9 @@ public: * Set the right font names. * @param settings The settings to modify. * @param font_name The new font name. + * @param os_data Opaque pointer to OS-specific data. */ - virtual void SetFontNames(struct FreeTypeSettings *settings, const char *font_name) = 0; + virtual void SetFontNames(struct FreeTypeSettings *settings, const char *font_name, const void *os_data = nullptr) = 0; bool FindMissingGlyphs(const char **str); }; diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index 07851e12fb..5676a7d101 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -194,11 +194,13 @@ void TextfileWindow::SetupScrollbars() return true; } -/* virtual */ void TextfileWindow::SetFontNames(FreeTypeSettings *settings, const char *font_name) +/* virtual */ void TextfileWindow::SetFontNames(FreeTypeSettings *settings, const char *font_name, const void *os_data) { #if defined(WITH_FREETYPE) || defined(_WIN32) strecpy(settings->mono.font, font_name, lastof(settings->mono.font)); -#endif /* WITH_FREETYPE */ + free(settings->mono.os_handle); + settings->mono.os_handle = os_data; +#endif } #if defined(WITH_ZLIB) diff --git a/src/textfile_gui.h b/src/textfile_gui.h index b572fe09ca..237b360539 100644 --- a/src/textfile_gui.h +++ b/src/textfile_gui.h @@ -43,7 +43,7 @@ struct TextfileWindow : public Window, MissingGlyphSearcher { FontSize DefaultSize() override; const char *NextString() override; bool Monospace() override; - void SetFontNames(FreeTypeSettings *settings, const char *font_name) override; + void SetFontNames(FreeTypeSettings *settings, const char *font_name, const void *os_data) override; virtual void LoadTextfile(const char *textfile, Subdirectory dir); From eeccfa2570a8571d5fd9d4525d6e9b1cbdf8110a Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Sun, 5 May 2019 02:47:32 +0200 Subject: [PATCH 38/59] Add: [Win32] Support for loading fonts from a file for the GDI font renderer. --- src/fontcache.cpp | 54 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 709b8a7d6f..c29c868e5d 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" @@ -948,6 +949,8 @@ void Win32FontCache::ClearFontCache() */ static void LoadWin32Font(FontSize fs) { + static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" }; + FreeTypeSubSetting *settings = nullptr; switch (fs) { default: NOT_REACHED(); @@ -961,20 +964,59 @@ static void LoadWin32Font(FontSize fs) LOGFONT logfont; MemSetT(&logfont, 0); - if (settings->os_handle != nullptr) logfont = *(const LOGFONT *)settings->os_handle; + 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. - logfont.lfPitchAndFamily = fs == FS_MONO ? FIXED_PITCH : VARIABLE_PITCH; - logfont.lfCharSet = DEFAULT_CHARSET; - logfont.lfOutPrecision = OUT_OUTLINE_PRECIS; - logfont.lfClipPrecision = CLIP_DEFAULT_PRECIS; convert_to_fs(settings->font, logfont.lfFaceName, lengthof(logfont.lfFaceName), false); } HFONT font = CreateFontIndirect(&logfont); if (font == nullptr) { - static const char *SIZE_TO_NAME[] = { "medium", "small", "large", "mono" }; 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; } From de73c8f91c56d9bd0e2c4bfb9791995450932e49 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Wed, 8 May 2019 21:27:24 +0200 Subject: [PATCH 39/59] Codechange: [Win32] Remove a FreeType work-around from Uniscribe if not using FreeType. --- src/os/windows/string_uniscribe.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp index 01f0e5e3bd..c91803089e 100644 --- a/src/os/windows/string_uniscribe.cpp +++ b/src/os/windows/string_uniscribe.cpp @@ -197,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; From aac4255d43bf6cdc763cba0c1244a9c2e0fad055 Mon Sep 17 00:00:00 2001 From: glx Date: Mon, 13 May 2019 21:55:02 +0200 Subject: [PATCH 40/59] Fix #7590: decrement allocated_size in ScriptAllocator::Free() --- src/script/squirrel.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index ea63944ea9..275a89c74c 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -93,6 +93,7 @@ struct ScriptAllocator { { if (p == nullptr) return; free(p); + this->allocated_size -= size; #ifdef SCRIPT_DEBUG_ALLOCATIONS assert(this->allocations.at(p) == size); From a82e7ec281ca08d91bcff129b390a3f58ac308ba Mon Sep 17 00:00:00 2001 From: glx Date: Tue, 14 May 2019 04:32:25 +0200 Subject: [PATCH 41/59] Fix #7590: handle script exceptions during scanning --- src/script/script_scanner.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp index 2812ef65ed..66dd6dae54 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; } From 09004f36974e841705ccb8c8c02a915601350e8c Mon Sep 17 00:00:00 2001 From: glx Date: Wed, 15 May 2019 21:14:13 +0200 Subject: [PATCH 42/59] Codechange: catch script exceptions by reference --- src/script/script_instance.cpp | 14 +++++++------- src/script/script_scanner.cpp | 2 +- src/script/squirrel_helper.hpp | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/script/script_instance.cpp b/src/script/script_instance.cpp index 9670e37c19..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(); @@ -188,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(); @@ -218,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(); @@ -239,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(); @@ -496,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; diff --git a/src/script/script_scanner.cpp b/src/script/script_scanner.cpp index 66dd6dae54..c4205bbc45 100644 --- a/src/script/script_scanner.cpp +++ b/src/script/script_scanner.cpp @@ -55,7 +55,7 @@ bool ScriptScanner::AddFile(const char *filename, size_t basepath_length, const this->ResetEngine(); try { this->engine->LoadScript(filename); - } catch (Script_FatalError e) { + } catch (Script_FatalError &e) { DEBUG(script, 0, "Fatal error '%s' when trying to load the script '%s'.", e.GetErrorMessage(), filename); return false; } diff --git a/src/script/squirrel_helper.hpp b/src/script/squirrel_helper.hpp index e266148c51..0f094a80cf 100644 --- a/src/script/squirrel_helper.hpp +++ b/src/script/squirrel_helper.hpp @@ -766,7 +766,7 @@ namespace SQConvert { try { /* Delegate it to a template that can handle this specific function */ return HelperT::SQCall((Tcls *)real_instance, *(Tmethod *)ptr, vm); - } catch (SQInteger e) { + } catch (SQInteger &e) { return e; } } @@ -827,7 +827,7 @@ namespace SQConvert { try { /* Delegate it to a template that can handle this specific function */ return HelperT::SQCall((Tcls *)nullptr, *(Tmethod *)ptr, vm); - } catch (SQInteger e) { + } catch (SQInteger &e) { return e; } } @@ -881,7 +881,7 @@ namespace SQConvert { sq_setreleasehook(vm, -Tnparam, DefSQDestructorCallback); instance->AddRef(); return 0; - } catch (SQInteger e) { + } catch (SQInteger &e) { return e; } } @@ -903,7 +903,7 @@ namespace SQConvert { sq_setreleasehook(vm, -nparam, DefSQDestructorCallback); instance->AddRef(); return 0; - } catch (SQInteger e) { + } catch (SQInteger &e) { return e; } } From 24493548dabdca6c20803d0cde5820b591e9c26e Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 16 May 2019 19:45:43 +0200 Subject: [PATCH 43/59] Update: Translations from eints french: 7 changes by glx korean: 8 changes by telk5093 --- src/lang/french.txt | 7 +++++++ src/lang/korean.txt | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lang/french.txt b/src/lang/french.txt index 58bdcf0fc9..07ce5acdf6 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1489,6 +1489,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permettre les I STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Autorise les Intelligences Artificielles à participer aux parties multijoueurs STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Nombre d'opcodes avant d'interrompre les scripts{NBSP}: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Nombre maximum d'opérations qu'un script peut effectuer en un tour +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Utilisation max de la mémoire par script{NBSP}: {STRING} +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Quantité de mémoire qu'un seul script peut consommer avant d'être terminé de force. Peut nécessiter d'être augmenté pour les grandes cartes. +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} Mio STR_CONFIG_SETTING_SERVINT_ISPERCENT :Les intervalles de service sont en pourcentage{NBSP}: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Choisir si l'entretien des véhicule est activé par le temps passé depuis le dernier entretien ou par la fiabilité passant sous un pourcentage de la fiabilité maximum @@ -2740,6 +2743,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Facteur STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}À quelle vitesse le jeu tourne actuellement, comparé à la vitesse attendue pour la simulation normale. STR_FRAMERATE_CURRENT :{WHITE}Actuel STR_FRAMERATE_AVERAGE :{WHITE}Moyen +STR_FRAMERATE_MEMORYUSE :{WHITE}Mémoire STR_FRAMERATE_DATA_POINTS :{BLACK}Données basées sur {COMMA} mesures STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms @@ -2747,6 +2751,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} images/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} images/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} images/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!! diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 6262f4156c..0995d8fd1c 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1436,7 +1436,7 @@ STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :처음 사용 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :가장 최근에 개발된 철도 STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :가장 많이 사용한 것 STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION :차량의 다음 진행 경로 보여주기: {STRING} -STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :열차가 경로기반 폐색으로 진입할 수 없는 문제를 해결하기 위해 열차가 진행할 경로를 별도의 색으로 표시합니다. +STR_CONFIG_SETTING_SHOW_TRACK_RESERVATION_HELPTEXT :열차가 경로 탐색 기능 때문에 폐색으로 진입할 수 없는 문제를 해결하기 위해, 열차가 진행할 경로를 별도의 어두운 색으로 표시합니다. STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :건설 도구를 사용 후 계속 유지: {STRING} STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :다리, 터널 등의 건설 도구를 사용 후에도 계속 열어둔 채로 놔둡니다. STR_CONFIG_SETTING_EXPENSES_LAYOUT :재정 창에서 비용을 종류별로 묶어서 표시: {STRING} @@ -1489,6 +1489,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} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :신뢰도에 따른 정비 설정: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :차량 점검 방식을 "마지막 점검 이후 지난 시간 (또는) 최대 신뢰도에 대한 차량 신뢰도의 일정 퍼센트 하락 여부" 중에 하나로 선택합니다. @@ -2740,6 +2743,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}개의 값을 기반으로 측정한 데이터 STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{BLACK} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms @@ -2747,6 +2751,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} 프레임/초 STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} 프레임/초 STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} 프레임/초 +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}초 ############ Leave those lines in this order!! From b9eb9a4af9ded220a31d38b7d705e1c039e007e6 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 18 May 2019 18:31:00 +0100 Subject: [PATCH 44/59] Fix #7594: Max speed rendered incorrectly in road vehicle purchase window when using original acceleration model (#7597) An incorrect DParam index was used. --- src/build_vehicle_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index ba3eaf4d08..2778ccd55c 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -685,7 +685,7 @@ static int DrawRoadVehPurchaseInfo(int left, int right, int y, EngineID engine_n DrawString(left, right, y, STR_PURCHASE_INFO_COST_REFIT_SPEED); } else { SetDParam(0, e->GetCost()); - SetDParam(2, e->GetDisplayMaxSpeed()); + SetDParam(1, e->GetDisplayMaxSpeed()); DrawString(left, right, y, STR_PURCHASE_INFO_COST_SPEED); } y += FONT_HEIGHT_NORMAL; From c1d26d8884f92443b7fa94380881f794a402bba4 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 19 May 2019 19:45:45 +0200 Subject: [PATCH 45/59] Update: Translations from eints croatian: 7 changes by VoyagerOne --- src/lang/croatian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 3c09176d6a..e35e4be09b 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1584,6 +1584,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 @@ -2835,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 @@ -2842,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!! From b73622a01ca5d2a72593c4f7ff985cfb5532cc0c Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Wed, 22 May 2019 21:06:03 +0200 Subject: [PATCH 46/59] Fix #7600: Don't read uninitialised memory when parsing GS language files. --- src/game/game_text.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/game_text.cpp b/src/game/game_text.cpp index 412f2804f9..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 + to_read - 1); + ret->lines.emplace_back(buffer, i); if (len > to_read) { to_read = 0; From aee3e4e496146b52ff12e9602ff0ab8738935ca3 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 23 May 2019 19:45:44 +0200 Subject: [PATCH 47/59] Update: Translations from eints hungarian: 7 changes by Brumi --- src/lang/hungarian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 907d42a19e..db73a7c8f4 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1552,6 +1552,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Számítógépe STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Számítógép által irányított játékosok részvételének engedélyezése többjátékos játékokban STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Szkriptek felfüggesztéséhez szükséges opcode mennyiség: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Egy kör alatti maximális számítási lépések száma, amit egy szkript kiszámíthat +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :A szkriptek maximális memóriahasználata: {STRING} +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Mennyi memóriát használhat egy adott szkript, mielőtt leállításra kerül. Nagy térképek esetén lehet, hogy ezt az értéket növelni kell. +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Javítási intervallumok százalékban: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :A járművek javítási módjának kiválasztása, hogy az utolsó javítás óta eltelt idő, vagy a maximális megbízhatósághoz képesti százalékos csökkenés alapján kerüljelek javításra @@ -2803,6 +2806,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}A játé STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Milyen gyorsan fut a játék, viszonyítva az elvárt sebességhez normál játéksebesség esetén. STR_FRAMERATE_CURRENT :{WHITE}Pillanatnyi STR_FRAMERATE_AVERAGE :{WHITE}Átlagos +STR_FRAMERATE_MEMORYUSE :{WHITE}Memória STR_FRAMERATE_DATA_POINTS :{BLACK}Adatok {COMMA} mérés alapján STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms @@ -2810,6 +2814,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frame/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frame/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frame/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!! From ef74af67667e33ea2da88d9969ca928bd25e999f Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 25 May 2019 19:45:42 +0200 Subject: [PATCH 48/59] Update: Translations from eints finnish: 32 changes by hpiirai spanish (mexican): 16 changes by Absay --- src/lang/finnish.txt | 32 ++++++++++++++++++++++++++++++++ src/lang/spanish_MX.txt | 16 ++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index be048b3d03..b765f29247 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ä @@ -1486,6 +1488,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 @@ -2434,7 +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 @@ -2619,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 @@ -2730,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 @@ -2737,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!! @@ -3360,6 +3376,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: @@ -3468,9 +3485,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Uusi yksiraidej STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Uusi Maglev-juna 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 @@ -3636,10 +3655,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Viesti k 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_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 @@ -3681,14 +3702,18 @@ 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 @@ -4412,6 +4437,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. @@ -4431,6 +4457,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/spanish_MX.txt b/src/lang/spanish_MX.txt index 5f6442f0f0..d6da66d53a 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 @@ -2433,7 +2438,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 @@ -2732,6 +2741,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 @@ -2739,6 +2749,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!! @@ -3691,12 +3704,15 @@ STR_REPLACE_ALL_RAILTYPE :Todos los vehí 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 From 846fc8fe097689ef2fa1498708b3244fb4ad84ac Mon Sep 17 00:00:00 2001 From: glx22 Date: Mon, 3 Jun 2019 00:18:28 +0200 Subject: [PATCH 49/59] Fix: vcpkg used to patch lzma.h to define LZMA_API_STATIC for static builds (#7614) --- src/stdafx.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/stdafx.h b/src/stdafx.h index 123dffa138..b7aefb9f06 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -231,6 +231,13 @@ # if !defined(FT_EXPORT) # define FT_EXPORT( x ) extern "C" x CDECL # endif +# endif + + /* liblzma from vcpkg (before 5.2.4-2) used to patch lzma.h to define LZMA_API_STATIC for static builds */ +# if defined(WITH_LIBLZMA) +# if !defined(LZMA_API_STATIC) +# define LZMA_API_STATIC +# endif # endif #define strcasecmp stricmp From 6396ec05fe9ce865a8642231bdb75b45cfb19627 Mon Sep 17 00:00:00 2001 From: stormcone <48624099+stormcone@users.noreply.github.com> Date: Mon, 27 May 2019 00:52:53 +0200 Subject: [PATCH 50/59] Fix #7609: In the sprite aligner window the 'Reset relative' button crashes the game. The 'offs_start_map' is a 'SmallMap', so its own 'Erase' function should be called instead of the underlying vector's 'erase' function. And fix a "typo". :) --- src/newgrf_debug_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp index 47bd60e379..4abdb51989 100644 --- a/src/newgrf_debug_gui.cpp +++ b/src/newgrf_debug_gui.cpp @@ -972,7 +972,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; @@ -986,7 +986,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; } From 5b09323a5871ccf877aac0abead964f147f4ba4b Mon Sep 17 00:00:00 2001 From: iigmir Date: Thu, 16 May 2019 14:16:45 +0800 Subject: [PATCH 51/59] Add: Currency: NTD, CNY, HKD --- src/currency.cpp | 3 +++ src/currency.h | 3 +++ src/lang/english.txt | 3 +++ 3 files changed, 9 insertions(+) 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/lang/english.txt b/src/lang/english.txt index 84cc43210b..5115a0eb5f 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -938,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 From 45511080b14b4765f9d43fac84fd4871caf385af Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 10 Jun 2019 19:45:42 +0200 Subject: [PATCH 52/59] Update: Translations from eints finnish: 3 changes by hpiirai dutch: 3 changes by JanWillem bulgarian: 54 changes by zhelyo french: 3 changes by glx --- src/lang/bulgarian.txt | 57 +++++++++++++++++++++++++++++++++++++++--- src/lang/dutch.txt | 3 +++ src/lang/finnish.txt | 3 +++ src/lang/french.txt | 3 +++ 4 files changed, 63 insertions(+), 3 deletions(-) diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index a2a43bc6a7..974557ff9c 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}Избор на максималния брой клиенти. Не всички слотове трябва да се попълнят @@ -2342,6 +2361,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}Превключване строене/разрушаване на трамвайни консктрукции +STR_ROAD_NAME_ROAD :Път # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ориентация на гараж @@ -2626,9 +2646,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 @@ -2778,6 +2810,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}Отказ @@ -2875,6 +2908,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 :<невалиден товар> @@ -2908,6 +2942,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} @@ -3186,6 +3221,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}Станции: @@ -3288,6 +3324,7 @@ 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 @@ -3303,12 +3340,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} полета @@ -3323,6 +3363,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 строеж/цена за построяване @@ -3482,8 +3524,10 @@ 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 :Електрически локомотиви @@ -3630,7 +3674,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} @@ -3816,9 +3860,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 "" а} @@ -3834,6 +3881,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}Промени времетраенето на маркираната заповед @@ -4224,6 +4272,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}Тук не е възможно да се прокопае канал... @@ -4386,6 +4436,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/dutch.txt b/src/lang/dutch.txt index 218fc18507..951b2d0236 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -938,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 diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index b765f29247..34520ac0b6 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -938,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 diff --git a/src/lang/french.txt b/src/lang/french.txt index 07ce5acdf6..e21dcfccb1 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -939,6 +939,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Lari Géorgien STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iranien (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Nouveau rouble russe (RUB) STR_GAME_OPTIONS_CURRENCY_MXN :Peso méxicain (MXN) +STR_GAME_OPTIONS_CURRENCY_NTD :Nouveau Dollar de Taïwan (TWD) +STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi Chinois (CNY) +STR_GAME_OPTIONS_CURRENCY_HKD :Dollar de Hong Kong (HKD) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Véhicules routiers From 0518ed01b6bddf74b0ed65ab7937c9fe01080a0c Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 11 Jun 2019 19:45:43 +0200 Subject: [PATCH 53/59] Update: Translations from eints czech: 48 changes by djst russian: 3 changes by Lone_Wolf --- src/lang/czech.txt | 49 +++++++++++++++++++++++++++++++++++++++++++- src/lang/russian.txt | 3 +++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index f797a94ac8..a79e7d88d7 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. @@ -2491,6 +2502,7 @@ 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 @@ -2682,6 +2694,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} @@ -2787,20 +2801,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 @@ -2826,6 +2853,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 @@ -2944,6 +2973,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 @@ -3197,6 +3227,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 @@ -3399,6 +3430,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} @@ -3452,6 +3484,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 @@ -3479,6 +3512,7 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nové lokomotiv STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nové lokomotivy a vagony Maglev 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 @@ -3499,6 +3533,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} @@ -3518,12 +3553,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 @@ -3636,12 +3676,14 @@ STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Právě j STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}lokomotiva STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.acc :lokomotivu +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ď @@ -3683,6 +3725,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 @@ -3691,6 +3734,8 @@ 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 @@ -4412,7 +4457,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... @@ -4432,6 +4478,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/russian.txt b/src/lang/russian.txt index 17512ff53a..ef03ace5b0 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1083,6 +1083,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}Движение автомобилей From 00000ef8fa6adb1ffb30e7034fb1b6c2c2445d8e Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 12 Jun 2019 19:45:44 +0200 Subject: [PATCH 54/59] Update: Translations from eints korean: 3 changes by telk5093 --- src/lang/korean.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 0995d8fd1c..8e75e171c3 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -939,6 +939,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :그루지야 STR_GAME_OPTIONS_CURRENCY_IRR :이란 리알 (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :신 러시아 루블 (RUB) 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}차량 통행 방식 From 7f7aba93898ab82da5517c0b6486bea205490049 Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 14 Jun 2019 19:45:44 +0200 Subject: [PATCH 55/59] Update: Translations from eints hungarian: 3 changes by Brumi --- src/lang/hungarian.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index db73a7c8f4..641eb3c01b 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Grúz Lari (GEL STR_GAME_OPTIONS_CURRENCY_IRR :Iráni Riál (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Új Orosz Rubel (RUB) STR_GAME_OPTIONS_CURRENCY_MXN :Mexikói Peso (MXN) +STR_GAME_OPTIONS_CURRENCY_NTD :Új Tajvani Dollár (NTD) +STR_GAME_OPTIONS_CURRENCY_CNY :Kínai Renminbi (CNY) +STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongi Dollár (HKD) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Közúti járművek From 7ad9971cf051c42297c23d8b586f190501b605c0 Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 15 Jun 2019 19:45:43 +0200 Subject: [PATCH 56/59] Update: Translations from eints croatian: 3 changes by VoyagerOne --- src/lang/croatian.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e35e4be09b..344702819c 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1034,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 From b878891289dd609bbee24614c330dae9ab575f80 Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 17 Jun 2019 19:45:45 +0200 Subject: [PATCH 57/59] Update: Translations from eints english (us): 38 changes by njn --- src/lang/english_US.txt | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index aca755c704..6bf3ba3dd0 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 @@ -2431,7 +2442,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 @@ -2616,8 +2631,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 @@ -2727,6 +2745,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 @@ -2734,6 +2753,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!! @@ -3357,6 +3379,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: @@ -3465,9 +3488,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :New Monorail Ve STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :New Maglev 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 @@ -3633,10 +3658,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Message 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_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 @@ -3678,14 +3705,18 @@ 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 @@ -4409,6 +4440,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... @@ -4428,6 +4460,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... From ac610c50a9e1e5f260ca1389cbdbb9f6c4f0ee71 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 23 Jun 2019 19:45:43 +0200 Subject: [PATCH 58/59] Update: Translations from eints italian: 38 changes by lorenzodv --- src/lang/italian.txt | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 65ad01bd9a..c3e23286c3 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -343,6 +343,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Zooma la STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Zooma la visuale indietro STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Costruisci ferrovie STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Costruisci strade +STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Costruisci tranvie STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Costruisci trasporti su acqua STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Costruisci aeroporti STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Apre la barra di modellazione del terreno per alzare/abbassare il terreno, piantare alberi, etc. @@ -363,6 +364,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Generazi STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Generazione città STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Generazione industrie STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Costruzione strade +STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Costruzione tranvie STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Pianta alberi. MAIUSC alterna fra costruzione e stima dei costi STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Posiziona cartello STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Posiziona oggetto. MAIUSC alterna fra costruzione e stima dei costi @@ -938,6 +940,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Lari georgiano STR_GAME_OPTIONS_CURRENCY_IRR :Rial iraniano (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Nuovo rublo russo (RUB) STR_GAME_OPTIONS_CURRENCY_MXN :Peso messicano (MXN) +STR_GAME_OPTIONS_CURRENCY_NTD :Nuovo dollaro taiwanese (NTD) +STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi cinese (CNY) +STR_GAME_OPTIONS_CURRENCY_HKD :Dollaro di Hong Kong (HKD) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automezzi @@ -1510,6 +1515,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Consenti le IA STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Consente ai giocatori controllati dal computer di partecipare alle partite multigiocatore STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Numero massimo di opcode prima della sospensione degli script: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Numero massimo di passi elementari che uno script può eseguire in una volta sola +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Uso massimo di memoria per gli script: {STRING} +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Quantità massima di memoria che un singolo script può consumare prima di essere terminato forzatamente. Può essere necessario aumentarla per le mappe grandi +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Gli intervalli di manutenzione sono in percentuale: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Determina se la manutenzione dei veicoli è controllata dal tempo trascorso dall'ultima manutenzione piuttosto che dalla riduzione dell'affidabilità di una certa frazione di quella massima @@ -2464,7 +2472,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Costruis STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Costruisce un tunnel tranviario. MAIUSC alterna fra costruzione e stima dei costi STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Seleziona fra costruzione/rimozione di strade STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Seleziona fra costruzione/rimozione di tranvie +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Converte/aggiorna il tipo di strada. MAIUSC alterna fra costruzione e stima dei costi +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Converte/aggiorna il tipo di tram. MAIUSC alterna fra costruzione e stima dei costi +STR_ROAD_NAME_ROAD :Strada +STR_ROAD_NAME_TRAM :Tranvia # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientamento deposito @@ -2649,8 +2661,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carichi accettati: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo di rotaie: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Tipo di strada: {LTBLUE}{STRING} +STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tipo di tram: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limite di velocità rotaie: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite di velocità strada: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Limite di velocità tram: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Rocce @@ -2760,6 +2775,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Fattore STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Prestazioni correnti della partita, confrontate con le prestazioni attese alla velocità di giorno normale. STR_FRAMERATE_CURRENT :{WHITE}Corrente STR_FRAMERATE_AVERAGE :{WHITE}Media +STR_FRAMERATE_MEMORYUSE :{WHITE}Memoria STR_FRAMERATE_DATA_POINTS :{BLACK}Dati basati su {COMMA} misurazioni STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms @@ -2767,6 +2783,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frame/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frame/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frame/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!! @@ -3390,6 +3409,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Segmenti ferroviari: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Segnali STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Segmenti stradali: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Segmenti tram: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Riquadri d'acqua: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canali STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stazioni: @@ -3497,10 +3517,12 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nuovi veicoli f STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nuovi veicoli monorotaia STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nuovi veicoli maglev -STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuovi automezzi +STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nuovi veicoli stradali +STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nuovi veicoli tranviari ############ range for vehicle availability starts -STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Veicoli ferroviari +STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nuovi veicoli ferroviari +STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nuovi veicoli stradali STR_BUY_VEHICLE_SHIP_CAPTION :Nuove navi STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nuovo aeromobile ############ range for vehicle availability ends @@ -3666,10 +3688,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Messaggi STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Abbiamo appena progettato un{G "" "" a} nuov{G o o a} {STRING} - È interessato ad un anno di uso esclusivo di questo veicolo, in modo da permetterci di valutarne le prestazioni prima di renderlo disponibile sul mercato? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}locomotiva +STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :{G=f}locomotiva elettrica STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}motrice monorotaia STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}motrice maglev -STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}automezzo +STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=m}veicolo stradale +STR_ENGINE_PREVIEW_TRAM_VEHICLE :{G=m}veicolo tranviario STR_ENGINE_PREVIEW_AIRCRAFT :{G=m}aeromobile STR_ENGINE_PREVIEW_SHIP :{G=f}nave @@ -3711,14 +3735,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Scambia STR_REPLACE_ENGINES :Locomotive STR_REPLACE_WAGONS :Vagoni STR_REPLACE_ALL_RAILTYPE :Tutti i veicoli ferroviari +STR_REPLACE_ALL_ROADTYPE :Tutti i veicoli stradali STR_REPLACE_HELP_RAILTYPE :{BLACK}Selezionare il tipo di rotaie per il quale si desidera rimpiazzare le locomotive +STR_REPLACE_HELP_ROADTYPE :{BLACK}Selezionare il tipo di strada per il quale si desidera rimpiazzare i veicoli STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Mostra con quale locomotiva sarà rimpiazzato il modello eventualmente selezionato a sinistra STR_REPLACE_RAIL_VEHICLES :Veicoli ferroviari STR_REPLACE_ELRAIL_VEHICLES :Veicoli ferroviari elettrici STR_REPLACE_MONORAIL_VEHICLES :Veicoli monorotaia STR_REPLACE_MAGLEV_VEHICLES :Veicoli maglev +STR_REPLACE_ROAD_VEHICLES :Veicoli stradali +STR_REPLACE_TRAM_VEHICLES :Veicoli tranviari STR_REPLACE_REMOVE_WAGON :{BLACK}Rimozione vagoni: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fa sì che il rimpiazzamento automatico mantenga costante la lunghezza dei treni rimuovendo vagoni (iniziando dalla testa) nel caso in cui la sostituzione della locomotiva rendesse il treno più lungo @@ -4442,6 +4470,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tipo di STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Bisogna rimuovere i binari prima STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}La strada è bloccata o a senso unico STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Passaggi a livello non consentiti per questo tipo di rotaia +STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Passaggi a livello non consentiti per questo tipo di strada STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Impossibile costruire i segnali qui... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossibile costruire i binari qui... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Impossibile rimuovere i binari da qui... @@ -4461,6 +4490,12 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Impossib STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Impossibile rimuovere la tranvia da qui... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... strada non presente STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... tranvia non presente +STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Impossibile convertire il tipo di strada qui... +STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Impossibile convertire il tipo di tram qui... +STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nessuna strada adatta +STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nessuna tranvia adatta +STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... strada non compatibile +STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvia non compatibile # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Impossibile costruire qui il canale... From f1c39153413b07a964dfde8fd9d6310f0da4987b Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 25 Jun 2019 19:45:45 +0200 Subject: [PATCH 59/59] Update: Translations from eints norwegian (bokmal): 25 changes by Leifbk --- src/lang/norwegian_bokmal.txt | 40 ++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index c9485e3d68..9d5f363576 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -843,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}%! @@ -940,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 @@ -1247,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 @@ -1423,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} @@ -1474,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 @@ -1491,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 @@ -2743,6 +2749,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 @@ -2750,6 +2757,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!! @@ -3649,10 +3659,10 @@ 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_ELRAIL_LOCOMOTIVE :elektrisk lokomotiv +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 @@ -3698,7 +3708,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikk de STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Veksle mellom tog- og vognerstatningsvinduet STR_REPLACE_ENGINES :Lokomotiv STR_REPLACE_WAGONS :Vogner -STR_REPLACE_ALL_RAILTYPE :Status: Mangler +STR_REPLACE_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å @@ -3795,11 +3805,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} @@ -3926,7 +3936,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