diff --git a/Makefile.bundle.in b/Makefile.bundle.in index 63edb62d97..969b2ebcf0 100644 --- a/Makefile.bundle.in +++ b/Makefile.bundle.in @@ -172,6 +172,7 @@ install: bundle $(Q)install -d "$(INSTALL_BINARY_DIR)" $(Q)install -d "$(INSTALL_ICON_DIR)" $(Q)install -d "$(INSTALL_DATA_DIR)/ai" + $(Q)install -d "$(INSTALL_DATA_DIR)/game" $(Q)install -d "$(INSTALL_DATA_DIR)/baseset" $(Q)install -d "$(INSTALL_DATA_DIR)/lang" $(Q)install -d "$(INSTALL_DATA_DIR)/scripts" @@ -182,6 +183,7 @@ else endif $(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang" $(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai" + $(Q)install -m 644 "$(BUNDLE_DIR)/game/"* "$(INSTALL_DATA_DIR)/game" $(Q)install -m 644 "$(BUNDLE_DIR)/baseset/"* "$(INSTALL_DATA_DIR)/baseset" $(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts" ifndef DO_NOT_INSTALL_DOCS diff --git a/src/ini.cpp b/src/ini.cpp index ccce192393..905ebfacf8 100644 --- a/src/ini.cpp +++ b/src/ini.cpp @@ -16,7 +16,6 @@ #include "fileio_func.h" #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L) || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 500) -# define WITH_FDATASYNC # include #endif @@ -80,7 +79,7 @@ bool IniFile::SaveToDisk(const char *filename) * APIs to do so. We only need to flush the data as the metadata itself * (modification date etc.) is not important to us; only the real data is. */ -#ifdef WITH_FDATASYNC +#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0 int ret = fdatasync(fileno(f)); fclose(f); if (ret != 0) return false; diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index c051f4fdba..947f0736c8 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -30,7 +30,7 @@ STR_CARGO_PLURAL_NOTHING : STR_CARGO_PLURAL_PASSENGERS :Passagiers STR_CARGO_PLURAL_COAL :Kolen STR_CARGO_PLURAL_MAIL :Post -STR_CARGO_PLURAL_OIL :Olie +STR_CARGO_PLURAL_OIL :Aardolie STR_CARGO_PLURAL_LIVESTOCK :Vee STR_CARGO_PLURAL_GOODS :Goederen STR_CARGO_PLURAL_GRAIN :Graan @@ -64,7 +64,7 @@ STR_CARGO_SINGULAR_NOTHING : STR_CARGO_SINGULAR_PASSENGER :Passagier STR_CARGO_SINGULAR_COAL :Kolen STR_CARGO_SINGULAR_MAIL :Post -STR_CARGO_SINGULAR_OIL :Olie +STR_CARGO_SINGULAR_OIL :Aardolie STR_CARGO_SINGULAR_LIVESTOCK :Vee STR_CARGO_SINGULAR_GOODS :Goederen STR_CARGO_SINGULAR_GRAIN :Graan @@ -98,7 +98,7 @@ STR_QUANTITY_NOTHING : STR_QUANTITY_PASSENGERS :{COMMA}{NBSP}passagier{P "" s} STR_QUANTITY_COAL :{WEIGHT_LONG} kolen STR_QUANTITY_MAIL :{COMMA}{NBSP}zak{P "" ken} post -STR_QUANTITY_OIL :{VOLUME_LONG} olie +STR_QUANTITY_OIL :{VOLUME_LONG} Vaten Olie STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}stuk{P "" s} vee STR_QUANTITY_GOODS :{COMMA}{NBSP}krat{P "" ten} goederen STR_QUANTITY_GRAIN :{WEIGHT_LONG} graan @@ -168,7 +168,7 @@ STR_ABBREV_ALL :{TINY_FONT}ALLE STR_PASSENGERS :{COMMA}{NBSP}passagier{P "" s} STR_BAGS :{COMMA}{NBSP}zak{P "" ken} STR_TONS :{COMMA}{NBSP}ton -STR_LITERS :{COMMA}{NBSP}liter +STR_LITERS :{COMMA}{NBSP}liter{P "" s} STR_ITEMS :{COMMA}{NBSP}stuk{P "" s} STR_CRATES :{COMMA}{NBSP}krat{P "" ten} @@ -4357,7 +4357,7 @@ STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kan dit STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het is al van jou! # Group related errors -STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet maken... +STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet creëren... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan deze groep niet verwijderen... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan deze groep niet hernoemen... STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan huidige groep niet instellen... diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index baa4166579..fa55f7235b 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1901,8 +1901,8 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Change t # Network server list STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Multiplayer -STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Advertized -STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}Choose between an advertized (internet) and a not advertized (Local Area Network, LAN) game +STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Advertised +STR_NETWORK_SERVER_LIST_ADVERTISED_TOOLTIP :{BLACK}Choose between an advertised (internet) and a not advertised (Local Area Network, LAN) game STR_NETWORK_SERVER_LIST_ADVERTISED_NO :No STR_NETWORK_SERVER_LIST_ADVERTISED_YES :Yes STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Player name: diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 9d3dec0d3c..fe1d2cc881 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -2988,7 +2988,7 @@ STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}지난 STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}도시가 성장하기 위해 필요한 화물: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED}{G 0 "이" "가"} 필요함 STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :겨울에는 {ORANGE}{STRING}{BLACK}{G 0 "이" "가"} 필요함 -STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} 수송됨 +STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN}{G 0 "이" "가"} 수송됨 STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{1:CARGO_LONG} \ {0:CARGO_TINY}{RED} (더 필요함) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{1:CARGO_LONG} \ {0:CARGO_TINY}{GREEN} (수송됨) STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}도시가 {ORANGE}{COMMA}{BLACK}일마다 성장합니다. @@ -3009,7 +3009,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :도시 이름 # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} 지역 당국 -STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사 운송 성취도: +STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}회사에 대한 이 도시의 평판: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}가능한 행동: STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}이 도시에 할 수 있는 일 목록 - 상세 정보를 보시려면 클릭하세요 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 99d88237f5..4b383df0d8 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -512,7 +512,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Monstrar STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Monstrare res fiscales societatis STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Monstrare facta generalia societatis STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Monstrare librum fabularum -STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem metarum +STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Monstrare indicem propositorum STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Monstrare formulas graphicas STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Monstrare album foederis societatum STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Industriam novam condere vel monstrare indicem industriarum @@ -526,11 +526,11 @@ STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Struere STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Struere vias STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Struere navalia STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Struere aeroportus -STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam ferramentorum qua potes terram augere/minuere, arbores serere, etc. +STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Monstrare terrae arcam instrumentorum qua potes terram augere/minuere, arbores serere, etc. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Monstrare fenestram soni musicaeque STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Monstrare nuntium novissimum sive optiones nuntii STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Indicia terrae regionis, consola, emendatio scripti, imagines conspectus, de OpenTTD -STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas ferramentorum +STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Mutare inter arcas instrumentorum # Extra tooltips for the scenario editor toolbar STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Servare scaenarium, legere scaenarium, relinquere scriptorium scaenarii, exire @@ -1507,7 +1507,7 @@ STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Originalis STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Melior STR_CONFIG_SETTING_ROAD_SIDE :Vehicula viaria: {STRING} STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Eligere latus viae gubernandi -STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Circuitus tabulae altitudinum: {STRING} +STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotatio tabulae altitudinum: {STRING} STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Sinistrorsus STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Dextrorsus STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Altitudo scaenario plano data: {STRING} @@ -1518,8 +1518,8 @@ STR_CONFIG_SETTING_STATION_SPREAD :Spatium station STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Area maxima in qua partes stationum possunt esse sita. Cave, numeris spatii magnis, ludus lentus sit STR_CONFIG_SETTING_SERVICEATHELIPAD :Ministrare helicoptera automatice in helicopterariis: {STRING} STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Ministrare helicoptera post quemque appulsum, etsi non est tugurium portui -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam ferramentorum arcis ferriviariae/viariae/aquariae/aeriae ferramentorum: {STRING} -STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca ferramentorum constructionis aperitur, etiam plasmationis terrae arca ferramentorum aperitur +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Connectere terrae arcam instrumentorum arcis ferriviariae/viariae/aquariae/aeriae instrumentorum: {STRING} +STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Cum arca instrumentorum constructionis aperitur, etiam plasmationis terrae arca instrumentorum aperitur STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Color terrae in tabula adhibitus: {STRING} STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Color terrae in tabula geographica parva STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Viridis @@ -1756,8 +1756,8 @@ STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NONE :Nulla {RED}(rum STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Modo in silvis plivualibus STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Ubique -STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae ferramentorum: {STRING} -STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae ferramentorum primariae apud apicem fenestrae +STR_CONFIG_SETTING_TOOLBAR_POS :Locus primariae arcae instrumentorum: {STRING} +STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Locus horizontalis arcae instrumentorum primariae apud apicem fenestrae STR_CONFIG_SETTING_STATUSBAR_POS :Locus serae status: {STRING} STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Locus horizontalis serae status apud infimam partem fenestrae STR_CONFIG_SETTING_SNAP_RADIUS :Radius fenestrae adhaerendae: {STRING} @@ -2951,7 +2951,7 @@ STR_MAPGEN_BORDER_RANDOM :{BLACK}Fortuiti STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Fortuiti STR_MAPGEN_BORDER_MANUAL :{BLACK}Manu -STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Circuitus tabulae altitudinum: +STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Rotatio tabulae altitudinum: STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nomen tabulae altitudinum: STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Magnitudo: STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM} @@ -3236,16 +3236,16 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Emere m STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Largiri auctoritatem vicinalem ut tua censio augeatur, at difficultas adest: forsitan animadvertaris et graviter puniaris.{}Pretium: {CURRENCY_LONG} # Goal window -STR_GOALS_CAPTION :{WHITE}{COMPANY} Metae -STR_GOALS_SPECTATOR_CAPTION :{WHITE}Metae Globales -STR_GOALS_GLOBAL_TITLE :{BLACK}Metae globales: +STR_GOALS_CAPTION :{WHITE}{COMPANY} Proposita +STR_GOALS_SPECTATOR_CAPTION :{WHITE}Proposita Universalia +STR_GOALS_GLOBAL_TITLE :{BLACK}Proposita universalia: STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_NONE :{ORANGE}- Nullae - STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non applicabiles - STR_GOALS_PROGRESS :{ORANGE}{STRING} STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING} -STR_GOALS_COMPANY_TITLE :{BLACK}Metae Societatis: -STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in metam ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam +STR_GOALS_COMPANY_TITLE :{BLACK}Proposita Societatis: +STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in propositum ut conspectus moveatur supra industriam/oppidum/tegulam. Ctrl+Preme ut nova fenestra conspectus aperiatur supra industriam/oppidum/tegulam # Goal question window STR_GOAL_QUESTION_CAPTION_QUESTION :Quaestio @@ -3285,7 +3285,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Preme in # Story book window STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Librum Fabularum -STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Globalis +STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Librum Fabularum Universale STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_GENERIC_PAGE_ITEM :Pagina {NUM} STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Salire ad quamdam paginam eligendo eam in hac indice @@ -3293,7 +3293,7 @@ STR_STORY_BOOK_PREV_PAGE :{BLACK}Priorem STR_STORY_BOOK_PREV_PAGE_TOOLTIP :{BLACK}Ire ad paginam priorem STR_STORY_BOOK_NEXT_PAGE :{BLACK}Secundam STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ire ad paginam secundam -STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Meta irrita +STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Propositum irritum # Station list window STR_STATION_LIST_TOOLTIP :{BLACK}Nomina stationum - preme in nomen ut conspectus moveatur supra stationem. Ctrl+Preme ut nova fenestra conspectus aperiatur supra stationem @@ -3555,7 +3555,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Greges - STR_GROUP_CREATE_TOOLTIP :{BLACK}Preme ut grex creatur STR_GROUP_DELETE_TOOLTIP :{BLACK}Delere gregem electam STR_GROUP_RENAME_TOOLTIP :{BLACK}Renominare gregem electam -STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem globalem +STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Preme ut vehicula huius gregis custodiantur contra autocommutationem universalem STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Gregem Delere STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Esne certus te velle delere hanc gregem eiusque descendentes? diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 259fd8ee68..d6a7d6bc39 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -205,16 +205,16 @@ STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP}t STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}t STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}kg -STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn{P "" er} -STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" er} +STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tonn +STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP}tonn{P "" ""} STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}kg STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}gal STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l STR_UNITS_VOLUME_SHORT_SI :{COMMA} m³ -STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon{P "" er} -STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter{P "" er} +STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}gallon +STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}liter STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³ STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf @@ -1528,7 +1528,7 @@ STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentandel av STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Andel av inntekten gitt til de mellomliggende etapper i et overføringssystem, noe som gir mer kontroll over inntektene STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Når du drar en linje, plasser signaler hver: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Angi distansen for når signaler vil bli bygget på et spor frem til neste hinder (signal, kryss), hvis signaler blir dratt -STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" s} +STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_VALUE :{COMMA} kartelement{P 0 "" er} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE :Når du drar en linje, oppretthold fast avstand mellom signaler: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :Velg oppførselen til signalplassering ved Ctrl + dragning av signaler. Hvis deaktivert, blir signaler plassert ved tunneler eller broer for å unngå lange strekninger uten signaler. Hvis aktivert, blir signalene plassert for hver N ruter, noe som gjør justering av signaler på parallelle spor enklere STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :Bygg vingesignal automatisk før: {STRING} @@ -1577,7 +1577,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Statusbarens po STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horisontal posisjon av status verktøylinjen på bunnen av skjermen STR_CONFIG_SETTING_SNAP_RADIUS :Vinduers smekkeradius: {STRING} STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Avstanden mellom vinduer før vinduet som blir flyttet automatisk tilpasset nærliggende vinduer -STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piksel{P 0 "" s} +STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piks{P 0 el ler} STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Deaktivert STR_CONFIG_SETTING_SOFT_LIMIT :Maksimalt antall flytende vinduer: {STRING} STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Antall ikke-klebrige åpne vinduer før gamle vinduer automatisk blir lukket for å gi plass til nye vinduer @@ -3908,8 +3908,8 @@ STR_TIMETABLE_STAY_FOR_ESTIMATED :(opphold i {STR STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reise for {STRING}, ikke oppsatt med rutetabell) STR_TIMETABLE_STAY_FOR :og bli værende i {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :og reis i {STRING} -STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" s} -STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk{P "" s} +STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" er} +STR_TIMETABLE_TICKS :{COMMA}{NBSP}tikk STR_TIMETABLE_TOTAL_TIME :{BLACK}Det vil ta {STRING} å fullføre rutetabellen STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Det vil ta minst {STRING} å fullføre denne rutetabellen (rutetabell ikke fullstendig) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 220114005b..68dff85102 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4235,10 +4235,10 @@ STR_ORDER_UNLOAD :(Rozładuj i za STR_ORDER_UNLOAD_FULL_LOAD :(Rozładuj i czekaj na pełny załadunek) STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Rozładuj i czekaj na pełny załadunek któregoś z towarów) STR_ORDER_UNLOAD_NO_LOAD :(Rozładuj i pozostaw pusty) -STR_ORDER_TRANSFER :(Przeładuj i zabierz ładunek) -STR_ORDER_TRANSFER_FULL_LOAD :(Przeładuj i czekaj na pełny załadunek) -STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładuj i czekaj na pełny załadunek któregoś z towarów) -STR_ORDER_TRANSFER_NO_LOAD :(Przeładuj i pozostaw pusty) +STR_ORDER_TRANSFER :(Przeładunek i zabranie ładunku) +STR_ORDER_TRANSFER_FULL_LOAD :(Przeładunek i oczekiwanie na pełny załadunek) +STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Przeładunek i oczekiwanie na pełny załadunek któregoś z towarów) +STR_ORDER_TRANSFER_NO_LOAD :(Przeładunek, pozostaw pusty) STR_ORDER_NO_UNLOAD :(Nie rozładowuj i zabierz ładunek) STR_ORDER_NO_UNLOAD_FULL_LOAD :(Nie rozładowuj i czekaj na pełny załadunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(Nie rozładowuj i czekaj na pełny załadunek któregoś z towarów) @@ -4250,9 +4250,9 @@ STR_ORDER_FULL_LOAD_ANY_REFIT :(Przebuduj na { STR_ORDER_UNLOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i zabierz ładunek) STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Rozładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek któregoś z towarów) -STR_ORDER_TRANSFER_REFIT :(Przeładuj, przebuduj na {STRING.b} i zabierz ładunek) -STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) -STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek) +STR_ORDER_TRANSFER_REFIT :(Przeładunek, przebudowa na {STRING.b} i zabranie ładunku) +STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na pełny załadunek) +STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Przeładunek, przebudowa na {STRING.b} i oczekiwanie na dowolny pełny załadunek) STR_ORDER_NO_UNLOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i zabierz ładunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na pełny załadunek) STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Nie rozładowuj, przebuduj na {STRING.b} i czekaj na dowolny pełny załadunek) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 7ce4e7f6a8..3c892a8525 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -844,7 +844,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE}的调度计划中有无效调度命令 STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} 有重复调度命令 STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE}的调度计划有无效的车站 -STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有机场跑道太短不足及起降 +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} 的计划列表中有一个机场的跑道太短而不能起降 STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} 即将达到报废年限 STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} 已经达到报废年限 diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index b99af4e20d..5fb8734bad 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1258,7 +1258,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :By ynskeakeljen STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Warskôgje as in fiertúch it paad bjuster is: {STRING} STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Lit berjochten sjen at in fiertúch gjin paad nei syn bestimming fine kin STR_CONFIG_SETTING_ORDER_REVIEW :Hâld fiertúchoarders yn de gaten: {STRING} -STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :By ynkeakeljen wurde de oarder fan de fiertugen sa no en dan kontrolearre en wurde flater dy't dêrby nei boppe komme melden +STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :By ynskeakeljen wurde de oarder fan de fiertugen sa no en dan kontrolearre en wurde flater dy't dêrby nei boppe komme melden STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Nee STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Ja, mar slút stilsteande fiertugen út STR_CONFIG_SETTING_ORDER_REVIEW_ON :Fan alle fiertugen @@ -1303,7 +1303,9 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Rûch STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Tige rûch STR_CONFIG_SETTING_VARIETY :Fariaasjedistribusje: {STRING} STR_CONFIG_SETTING_RIVER_AMOUNT :Tal rivieren: {STRING} +STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Kieze hoefolle rivieren generearje moatte wurde STR_CONFIG_SETTING_TREE_PLACER :Algoritme foar pleatsing beamen: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Kies de spreding fan beammen op 'e kaart: 'Orizjineel' plantet beammen ferspreid oer de kaart, 'Ferbettere' plantet beammen yn kloften STR_CONFIG_SETTING_TREE_PLACER_NONE :Gjin STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Orizjineel STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Ferbettere @@ -1328,7 +1330,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grien STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Donker grien STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Fiolet STR_CONFIG_SETTING_REVERSE_SCROLLING :Draai scrollrjochtig om: {STRING} -STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :By útskeakjen beweecht de mûs de kamera. By ynskeakeljen beweecht de mûs de kaart +STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :By útskeakeljen beweecht de mûs de kamera. By ynskeakeljen beweecht de mûs de kaart STR_CONFIG_SETTING_SMOOTH_SCROLLING :Loaitsfinster floeiend scrolle : {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Bepaalt hoe it haadfinster scrollt. By ynskeakeljen sil dit floeiend wêze. By útskeakeljen ljept it byld direktst nei de selektearre lokaasje STR_CONFIG_SETTING_MEASURE_TOOLTIP :Under it gebrûk fan de ferskate bou-arken diminsjes sjen litte: {STRING} @@ -1446,6 +1448,7 @@ STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Middel STR_CONFIG_SETTING_AI_PROFILE_HARD :Dreech STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Stea AIs ta yn multiplayer: {STRING} +STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Kompjûterspilers tastean mei te spylje yn multyspyler spullen STR_CONFIG_SETTING_SERVINT_ISPERCENT :reperaasje skemas binne yn procenten: {STRING} STR_CONFIG_SETTING_SERVINT_TRAINS :Standert reparaasjeskema foar treinen: {STRING} @@ -1560,6 +1563,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :langsaam STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :gewoan STR_CONFIG_SETTING_TOWN_GROWTH_FAST :snel STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Hiel snel +STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 in {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Gjin STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Begjin stêdgrutte fermenigfuldiger: {STRING} @@ -1646,6 +1650,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Feroarje # Config errors STR_CONFIG_ERROR_ARRAY :{WHITE}... flater in reeks '{STRING}' STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... ûnjildige wearde '{STRING}' foar '{STRING}' +STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :koe net fûn wurde STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :Dat strykt net mei dizze ferzje fan OpenTTD STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ûnbekind @@ -3293,12 +3298,23 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(Net losse en w STR_ORDER_NO_UNLOAD_NO_LOAD :(net lade of losse) STR_ORDER_AUTO_REFIT :(Ombouwe nei {STRING}) +STR_ORDER_NO_UNLOAD_REFIT :(Net losse en fracht meinimme mei ombou nei {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(Net losse en folslein lade mei ombou nei {STRING}) +STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(Net losse en ien fracht folslein lade mei ombou nei {STRING}) STR_ORDER_AUTO_REFIT_ANY :beskikbere fracht +STR_ORDER_STOP_LOCATION_NEAR_END :[begjin] +STR_ORDER_STOP_LOCATION_MIDDLE :[midden] +STR_ORDER_STOP_LOCATION_FAR_END :[ein] +STR_ORDER_OUT_OF_RANGE :{RED} (Folgjende bestimming is bûten berik) +STR_ORDER_CONDITIONAL_UNCONDITIONAL :Ljep nei opdracht {COMMA} +STR_ORDER_CONDITIONAL_NUM :Ljep nei opdracht {COMMA} at {STRING} {STRING} {COMMA} +STR_ORDER_CONDITIONAL_TRUE_FALSE :Ljep nei opdracht {COMMA} at {STRING} {STRING} +STR_INVALID_ORDER :{RED} (Unjildige opdracht) # Time table window STR_TIMETABLE_ORDER_VIEW :{BLACK}Opdrachten @@ -3314,6 +3330,7 @@ STR_TIMETABLE_DAYS :{COMMA}{NBSP}{P STR_TIMETABLE_TICKS :{COMMA}{NBSP}tik{P "" ken} +STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Dit fiertûg is op tiid STR_TIMETABLE_CHANGE_TIME :{BLACK}Tiid Feroarje @@ -3326,6 +3343,7 @@ STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Feroarje STR_TIMETABLE_CLEAR_SPEED :{BLACK}Helje maksimum snelheid fuort STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Helje de maksimum reissnelheid fuort fan de opljochte oarder +STR_TIMETABLE_RESET_LATENESS :{BLACK}Fertragingsteller weromsette STR_TIMETABLE_EXPECTED :{BLACK}Ferwachte @@ -3373,7 +3391,9 @@ STR_AI_CONFIG_CHANGE_GAMESCRIPT :Spulskript STR_AI_LIST_CAPTION :{WHITE}Beskikber {STRING} STR_AI_LIST_CAPTION_AI :AIs STR_AI_LIST_CAPTION_GAMESCRIPT :Spulskripten +STR_AI_LIST_TOOLTIP :{BLACK}Klik om in skript te selektearje +STR_AI_LIST_AUTHOR :{LTBLUE}Makker: {ORANGE}{STRING} STR_AI_LIST_VERSION :{LTBLUE}Ferzje: {ORANGE}{NUM} STR_AI_LIST_URL :{LTBLUE}URL: {ORANGE}{STRING} @@ -3420,6 +3440,8 @@ STR_ERROR_GAME_SAVE_FAILED :{WHITE}Opslaan STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kin bestân net fuortsmite STR_ERROR_GAME_LOAD_FAILED :{WHITE}Laden Mislearre{}{STRING} STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Interne flater: {STRING} +STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Koe bestân net lêze +STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Koe net nei bestân skriuwe STR_GAME_SAVELOAD_NOT_AVAILABLE : # Map generation messages @@ -3462,13 +3484,16 @@ STR_ERROR_NOT_ALLOWED_WHILE_PAUSED :{WHITE}Net tast # Local authority errors STR_ERROR_LOCAL_AUTHORITY_REFUSES_TO_ALLOW_THIS :{WHITE}{TOWN} gemiente stiet dit net ta STR_ERROR_LOCAL_AUTHORITY_REFUSES_AIRPORT :{WHITE}{TOWN} gemeente lit it net ta dat der noch in fleanfjild bout wurd yn dizze stêd +STR_ERROR_LOCAL_AUTHORITY_REFUSES_NOISE :{WHITE}{TOWN} gemeente lit it net ta dat der in fleanfjild bout wurd fanwegen lûdoerlêst # Levelling errors STR_ERROR_CAN_T_RAISE_LAND_HERE :{WHITE}Kin it lân hjir net ferheegje... STR_ERROR_CAN_T_LOWER_LAND_HERE :{WHITE}Kin it lân hjir net ferleegje... +STR_ERROR_CAN_T_LEVEL_LAND_HERE :{WHITE}Kin it lân hjir net egalisearje... STR_ERROR_EXCAVATION_WOULD_DAMAGE :{WHITE}Utgrave soe tunnel beskeadigje STR_ERROR_ALREADY_AT_SEA_LEVEL :{WHITE}Lân is al op seenivo STR_ERROR_TOO_HIGH :{WHITE}Te heech +STR_ERROR_ALREADY_LEVELLED :{WHITE}... is al plat # Company related errors STR_ERROR_CAN_T_CHANGE_COMPANY_NAME :{WHITE}Kin bedriuwsnamme net feroarje... @@ -3479,10 +3504,12 @@ STR_ERROR_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kin net STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... gjin liening werom te betelje STR_ERROR_CURRENCY_REQUIRED :{WHITE}...{CURRENCY_LONG} nedich STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Kin liening net werombetelje... +STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Kin gjin jild dat fan de bank lient is weijaan... STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Kin bedriuw net keapje... STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Kin gjin haadkantoar boue STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Kin net 25% oandielen fan dit bedriuw keapje... STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}Kin net 25% oandielen fan dit bedriuw ferkeapje... +STR_ERROR_PROTECTED :{WHITE}Dit bedriuw is noch net âld genoch om oandielen te ferhannelje... # Town related errors STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Kin gjin stêd bouwe @@ -3493,10 +3520,13 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... te t STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... te ticht by in oare stêd STR_ERROR_TOO_MANY_TOWNS :{WHITE}... te folle stêden STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... der is gjin romte mear op'e kaart +STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Wurk oan de dyk dwaande +STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kin dizze stêd net fuorthelje...{}In stasjon of depôt ferwiist nei dizze stêd of in tegel dy't eigendom van dizze stêd is kin net fuorthelje wurde STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... Gjin geskikt plak fûn foar in stânbield in dizze stêd # Industry related errors STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... te folle yndustryen +STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Kin gjin yndustryen generearje... STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Kin hjir gjin {STRING} boue... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Kin dit type yndustry hjir net boue... STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... te ticht by in oare yndustry @@ -3506,12 +3536,15 @@ STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... kin STR_ERROR_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}... kin allinnich yn in reinwâld bout wurde STR_ERROR_CAN_ONLY_BE_BUILT_IN_DESERT :{WHITE}... kin allinnich yn in woastine bout wurde STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}... kin allinnich yn in stêd bout wurde (ferfangt besteande hûzen) +STR_ERROR_CAN_ONLY_BE_BUILT_NEAR_TOWN_CENTER :{WHITE}... kin allinich by it sintrum van in stêd bout wurde STR_ERROR_CAN_ONLY_BE_BUILT_IN_LOW_AREAS :{WHITE}... kin allinnich yn lege plakken bout wurde STR_ERROR_CAN_ONLY_BE_POSITIONED :{WHITE}... kin allinich pleatse wurde by de rân fan'e kaart STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... bosk kin allinich boppe snieline boud wurde STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... kin allinich boppe snieline boud wurde STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... kin allinich ûnder snieline boud wurde +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Der wie gjin gaadlike plak foar '{STRING}' industryen +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Feroarje de mapynstellings om in bettere kaart te krijen # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Kin hjir gjin treinstasjon boue... @@ -3525,14 +3558,20 @@ STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Kin hjir STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Ferbynt mear dan ien stasjon STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... stasjon is te grut STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Te folle stasjons +STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te folle stasjonsdielen STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te folle bushaltes STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te folle frachtstasjons STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Te ticht by in oar stasjon STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te ticht by in oare haven STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te ticht by in oar fleanfjild STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kin namme fan stasjon net feroarje +STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dizze dyk is eigendom fan in stêd +STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... dyk leit in ferkearde rjochting +STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... trochriidhaltes kinne gjin bochten hawwe +STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... trochriidhaltes kinne gjin krusings hawwe # Station destruction related errors +STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kin diel fan it stasjon net fourthelje... STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Treinstasjon moat earst fuorthelle wurde STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kin busstasjon net fuorthelje... STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kin frachtstasjon net fuorthelje... diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 9d3f3ec617..bc4c18db46 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -2875,6 +2875,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Corlun b STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin blaenorol, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun cyntaf i'r olaf STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Cynrychioliad o'r corlun a ddewiswyd. Fe anwybyddir yr aliniad wrth lunio'r corlun STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Symud y corlun, gan newid yr atredau X ac Y +STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Ailosod perthyniad +STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Ailosod y dodiadau perthynol +STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Absoliwt) +STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Dodiad X: {NUM}, Dodiad Y: {NUM} (Perthynol) STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Dewis corlun STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Dewis corlun o ynrhyw fan ar y sgrïn diff --git a/src/misc.cpp b/src/misc.cpp index d9d506993f..7c0186d849 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -28,6 +28,7 @@ #include "core/pool_type.hpp" #include "game/game.hpp" #include "linkgraph/linkgraphschedule.h" +#include "programmable_signals.h" #include "safeguards.h" @@ -74,6 +75,9 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settin LinkGraphSchedule::Clear(); PoolBase::Clean(PT_NORMAL); + FreeSignalPrograms(); + FreeSignalDependencies(); + ResetPersistentNewGRFData(); InitializeSound(); diff --git a/src/network/network.cpp b/src/network/network.cpp index ce37aaa3fa..0bbdd0d06c 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -63,7 +63,6 @@ NetworkCompanyState *_network_company_states = NULL; ///< Statistics about some ClientID _network_own_client_id; ///< Our client identifier. ClientID _redirect_console_to_client; ///< If not invalid, redirect the console output to a client. bool _network_need_advertise; ///< Whether we need to advertise. -uint32 _network_last_advertise_frame; ///< Last time we did advertise. uint8 _network_reconnect; ///< Reconnect timeout StringList _network_bind_list; ///< The addresses to bind on. StringList _network_host_list; ///< The servers we know. @@ -759,7 +758,6 @@ bool NetworkServerStart() if (_network_dedicated) IConsoleCmdExec("exec scripts/on_dedicated.scr 0"); /* Try to register us to the master server */ - _network_last_advertise_frame = 0; _network_need_advertise = true; NetworkUDPAdvertise(); @@ -1076,7 +1074,6 @@ void NetworkStartUp() /* Network is available */ _network_available = NetworkCoreInitialize(); _network_dedicated = false; - _network_last_advertise_frame = 0; _network_need_advertise = true; _network_advertise_retries = 0; diff --git a/src/network/network_func.h b/src/network/network_func.h index 375cc3da56..4f1525b5a4 100644 --- a/src/network/network_func.h +++ b/src/network/network_func.h @@ -34,7 +34,6 @@ extern NetworkCompanyState *_network_company_states; extern ClientID _network_own_client_id; extern ClientID _redirect_console_to_client; extern bool _network_need_advertise; -extern uint32 _network_last_advertise_frame; extern uint8 _network_reconnect; extern StringList _network_bind_list; extern StringList _network_host_list; diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index 731d51ca05..1cccbf6441 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -42,9 +42,9 @@ static ThreadMutex *_network_udp_mutex = ThreadMutex::New(); /** Session key to register ourselves to the master server */ static uint64 _session_key = 0; -static const uint ADVERTISE_NORMAL_INTERVAL = 30000; ///< interval between advertising in ticks (15 minutes) -static const uint ADVERTISE_RETRY_INTERVAL = 300; ///< re-advertise when no response after this many ticks (9 seconds) -static const uint ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries +static const uint32 ADVERTISE_NORMAL_INTERVAL = 15 * 60 * 1000; ///< interval between advertising in ms (15 minutes) +static const uint32 ADVERTISE_RETRY_INTERVAL = 10 * 1000; ///< re-advertise when no response after this many ms (10 seconds) +static const uint32 ADVERTISE_RETRY_TIMES = 3; ///< give up re-advertising after this much failed retries NetworkUDPSocketHandler *_udp_client_socket = NULL; ///< udp client socket NetworkUDPSocketHandler *_udp_server_socket = NULL; ///< udp server socket @@ -616,25 +616,37 @@ static void NetworkUDPAdvertiseThread(void *pntr) */ void NetworkUDPAdvertise() { + static uint32 _last_advertisement = 0; ///< The time of the last advertisement (used to check for wrapping of time) + static uint32 _next_advertisement = 0; ///< The next time we should perform a normal advertisement. + static uint32 _next_retry = 0; ///< The next time we should perform a retry of an advertisement. + /* Check if we should send an advertise */ if (!_networking || !_network_server || !_network_udp_server || !_settings_client.network.server_advertise) return; - if (_network_need_advertise) { + if (_network_need_advertise || _realtime_tick < _last_advertisement) { + /* Forced advertisement, or a wrapping of time in which case we determine the advertisement/retry times again. */ _network_need_advertise = false; _network_advertise_retries = ADVERTISE_RETRY_TIMES; } else { /* Only send once every ADVERTISE_NORMAL_INTERVAL ticks */ if (_network_advertise_retries == 0) { - if ((_network_last_advertise_frame + ADVERTISE_NORMAL_INTERVAL) > _frame_counter) return; + if (_realtime_tick <= _next_advertisement) return; _network_advertise_retries = ADVERTISE_RETRY_TIMES; + } else { + /* An actual retry. */ + if (_realtime_tick <= _next_retry) return; } - - if ((_network_last_advertise_frame + ADVERTISE_RETRY_INTERVAL) > _frame_counter) return; } _network_advertise_retries--; - _network_last_advertise_frame = _frame_counter; + _last_advertisement = _realtime_tick; + _next_advertisement = _realtime_tick + ADVERTISE_NORMAL_INTERVAL; + _next_retry = _realtime_tick + ADVERTISE_RETRY_INTERVAL; + + /* Make sure we do not have an overflow when checking these; when time wraps, we simply force an advertisement. */ + if (_next_advertisement < _last_advertisement) _next_advertisement = UINT32_MAX; + if (_next_retry < _last_advertisement) _next_retry = UINT32_MAX; if (!ThreadObject::New(NetworkUDPAdvertiseThread, NULL)) { NetworkUDPAdvertiseThread(NULL); diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index acc277249c..7a319d66fc 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -462,7 +462,7 @@ static const NWidgetPart _nested_scen_edit_land_gen_widgets[] = { NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_DESERT), SetMinimalSize(22, 22), SetFill(0, 1), SetDataTip(SPR_IMG_DESERT, STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA), EndContainer(), - NWidget(WWT_IMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22), + NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_ETT_PLACE_OBJECT), SetMinimalSize(23, 22), SetFill(0, 1), SetDataTip(SPR_IMG_TRANSMITTER, STR_SCENEDIT_TOOLBAR_PLACE_OBJECT), NWidget(NWID_SPACER), SetFill(1, 0), EndContainer(), @@ -704,7 +704,6 @@ struct ScenarioEditorLandscapeGenerationWindow : Window { { this->RaiseButtons(); this->SetDirty(); - DeleteWindowById(WC_BUILD_OBJECT, 0); } static HotkeyList hotkeys;